(supermind)振幅大于1、反包、周线MA5金叉MA10_

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

问财量化选股策略逻辑

选股逻辑:振幅大于1,反包,周线MA5金叉MA10。

选股逻辑分析

该选股策略综合了振幅指标、反包指标以及周线MA5和MA10金叉指标,同时要求选择周线MA5金叉MA10的股票,来筛选具有增长性和潜力性的个股。

有何风险?

该选股策略可能会排除掉那些近期相对较强但周线MA5未与MA10金叉的个股,而且在盘整市场中选股效果不佳。此外,由于短期的金叉和死叉可能并不可靠,策略也可能错过一些较好的投资机会。

如何优化?

可以采用相对强度指标,主动选择相对强势的个股,同时可以增加其他指标,如市盈率、市净率等,来分析股票的价值投资和跨周期表现。

最终的选股逻辑

基于以上分析,我们提出下面完善后的选择逻辑:

  1. 振幅大于1;
  2. 反包出现;
  3. 周线MA5金叉MA10。

同花顺指标公式代码参考

以下是该选股策略的指标公式代码:

F01:HIGH / LOW - 1 > 0.01; // 振幅大于1
F02:NOT(SIGN(CLOSE-REF(CLOSE, 1)) == SIGN(REF(CLOSE, 1) - REF(CLOSE, 2))); // 反包
F03:WMA(CLOSE,5) > WMA(CLOSE,10) AND CROSS(SSIFROE(WMA(CLOSE,5)), SSIFROE(WMA(CLOSE,10))); // 周线MA5金叉MA10

FILTER:F01 AND F02 AND F03 > 0;
SYMBOL_SORT("CLOSE*VOLUME*CAPITALIZATION/10000", SORT_DESCEND);
SELECT(IF(1, 1, 0),"诊股"); // 输出文本信息:选股

python代码参考

以下是 Python 实现该策略的选股逻辑:

def stock_filter(dv, symbol):
    # 获取数据,计算指标
    high = dv.get_ts("high", symbol=symbol)
    low = dv.get_ts("low", symbol=symbol)
    close = dv.get_ts("close", symbol=symbol)
    date_idx = pd.to_datetime(high.index).date

    amplitude = high / low - 1
    reverse_pattern = (Ta('CDL2CROWS', 0, open, high, low, close) == 100)
    ma5 = dv.add_formula("MA5", "Ta('MA', 0, close, volume, 5)", add_data=True)
    ma10 = dv.add_formula("MA10", "Ta('MA', 0, close, volume, 10)", add_data=True)
    golden_cross = (ma5 > ma10) & (ma5.shift() < ma10.shift())

    selected_stocks = amplitude & reverse_pattern & golden_cross

    return selected_stocks.index.tolist()

选股逻辑中,我们用 Python 的 pandas 库和 TA-Lib 库计算指标,筛选出符合条件的股票列表,以得到我们需要选择的股票列表。

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

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

    模板如何使用?

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


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

评论