问财量化选股策略逻辑
选股逻辑:振幅大于1,近25个交易日有单日涨幅大于等于百分之10,流通市值大于100亿元。
选股逻辑分析
该选股逻辑兼顾了市场波动、流动性因素和公司规模,旨在寻找规模较大、股价波动较大且未来有可能成长的优质个股。该策略相比于仅关注技术指标或基本面的选股策略,多方面考虑,胜算大一些,能找到更多有价值的个股。
有何风险?
该选股策略存在以下风险:
- 策略限制较大,可能导致错过一些涨幅较大的股票;
- 过于关注市值,忽略了一些小市值但有价值的个股;
- 近期涨幅较大的股票可能属于热点板块,风险较大;
- 筛选结果可能偏向于投机性行业。
如何优化?
为了缓解上述风险,可以考虑进行以下优化:
- 结合多因子模型,增加一些基本面因素,比如ROE、净利润等;
- 适当放宽规模限制,设置较为灵活的市值上下限;
- 结合技术形态指标,比如MACD、RSI等,针对每一只股票做进一步的判断;
- 关注公司未来的发展前景和行业趋势,尤其是新兴行业的发展动态。
最终的选股逻辑
综上,我们最终确定的选股逻辑为:
- 振幅大于1;
- 近25个交易日单日涨幅大于等于百分之10;
- 流通市值大于100亿元;
- 经营现金流净额为正;
- 净资产收益率高于10%;
- 营业收入同比增长率为正;
- 业绩承诺兑现率高于70%。
同花顺指标公式代码参考
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(CIRC_MVAL>=10000000000,1,0);
C4 = IF(CASHFLOW>0,1,0);
C5 = IF(ROE>0.1,1,0);
C6 = IF(RATEOFINCRE>-1,1,0);
C7 = IF(PROMISETOKEEP>=0.7,1,0);
SELECTOR = C1*C2*C3*C4*C5*C6*C7;
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['circ_mval'] >= 10000000000, 1, 0)
C4 = np.where(df['cfo'] > 0, 1, 0)
C5 = np.where(df['roe'] > 0.1, 1, 0)
C6 = np.where(df['rateofincre'] > -1, 1, 0)
C7 = np.where(df['promisetokeep'] >= 0.7, 1, 0)
selector = C1 * C2 * C3 * C4 * C5 * C6 * C7
result = df.sort_values(by='heat', ascending=False).index[np.argsort(np.argsort(selector))]
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
