请观看如何免费下载自动交易
请在Telegram上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
指标

Machine Learning Supertrend - MetaTrader 5脚本

Hammad Dilber
Hammad Dilber
Professional MQL5 developer specializing in automated trading solutions. I create custom Expert Advisors, trading bots, and technical indicators for MetaTrader 5 platforms.
Services:
• Custom Expert Advisors (EA) from scratch
• Trading bot development with risk management
| Chinese English Русский Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
显示:
823
等级:
(13)
已发布:
已更新:
MQL5自由职业者 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

这是一款新一代的SuperTrend指标,它在经典的趋势跟踪概念基础上叠加了一个完整的机器学习引擎。 该指标不再采用固定的ATR倍数和静态规则,而是持续从自身的信号历史数据中学习,逐根K线调整核心参数,并在图表上绘制任何箭头之前,通过多阶段确认流程对入场点进行过滤。 它完全在 MetaTrader 5 指标框架内运行,无需外部库,并提供了一个隐藏的“置信度”缓冲区,任何专家顾问均可直接读取该缓冲区以进行自动化交易。

该指标分为13 个输入组,涵盖其行为的各个方面:信号模式、波动率包络、动量过滤器、流量分析、信号质量、主反应性调节旋钮、自动调优引擎、优化器、风险防护、上下文记忆(状态网格)、衰减轨迹、警报和显示。 默认值的设定确保该指标在任何流动性良好的交易品种和任何时间周期下均可开箱即用,但每个参数均可独立调整,以适应特定的交易品种或交易风格。


指标的工作原理

该指标的核心功能是利用应用于用户选定价格基准的RMA平滑ATR包络线,计算两条SuperTrend带——多头线(蓝色)和空头线(红色)。 带宽和ATR周期并非固定值:它们以您输入的数值为起点,随后在每次评估新的交易结果时,由优化器持续进行调整。这意味着在高波动性时期,包络线会自然变宽;而在市场平静时,则会自然收窄,无需任何人工干预。

信号生成分为两种模式。在“反转模式” 下,该指标关注已确认的趋势反转:当趋势为熊市时必须形成看涨枢轴点(产生绿色买入箭头),或在趋势为牛市时必须形成看跌枢轴点(产生红色卖出箭头)。 在突破模式下, 逻辑则相反:上升趋势中出现新的震荡高点将触发卖出信号,预示突破失败;而下降趋势中出现新的震荡低点则触发买入信号。两种模式均要求所有有效的确认过滤器均达成一致后,才会绘制箭头。


确认过滤器

每个候选信号在被采纳前,都必须通过三个独立的过滤器。

动量过滤器 使用标准的RSI指标。要触发买入信号,RSI必须在最近的回溯窗口内触及或跌破“冷水平”(默认30)。 对于卖出信号,RSI 必须触及或上穿“热水平”(默认 70)。这可防止指标在单边动量运行期间产生逆势入场信号。

流量分析 过滤器分析 tick 量。当启用“要求激增”选项时,只有当当前 K 线的成交量至少超过前几个样本 K 线平均值的“激增阈值”倍数时,信号才会被接受。这可排除发生在成交量较低 K 线上的信号,因为在这些 K 线上,突破信号更可能为假信号。

当“仅关键水平”模式激活时,“信号质量”过滤器要求信号背后的枢轴点必须是主要结构水平:从震荡高点到最近的震荡低点(或反之)的距离必须超过“关键水平深度”乘以当前ATR的值。这确保信号基于重要的价格结构,而非微小的波动。


机器学习引擎

机器学习引擎通过四个协同工作的子系统运行。

“上下文记忆”(Regime Grid) 是一个 8x8 的网格(可配置),其一个轴映射市场状态,另一个轴映射波动率。每个单元格会累积在类似条件下发生的过往交易的指数加权统计数据。 在评估新信号时,该指标会读取与当前市场状态和波动率相对应的单元格,利用高斯核函数(由“邻域融合半径”控制)融合相邻单元格的建议,并据此调整置信度评分。单元格数据会通过半衰期参数随时间衰减,从而使过时的市场记忆逐渐被遗忘。

