问财量化选股策略逻辑
选股逻辑:振幅大于1,反包,收盘价<boll(upper值)且收盘价>boll(mid值)。
选股逻辑分析
该选股策略同样采用了振幅指标和反包指标来选择波动较大、具有反转信号的股票,并根据Bollinger Band的上限和中线进行了限制,筛选处于上升趋势的股票。该选股逻辑注重股票的短期趋势和波动性。
有何风险?
该选股策略只考虑了股票短期趋势和波动性,没有考虑到股票的长期价值和基本面情况,有可能会忽略掉潜力股票。同时,Bollinger Band指标受到市场波动和投机情绪的影响,所选股票并不一定符合股票的真实价值,有一定风险。
如何优化?
可以引入其他常见的技术指标,如MACD,RSI等,结合基本面指标,如PE,PB等,以便更全面地考虑股票的价值。同时,由于Bollinger Band指标的受到市场情绪干扰,可以按照不同时期的股票进行Bollinger Band指标参数的动态调节,以适应市场的波动和情况。
最终的选股逻辑
基于以上分析,提出下面完善后的选择逻辑:
- 振幅大于1;
- 反包出现;
- 收盘价<boll(upper值)且收盘价>boll(mid值);
- 过滤得到满足条件的股票。
同花顺指标公式代码参考
以下是该选股策略的指标公式代码:
F01: HIGH/LOW-1 > 0.01; // 振幅大于1
F02: NOT(SIGN(CLOSE - REF(CLOSE, 1)) == SIGN(REF(CLOSE, 1) - REF(CLOSE, 2))); // 反包
F03: CLOSE < BOLL(CLOSE, 20, 2); // 收盘价<boll(upper值)
F04: CLOSE > BOLLMA(CLOSE, 20); // 收盘价>boll(mid值)
FILTER: F01 AND F02 AND F03 AND F04;
SELECT(IF(1, 1, 0),"选股"); // 输出文本信息:选股
python代码参考
以下是 Python 实现该策略的选股逻辑:
def stock_filter(dv, symbols):
# 获取数据,计算指标
high = dv.get_ts('high', symbol=symbols)
low = dv.get_ts('low', symbol=symbols)
close = dv.get_ts('close', symbol=symbols)
upper, middle, lower = dv.add_formula('upper, middle, lower',
'BOLL(close, 20, 2)',
is_quarterly=False,
add_data=True)
amplitude = (high / low - 1 > 0.01)
reverse_pattern = (Ta('CDL2CROWS', 0, open, high, low, close) == 100)
boll_condition = (close < upper) & (close > middle)
selected_stocks = ((amplitude & reverse_pattern) &
boll_condition)
selected_stocks.sort_values("close", ascending=True, inplace=True)
return selected_stocks.index.tolist()
在计算股票指标的基础上,引入Bollinger Band指标,结合波动性指标和反转信号指标进行加强,规定低于Bollinger Band指标的上限但高于中线的股票相对符合选股策略的判断,利用动态调节等方法增强策略的有效性。
## 如何进行量化策略实盘?
请把您优化好的选股语句放入文章最下面模板的选股语句中即可。
select_sentence = '市值小于100亿' #选股语句。
模板如何使用?
点击图标右上方的复制按钮,复制到自己的账户即可使用模板进行回测。
## 如果有任何问题请添加 下方的二维码进群提问。
