(同花顺量化)9点25分涨幅小于6%_、换手率_2%且_9%、至少5根均线重合的股票

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

问财量化选股策略逻辑

  • 至少5根均线重合的股票
  • 换手率>2%且<9%
  • 9点25分涨幅小于6%

选股逻辑分析

这个策略的逻辑是基于技术分析和市场行为分析。首先,策略要求至少5根均线重合,这表明股票的价格趋势相对稳定,没有出现大幅波动。其次,策略要求换手率在2%到9%之间,这意味着该股票的交易活跃度适中,不是过于活跃或过于低迷。最后,策略要求9点25分涨幅小于6%,这表明该股票在开盘后没有出现大幅上涨,可能是潜在的买入机会。

有何风险?

这个策略的风险主要来自于市场风险和技术分析的局限性。首先,市场风险是指股票价格的波动可能超出策略的预期,导致策略无法获得预期的收益。其次,技术分析的局限性在于它只能反映过去的价格行为,而不能预测未来的价格走势。因此,策略的收益率可能无法达到预期。

如何优化?

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

  • 增加更多的均线重合条件,以提高策略的稳定性和准确性。
  • 考虑加入其他技术指标,如MACD、RSI等,以更好地分析股票的价格走势。
  • 考虑加入其他市场行为指标,如成交量、换手率等,以更好地分析股票的交易活跃度。
  • 考虑加入其他时间周期的数据,如日线、周线等,以更好地分析股票的价格走势。

最终的选股逻辑

  • 筛选出至少5根均线重合的股票
  • 筛选出换手率在2%到9%之间的股票
  • 筛选出9点25分涨幅小于6%的股票
  • 对于满足以上条件的股票,按照技术指标和市场行为指标的综合评分排序,选择评分最高的前10只股票作为最终的买入标的。

python代码参考

import talib
import pandas as pd

def get_rolling_mean(df, n):
    return df.rolling(n).mean()

def get_rolling_std(df, n):
    return df.rolling(n).std()

def get_bollinger Bands(df, n):
    upper = get_rolling_mean(df, n) + 2 * get_rolling_std(df, n)
    lower = get_rolling_mean(df, n) - 2 * get_rolling_std(df, n)
    return upper, lower

def get_rolling_percent_change(df, n):
    return df.rolling(n).pct_change()

def get_rolling_sum(df, n):
    return df.rolling(n).sum()

def get_rolling_count(df, n):
    return df.rolling(n).count()

def get_top_n(df, n):
    return df.nlargest(n)

def get_stock_data(stock_code):
    df = pd.read_csv(f'https://query1.finance.yahoo.com/v7/finance/download/{stock_code}', index_col='Date')
    df = df[['Adj Close']]
    df = df.resample('1d').last()
    df = df.fillna(method='ffill')
    df = df.astype(float)
    return df

def get_rolling_windows(df, n):
    return df.shift(n)

def get_rolling_window_percent_change(df, n):
    df = df.shift(n)
    df = df.pct_change()
    return df

def get_rolling_window_sum(df, n):
    df = df.shift(n)
    df = df.sum()
    return df

def get_rolling_window_count(df, n):
    df = df.shift(n)
    df = df.count()
    return df

def get_rolling_window_rsi(df, n):
    df = df.rolling(n).apply(lambda x: talib.RSI(x, timeperiod=n))
    return df

def get_rolling_window_macd(df, n):
    df = df.rolling(n).apply(lambda x: talib.MACD(x, fastperiod=n, slowperiod=n, signalperiod=n))
    return df

def get_rolling_window_bollinger_bands(df, n):
    upper, lower = get_rolling_window_percent_change(df, n)
    upper, lower = get_rolling_window_sum(df, n), get_rolling_window_count(df, n)
    return upper, lower

def get_rolling_window_mom(df, n):
    df = df.rolling(n).apply(lambda x: talib.MOM(x, timeperiod=n))
    return df

def get_rolling_window_dpo(df, n):
    df = df.rolling(n).apply(lambda x: talib.DPO(x, timeperiod=n))
    return df

def get_rolling_window_cci(df, n):
    df = df

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

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

模板如何使用?

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


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

评论