优化器 每隔几个K线运行一次(由“更新冷却时间”设定)。它评估近期交易结果的滚动窗口,并针对五个参数计算梯度式更新:带宽乘数、ATR平滑长度、止损距离、止盈距离以及突破缓冲区。 更新结果经过量化处理以避免追逐噪声,死区机制则防止那些不会实质性改变行为的微调。周期性复位步骤将参数拉回锚定值,以防止在异常市场条件下出现参数漂移。

衰减轨迹缓冲区 将近期信号结果作为衰减能量记录存储,形成短期记忆。 每条记录包含信号生成时的 ATR 标准化回报率、最大不利波动、状态模式以及波动率水平。这些轨迹为优化器提供了比简单的盈亏计数更丰富的上下文信息,有助于其区分方向正确但因噪声被止损的信号与真正错误的信号。

启用“微批处理器” 后,它会将近期结果分组为小批次,并计算批次级别的参数建议。这些批次信号与优化器的滚动建议相结合,以平滑单笔交易的过度反应。


风险防护

风险防护系统位于信号引擎与缓冲区写入器之间。即使所有确认过滤器均通过且机器学习引擎认可某条信号,风险防护系统仍可在以下条件下将其拦截。

  • 交易时段限额。 一旦当前交易日的信号数量达到“每交易时段最大入场次数”,当天剩余时间内将不再绘制任何信号。
  • 交易时段亏损限额。 如果模拟交易时段的盈亏(根据“模拟仓位(美元)”和基于ATR的止损距离计算得出)跌破“交易时段亏损限额”,则所有后续信号将被阻止,直至下一个交易时段。
  • 亏损后冷却期。 发生亏损交易后,指标将强制暂停交易,暂停时长至少为“亏损后基础暂停周期”个K线。如果启用了“动态冷却期”,则暂停时长将根据亏损额相对于ATR的比例进行调整,亏损越大,暂停时间越长。
  • 连续亏损次数。 如果连续亏损次数达到“连亏限制”,则无论冷却计时器状态如何,该交易时段剩余时间内的交易都将暂停。

所有“风险防护”计数器将在每个新交易日开始时自动重置。


信心评分与EA集成

每个信号柱都会获得一个介于0到100之间的信心评分,该评分将写入隐藏的第五缓冲区(标签:Confidence)。 该评分由四个组成部分构成:来自“状态网格”的网格单元信心值、RSI 强烈确认信号方向时的加成、成交量激增时的加成,以及当前状态与信号方向一致时的加成。 专家顾问(EA)可通过 CopyBuffer 读取该缓冲区,并利用该评分来调整仓位规模、过滤低信心信号,或在多个交易品种中对竞争信号进行排序。


仪表盘

当启用“显示信息仪表盘”功能时,系统会直接在图表上以文本标签对象的形式绘制一个多列表格。该仪表盘显示当前趋势方向、多头和空头信号的实际胜率(分别计算,基于实际5根K线的前瞻价格比较而非模拟结果), 基于滚动ATR-收益率历史数据的夏普比率和索提诺比率、信号总数、当前信心评分以及风险防护状态(剩余的活跃冷却期K线数、本交易时段已使用的交易次数、交易时段盈亏)。仪表盘会在每个新K线生成时以及每次实时报价更新时自动刷新。


警报

每当当前(实时)K线绘制出新的买入或卖出箭头时,该指标可发送MetaTrader弹出警报和/或移动端推送通知。“每根K线仅触发一次”选项可防止因新报价导致指标在同一根K线上重新计算时产生重复警报。


输入参数

参数
默认值
描述
组 1 — 信号模式


