问财量化选股策略逻辑
选股逻辑:振幅大于1,反包,非ST(10点之前选股票)五部涨停战法。
选股逻辑分析
该选股策略综合了振幅指标、反包指标和涨停板指标,同时要求排除ST股票,提高选股品质。筛选出振幅较大、短期内有明显趋势的涨停股进行投资。
有何风险?
该选股策略可能会忽略一些潜在投资机会,同时可能存在涨停的停盘风险,也存在未考虑的风险因素等问题。
如何优化?
可以加入其他多个指标成分或变量,如市场情绪、基本面等供综合参考,以更全面的信息来分析股票的上涨趋势和价值投资。
最终的选股逻辑
基于以上分析,我们提出下面完善后的选择逻辑:
- 振幅大于1;
- 反包出现;
- 排除ST股票;
- 选择10点之前的股票;
- 五部涨停。
同花顺指标公式代码参考
以下是该选股策略的指标公式代码:
F01:HIGH / LOW - 1 > 0.01; // 振幅大于1
F02:NOT(SIGN(CLOSE-REF(CLOSE, 1)) == SIGN(REF(CLOSE, 1) - REF(CLOSE, 2))); // 反包
F03:ZS_ST_RELATION < 0; // 排除ST股票,ZS_ST_RELATION从同花顺API获取
F04:REF(CURRENTTIME, 1) < 100000; // 选取10点之前的股票
F05:ZT_BOOST5 > 0; // 五部涨停
FILTER:F01 AND F02 AND F03 AND F04 AND F05 > 0;
SYMBOL_SORT("CLOSE*TOT_VOLUME*CAPITALIZATION/10000", SORT_DESCEND);
SELECT(IF(F05, 1, 0),"诊股"); // 输出文本信息:选股
python代码参考
以下是 Python 实现该策略的选股逻辑:
def stock_filter(dv, symbol):
# 获取数据,计算指标
high = dv.get_ts("high", symbol=symbol)
low = dv.get_ts("low", symbol=symbol)
close = dv.get_ts("close", symbol=symbol)
is_st = dv.get_ts("is_st", symbol=symbol)
date_idx = pd.to_datetime(high.index).time
date_filter = date_idx < datetime.time(10, 0)
zs_st_relation = dv.zs_st_relation
zt_boost5_signal = (dv.add_formula('zt_boost5', 'Max(Max((close/Ref(open, 1)-1)*100-5, 0), 5)', overwrite=True) > 0)
amplitude = high / low - 1
reverse_pattern = (Ta('CDL2CROWS', 0, open, high, low, close) == 100)
st_filter = ~is_st
time_filter = date_filter
five_zt_filter = zt_boost5_signal.shift(1) & zt_boost5_signal.shift(2) & zt_boost5_signal.shift(3) & zt_boost5_signal.shift(4) & zt_boost5_signal
selected_stocks = amplitude & reverse_pattern & st_filter & time_filter & five_zt_filter
return selected_stocks.index.tolist()
选股逻辑中,我们用 Python 的 pandas 库和 TA-Lib 库计算指标,筛选出符合条件的股票列表,以得到我们需要选择的股票列表。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
