Daily Loss and Drawdown Risk Manager MT4
- Утилиты
-
Amal Yuldashev
TickForgeFX: trading tools for MetaTrader 5 and MetaTrader 4, built to hold up on a live chart - Версия: 1.0
- Активации: 15
Поставьте его на один график, и он заставит соблюдать дневной лимит убытка и максимальную просадку на всём счёте, кто бы ни открыл сделку: вы вручную, мобильное приложение, другой советник или копируемый сигнал. На лимите он закрывает все позиции, удаляет все отложенные ордера и закрывает всё новое до конца блокировки. Он срабатывает на заданной вами черте до лимита, а не после, и простыми словами сообщает, что сделал.
Риск-менеджер редко подводит из-за недостающей функции. Подводит лимит, который срабатывает поздно, настройка, которая означает не то, что говорит её название, блокировка, которую тихо отменяет изменение входных параметров, или сделки, которые он закрыл, хотя никто не ждал, что он их тронет. На каждую из этих проблем ниже есть простой ответ.
Настройка
Для челленджа проп-фирмы или для ваших собственных лимитов важны вот эти настройки:
- Account size: размер челленджа, например 100000, или размер, от которого вы хотите отсчитывать собственные лимиты. Оставьте 0, и при первом запуске он возьмёт ваш баланс.
- Daily loss limit и Overall loss limit: ваш дневной лимит убытка и ваша максимальная просадка. Настройка Loss limits are set in выбирает между деньгами в валюте счёта и процентом: от размера счёта или, когда общий лимит скользящий, от пика.
- Daily baseline: от чего отсчитывается дневная просадка. Баланс на начало дня, эквити на начало дня, большее из этих двух или максимум эквити за день, причём отсчёт никогда не ведётся от уровня ниже баланса на начало дня.
- Daily reset hour: когда у вашей фирмы сменяется день, по времени сервера.
Все остальные правила выключены, пока вы их не зададите. По умолчанию общий лимит отсчитывается от размера счёта: это фиксированный порог, как в большинстве челленджей. Один выпадающий список делает его вместо этого скользящей просадкой от наивысшего достигнутого эквити, и тогда процент берётся от этого пика, поэтому растёт вместе со счётом. Если у вашей фирмы скользящая просадка на фиксированную сумму, задайте этот лимит в деньгах.
На лимите он действует, а не отчитывается постфактум.
- По умолчанию он срабатывает на 90 процентах лимита и предупреждает на 80, оба значения задаёте вы. Этот запас нужен, чтобы поглотить гэп или медленное исполнение, прежде чем они дойдут до черты вашей фирмы. Движение больше этого запаса всё равно может её пересечь.
- Закрываются все позиции по всем символам и удаляются все отложенные ордера, начиная с самой крупной экспозиции. Закрытие, которое брокер отклонил, отправляется снова по первой цене, пришедшей в более позднюю секунду: сразу после отказа по цене, а после любого другого отказа, как только пройдёт ожидание не дольше 30 секунд. Каждая попытка записывается в лог вместе с ответом брокера.
- Всё, что открыто, пока стоит блокировка, закрывается сразу, как только появляется, с проверкой на каждом тике и каждую секунду, пока MetaTrader работает с прикреплённым инструментом, независимо от того, открыто оно вашей рукой, с вашего телефона или другой программой.
- Убытки считаются по эквити, как это делает эквити-протектор, поэтому плавающий убыток учитывается так, как его учитывает большинство фирм. Кредит, который начисляет ваш брокер, не учитывается, поэтому он никогда не может скрыть убыток.
- Дневная блокировка заканчивается при дневном сбросе. Общая блокировка стоит, пока вы не попросите её снять, пока ваше эквити не вернётся к уровню, от которого шёл отсчёт, или пока не вступит в силу отключение этого лимита.
День отсчитывается от его сброса, даже если MetaTrader в тот момент был закрыт. Запустите его после сброса, и всё, что счёт зафиксировал с тех пор, включая стоп, сработавший ночью, идёт в зачёт сегодняшнего лимита, как было бы, если бы инструмент работал. При базе отсчёта по эквити сделки, которые были открыты в момент сброса, оцениваются по ценам того момента, взятым из истории графика, включая те, что закрылись, пока MetaTrader был выключен. Если цену на момент сброса не удаётся прочитать в течение минуты, он сообщает об этом на вкладке «Эксперты» и отсчитывает день от сделок в том виде, в каком они есть при его запуске, без цен момента сброса.
Переключите вкладку «История счета» на «Вся история». MetaTrader 4 показывает программе только ту историю, которую загрузила эта вкладка, и здесь её читают пять вещей: день, начавшийся, пока MetaTrader был закрыт, цены, которые были у ваших открытых сделок в момент этого сброса, отличие пополнения или вывода средств от торгового убытка, число сделок за день и серия убытков подряд, а также отслеживание сделки, у которой при частичном закрытии сменился тикет. «Вся история» это надёжная настройка, а подойдёт и период, который охватывает дни, которые инструменту нужно видеть. MetaTrader 4 не даёт программе способа узнать, что истории не хватает, поэтому инструмент не может попросить вас это исправить, и правильно настроить это должны вы.
Блокировка, которая держится
- Её не снимает ни перезапуск MetaTrader, ни удаление инструмента и повторное прикрепление. Она хранится в этом MetaTrader под номером счёта, поэтому блокировка на одном счёте не переходит вместе с вами на другой.
- Прогон в тестере стратегий не может её затронуть. MetaTrader 4 отдаёт тестовому прогону собственное хранилище терминала, а именно там хранится блокировка при живой торговле, поэтому всё, что пишет тест, попадает в отдельное пространство и очищается в начале каждого прогона.
- Изменение входных параметров её не отменяет. Более строгий лимит убытка применяется сразу. Более мягкий, включая отключение лимита, ждёт следующего дневного сброса или снятия блокировки по вашему запросу, и об этом сообщается на вкладке «Эксперты». Отключённый общий лимит уносит с собой свою блокировку, когда это изменение вступает в силу.
- То же относится к двум дневным счётчикам, к режиму Watch only и к размеру счёта, где более строгим считается большее значение, пока общий лимит отсчитывается от размера счёта, как задано по умолчанию, потому что оно поднимает черту, на которой он срабатывает, а в остальных случаях меньшее. Новый размер счёта начинает действовать для дневного лимита со следующего сброса или со снятия блокировки, если только он не заменяет размер, при котором лимиты убытка отказались взводиться, а пока включён хотя бы один лимит убытка, больший размер тогда же начинает действовать и для риска на сделку. Правила для каждой сделки получают новое значение сразу.
- Настройка, которую инструмент не может принять, например порог предупреждения на черте срабатывания или выше, останавливает его: MetaTrader снимает его с графика и объясняет почему, по умолчанию во всплывающем окне и всегда на вкладке «Эксперты». Пока вы не прикрепите его снова с настройками, которые он принимает, никакие правила не применяются, а уже стоящая блокировка сохраняется.
- Снятие блокировки это запрос, а не выключатель. Поставьте Ask to clear a tripped lock в true, и снятие вступит в силу через 30 минут, если значение к тому времени всё ещё true; чтобы отменить, верните его обратно раньше. Когда снятие вступает в силу, настройки применяются так, как введены в окне, включая размер счёта, кроме Daily reset hour и варианта Daily baseline, считываемого в начале дня, которые ждут следующего сброса, а то, что уже произошло, продолжает учитываться. Поэтому блокировка, которую вызвали реальные убытки, сразу срабатывает снова, а блокировка, которую вызвала неверная настройка, остаётся снятой, если настройку исправили. Затем верните false: если оставить true, запросить снятие снова будет нельзя, и он скажет об этом, если вы попробуете.
Правила для каждой сделки, кто бы её ни открыл
Каждое из них выключено, пока вы его не зададите. У каждой группы своё действие, закрыть сделку или только предупредить, а сделке без стопа его можно ещё и выставить.
- Most one trade may risk, by its stop. Предельный риск одной сделки по её стопу: деньги, которые будут потеряны, если сработает стоп, считая от цены открытия, в процентах от размера счёта или от баланса, если оба лимита убытка выключены и размер не введён. Сделка оценивается, когда появляется, снова всякий раз, когда меняется её стоп или объём, и заново, когда MetaTrader перезапускается или инструмент прикрепляют повторно, а не тогда, когда убыток уже случился.
- Сделка без стоп-лосса. По истечении разрешённого вами числа секунд он ставит стоп-лосс на уровне лимита риска, для чего нужна заданная настройка Most one trade may risk, и сохраняет тейк-профит, либо закрывает сделку, либо предупреждает. Если цена уже прошла место, где встал бы этот стоп, он закрывает сделку, а не ставит стоп, который сработал бы сразу.
- Symbols allowed. Список разрешённых символов: к сделке по любому другому символу применяется действие. Символ из списка, которого нет у вашего брокера, не даёт инструменту запуститься, и всплывающее окно называет этот символ, вместо того чтобы позволить инструменту закрывать каждую сделку по символу, который вы имели в виду.
- Максимум открытых позиций и максимум лотов в сумме. Действие применяется к самой новой сделке.
- Максимум сделок в день и остановка на день после заданного числа убытков подряд, два правила против овертрейдинга, с учётом свопа и комиссии. Действие применяется только к сделкам, открытым после того, как лимит достигнут.
Он не закрывает то, что уже было открыто
Прикрепите его к счёту, на котором уже есть открытые сделки, и по правилам для каждой сделки о них будут предупреждения, но закрывать их эти правила не будут никогда. Лимиты убытка устроены иначе и прямо об этом говорят: с момента, когда они взводятся, они распространяются на каждую сделку на счёте, потому что лимит, который пропускал бы часть сделок, не был бы лимитом.
Закрытие MetaTrader на ночь или перезагрузка компьютера системой Windows не меняет того, какие сделки он контролирует. Только снятие инструмента с графика и повторное прикрепление в более поздний день запускает его с чистого листа, и на вкладке «Эксперты» сообщается, когда это происходит.
Рядом с другими вашими советниками
MetaTrader запускает по одному советнику на график, поэтому этот инструмент ставится на отдельный график, а другие ваши советники остаются на своих. Их сделки он контролирует так же, как любые другие: лимиты убытка закрывают их на черте, а правило, которое вы включили, действует и на них. Исключений сделать нельзя, поэтому сделкам советника, который намеренно торгует без стоп-лосса, будет выставлен стоп, если вы настроите это правило на выставление стопа; вместо этого настройте его на предупреждение. Его нельзя тестировать на истории вместе с другим советником, потому что тестер стратегий запускает одну программу за раз.
Когда другая программа раз за разом открывает сделки заново
MetaTrader 4 не записывает, откуда пришла сделка. Магический номер 0 он даёт сделке, которую вы открываете вручную, и тот же номер даёт программа, которая не задаёт собственного магического номера, поэтому инструмент говорит ровно это и не утверждает ничего сверх того. Значит, программа, торгующая с магическим номером 0, воспринимается так же, как ваша собственная рука: то, что она открывает, всё равно закрывается, записывается в лог и объявляется при каждом закрытии, но её не называют программой, которую нужно остановить. Почти каждый советник задаёт магический номер, и их называют программами.
- Сделка, открытая под блокировкой, закрывается каждый раз. Когда программа заново открывает сделку, которую закрыла блокировка, по тому же символу в течение 15 минут, всплывающее окно называет эту программу по магическому номеру и комментарию и указывает вам на графики этого символа, на другой терминал и на копируемый сигнал, потому что MetaTrader 4 не говорит, какой советник работает на каком графике. Это окно появляется в первый раз и затем каждый пятый раз, чтобы зациклившийся советник не завалил вас ими. Каждое закрытие, вместе с магическим номером, есть в логе.
- Или он может закрыть MetaTrader, когда на счёте не останется позиций, чтобы работающие в нём программы остановились, пока вы не откроете его снова. Сделки с вашего телефона или из другого терминала он остановить не может, и пока MetaTrader закрыт, их ничто не закрывает. По умолчанию выключено и никогда не действует на MQL5 VPS, где ничто не открыло бы его снова. Ничего потом не перезапускается и не восстанавливается: ваши графики и другие советники остаются такими, какими вы их оставили, а блокировка всё ещё стоит, когда вы возвращаетесь.
Пополнения, выводы средств и кредит
- Пополнение не является прибылью и не даёт дополнительного запаса. Размер счёта никогда не растёт вслед за пополнением.
- Вывод средств не считается убытком. Он списывается сначала из прибыли сверх того, что вы внесли, затем из ваших пополнений, и размер счёта уменьшается только на ту часть, которая опускает баланс ниже него.
- Кредит исключается из эквити, которое он измеряет.
- Всё, что он может узнать о пополнении или выводе средств, это то, что загружено на вашей вкладке «История счета», то есть та настройка, о которой сказано выше. Лимиты не приостанавливаются из-за истории, потому что MetaTrader 4 не даёт программе способа узнать, что какой-то её части не хватает.
При ошибке он отказывается взводиться
При первом запуске на счёте лимит убытка, убыток по которому уже за чертой срабатывания, не взводится: ничего не закрывается, карточка показывает Not armed, а на вкладке «Эксперты» сказано почему. Он взводится, как только этот убыток вернётся под черту, а дневной не позже следующего дневного сброса, и до тех пор он не защищает счёт. Другой лимит взводится как обычно. На счёте, где инструмент уже работал раньше, убыток, полученный, пока он был выключен, всё равно учитывается, и инструмент действует по нему, как только его снова прикрепят. Пока общий лимит включён и отсчитывается от размера счёта, как задано по умолчанию, размер счёта, введённый с лишним нулём, отклоняется, и карточка показывает Check the account size (проверьте размер счёта), если только не стоит блокировка, а пока такой размер остаётся, ни один лимит не взводится. Такой размер, введённый в действие снятием блокировки, не отклоняется: блокировка срабатывает снова, а исправленное значение вступает в силу при следующем снятии. При скользящем общем лимите или при выключенном лишний ноль не отлавливается, и когда он вступает в силу, каждый лимит, заданный в процентах, становится в десять раз шире. Пока включён хотя бы один лимит убытка, карточка показывает размер счёта, от которого идёт отсчёт, так что размер с лишним нулём виден.
Запись всего, что он сделал
- Один CSV-файл на каждый номер счёта в папке MQL4\Files: время сервера и локальное время, правило, тикет, символ, направление, объём, магический номер, цена, код ответа брокера и результат, а также примечание. Код ответа это собственный номер ошибки MetaTrader 4, тот же, что вы видите на вкладке «Эксперты», а у успешного вызова он пустой. В файл записывается то, что сделал инструмент; предупреждения остаются на вкладке «Эксперты».
- Для каждой строки файл отдельно открывается, записывается и закрывается, поэтому при сбое не теряется ничего из уже записанного.
- Если Excel или другая программа держит файл открытым, строки ждут в соседнем файле и переносятся в основной по порядку, как только тот освободится. Если MetaTrader закроется раньше, они сохраняются и записываются при следующем запуске инструмента.
Каждая сделка сама по себе
Счета MetaTrader 4 основаны на ордерах, поэтому никакого неттинга, о котором нужно было бы думать, нет: каждая сделка оценивается по своему объёму и своему времени, и правило закрывает ту сделку, которая его нарушила. Сделка, слишком большая для одного закрытия, закрывается частями, а не получает отказ.
Частичное закрытие оставляет новый тикет, кто бы его ни сделал. Так делает MetaTrader 4, а не этот инструмент: закрытая часть сохраняет старый тикет, а остаток возвращается под новым, с собственным комментарием сервера. Инструмент отслеживает эту цепочку, поэтому сделка, которую вы частично закрыли вручную, остаётся одной сделкой для Most trades opened per day и одним результатом для Stop for the day after this many losses in a row. Вы увидите, как в логе действий меняется номер тикета, а комментарий, который вы написали к сделке, заменяется комментарием сервера.
Режим Watch only
Одна настройка превращает каждое правило в предупреждение: инструмент оповещает, ничего не закрывает, а карточка показывает Reached вместо Locked. Включение на уже работающем инструменте считается ослаблением: правила для каждой сделки меняются сразу, но лимиты убытка и дневные счётчики продолжают закрывать до следующего дневного сброса, включая лимит, впервые достигнутый уже после переключения.
Карточка
- Room before it acts, то есть запас до срабатывания, в валюте вашего счёта, до того лимита, который ближе. Именно за этим числом и стоит следить.
- Дневной и общий убыток, каждый с полосой, отметкой, где он срабатывает, и своим состоянием: Clear, Near the limit, Reached, Locked или Not armed (в норме, близко к лимиту, достигнут, заблокирован, не взведён).
- Размер счёта и откуда он взят: как вы его ввели (as typed), из баланса (from the balance) или после вывода средств (after a withdrawal).
- Сделки за сегодня, убытки подряд, открытые позиции и открытые лоты, для тех правил, которые вы включили.
- Последнее, что он сделал, и почему.
- Перетащите её куда угодно, зафиксируйте на месте или закрепите в углу через входные параметры.
Оповещения приходят всплывающим окном со звуком, push-уведомлением в приложение MetaTrader и письмом на почту, каждое включается отдельно. Push и почту сначала нужно настроить в настройках самого MetaTrader.
MT5 и MT4
Обе платформы, собранные из одного файла: та же версия, те же настройки с теми же названиями и значениями по умолчанию, та же карточка, те же правила. Окно настроек MetaTrader 4 добавляет между группами строки-разделители, которых MetaTrader 5 не показывает. Это страница сборки для MetaTrader 4, и там, где разницу вносит сам MetaTrader 4, эта страница об этом говорит, а не оставляет вас выяснять это самостоятельно: что он записывает о том, кто открыл сделку, что оставляет после себя частичное закрытие и сколько истории он отдаёт программе.
О демоверсии, без прикрас
На этом рынке демоверсия платного продукта работает только в тестере стратегий, где инструменту, который не открывает сделок, нечего было бы показать. Поэтому в визуальном тесте он открывает собственные сделки, по одному шагу за раз, и каждый шаг построен так, чтобы нарушить включённое вами правило, а карточка показывает, как это правило срабатывает. Из коробки включены только два лимита убытка, поэтому перед запуском включите те правила, за которыми хотите понаблюдать. Его сделки несут комментарий, начинающийся с "TFX demo". После срабатывания лимита убытка он открывает ещё одну сделку под блокировкой, чтобы вы увидели, что и она сразу закрывается. Тестер MetaTrader 4 торгует только символом графика, поэтому, чтобы увидеть в действии правило разрешённых символов, не вносите этот символ в свой список, а остальные шаги запустите во втором тесте, без списка: они тоже торгуют этим символом и пропускаются, пока его нет в списке.
Оповещения в тестере не доставляются вообще; вместо этого каждое событие показывают карточка и журнал. Тестер стратегий MetaTrader 4 никогда не запускает таймер программы, поэтому в тесте демоверсия и каждое правило работают в темпе тиков; на живом графике работает ещё и секундный таймер, и правило может сработать между тиками. Одно, что он делает в тестере и больше нигде: в НЕВИЗУАЛЬНОМ прогоне с депозитом меньше 2000 он открывает пробные сделки минимальным лотом, чтобы автоматическая проверка этого рынка увидела торговые операции, и в этом прогоне не применяет никаких правил. Он сообщает об этом в журнале, и это стоит знать, прежде чем запускать собственный невизуальный бэктест с небольшим депозитом, потому что это та же конфигурация. Визуальный прогон это демоверсия, а любой другой прогон применяет правила. Вне тестера стратегий он никогда не открывает сделок.
Чем он не является
Это не менеджер сделок: здесь нет ни безубытка, ни трейлинг-стопа, ни частичной фиксации прибыли, ни входов, ни сигналов. Наш Trade Manager, который является продуктом для MT5, делает всё это для сделок по символу своего графика. Этот инструмент с одного графика контролирует каждую сделку на счёте, и единственное, что он вообще делает со сделкой, это закрывает её или ставит ей стоп.
Но это и не просто монитор. Мы выпускаем бесплатную панель для MT5, которая показывает оба ваших лимита убытка и никогда не трогает сделки. А этот по ним действует.
Полезно знать
- Ставьте его на один график. Одна копия контролирует весь счёт; вторая копия действовала бы на те же сделки.
- Ничто не освобождает программу или символ от лимитов убытка. Если сделка есть на счёте, они её охватывают.
- Час дневного сброса можно перенести, и такое изменение может удлинить день, но никогда его не укоротит.
- Час сброса задаётся по времени сервера, а MetaTrader 4 не даёт программе собственных часов сервера. Инструмент с каждой ценой берёт разницу между часами сервера и часами вашего компьютера и работает от неё, поэтому день всё равно сменяется и между ценами, и в выходные.
Если я вам нужен, я отвечаю
Спросите в комментариях или сообщением на MQL5, и ответ вы получите от меня, а не от службы поддержки. Если что-то сломано, я хочу об этом знать, и сообщение об ошибке получает исправление, а не обходной путь.
Свои лимиты вы уже знаете. Этот инструмент заставляет их соблюдать и точно говорит вам, что сделал.
