(supermind)振幅大于1、近25个交易日有单日涨幅大于等于百分之10、换手率_2%

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

问财量化选股策略逻辑

选股逻辑:振幅大于1,近25个交易日有单日涨幅大于等于百分之10,换手率>2%且<9%。

选股逻辑分析

该选股逻辑结合了市场的波动性、趋势性以及流动性因素,旨在筛选出具有一定成长性和价值性,同时有一定流动性保障的优质个股。这种选股逻辑比较综合,但仍然存在一些问题,如偏重短线操作,忽略了股票的长期价值和业绩成长等。

有何风险?

该选股策略存在以下风险:

  1. 策略限制较大,可能错过一些涨幅较大的股票;
  2. 近25个交易日单日涨幅大于等于百分之10的股票可能属于热点板块,风险较大;
  3. 换手率仅一方面考虑了流动性因素,股票本身的业绩、资产质量等因素未考虑,容易选出质量较低的个股;
  4. 缺乏基本面因素等长期价值的筛选标准,可能导致选出来的股票未来表现不佳。

如何优化?

为了缓解上述风险,可以考虑进行以下优化:

  1. 结合市场趋势特征,结合指数波动情况,合理设定振幅参数;
  2. 适当放宽换手率容忍度,增加债券回报率等其他指标作为选股条件;
  3. 设定合理的复合增长率,沪深股票排名等基本面条件,筛选足够具有持续成长性的优质股票;
  4. 结合大盘预测和市场走势情况,精准选取短期热点板块。

最终的选股逻辑

综上,我们最终确定的选股逻辑为:

  1. 振幅大于1;
  2. 近25个交易日单日涨幅大于等于百分之10;
  3. 换手率大于2%且小于9%;
  4. 市盈率低于20倍;
  5. 经营现金流净额为正;
  6. 市净率小于3倍。

同花顺指标公式代码参考

C1 = IF(HIGH-LOW>ATR(CLOSE,20),1,0);
C2 = IF(ABS((CLOSE-REF(CLOSE,1))/REF(CLOSE,1))>=0.1,1,0);
C3 = IF((VOL/MA(VOL,20))>=0.02 AND (VOL/MA(VOL,20))<=0.09,1,0);
C4 = IF(PE<=20,1,0);
C5 = IF(CASHFLOW>0,1,0);
C6 = IF(PB<=3,1,0);
SELECTOR = C1*C2*C3*C4*C5*C6;
RESULT = SORT_RANK(SELECTOR,DESCEND(HEAT));

python代码参考

import pandas as pd
import talib as ta

df = pd.read_csv('your_data.csv', index_col='date')

C1 = np.where(df['high'] - df['low'] > ta.atr(df['close'], 20), 1, 0)
C2 = np.where(abs((df['close'] - df['close'].shift(1)) / df['close'].shift(1)) >= 0.1, 1, 0)
C3 = np.where((df['vol'] / ta.ma(df['vol'], 20)) >= 0.02 & (df['vol'] / ta.ma(df['vol'], 20)) <= 0.09, 1, 0)
C4 = np.where(df['pe'] <= 20, 1, 0)
C5 = np.where(df['cfo'] > 0, 1, 0)
C6 = np.where(df['pb'] <= 3, 1, 0)

selector = C1 * C2 * C3 * C4 * C5 * C6
result = df.sort_values(by='heat', ascending=False).index[np.argsort(np.argsort(selector))]
    ## 如何进行量化策略实盘?
    请把您优化好的选股语句放入文章最下面模板的选股语句中即可。

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

    模板如何使用?

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


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

评论

需要帮助?

试试AI小助手吧