选股逻辑
选取振幅大于1、MACD零轴以上,并且周线MA5金叉MA10的股票。
选股逻辑分析
选取具有一定波动性的股票,且MACD指标表现良好,同时结合长线趋势的判断,确保股票选取具有良好的上涨趋势。
有何风险?
由于只考虑了周线趋势,忽略了日线和小时线等较短周期的波动情况,选股的准确性可能会受到影响。
如何优化?
可以考虑加入更多技术指标和基本面数据,结合多重角度进行选股,确保选股结果的可靠性。
最终的选股逻辑
选取振幅大于1、MACD零轴以上,并且周线MA5上穿MA10的股票。
同花顺指标公式代码参考
- 振幅:REF(ABS(HIGH-LOW)/REF(CLOSE,1)*100,0)>1
- MACD零轴以上:CROSS(MACD(12,26,9),0)>0
- MA5金叉MA10:CROSS(MA(CLOSE,5),MA(CLOSE,10))
python代码参考
import tushare as ts
import talib
def get_filter():
# 获取股票数据
df = ts.get_today_all()
# 计算涨跌幅和振幅
df['change'] = (df['trade'] - df['settlement']) / df['settlement']
amplitude = abs(df['high'] - df['low']) / df['open']
# 计算MACD指标和MA指标
df['MACD'], df['signal'], df['hist'] = talib.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9)
ma5 = talib.MA(df['close'], timeperiod=5)
ma10 = talib.MA(df['close'], timeperiod=10)
# 筛选周线MA5金叉MA10的股票
ma_cross = (ma5 > ma10) & (ma5.shift() < ma10.shift())
codes = ma_cross.index[ma_cross].values.tolist()
# 综合筛选条件
mask = (amplitude > 0.01) & (df['MACD'] > 0) & (df.index.isin(codes))
codes = mask.index.values.tolist()
return codes
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。