选取振幅大于1、MACD零轴以上,并且非ST股票(在10点之

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

选股逻辑

选取振幅大于1、MACD零轴以上,并且非ST股票(在10点之前选股)并且满足五部涨停战法的股票。

选股逻辑分析

满足以上条件的股票可能有较大的上升潜力,同时剔除了ST股票,减小了风险。

有何风险?

非ST股票和涨停战法的条件可能会让筛选出的股票范围过小,同时过于依赖技术指标可能会造成选股不稳定。

如何优化?

可以增加基本面的筛选条件,同时考虑股票市值、估值等因素作为筛选条件,减小风险。同时可以考虑加入其他技术指标或策略作为辅助筛选条件。

最终的选股逻辑

选取振幅大于1、MACD零轴以上,并且非ST股票(在10点之前选股)并且满足五部涨停战法的股票。

同花顺指标公式代码参考

  • 振幅:ABS((HIGH-LOW)/REF(CLOSE,1)*100)>1
  • MACD零轴以上:CROSS(MACD(12,26,9),0)>0
  • 非ST:INDUSTRY("1009036312")==0
  • 涨停战法:
    • 一阳五线:RSI(CLOSE,6)>60 AND NOT CROSS(CLOSE,MA(CLOSE,5))
    • 股价回踩:RSI(CLOSE,12)<35 AND CROSS(MA(CLOSE,5),CLOSE)
    • 进击阶段:RSI(CLOSE,6)>70 AND CROSS(MA(CLOSE,7),MA(CLOSE,12))
    • 走强阶段:RSI(CLOSE,6)>80 AND CROSS(MA(CLOSE,12),MA(CLOSE,24))
    • 强势阶段:RSI(CLOSE,6)>80 AND CROSS(MA(CLOSE,5),MA(CLOSE,12))

python代码参考

import tushare as ts

def get_filter():
  # 获取股票数据
  df = ts.get_today_all()

  # 筛选出非ST股票
  df = df[df['name'].str.contains('ST') == False]

  # 筛选出主板股票
  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)

  # 计算涨停战法
  rsi_6 = talib.RSI(df['close'], timeperiod=6)
  rsi_12 = talib.RSI(df['close'], timeperiod=12)
  ma_5 = talib.MA(df['close'], timeperiod=5)
  ma_7 = talib.MA(df['close'], timeperiod=7)
  ma_12 = talib.MA(df['close'], timeperiod=12)
  ma_24 = talib.MA(df['close'], timeperiod=24)
  one_yang = (rsi_6 > 60) & (~talib.CROSS(df['close'], ma_5))
  return_touch = (rsi_12 < 35) & talib.CROSS(ma_5, df['close'])
  enter_phase = (rsi_6 > 70) & talib.CROSS(ma_7, ma_12)
  strong_phase = (rsi_6 > 80) & talib.CROSS(ma_12, ma_24)
  bull_phase = (rsi_6 > 80) & talib.CROSS(ma_5, ma_12)
  five_day_limit_up = one_yang & return_touch & enter_phase & strong_phase & bull_phase

  # 综合筛选条件
  mask = (amplitude > 0.01) & (df['MACD'] > 0) & five_day_limit_up
  codes = mask.index.values.tolist()

  return codes

如何进行量化策略实盘?

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

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

模板如何使用?

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

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

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论

需要帮助?

试试AI小助手吧