问财量化选股策略逻辑
该选股策略选股逻辑为:换手率3%-12%, KDJ刚形成金叉, 100亿市值以内的无亏损企业。
选股逻辑分析
该选股策略结合了交易活跃性指标、技术面指标和基本面指标,以筛选出符合条件的股票。在选股时要求市值不超过100亿,且该公司为无亏损企业,这表示了投资者对公司盈利能力的关注。同时,该选股策略同样关注技术面指标,筛选出KDJ最近形成金叉的股票,这也反映了投资者对于买入时机的关注。
有何风险?
在选股时,该选股策略只关注了市值和企业是否盈利等基本面指标,并未考虑公司业务、财务成长、竞争等方面因素,容易导致对股票的评估存在盲区。同时,该选股策略忽略了盈利率、估值等重要经济指标,也可能导致选股不够全面,选出的股票虽然在综合指标上较优,但长期表现不尽如人意。
如何优化?
该选股策略可以加入估值和盈利率等指标,如PE、市净率等,同时关注公司各个层面的信息。在基本面数据方面,可以考虑增加财务成长相关指标,例如营收、利润增长率等,更准确地评估公司的运营和发展潜力。考虑到市值的影响,可以增加市值分层筛选的方式,分别考虑中小市值和大市值股票的指标。
最终的选股逻辑
该选股策略选股逻辑为:换手率3%-12%, KDJ刚形成金叉, 100亿市值以内的无亏损企业,同时加入估值、盈利率和成长相关指标。
同花顺指标公式代码参考
通达信指标代码:
TURNOVER_RATIO>=0.03 AND TURNOVER_RATIO<=0.12 AND KDJ_CROSS(0,1)
AND CIRCULATING_MARKET_CAP<=10000000000
AND TOTAL_ASSETS(T-1)>0 AND TOTAL_ASSETS(T)>0 AND TOTAL_LIABILITIES(T)/TOTAL_ASSETS(T)<0.9
其中,CIRCULATING_MARKET_CAP表示流通市值,TOTAL_ASSETS表示总资产,TOTAL_LIABILITIES表示总负债,T指当前交易日,T-1指前一日。
python代码参考
import pandas as pd
from pytdx.hq import TdxHq_API
# 创建连接
api = TdxHq_API()
api.connect('119.147.212.81', 7709)
# 所有A股列表
all_stocks = api.get_security_list(0, 0)
df_stocks = pd.DataFrame(all_stocks, columns=['code', 'name', 'market_type', 'exchange_type'])
# 获取A股数据
selected_stocks = []
for code in df_stocks['code']:
if code.startswith(('00', '60', '30')):
stock_k_data = api.get_k_data(code, 'D')
stock_info = api.get_stock_info(1, code)
if stock_k_data is not None and len(stock_k_data) >= 11 \
and stock_k_data['turnover_ratio'].quantile(0.7) >= 0.03 \
and stock_k_data['turnover_ratio'].quantile(0.7) <= 0.12 \
and stock_k_data['kdjj'].iloc[-2] < stock_k_data['kdjj'].iloc[-1] \
and stock_info['CIRCULATING_MARKET_CAP'] <= 10000000000 \
and '未实现利润' not in stock_info['FINANCIALS'] \
and stock_info['TOTAL_ASSETS'] > 0 \
and stock_info['TOTAL_ASSETS_PREV'] > 0 \
and stock_info['TOTAL_LIABILITIES'] / stock_info['TOTAL_ASSETS'] < 0.9:
selected_stocks.append({'code': code, 'name': df_stocks[df_stocks['code'] == code]['name'].values[0],
'market_type': df_stocks[df_stocks['code'] == code]['market_type'].values[0],
'turnover_ratio': stock_k_data['turnover_ratio'].iloc[-1],
'kdjj': stock_k_data['kdjj'].iloc[-1],
'increase_ratio': (stock_k_data['close'].iloc[-1] - stock_k_data['close'].iloc[-2])/stock_k_data['close'].iloc[-2],
'circulating_market_cap': stock_info['CIRCULATING_MARKET_CAP'],
'total_assets': stock_info['TOTAL_ASSETS'],
'total_liabilities': stock_info['TOTAL_LIABILITIES']})
# 断开连接
api.disconnect()
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


