问财量化选股策略逻辑
选股逻辑:振幅大于1,近25个交易日有单日涨幅大于等于百分之10,大单净量排行。
选股逻辑分析
该选股策略综合考虑了波动性、趋势性和资金面因素,选取了振幅大于1,25个交易日内存在单日较大涨幅,以及大单净量排行的股票。这种逻辑可以更准确反映股票的资金面和潜在涨势,但仍然存在一些问题,例如: 由于大单净量是实时的,容易受到噪音的影响;指标本身不能完全预测未来股价,容易出现过度拟合情况等。
有何风险?
该选股策略存在以下风险:
- 指标本身不能完全预测未来股价,选出来的股票不一定能够实现预期收益;
- 大单净量对实时数据较为敏感,过度捕捉了资金面因素,短期内可能存在技术性因素的影响;
- 放量涨停、高换手股票容易存在利好套利、炒作情况;
- 缺乏基本面因素等先天质量的筛选标准,可能导致筛选出来的股票没有较好的成长性和价值性。
如何优化?
为了缓解上述风险,可以考虑进行以下优化:
- 参考历史数据,选取较为可靠的大单净量排名指标,减少实时数据噪音的影响;
- 结合市场特征,选取仅受基本面影响较大的板块和行业,过滤掉短期投机性和波动性较大的个股;
- 设定合理的换手率和流动性限制,剔除容易被利用的股票;
- 综合考虑股票自身的质量、基本面和市场特征等因素,加入更多股票指标作为筛选条件;
- 设定有效的筛选指标和容错机制,及时调整选股因素,适应不同市场环境的波动变化。
最终的选股逻辑
综上,我们最终确定的选股逻辑为:
- 振幅大于1;
- 近25个交易日内有单日涨幅大于等于百分之10;
- 大单净量排名为前20%的股票;
- 加入综合考虑财务指标,如市盈率、净资产收益率等;
- 设定合理的换手率和流动性限制;
- 结合市场特征,选取仅受基本面影响较大的板块和行业,减少股票的风险和波动性。
同花顺指标公式代码参考
C1 = IF(HIGH-LOW>ATR(CLOSE,20),1,0);
C2 = IF(ABS((CLOSE-REF(CLOSE,1))/REF(CLOSE,1))>=0.1, 1, 0);
C3 = RANK(-SUM(VOL*(CLOSE-OPEN),5))/RANK(SUM(VOL*(CLOSE-OPEN),5))<=0.2;
C4 = // 综合考虑财务指标的筛选;
SELECTOR = C1*C2*C3*C4*C5;
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 = ((df['vol'] * (df['close'] - df['open'])).rolling(window=5).sum().rank(ascending=False) /
(df['vol'] * (df['close'] - df['open'])).rolling(window=5).sum().rank(ascending=False).iloc[-1]) <= 0.2
C4 = // 综合考虑财务指标的筛选;
selector = C1 * C2 * C3 * C4 * C5
result = df.sort_values(by='heat', ascending=False).index[np.argsort(np.argsort(selector))]
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
