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

Monday Dip EA- Index Mean Reversion D1 - MetaTrader 5EA

chen guang
chen guang
量化开发专家 | EA 与自动化交易系统

专注于高性能 MT4/MT5 EA、自定义指标及自动化交易解决方案,注重严格风控与代码质量。

🚀 免费资源与回测报告: rbot.cc

🛠️ 承接 EA 定制开发。欢迎私信咨询!
| Chinese English Русский Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
显示:
8
等级:
(1)
已发布:
MQL5自由职业者 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

该专家顾问直接在所挂载的任何交易品种图表上进行交易(无硬编码的交易品种)。它每周最多执行一笔交易,且所有策略决策均仅基于服务器时间的日线(D1)收盘K线数据进行计算。


⚡ 核心规则

  • 规则 1 — 入场: 在周一收盘时,将收盘价与上一交易日(通常为周五)的收盘价进行比较。仅当周一收盘价严格低于前一交易日的收盘价时,才会触发做多头寸。此检查每周仅进行一次。
  • 规则 2 — 平仓: 无论盈亏如何,持仓将在周三日线收盘时自动平仓(于下一个交易日的首个报价点执行)。若错过周三收盘,则任何后续日线收盘(周四、周五或周末收盘)都将触发平仓。
  • 规则 3 — 止损与安全: 建仓时将应用基于百分比的止损(InpStopLossPercent),并遵守经纪商的最小止损距离(SYMBOL_TRADE_STOPS_LEVEL)。 如果连续5次尝试设置或修改止损均失败,EA将尝试立即以市价平仓以确保资金安全。注意:本策略不设止盈目标——平仓完全基于时间和止损条件。

🛡️ 可选入场过滤器

这两个过滤器均为可选开关,仅能进一步限制入场条件(它们绝不会自行创建入场机会,也不会放宽规则 1):

  • 内部K线强度(IBS)过滤器: 计算周一K线的IBS = (收盘价 - 最低价) / (最高价 - 最低价)。仅当IBS <= InpIBSMax时才允许入场。若最高价等于最低价,则忽略该日并记录日志。
  • 移动平均线(MA)过滤器: 要求周一收盘价严格位于基于包含周一在内的日线(D1)收盘K线计算出的简单移动平均线(InpMAPeroid)下方。

⚙️ 关键规格

  • 图表周期: 与周期无关(内部使用 D1 系列)。建议附加到 D1 图表上,以便清晰地监控日志。
  • 符号兼容性: 支持多指数(US500、UK100、GER40 等)。
  • 风险管理: 严格执行单仓位限制,并具备强大的订单执行重试逻辑及紧急平仓机制。

输入参数

输入 默认值 单位 含义和效果
InpLots 0.10 手 每次建仓时请求的固定仓位规模。该数值将向下取整至该交易品种的成交量步长;若规模小于 SYMBOL_VOLUME_MIN,则取消建仓(绝不会向上取整);若规模大于 SYMBOL_VOLUME_MAX,则被限制为最大值。
InpStopLossPercent 10.0 入场价格的百分比 止损位相对于入场价格的距离。如果经纪商的 SYMBOL_TRADE_STOPS_LEVEL 要求更大的距离,则止损距离会相应扩大。小于或等于 0 的值在启动时会被拒绝:没有止损时,EA 不会运行。
InpMagic 20260922 标识符 用于标记EA自有头寸的魔术号。仅统计并管理在带有此魔术号的图表符号上的头寸。
InpMaxSlippagePoints 30 点 进场和出场时要求的最大偏差(滑点容忍度)。这仅为容忍度要求,并非保证上限:实际成交价格还取决于经纪商的执行模式和政策。
InpTradeComment "MonDip 多头" 文本 附加在入场订单上的注释,可在交易终端的交易历史中查看。
InpUseIBS true 开 / 关 启用可选的 IBS 入场过滤器(见下文)。该过滤器只会使入场条件更加严格。
InpIBSMax 0.25 比率,取值范围在 (0, 1] 内 周一K线允许的最大IBS值。启动时,超出(0, 1]范围的数值将被拒绝。
InpUseMA true 开 / 关 启用可选的长期移动平均线入场过滤器(见下文)。
InpMAPeriod 180 日K线 日收盘价简单移动平均线的周期,基于以周一K线为终点的已收盘D1K线计算。启动时,小于2的数值将被拒绝。
InpVerboseLog true 开 / 关 打印额外的日志详情。无论此开关设置如何,每周决策线都会被打印出来。

