EA Circuit Breaker
- Утилиты
- Версия: 1.0
- Активации: 10
Большинство инструментов управления риском работают на весь счёт: сработал лимит — и останавливаются все советники на счету, даже те, что ничего плохого не делали. EA Circuit Breaker работает с одним советником за раз — своя строка, свои четыре лимита, свой исход. По умолчанию ничего не закрывается и не останавливается, и на реальном счёте инструмент сам не отправляет ни одного ордера.
= EA Circuit Breaker
Account 75584608 Hedging JPY
Today -242056.00 Open 4 / 0.27 lots
NAME TODAY OPEN LIMIT STATE
Trend bot -19200.00 0/0.00 -22725.48 [#####-] WARN
Range bot -61250.00 0/0.00 -22725.48 [######] LOCKED
Swing EA -98335.00 0/0.00 -22725.48 [######] LOCKED
Gold scalper -2300.00 1/0.05 -5302.61 [###---] OK
Grid v3 -8180.00 2/0.20 -8711.43 [######] WARN
News EA -12540.00 1/0.02 -7953.92 [######] LOCKED
Selected Gold scalper magic 1720
Gold scalper Alert only
Daily Total Max pos lots
0.70 0.70 0 0.00
e.g. Mon-Fri 08:00-17:00 Link chart
Chart --
Unlock Reset total
Selected Grid v3 magic 1721
1.15 2.40 0 0.00
Warning: 94% of the daily limit used
= EA Circuit Breaker 4 LOCKED
У Grid v3 шкала заполнена целиком, все шесть делений, но статус — WARN, а не LOCKED: у шкалы всего шесть ступеней, и она округляет вверх по мере приближения к лимиту, а статус определяется самим лимитом — строка предупреждения показывает точный процент использования. Today больше суммы шести видимых строк: на этом счету советников больше, чем таблица показывает разом, и Today, как и счётчик LOCKED в свёрнутом заголовке, считает каждого советника на счету, а не только видимые строки. Верхние три строки показывают один и тот же лимит, а у Gold scalper он другой: верхние три ещё на значении по умолчанию, а лимит любой строки, делённый на сегодняшний результат этой же строки, всегда даёт одно и то же отношение к балансу — который на экране нигде не показан. Max pos и lots показывают ноль у обоих: это означает, что лимит отключён, а не «не держать позиций», и оба по умолчанию отключены. Chart -- означает, что график ещё не привязан, поэтому Stop the chart недоступен.
При запуске панель один раз просматривает открытые позиции и историю за 30 дней (InpHistoryDays) и заводит отдельную строку для каждого магического номера — без какой-либо настройки. Имя строки не вводится вручную: оно берётся из комментария, который советник сам оставил на своём ордере, поскольку MetaTrader не хранит список соответствия магических номеров именам. Сделки без магического номера попадают в строку Manual / unknown.
У каждой строки свои четыре лимита — дневной убыток, общий убыток, число позиций, суммарный объём в лотах — каждый отключается установкой в ноль. Торговое окно в формате Mon-Fri 08:00-17:00 ограничивает, когда советнику разрешено торговать; пустое поле означает «всегда», а нераспознанный формат отмечается красным, а не молча игнорируется.
Три действия, выбираемых для каждого советника отдельно. Alert only — действие по умолчанию (InpDefaultAction): ничего не закрывается, строка становится красной, причина выводится текстом. Перед самым первым автоматическим действием за сессию панель на всю ширину переспрашивает ещё раз и ждёт этого нажатия (InpConfirmActions). Close and lock закрывает позиции этого советника и отменяет его отложенные ордера, но не останавливает его самого — он продолжает открывать сделки, инструмент продолжает закрывать открытое, и каждый круг стоит спред; их число и накопленная стоимость показаны на панели и записаны в журнал. Stop the chart по-настоящему снимает этого советника с терминала, предварительно сохранив шаблон графика, но только после того, как он привязан к графику через Link chart — у MetaTrader нет такого соответствия. Это действие работает даже при выключенном Algo Trading, в отличие от Close and lock. Manual / unknown можно только наблюдать.
Selected News EA magic 1722
News EA Close and lock
1.05 3.70 0 0.00
Mon-Fri 08:00-17:00 Link chart
Chart USDJPY,H1
Daily loss limit reached - this EA is locked
Today -242063.00 Open 3 / 0.25 lots
При переключении News EA на Close and lock Open уменьшается ровно на то, что держал этот советник, а числа у Gold scalper и Grid v3 вообще не меняются — меняется только тот советник, на которого воздействуют, все остальные продолжают торговать.
Торговое окно снимается само, как только часы возвращаются в разрешённый диапазон. Дневной убыток, число позиций и суммарный объём снимаются в один и тот же час суточного сброса (InpDayResetHour). Лимит общего убытка сам никогда не снимается — нужно просмотреть его и дважды нажать Unlock, что заодно обнуляет накопленный итог. Reset total делает то же самое только с накопленным итогом, не трогая блокировку.
Разделение сделок одного советника и другого работает только на хеджевом счёте; на неттинговом всё сливается в одну позицию по символу. Инструмент проверяет тип счёта, как только терминал завершит синхронизацию, и затем каждую секунду заново; на неттинговом счёте он переходит только к наблюдению, о чём сообщает на панели:
Netting account: per-EA actions are disabled
Trades without a magic number are only watched, never stopped
First action of this session - press to allow it
Он не может приказать другому советнику прекратить торговать — в MQL5 нет такой функции — и может только раз за разом закрывать то, что тот открывает заново, либо закрыть его график. На неттинговом счёте действия по советникам недоступны. При выключенном Algo Trading Close and lock не работает, а Stop the chart по-прежнему работает. Ручные сделки только наблюдаются. Инструмент занимает один график и отказывается запускаться на втором. Два советника с одинаковым магическим номером показываются как одна строка.
Бесплатное демо работает внутри тестера стратегий, который даёт только одного советника — сама ситуация, для которой создан этот инструмент, там сама по себе возникнуть не может. Только в тестере он сам открывает несколько небольших тестовых сделок под другими магическими номерами, чтобы заполнить таблицу, и всё это время на панели держится надпись Tester self-test (InpTesterDemo); на реальном счёте он никогда не открывает сделку сам. Чего тестер показать не может — это заблокированного советника, пока остальные продолжают торговать; для этого нужен демо-счёт с двумя-тремя работающими советниками.
Detection: InpHistoryDays InpIncludeManual
Default limits: InpLimitBase InpLimitUnit InpDefaultDailyLimit InpDefaultTotalLimit InpDefaultMaxPos InpDefaultMaxLots InpIncludeFloating InpWarnPercent InpDayResetHour
Action: InpDefaultAction InpConfirmActions InpSaveTemplate InpMaxCloseRetries
Alerts: InpAlertPopup InpAlertPush InpAlertSound
Tester: InpTesterDemo InpMagicSelf
Panel: position, width, font and six colours
Каждая строка стартует со значений по умолчанию, так что каждый советник под наблюдением уже с первой минуты, и настраивать ничего не нужно. Имена, лимиты, торговое окно, выбранное действие, привязка графика, состояние блокировки и дата начала накопленного итога сохраняются в файл для каждого номера счёта и переживают смену таймфрейма и перезапуск терминала. Сделано для MetaTrader 5 и хеджевого счёта, на одном свободном графике, без обращений к DLL, без внешних запросов и без внешних файлов.
Этот инструмент упорядочивает то, что уже работает на счёте, и, когда лимит и действие заданы, применяет их к тому советнику, который его превысил, записывая причину — он никогда не говорит, что торговать, и не обещает никаких результатов. Торговля сопряжена с риском потерь; сначала стоит попробовать на демо-счёте.
