问财量化选股策略逻辑
选股逻辑:元宇宙行业、量比大于1.5、量比小于6、主升起动的股票。
选股逻辑分析
该选股策略要求选取元宇宙行业的股票,同时需要满足以下条件:量比大于1.5、量比小于6、主升起动。此处“主升起动”是一种技术形态,通常标志着股价上升趋势的开始。该选股策略更加侧重于技术面的表现,希望选取的标的股票表现出较强的走势性。
有何风险?
该选股策略在寻找股价上涨趋势的同时,忽略了基本面和市场因素的影响,可能忽略了标的股票的内部优势和外部风险。此外,“主升起动”是一种相对主观的技术形态,存在人为干扰的可能。另外,该选股策略更加适用于短期交易,不适合长期投资。
如何优化?
改进选股逻辑时可以加入其他技术指标,如KDJ、RSI等,以多角度来寻找更有效的股票。同时,可以加入基本面因素和市场因素的考量,如PE、ROE、资金流动等,以给出更全面的投资建议。最终选股逻辑需要具有稳定性和可复现性,适应多种市场情况和投资风格。
最终的选股逻辑
选股逻辑:元宇宙行业、量比大于1.5、量比小于6、主升起动。综合考虑技术、基本面和市场因素,多维度寻找适合投资的标的股票。
同花顺指标公式代码参考
# 主升起动指标公式
CONDITION1:=(H+L)/2>REF((H+L)/2,1);
CONDITION2:=(H+L)/2>REF((H+L)/2,2);
CONDITION3:=(H+L)/2>REF((H+L)/2,3);
CONDITION4:=(H+L)/2>REF((H+L)/2,4);
CONDITION5:=(H+L)/2>REF((H+L)/2,5);
MA4:=(H+L)/2*2+REF(H,1)+REF(L,1);
MA8:=(H+L)/2*4+REF(H,2)+REF(L,2)+REF(H,1)+REF(L,1);
MA16:=(H+L)/2*8+REF(H,3)+REF(L,3)+REF(H,2)+REF(L,2)+REF(H,1)+REF(L,1);
MA32:=(H+L)/2*16+REF(H,4)+REF(L,4)+REF(H,3)+REF(L,3)+REF(H,2)+REF(L,2)+REF(H,1)+REF(L,1);
CON1:=MA(REF(LOW,1),4)>=MA(REF(HIGH,1),4) AND MA(LOW,4)<MA(HIGH,4) AND MA(LOW,8)<MA(HIGH,8) AND MA(LOW,16)<MA(HIGH,16) AND MA(LOW,32)<MA(HIGH,32);
CON2:=MA(REF(LOW,2),8)>=MA(REF(HIGH,2),8) AND MA(LOW,4)<MA(HIGH,4) AND MA(LOW,8)<MA(HIGH,8) AND MA(LOW,16)<MA(HIGH,16) AND MA(LOW,32)<MA(HIGH,32);
CON3:=MA(REF(LOW,3),16)>=MA(REF(HIGH,3),16) AND MA(LOW,4)<MA(HIGH,4) AND MA(LOW,8)<MA(HIGH,8) AND MA(LOW,16)<MA(HIGH,16) AND MA(LOW,32)<MA(HIGH,32);
CON4:=MA(REF(LOW,4),32)>=MA(REF(HIGH,4),32) AND MA(LOW,4)<MA(HIGH,4) AND MA(LOW,8)<MA(HIGH,8) AND MA(LOW,16)<MA(HIGH,16) AND MA(LOW,32)<MA(HIGH,32);
CON5:=MA(LOW,4)<MA(HIGH,4) AND MA(LOW,8)<MA(HIGH,8) AND MA(LOW,16)<MA(HIGH,16) AND MA(LOW,32)<MA(HIGH,32);
MAIN_UP:=(CONDITION1 OR CONDITION2 OR CONDITION3 OR CONDITION4 OR CONDITION5) AND (CON1 OR CON2 OR CON3 OR CON4 OR CON5);
python代码参考
import tushare as ts
from talib import MA, MAX, MIN
gg_stocks = ts.get_zz500s()
gg_stocks = gg_stocks[gg_stocks['industry'] == '元宇宙']
selected_stocks = []
for stock in gg_stocks['code']:
# 判断股票是否停牌等
...
# 判断量比和技术形态条件
vol_data = ts.get_k_data(stock, end='yesterday')[['volume', 'close']]
if (vol_data['volume'] / vol_data['volume'].rolling(window=5).mean()).iloc[-1] <= 1.5 or (vol_data['volume'] / vol_data['volume'].rolling(window=5).mean()).iloc[-1] >= 6:
continue
tech_data = ts.get_k_data(stock)[['high', 'low', 'close']]
tech_data['main_up'] = (MAX(tech_data['high'], timeperiod=4) + MIN(tech_data['low'], timeperiod=4) >= MA(MAX(tech_data['high'], timeperiod=4) + MIN(tech_data['low'], timeperiod=4), timeperiod=2) + MAX(tech_data['high'], timeperiod=2) + MIN(tech_data['low'], timeperiod=2)) & (MA(MIN(tech_data['low'], timeperiod=4), timeperiod=4) >= MA(MAX(tech_data['high'], timeperiod=4), timeperiod=4)) & (MA(MIN(tech_data['low'], timeperiod=8), timeperiod=8) >= MA(MAX(tech_data['high'], timeperiod=8), timeperiod=8)) & (MA(MIN(tech_data['low'], timeperiod=16), timeperiod=16) >= MA(MAX(tech_data['high'], timeperiod=16), timeperiod=16)) & (MA(MIN(tech_data['low'], timeperiod=32), timeperiod=32) >= MA(MAX(tech_data['high'], timeperiod=32), timeperiod=32))
if not tech_data['main_up'].iloc[-1]:
continue
# 判断其他因素
...
display_name = ts.get_stock_basics().loc[stock]['name']
selected_stocks.append((stock, display_name, ts.get_realtime_quotes(stock)['price'].iloc[0]))
# 输出名称
selected_stocks = [x[1] for x in selected_stocks]
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。


