选股逻辑
选取振幅大于1、MACD零轴以上且今日均线向上发散的股票。
选股逻辑分析
振幅大于1表明股票有较大的波动性,MACD零轴以上代表有一定的买入信号,同时今日均线向上发散表明股票短期内有上升趋势。这些因素综合起来,可以筛选出热度较高且有投资价值的股票。
有何风险?
该选股方式未考虑股票的基本面和行业前景等因素,可能选择出符合条件但投资价值有限的个别股票。此外,振幅大于1的股票也存在波动大、风险高的问题。
如何优化?
可以综合考虑股票的基本面和行业前景等因素,同时加强振幅分析方面的选股标准,比如结合其他技术指标如RSI等进行判断,以提高选股的精度。
最终的选股逻辑
选取振幅大于1、MACD零轴以上且今日均线向上发散的股票,并综合考虑股票的基本面和行业前景等因素进行筛选。
同花顺指标公式代码参考
- 振幅:REF(ABS(HIGH-LOW)/REF(CLOSE,1)*100,0)>1
- MACD零轴以上:CROSS(MACD(12,26,9),0)>0
- 今日均线向上发散:MA(CLOSE,5)>MA(CLOSE,10) AND MA(CLOSE,10)>MA(CLOSE,20) AND MA(CLOSE,20)>MA(CLOSE,30) AND MA(CLOSE,5)>REF(MA(CLOSE,5),1) AND MA(CLOSE,10)>REF(MA(CLOSE,10),1) AND MA(CLOSE,20)>REF(MA(CLOSE,20),1) AND MA(CLOSE,30)>REF(MA(CLOSE,30),1)
python代码参考
import tushare as ts
def get_filter():
# 获取股票数据
df = ts.get_today_all()
# 计算均线向上发散
ma5 = (df['close'] > df['close'].rolling(5).mean()) & (df['close'].rolling(5).mean() > df['close'].rolling(10).mean()) & (df['close'].rolling(10).mean() > df['close'].rolling(20).mean()) & (df['close'].rolling(20).mean() > df['close'].rolling(30).mean()) & (df['close'].rolling(5).mean() > df['close'].rolling(5).mean().shift(1)) & (df['close'].rolling(10).mean() > df['close'].rolling(10).mean().shift(1)) & (df['close'].rolling(20).mean() > df['close'].rolling(20).mean().shift(1)) & (df['close'].rolling(30).mean() > df['close'].rolling(30).mean().shift(1))
# 综合筛选条件
mask = (REF(ABS(df['high'] - df['low']) / REF(df['close'], 1) * 100, 0) > 1) & (CROSS(MACD(12, 26, 9), 0) > 0) & (ma5)
codes = mask.index.values.tolist()
return codes
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。