Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 102
- Опубликован:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
В Тестере во время оптимизации можно сталкиваться с аварийным завершением проходов из-за нехватки памяти.
Существует метод вычисления таких аварийных проходов. Однако, оценить все множество вариантов входных параметров на предмет сильного потребления советником памяти сложно.
Требуется найти потенциально проблемные конфигурации входных параметров имеющегося советника. И затем разобраться в причинах.
Данная незамысловатая библиотека позволяет отслеживать динамику изменения потребления памяти довольно простым для пользователя способом.
Пример.
Для наглядности возьмем лаконичный советник и добавим в него несколько строк (выделены).
#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()); // Максимальное потребление памяти за время выполнения программы. }
Советник просто увеличивает свой массив.
Результат.
На картинке результат оптимизации.

Измерения потребляемой памяти похожи на правду.
Одиночный проход верхнего набора выдаст такое.
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
Сценарии.
Библиотека позволяет находить завышенное потребление памяти советником и далее разбираться в причинах в режиме дебага.
Чем меньше ресурсов отнимает советник - тем больше возможностей при оптимизации: увеличение количества агентов тестирования - скорости оптимизации.
VR Locker Lite - Торговая стратегия на основе положительного замка
Работа с помощью положительного замка, торговый робот создает один положительный замок, трейдер сам решает что с ним делать.
nModify Orders
Функция модификации открытых позиций и отложенных ордеров
YURAZ_RSAXEL Скрипт рисует уровни Рудолфа Акселя
Скрипт рисует уровни Рудолфа Акселя
YURAZ_MCCH
Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.