Oscillator Regime Suite
- 指标
-
Narayanan Mohanan Mohanan Krishnan
专注于开发 MT5/MQL5 Expert Advisor、自定义指标以及回测与验证工具。我坚持编写结构清晰、文档完善、无重绘(No Repaint)的代码,采用收盘K线逻辑、经过验证的缓冲区(Buffers)、规范的句柄(Handle)与内存管理。这些工程实践正是可靠工具与脆弱实现之间的区别。
我始终按照明确的需求规格进行开发,在开始编码之前主动指出任何存在歧义的地方,并交付自己能够充分解释并负责到底的代码。如果您需要 Expert Advisor、技术指标,或现有项目的修复与升级,欢迎随时联系我。 - 版本: 1.0
- 激活: 10
本指标将收敛/发散结构——快速移动平均线减去慢速移动平均线,并配以信号线——应用于由成交量派生的序列,而非价格。可选择三种数据源:累积成交量差额、强力指数与能量潮。
结果之上绘制自适应波动率通道,并将每一根已完成的K线归类为五种市场状态之一。该状态以数值缓冲区的形式开放,因此 EA 可以直接读取。
数据源为何重要
标准 MACD 衡量的是价格动量,而这在上方的K线中本就一目了然。这三种数据源衡量的是另一件事:在价格发生该走势的同时,成交量究竟在积累还是在派发。
三者并不可以互相替代。其中一张截图在同一图表上以完全相同的参数同时显示三者,以便并排观察差异。
- 累积成交量差额 — 带符号成交量的累积值,在每日、每周或每月开始时重新锚定。正是这一锚定使其成为一种交易时段度量,而非全历史度量。
- 强力指数 — 该K线的价格变动乘以其成交量,再进行平滑。与另外两者属于不同的量。
- 能量潮 — 带符号成交量的累积值,自历史起点连续累加,不做重置。
累积成交量差额与能量潮共享带符号成交量的累积基础,仅在锚定方式上不同。若将差额的锚定设为连续,两者将产生完全相同的序列,这也是检验两条计算路径是否一致的实用方法。
五种市场状态
每根已完成的K线依据柱状图相对通道的位置,以及它是否仍在扩张来分类:
- 强势看涨 — 位于上轨之上且仍在扩张。缓冲区数值 +2
- 弱势看涨 — 位于上轨之上但势头减弱。缓冲区数值 +1
- 中性 — 位于通道之内。缓冲区数值 0
- 弱势看跌 — 位于下轨之下但正在缓和。缓冲区数值 −1
- 强势看跌 — 位于下轨之下且仍在扩张。缓冲区数值 −2
仅仅突破通道本身,并不能说明该走势背后是否仍有力量。区分一段仍在积聚的走势与一段已开始衰竭的走势,靠的是柱状图的方向,而这正是五种状态所编码的信息。
调节分类的严格程度
通道是围绕移动平均线的标准差,因此在市场活跃时扩张,在活跃度下降时收缩。有两个参数控制状态切换的频率。
通道周期设定窗口长度。将通道应用于信号线决定通道是基于信号线还是基于柱状图本身计算。两张截图展示了其中的差异:在默认设置下,状态会在整段走势中不断切换;而当通道以更长的周期取自柱状图时,柱状图大部分时间都位于通道之内,仅在真正突破时才着色。
两种设置都不存在对错之分,取决于您希望分类追踪每一次波动,还是只标记极端情形。
从 EA 中读取
市场状态偏向位于缓冲区 6,而非缓冲区 5。缓冲区 1 存放柱状图的颜色索引,缓冲区 5 对应一个隐藏绘图,因此数据缓冲区的编号与可见绘图并非连续对应。这一点容易让人出错,所以在此明确说明。
int h = iCustom(_Symbol, _Period, "OscillatorRegimeSuite"); double bias[]; ArraySetAsSeries(bias, true); CopyBuffer(h, 6, 0, 100, bias); // +2、+1、0、-1 或 -2
- 0 — 柱状图
- 1 — 柱状图颜色索引
- 2 — 信号线
- 3 — 上轨
- 4 — 下轨
- 5 — 绘图占位
- 6 — 市场状态偏向,面向 EA 的输出
缓冲区 7 与 8 存放快速与慢速移动平均线,供内部使用,不属于对外公开的接口。
其中一张截图展示了数据窗口中单根K线上的这些数值及其标签,旁边是同一图表上的内置 MACD 以作对比。
输入参数
- 数据源 — 累积成交量差额、强力指数或能量潮
- 使用的成交量 — 跳动量或真实成交量
- 差额锚定方式 — 连续、每日、每周或每月;仅对累积成交量差额生效
- 强力指数平滑 — 周期与方法,仅对强力指数生效;默认为 13 与简单平均
- 快速与慢速均线 — 各自的周期与方法;默认为 12 与 26,均为指数平均
- 信号均线 — 周期与方法;默认为 9 与简单平均
- 启用通道与状态分类 — 关闭后仅保留不带状态的普通收敛/发散振荡器
- 将通道应用于信号线 — 默认开启;关闭后改为基于柱状图计算
- 通道周期与标准差倍数 — 默认为 20 与 1.618
截图说明
- 同一图表上的三种数据源 — 比特币周线,参数完全相同,底部以内置 MACD 作为对照。三条成交量序列彼此不同,也不同于价格动量。
- 转折处的五种状态 — EURGBP H4,从强势看跌经中性到强势看涨再折返的过程可逐根K线读出。
- 数据窗口 — 单根K线上全部缓冲区及其标签,其中市场状态偏向读数为 −2.00,旁边是内置 MACD 的两个无标签数值。
- USDJPY 一小时图上的急速下跌 — 成交量序列已转为负值,而价格 MACD 仍为正值。这是单一品种上的单一时间窗口;关于它能说明与不能说明什么,请参见下文说明。
- 黄金 M15 配合每日锚定 — 成交量差额在每个交易时段重置,同一图表上还有一个周期慢得多的能量潮实例。
- 白银 H4 使用 50/200/20 与 US30 日线使用 34/89/13 — 周期均为可调参数,在远离默认值的设置下分类依然成立。
- 更为严格的配置 — GBPUSD 一小时图,通道以较长周期取自柱状图,多数K线保持中性,仅明显突破时才着色。
- 锚定提示 — 在日线图上请求每日锚定,而这会导致每根K线都重置。指标会在 Experts 日志中说明,并回退为连续序列。
- 参数窗口 — 全部设置,背后可见指标本身。
计算行为
已收盘K线的数值为最终值。正在形成的K线在收盘前持续更新,并在每个 tick 上重新计算,而不是在首次触及时即被固定。
累积类数据源以前一根K线的数值为基础逐根推进,因此重新处理正在形成的K线不会重复计入其成交量——这一失误会使累积序列无休止地向上漂移。
在计算所需的历史数据齐备之前,不会绘制任何内容。使用默认周期时该数值为 55 根K线,若延长通道周期或使用强力指数数据源,所需K线数还会增加。指标绝不会用不完整的窗口计算数值,再当作完整结果绘制出来。
若某种锚定在当前周期上无法成立——例如在日线图上使用每日锚定,会导致每根K线都重置——指标会在 Experts 日志中报告,并改用连续序列。指标窗口的名称也会相应变化,因此图表上始终标明实际显示的是哪一种序列。
说明
- 在独立窗口中绘制,共有九个缓冲区,其中七个已在上文说明。
- 无论信号线选用何种平均方法,通道始终基于简单移动平均线计算。这符合标准差通道的通行惯例。
- 真实成交量仅在您的经纪商提供时可用。跳动量为默认选项,在任何情况下均可使用。
- 可在同一图表上挂载多个实例,使用不同的数据源或不同的周期。
- 无外部依赖。所有数值均在指标内部计算。它不调用任何其他指标,因此没有可能失效的句柄,无需另行安装任何组件,也不依赖您标准指标文件夹的状态。
本产品是什么,不是什么
这是一款用于技术分析和筛选市场状况的工具。它不是交易系统,不产生买卖信号,不提供投资建议,也不会开仓或管理持仓。
它是描述性的而非预测性的。截图中出现成交量序列先于价格转向的情形,那只是单一品种上的单一时间窗口,之所以选用是因为它具有说明性。这并不能证明该序列领先于价格;要确立这样的结论,需要在大量品种与不同市场环境中进行检验。本产品亦不作任何绩效方面的声明。
| 该开发者的其他工具 我开发 MT5 指标与 EA,注重代码整洁、文档完整、不重绘——采用收盘K线逻辑、经过验证的缓冲区,且不依赖任何其他指标。 其中两种数据源也已单独免费发布:Anchored Volume Delta with Adaptive Bands 与 Force Index with Adaptive Volatility Bands。二者各自绘制一条序列并带有通道,但不含状态分类,是在购买本指标之前了解这一思路是否适合您的好方法。 如果您只需要能量潮数据源配合五状态分类,OBVCD Pro 正是这样一款单一数据源的指标。 对计算方法、缓冲区,或在您自己的 EA 中使用本指标有疑问?欢迎给我发私信,我很乐意解答。 |
由 MT5/MQL5 开发者 Narayanan Mohanan 开发并维护。
如您发现本页译文有误,欢迎与我联系,我会及时更正。
