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

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

问财量化选股策略逻辑

选股逻辑:振幅大于1,近25个交易日有单日涨幅大于等于百分之10,日线MACD>0。

选股逻辑分析

该选股逻辑将短期涨跌、长期趋势作为选股依据,适用于短期波动特别明显,但整体上涨趋势较好的股票。其中,日线MACD排除了回调后继续下跌的风险。MACD是一种常用的技术指标,可以直接反映出价格的短期涨跌情况和长期趋势,具有较高的参考价值。

有何风险?

该选股逻辑可能存在以下风险:

  1. MACD指标本身是一种滞后指标,对市场动态的反应速度相对较慢;
  2. 当股票市场整体下跌时,即使MACD为正,也可能跌破均线而表现不佳;
  3. 一些股票可能存在活跃度不高、波动较小的情况,以至于不满足振幅和单日涨跌幅大的条件。

如何优化?

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

  1. 将MACD指标与其他技术指标结合起来,使用复合指标进行选股;
  2. 设定不同的筛选条件,以应对市场整体上涨或下跌、行业、板块、市值等的变化;
  3. 结合基本面数据,对五年内财务指标、行业数据等进行分析,找出真正有价值的标的。

最终的选股逻辑

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

  1. 振幅大于1;
  2. 近25个交易日有单日涨幅大于等于百分之10;
  3. 日线MACD>0;
  4. 市值大于10亿。

同花顺指标公式代码参考

C1 = IF(HIGH - LOW > ATR(CLOSE, 14), 1, 0);
C2 = IF(ABS((CHANGE(CLOSE, 1) / REF(CLOSE, 1))) >= 0.1, 1, 0);
C3 = IF(MACD(MACD(12, 26, 9), 1) > 0, 1, 0);
C4 = IF(MARKETVALUE >= 10E+8, 1, 0);
SELECTOR = C1*C2*C3*C4;
RESULT = SELECTOR;

python代码参考

import pandas as pd
import talib as ta

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(ta.MACD(ta.MACD(df['close'], fastperiod=12, slowperiod=26, signalperiod=9), fastperiod=1, slowperiod=1, signalperiod=1)[2] > 0, 1, 0)
C4 = np.where(df['marketvalue'] >= 10e+8, 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)
收益&风险
源码

评论