问财量化选股策略逻辑
选股逻辑为MACD零轴以上,PE大于0,竞价时涨跌幅买入大单和特大单共计买入量大于0.7千万的股票。选股时间为每个交易日竞价时段结束后。
选股逻辑分析
MACD是一种趋势追踪指标,红柱代表上涨趋势,当MACD在零轴以上时,说明当前股票处于强势状态,有较大的上涨空间。同时,通过PE大于0可以筛选出当前股票的估值较合理。
在这个基础上,通过竞价时段买入大单和特大单,可以找到机构资金关注的潜在投资标的。要求大单和特大单共计买入量大于0.7千万,可以筛选到量能较大的品种,成交量大的股票投资价值更高。
综合以上选股条件,可以筛选出趋势较强,估值较合理,被机构资金关注且量能较大的潜在投资标的。
有何风险?
- 过于依赖技术指标和量能数据,可能忽略了基本面数据带来的投资风险;
- 竞价时段的大单和特大单买入不一定代表机构资金关注,也可能是个别投资者的交易行为;
- 忽略了股票的流动性和风险因素等其他综合因素。
如何优化?
- 引入其他技术指标和基本面数据来拓宽选股预判条件,提高精准度和投资成功率;
- 增加股票流动性等综合因素的考量,使选股更具综合性和全面性;
- 排除竞价时段大单和特大单的异常波动,提高筛选条件的可靠性。
最终的选股逻辑
选股逻辑为MACD零轴以上,PE大于0,竞价时涨跌幅买入大单和特大单共计买入量大于0.7千万的股票。选股时间为每个交易日竞价时段结束后。
同花顺指标公式代码参考
MACD指标:
DIF: EMA(CLOSE, 12) - EMA(CLOSE, 26);
DEA: EMA(DIF, 9);
MACD: (DIF - DEA) * 2;
PE指标:
PE: FIELD('pe_ttm', 0);
买卖盘挂单统计指标:
BID_VOL1: FIELD('bid_vol1', 0);
BID_VOL2: FIELD('bid_vol2', 0);
BID_VOL3: FIELD('bid_vol3', 0);
BID_VOL4: FIELD('bid_vol4', 0);
BID_VOL5: FIELD('bid_vol5', 0);
BID_PRICE1: FIELD('bid_price1', 0);
BID_PRICE2: FIELD('bid_price2', 0);
BID_PRICE3: FIELD('bid_price3', 0);
BID_PRICE4: FIELD('bid_price4', 0);
BID_PRICE5: FIELD('bid_price5', 0);
ASK_VOL1: FIELD('ask_vol1', 0);
ASK_VOL2: FIELD('ask_vol2', 0);
ASK_VOL3: FIELD('ask_vol3', 0);
ASK_VOL4: FIELD('ask_vol4', 0);
ASK_VOL5: FIELD('ask_vol5', 0);
ASK_PRICE1: FIELD('ask_price1', 0);
ASK_PRICE2: FIELD('ask_price2', 0);
ASK_PRICE3: FIELD('ask_price3', 0);
ASK_PRICE4: FIELD('ask_price4', 0);
ASK_PRICE5: FIELD('ask_price5', 0);
选股筛选公式:
MACD > 0 AND PE > 0 AND (BID_PRICE1-REF(CLOSE,1))/REF(CLOSE,1)>=0 AND (BID_VOL1+BID_VOL2+BID_VOL3+BID_VOL4+BID_VOL5+ASK_VOL1+ASK_VOL2+ASK_VOL3+ASK_VOL4+ASK_VOL5)/10000000>=0.7;
排序公式:
默认按照个股市值排序,这里不做展示。
Python代码参考
以下为python的选股筛选代码、排序代码,仅供参考:
import akshare as ak
# 获取股票列表并计算选股筛选条件
data = ak.stock_zh_a_tick_tx(symbol="", trade_date="")
condition = (data['macd'] > 0) & (data['pe_ttm'] > 0) & (data['bid_price1']-data['close'].shift(1))/data['close'].shift(1) >=0 & (data['bid_vol1']+data['bid_vol2']+data['bid_vol3']+data['bid_vol4']+data['bid_vol5']+data['ask_vol1']+data['ask_vol2']+data['ask_vol3']+data['ask_vol4']+data['ask_vol5'])/10000000>=0.7
result = data[condition]
# 按照市值排序
result_sorted = result.sort_values(by=['circ_mv'], ascending=False).head(5)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


