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

PropGuard 1.02 - account risk manager for prop firm accounts - эксперт для MetaTrader 5

Sergej Michajlik
Sergej Michajlik
Happy to do Pine Script to MQL5 conversions, fix or finish an existing EA, add risk management to one, or just run an honest backtest on something you already have.
| Russian English 中文 Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Просмотров:
28
Рейтинг:
(2)
Опубликован:
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

PropGuard 1.02 — система управления рисками на уровне счета для счетов проп-фирм

Один экземпляр на любом графике отслеживает каждую позицию на счете, независимо от того, открыл ли её советник или трейдер вручную, и закрывает все позиции до того, как будет достигнут дневной или максимальный лимит убытка компании. В версии 1.02 добавлены ограничения по размеру позиции в денежном выражении, требование по стоп-лоссу и ограничение риска для каждой позиции.


Почему версия 1.02: данные с моего собственного счёта

Я торгую вручную на счете FTMO с капиталом 100 тыс. наряду с моими собственными советниками. Четыре дня из моего дневника (46 ручных сделок) показали две вещи, которые не улавливают одни только лимиты дневных и максимальных убытков:

  • 17 сделок завершились без стоп-лосса. Самая длительная из них продолжалась 2 часа 22 минуты.
  • Одна сделка по GER40 объемом 18 лотов имела стоп-лосс в 94 пункта и принесла убыток в 1 933 — примерно две трети от дневного лимита в 3% — по одной-единственной сделке.

На скриншоте показано воспроизведение обеих сделок в Strategy Tester (версия, предназначенная только для тестера, открывает обе сделки; защитный код приведён здесь), с параметрами InpRequireStopLoss = true, InpMaxRiskPerPos = 750 и ограниченным размером позиций, так что действуют только правила стоп-лоссов: стоп-лосс на 18 лотов сразу же подтягивается к ограничению в 750, а 8 лотов без стоп-лосса закрываются через 62 секунды.


Что это делает

Ежедневный убыток. В момент сброса (по умолчанию в 01:00 по серверному времени, что соответствует 00:00 по центральноевропейскому времени (CE(S)T) на FTMO) фиксируется размер собственного капитала. Если в течение дня собственный капитал снижается более чем на InpDailyLossPct от InpInitialBalance, все позиции закрываются, отложенные ордера удаляются, и при включенном параметре InpBlockAfterBreach любая новая позиция также закрывается до следующего сброса. Установите порог ниже, чем предусмотрено правилами компании: 4% для правила 5%, 2,5% для правила 3%, чтобы при закрытии оставалось место для проскальзывания.

Максимальный убыток. Три способа его измерения (InpMaxLossMode):

  • статический: от начального баланса (классическая двухэтапная оценка),
  • трейлинг: от максимального наблюдаемого капитала, обновляемого при каждом тике,
  • трейлинг по дневному балансу: от максимального баланса, зафиксированного при ежедневном сбросе. Именно так в конкурсе FTMO «1-Step Challenge» пересчитывается нижний порог в полночь, причём этот порог никогда не снижается.

Защита срабатывает при достижении значения InpMaxLossPct (по умолчанию 8% для правила 10%).

Ограничения по размеру устанавливаются в денежном выражении, а не в лотах. Ограничение по лотам не имеет смысла при работе с различными инструментами: 15 лотов CFD на индекс по цене 25 000 стоят около 430 000, 15 лотов другого индекса по цене 7 700 — около 115 000, 15 лотов EURUSD — около 1 750 000. PropGuard рассчитывает каждую позицию как «лото x текущая цена x стоимость одного пункта на лот» в валюте счёта и сравнивает этот результат:

  • InpMaxNotionalPerPos: любая отдельная позиция, стоимость которой превышает это значение, закрывается.
  • InpMaxNotionalTotal: если совокупная стоимость всех открытых позиций превышает это значение, закрывается самая последняя позиция, затем следующая по дате открытия и так далее, пока сумма не уложится в лимит.

Почему именно деньги: движение на 1% при открытой позиции на 300 000 составляет 3 000, независимо от символа. Если дневной лимит составляет 3 000, то именно это число и следует установить. Старый параметр InpMaxLotsPerPos по-прежнему доступен (0 = отключено) для тех, кто хочет установить ограничение по лотам.

Требование по стоп-лоссу. С параметром InpRequireStopLoss любая позиция, для которой по истечении InpStopGraceSeconds после открытия всё ещё не установлен стоп-лосс, закрывается. Шестидесяти секунд достаточно, чтобы ввести его.

Ограничение риска на одну позицию. Параметр `InpMaxRiskPerPos` определяет максимальную сумму, которую одна позиция может подвергнуть риску в диапазоне от цены открытия до стоп-лосса. Если стоп-лосс предполагает больший риск, PropGuard перемещает его на такое расстояние, при котором риск точно соответствует установленному пределу. Если на момент проверки рынок уже превысил это расстояние, позиция вместо этого закрывается. Лимит указан в валюте счёта, поэтому он подходит для любого инструмента. Позиции, стоп-лосс которых уже находится в плюсе, остаются без изменений.

