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

Monday Dip EA- Index Mean Reversion D1 - эксперт для MetaTrader 5

chen guang
chen guang
Quant-разработчик | Специалист по EA и алготрейдингу
Специализируюсь на высокопроизводительных советниках (EA) для MT4/MT5, пользовательских индикаторах и системах автотрейдинга со строгим риск-менеджментом.
🚀 Бесплатные инструменты и бэктесты: rbot.cc
| Russian English 中文 Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Просмотров:
15
Рейтинг:
(1)
Опубликован:
MQL5 Фриланс Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Советник торгует непосредственно на графике того символа, к которому он привязан (без жестко заданных символов). Он открывает не более одной сделки в неделю, и все решения стратегии рассчитываются исключительно на основе данных по закрытым свечам дневного периода (D1) в соответствии со временем сервера.


⚡ Основные правила

  • Правило 1 — Вход: при закрытии рынка в понедельник цена закрытия сравнивается с ценой закрытия предыдущей сессии (обычно пятницы). Длинная позиция открывается только в том случае, если цена закрытия в понедельник строго ниже цены закрытия предыдущего торгового дня. Эта проверка происходит только один раз в неделю.
  • Правило 2 — Выход: Открытая позиция автоматически закрывается при дневном закрытии в среду (закрытие происходит при первом тике следующей дневной сессии), независимо от прибыли или убытка. Если дневное закрытие в среду пропущено, выход будет инициирован при любом последующем дневном закрытии (в четверг, пятницу или в выходные).
  • Правило 3 — Стоп-лосс и безопасность: при входе в позицию устанавливается процентный стоп-лосс (InpStopLossPercent) с учетом минимального расстояния стопа, установленного брокером (SYMBOL_TRADE_STOPS_LEVEL). Если 5 последовательных попыток установить или изменить стоп-лосс заканчиваются неудачей, советник пытается немедленно закрыть позицию по рыночной цене для обеспечения безопасности капитала. Примечание: целевого уровня тейк-профита нет — выходы из позиции осуществляются исключительно по времени и стоп-уровням.

🛡️ Дополнительные фильтры входа

Оба фильтра являются опциональными переключателями, которые могут только дополнительно ограничивать входы (они никогда не будут самостоятельно создавать входы или ослаблять Правило 1):

  • Фильтр внутренней силы бара (IBS): Рассчитывает IBS = (Цена закрытия — Минимальная цена) / (Максимальная цена — Минимальная цена) для свечи понедельника. Вход разрешен только при условии, что IBS <= InpIBSMax. Если максимальная цена равна минимальной, день игнорируется и фиксируется в журнале.
  • Фильтр скользящей средней (MA): Требует, чтобы цена закрытия понедельника находилась строго ниже простой скользящей средней (InpMAPeroid), рассчитанной по закрытым свечам D1, включая понедельник.

⚙️ Основные характеристики

  • Таймфрейм графика: Не зависит от таймфрейма (внутренне использует серию D1). Для удобного мониторинга журнала рекомендуется привязать к графику D1.
  • Совместимость с индексами: Совместим с несколькими индексами (US500, UK100, GER40 и т. д.).
  • Управление рисками: строгое ограничение на 1 позицию с надежной логикой повторных попыток исполнения ордеров и экстренного закрытия позиций.

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

Входные данные Значение по умолчанию Единица Значение и эффект
InpLots 0,10 лоты Фиксированный размер позиции, запрашиваемый при каждом входе в рынок. Он округляется в меньшую сторону до шага объема по символу; размер, меньший SYMBOL_VOLUME_MIN, приводит к отмене входа (он никогда не округляется в большую сторону), размер, превышающий SYMBOL_VOLUME_MAX, ограничивается максимальным значением.
InpStopLossPercent 10,0 процент от цены входа Расстояние стоп-лосса ниже цены входа. Если параметр SYMBOL_TRADE_STOPS_LEVEL брокера требует большего расстояния, стоп-лосс увеличивается. Значения, меньшие или равные 0, отклоняются при запуске: советник не работает без стоп-лосса.
InpMagic 20260922 идентификатор Магическое число, обозначающее собственные позиции советника. Учитываются и управляются только позиции по символу графика, имеющие данное магическое число.
InpMaxSlippagePoints 30 пунктов Запрашиваемое максимальное отклонение (допустимый проскальзывание) при входе и выходе из рынка. Это запрос на допустимое отклонение, а не гарантированный предел: фактическая цена исполнения также зависит от режима исполнения и политики брокера.
InpTradeComment «MonDip long» текст Комментарий, прикреплённый к ордеру на вход, отображаемый в истории сделок терминала.
InpUseIBS true вкл. / выкл. Включает дополнительный фильтр входа IBS (см. ниже). Фильтр может только ужесточить условия входа.
InpIBSMax 0,25 коэффициент в диапазоне (0, 1] Максимально допустимое значение IBS для бара понедельника. Значения, выходящие за пределы интервала (0, 1], отбрасываются при запуске.
InpUseMA true вкл. / выкл. Включает дополнительный фильтр входа на основе долгосрочной скользящей средней (см. ниже).
InpMAPeriod 180 ежедневные бары Период простой скользящей средней дневных цен закрытия, рассчитываемый по закрытым свечам D1, заканчивающимся свечой понедельника. Значения меньше 2 отбрасываются при запуске.
InpVerboseLog true вкл. / выкл. Выводит дополнительные сведения в журнале. Недельная линия принятия решения всегда выводится независимо от этого параметра.

