Runaway Guard
- Утилиты
- Версия: 1.0
- Активации: 10
Runaway Guard считает, с какой скоростью на счёт приходят сделки, отдельно по каждому источнику ордеров. Денежный результат торговли в расчёт не берётся. При превышении в папке MQL5/Files/RunawayGuard/ появляется CSV-файл с настоящими номерами тикетов, которые сходятся с историей терминала.
Четыре ограничения скорости
Всё считается в скользящем окне назад от текущего момента.
— Темп сделок: сколько сделок пришло за быстрое окно. По умолчанию 20 за 5 минут.
— Быстрые закрытия: позиции, продержавшиеся меньше минуты. По умолчанию 10 за 15 минут.
— Повторное открытие: та же сторона по тому же инструменту открыта снова в пределах 30 секунд после закрытия. По умолчанию 5 за 15 минут.
— Стоимость оборота: комиссии, свопы и реализованный результат за окно суммируются с учётом знака; в расчёт идёт только отрицательная часть. По умолчанию 0,5 % от баланса.
Порог, равный 0, отключает соответствующий показатель.
Кто выставил ордер
Строки разбиваются по магическому номеру программы. Для ручных ордеров тоже есть отдельная строка, она называется Manual / no magic. Строка All sources показывает счёт целиком, и по счёту измеряется только темп сделок. Исключённый источник не входит в итог, но его строка остаётся на панели.
Действие при превышении
Действие выбирается отдельно для каждого источника.
— Alert. Только сообщает. Значение по умолчанию.
— Cancel pendings. Снимает отложенные ордера источника, позиции не трогает.
— Stop the chart. Закрывает график источника; шаблон сохраняется заранее, иначе график остаётся открытым.
— Close the terminal. Полностью завершает работу MetaTrader 5. По умолчанию выключено, требуется включить InpAllowTerminalClose. В тестере не вызывается никогда.
Метка DISABLED означает не то, что подсчёт остановлен, а то, что действие сейчас невыполнимо; причина выводится рядом. Обычное состояние — WATCHING, при превышении появляется TRIGGERED.
Что показано на панели
Панель строится прямо в главном окне графика.
Runaway Guard Watch Sources
Window 5 min / 15 min State: TRIGGERED
Source Deals RT Reentry Cost Action
All sources 48 -- -- -- Alert
Manual / no magic 4 2 1 -4.00 Alert
Magic 33020001 0 10 9 -250.00 Alert
Magic 40010001 36 18 17 -36.00 Cancel
Magic 70010001 8 4 3 -8.00 Alert
Magic 70010002 12 6 5 -12.00 Excluded
Last incident: 07:47:26 Magic 70010002 reentry
5 in 15 min (limit 2)
-> incident_2026-08-14_074726_magic70010002_2.csv
Close the terminal needs InpAllowTerminalClose = true
Сложите Deals по отдельным строкам: 4 + 0 + 36 + 8 + 12 даёт 60. Затем 60 минус 12 из строки с пометкой Excluded даёт 48 — ровно то значение, которое стоит в строке All sources. Три прочерка в этой строке стоят потому, что по счёту целиком измеряется только темп сделок.
У Magic 33020001 в Deals ноль, а RT заполнен: Deals считается по быстрому окну, а RT, Reentry и Cost — по медленному. Источник Magic 70010002 помечен Excluded, но назван в строке Last incident: исключение лишь отключает срабатывания по источнику, а уже записанное остаётся. Пороги на снимке понижены, иначе четыре показателя не превысить разом; по умолчанию там стоят 20, 10 и 5.
В колонке RT показаны все закрытия за медленное окно, а в пороге учитываются только позиции, продержавшиеся меньше минуты.
Файл записи
time_broker,time_utc,time_local,trigger,measured,threshold,magic,symbol,deals,round_trips,commission,swap,realized,action,deal_tickets
Времени записывается три: брокерское, UTC и местное. С историей терминала совпадает только брокерское. Дальше идут показатель и его величина, порог, источник, инструмент, выполненное действие и перечень тикетов. Тикеты настоящие, расчётных и приблизительных значений в файле нет. Файлы не переписываются и не удаляются сами.
Меньше лишних срабатываний
Первую минуту после запуска действия не выполняются, а первые две минуты сессии пороги удваиваются. Исключить можно любой магический номер, и после срабатывания источник по тому же показателю молчит 10 минут.
Чего инструмент не делает
— В исходниках нет ни одного торгового действия на открытие, закрытие или изменение позиции.
— Отключить чужой советник нельзя, можно только закрыть его график.
— Ордера с телефона или другого терминала не остановить, но они видны в истории счёта.
— Исполненные сделки не отменяются — можно лишь не дать их числу расти.
— Наружу не отправляется ничего: внешних соединений, своего сервера и DLL нет.
Демонстрация, требования и параметры
В тестере стратегий синтетическая выборка сделок проходит через тот же код, что и реальные сделки. На экране выводится строка:
TESTER DEMO - synthetic sample, no orders are placed
Нужен MetaTrader 5; брокер и инструмент графика любые, программа смотрит на счёт, а не на график. Сделано и проверено на хеджинговом счёте, неттинговый реализован, но не проверен. Торговых действий, DLL и внешних запросов в исходниках ноль.
Входных параметров девятнадцать, все со значениями по умолчанию. Пороги задают восемь: InpWindowFastMin (5), InpMaxDealsPerWindow (20), InpWindowSlowMin (15), InpShortHoldSec (одна минута), InpMaxChurnPerWindow (10), InpReentrySec (30), InpMaxReentryPerWindow (5), InpMaxCostPercent (0,5). Изменения, сделанные на панели, сохраняются по счёту, а входные параметры не перезаписываются. Новый порог начинает действовать сразу.
Инструмент считает пришедшие на счёт сделки, выполняет выбранное действие и пишет запись. О том, что будет дальше, ничего не обещает.
