(supermind)振幅大于1、反包、2021年营收除2018年营收大于1

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

问财量化选股策略逻辑

选股逻辑:振幅大于1,反包,2021年营收/2018年营收大于1.1。

选股逻辑分析

除了技术指标,该选股逻辑还考虑了公司基本面,即营收增长率。筛选出营收增长率较好的公司,可以减少一定的风险,同时提高选股的准确性。

有何风险?

该选股逻辑仍然只是一个有限的机器策略,并未考虑其他的重要因素,如股票的市场价值、成交量等,可能导致选股结果出现瑕疵。同时,在不同的行业之间,营收增长率的可比性也会有所不同。

如何优化?

可以进一步考虑其他基本面因素,如市盈率、净资产收益率等指标,从多角度挖掘优秀的公司。此外,可以通过聚合多个模型的方法,综合考虑不同选股策略的优点。

最终的选股逻辑

基于以上分析,我们提出改进后的股票筛选逻辑:

  1. 振幅大于1;
  2. 反包出现;
  3. 2021年营收/2018年营收大于1.1。

同花顺指标公式代码参考

以下是通达信指标的公式代码示例:

F01:HIGH / LOW - 1 > 0.01;   // 振幅大于1
F02:NOT(SIGN(CLOSE-REF(CLOSE, 1)) == SIGN(REF(CLOSE, 1) - REF(CLOSE, 2)));  // 反包
F03:YEAR4(C.2018) != 0 
    AND YEAR4(C.2021) != 0 
    AND (C.2021 / C.2018) > 1.1;   // 营收增长率大于1.1

FILTER:F01 AND F02 AND F03;
SYMBOL_SORT("热度", SORT_DESCEND);
SELECT(IF(F04, 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)
    revenue_2018 = dv.get_ts("revenue", symbol=symbol, start_date="20180101", end_date="20181231").iloc[0]
    revenue_2021 = dv.get_ts("revenue", symbol=symbol, start_date="20210101", end_date="20211231").iloc[0]
    # 计算其他指标
    selected_stocks = (high / low - 1 > 0.01) & (Ta('CDL2CROWS', 0, open, high, low, close) == 100) & (revenue_2021 / revenue_2018 > 1.1)
    selected_stocks = selected_stocks[selected_stocks].sort_values(by="heat_rank", ascending=False)
    return selected_stocks.index.tolist()

在 Python 中实现整个选股逻辑,获取营收数据并计算营收增长率作为筛选条件之一,从而减小股票筛选的风险。

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

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

    模板如何使用?

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


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

评论