Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Библиотеки

CExecutionSafety - Ping + Execution Latency Guard for MQL5 EAs - библиотека для MetaTrader 5

Просмотров:
44
Рейтинг:
(2)
Опубликован:
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Обзор

CExecutionSafety - это легкий включаемый класс MQL5, предназначенный для защиты экспертов от совершения сделок в плохих условиях сети или исполнения.
Он измеряет два компонента задержки - живой пинг терминала и реальную задержку исполнения в wall-clock - и блокирует попытки торговли, если их суммарное значение превышает настраиваемый порог.

Проблема, которую он решает

Большинство советников работают вслепую, не обращая внимания на сетевые условия. Скачок пинга или задержка исполнения со стороны брокера во время исполнения критического ордера может привести к проскальзыванию, реквотам или неудачному заполнению.
CExecutionSafety представляет собой ворота безопасности перед торговлей, которые предотвращают исполнение при ухудшении условий.

Как это работает

Класс использует два источника данных:

  • TERMINAL_PING_LAST: считывает самый последний пинг, записанный MetaTerminal (в миллисекундах).
  • RecordExecDelay(): принимает измерение в стенных часах, которое вы оборачиваете вокруг любой операции CTrade.

Эти два значения суммируются и сравниваются с настроенным порогом. Если суммарная задержка превышает порог, функция CheckExecutionSafety() возвращает false и печатает запись в диагностическом журнале.
Рисунок 1: Terminal_Ping_Last

Защита от отключения

Когда терминал не имеет связи с сервером, TERMINAL_PING_LAST возвращает -1. Класс обнаруживает это и автоматически возвращает false, предотвращая попытки торговли на отключенном терминале.

Пример интеграции

Включите файл и инстанцируйте класс в советнике:

#include <DeeFX/CExecutionSafety.mqh> CExecutionSafety safety; int OnInit() { safety.Init(150); // комбинированный порог 150 мс return INIT_SUCCEEDED; } void OnTick() { if(!safety.CheckExecutionSafety()) return; ulong t0 = GetTickCount64(); trade.PositionClose(ticket); safety.RecordExecDelay(GetTickCount64() - t0); }

Аксессоры

Следующие аксессоры, доступные только для чтения, доступны для отображения на приборной панели или для внешней логики:

  • GetPingMs(): текущий пинг терминала в мс
  • GetExecDelayMs(): последняя зарегистрированная задержка выполнения в мс
  • GetCombinedMs(): пинг + задержка выполнения в мс (возвращает 9999, если соединение прервано)
  • HasExecSample(): true, если было записано хотя бы одно измерение
  • GetThresholdMs(): настроенный порог безопасности

Changelog

  • v1.0 - Первоначальный выпуск
  • v1.1 - Переименован макрос Guard. Спецификаторы формата %I64u заменены на (строковые) касты
  • v1.2 - Изменен тип возвращаемого значения Init() на void → bool. Состояние сбрасывается при повторном запуске для предотвращения устаревших образцов

Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/70033

Combine Multi Timeframe Trends into one trend using MA. Combine Multi Timeframe Trends into one trend using MA.

Объедините тренды нескольких таймфреймов в один тренд с помощью MA.

Modern Time Panel - Candle Time Modern Time Panel - Candle Time

Modern Time Panel для MT5 Modern Time Panel - это элегантный, минималистичный пользовательский индикатор для MetaTrader 5, который поможет вам точно отслеживать время. Закрепленный в правом верхнем углу вашего графика, он отображает текущее брокерское время, местное время и обратный отсчет до следующей свечи (нового бара). Благодаря независимому 1-секундному таймеру отсчет идет непрерывно, даже если рынок медленный или нет входящих тиков. Полностью настраиваемый и работающий в темном режиме, он является идеальным ненавязчивым инструментом, чтобы вы никогда не пропустили закрытие свечи.

YURAZ_RSAXEL Скрипт рисует уровни Рудолфа Акселя YURAZ_RSAXEL Скрипт рисует уровни Рудолфа Акселя

Скрипт рисует уровни Рудолфа Акселя

YURAZ_MCCH YURAZ_MCCH

Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.