问财量化选股策略逻辑
选股逻辑:振幅大于1,rsi小于65,周K线上穿30周线。
选股逻辑分析
该选股逻辑同样选取了股价波动较大、超买程度不高的个股,并通过周K线上穿30周线进行筛选。相比于涨幅等指标,这个指标更能反映出股票的长期趋势。同时,该逻辑同样考虑了超买程度,通过rsi过滤掉超买的个股,以减少风险。
有何风险?
该选股策略的风险是由于缺乏更加细致的分析,可能漏掉了一些好的个股或者选择了潜在的风险品种。另外,周线数据受到市场因素影响较大,所以筛选结果可能不稳定。
如何优化?
可以在筛选时加入更多的技术指标,如移动平均线、MACD等,利用行情走势来选择个股。同时,可以加入其它基本面指标如发布公告、业绩快报等判断股票表现。建议使用多维度分析策略,以提高选股的准确性。
最终的选股逻辑
选股逻辑为:振幅大于1,rsi小于65,周K线上穿30周线,并结合行情走势、基本面特征等进行筛选。
同花顺指标公式代码参考
振幅:(high-low)/ref(close,1)*100>1
RSI:rsi(N)<65
周K线上穿30周线,用KDJ指标中的K值和D值来运算(N表示周线数):
K值计算方法:smoothing[(close-Nlow)/(Nhigh-Nlow)*100, X],X为平滑系数。
D值计算方法:smoothing[K,X],X为平滑系数。
K线穿上30周线:crossup(K,D,SMA(30),2)
其中,crossup是指当前周期K线穿上了30周均线,2表示穿过周期的数量。
Python代码参考
# 振幅
amplitude = (high - low) / ref(close, 1) * 100
# RSI
up = max(close - ref(close, 1), 0)
down = abs(close - ref(close, 1))
rs = sma(up, N, 1) / sma(down, N, 1)
rsi = rs / (1 + rs) * 100
# K值计算方法
k = smoothing((close-minl(N))/((maxh(N)-minl(N))*100), X)
# D值计算方法
d = smoothing(k, X)
# 选取K线上穿30周线的股票
selected_stocks = selector(amplitude > 1, rsi < 65, crossup(k, d, sma(close, 30), 2))
# 筛选出股票的相对强度并选取强度最强的前20%
rps = (close - sma(close, N)) / sma(close, N)
top20 = int(len(context.selected_stocks) * 0.2)
sorted_stocks = sorted(selected_stocks, key=lambda s: rps.loc[s].iloc[-1], reverse=True)
selected_stocks = sorted_stocks[:top20]
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。