OBVCD Pro
- 指标
-
Narayanan Mohanan Mohanan Krishnan
我为 MetaTrader 开发测量工具。它们描述市场已经发生了什么,并明确说明每项测量的局限,而不是加以掩饰。
三十年的生产系统与自动化经验,2020 年转向量化研究。研究工作在 Python 中进行——回测框架、前向验证、对大量候选策略的统计评估——经受住检验的成果才会成为指标或智能交易系统。方法论以证伪为先:在样本外得到验证之前,任何结果都被视为假象。上架的每件工具都载明自身测量的局限,说明读数在何处不再具有意义,并记录两个平台出现分歧之处,而不是悄悄取平均值。
此处发布的任何产品都不产生交易信号,也都不附带任何业绩宣称。 - 版本: 1.20
- 更新: 4 八月 2026
- 激活: 10
OBVCD Pro 是一款动量振荡器,它将收敛/发散分析应用于 On-Balance Volume(OBV,能量潮指标) 而非价格,并结合自适应波动带与五状态市场状态分类器。计算结果既可在图表上直观查看,也可由智能交易系统(Expert Advisor)直接读取。
大多数传统振荡器只分析价格。OBVCD Pro 基于累计成交量计算收敛与发散,因此衡量的是价格变动背后的资金参与程度,而不仅仅是价格本身的变化。最终结果被归纳为单一的市场状态值,人工交易者与程序化交易系统均可直接使用。
工作原理
On-Balance Volume(OBV)根据所选的成交量来源计算。默认使用 Tick 成交量;当经纪商提供真实成交量时,则自动使用真实成交量。
在 OBV 序列上分别计算快速与慢速移动平均线(默认为 EMA 12 与 EMA 26),两者的差值构成 OBVCD 柱状图。随后在该柱状图上计算一条 信号线,默认使用 9 周期 SMA。
上下波动带采用 20 周期标准差与 1.618 偏差系数计算。波动带可以作用于信号线,也可以直接作用于柱状图。
由于波动带基于标准差,因此会在市场活跃时自动扩张、在活跃度下降时收缩。这使得同一套默认参数能够适用于差异较大的不同交易品种,而无需依赖固定的阈值。
五状态动量逻辑
彩色柱状图评估动量相对于自适应波动带的位置,并将每根已完成的 K 线划分为五种市场状态之一。
- 强多头(亮绿色) — 柱状图位于上轨之上,且多头动量持续增强。数值:+2
- 弱多头(浅绿色) — 柱状图仍位于上轨之上,但多头动量开始减弱。数值:+1
- 震荡整理(灰色) — 柱状图位于波动带之间,表示市场处于中性或横向状态。数值:0
- 弱空头(橙色) — 柱状图位于下轨之下,但卖方压力开始减弱。数值:−1
- 强空头(红色) — 柱状图位于下轨之下,且空头动量持续增强。数值:−2
该逻辑的核心特点在于区分已经过度延伸的走势与仍在持续增强的走势。突破波动带本身并不代表走势仍然强劲;真正区分趋势延续与动能衰竭的是动量的变化方向。
算法交易与 EA 集成
计算得出的市场状态会写入独立的数据缓冲区,因此智能交易系统无需分析颜色,也无需重新实现内部逻辑,即可直接读取现成的数值。
Buffer 5 返回以下数值之一:
- 2.0 = 强多头
- 1.0 = 弱多头
- 0.0 = 震荡整理
- −1.0 = 弱空头
- −2.0 = 强空头
请使用 iCustom() 获取指标句柄,并通过 CopyBuffer() 读取数值。建议读取 Shift 1,即最近一根已完全形成的 K 线,因为该数值为最终值,不会再发生变化。
公开缓冲区映射
- Buffer 0 — OBVCD 柱状图
- Buffer 1 — 柱状图颜色索引
- Buffer 2 — 信号线
- Buffer 3 — 上轨
- Buffer 4 — 下轨
- Buffer 5 — Regime Bias(市场状态)
请注意:Buffer 1 存放的是柱状图颜色索引,因此数据缓冲区的编号与可见绘图并非一一对应 —— Regime Bias 位于 Buffer 5,而不是 Buffer 4。Buffer 6 至 Buffer 8 仅用于内部计算,不属于公开接口。
输入参数
- 成交量来源 — Tick 成交量(默认)或真实成交量(需经纪商支持)
- 快速移动平均线 — 周期 12,默认 EMA
- 慢速移动平均线 — 周期 26,默认 EMA
- 信号线移动平均 — 周期 9,默认 SMA
- 支持的均线算法 — EMA、SMA、SMMA 与 LWMA
- 启用布林带 — 默认开启
- 波动带作用对象 — 信号线(默认)或柱状图
- 波动带周期 — 20
- 标准差系数 — 1.618
关闭布林带后,指标将作为带信号线的经典 OBV 收敛/发散振荡器运行,此时 Regime Bias 在每根 K 线上均返回 0。
跨市场应用
默认参数适用于大多数交易品种,可作为合理的起点。在实际使用中,建议根据具体品种与所用时间周期检视参数设置。
- 贵金属(XAUUSD、XAGUSD) — 有助于识别成交量的累积与派发阶段,为价格结构分析提供额外参考。
- 能源(USOIL) — 跟踪趋势性行情中成交量参与程度的变化。
- 指数与外汇(US30、DXY) — 自适应波动带可过滤市场噪声,使状态变化反映成交量参与的实际转变,而非随机波动。
- 加密货币(BTCUSD、ETHUSD) — 平滑处理使指标在高波动环境下依然清晰易读,动量变化更为明显。
计算特性
所有数值均完全基于已完成的历史数据计算。K 线一旦收盘,其数值便不再改变。只有当前正在形成的 K 线会随着新的 Tick 数据更新。
如需获得已确认的读数,应读取 Shift 1 而非 Shift 0。本指标不使用未来数据(look-ahead),并且在 K 线收盘后不会重绘数值。
适用对象
- 自主交易者 — 希望通过成交量参与度来确认市场走势是否获得真实资金支持,并区分趋势延续与动量减弱。
- 程序化交易者与 EA 开发者 — 希望获得现成且已文档化的市场状态过滤器,接口稳定,无需重新实现内部逻辑。
说明
- 在独立的指标窗口中显示。
- 5 个绘图(plots)。
- 9 个指标缓冲区。
- 半透明柱状图设计,与其他指标同时使用时仍能保持良好的可读性。
本指标是一款技术分析与市场状态过滤工具。它不是交易系统,不生成交易信号,不提供投资建议,也不会自动开仓或管理交易。
购买前可使用 MetaTrader 5 策略测试器(Strategy Tester)中提供的免费演示版本进行评估。
开发与维护:Narayanan Mohanan,MT5/MQL5 开发者。
如您发现本页译文有误,欢迎与我联系,我会及时更正。
