问财量化选股策略逻辑
- 至少5根均线重合的股票
- 现量大于1万手
- 高开
- 2019分红比例>25%
选股逻辑分析
以上四个条件都是基于技术分析和基本面分析的量化指标,旨在筛选出具有投资价值的股票。首先,均线重合可以反映股票的走势趋势,至少5根均线重合可以更好地反映股票的走势稳定性和趋势性。其次,现量大于1万手可以反映股票的流动性,流动性好的股票更容易受到投资者的关注和交易。再次,高开可以反映股票的开盘价高于前一交易日收盘价,表明市场对该股票的预期较高。最后,2019分红比例>25%可以反映公司的分红政策,分红比例越高,表明公司对投资者的回报越丰厚。
有何风险?
以上四个条件的量化指标虽然可以筛选出具有投资价值的股票,但是也存在一定的风险。首先,均线重合的股票可能过于集中,导致市场风险集中。其次,现量大于1万手的股票可能受到流动性限制,导致交易量不足。再次,高开的股票可能受到市场情绪的影响,导致价格波动较大。最后,2019分红比例>25%的股票可能受到公司财务状况的影响,导致分红比例下降。
如何优化?
为了降低以上风险,可以考虑以下优化措施:
- 增加均线数量,例如增加到10根均线,以更好地反映股票的走势趋势。
- 采用更严格的流动性指标,例如采用日均交易量作为流动性指标。
- 采用更灵活的高开指标,例如采用开盘价与前一交易日收盘价的中位数作为高开指标。
- 采用更严格的分红比例指标,例如采用过去三年的平均分红比例作为分红比例指标。
最终的选股逻辑
综合考虑以上四个条件和优化措施,最终的选股逻辑如下:
- 选取至少10根均线重合的股票。
- 选取现量大于10万手的股票。
- 选取高开幅度大于2%的股票。
- 选取2019年分红比例大于25%的股票。
python代码参考
以下是一个简单的Python代码示例,用于实现以上选股逻辑:
import talib
def get_rolling_mean(data, n):
"""
获取滚动均值
data: 数据序列
n: 均值窗口大小
"""
rolling_mean = talib.MA(data, n)
return rolling_mean
def get_rolling_std(data, n):
"""
获取滚动标准差
data: 数据序列
n: 均值窗口大小
"""
rolling_std = talib.STDDEV(data, n)
return rolling_std
def get_rolling_rsi(data, n):
"""
获取滚动相对强弱指标
data: 数据序列
n: 均值窗口大小
"""
rsi = talib.RSI(data, n)
return rsi
def get_rolling_macd(data, fast, slow, signal):
"""
获取滚动MACD指标
data: 数据序列
fast: 快速移动平均线
slow: 慢速移动平均线
signal: 转化线
"""
macd, macd_diff, macd_dea = talib.MACD(data, fast, slow, signal)
return macd, macd_diff, macd_dea
def get_rolling_kd(data, fast, slow):
"""
获取滚动KDJ指标
data: 数据序列
fast: 快速移动平均线
slow: 慢速移动平均线
"""
kd, kd_k, kd_d = talib.KD(data, fast, slow)
return kd, kd_k, kd_d
def get_rolling_bollinger(data, n):
"""
获取滚动布林线指标
data: 数据序列
n: 均值窗口大小
"""
upper, middle, lower = talib.BBANDS(data, n)
return upper, middle, lower
def get_rolling_cci(data, n):
"""
获取滚动CCI指标
data: 数据序列
n: 均值窗口大小
"""
cci = talib.CCI(data, n)
return cci
def get_rolling_mfi(data, n):
"""
获取滚动MFI指标
data: 数据序列
n: 均值窗口大小
"""
mfi = talib.MFI(data, n
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


