Anchored Volume Delta with Adaptive Bands MT4
- 指标
-
Narayanan Mohanan Mohanan Krishnan
专注于开发 MT5/MQL5 Expert Advisor、自定义指标以及回测与验证工具。我坚持编写结构清晰、文档完善、无重绘(No Repaint)的代码,采用收盘K线逻辑、经过验证的缓冲区(Buffers)、规范的句柄(Handle)与内存管理。这些工程实践正是可靠工具与脆弱实现之间的区别。
我始终按照明确的需求规格进行开发,在开始编码之前主动指出任何存在歧义的地方,并交付自己能够充分解释并负责到底的代码。如果您需要 Expert Advisor、技术指标,或现有项目的修复与升级,欢迎随时联系我。 - 版本: 1.0
本指标绘制累积成交量差(CVD)——将每根K线的成交量按其收盘方向赋予正负后累加得到的滚动总和——并置于自适应标准差通道之中。它回答了单看价格无法回答的问题:这波行情是由参与度推动的,还是只是在漂移?
累积总和会在您选择的锚定点重新开始——按日、按周或按月——因此读数始终相对于当前的交易日、当周或当月,而不是相对于图表历史的起点。正是这一个设置,使同一个指标既适用于一分钟的外汇图表,也适用于日线的指数图表;也正是它,把本指标与那种只会从您历史数据碰巧开始之处不断累加的普通累积成交量线区分开来。
工作原理
每根K线将其成交量计入累积总和:收盘高于前一根收盘时相加,低于时相减,收平时不变。
随后在该累积序列上计算20周期的中轨及其标准差,上下轨则置于标准差的指定倍数处。由于通道由序列自身的波动性构建,参与度剧烈时通道变宽,趋于平稳时收窄——无需为每个品种重新调整固定阈值。
当累积总和到达锚定边界时会归零并重新开始。在图表上这表现为线条的一次干净重启,通道随即围绕新的周期重新成形。
通道说明什么
越出通道意味着相对于该品种近期的表现,成交量流向已变得统计意义上不寻常;回到通道内则意味着已恢复常态。两者都不是行动信号——它们描述的是参与度目前相对于自身近期区间所处的位置。
交易者通常从这一显示中获取三种读法:
触及通道。CVD 线触及上轨,表示买入流相对其近期区间已被拉伸;触及下轨则对卖出流而言同理。截图中这些位置以红色标记上轨触及、绿色标记下轨触及。被拉伸的读数之后会发生什么并不固定——流向可能恢复常态,也可能在通道随之扩张的同时继续延伸。
确认。价格创出新高或新低,CVD 线也同样如此。参与度正与价格同行。
背离。价格创出新低而 CVD 线抬高低点,或在高点处相反。价格已经移动,但其背后的成交量流向并未跟上。这是背景信息,而非预测——背离会向两个方向化解,且可能持续得远比预期更久。
输入参数
- 所用成交量 — 跳动量(默认)
- 锚定周期 — 连续、按日(默认)、按周或按月
- 通道周期 — 20
- 通道标准差倍数 — 2.0
锚定周期必须比图表周期更粗才有意义:在日线图上使用按日锚定会导致每根K线都归零。发生这种情况时,指标会回退为连续序列,在 Experts 日志中说明原因,并在其简称中显示实际使用的锚定方式——因此您看到的标签始终就是正在运行的设置。
缓冲区
- 缓冲区 0 — CVD 线
- 缓冲区 1 — 上轨
- 缓冲区 2 — 中轨
- 缓冲区 3 — 下轨
四个缓冲区均可通过 iCustom() 从 EA 或其他指标中读取。MQL4 的缓冲区采用时间序列索引,因此位移 1 是最后一根已完全收盘的K线——读取该值可获得不会再变的数据:
double cvd = iCustom(NULL, 0, "NaaMo\\CVDBands", 0, 1); double upper = iCustom(NULL, 0, "NaaMo\\CVDBands", 1, 1); double basis = iCustom(NULL, 0, "NaaMo\\CVDBands", 2, 1); double lower = iCustom(NULL, 0, "NaaMo\\CVDBands", 3, 1);
缓冲区索引与 MetaTrader 5 版本完全一致。针对缓冲区 2 编写的代码在两个平台上都会取得中轨。
本指标自成一体:它不调用任何其他指标,因此无需任何额外组件即可运行。
跨品种表现
截图展示了本指标在五个品种上以及多种锚定设置下的表现。凡出现标记之处,红色表示触及上轨,绿色表示触及下轨。
- EURUSD 一小时图,按月锚定 — 比默认按日更长的累积周期,两端极值处均标出了通道触及。
- 美元指数 15 分钟图,按日锚定 — 打开数据窗口,显示单根K线上四个已命名的缓冲区。
- US30 日线 — 回退机制的实际效果。按日锚定会使每根K线归零,因此指标切换为连续序列,并在标签中显示 Continuous。
- XAUUSD 5 分钟图,按日锚定 — 一段日内行情,卖出流将线条带出下轨并使其停留在外,价格同期持续走低。
- GBPUSD 1 分钟图,按日锚定 — 最短的周期,锚定归零频繁,通道也迅速重新成形。
- BTCUSD 15 分钟图 — 参数窗口,展示全部设置。
计算行为
数值仅依据已完成的数据计算。K线一旦收盘,其数值即为最终值且不再改变。只有正在形成的K线会随新跳动而更新,并在该K线收盘时定格。本指标不使用未来数据,也不会重绘已收盘的K线。
累积序列以确定性方式重建,因此相同的图表与设置始终产生相同的数值,与指标何时挂载、历史数据如何加载无关。
说明
- 独立指标窗口,4 条线,4 个缓冲区。
- 通道开始绘制前约需 20 根K线的历史数据。
- 跳动量是实际成交量的近似。MetaTrader 4 中无法获取真实成交量:若选择该项,指标会给出提示并停止,而不会悄悄改用其他数据。
- 无外部依赖。累积序列、中轨与标准差通道全部在指标内部计算。它是单一文件,不调用任何其他指标,因此无需另行安装任何组件,也不依赖您指标文件夹的状态。
- MetaTrader 5 版本亦已发布,缓冲区索引完全一致。
本指标是一款用于技术分析与市场状况筛选的工具。它不是交易系统,不产生交易信号,不提供投资建议,也不会自动开仓或管理仓位。本产品不作任何绩效方面的声明。
免费下载与使用。如果您觉得有用,一个评分能帮助其他交易者找到它。
| 该开发者的其他工具 我开发 MetaTrader 指标与 EA,注重代码整洁、文档完整、不重绘——采用收盘K线逻辑、经过验证的缓冲区,且不依赖任何其他指标。 对计算方法、缓冲区,或在您自己的 EA 中使用本指标有疑问?欢迎给我发私信,我很乐意解答。 |
由 MetaTrader 开发者 Narayanan Mohanan 开发并维护。
如您发现本页译文有误,欢迎与我联系,我会及时更正。
