26、订单流与反转交易:结合Delta背离与吸收模式,捕捉趋势反转的早期信号
趋势反转,是所有交易者都想抓住的机会。但说实话,大多数反转信号来得太晚。等你看到K线形态走完,价格已经跑了一大截。我个人习惯用订单流数据来提前发现反转的蛛丝马迹,核心就是两样东西:Delta背离和吸收模式。
今天我们就聊聊怎么把这两个工具结合起来,在趋势还没真正掉头之前,就嗅到反转的味道。
为什么Delta背离能提前预警?
先想一个问题:价格在涨,但买盘力量却在减弱,这正常吗?
当然不正常。Delta衡量的是主动买盘和主动卖盘的差值。如果价格创了新高,但Delta的高点却在降低,这就是典型的顶背离。说白了,价格是被少数大单硬拉上去的,市场参与度并不高。这种上涨,根基不稳。
反过来,价格创新低,Delta的低点却在抬高,那就是底背离。卖盘在衰竭,下跌动能不足。
我在项目中遇到过好几次这样的情况:日线级别看着是强势上涨,但15分钟图的Delta已经连续两次背离。我当时就判断,这波拉升是诱多。果不其然,半小时后价格快速回落。
吸收模式:主力在干什么?
吸收模式,是订单流里另一个重要的反转信号。它描述的是:价格在一个狭窄区间内反复震荡,但Delta却出现异常的大幅波动。
为什么会这样?
想象一下,主力想在一个价位大量买入,但又不想把价格推高。他会怎么做?他会挂出大量卖单压住价格,然后用自己的买单一点点“吃掉”这些卖单。这个过程里,价格没怎么动,但Delta会持续为正,而且数值很大。
这就是吸收。主力在悄悄吸筹。
同样,如果主力想出货,他会挂出大量买单托住价格,然后偷偷砸出卖单。价格不动,Delta持续为负。
嗯,这里要注意:吸收模式通常出现在关键支撑或阻力位附近。我自己的经验是,如果价格在一个水平位震荡超过20根K线,同时Delta出现连续的大幅正值或负值,那就要高度警惕了。
| 模式类型 | 价格行为 | Delta特征 | 含义 |
|---|---|---|---|
| 吸筹(Accumulation) | 横盘或微跌 | 持续正值,且数值较大 | 主力在买入,后市看涨 |
| 派发(Distribution) | 横盘或微涨 | 持续负值,且数值较大 | 主力在卖出,后市看跌 |
把两者结合起来:反转的“双重确认”
单独看Delta背离,有时候会出假信号。单独看吸收模式,也可能只是震荡。但如果你发现Delta背离和吸收模式同时出现,那反转的概率就大大提升了。
我一般这样操作:
- 先找背离:在15分钟或1小时图上,寻找价格与Delta的背离。
- 再找吸收:切换到更小周期(比如3分钟或5分钟),看看背离发生的区域有没有出现吸收模式。
- 等待突破:如果两者都确认,我不急着入场。我会等价格突破吸收区间的边界,并且伴随Delta的放量确认。
举个例子。假设1小时图出现底背离,价格新低但Delta低点抬高。然后我切到5分钟图,发现价格在底部区域横盘了2个小时,Delta持续为正,而且数值不小。这就是典型的“底背离+吸筹”。
这时候我会在吸收区间的上沿挂一个突破买入单。一旦价格放量突破,我就跟进。
代码实现:如何用Python自动识别?
光说不练假把式。下面我给出一段Python代码,用来检测Delta背离和吸收模式。你可以在自己的数据上跑一跑。
import pandas as pd
import numpy as np
def detect_delta_divergence(df, window=10):
"""
检测Delta背离
df: 包含'close'和'delta'列的DataFrame
window: 背离检测的窗口大小
返回: 1表示顶背离, -1表示底背离, 0表示无背离
"""
# 计算价格和Delta的峰值/谷值
price_high = df['close'].rolling(window=window, center=True).max()
price_low = df['close'].rolling(window=window, center=True).min()
delta_high = df['delta'].rolling(window=window, center=True).max()
delta_low = df['delta'].rolling(window=window, center=True).min()
# 顶背离:价格新高,Delta未新高
top_div = (df['close'] == price_high) & (df['delta'] < delta_high.shift(1))
# 底背离:价格新低,Delta未新低
bottom_div = (df['close'] == price_low) & (df['delta'] > delta_low.shift(1))
df['divergence'] = 0
df.loc[top_div, 'divergence'] = 1
df.loc[bottom_div, 'divergence'] = -1
return df
def detect_absorption(df, price_range=0.002, delta_threshold=2.0):
"""
检测吸收模式
df: 包含'close'和'delta'列的DataFrame
price_range: 价格波动范围(百分比)
delta_threshold: Delta放大倍数阈值
返回: 1表示吸筹, -1表示派发, 0表示无吸收
"""
# 计算价格波动范围
price_volatility = (df['close'].rolling(5).max() - df['close'].rolling(5).min()) / df['close']
# 计算Delta的绝对值是否放大
delta_abs = df['delta'].abs()
delta_mean = delta_abs.rolling(20).mean()
delta_ratio = delta_abs / delta_mean
# 吸筹:价格窄幅波动,Delta为正且放大
accumulation = (price_volatility < price_range) & (df['delta'] > 0) & (delta_ratio > delta_threshold)
# 派发:价格窄幅波动,Delta为负且放大
distribution = (price_volatility < price_range) & (df['delta'] < 0) & (delta_ratio > delta_threshold)
df['absorption'] = 0
df.loc[accumulation, 'absorption'] = 1
df.loc[distribution, 'absorption'] = -1
return df
# 使用示例
# df = pd.read_csv('your_orderflow_data.csv')
# df = detect_delta_divergence(df)
# df = detect_absorption(df)
# 同时出现底背离和吸筹时,做多信号
# buy_signal = (df['divergence'] == -1) & (df['absorption'] == 1)
实战中的注意事项
- 周期选择:我个人习惯用1小时图找背离,用5分钟图找吸收。大周期定方向,小周期找入场点。
- 过滤假信号:如果市场处于重大新闻发布前后,订单流数据会变得非常嘈杂。这时候最好暂停交易,等市场平静下来。
- 结合支撑阻力:背离和吸收发生在关键支撑或阻力位附近,成功率会更高。你可以把斐波那契或前高前低加进来一起看。
你想想看,当价格还在震荡时,你已经通过订单流数据判断出主力在吸筹或派发,是不是比等K线走出来再追要主动得多?
这套方法我用了好几年,虽然不是100%准确,但确实帮我抓到了不少早期反转的机会。尤其是那些“V型反转”,传统指标根本反应不过来,但订单流数据往往能提前10-15分钟给出信号。
嗯,今天就聊到这里。记住,工具再好,也要结合自己的交易系统来用。别盲目相信任何一个信号。