振幅大于1、MACD零轴以上、三个技术指标同时金叉 问财量化

用户头像神盾局量子研究部
2023-07-25 发布

选股逻辑

选取振幅大于1、MACD零轴以上、三个技术指标同时金叉的股票。

选股逻辑分析

振幅适中,MACD指标可以更好地反映出股票的走势,同时考虑了三个技术指标的金叉,具有较高的技术含量和预测能力。

有何风险?

只考虑了技术指标,未考虑公司基本面等其他因素,可能会带来较大的风险。

如何优化?

可以引入更多因素作为筛选条件,比如公司财务状况、行业前景等,提高筛选的可靠性和综合性。

最终的选股逻辑

选取振幅大于1、MACD零轴以上、三个技术指标同时金叉的股票。

同花顺指标公式代码参考

  • 振幅:ABS((HIGH-LOW)/REF(CLOSE,1)*100)>1
  • MACD零轴以上:CROSS(MACD(12,26,9),0)>0
  • 技术指标金叉:(CROSS(MA(CLOSE,5),MA(CLOSE,20))>0) AND (CROSS(MA(CLOSE,10),MA(CLOSE,30))>0) AND (CROSS(MA(CLOSE,20),MA(CLOSE,60))>0)

选取股票代码:

  • SELECTED: VAR1 AND VAR2 AND VAR3;

python代码参考

import tushare as ts
import talib

def get_filter():
  # 获取股票数据
  df = ts.get_today_all()
  
  # 筛选出主板股票
  df = df[df['market'] == 'sh']
  
  # 计算振幅
  amplitude = abs(df['high'] - df['low']) / df['open']

  # 计算MACD指标
  df['MACD'], df['signal'], df['hist'] = talib.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9)
  
  # 判断MACD是否零轴以上
  macd_above_zero = df['MACD'] > 0
  
  # 计算均线指标
  ma5 = talib.MA(df['close'], timeperiod=5)
  ma10 = talib.MA(df['close'], timeperiod=10)
  ma20 = talib.MA(df['close'], timeperiod=20)
  ma30 = talib.MA(df['close'], timeperiod=30)
  ma60 = talib.MA(df['close'], timeperiod=60)
  
  # 判断三个技术指标是否同时金叉
  cross_ma1 = (df['close'] > ma5) & (ma5 > ma20)
  cross_ma2 = (df['close'] > ma10) & (ma10 > ma30)
  cross_ma3 = (df['close'] > ma20) & (ma20 > ma60)
  cross_three_ma = cross_ma1 & cross_ma2 & cross_ma3
  
  # 综合筛选条件
  mask = (amplitude > 0.01) & macd_above_zero & cross_three_ma
  codes = mask.index.values.tolist()

  return codes
  

如何进行量化策略实盘?

请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

select_sentence = '市值小于100亿' #选股语句。

模板如何使用?

点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。

如果有任何问题请添加 下方的二维码进群提问。

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论

需要帮助?

试试AI小助手吧