三个代码片段中的核心逻辑

以下代码片段直接摘自提交的源代码。这些是决策逻辑的精选片段,并非完整的可运行程序。信号(规则 1):

//--- 规则 1 ------------------------------------------------------
   // 决定 D8:“低于”属于严格比较,若收盘价持平,则该周不进行交易。
   if(!(bar.close < refBar.close))
      return(StringFormat("SKIP - rule 1: the Monday close %s is not below the previous trading day's close %s (equal or above).",
                          DoubleToString(bar.close, _Digits), DoubleToString(refBar.close, _Digits)));

过滤器(IBS和长期移动平均线):

//--- 过滤器 1:肠易激综合征 ----------------------------------------------
   if(InpUseIBS)
   {
      if(!haveIBS)
      {
         // 决定 D7
         return("SKIP - IBS filter: High == Low on the Monday bar, the ratio is undefined - no-trade day.");
      }
      if(!(ibs <= InpIBSMax))                        // 决定 D8:按规定使用“<=”
         return(StringFormat("SKIP - IBS filter: IBS %.4f is above InpIBSMax %.4f.", ibs, InpIBSMax));
   }

   //--- 过滤器 2:长期移动平均线 -------------------------------------
   if(InpUseMA)
   {
      if(!haveMA)
         return(StringFormat("SKIP - MA filter: not enough daily history to compute the MA(%d).", InpMAPeriod));
      if(!(bar.close < ma))                          // 决定 D8:严格解释“<”
         return(StringFormat("SKIP - MA filter: the Monday close %s is not below the MA(%d) %s.",
                             DoubleToString(bar.close, _Digits), InpMAPeriod, DoubleToString(ma, _Digits)));
   }

平仓(周三收盘及之后):

   MqlDateTime dtBar;
   TimeToStruct(tBar, dtBar);                        // 决定 D18
   if(!BarIsAtOrAfterWednesday(dtBar.day_of_week))
      return;

   // 决策 D2:平仓由周三K线的收盘价触发,并且
   // 在其后的第一个时间点执行,并不断重试,直到头寸归零。
   // 决定 D24:“K线收盘”是MT5的定义——即下一根
   // 日线图的开盘时间以服务器时间为准,而非现货市场的收盘钟声。
   CloseOurPosition(StringFormat("rule 2 - the daily bar %s closed and it is a %s (Wednesday close reached)",
                                 TimeToString(tBar, TIME_DATE), WeekdayName(dtBar.day_of_week)));

周流程


图 1. 该 EA 的一个周周期——示意图,并非交易终端截图,亦非回测数据。

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

ATR 监测器——日、周和月波动范围 ATR 监测器——日、周和月波动范围

显示日、周和月的平均真实范围(ATR)、当前的高低价区间、该区间占ATR的百分比,以及各周期自开盘以来的价格变动。

London Breakout EA:简单且透明/London Breakout 自动交易程序:简单且透明 London Breakout EA:简单且透明/London Breakout 自动交易程序:简单且透明

免费突破型EA:亚洲区间、伦敦时段突破、每日一单、始终设置止损、手数按风险百分比计算。 不采用网格交易,不采用马丁格尔策略。 / 免费自动交易程序:伦敦时段亚洲区间突破,每日一笔交易,始终设置止损,手数基于风险百分比。不采用网格交易和马丁格尔策略。

Marginal Drawdown Contribution Analyzer Marginal Drawdown Contribution Analyzer

一个适用于运行多个专家顾问(EA)或配置的账户的脚本。它按日汇总每种配置(魔术号,或魔术号与符号组合)的净结果,并衡量每种配置对投资组合回撤的贡献程度:通过“留一法”计算的回撤增量、最差回撤中的占比,以及欧拉方差占比。 该脚本会输出评估结论、建议以及A+至F的启发式评分。它可直接在内置的演示投资组合上运行,并采用纯MQL5编写。

GDS Renko 交易管理器 — MetaTrader 5 GDS Renko 交易管理器 — MetaTrader 5

一款适用于MetaTrader 5的手动交易管理器:支持已形成的伦科砖块、可配置的盈亏平衡点和追踪止损,以及图表内的伦科仪表盘。不支持自动入场。