Directional Movement DMI with Cross Alerts MT4
- 指标
- 版本: 1.0
Directional Movement DMI with Cross Alerts MT4 将兼容 TV 的 DMI 带到 MetaTrader 4。如果您也在 TradingView 上看图,您一定熟悉其内置的 "Directional Movement Index":价格下方的面板中有一条粉色 ADX 线、一条蓝色 +DI 线和一条橙色 -DI 线。本 MT4 指标使用相同的公式、相同的默认值和相同的颜色。
用途:了解近期走势有多强(ADX),以及上涨走势(+DI)和下跌走势(-DI)哪一个更大。它不是:买入或卖出信号,也不是预测。线的交叉并不能确定地说明价格接下来会怎样走。
计算概要
设置 | 默认值 | 与 TradingView 相同?
ADX Smoothing | 14 | 是
DI Length | 14 | 是
平滑方法 | RMA(Wilder) | 是(与 ta.rma 相同)
阈值线 | 25,灰色虚线 | 附加(TradingView 的 DMI 中没有)
+DM 和 -DM 来自最高价和最低价相对于前一根K线的变化(只计算较大的那个变动,且仅在其为正值时)。TR 是真实波幅(true range)。+DI = 100 x RMA(+DM) / RMA(TR),-DI = 100 x RMA(-DM) / RMA(TR),ADX = 100 x RMA(|+DI - -DI| / (+DI + -DI))。比较时使用与 Pine Script 相同的 1e-10 容差,因此交叉出现在与 TradingView 相同的K线上。
是否重绘(REPAINT)?
已收盘的K线:不重绘。其 ADX、+DI 和 -DI 数值是最终的。
正在形成的K线:会,与 TradingView 相同。它在每个跳动时重新计算,直到收盘。因此警报只看已收盘的K线。
MT4 设置注意事项——请阅读
1. 颜色来自输入参数。请在"输入参数"选项卡中设置 "ADX line color"、"+DI line color" 和 "-DI line color";"颜色"选项卡会被这些输入参数覆盖。
2. ADX 需要 DI Length + ADX Smoothing 根K线(默认设置下为 28 根)才会绘制;+DI 和 -DI 更早开始。
3. 加载后不久,指标列表中的名称可能会短暂显示为 "probe#...",这是指标在确认自己是否附加在图表上。这是正常现象。
4. MT4 显示的输入参数没有分组标题,按下方所列顺序排列。
警报
默认关闭。两个独立的开关:
- "Alert: +DI / -DI cross":当一根K线收盘时 +DI 向上或向下穿过 -DI,发出一次警报;
- "Alert: ADX crosses above the threshold":当一根K线收盘时 ADX 向上穿过阈值,发出一次警报(仅限向上);
- 对于指标加载之前已收盘的K线绝不发出警报,因此重启不会重复旧的警报;
- 文本示例:"DMI TV GBPUSD H4: ADX crossed above 25.0 (ADX 25.63)";
- 弹窗、声音和推送(需要 MetaQuotes ID)可以组合使用;文本为英文或日文(Language 参数)。
- 在策略测试器中不发出警报。
与 TRADINGVIEW 的比较
我们将 TradingView 自身的价格K线导入 MetaTrader,并将三条线与 TradingView 内置 DMI 进行比较:它们在浮点舍入范围内一致(差异约为 1e-12)。您的 MT4 图表使用您的经纪商的价格,与 TradingView 的数据源略有不同,因此会有细小的差异。Wilder 平滑从您历史数据中最早的一根K线开始;如果这根K线与 TradingView 上的不同,图表最早的部分可能略有差异,随着计算的K线增多,这种差异会逐渐消失。
iCUSTOM 缓冲区
缓冲区 0:ADX。缓冲区 1:+DI。缓冲区 2:-DI。尚无数值时为 EMPTY_VALUE。
通过 iCustom 调用时,指标不发送警报;只填充缓冲区。输入参数没有分组标题,因此请按下方顺序传递参数。
参数(MT4 顺序)
ADX Smoothing = 14 (1-1000); DI Length = 14 (1-1000); ADX line color = #F50057; +DI line color = #2962FF; -DI line color = #FF6D00; Line width = 1 (1-5); Show ADX threshold line = true; ADX threshold = 25 (0-100); Threshold line color = #787B86; Alert: +DI / -DI cross = false; Alert: ADX crosses above the threshold = false; Alert by pop-up = true; Alert by sound = false; Alert by push notification = false; Language = Auto(终端语言)、English 或 Japanese。
超出范围的值会使指标无法加载,原因写入 Experts 日志。
须知
- 阈值 25 是常用的参考值,并非规则。您可以随意更改它或关闭这条线。
- 不使用 DLL,不使用文件,不访问互联网。
- 这是一个分析工具。它不会开仓或平仓,也不承诺任何交易结果。
支持
可通过 MQL5 消息获得安装、设置和错误报告方面的帮助。我不回答有关市场方向或具体交易的问题。
MT5 版本(单独的产品)以及同一作者的其他工具列在我的卖家资料页中。
TradingView 是 TradingView, Inc. 的商标。本产品与 TradingView, Inc. 无关联,也未获得其赞助或认可。
