(supermind)振幅大于1、反包、流通盘小于等于55亿股_

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

问财量化选股策略逻辑

选股逻辑:振幅大于1,反包,流通盘小于等于55亿股。

选股逻辑分析

该选股逻辑主要从振幅和形态两个角度出发进行筛选,并增加了流通盘的限制条件。形态因素的筛选增加了一些主观性,但相对于单纯的技术指标更具有选股价值。流通盘限制则可以筛选出少量但较优质的股票。

有何风险?

流通盘小于等于55亿股的公司并不一定就是估值优势股,也可能是“僵尸股”;反之,估值优势股未必满足流通盘条件,选股集中度可能较高。此外,形态因素的识别存在主观性,需要注意判断误差。

如何优化?

可以结合更多量化的指标,如市盈率、市净率等基本面因素,对股票进行筛选,并避免单纯依赖形态指标的筛选。另外,可以结合流通市值等指标作为流通盘的辅助筛选条件。

最终的选股逻辑

基于以上分析,提出完善后的选股逻辑:

  1. 振幅大于1;
  2. 近3天内出现反包形态;
  3. 流通盘小于等于55亿股;
  4. 当前股票收益率大于0;
  5. 综合分析其他因素,如市盈率、市净率等基本面指标;
  6. 筛选出优质股票。

同花顺指标公式代码参考

使用通达信指标计算,以下是该选股策略的通达信指标公式代码:

F01: HIGH/LOW - 1 > 0.01; // 振幅大于1
F02: NOT(SIGN(CLOSE - REF(CLOSE, 1)) == SIGN(REF(CLOSE, 1) - REF(CLOSE, 2))); // 反包
F03: MARKETVALUE <= 55000000000; // 流通盘小于等于55亿股
F04: CLOSE / REF(CLOSE, 1) > 1; // 当前收益率大于0
FILTER: F01 AND F02 AND F03 AND F04;
SELECT(IF(1, 1, 0), "选股"); // 输出文本信息:选股

python代码参考

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

def stock_filter(dv, symbols):
    # 获取数据,计算指标
    market_value = dv.get_ts('circulating_market_cap', symbol=symbols)
    close = dv.get_ts('close', symbol=symbols)

    price_filter = (close.iloc[:, -1] > close.iloc[:, -2])  # 当前收益率大于0
    amp = (close / close.shift(1) - 1).abs() > 0.01
    ta_func_renko = Ta('CDLTRISTAR', 0, dv.get_ts('open'), dv.get_ts('high'), dv.get_ts('low'), close)
    market_value_filter = (market_value.iloc[-1] <= 55000000000)

    reverse_pattern = ((ta_func_renko == 100).sum(axis=0) >= 1) & price_filter & amp

    selected_stocks = (reverse_pattern & market_value_filter)
    selected_stocks = selected_stocks.sort_values(by='pct_chg', ascending=False)

    return selected_stocks.index.tolist()

在结合形态因素和振幅因素的基础上,添加了市值作为辅助因素,相对更具有选股价值。同时,注意到市值并不一定等于流通市值,可以按需调整筛选条件。

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

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

    模板如何使用?

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


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

评论