信号类型
反转
反转:趋势反转时触发信号。突破:在新的极端点位突破失败时触发信号。
需出现新的枢轴点
false
当为true时,反转信号要求在趋势反转前必须已形成新的波动极值。这会降低信号频率并提高选择性。
信号间隔
10
两个连续信号之间必须经过的最小K线数量。可防止在波动剧烈的市场中出现信号聚集现象。
第2组 — 波动率包络线


回溯窗口
30
用于检测信号逻辑中震荡高点和低点的近期K线数量。同时设定传递给优化器的初始灵敏度值。
平滑周期
24
SuperTrend包络线的ATR周期。该参数会随时间推移由优化器进行调整。周期越长,生成的带状线越平滑,对波动率变化的反应也越迟缓。
带宽
1.4
SuperTrend 带的 ATR 倍数。由优化器动态调整。数值越高,带宽越宽,趋势反转次数减少,但反转信号更可靠。
价格基准
hlcc4
用作SuperTrend带的中点的价格系列。选项:开盘价、最高价、最低价、收盘价、hl2、hlc3、ohLC4、hlcc4。
真实波动范围模式
true
当设置为 true 时,ATR 采用 RMA 进行平滑处理(怀尔德平滑法);当设置为 false 时,则采用 EMA 平滑处理。RMA 是 SuperTrend 的经典处理方式。
第3组 — 动量滤波器


RSI 启用
true
启用 RSI 动量确认过滤器。禁用该选项将允许无论 RSI 处于何种位置均产生信号。
RSI 周期
14
RSI计算的周期。
热点区域记忆
50
在检查RSI是否曾高于“热区水平”时,回溯的K线数量。要产生卖出信号,该时间窗口内至少有一根K线的RSI需高于“热区水平”。
冷区记忆
50
在检查RSI是否曾低于冷区阈值时,回溯的K线数量。买入信号要求该时间窗口内至少有一根K线的RSI低于冷区阈值。
RSI 热区水平
70
RSI的阈值,超过该值即被视为动量超买。该阈值同时用于过滤器和置信度评分器。
RSI冷水平
30
RSI阈值,低于该阈值时动量被视为超卖。
第4组 — 流量分析


样本深度
3
用于计算成交量平均值以形成突发量检查基准的近期K线数量。
激增阈值
1.2
当前K线的成交量必须超过平均成交量的该倍数,突增过滤器才会通过。
要求突发
false
当值为 true 时,任何信号都必须发生体积突增。当值为 false 时,突增检查仅为建议性质,不会阻塞信号。
第5组 — 信号质量


仅关键电平
false
当为 true 时,信号仅限于根据“关键水平深度”阈值符合主要结构性水平条件的枢轴点。
关键水平深度 (xATR)
4.5
枢轴点被归类为主要水平位所需的最小波动范围(以ATR为单位)。
第6组 — 主表盘


反应性 (1-20)
10
全局灵敏度调节盘。数值越低,信号引擎对价格波动的反应越弱,这虽能减少噪音,但也降低了响应速度。数值越高,灵敏度越大。
微批处理
true
启用微批处理学习子系统,该子系统会将近期信号结果分组,并将批处理级别的参数建议与优化器输出相结合。
实时压力传感器
true
启用实时 tick 压力追踪。该传感器会累积每个 K 线内的买入和卖出压力,并将数据输入到市场状态分类器中。
第7组 — 自动调优引擎


启用自动调优
true
自动调谐系统的总开关。禁用时,带宽和平滑周期将保持为输入值。
使用后台测试矩阵
true
启用后台测试矩阵系统,该系统会在后台静默追踪不同参数组合下的假设交易结果,为优化器提供参考。
将包络线锁定到基准
true
当设置为 true 时,绘图带宽(即图表上显示的内容)将锁定为输入的“带宽”值。信号引擎在内部仍会使用自适应参数。
第 8 组 — 优化器


