(iwencai量化策略)竞价涨幅>-2<5_、昨天换手率>8%、至少5根均线重合的股票

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 昨天换手率>8%
  • 竞价涨幅>-2<5

选股逻辑分析

  • 这个策略基于均线和换手率的结合,寻找那些均线黏合的股票,这些股票通常代表着趋势的转变或整理阶段,同时也需要考虑昨天的换手率是否足够高,以保证市场活跃度。
  • 竞价涨幅的限制是为了过滤掉一些虚假的上涨,避免选到一些高开低走的股票。

有何风险?

  • 这个策略的局限性在于它只能选出那些均线黏合的股票,而忽略了其他一些因素,例如股票的市值、行业、盈利能力等等。
  • 如果市场整体趋势不明确,那么均线黏合的股票可能无法准确反映市场走势,从而导致选出的股票表现不佳。

如何优化?

  • 可以考虑加入其他因素,例如市值、盈利能力、行业等等,以更全面地评估股票的价值和潜力。
  • 可以通过调整均线的参数来适应不同的市场环境,例如选择不同的均线数量、时间周期等等。

最终的选股逻辑

  • 选取至少5根均线黏合的股票
  • 过滤掉昨天换手率低于8%的股票
  • 选取竞价涨幅在-2到5之间的股票
  • 加入市值、盈利能力、行业等因素的评估
  • 根据市场环境调整均线的参数

python代码参考

import talib
import numpy as np

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

def get_weighted_moving_average(prices, n, weights):
    """
    计算n天的加权移动平均线
    """
    MA = talib.MA(prices, n, weights)
    return MA

def get_price_change(prices, n):
    """
    计算n天的价格变化
    """
    price_change = np.diff(prices)
    price_change = np.insert(price_change, 0, 0)
    price_change = price_change / prices[:-1]
    return price_change

def get昨日换手率(prices, n):
    """
    计算n天的昨日换手率
    """
    close_prices = prices[-n:]
    open_prices = prices[:-n]
    close_prices = close_prices / open_prices
    return close_prices

def get竞价涨幅(prices, n):
    """
    计算n天的竞价涨幅
    """
    close_prices = prices[-n:]
    open_prices = prices[:-n]
    return (close_prices - open_prices) / open_prices

def get_5均线黏合(prices, n):
    """
    判断n天的5条均线是否黏合
    """
    MA1 = get_moving_average(prices, 5)
    MA2 = get_moving_average(prices, 10)
    MA3 = get_moving_average(prices, 20)
    MA4 = get_moving_average(prices, 30)
    MA5 = get_moving_average(prices, 60)
    if MA1[-1] == MA2[-1] == MA3[-1] == MA4[-1] == MA5[-1]:
        return True
    else:
        return False

def get_stock_scores(prices, n, weights):
    """
    计算股票的综合评分
    """
    MA1 = get_moving_average(prices, 5)
    MA2 = get_moving_average(prices, 10)
    MA3 = get_moving_average(prices, 20)
    MA4 = get_moving_average(prices, 30)
    MA5 = get_moving_average(prices, 60)
    price_change = get_price_change(prices, n)
    yesterday換手率 = get昨日换手率(prices, n)
   竞价涨幅 = get竞价涨幅(prices, n)
    if MA1[-1] == MA2[-1] == MA3[-1] == MA4[-1] == MA5[-1]:
        return 100
    else:
        return 100 - (MA1[-1] - MA2[-1]) / (MA1[-1] + MA2[-1]) * (MA3[-1] - MA4[-1]) / (MA3[-1] + MA4[-1]) * (MA5[-1] - MA6[-1]) / (MA5[-1] + MA6[-1

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

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

模板如何使用?

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


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

评论