该专家顾问直接在所挂载的任何交易品种图表上进行交易(无硬编码的交易品种)。它每周最多执行一笔交易,且所有策略决策均仅基于服务器时间的日线(D1)收盘K线数据进行计算。
这两个过滤器均为可选开关,仅能进一步限制入场条件(它们绝不会自行创建入场机会,也不会放宽规则 1):
| 输入 | 默认值 | 单位 | 含义和效果 |
|---|---|---|---|
| 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)));

由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/78343
ATR 监测器——日、周和月波动范围
显示日、周和月的平均真实范围(ATR)、当前的高低价区间、该区间占ATR的百分比,以及各周期自开盘以来的价格变动。
London Breakout EA:简单且透明/London Breakout 自动交易程序:简单且透明
免费突破型EA:亚洲区间、伦敦时段突破、每日一单、始终设置止损、手数按风险百分比计算。 不采用网格交易,不采用马丁格尔策略。 / 免费自动交易程序:伦敦时段亚洲区间突破,每日一笔交易,始终设置止损,手数基于风险百分比。不采用网格交易和马丁格尔策略。
Marginal Drawdown Contribution Analyzer
一个适用于运行多个专家顾问(EA)或配置的账户的脚本。它按日汇总每种配置(魔术号,或魔术号与符号组合)的净结果,并衡量每种配置对投资组合回撤的贡献程度:通过“留一法”计算的回撤增量、最差回撤中的占比,以及欧拉方差占比。 该脚本会输出评估结论、建议以及A+至F的启发式评分。它可直接在内置的演示投资组合上运行,并采用纯MQL5编写。
GDS Renko 交易管理器 — MetaTrader 5
一款适用于MetaTrader 5的手动交易管理器:支持已形成的伦科砖块、可配置的盈亏平衡点和追踪止损,以及图表内的伦科仪表盘。不支持自动入场。