在 Tester 优化过程中,您可能会遇到因内存不足而导致通行崩溃的情况。
有一种方法可以 计算这种紧急通过。不过,要评估 Expert Advisor 内存消耗量大的输入参数的所有变量是很困难的。
您需要找到现有智能交易系统中可能存在问题的输入参数配置。然后找出原因。
这个简单的库可以让您以相当简单的方式跟踪内存消耗的动态变化。
为了说明问题,让我们以一个简洁的 EA 为例,在其中添加几行(突出显示)。
#property tester_no_cache #define MEMORY_TESTER_OPTIMIZATION // 在测试仪优化模式下运行。 #include <fxsaber\Memory\Memory.mqh> // 内存消耗监控。 input int inMaxMB = 10; void OnTick() { static MqlRates Rates[]; const int SizeMB = (ArraySize(Rates) * sizeof(MqlRates)) >> 20; if (SizeMB < inMaxMB) ArrayResize(Rates, ((SizeMB + 2) << 20) / sizeof(MqlRates)); // 将数组增加 ~ 兆字节。 } double OnTester() { return(gMemory.GetMax()); // 程序执行期间的最大内存消耗。 }
Expert Advisor 只需增加其数组。
结果。
图片显示了优化的结果。

内存消耗测量结果类似。
只需通过一次顶层设置,就会产生这样的结果。
Core 1 OnTester result 102 Core 1 2026.02.10 23:58:58 MQL_MEMORY_USED: Min = 0 Max = 102 Last = 0 Core 1 EURUSD,M1: 80954 ticks, 1437 bars generated. Environment synchronized in 0:00:00.020. Test passed in 0:00:01.781. Core 1 EURUSD,M1: total time from login to stop testing 0:00:01.801 (including 0:00:00.020 for history data synchronization) Core 1 202 Mb memory used including 23 Mb of history data, 64 Mb of tick data
情景。
通过该库,您可以发现 Expert Advisor 内存消耗过大的问题,并在调试模式下进一步调查原因。
Expert Advisor 消耗的资源越少,优化的机会就越多:测试代理数量增加 - 优化速度加快。
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/69335
RSI 价格行动突破指标
结合 RSI 耗尽区和蜡烛图突破形态的高精度趋势反转指标。
蜡烛平仓计时器 - MT5 指标
指标描述 - Candle Close Timer 名称:Candle Close Timer 版本: 1.0 作者:BENTRADE TRADING 链接:https://www.mql5.com/en/users/dahmi_benali
Multi-timeframe RSI scanner with visual dashboard and alerts
可用于生产的多时间框架 RSI 扫描仪,带有智能警报重试系统。可同时监控多达 7 个时间框架,在 3 个以上 TFs 一致时突出显示收敛区,现在还能自动重试失败通知,确保你不会错过关键的超买/超卖设置。
Trend based on WPR
该指标结合了 WPR 和总损益。我不知道如何详细介绍这个指标,但您可以试试。