Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Оцени его работу в терминале MetaTrader 5
Benchmark - библиотека для MetaTrader 5
- Просмотров:
- 1907
- Рейтинг:
- Опубликован:
- 2020.10.01 14:37
- Обновлен:
- 2020.10.08 06:21
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Библиотека предназначена для быстрого и удобного измерения времени выполнения некоторых частей кода.
Исходный код.
int f1() { Sleep(100); return(1); } int f2() { Sleep(200); return(2); } int f3() { Sleep(300); return(3); } int g() { return((f1() + f2() + f3() == 6) ? f1() * f2() : 0); } void OnStart() { if (g() == 2) Print(f3() == 3); Print(f1()); Print(f2()); }
Результат выполнения.
true 1 2
Пример измерения.
Измерим некоторые части исходного кода выше.
// #include <fxsaber\Benchmark\Microseconds.mqh> // https://www.mql5.com/ru/forum/282062/page28#comment_18584846 #include <fxsaber\Benchmark\Benchmark.mqh> // Измерение времени выполнения функций/методов, выражений и частей кода. #define _B2(A) _B(A, 500) // Алертим все, что исполняется дольше 500 микросекунд. int f1() { Sleep(100); return(1); } int f2() { Sleep(200); return(2); } int f3() { Sleep(300); return(3); } int g() { return(_B2(f1() + f2() + f3() == 6) ? _B2(f1() * f2()) : 0); } void OnStart() { if (_B2(g()) == 2) Print(_B2(f3() == 3)); _BV( Print(f1()); Print(f2());, 150) // Алерт, если исполнение дольше 150 микросекунд. }
Результат выполнения.
Alert: Time[Test9.mq5 10 in g: f1()+f2()+f3()==6] = 646715 mсs. Alert: Time[Test9.mq5 11 in g: f1()*f2()] = 326081 mсs. Alert: Time[Test9.mq5 16 in OnStart: g()] = 973158 mсs. Alert: Time[Test9.mq5 17 in OnStart: f3()==3] = 326057 mсs. true 1 2 Alert: Time[Test9.mq5 19: Print(f1());Print(f2());] = 327744 mсs.
Видно, сколько и что выполнялось.
Где использовать?
Полезно при поиске узких мест производительности. Позволяет быстро вставить замер в интересуемые участки исходного кода. Выявить провалы производительности при длительной работе MQL-программ.
OneSayStreet
Стратегия по двум индикаторам: MA и RVI
OHLC and indicators to CSV PanelУтилита: сохранение значений OHLC баров и нулевого буфера выбранного индикатора в csv файл
Opened Positions
Утилита: суммарная информация по позициям
Exponential Weighted Moving AverageExponential Weighted Moving Average - экспоненциально взвешенная скользящая средняя (EWMA).