(supermind)振幅大于1、近25个交易日有单日涨幅大于等于百分之10、前天macd

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

问财量化选股策略逻辑

选股逻辑:振幅大于1,近25个交易日有单日涨幅大于等于百分之10,前天macd<0。

选股逻辑分析

该选股逻辑综合考虑了市场短期动量和中长期趋势,选出了股票价格较为活跃且处于中期趋势反转状态的标的。在构建跟踪交易策略时,数组仓位比重 desxwh ,要根据具体交易目标来调整。

有何风险?

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

  1. 选股逻辑相对于市场整体状态而言,过于特定,可能错过一些高增长标的;
  2. 对于某些高波动性股票,市场价值可能会短期内出现较大波动,使交易策略受到影响。

如何优化?

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

  1. 根据不同长期和短期投资目标设定不同的选股条件;
  2. 优化选股条件中所使用到的市场数据;
  3. 将选股策略与其他交易策略进行结合。

最终的选股逻辑

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

  1. 振幅大于1;
  2. 近25个交易日有单日涨幅大于等于百分之10;
  3. 前天MACD<0。

同花顺指标公式代码参考

C1 = IF(HIGH - LOW > ATR(CLOSE, 14), 1, 0);
C2 = IF(ABS((CHANGE(CLOSE, 1) / REF(CLOSE, 1))) >= 0.1, 1, 0);
C3 = IF(DIF > 0 AND REF(DIF, 2) < 0, 1, 0);
SELECTOR = C1*C2*C3;
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['MACD'] > 0) & (df['MACD'].shift(2) < 0), 1, 0)

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

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

    模板如何使用?

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


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

评论