(supermind)振幅大于1、反包、剔除昨日涨停_

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

问财量化选股策略逻辑

选股逻辑:振幅大于1,反包,剔除昨日涨停。

选股逻辑分析

该选股逻辑考虑了股票的波动情况、趋势反转以及昨日涨势等多种因素。振幅大于1说明股票波动范围较大,有短期价值;反包形态则暗示股票出现了趋势反转的可能,具有买入信号;剔除昨日涨停可以避免涨停板的股票选择,避免市场风险。综合以上因素,可以选出具有较好投资价值的股票。

有何风险?

同样地,该选股策略的风险在于其忽略了股票的基本面情况,如果市场整体行情疲软,即使股票满足筛选条件,但也可能存在较高的市场风险。另外,该选股逻辑中使用了反包形态的筛选条件,但反包形态并不是100%准确的,可能存在一定误判的情况。

如何优化?

对于股票市场整体行情疲软的情况,可以考虑增加类似于市场指数涨跌等整体情况的因素进行综合考虑,避免出现盲目的选股决策。另外,可以根据历史数据分析反包形态的真实准确率、假阳率等细节指标,从而对选股逻辑进行进一步的优化。

最终的选股逻辑

在以上分析的基础上,我们提出完善后的选股逻辑:

  1. 振幅大于1;
  2. 近3个交易日内有反包形态;
  3. 剔除昨日涨停。

同花顺指标公式代码参考

以下是该选股策略在通达信中的指标公式代码:

F01: (HIGH/LOW - 1) > 0.01; // 振幅大于1
F02: NOT(SIGN(CLOSE - REF(CLOSE, 1)) == SIGN(REF(CLOSE, 1) - REF(CLOSE, 2))); // 近3个交易日内有反包形态
F03: (NOT(ISLASTBAR()) AND dv_limit_status()==0); // 剔除昨日涨停
FILTER: F01 AND F02 AND F03;
SELECT(IF(1, 1, 0), "选股"); // 输出选中的股票

其中 ISLASTBAR()dv_limit_status() 为通达信自带函数,分别用于识别当前是否是最新一根K线以及是否触及涨停板。

Python代码参考

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

# 数据预处理部分
close = dv.get_ts('close', symbol=symbols)
high = dv.get_ts('high', symbol=symbols)
low = dv.get_ts('low', symbol=symbols)

df_pct_chg = close.pct_change()
df_pct_chg[df_pct_chg.isna()] = 0

lmtup_cnt_filter = (dv.get_ts('limitup_count', symbol=symbols, start_date=start_date, end_date=end_date) == 0).iloc[-1,:]

amp_filter = (high / low - 1) > 0.01

ta_func_renko = Ta('CDLTRISTAR', 0, high, low, close)
rt_filter = (ta_func_renko == 100)
rt_filter = rt_filter.iloc[:, :-1].sum(axis=1) > 0

selected_stocks = ((amp_filter & rt_filter) & lmtup_cnt_filter).sort_values(ascending=False)
return selected_stocks.index.tolist()

通过综合考虑振幅、反包、涨停等因素来进行筛选,以筛选出具有较好的市场表现和持续性的股票。

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

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

    模板如何使用?

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


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

评论