(同花顺量化)500日内至少2次涨停_、昨天换手率>8%、至少5根均线重合的股票

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 昨天换手率>8%
  • 500日内至少2次涨停

选股逻辑分析

这个策略的逻辑是基于技术分析和市场行为来筛选股票。首先,它要求至少5根均线重合,这表明股票价格在不同时间段内的趋势比较稳定,不容易出现大幅波动。其次,昨天换手率要求大于8%,这表明股票的交易活跃度较高,市场关注度较高。最后,要求股票在500日内至少出现2次涨停,这表明股票的价格在短期内有较强的上涨动力。

有何风险?

这个策略的逻辑基于技术分析和市场行为,因此可能会受到市场情绪和投资者行为的影响。此外,由于策略要求股票价格在短期内有较强的上涨动力,因此可能会面临一定的市场风险。

如何优化?

为了优化这个策略,可以考虑以下几点:

  • 选择更多的均线作为参考,以更好地反映股票的趋势和稳定性。
  • 考虑加入其他市场指标,如市盈率、市净率等,以更好地评估股票的价值和风险。
  • 考虑加入其他市场行为指标,如成交量、换手率等,以更好地反映股票的交易活跃度和市场关注度。

最终的选股逻辑

  • 股票价格至少有5根均线重合
  • 昨天换手率大于8%
  • 500日内至少出现2次涨停
  • 选择更多的均线作为参考
  • 考虑加入其他市场指标,如市盈率、市净率等
  • 考虑加入其他市场行为指标,如成交量、换手率等

python代码参考

import talib

def get_stock_data(symbol):
    # 获取股票数据
    data = yf.download(symbol, start='2021-01-01', end='2021-12-31')
    # 计算均线
    ma5 = talib.MA(data['Close'], timeperiod=5)
    ma10 = talib.MA(data['Close'], timeperiod=10)
    ma20 = talib.MA(data['Close'], timeperiod=20)
    ma50 = talib.MA(data['Close'], timeperiod=50)
    ma200 = talib.MA(data['Close'], timeperiod=200)
    # 计算换手率
    data['TR'] = data['Volume'] / data['Close'] * 100
    # 计算昨天换手率
    data['yesterday_TR'] = data['TR'].shift(1)
    data['yesterday_TR'] = data['yesterday_TR'].fillna(0)
    data['yesterday_TR'] = data['yesterday_TR'] * data['Close'].shift(1)
    data['yesterday_TR'] = data['yesterday_TR'] / data['Close']
    # 计算是否出现至少2次涨停
    data['has_stocks'] = data['Close'].diff() > 0
    data['has_stocks'] = data['has_stocks'].shift(1)
    data['has_stocks'] = data['has_stocks'] * data['Close'].shift(1)
    data['has_stocks'] = data['has_stocks'] / data['Close']
    data['has_stocks'] = data['has_stocks'].cumsum()
    data['has_stocks'] = data['has_stocks'] >= 2
    # 合并多个指标
    data = pd.merge(data, ma5, left_on='Date', right_on='Close')
    data = pd.merge(data, ma10, left_on='Date', right_on='Close')
    data = pd.merge(data, ma20, left_on='Date', right_on='Close')
    data = pd.merge(data, ma50, left_on='Date', right_on='Close')
    data = pd.merge(data, ma200, left_on='Date', right_on='Close')
    data = pd.merge(data, data['TR'], left_on='Date', right_on='TR')
    data = pd.merge(data, data['yesterday_TR'], left_on='Date', right_on='yesterday_TR')
    data = pd.merge(data, data['has_stocks'], left_on='Date', right_on='has_stocks')
    # 返回合并后的数据
    return data

如何进行量化策略实盘?

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

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

模板如何使用?

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

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

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论