第十三章:订单流与支撑阻力——动态识别与验证
支撑和阻力,是技术分析的基石。但传统画法有个硬伤——你画的水平线,市场真的认吗?
我早年做手工交易时,经常对着K线图画线。画完觉得挺美,结果价格一碰就穿。后来我才明白:真正的支撑阻力,不是画出来的,是交易员用真金白银堆出来的。
订单流数据,恰好能让我们看到这堆「钱」到底堆在哪。
一、传统支撑阻力的痛点
先说说传统方法的问题。你想想看,大部分人画支撑阻力,无非是看前高前低、均线、斐波那契。但这些方法有个共同毛病——静态。
- 前高前低:价格突破后,原来的支撑变阻力,但什么时候变?没人知道
- 均线:参数调一调,线就变了,主观性太强
- 斐波那契:0.618还是0.786?不同人画出来不一样
说白了,这些方法都是「猜」。而订单流,是「看」。
核心观点:支撑阻力不是线,是「价格-成交量」的密集区。订单流能让我们看到这些区域的形成、强化和瓦解。
二、订单流视角下的支撑阻力本质
从订单流角度看,支撑阻力就两种:
- 堆积区(POC区域):成交量最大的价格区间,多空博弈最激烈的地方
- 缺口区(Value Area Gap):成交量稀薄的价格区间,价格容易快速通过
我习惯把堆积区叫做「战场」,缺口区叫做「无人区」。价格在战场里会反复拉锯,在无人区里会一穿而过。
为什么会这样?因为堆积区里有大量未成交的订单。价格回到这里,这些订单就会被激活。而缺口区里没什么挂单,价格自然走得快。
三、动态识别方法
好,理论说完了,上干货。我常用的动态识别方法有三个:
3.1 基于Volume Profile的支撑阻力
Volume Profile(成交量分布)是最直观的工具。它把成交量按价格水平排列,而不是按时间。
具体做法:
- 取一段行情(比如过去24小时或100根K线)
- 计算每个价格水平的成交量
- 找到POC(成交量最大的价格)
- 找到Value Area(占70%成交量的价格区间)
- VA的上边界是阻力,下边界是支撑
嗯,这里要注意:POC和VA边界不是固定的。随着新K线加入,它们会动态变化。这就是「动态识别」的含义。
# 计算动态支撑阻力
def dynamic_support_resistance(df, lookback=100):
"""
df: 包含price和volume的DataFrame
lookback: 回溯周期
返回: 当前POC, VA_High, VA_Low
"""
recent = df.tail(lookback)
# 按价格聚合成交量
vol_profile = recent.groupby('price')['volume'].sum()
# 找到POC
poc = vol_profile.idxmax()
# 计算VA
total_vol = vol_profile.sum()
sorted_vol = vol_profile.sort_values(ascending=False)
cum_vol = 0
va_prices = []
for price, vol in sorted_vol.items():
cum_vol += vol
va_prices.append(price)
if cum_vol / total_vol >= 0.7:
break
va_high = max(va_prices)
va_low = min(va_prices)
return poc, va_high, va_low
我的经验:回溯周期别用固定K线数,用固定时间窗口(比如过去4小时)。因为不同交易时段活跃度不同,固定K线数会导致VA失真。
3.2 基于Delta堆积的支撑阻力
Volume Profile看的是总成交量,但Delta能告诉我们谁在主导。
我遇到过这种情况:价格在某个区间堆积,成交量很大,但Delta是负的。这说明虽然成交活跃,但卖方在主导。这个「支撑」其实很脆弱。
反过来,如果Delta为正且持续放大,这个支撑就靠谱得多。
判断逻辑:
- Delta堆积区 + 正Delta → 强支撑/阻力
- Delta堆积区 + 负Delta → 弱支撑/阻力(容易破)
- Delta堆积区 + Delta归零 → 中性,等方向
3.3 基于订单簿失衡的实时验证
这是最实时的验证方法。当价格接近我们识别的支撑阻力位时,看订单簿的挂单情况。
具体看什么?
- 买一和卖一的挂单量对比
- 买一到买五的总量和卖一到卖五的总量
- 大单挂单的位置和撤单情况
我常用的一个指标叫「订单簿失衡率」:
def orderbook_imbalance(bid_volumes, ask_volumes):
"""
bid_volumes: 买方各档位挂单量列表
ask_volumes: 卖方各档位挂单量列表
返回: 失衡率 (-1到1, 正数表示买方占优)
"""
total_bid = sum(bid_volumes)
total_ask = sum(ask_volumes)
if total_bid + total_ask == 0:
return 0
return (total_bid - total_ask) / (total_bid + total_ask)
当价格接近支撑位时,如果失衡率突然转正(买方挂单增多),说明支撑有效。如果失衡率持续为负,那这个支撑大概率守不住。
四、实战验证流程
光有识别方法不够,还得有验证流程。我个人的标准流程是这样的:
- 初步识别:用Volume Profile找到POC和VA边界
- 强度判断:看Delta堆积情况,判断支撑阻力的强弱
- 实时验证:价格接近时,看订单簿失衡率和成交量的变化
- 确认/放弃:如果验证通过,就按支撑阻力操作;如果验证失败,放弃这个位置
我曾经踩过的坑:有一次识别出一个很漂亮的POC支撑,Delta也是正的,觉得稳了。结果价格一碰到,直接一根大阴线穿下去。后来复盘发现,那个POC是隔夜形成的,而当天开盘前有大额空单进场,订单簿早就变了。所以记住:支撑阻力是动态的,昨天的战场今天可能已经失效。
五、多周期验证
单周期识别容易误判。我建议至少看两个周期:
| 周期 | 作用 | 典型参数 |
|---|---|---|
| 大周期(日线/4小时) | 确定主要战场,过滤噪音 | 回溯24小时或100根K线 |
| 小周期(15分钟/5分钟) | 精确入场,找具体点位 | 回溯2小时或20根K线 |
大周期告诉你「大概在哪个区间」,小周期告诉你「具体在哪个价格」。两者结合,准确率能提高不少。
六、知识体系图
下面这张图总结了本章的核心逻辑:
七、避坑指南
最后,分享几个我踩过的坑:
- 别只看POC:POC是最大成交量,但不一定是关键位置。有时候VA边界比POC更重要
- 注意时间衰减:3小时前的堆积和30分钟前的堆积,权重应该不同。我习惯给近期的数据更高权重
- 别忽略假突破:价格突破支撑阻力后,如果成交量没跟上,很可能是假突破。等确认再动手
- 订单簿会撒谎:有些大单是「展示单」,挂上去就撤。别只看挂单量,要看成交量和撤单率
嗯,支撑阻力这块内容其实很深。今天讲的这些,够你在实战中用一阵子了。记住一句话:市场不认你画的线,只认钱堆出来的位置。
核心总结:动态支撑阻力的本质,是找到「多空双方真正交火的地方」。Volume Profile告诉你战场在哪,Delta告诉你谁占优,订单簿告诉你现在谁在增援。三者结合,你就能比大多数人更早发现关键位置的变化。