启用优化器
true
参数优化器的主开关。当禁用时,五个自适应参数将保持其初始值。
步长
0.25
参数更新的学习率。数值越小,适应过程越稳定但速度越慢;数值越大,反应越快但可能出现振荡。
历史深度
30
用于计算夏普比率、索提诺比率和胜率的滚动统计窗口中,所采用的近期交易结果数量。
获胜上限
0.62
如果滚动胜率超过此值,优化器将提高 ATR 乘数,以降低信号频率,并仅捕捉更高质量的交易机会。
获胜下限
0.38
如果滚动胜率跌破该值,优化器将降低ATR乘数,以提高反应速度并重新捕捉市场动能。
按 ATR 归一化收益
true
在将交易盈亏(PnL)存储到滚动回报数组之前,先将其除以信号时刻的ATR。这使得夏普比率和索提诺比率在不同的波动率环境下具有可比性。
动量平滑
0.35
在将优化器梯度添加到各参数之前,对其应用EMA α系数。可平滑单笔交易的过度反应。
更新冷却期(K线)
3
参数更新周期之间的最小K线数量。可防止优化器在每根K线上触发。
死区宽度
0.01
小于当前值该比例的参数变化将被抑制。防止由噪声驱动的微调。
死区周期
0.25
与“死区宽度”配合使用,用于计算死区衰减的周期分数。
量化步长
0.05
用于带宽乘数更新的量化步长。将拟定值四舍五入至该步长的最近倍数。
量化步长保护
0.02
自适应停止距离乘数的量化步长。
量化步长目标值
0.02
自适应止盈乘数的量化步长。
量化步长阈值
0.01
自适应突破缓冲区的量化步长。
锚点回调间隔
200
每隔这么多小节,所有自适应参数都会根据“锚点回调强度”的分数值,向其输入锚点值方向微调。可防止长期漂移。
锚点复位强度
0.01
每次复位事件中,当前自适应值与锚定值之间差距被缩小的比例。
每笔交易的盈亏上限
750.0
模拟的盈亏值若超过此绝对美元金额,将在存储到滚动收益数组之前被限制。此举可防止极端异常值扭曲优化器的统计数据。
第9组 — 风险防护


每交易时段最大交易次数
20
单个交易日内可绘制的信号箭头最大数量。该数值将在每个新交易日开始时重置。
交易时段亏损限额(美元)
-1000.0
如果模拟交易时段的盈亏(PnL)跌破此值,当天剩余时间内将不再绘制任何信号。
亏损后的基础暂停时间
5
在出现亏损信号后,需等待的最小K线数量,之后才允许出现新信号。若启用“动态冷却期”,该时间将相应延长。
连胜限制
3
允许连续出现亏损信号的最大次数,超过此限,本交易时段剩余时间将暂停交易。
按亏损幅度暂停加仓
true
当设置为 true 时,亏损后的冷却期将根据亏损额相对于 ATR 的比例相应延长。亏损越大,暂停时间越长。
组 10 — 上下文记忆(模式网格)


启用模式网格
true
启用二维上下文记忆网格,该网格按交易模式/波动率单元存储绩效统计数据,并将相关建议整合到置信度评分中。
运行状态区间
8
网格中沿状态轴的区间数量。区间数量越多,上下文分辨率越高,但会以单元格填充速度变慢为代价。
波动率区间
8
网格波动率轴上的区间数量。
邻域混合半径
0.8
用于混合相邻网格单元推荐值的高斯核的标准差。数值越大,平滑范围覆盖的单元越多;数值越小,每个单元之间的独立性越强。
衰减半衰期(笔)
50
达到该交易次数后,网格单元累积统计数据的影响力将衰减至原值的一半。控制市场历史数据被遗忘的速度。
置信度斜率(交易)
20
网格单元必须累积的最低交易次数,其后该单元的信心推荐值才能达到最大权重。
最大网格权重
0.65
状态网格可调整优化器输出的最大比例。该值限制了网格的权限,以防止其完全覆盖优化器的结果。
成交量比率上限
2.5
对波动率轴进行归一化以进行网格分桶时所使用的最大波动率比率。超过此值的数值将被限制在最高区间内。
第 11 组 — 衰减轨迹


