问财量化选股策略逻辑
选股逻辑:振幅大于1,近25个交易日有单日涨幅大于等于百分之10,换手率3%-12%。
选股逻辑分析
该选股策略综合考虑了价格波动、强劲趋势和流动性三个方面,通过选取振幅大于1、近25个交易日有单日涨幅大于等于百分之10,并限制换手率在3%至12%之间的股票。该策略可能适合中短期交易者使用。但只关注了价格波动和换手率等因素,可能会忽略了公司的基本面、经济环境等因素。
有何风险?
该策略存在以下风险:
- 只关注了价格波动和流动性等近期因素,可能会错过一些具备长期增长潜力的公司。
- 由于限制了换手率,可能会错过一些短期涨幅较大的股票。
- 换手率受市场行情影响较大,市场流动性紧缩时可能会造成股票流动性不足。
如何优化?
为提高该选股逻辑的效率和准确性,我们建议考虑以下方法:
- 在价格波动和流动性等因素以外,考虑加入其他基本面因素的考量,如股票估值、财务健康状况、市场预期等。
- 考虑加入量比、资金流向等指标反映市场的资金面状况。
- 根据市场行情灵活调整换手率的上下限限制,以适应市场变化。
最终的选股逻辑
为了更全面地考虑股票的因素,我们给出了改进后的选股逻辑:
- 振幅大于1。
- 近25个交易日有单日涨幅大于等于10%。
- 换手率在3%-12%之间。
- 市盈率小于30,市净率小于3,市销率小于6, PEG小于1。
同花顺指标公式代码参考
C1 = IF(HIGH - LOW > ATR(CLOSE, 20), 1, 0);
C2 = IF(ABS(HIGH/REF(CLOSE, 1)-1)>0.1, 1, 0);
C3 = IF(VOL / MA(VOL, 10) < 1.2, 1, 0) * IF(VOL / MA(VOL, 30) > 0.8, 1, 0);
C4 = IF(DAY, 1, 0);//限制时间段为10:30-15:00
SELECTOR = C1*C2*C3*C4;
RESULT = SORT_RANK(SELECTOR, ASCEND(SEARCH_RANK()))
python代码参考
import pandas_ta as ta
df = pd.read_csv('your_data.csv', index_col='date')
C1 = np.where(df['high'] - df['low'] > ta.atr(), 1, 0)
C2 = np.where(np.abs(df['high'] / df['close'].shift(1) - 1) > 0.1, 1, 0)
C3 = np.where(df['volume'] / df['volume'].rolling(10).mean() < 1.2, 1, 0) * \
np.where(df['volume'] / df['volume'].rolling(30).mean() > 0.8, 1, 0)
# 限制时间段为10:30-15:00
C4 = np.where(np.logical_and(df.index.time >= dt.time(10, 30), df.index.time <= dt.time(15, 0)), 1, 0)
C5 = ta.PE() < 30
C6 = ta.PB() < 3
C7 = ta.PS() < 6
C8 = ta.PEG() < 1
selector = C1 * C2 * C3 * C4 * C5 * C6 * C7 * C8
result = np.argsort(np.argsort(selector))
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
