Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Просмотров:
- 260
- Рейтинг:
- Опубликован:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Простая замена комментария. Работает в тестере в 50 раз быстрее, чем стандартная функция.
Известно, что стандартная функция "Комментарий" очень сильно замедляет работу тестера.
Вот пример кода и времени его выполнения в тестере.
void OnTick() { MqlTick tick; SymbolInfoTick(_Symbol, tick); if(tick.ask != 0 && tick.bid != 0) { string str = StringFormat("ask = %.5f\nbid = %.5f\ntime = %s", tick.ask, tick.bid, TimeToString(tick.time, TIME_DATE | TIME_SECONDS)); Comment(str); } } //+------------------------------------------------------------------+

11 минут 28 секунд !!!

Просто добавьте код #include <Comm.mqh>
#include <Comm.mqh> //+------------------------------------------------------------------+ void OnTick() { MqlTick tick; SymbolInfoTick(_Symbol, tick); if(tick.ask != 0 && tick.bid != 0) { string str = StringFormat("ask = %.5f\nbid = %.5f\ntime = %s", tick.ask, tick.bid, TimeToString(tick.time, TIME_DATE | TIME_SECONDS)); Comment(str); } } //+------------------------------------------------------------------+

14 секунд !!!
14секунд вместо 11 минут 28секунд
11*60+28=688, 688/14=49, в 49 раз быстрее!!!Пример использования с настройками по умолчанию.
Не нужно объявлять экземпляр класса.
#include <Comm.mqh> //+------------------------------------------------------------------+ void OnTick() { string str = "PROGRAM_NAME = " + MQLInfoString(MQL_PROGRAM_NAME) + "\n" + (string)TimeCurrent(); Comment(str); } //+------------------------------------------------------------------+

Пример использования с возможностью изменения настроек.
#include <Comm.mqh> //+------------------------------------------------------------------+ void OnTick() { string str = "PROGRAM_NAME = " + MQLInfoString(MQL_PROGRAM_NAME) + "\n" + (string)TimeCurrent(); Comment(str, _Xpx, _Ypx, _clrText, _FontSize, _clrBack, _Transparency, _Font, _corner); } //+------------------------------------------------------------------+

Пример использования нескольких экземпляров комментария.
#include <Comm.mqh> CComm comm1; CComm comm2; CComm comm3; CComm comm4; //+------------------------------------------------------------------+ void OnTick() { MqlTick tick; SymbolInfoTick(_Symbol, tick); if(tick.ask != 0 && tick.bid != 0) { string str = StringFormat("ask = %.5f\nbid = %.5f\ntime = %s", tick.ask, tick.bid, TimeToString(tick.time, TIME_DATE | TIME_SECONDS)); Comment(str); comm1.Comm(str, _Xpx, _Ypx + 80, _clrText, _FontSize, _clrBack, _Transparency, _Font, _corner); comm2.Comm(str, _Xpx + 10, _Ypx + 20, _clrText, _FontSize, clrGreen, _Transparency, _Font, CORNER_LEFT_LOWER); comm3.Comm(str, _Xpx + 30, _Ypx, clrGreen, _FontSize, _clrBack, _Transparency, _Font, CORNER_RIGHT_LOWER); comm4.Comm(str, _Xpx, _Ypx + 50, clrBlack, _FontSize, _clrBack, _Transparency, _Font, CORNER_RIGHT_UPPER); } } //+------------------------------------------------------------------+

обновление 05.12.2024 версия 1.06
обновление 05.12.2024 версия 1.07
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/53499
Скрипт для тестера, который расширяет стандартные возможности оптимизации MetaTrader 5
Это скрипт для тестера, который расширяет стандартные возможности оптимизации MetaTrader 5, позволяя оценивать стратегии по сложному пользовательскому критерию (с разделением на in-sample и out-of-sample периоды, продвинутыми метриками и статистическими тестами).
ServerTime
Легкий, настраиваемый инструмент, который отображает серверное время на вашем графике для принятия точных торговых решений.
Volume weighted line chart with smoothing
Более гладкий линейный график, который отсекает много рыночного шума и использует объем в формуле
Bull Bear Volume
Индикатор, который обеспечивает четкую визуализацию давления объема на каждую сторону рынка