启用轨迹缓冲区
true
启用短期记忆轨迹缓冲区,该缓冲区将最近的信号结果作为衰减能量记录存储,供优化器使用。
缓冲区深度
30
内存中同时保留的衰减跟踪记录的最大数量。
每小节衰减率
0.02
每个新小节中,每个轨迹记录的能量衰减比例。能量低于最低阈值的记录将从缓冲区中移除。
合并间隔(小节)
200
每隔此数量的柱,系统会将具有相似运行状态和波动率特征的轨迹记录进行合并,以减少缓冲区的碎片化。
不利波动阈值
0.8
以ATR为单位的最大不利偏离值,超过该阈值,该轨迹记录将被标记为尾部事件。被标记为尾部事件的记录会对优化器的止损距离参数产生更大的影响。
保护收紧上限
0.02
在单个优化器循环中,自适应止损乘数可因被标记为尾部事件的轨迹记录而收紧的最大比例值。
第12组 — 警报


信号弹出警报
true
当实时K线图上出现新的信号箭头时,发送MetaTrader弹出式警报对话框。
信号推送通知
false
当触发新的信号时,向MetaTrader移动应用发送推送通知。需在MetaTrader设置中配置推送通知功能。
每根K线仅提醒一次
true
当因新进来的 tick 数据导致指标在同一根K线重新计算时,防止重复发出警报。
第13组 — 显示


Guard xATR
1.00
用于计算仪表盘盈亏追踪和风险防护计算中模拟止损距离的 ATR 乘数。
目标 xATR
2.00
用于计算仪表盘盈亏(PnL)跟踪中模拟止盈距离的ATR乘数。
边际缓冲 xATR
0.20
在突破模式下,在止损或目标价位之外额外添加的ATR缓冲值,用于在模拟盈亏中考虑点差和滑点。
模拟头寸(美元)
1000.0
用于仪表盘和Risk Guard中所有模拟盈亏计算的名义头寸规模(单位:美元)。不影响实际交易。
显示信息仪表盘
true
启用图表上的多列信息表,显示趋势状态、胜率、夏普/索提诺比率、置信度评分以及Risk Guard状态。

ss简体中文(大陆)


注意: 本指标仅供教育和分析之用。机器学习子系统基于历史价格数据进行自适应调整,不保证未来表现。在实盘交易中使用前,请务必先在模拟账户中进行验证。仪表盘上显示的模拟盈亏数据基于ATR缩放的假设,并不反映实际经纪商的执行条件。

文件名
描述
ML_SuperTrend.mq5
ML SuperTrend指标的完整源代码(v10.02)

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

XANDER Adaptive Cross XANDER Adaptive Cross

两种对市场解读不同的自适应移动平均线。交叉点预示着趋势的转变。

Institutional GARCH(1,1) Volatility Forecaster Institutional GARCH(1,1) Volatility Forecaster

这是一款取代滞后型零售ATR的预测性定量引擎,它利用曾获诺贝尔奖的GARCH(1,1)计量经济学模型,从数学角度预测未来的市场波动率和方差。

Easy Range Breakout EA - MT5 Easy Range Breakout EA - MT5

该EA实现了一种区间突破交易策略。它会计算用户定义的起始时间和结束时间之间的价格区间,在图表上绘制一个矩形来标记该区间的最高点和最低点,然后监控该区间关闭后的价格走势。 如果市场突破区间高点,则开仓做多;如果跌破区间低点,则开仓做空。

Daily Risk Monitor Lite Daily Risk Monitor Lite

“Daily Risk Monitor Lite” 是一款轻量级的 MetaTrader 5 指标,可直接在图表上显示日实现盈亏、浮动盈亏、日总盈亏、当前回撤以及基于颜色的风险状态。它是一款只读监控工具,不会平仓或阻止交易。