(同花顺量化)30日平均线向上_、10天内涨停天数大于2、至少5根均线重合的股票

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

问财量化选股策略逻辑

首先,我们定义了至少5根均线重合的股票,这表示该股票的短期和中期趋势较为一致,有利于股票的上涨。接下来,我们筛选出10天内涨停天数大于2的股票,这表示该股票具有较强的市场关注度和资金流入,有利于股票的上涨。最后,我们筛选出30日平均线向上运行的股票,这表示该股票的长期趋势较为乐观。

选股逻辑分析

从以上三个筛选条件来看,我们的策略逻辑主要关注股票的短期和中期趋势以及市场关注度和资金流入。这些因素都可以影响股票的价格走势,因此我们的策略逻辑有望选出具有上涨潜力的股票。

然而,需要注意的是,我们的策略逻辑可能无法准确预测股票的未来表现。股票市场存在较大的不确定性,短期和中期趋势可能会受到各种因素的影响而发生变化。因此,我们的策略逻辑只能作为参考,不能保证选出的股票一定会上涨。

有何风险?

由于我们的策略逻辑可能无法准确预测股票的未来表现,因此投资者在使用该策略时需要承担较大的风险。如果所选出的股票表现不佳,投资者可能会蒙受损失。此外,市场存在较大的不确定性,短期和中期趋势可能会受到各种因素的影响而发生变化,因此投资者需要时刻关注市场动态,以便及时调整投资策略。

如何优化?

为了优化我们的策略逻辑,我们可以考虑增加更多的筛选条件,例如关注股票的盈利能力、财务状况等。此外,我们还可以考虑使用更多的技术分析工具,例如趋势线、均线等,以更准确地预测股票的未来表现。

最终的选股逻辑

以下是我们的最终选股逻辑:

  1. 筛选出至少5根均线重合的股票。
  2. 筛选出10天内涨停天数大于2的股票。
  3. 筛选出30日平均线向上运行的股票。

python代码参考

以下是我们的python代码参考:

import talib

def get_moving_average(prices, n):
    """计算n日移动平均线"""
    MA = talib.MA(prices, n)
    return MA

def get_sma(prices, n):
    """计算n日简单移动平均线"""
    SMA = talib.SMA(prices, n)
    return SMA

def get_bollinger_bands(prices, n):
    """计算n日布林线"""
    upper, middle, lower = talib.BBANDS(prices, n, m=2, std=2)
    return upper, middle, lower

def get_stochastic_rsi(prices, n):
    """计算n日相对强弱指标"""
    rsi = talib.RSI(prices, n)
    return rsi

def get_filter(prices, n1, n2, n3, n4):
    """过滤条件"""
    ma1 = get_moving_average(prices, n1)
    ma2 = get_moving_average(prices, n2)
    ma3 = get_moving_average(prices, n3)
    ma4 = get_moving_average(prices, n4)
    sma1 = get_sma(prices, n1)
    sma2 = get_sma(prices, n2)
    sma3 = get_sma(prices, n3)
    sma4 = get_sma(prices, n4)
    upper, middle, lower = get_bollinger_bands(prices, n1)
    rsi = get_stochastic_rsi(prices, n1)
    if ma1 > ma2 and ma2 > ma3 and ma3 > ma4:
        return True
    elif ma1 < ma2 and ma2 < ma3 and ma3 < ma4:
        return True
    elif sma1 > sma2 and sma2 > sma3 and sma3 > sma4:
        return True
    elif sma1 < sma2 and sma2 < sma3 and sma3 < sma4:
        return True
    elif rsi > 70:
        return True
    elif rsi < 30:
        return True
    else:
        return False

def get_filter_prices(prices):
    """筛选符合条件的股票"""
    filtered_prices = []
    for price in prices:
        if get_filter(price, 5, 10, 30, 60):
            filtered_prices.append(price)
    return filtered_prices

如何进行量化策略实盘?

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

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

模板如何使用?

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

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

94c5cde12014f99e262a302741275d05.png

收益&风险
源码

评论