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

回溯测试欧元兑美元 01/03/2025 - 20/01/2026 时间框架 M5(ONNX AI 培训,专门针对 M5-M15)

回溯测试 GBPUSD 01/03/2025 - 20/01/2026 时间框架 M5(ONNX AI 培训专门针对 M5-M15)


1.概述

SidewaysMartingale 是一款智能交易系统,旨在使用马氏恢复策略 交易横盘(区间震荡)市场,并通过ONNX 模型 增强了基于 AI 的趋势检测器

该 EA 结合了

  • AI 趋势分类(横盘/看涨/看跌)

  • 用于基于范围的入场的包络线指标

  • 受控的马丁格尔头寸缩放

  • 基于利润的一揽子平仓

  • 基于保证金的紧急止损

核心理念是

仅当市场在统计上被归类为横盘时才进行交易,并避免在检测到强劲趋势时增加马氏仓位。


2.人工智能趋势检测器(与 ONNX 整合)

ONNX 模型输出

ONNX 模型返回

  • 预测标签(不直接使用)

  • 包含三个 概率的概率向量:

变量 意义
侧面 市场横盘/震荡的 概率
牛市概率 市场看涨(上升趋势) 的概率
熊市 市场看跌(下降趋势) 的概率

这些概率提取为

float prob_side = prob_data[0].values[0]; float prob_bull = prob_data[0].values[1]; float prob_bear = prob_data[0].values[2];


3.特征工程(人工智能输入)

EA 向 ONNX 模型输入9 个工程特征

特征指数 描述
f[0] EMA200 斜率(趋势方向和强度)
f[1] 价格与 EMA200 的距离
f[2] ATR 值(波动率)
f[3] 按 ATR 归一化的蜡烛区间
f[4] 突破压力与前高对比
f[5] 蜡烛图主体主导地位
f[6] 星期
f[7] 小时
f[8] 前一根蜡烛的方向


通过这些特征,人工智能模型可以检测到

  • 市场波动

  • 趋势强度

  • 基于时间的行为模式

  • 价格结构行为


4.横盘市场检测逻辑

当出现以下情况时,市场被视为横盘

bool is_sideway = (prob_side >= InpAISidewayThreshold);

例如

  • 如果 InpAISidewayThreshold = 0.70

  • 那么至少 需要70% 的置信度 才能将市场归类为横盘市场

👉除非满足此条件,否则不会打开新交易


5.进入逻辑(在区间内平仓)

EA 使用包络线 来检测区间极值。

买入

if(price_close <= lower[0] && is_sideway)

  • 价格触及或突破下包络线

  • AI 确认市场横盘

  • 打开买入 头寸

卖出输入

else if(price_close >= upper[0] && is_sideway)

  • 价格触及或突破上封套

  • 人工智能确认市场横盘

  • 打开卖出 头寸

💡 这可确保在非趋势条件下,仅在区间极值 进行交易。


6.马丁格尔恢复逻辑

当头寸已经存在时,EA 会应用基于距离的马丁格尔法

  • 只有当价格移动了规定的点数距离,才会开启新仓位

  • 使用乘数(LotMultiplier)增加手数

  • 限制最大交易次数(MaxTradesInSeries)

距离检查

if(dist >= reqDist)


7.马丁格尔人工智能安全过滤器

这是一个重要的风险控制机制

在添加新的马丁格尔头寸之前,EA 会进行检查:

当前系列是否为买入

if(s_seriesType == POSITION_TYPE_BUY && prob_bear >= InpAISafetyThreshold) return;

如果当前系列为卖出

if(s_seriesType == POSITION_TYPE_SELL && prob_bull >= InpAISafetyThreshold) return;

🔒 含义:

  • 如果 AI 检测到强烈的相反趋势

  • 且置信度超过 InpAISafetyThreshold 临界值

  • 停止马丁格尔扩张

这可以防止

  • 强势突破期间的马丁格尔

  • 趋势延续导致的深度缩水


8.利润目标和一篮子平仓

EA 监控所有仓位的总浮动利润

if(totalProfitUSD >= TakeProfitTargetUSD)

一旦达到:

  • 关闭所有仓位

  • 重置马丁格尔系列

  • EA 等待新的横向设置

这种方法将所有仓位视为一篮子交易


9.风险管理

基于保证金的紧急止损

if(((bal - eq)/bal)*100.0 >= StopLossByMarginPercent)

如果股票缩水超过规定的百分比:

  • 立即关闭所有仓位

  • 防止追加保证金


10.策略摘要

组成部分 目的
人工智能趋势探测器 对市场制度进行分类
概率边际 只允许在区间内交易
prob_bull / prob_bear 在强势趋势中阻止马丁格尔
包络线 定义范围极值
马丁格尔 横向市场中的恢复
一篮子 TP 均值回归后快速离场
保证金 SL 账户保护

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

修改订单 修改订单

修改未结头寸和挂单的功能

盈亏状况 盈亏状况

仓位盈亏计算器(未结订单)

VR Breakdown level - 基于突破前期高点或低点的交易策略 VR Breakdown level - 基于突破前期高点或低点的交易策略

基于简单突破前期高点或低点的交易策略

离散 离散

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