问财量化选股策略逻辑
选股逻辑:振幅大于1,rsi小于65,归属母公司股东的净利润(同比增长率)大于20%小于等于100%。
选股逻辑分析
该选股逻辑综合考虑了技术指标和公司基本面的因素,振幅和rsi为技术指标,反映了市场短期波动情况和股票的超买超卖情况。同时,在这基础上,加入了公司基本面中归属母公司股东净利润同比增长率的筛选条件,更加全面地考虑了股票的盈利能力和成长潜力。
有何风险?
选股策略过于依赖归属母公司股东净利润同比增长率这一因素,而忽略了其他可能对股票涨跌产生影响的因素,如公司负债情况、市场情况等。在选择参考时间段和计算方式时,也可能存在数据突变或者数据波动的情况,会对选股策略造成一定的影响。
如何优化?
可考虑在该选股逻辑基础上,引入更多的技术指标如KDJ、MACD等进行筛选,同时增加其他基本面指标如市盈率、市净率等以及公司治理等情况作为筛选条件,提高选股策略的有效性和盈利能力。在选择参考时间段和计算方式时,也需要避免过短或过长的时间段和过度平滑的计算方式,增加筛选时段的鲁棒性和健壮性。
最终的选股逻辑
选股逻辑为:振幅大于1,rsi小于65,归属母公司股东的净利润(同比增长率)大于20%小于等于100%。同时,还要考虑其他技术指标如KDJ、MACD等,以及其他基本面指标如市盈率、市净率等。
同花顺指标公式代码参考
振幅:(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
净利润:IF((LYR1 (net_profit_att_comp - net_profit_att_comp_ttms)) / ABS(LYR1 (net_profit_att_comp_ttms)) >20% AND (LYR1 (net_profit_att_comp - net_profit_att_comp_ttms)) / ABS(LYR1 (net_profit_att_comp_ttms)) <=100%, 1, 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
# 净利润同比增长率
profit_growth = lyr1((net_profit_att_comp - net_profit_att_comp_ttms)) / abs(lyr1(net_profit_att_comp_ttms))
profit_condition = (profit_growth > 0.2) & (profit_growth <= 1)
# 选取符合条件的股票
selected_stocks = selector(amplitude > 1, rsi < 65, profit_condition)
# 筛选出股票的相对强度并选取强度最强的前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亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。