作者:老余捞鱼
原创不易,转载请标明出处及原作者。

文中示例仅用于技术讨论,不构成任何操作建议。
量化策略开发应以学习和技术交流为目的。
本号不荐股、不卖课、不承诺收益。
市场有风险,请合法合规投资。
本文约 2500 字 | 预计阅读 5 分钟
· · ·
TradingView 上的背离脚本我翻过不少,大部分看一眼就够了。RSI 创新低、价格没新低就买;反过来,卖。一般来说就这一套东西。
问题是震荡市里这玩意儿能把你磨死。信号一个接一个出,对的不多,错的连片。我之前一直觉得背离这个东西,框架太粗了,没法用。
直到前阵子看到 一个叫 Hayden Divergence Strength Analyzer 的指标(作者 Pridarasx,TradingView上直接搜得到),我才觉得有人在认真想这个问题。它干了两件别家没干的事:给市场分牛熊状态,再给背离信号本身打分。下面我把它的机制、策略里最坑的东西、还有 22 年回测结果,一条条过一遍。
一、跟其他背离指标的差别
普通背离指标就干一件事:看价格和 RSI 有没有反向走。Hayden 多了两层。
第一层是状态过滤。它用 RSI 把市切成两半:
- RSI 上穿 70 → 多头状态
- RSI 跌破 40 → 空头状态
有个东西叫:隐式多头背离,价格走更高的低点,RSI 却走更低低点。听上去矛盾,但放在趋势行情里说得通:价格只是浅回踩,RSI 回踩得比价格还狠,说明回调快到头了。
问题是,这种信号只有在多头状态里才靠谱。熊市里出现,纯属噪音。而Hayden直接把熊市里的隐式多头信号扔掉了,不报警。就这一刀,砍掉大量假信号。
第二层是强度打分。不是所有背离都一样重。它看两个 RSI 枢轴点之间隔了多少根 K 线:
| 两枢轴相隔 K 线数 | 强度评分 |
|---|---|
| ≤ 4 根 | 100% |
| ≤ 8 根 | 75% |
| ≤ 12 根 | 50% |
| ≤ 16 根 | 25% |
| > 16 根 | 直接忽略 |
5 根 K 线前形成的背离,和 14 根前形成的,操作价值不一样。隔得太远的,市场早走远了,你别追了。
下面是 TradingView 上的实盘截图:

二、背离有三种,别只盯一种
很多人提到背离就想到反转。这个指标分了三种,而且把反转和延续分得很清楚。
| 信号类型 | 形态(价格 / RSI) | 角色 |
|---|---|---|
| 常规多头背离 | 价格更低低点 / RSI 更高低点 | 反转开仓 |
| 隐式多头背离 | 价格更高低点 / RSI 更低低点 | 趋势延续(仅多头状态内) |
| 常规空头背离 | 价格更高高点 / RSI 更低高点 | 只离场,不做反向 |
常规多头背离好理解:动量先拐头了,价格还没跟上,典型的底部反转信号。隐式多头背离是顺趋势的,价格只是浅回踩,RSI 跌得更深,说明底子没坏,是加码的时机。
常规空头背离这里有个细节值得说。它只用来触发离场,不做反向开仓。我之前见过不少人拿空头背离去开空,结果一波拉升直接打穿。Hayden 这种克制,我觉得对。
三、把Pine Script 移植到 Python
这段是写给动手改代码的朋友看的。
TradingView 的 ta.pivotlow(rsi, 4, 4) 这个函数,要等候选 K 线右边走完 4 根,才确认那是个低点。所以信号在第 N 根触发的时候,真正的枢轴其实在第 N-4 根。
你要是直接翻译成 Python,在检测枢轴的同时就发信号,等于偷看了未来 4 根 K 线的数据。回测成绩会很好看。假的。
修法不算难,但确实容易漏掉:先把所有枢轴检测出来,然后把信号整体往后挪 pivot_lookback 根。再补一个 .shift(1),收盘确认的信号在下一根开盘价成交。两步都做,才彻底干净。
# 在位置 i 检测枢轴(需要右边 i+lookback 根才确认)
for i in range(lookback, n - lookback):
window = vals[i - lookback : i + lookback + 1]
if vals[i] == np.nanmin(window):
is_pl[i] = True
# 把信号推迟到确认根,彻底去掉前视偏差
result.shift(lookback)顺嘴说一句:凡是带 pivot、peak、zigzag 的指标,从 Pine Script 搬到 Python 的时候,第一件事就是查「确认要不要看右边」。这刀不切,回测再漂亮也是假象。
四、回测选了 PRSU
标的我选的是 PRSU(ProShares Ultra Semiconductors),这是个2倍杠杆的半导体 ETF。波动大、趋势猛,适合跑动量和背离。但这里要多留个心眼:杠杆行业 ETF 自带高波动、行业集中、杠杆衰减,对这类信号天然友好。换个品种,结果可能完全不一样。带着这个前提往下看。
参数就用默认的:
| 参数 | 取值 |
|---|---|
| RSI 长度 | 14 |
| 枢轴回看 | 4 |
| 最低强度 | 25% |
| 隐式多头背离 | 开启 |
| 常规空头背离(离场) | 开启 |
| 手续费 / 滑点 | 0.1% / 0.2% |
| 区间 | 2004-06-22 至 2026-06-26(5539 天) |
五、看结果
先看图:

