Ставь лайки и следи за новостями
Поставь на него ссылку - пусть другие тоже оценят
Оцени его работу в терминале MetaTrader 5
- Опубликовал:
-
Mykyta Samoiliuk
Делаю индикаторы и советники для MetaTrader 5 и пишу инструменты к ним на Python. Всё, что я выкладываю, идёт вместе со способом проверить, что оно работает, поэтому верить мне на слово не нужно. Переношу индикаторы с TradingView на MQL5 так, чтобы значения совпадали с оригиналом, и прикладываю - Просмотров:
- 41
- Рейтинг:
- Опубликован:
-
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу
Это часть совета-эксперта, относящаяся к порту SuperTrend. Индикатор, на основе которого он торгует, опубликован отдельно под названием SuperTrend TV, где главной целью было точное воспроизведение значений TradingView. Сама стратегия здесь намеренно проста: она покупает, когда линия поворачивает вверх, и продаёт, когда поворачивает вниз, потому что самое интересное в интеграции индикатора в советник — это никогда не сама стратегия.
Проблема заключается в выборе момента. Советник, который считывает показания индикатора на баре, который ещё формируется, улавливает сигналы, существующие всего несколько секунд, а затем исчезающие до закрытия бара. На графике всё выглядит убедительно, отчёт тестера выглядит оптимистично, а сделки, которые происходят на самом деле, не те, что видел кто-либо. Этот советник считывает только закрытые бары, и в комплекте с ним поставляется аудит, подтверждающий это.

