(iwencai选股策略)今日均线向上发散_、换手率_2%且_9%、至少5根均线重合的股票

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 换手率>2%且<9%
  • 今日均线向上发散

选股逻辑分析

  • 这个策略基于技术分析,通过观察股票的均线和换手率来筛选出可能具有投资价值的股票。
  • 首先,至少5根均线重合的股票通常被认为是趋势较为平缓的股票,这可能意味着市场对该股票的看法较为一致,从而减少市场风险。
  • 其次,换手率>2%且<9%的股票通常被认为是活跃的股票,这意味着市场对该股票的关注度较高,同时也表明该股票的流通性较好。
  • 最后,今日均线向上发散的股票通常被认为是市场看涨的信号,这可能意味着未来该股票的价格有上涨的趋势。

有何风险?

  • 这个策略的局限性在于它只能基于历史数据进行分析,因此无法预测未来市场走势。
  • 此外,这个策略只能筛选出部分股票,而不能保证筛选出的股票一定会有投资价值。

如何优化?

  • 可以考虑加入更多均线的组合,以更准确地判断股票的趋势。
  • 可以考虑加入其他技术指标,如MACD等,以更全面地分析股票的走势。

最终的选股逻辑

  • 选取至少5根均线重合的股票
  • 选取换手率>2%且<9%的股票
  • 选取今日均线向上发散的股票
  • 进行综合分析,筛选出可能具有投资价值的股票

python代码参考

import talib

def get_rolling_mean(data, n):
    """
    获取n日的滚动平均值
    data: 要计算平均值的数据序列
    n: 滚动平均值的天数
    """
    rolling_mean = talib.MA(data, n)
    return rolling_mean

def get均线重合股票(data):
    """
    获取至少5根均线重合的股票
    data: 要计算均线重合的股票数据序列
    """
    # 获取5日、10日、20日、60日和120日均线
    ma5 = get_rolling_mean(data, 5)
    ma10 = get_rolling_mean(data, 10)
    ma20 = get_rolling_mean(data, 20)
    ma60 = get_rolling_mean(data, 60)
    ma120 = get_rolling_mean(data, 120)

    # 计算5日、10日、20日、60日和120日均线的差值
    diff5 = ma5[-1] - ma5[-6]
    diff10 = ma10[-1] - ma10[-6]
    diff20 = ma20[-1] - ma20[-6]
    diff60 = ma60[-1] - ma60[-6]
    diff120 = ma120[-1] - ma120[-6]

    # 获取至少5根均线重合的股票
    result = []
    for i in range(len(diff5) - 6):
        if diff5[i] == diff10[i] == diff20[i] == diff60[i] == diff120[i]:
            result.append(data[i])
    return result

def get_stocks_with_high_volume(data):
    """
    获取换手率>2%且<9%的股票
    data: 要计算换手率的股票数据序列
    """
    # 获取股票的成交量数据
    volume = data['volume']
    # 获取换手率的计算公式
    turnover = volume / data['close'] * 100
    # 获取换手率>2%且<9%的股票
    result = []
    for i in range(len(turnover)):
        if turnover[i] > 2 and turnover[i] < 9:
            result.append(data[i])
    return result

def get_stocks_with_upward_moving_average(data):
    """
    获取今日均线向上发散的股票
    data: 要计算均线的股票数据序列
    """
    # 获取股票的均线数据
    ma = talib.MA(data, 5)
    # 获取今日均线向上发散的股票
    result = []
    for i in range(len(ma)):
        if ma[i] > ma[i-1] and ma[i] > ma[i-2]:
            result.append(data[i])
    return result

def get_stocks筛选逻辑

## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

模板如何使用?

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


## 如果有任何问题请添加 下方的二维码进群提问。
![94c5cde12014f99e262a302741275d05.png](http://u.thsi.cn/imgsrc/pefile/94c5cde12014f99e262a302741275d05.png)
收益&风险
源码

评论