Информация о самом прибыльном дне. С параметром InpBestDayInfo журнал при каждом сбросе отображает самый прибыльный день в виде доли от суммы всех дней с положительным результатом. Правило «1-Step» FTMO требует, чтобы эта доля составляла не более 50% при прохождении челленджа. Только для информации, никаких действий.

Кроме того: торговое окно и закрытие в пятницу (по серверному времени), фильтр новостей с высокой степенью влияния из экономического календаря MT5, магическое число для исключения, push-уведомления о каждом действии и журнал в формате CSV для каждого счёта в папке MQL5/Files. Состояние (начало дня, флаг нарушения, максимальный дневной баланс) хранится в глобальных переменных терминала, поэтому перезапуск после нарушения не приводит к возобновлению торговли до следующего сброса.


Входные данные

  • InpInitialBalance — размер счета, к которому относятся указанные процентные значения.
  • InpDailyLossPct, InpMaxLossPct, InpMaxLossMode — два предела и способ расчёта максимального убытка.
  • InpResetHour, InpResetMinute — время ежедневного сброса компании по серверному времени.
  • InpMaxLotsPerPos, InpMaxNotionalPerPos, InpMaxNotionalTotal — ограничения по размеру (0 = отключено).
  • InpRequireStopLoss, InpStopGraceSeconds — требование по стоп-лоссу.
  • InpMaxRiskPerPos — ограничение риска на позицию в валюте счёта (0 = отключено).
  • InpBestDayInfo — коэффициент «лучшего дня» в журнале.
  • InpCloseOnBreach, InpBlockAfterBreach — что происходит при нарушении.
  • InpUseWindow, InpWindowStartHour, InpWindowEndHour, InpFridayClose, InpFridayCloseHour — временные правила.
  • InpUseNewsFilter, InpNewsCurrencies, InpNewsMinutesBefore, InpNewsMinutesAfter — новостное окно.
  • InpPushAlerts, InpMagicToIgnore.


Пример, FTMO 1-Step 100k (3% в день, 10% трейлинг, лучший день 50%): InpInitialBalance 100000, InpDailyLossPct 2,5, InpMaxLossPct 8, InpMaxLossMode — трейлинг по дневному балансу, InpResetHour 1, InpMaxNotionalPerPos 300000, InpMaxNotionalTotal 450000, InpRequireStopLoss true, InpMaxRiskPerPos 750, InpBestDayInfo true.

Пример, 2-ступенчатый 200k (5% в день, 10% статический): InpInitialBalance 200000, InpDailyLossPct 4, InpMaxLossPct 8, InpMaxLossMode static, InpResetHour 1.


Примечания. В Тестере стратегий советник открывает и закрывает одну позицию с минимальным лотом в начале, чтобы можно было увидеть работу логики закрытия; на реальном или демо-счете он ничего не открывает. У тестера нет экономического календаря, поэтому фильтр новостей там неактивен. В правилах, связанных со временем, используется время сервера; проверьте час сброса после перехода на летнее время, поскольку полночь компании и часы сервера не всегда сдвигаются в один и тот же день.


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

ImpulseCandle - impulse bar marker with ATR body filter and volume confirmation ImpulseCandle - impulse bar marker with ATR body filter and volume confirmation

Выделяет импульсные свечи: тело не менее ATR × множитель, тело не менее заданной доли диапазона свечи, закрытие вблизи экстремума, опциональное подтверждение объемом тиков. Зеленая стрелка ниже — бычий импульс, красная выше — медвежий. Только закрытые бары, без перерисовки. Сигналы находятся в двух буферах, поэтому советник может считывать их с помощью iCustom.

Stormbreaker ADX - Supertrend and DMI Trend EA Stormbreaker ADX - Supertrend and DMI Trend EA

Советник для MetaTrader 5, ориентированный на следование тренду, сочетающий определение направления тренда по индикатору Supertrend с подтверждением по индикаторам ADX и DI. Использует стоп-лосс, рассчитанный на основе ATR, и риск до 0,5 % от собственного капитала на одну сделку.

NeonDesk - Neon Manual Trading Panel with Multi-Timeframe Bias NeonDesk - Neon Manual Trading Panel with Multi-Timeframe Bias

Перемещаемая панель ручной торговли на графике с учетом тенденций на нескольких таймфреймах, подсказками по ATR для стоп-лосса и тейк-профита, скользящим стопом и функцией «КУПИТЬ/ПРОДАТЬ/ЗАКРЫТЬ ВСЁ» в один клик.

Gold Breakout EA for XAUUSD H4 +90 Percent in a 2020 to 2026 Backtest Gold Breakout EA for XAUUSD H4 +90 Percent in a 2020 to 2026 Backtest

Советник типа «Turtle» для торговли золотом по стратегии прорыва. Он открывает позицию на покупку, когда бар на графике H4 закрывается выше максимума последних 20 баров в условиях восходящего тренда, со стопом в 2 ATR и целью в 2R. Результаты бэктеста на паре XAUUSD за период с января 2020 года по сентябрь 2026 года: +9 029,72 при стартовом капитале 10 000 и риске 1%, коэффициент прибыльности 1,77, максимальное падение 11,38%, прибыль за 6 из 7 лет.