请观看如何免费下载自动交易
请在Twitter上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
显示:
26
等级:
(1)
已发布:
MQL5自由职业者 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务




带多时间框架矩阵仪表盘的阿尔法-贝塔趋势过滤器

1. 概述

Alpha-Beta趋势过滤器 是一种源自控制理论和数字信号处理的预测性平滑指标。从概念上讲,它相当于一个简化的稳态卡尔曼滤波器。 标准移动平均线(SMA、EMA、LWMA)完全依赖于对历史数据的平均计算——因此本质上会滞后于实时价格走势——而阿尔法-贝塔滤波器则在过滤市场噪音的同时,主动估算当前的“真实”价格及趋势速度。

此特定的 MQL5 实现方案通过整合多符号、多时间周期矩阵仪表盘,对经典的单线指标进行了升级。它允许交易者直接通过单张图表监控整个投资组合的 Alpha-Beta 趋势偏向,并随每个报价点动态更新。

2. 数学引擎

该过滤器对每个新价格K线进行迭代处理。它依赖于两个主要的调参系数:

  • $\alpha$(阿尔法): 价格敏感度系数。它控制原始新价格观测值相对于滤波器内部预测值的权重。

  • $\beta$(贝塔): 速度敏感系数。它控制对趋势动量变化的响应程度。

该算法针对每根K线执行两个不同的阶段:

阶段 1:预测步骤

在当前K线收盘之前,该滤波器会根据上一根K线计算出的状态,预测当前价格($\hat{P}_{t}$)和速度($\hat{V}_{t}$):

$$\hat{P}_{t}=P_{t-1}+V_{t-1}$$
$$\hat{V}_{t}=V_{t-1}$$

第二阶段:更新步骤

一旦实际收盘价($Z_{t}$)公布,该滤波器便会计算其预测值与实际值之间的误差/残差($E_{t}$),并更新其内部状态:

$$E_{t}=Z_{t}-\hat{P}_{t}$$
$$P_{t}=\hat{P}_{t}+\alpha E_{t}$$
$$V_{t}=\hat{V}_{t}+\beta E_{t}$$

其中:

  • $Z_{t}$ 当前K线的实际收盘价。

  • $P_{t}$ 更新后的平滑价格估计值(绘制在图表上)。

  • $V_{t}$ 更新后的速度(用于判断多头/空头趋势倾向)。

3. 该实现方案的主要特点

  • 零滞后预测平滑: 主指标线比传统指数移动平均线(EMA)更紧密地贴合价格走势,使其成为快速交叉策略的绝佳基础层。

  • 动态颜色编码绘制: 主图表线利用 DRAW_COLOR_LINE 函数,根据$V_{t}$ 的内部状态在蓝色(看涨速度)和红色(看跌速度)之间自动切换

  • 非侵入式矩阵仪表盘: 图表上的图形化用户界面可跟踪用户自定义外部符号列表中多达 5 个时间周期的趋势状态(看涨、看跌、观望)。

  • 轻量级资源管理: 仪表盘中的外部符号和时间周期不会加载完整的历史数据。脚本仅通过 CopyClose() 提取计算实时状态所需的最小数量K线,从而避免终端延迟。

4. 输入参数说明

过滤引擎设置

  • inpAlpha(默认值:$0.2$): 取值范围通常为$0.1$$0.9$。 较高的$\alpha$ 值能紧密追踪原始价格(非常适合剥头皮交易);较低的$\alpha$ 值会大幅平滑走势,以忽略横盘震荡(更适合波段交易)。

  • inpBeta(默认值:$0.05$): 取值范围通常为$0.01$$0.5$。 较高的$\beta$ 值会对突发的动量变化做出剧烈反应;极低的$\beta$ 值则假设趋势稳定且坚定不移。

仪表盘网格设置

  • inpSymbols(默认值:“EURUSD,GBPUSD,USDJPY,AUDUSD”): 以逗号分隔的字符串,包含您希望跟踪的交易品种。代码会使用 StringSplit() 自动解析该字符串。

  • 时间周期切换(showM5 至 showD1): 布尔型输入参数,用于自定义矩阵仪表盘上显示的列。

5. 架构与代码亮点

对于审查源代码的 MQL5 开发者,请注意以下结构设计:

  • 时间序列索引: MQL5 默认会按从最旧到最新的顺序对数组进行索引。为了与标准交易逻辑保持一致(其中 [0] 代表当前实时K线),代码对所有指标缓冲区和获取的数组都广泛使用了 ArraySetAsSeries(buffer, true) 函数。

  • 状态提取辅助函数: GetStateForTarget() 函数是仪表盘使用的独立循环。它会获取目标符号/时间周期的 50 根 K 线收盘价,初始化预测引擎,并返回一个整数状态(0 表示看涨,1 表示看跌),无需调用外部的 iCustom 函数。

  • 干净的对象初始化解除: OnDeinit() 函数会遍历 UI 前缀(AB_Matrix_),以确保在指标被移除的瞬间,所有图形标签均从图表中清除。

6. 交易应用

  • 超短线交易配置: 尝试将$\alpha$ 设为 0.45,$\beta$ 设为 0.12。彩色线条将快速翻转,使您能够捕捉 M1 或 M5 图表上的微趋势。

  • 宏观波段交易配置: 将参数值调低至$\alpha$ 为 0.15,$\beta$ 为 0.02。在日内波动期间,指标将趋于平稳,使您能够持仓直至出现真正的宏观速度转变。

  • 矩阵汇聚: 利用仪表盘,仅在当前图表中,当该特定交易品种的 H1、H4 和 D1 单元格完全呈现相同颜色时,才进行交易。

由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/74958

SuperTrend_Amarnath_Kondiyan_Mohan SuperTrend_Amarnath_Kondiyan_Mohan

采用篮式止盈止损管理的超级趋势策略

CKS Position Risk Dashboard CKS Position Risk Dashboard

一个只读的MT5仪表盘,用于基于风险的手数设定、账户健康状况、经纪商交易量限制以及当前交易品种的风险敞口。

Trend Flasher -AKM Trend Flasher -AKM

多币种、多符号超级趋势仪表盘

离散 离散

离散技术指标由价格和交易量的变化决定。