Основная логика в трёх фрагментах

Следующие фрагменты дословно взяты из предоставленного исходного кода. Это выбранные фрагменты логики принятия решений, а не полные исполняемые программы. Сигнал (правило 1):

//--- ПРАВИЛО 1 ------------------------------------------------------
   // РЕШЕНИЕ D8: «ниже» — это строгое сравнение; если значение равно, неделя считается безторговой.
   if(!(bar.close < refBar.close))
      return(StringFormat("SKIP - rule 1: the Monday close %s is not below the previous trading day's close %s (equal or above).",
                          DoubleToString(bar.close, _Digits), DoubleToString(refBar.close, _Digits)));

Фильтры (IBS и долгосрочная скользящая средняя):

//--- ФИЛЬТР 1: СРК ----------------------------------------------
   if(InpUseIBS)
   {
      if(!haveIBS)
      {
         // РЕШЕНИЕ D7
         return("SKIP - IBS filter: High == Low on the Monday bar, the ratio is undefined - no-trade day.");
      }
      if(!(ibs <= InpIBSMax))                        // РЕШЕНИЕ D8: «<=», как указано
         return(StringFormat("SKIP - IBS filter: IBS %.4f is above InpIBSMax %.4f.", ibs, InpIBSMax));
   }

   //--- ФИЛЬТР 2: долгосрочная скользящая средняя -------------------------------------
   if(InpUseMA)
   {
      if(!haveMA)
         return(StringFormat("SKIP - MA filter: not enough daily history to compute the MA(%d).", InpMAPeriod));
      if(!(bar.close < ma))                          // РЕШЕНИЕ D8: строгое использование символа «<»
         return(StringFormat("SKIP - MA filter: the Monday close %s is not below the MA(%d) %s.",
                             DoubleToString(bar.close, _Digits), InpMAPeriod, DoubleToString(ma, _Digits)));
   }

Выход (закрытие в среду и позже):

   MqlDateTime dtBar;
   TimeToStruct(tBar, dtBar);                        // РЕШЕНИЕ D18
   if(!BarIsAtOrAfterWednesday(dtBar.day_of_week))
      return;

   // РЕШЕНИЕ D2: сигнал на выход срабатывает при закрытии свечи среды и
   // выполняется на первом тике после этого, повторяется до тех пор, пока позиция не будет закрыта.
   // РЕШЕНИЕ D24: «бар закрылся» — это определение MT5 — момент, когда следующий
   // Дневной бар открывается в соответствии с серверным временем, а не с моментом закрытия торгов на спотовом рынке.
   CloseOurPosition(StringFormat("rule 2 - the daily bar %s closed and it is a %s (Wednesday close reached)",
                                 TimeToString(tBar, TIME_DATE), WeekdayName(dtBar.day_of_week)));

Еженедельный цикл


Рисунок 1. Один недельный цикл советника — схематическое изображение, не скриншот из терминала и не данные бэктеста.

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

ATR Monitor — дневной, недельный и месячный диапазон ATR Monitor — дневной, недельный и месячный диапазон

Отображает суточный, недельный и месячный ATR, текущий диапазон между максимумом и минимумом, диапазон в процентах от ATR, а также изменение цены относительно цены открытия каждого периода.

Session Range Box Session Range Box

Рисует высокую/низкую коробку выбранного сеанса (по умолчанию: Азиатский диапазон 00:00-06:00 UTC) и расширяет ее вперед в качестве уровней прорыва на оставшуюся часть дня.

Marginal Drawdown Contribution Analyzer Marginal Drawdown Contribution Analyzer

Скрипт для счетов, на которых запущено несколько советников или конфигураций. Он суммирует чистый результат каждой конфигурации (по магическому номеру или по магическому номеру и символу) за календарный день и оценивает вклад каждой из них в просадку портфеля: просадку, добавленную методом «оставь один», долю в наихудшей просадке и долю в дисперсии Эйлера. Он выводит на экран выводы, рекомендации и эвристическую оценку по шкале от A+ до F. Скрипт работает «из коробки» на встроенном демонстрационном портфеле и написан на чистом MQL5.

GDS Renko Trade Manager — MetaTrader 5 GDS Renko Trade Manager — MetaTrader 5

Менеджер ручной торговли для MetaTrader 5: готовые «кирпичики» Ренко, настраиваемые уровни безубыточности и скользящего стоп-лосса, а также панель инструментов Ренко прямо на графике. Автоматические входы отсутствуют.