| 指标 | 数值 |
|---|---|
| 起始资金 | 100,000 美元 |
| 终点资金 | 1,111,635 美元 |
| 总回报 | 1011.6%(同期直接持有 337.7%) |
| 总交易笔数 | 26 笔 |
| 胜率 | 80.0% |
| 盈亏比(Profit Factor) | 2.35 |
| 最大回撤 | -62.4% |
| 夏普比率 | 0.62 |
| 卡玛比率(Calmar) | 0.28 |
22 年一共做了26 笔交易,交易次数不多。前十年曲线又平又颠,2016 年以后半导体波动放大,才猛地拉起来。中间有几段漫长的空仓期,策略不吃震荡的钱,只吃大方向。
最深那波回撤逼近 -62%。卡玛 0.28,每承担 1% 回撤只换回 0.28% 年化。赚是赚了,但你得咽得住这个回撤。
单笔盈亏散点我看了一下:大部分落在 +5% 到 +55%,有两笔亏在 -20% 到 -35%。几笔 +40% 以上的大赢家把整体扛住了。
PRSU 这一个标的上,22 年总回报 1011.6%、胜率 80%、盈亏比 2.35。数字确实能打。但下面这段比数字重要。
六、观点总结
只跑了一个标的。PRSU 是杠杆行业 ETF,波动大、趋势猛,恰好是背离信号的沃土。换到债券 ETF 或者横盘震荡的股票上,大概率是另一副面孔。一个数据点不能拿来当结论用。
26笔交易的样本量太小了。80% 胜率,换成数字就是大约 21 笔赚、5 笔亏。再多亏两三笔大的,或者亏的笔数排在前面,曲线就完全不一样了。这个胜率在这个样本量下,统计意义很弱。
还有一点:一年出手不到一次,持仓周期很长。拿到 A 股市场来用(T+1、涨跌停),水土不服的概率不低。
我的判断:这套东西的价值在框架本身:状态过滤、强度打分、反转和延续分开处理,思路是对的。但它离能上实盘还差得远。Pridarasx 那个 Pine Script 原版值得你自己去 TradingView 上装一下,肉眼看看背离信号是怎么绕着拐点聚拢的。那个感觉,回测给不了你。
PRSU 的回测结果很不错,但它终究只是回测。你可以先去验证,再谈别的。
#背离指标 #TradingView #量化回测 #RSI #Python量化 #隐式多头背离 #机制过滤 #半导体ETF #PRSU #量化策略 #前视偏差 #交易系统
Be First to Comment