问财量化选股策略逻辑
选股逻辑为MACD零轴以上,按个股热度从大到小排序名,非ST(10点之前选股票),五部涨停战法。选股时间为每个交易日开盘前。
选股逻辑分析
MACD指标可以反映短期市场趋势,个股热度可以反映市场关注度,非ST、五部涨停战法则可以反映市场情绪和趋势的变化。通过此选股逻辑,可以筛选出在市场趋势向上、有市场关注度、市场情绪和趋势变化的标的,并增加投资成功的概率。
有何风险?
- 五部涨停战法虽然反映了市场情绪,但是有一定的滞后性,可能会导致投资机会的误判;
- 仅考虑MACD指标、个股热度和非ST、五部涨停战法的投资策略,可能会忽略其他重要的市场信号;
- 样本量偏小,可能存在统计学偏差;
- 开盘前选股,可能会遇到新闻面、 geopolitics 等不可预知的影响。
如何优化?
- 考虑加入其它常用技术指标如KDJ、RSI等,提高选股的准确性;
- 加入基本面分析,选择具有实质性价值和行业优势的标的;
- 考虑加入板块题材等因素的分析,以扩大投资范围,提高收益的稳健性;
- 加入资讯量化的火选学习,提高对股市走势的预测精度。
最终的选股逻辑
选股逻辑为MACD零轴以上,按个股热度从大到小排序名,非ST(10点之前选股票),五部涨停战法。在此基础上可以根据具体情况适当加入其它筛选条件。同时可以根据预测市场走势、相应行业、板块题材等进行筛选。选股时间为每个交易日开盘前。
同花顺指标公式代码参考
MACD指标:
DIF: EMA(CLOSE, 12) - EMA(CLOSE, 26);
DEA: EMA(DIF, 9);
MACD: (DIF - DEA) * 2;
五部涨停战法指标:
VAR1: ((CLOSE-REF(CLOSE,3))/REF(CLOSE,3))*100;
VAR2: ((CLOSE-REF(CLOSE,4))/REF(CLOSE,4))*100;
VAR3: ((CLOSE-REF(CLOSE,5))/REF(CLOSE,5))*100;
VAR4: ((CLOSE-REF(CLOSE,6))/REF(CLOSE,6))*100;
VAR5: ((CLOSE-REF(CLOSE,7))/REF(CLOSE,7))*100;
COND1: COUNT((VAR1>=9.85 OR VAR2>=9.85 OR VAR3>=9.85 OR VAR4>=9.85 OR VAR5>=9.85), 5) = 5;
COND2: COUNT(CLOSE>OPEN, 5) = 5;
其中CLOSE为当日收盘价,REF为移动函数,判断5天内有5个交易日收盘价涨停且5天内有5个交易日收盘价大于开盘价。
Python代码参考
以下为python的选股筛选代码、排序代码,仅供参考:
import akshare as ak
import talib as ta
# 获取股票数据并计算筛选结果
data_stock = ak.stock_zh_a_daily_tx(symbol="", trade_date="")
data_stock_m = data_stock.copy()
data_stock_m['DIF'] = ta.EMA(data_stock_m['close'], timeperiod=12) - ta.EMA(data_stock_m['close'], timeperiod=26)
data_stock_m['DEA'] = ta.EMA(data_stock_m['DIF'], timeperiod=9)
data_stock_m['MACD'] = (data_stock_m['DIF'] - data_stock_m['DEA']) * 2
data_stock_filtered = data_stock_m[(data_stock_m['MACD'] > 0) & (data_stock_m['hot'] > 0) & (data_stock_m['name'].str.contains('ST') == False)]
data_stock_filtered = data_stock_filtered[(ta.COUNT(((((data_stock_filtered['close'] - ta.REF(data_stock_filtered['close'], timeperiod=3))/ta.REF(data_stock_filtered['close'], timeperiod=3)) * 100) >= 9.85) | ((((data_stock_filtered['close'] - ta.REF(data_stock_filtered['close'], timeperiod=4))/ta.REF(data_stock_filtered['close'], timeperiod=4)) * 100) >= 9.85) | ((((data_stock_filtered['close'] - ta.REF(data_stock_filtered['close'], timeperiod=5))/ta.REF(data_stock_filtered['close'], timeperiod=5)) * 100) >= 9.85) | ((((data_stock_filtered['close'] - ta.REF(data_stock_filtered['close'], timeperiod=6))/ta.REF(data_stock_filtered['close'], timeperiod=6)) * 100) >= 9.85) | ((((data_stock_filtered['close'] - ta.REF(data_stock_filtered['close'], timeperiod=7))/ta.REF(data_stock_filtered['close'], timeperiod=7)) * 100) >= 9.85), timeperiod=5) == 5) & (ta.COUNT(data_stock_filtered['close'] > data_stock_filtered['open'], timeperiod=5) == 5)]
result_sorted = data_stock_filtered.sort_values(by=['hot'], ascending=False)
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


