Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
Usage - библиотека для MetaTrader 5
- Просмотров:
- 1197
- Рейтинг:
- Опубликован:
- 2021.03.09 02:42
- Обновлен:
- 2021.09.10 02:04
- Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Иногда возникает необходимость проверок, успевает ли советник/индикатор выполнять свои действия. Одним из возможных критериев такого расчета является длительность выполнения расчетов от общего времени.
Например, если новый тик приходит раз в секунду, и OnTick вычисляется 150 мс, то вычислительная нагрузка равна 15%. Однако, если нагрузка подбирается к 50%, то тики, которые будут приходить два раза в секунду, не будут успевать обрабатываться.
Библиотека позволяет наглядно оценить данный критерий выполнения программы (или ее частей) и предупредить о возникновении повышенной нагрузки. Такая информация может показать наличие слабых сторон алгоритма, лагов VPS и т.д.
Пример.
#define USAGE_ALERT 50 // Порог срабатывания Алерта. #include <fxsaber\Usage\Usage.mqh> // Расчет нагрузки. const int Init = EventSetTimer(1); void OnTimer() { _USAGE // Расчет нагрузки. static int i = 0; Sleep((int)(MathAbs(MathSin(M_PI * i++ / 20)) * 500)); // Симуляция длительных расчетов. USAGE::GraphCreate(); // Вывели график нагрузки. } void OnTick() { _USAGE // Расчет нагрузки. } void OnDeinit( const int ) { USAGE::GraphDelete(); // Удалили график нагрузки. }
В результате выполнения этого кода будет строиться интерактивный график вычислительной нагрузки.
Этот график можно перемещать мышкой в удобное место чарта. Но важнее наличие срабатывания Алертов. Вот они.
В логи выводится подробная информация в виде распечатки массива значений, что видны на графике нагрузки.
2021.03.09 03:29:24.010 Usage_Example (EURUSD,M1) Alert: Usage (51.8%) >= 50% 2021.03.09 03:29:24.010 Usage_Example (EURUSD,M1) [ 0] 51.78140 49.21200 45.15360 41.55980 35.82600 30.26070 23.47220 16.10530 8.18690 2.13160 10.40100 15.99850 23.86960 30.76880 36.25110 2021.03.09 03:29:24.010 Usage_Example (EURUSD,M1) [15] 40.39270 45.34070 47.41340 51.04420 50.82700 51.77690 49.26530 45.55750 42.21760 36.19310 30.31490 23.78170 15.12960 9.58030 2.24770 2021.03.09 03:29:24.738 Usage_Example (EURUSD,M1) Alert: Usage (52.8%) >= 50% 2021.03.09 03:29:24.738 Usage_Example (EURUSD,M1) [ 0] 52.84770 51.78140 49.21200 45.15360 41.55980 35.82600 30.26070 23.47220 16.10530 8.18690 2.13160 10.40100 15.99850 23.86960 30.76880 2021.03.09 03:29:24.738 Usage_Example (EURUSD,M1) [15] 36.25110 40.39270 45.34070 47.41340 51.04420 50.82700 51.77690 49.26530 45.55750 42.21760 36.19310 30.31490 23.78170 15.12960 9.58030 2021.03.09 03:29:25.756 Usage_Example (EURUSD,M1) Alert: Usage (50.7%) >= 50% 2021.03.09 03:29:25.756 Usage_Example (EURUSD,M1) [ 0] 50.73730 52.84770 51.78140 49.21200 45.15360 41.55980 35.82600 30.26070 23.47220 16.10530 8.18690 2.13160 10.40100 15.99850 23.86960 2021.03.09 03:29:25.756 Usage_Example (EURUSD,M1) [15] 30.76880 36.25110 40.39270 45.34070 47.41340 51.04420 50.82700 51.77690 49.26530 45.55750 42.21760 36.19310 30.31490 23.78170 15.12960
Особенности.
- Не используются DLL, подходит для Маркета.
- Кроссплатформенная: MT4/5.
- Можно замерять только определенные части кода.
- Размеры и прозрачность графика может меняться.
- Замер нагрузки происходит постоянно, вне зависимости, строится график или нет.
- Чистые замеры (без построения графика) потребляют минимальное количество вычислительных ресурсов.
Торговая стратегия на основе пользовательских индикаторах 'RSI LiDo Color' и 'MA Color N Bars'
Multi-symbol Two iMA SimpleМультисимвольный советник (на два символа) на пересечении двух индикаторов iMA
Четыре способа контроля за Прибылью и Убытком.
Sound Alert Entry In OutСоветник-утилита: звук и Push-сообщение при входе и выходе из сделки