(supermind)振幅大于1、近25个交易日有单日涨幅大于等于百分之10、剔除昨日涨停

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

问财量化选股策略逻辑

选股逻辑:振幅大于1,近25个交易日有单日涨幅大于等于百分之10,剔除昨日涨停。

选股逻辑分析

该选股逻辑与前一个逻辑相似,但剔除了昨日涨停的标的,避免了短期内已经处于高位的标的,更符合一些趋势投资者的需求。

有何风险?

该选股策略可能存在以下风险:

  1. 近25个交易日有单日涨幅大于等于百分之10的标的不一定能够在短期内获得高收益;
  2. 选股条件过于严格,也会错过一些潜在的高增长标的;
  3. 选股条件可能主观,不完全基于客观市场数据。

如何优化?

为了降低上述风险,我们可以考虑以下优化措施:

  1. 在选股条件中加入更多的市场数据,如估值、市场情绪等因素;
  2. 根据不同长期和短期投资目标设定不同的选股条件;
  3. 优化选股条件中所使用到的市场数据。

最终的选股逻辑

基于上述考虑,我们综合出以下选股逻辑:

  1. 振幅大于1;
  2. 近25个交易日有单日涨幅大于等于百分之10;
  3. 剔除昨日涨停。

同花顺指标公式代码参考

C1 = IF(HIGH - LOW > ATR(CLOSE, 14), 1, 0);
C2 = IF(ABS((CHANGE(CLOSE, 1) / REF(CLOSE, 1))) >= 0.1, 1, 0);
C3 = IF(IF(CYCLESTOCK, BARSLAST(BARSCOUNT > 0 AND HIGH = LLV(HIGH,BARSCOUNT))<22, FALSE), 1, 0);
C4 = IF(IF(BARSLAST(HIGH = REF(HIGH, 1)), TRUE, FALSE) AND IF(HIGH < REF(HIGH, 1), TRUE, FALSE), 0, 1);
SELECTOR = C1*C2*C3*C4;
RESULT = SELECTOR;

python代码参考

import pandas as pd
import numpy as np

df = pd.read_csv('your_data.csv', index_col='date')

def short_term_momentum(df, n):
    return df.iloc[-n:]['return'].all() > 0

C1 = np.where(df['high'] - df['low'] > ta.atr(df['close'], 14), 1, 0)
C2 = np.where(abs((df['close'] - df['close'].shift(1)) / df['close'].shift(1)) >= 0.1, 1, 0)
C3 = np.where(df[df['high'] == df['high'].rolling(22, min_periods=1).min()].index[-1] > pd.Timestamp(df.index[-1]) - pd.Timedelta(days=30), 1, 0)
C4 = np.where(~(df['high'] == df['high'].shift(1)) | (df['high'] < df['high'].shift(1)), 1, 0)

selector = C1 * C2 * C3 * C4
result = df[selector == 1].index.tolist()
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论