选取振幅大于1、MACD零轴以上,且昨日换手率乘以今日竞价成

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

问财选股逻辑

选取振幅大于1、MACD零轴以上,且昨日换手率乘以今日竞价成交量除以昨日成交量在0.5~2之间的股票。

选股逻辑分析

选取具有一定波动性的股票,同时考虑了成交量和换手率的因素,确保选取的股票具有一定的成长性和趋势性。

有何风险?

存在昨日成交量过小或过大、竞价成交量过大等因素导致换手率乘以今日竞价成交量除以昨日成交量不准确,选股结果可能存在一定错误率。

如何优化?

可以加入更多与成交量和换手率相关的指标,如成交额、委比、委差等,同时进行多个指标的综合筛选,确保选股结果的可靠性。

最终的选股逻辑

选取振幅大于1、MACD零轴以上,且昨日成交额在一定范围内,同时结合其他因素进行筛选。

同花顺指标公式代码参考

  • 振幅:REF(ABS(HIGH-LOW)/REF(CLOSE,1)*100,0)>1
  • MACD零轴以上:CROSS(MACD(12,26,9),0)>0
  • 换手率和成交量:(REF(VOL,1)*REF((CLOSE-REF(CLOSE,1))/REF(CLOSE,1),1)>0.5) AND (REF(VOL,1)*REF((CLOSE-REF(CLOSE,1))/REF(CLOSE,1),1)<2)

python代码参考

import tushare as ts

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

  # 计算昨日换手率和今日竞价成交量
  turnover_ratio = df['turnoverratio']
  bid_vol, ask_vol = ts.get_today_ticks(df.code[0]).loc[:, ['volume', 'type']].values.T
  bid_vol = sum(bid_vol[ask_vol == '买盘'])

  # 计算昨日成交量
  yesterday_vol = ts.get_hist_data(df.code[0], ktype='D', start='2 days ago', end='1 day ago').iloc[0]['volume']

  # 计算换手率和成交量的乘积
  product = turnover_ratio.shift(1) * bid_vol / yesterday_vol

  # 综合筛选条件
  mask = (product > 0.5) & (product < 2) & (df['changepercent'] > 0) & (df['trade'] > 3) & (df['trade'] < 100)
  codes = mask.index.values.tolist()

  return codes

如何进行量化策略实盘?

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

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

模板如何使用?

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

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

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论

需要帮助?

试试AI小助手吧