问财量化选股策略逻辑
选股逻辑为RSI小于65、流通市值50亿-100亿、符合酷特智能早晨之星形态的股票,选取技术面表现和K线信号较好的个股。
选股逻辑分析
该选股策略主要考虑了技术面指标和K线信号的因素影响,通过RSI指标选择技术面表现较好的个股,同时加入了酷特智能早晨之星的K线形态信号,强调了选取股票的偏向于超跌复苏股,控制风险,降低选股盲目性。
有何风险?
该选股策略主要依赖于技术面指标和K线信号,对于公司财务状况、竞争环境等因素考虑较少,存在选到技术面表现好但财务状况差、未来业绩风险大等风险。同时,K线形态分析具有一定的主观性和周期性,对于不同的分析者意见可能存在差异。
如何优化?
可以在基本面、财务指标方面进行加强,如增加盈利增长率、ROE等因素,同时加入对公司业绩的分析,避免因技术面和K线信号考虑不全面而导致选股风险增大。在K线形态分析方面,加入多个K线形态指标,形成综合评估,提高选股的准确性。
最终的选股逻辑
选股逻辑为RSI小于65、流通市值50亿-100亿、符合酷特智能早晨之星形态的个股,同时加入业绩分析和多个K线形态指标。
同花顺指标公式代码参考
酷特智能早晨之星公式
HIGH1 = REF(HIGH, 1);
LOW1 = REF(LOW, 1);
CLOSE1 = REF(CLOSE, 1);
上升窗口:
A_1 = (HIGH1 + CLOSE1) / 2 - LOW1;
A_2 = CLOSE1 - LOW1;
A1 = MAX(A_1, A_2);
下降窗口:
B_1 = (LOW1 + CLOSE1) / 2 - HIGH1;
B_2 = CLOSE1 - HIGH1;
B1 = MAX(B_1, B_2);
C = ABS(CLOSE - OPEN);
D = MA(C, N);
COND1 = A1 > D;
COND2 = B1 > D;
成交量放大:
V_1 = REF(VOL, 1);
COND3 = VOL > V_1;
结果:
ST = COND1 AND COND2 AND COND3;
RSI指标公式
LC:=REF(CLOSE,1);
AA:=SMA(MAX(CLOSE-LC,0),N,1)/SMA(ABS(CLOSE-LC),N,1)*100;
RSI:EMA(AA,M);
python代码参考
# 计算RSI指标
def calc_rsi(close, n):
lc = close.shift(1)
aa = pd.Series(np.nan, index=close.index)
aa[n-1:] = close.sub(lc).clip(lower=0).rolling(n).mean() / close.sub(lc).abs().rolling(n).mean() * 100
rsi = aa.ewm(com=1.0/14, adjust=False).mean()
return rsi
# 计算酷特智能早晨之星指标
def calc_kute_zczxs(open, high, low, close, vol, n):
high1 = high.shift(1)
low1 = low.shift(1)
close1 = close.shift(1)
a_1 = (high1 + close1) / 2 - low1
a_2 = close1 - low1
a1 = np.maximum(a_1, a_2)
b_1 = (low1 + close1) / 2 - high1
b_2 = close1 - high1
b1 = np.maximum(b_1, b_2)
c = (close - open).abs()
d = c.rolling(n).mean()
cond1 = a1 > d
cond2 = b1 > d
v_1 = vol.shift(1)
cond3 = vol > v_1
return cond1 & cond2 & cond3
# 选股函数
def stock_picking(data):
# 计算RSI指标和酷特智能早晨之星指标
rsi = calc_rsi(data['close'], 14)
kute_zczxs = calc_kute_zczxs(data['open'], data['high'], data['low'], data['close'], data['volume'], 30)
# 根据市值、RSI和酷特智能早晨之星选取股票
cond = (data['negotiableMV'] >= 5e10) & (data['negotiableMV'] <= 1e11) & \
(data['totalShares'] >= 2e8) & (rsi < 65) & kute_zczxs
stock_list = []
if sum(cond) >= 5:
selected_data = data[cond]
selected_data = selected_data.sort_values(by='changePct', ascending=False)
for i in range(5):
stock_list.append(selected_data.index[i])
return stock_list
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


