(同花顺量化)高点为两日最高_、10日涨幅大于0小于35、至少5根均线重合的股票

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 10日涨幅大于0小于35
  • 高点为两日最高

选股逻辑分析

这个策略的逻辑是寻找均线重合的股票,这些股票可能具有更强的支撑和阻力,并且在短期内有较大的上涨潜力。同时,策略还考虑了股票的10日涨幅,以确保股票具有一定的上涨趋势。最后,策略还考虑了股票的高点,以确保股票在短期内具有较强的上涨动力。

有何风险?

这个策略的风险在于,它可能过于依赖于短期的市场走势,而忽略了更长期的趋势。此外,如果股票的价格在短期内出现剧烈波动,这个策略可能会失去效果。另外,如果股票的价格在短期内没有达到预期的涨幅,这个策略可能会导致投资者的损失。

如何优化?

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

  • 将策略的时间框架延长,例如考虑20日均线重合的股票,以更好地捕捉长期趋势。
  • 将策略的参数进行调整,例如将10日涨幅的限制放宽,以允许更多的股票符合策略的要求。
  • 将策略应用于不同的市场,以更好地适应不同的市场环境。

最终的选股逻辑

  • 股票的5日、10日、20日、30日和60日均线重合
  • 股票的10日涨幅大于0小于35
  • 股票的高点为两日最高

python代码参考

以下是使用pandas和numpy库实现该策略的Python代码:

import pandas as pd
import numpy as np

def get_rolling_average(prices, n):
    """
    获取n日的滚动平均值
    """
    return prices.rolling(n).mean()

def get_reaching_targets(prices, n):
    """
    获取n日内的目标价格
    """
    targets = np.zeros_like(prices)
    targets[n-1] = prices[n-1] + (prices[n-1] - prices[n-n]) * (1 + n/100)
    for i in range(n-2, 0, -1):
        targets[i] = prices[i] + (targets[i+1] - prices[i+1]) * (1 + (n-i)/100)
    return targets

def get_rolling_slope(prices, n):
    """
    获取n日的滚动斜率
    """
    return np.diff(prices, n=n) / np.diff(prices.shift(n))

def get_rolling_angle(prices, n):
    """
    获取n日的滚动角度
    """
    slope = get_rolling_slope(prices, n=n)
    angle = np.arctan(slope)
    return angle

def get_rolling_center(prices, n):
    """
    获取n日的滚动中心
    """
    return np.mean(prices, n=n)

def get_rolling_middle(prices, n):
    """
    获取n日的滚动中间价
    """
    return np.median(prices, n=n)

def get_rolling_moving_average(prices, n):
    """
    获取n日的滚动移动平均值
    """
    return np.convolve(prices, np.ones(n)/n, mode='same')

def get_rolling_moving_average_direction(prices, n):
    """
    获取n日的滚动移动平均方向
    """
    direction = np.sign(prices[n-1] - prices[n-n])
    for i in range(n-2, 0, -1):
        direction = np.sign(prices[i] - prices[i+1])
    return direction

def get_rolling_direction(prices, n):
    """
    获取n日的滚动方向
    """
    direction = np.sign(prices[n-1] - prices[n-n])
    for i in range(n-2, 0, -1):
        direction = np.sign(prices[i] - prices[i+1])
    return direction

def get_rolling_median_direction(prices, n):
    """
    获取n日的滚动中位数方向
    """
    direction = np.sign(prices[n-1] - prices[n-n])
    for i in range(n-2, 0, -1):
        direction = np.sign(prices[i] - prices[i+1])
    return direction

def get_rolling_direction_signal(prices, n):
    """
    获取n日的滚动方向信号
    """
    direction = get_rolling_direction(prices, n=n)
    if direction == 0:
        return 0
    else:
        return 1 if direction > 0 else -1

def get_rolling_slope_signal(prices, n):
    """
    获取n日的滚动斜率信号

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

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

模板如何使用?

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


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

评论