SuperTrend TV на XAUUSD M15. Советник открывает позицию при каждом пересечении линии и удерживает только одну позицию за раз
Как он работает
Он считывает буфер направления SuperTrend TV через iCustom, выполняет действие один раз за каждый завершенный бар и удерживает одну позицию. Каждый ордер имеет свой «магический номер», поэтому советник никогда не затрагивает позиции, открытые вручную. Стоп-приказ устанавливается на самой линии SuperTrend с опциональным буфером в пунктах, а позиция закрывается и меняется на противоположную, когда линия меняет направление.
Стоит упомянуть один случай, поскольку именно в нём наивная версия размещает ордер, который сервер вынужден отклонить. Линия рассчитывается по цене закрытия завершённого бара, тогда как вход происходит по следующей доступной цене, поэтому к моменту отправки ордера цена может уже продвинуться за пределы линии. В таком случае стоп-приказ окажется с неправильной стороны от точки входа. Сдвиг стопа привел бы к открытию сделки на расстоянии одного пункта от уровня стоп-аута, поэтому сигнал вместо этого отбрасывается, а в журнале фиксируется соответствующая запись. На графике EURUSD H1 за восемь месяцев это произошло один раз из ста семнадцати сигналов.
Индикатор компилируется в советник в качестве ресурса, поэтому после сборки он работает автономно и не требует наличия индикатора в терминале. Это означает, что индикатор необходимо сначала скомпилировать, поскольку ресурс берется из его файла .ex5 во время сборки.
Как проверяются сделки
Советник записывает значение индикатора по каждому закрытому бару в журнал, а не только при разворотах. Затем скрипт на Python считывает этот журнал и сверяет сделки с последовательностью значений, поэтому утверждение заключается не в том, что советник правильно выглядит на графике, а в том, что каждый разворот приводил к открытию ровно одного ордера в правильную сторону, и что ни один ордер не появлялся без предшествующего ему разворота.
| баров: 6616 (31.07.2026 .. 03.09.2026) разворотов: 185 входов: 185 сигнал без сделки : 0 сделка без сигнала : 0 две сделки на одном баре : 0 неправильная сторона : 0 РЕЗУЛЬТАТ: одна сделка на каждый разворот |
Почему журнал фиксирует каждый бар
В первой версии аудита сделки сравнивались с файлом индикаторов, экспортированным из реального терминала, и было зафиксировано девяносто три сделки без соответствующих сигналов. Советник работал нормально. В реальном терминале отсутствовало три с половиной тысячи баров M5, которые тестер формирует на основе минутных данных, поэтому у половины сигналов не было соответствующих баров.
Сравнение двух результатов, вычисленных на разных данных, — самый простой способ составить отчет об ошибке в работающем коде, и стоит знать, что это происходит даже тогда, когда вы специально ищете такую ошибку. Запись ряда данных во время работы полностью устраняет эту проблему. Аудит по-прежнему принимает внешний экспорт в качестве дополнительного независимого мнения, и по барам оба источника каждый раз согласуются в направлении.
Входные данные
- Период и коэффициент ATR, передаваемые напрямую в индикатор
- размер лота, фиксированный
- дополнительные пункты за линией для стопа, по умолчанию — ноль
- магическое число и проскальзывание
- включение или отключение журнала решений и имя его файла
Как это влияет на счет
Очевидный вопрос о любом опубликованном советнике — приносит ли он прибыль, поэтому вместо мнения привожу цифры. Оба прогона начинаются с десяти тысяч, используют настройки по умолчанию и фиксированный размер позиции в одну десятую лота, и были взяты из тестера стратегий на реальных исторических данных. Подсчёты относятся к позициям и соответствуют строке «Total Trades» отчёта, поэтому в строке «Total Deals» показано примерно в два раза больше, так как там каждый вход и каждый выход учитываются отдельно.
| Прогон | Период | Общее количество сделок | Итоговый баланс |
|---|---|---|---|
| XAUUSD M5 | один месяц | 185 | 10 662 |
| EURUSD H1 | восемь месяцев | 116 | 9 736 |
Месяц, посвящённый золоту, был трендовым, и этот результат скорее связан с трендом, чем с системой. Убыток по евро близок к стоимости самих разворотов, поскольку эксперт постоянно находится на рынке и платит спред дважды при каждом изменении направления линии. От простого разворота тренда без фильтра после этого остается очень мало — это нормальный результат, а не недостаток портфеля.
Такова честная картина, и именно поэтому данная публикация посвящена обработке сигналов, а не стратегии. Здесь можно проверить, что портфель соответствует исходному, а сделки — сигналам. Прибыль не обещается, и любой, кто на это рассчитывает, будет разочарован той же арифметикой, которая легла в основу приведенной выше таблицы.
Чего здесь нет
Здесь нет системы управления капиталом. Размер лота фиксирован, нет процента риска, нет дневного лимита убытков и нет остановки при просадке, поскольку данная публикация посвящена обработке сигналов, а добавление этих элементов затуманило бы то, что она демонстрирует. Любой, кто использует её в качестве отправной точки, должен добавить их, прежде чем применять её на реальном счёте.
Еще один момент, который стоит четко обозначить. «Магическое число» не позволяет советнику открывать ручные сделки на хеджируемом счете. На счете с неттингом терминал по замыслу объединяет все позиции по одному символу в одну, поэтому, если вы торгуете тем же символом вручную во время работы советника, разделение позиций становится невозможным, и это свойство неттинга, а не данного кода.
Перевод с английского произведен MetaQuotes Ltd.
Оригинальная публикация: https://www.mql5.com/en/code/77009
GridCapitalCalculator
Каждый, кто использует сетку, задается вопросом: достаточно ли велик мой счет? Обычный ответ — убыток на последнем уровне сетки — является неверным показателем. Причиной закрытия счета становится достижение уровня маржи, при котором брокер активирует стоп-аут, в то время как цепочка позиций по-прежнему открыта и, на первый взгляд, ситуацию ещё можно исправить. Этот советник вычисляет реальную цифру, а затем подсчитывает, как часто движение такой величины уже происходило в истории данного инструмента на таймере M1. Он исправляет три ошибки, все из которых связаны с излишним оптимизмом: цепочка из N участков находится в открытом состоянии на шаге x N(N-1)/2, а не на шаге x N (например, при 10 участках — на 45 шагах убытка, а не на 10); открытые позиции также блокируют маржу, пока они находятся в открытом состоянии; и стоп-аут выражается в процентах, а не равен нулю — при 50 % достаточно потерять половину собственного капитала. «Вам нужно 86 долларов свободного капитала» — это абстракция. ««Движение такого размера происходило 71 раз за 100 дней, то есть раз в 1,4» — это решение. Установите InpEquity на величину, которой у вас ещё нет, чтобы увидеть, что действительно потребуется для данной конфигурации. Строго только для чтения: он никогда не открывает, не закрывает и не изменяет позицию.
AI Prompt Writer - Simple AI Assistant Customization
Настройте своего ИИ-помощника MetaTrader 5, выбрав язык, стиль общения, меню и поведение с помощью простого файла команд.
Any Indicator Alert - alerts, push notifications and multi-timeframe for any custom indicator, no source code needed
Прикрепите его к графику, введите название любого пользовательского индикатора, и он будет оповещать вас по собственным сигналам этого индикатора — с помощью всплывающего окна, звукового сигнала, push-уведомления на телефон или по электронной почте. Он считывает данные индикатора через iCustom, поэтому исходный код не требуется: достаточно закомпилированного файла .ex5, который вы скачали. Он также может считывать данные этого индикатора с более высокого таймфрейма и повторно проверяет закрытые бары, чтобы определить, перерисовывается ли индикатор или просто отстает. Он открывается в режиме EXPLORE, в котором отображается список всех буферов индикатора и их содержимое, ведь именно вопрос «в каком буфере находится сигнал» заставляет большинство пользователей вообще отказаться от использования iCustom.
YURAZ_MCCH
Индикатор рассчитывает % роста или падения относительно CLOSE, написан с применением ООП, и легко интегрируется в любой советник или иной индикатор.