问财量化选股策略逻辑
选股逻辑:振幅大于1,近25个交易日有单日涨幅大于等于百分之10,2019分红比例>25%。
选股逻辑分析
该选股策略主要关注股票的技术面和基本面。其中,振幅大于1和近25个交易日有单日涨幅大于等于百分之10都是从技术面考虑,而2019分红比例的限制是从基本面考虑,能够避免选择盈利不稳定的股票。然而,该选股策略仅仅只考虑了股票的技术面和基本面,忽视了流动性方面,存在选择低流动性的股票的风险。
有何风险?
该选股策略存在以下风险:
- 忽视了流动性方面的考虑,可能会选择低流动性的股票。
- 忽略了一些可以考量的技术指标和基本面因素,使选股的效果不够理想。
- 分红比例等基本面因素有时不能很好地体现公司的盈利水平,因此独自做基于这些因素的选股策略的风险也较高。
如何优化?
针对以上风险,我们可以从以下方面进行优化:
- 对选股逻辑增加流动性方面的考虑,如加入成交量的限制等。
- 加入更多的技术指标和基本面因素,如量价指标、市盈率等。
- 综合考虑公司的不同财务指标,如收益、现金流等,以获取更全面的股票信息。
最终的选股逻辑
据此,我们最终确定的选股逻辑如下:
- 振幅大于1。
- 近25个交易日单日涨幅大于等于百分之10。
- 2019分红比例>25%。
- 考虑流动性,如成交量等因素。
- 对技术指标的考虑更加全面,如量价指标、MACD指标等。
- 考虑基本面,如市盈率、收益等财务指标。
同花顺指标公式代码参考
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(ITEMGET(TRADINGDATE, '2019') / ITEMGET(STOCKCODE, 'DIVIDEND_YEAR') > 0.25, 1, 0);
C4 = // 考虑流动性的代码,如成交量等因素。
C5 = // 对技术指标的考虑更加全面,如量价指标、MACD指标等。
C6 = // 考虑基本面,如市盈率、收益等财务指标。
SELECTOR = C1*C2*C3*C4*C5*C6;
RESULT= SORT_RANK(SELECTOR, ASCEND(SEARCH_RANK()));
python代码参考
df = pd.read_csv('your_data.csv', index_col='date')
C1 = np.where(df['high'] - df['low'] > ta.atr(df, 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['dividend_year'].str.split('-').str.get(0).astype(int) == 2019 &
df['dividend_ratio'] > 0.25, 1, 0)
C4 = // 考虑流动性的代码,如成交量等因素。
C5 = // 对技术指标的考虑更加全面,如量价指标、MACD指标等。
C6 = // 考虑基本面,如市盈率、收益等财务指标。
selector = C1 * C2 * C3 * C4 * C5 * C6
result = np.argsort(np.argsort(selector))
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
