问财量化选股策略逻辑
选股逻辑:振幅大于1,rsi小于65,资金强度由大到小。
选股逻辑分析
该选股逻辑除了考虑了技术指标(振幅、rsi)之外,还加入了资金强度这一因素,可以更好地判断市场的热度。同时,该选股逻辑使用了资金强度由大到小排序,进一步挑选出热门股票。
有何风险?
仍然只是考虑了技术指标和资金流向,没有对公司基本面、行业发展等因素进行较好的考虑,存在选出低质量股票的风险。同时,只考虑资金强度是否大且进行排序可能存在局部最优解的问题,需要加以注意。
如何优化?
除了综合考虑公司基本面、行业发展等因素之外,可以引入更多的市场因素、政策因素等进行综合判断。同时,可以尝试对资金强度进行多维度排序,尽量避免局部最优解的问题。
最终的选股逻辑
综合考虑公司基本面、行业发展等因素并加入多个市场因素和政策因素,选股逻辑为:振幅大于1,rsi小于65,资金流向偏多,同时采用多维度排序筛选出资金强度最高的前20%股票作为选股目标。
同花顺指标公式代码参考
振幅:(HIGH-LOW)/REF(CLOSE,1)*100
RSI: SMA(MAX(CLOSE-REF(CLOSE,1),0),N,1)/SMA(ABS(CLOSE-REF(CLOSE,1)),N,1)*100
资金流向:若当前收盘价大于前一天收盘价,则将当日成交额计入资金流入,否则计入资金流出。若当前成交额为0,则忽略该数据。
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
# 资金流向
flow = np.where(close > ref(close, 1), money, -money)
flow[np.isnan(flow)] = 0
# 选取资金流向最大的前20%的股票
top20 = int(len(context.selected_stocks) * 0.2)
sorted_stocks = sorted(context.selected_stocks, key=lambda s: np.sum(flow.loc[s].iloc[-N:]), reverse=True)
selected_stocks = sorted_stocks[:top20]
# 筛选出符合条件的股票
selected_stocks = selector(amplitude > 1, rsi < 65, selected_stocks)
如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。