BreakEvenTrailingMarket
- Утилиты
- Версия: 1.0
BreakEven Trailing - это утилита для MetaTrader 5, которая управляет стоп-лоссом уже открытых позиций. Она переносит стоп-лосс в безубыток и ведет его за ценой, поэтому вам не нужно постоянно следить за графиком, чтобы защитить накопленную прибыль.
Советник не открывает позиции и не закрывает их рыночными ордерами. Он изменяет только стоп-лосс существующих позиций. Выход происходит тогда, когда цена достигает стоп-лосса, установленного советником.
ЧТО ДЕЛАЕТ СОВЕТНИК
- Переносит стоп-лосс на цену открытия или на цену открытия плюс заданное смещение, когда позиция достигает заданной прибыли в пунктах (пипсах).
- Ведет стоп-лосс на фиксированном расстоянии за текущей ценой, когда позиция достигает заданной прибыли в пипсах.
- Безубыток и трейлинг включаются и отключаются независимо друг от друга и могут работать вместе.
- Работает с позициями BUY и SELL.
- Никогда не переносит существующий стоп-лосс на худший уровень. Стоп-лосс движется только в сторону большей защиты прибыли.
- Сохраняет существующий тейк-профит без изменений при модификации стоп-лосса.
- Показывает на графике текущие настройки, тип счета и рабочее состояние.
КАКИЕ ПОЗИЦИИ УПРАВЛЯЮТСЯ
Советник управляет всеми позициями по символу того графика, на который он установлен.
- Magic-номера не проверяются. Управляются позиции, открытые вручную, другим советником или копированием сделок.
- Позиции по другим символам никогда не изменяются.
- Отложенные ордера никогда не изменяются.
- Изменяется только стоп-лосс. Объем, тейк-профит и направление позиции остаются прежними.
Так как советник не фильтрует позиции по magic-номеру, не запускайте одновременно две программы, изменяющие стоп-лосс одного и того же символа. Они будут перезаписывать работу друг друга. Устанавливайте советник на один график для каждого символа.
СЧЕТА С ХЕДЖИРОВАНИЕМ И НЕТТИНГОМ
На хеджинговом счете каждая позиция управляется отдельно по своему тикету. Две позиции по одному символу могут иметь разные уровни безубытка, так как у каждой своя цена открытия.
На неттинговом счете платформа держит одну сводную позицию по символу. Несколько сделок объединяются в одну позицию со средней ценой открытия, и именно эта средняя цена служит точкой безубытка. Отдельные уровни безубытка для каждой сделки на неттинговом счете невозможны, а новая сделка меняет среднюю цену открытия всей позиции. Советник считывает текущую сводную позицию на каждом тике, поэтому всегда работает от актуальной средней цены.
Определенный тип счета отображается на панели графика как Hedging или Netting.
КАК ВЫБИРАЕТСЯ СТОП-ЛОСС
Когда безубыток и трейлинг включены одновременно, оба условия могут выполниться в один и тот же момент. В этом случае советник не отправляет два запроса на модификацию. На каждом тике выполняются следующие шаги:
1. Рассчитывается кандидат безубытка: цена открытия плюс или минус смещение в сторону прибыли.
2. Рассчитывается кандидат трейлинга: текущая цена минус или плюс расстояние трейлинга.
3. Каждый кандидат округляется до шага цены символа, всегда в ту сторону, которая не приближает стоп-лосс к текущей цене больше, чем было задано.
4. Каждый кандидат отдельно проверяется по уровню stops level и freeze level символа.
5. Допустимые кандидаты сравниваются, и отправляется только тот, который защищает больше прибыли: более высокий стоп-лосс для BUY и более низкий для SELL.
Если один кандидат нельзя установить из-за ограничения брокера, используется второй, если он допустим. Кандидат никогда не заменяется на худший уровень ради того, чтобы модификация прошла.
ОГРАНИЧЕНИЯ БРОКЕРА
Многие брокеры не принимают стоп-лосс, расположенный слишком близко к текущей цене, а некоторые блокируют изменение позиции, пока цена находится в зоне заморозки. Советник проверяет stops level и freeze level перед отправкой запроса, а после отправки анализирует код возврата торгового сервера.
Если стоп-лосс установить нельзя, советник ждет и повторяет попытку на следующем тике. Он не переносит стоп-лосс на худший уровень и не отключает функцию. Причина показывается на панели графика, поэтому видно, ждет ли советник рынок или сервер отклонил запрос.
Учтите, что некоторые брокеры сообщают нулевой stops level и при этом применяют динамическое ограничение на стороне сервера. В таком случае итог определяется кодом возврата торгового сервера, который советник выводит на панель и в журнал.
ВХОДНЫЕ ПАРАМЕТРЫ
Безубыток
- Enable break-even (по умолчанию true). Включение и отключение функции безубытка.
- Profit to trigger break-even, in pips (по умолчанию 10.0). Плавающая прибыль, необходимая для переноса стоп-лосса.
- Offset beyond open price, in pips (по умолчанию 0.0). Расстояние от цены открытия в сторону прибыли. Используйте его, чтобы покрыть спред, комиссию и своп.
Трейлинг-стоп
- Enable trailing stop (по умолчанию true). Включение и отключение трейлинга.
- Profit to start trailing, in pips (по умолчанию 15.0). Плавающая прибыль, необходимая для начала трейлинга.
- Distance from price to stop, in pips (по умолчанию 10.0). Расстояние между текущей ценой и стоп-лоссом при трейлинге.
Панель на графике
- Show settings and status on chart (по умолчанию true).
- Panel font size (по умолчанию 12). Значения ограничены диапазоном от 8 до 24.
Значения проверяются при запуске советника. Если значение работать не может, советник сообщает об этом и не запускается. Если сочетание допустимо, но нетипично, советник запускается и записывает предупреждение в журнал. Предупреждений два: смещение больше порога безубытка, из-за чего стоп-лосс будет установлен только после дальнейшего движения цены, и старт трейлинга меньше расстояния трейлинга, из-за чего первый трейлинг-стоп может оказаться хуже цены открытия.
ПАНЕЛЬ НА ГРАФИКЕ
Панель показывает версию, символ, тип счета, состояние обеих функций с их настройками, количество управляемых позиций BUY и SELL, число модификаций на текущем тике и текущий статус.
Значения статуса:
- ACTIVE: советник отслеживает позиции.
- WAITING: NO POSITION: по текущему символу нет позиций.
- WAITING: NO QUOTE: пока нет корректных bid и ask.
- WAITING: STOP LEVEL: кандидат стоп-лосса ближе к цене, чем разрешает брокер.
- BLOCKED: FREEZE LEVEL: цена находится в зоне, где брокер запрещает модификацию.
- WAITING: MARKET CLOSED, WAITING: PRICE OFF, WAITING: PRICE CHANGED, WAITING: TOO MANY REQUESTS: временные рыночные или серверные состояния.
- ALL FUNCTIONS OFF: обе функции отключены.
- AUTO TRADING OFF, EA TRADING DISABLED, ACCOUNT TRADE DISABLED, EXPERT TRADE DISABLED, SERVER AUTO TRADING OFF, DISCONNECTED: торговля не разрешена в терминале, для советника или для счета, либо терминал не подключен.
- ERROR: INVALID STOPS, ERROR: TRADE DISABLED, ERROR: SYMBOL SETTINGS, ERROR: MODIFY FAILED: запрос отклонен. Код возврата записывается в журнал.
Повторяющиеся ошибки по одному тикету записываются в журнал только при первом появлении, при смене кода возврата и далее не чаще одного раза в минуту, чтобы журнал оставался читаемым. При восстановлении после ошибки записывается отдельная строка.
ОПРЕДЕЛЕНИЕ ПИПСА И ПОДДЕРЖИВАЕМЫЕ СИМВОЛЫ
Все расстояния задаются в пипсах, а не в пунктах.
- Символы с 3 или 5 знаками после запятой: один пипс равен десяти пунктам.
- Символы с 2 или 4 знаками: один пипс равен одному пункту.
Это определение соответствует стандартной котировке валютных пар. Металлы, индексы и криптовалюты не входят в поддерживаемую область версии 1.00, так как определение пипса для этих инструментов у разных брокеров различается. На таком символе расчет выполняться будет, но значение одного пипса может не совпасть с вашим ожиданием, поэтому проверьте итоговые расстояния на демо-счете.
ЧТО ЗДЕСЬ ОЗНАЧАЕТ БЕЗУБЫТОК
Безубыток в этом советнике означает цену открытия позиции, зафиксированную платформой. Он не включает комиссию, своп, проскальзывание и разницу между bid и ask в момент выхода. Поэтому позиция, закрытая точно по цене открытия, не гарантирует результат ровно в ноль.
Если вы хотите, чтобы стоп-лосс покрывал ваши торговые издержки, задайте смещение от цены открытия в соответствии с издержками вашего счета.
КАК ИСПОЛЬЗОВАТЬ
1. Установите советник на график символа, которым нужно управлять. Таймфрейм любой: советник работает на каждом тике и не зависит от таймфрейма.
2. Включите алгоритмическую торговлю в терминале.
3. Задайте пороги и расстояния в пипсах в соответствии со своим стилем торговли и типичным диапазоном символа.
4. Убедитесь, что панель показывает ACTIVE при открытой позиции и WAITING: NO POSITION при ее отсутствии.
5. Открывайте один график на символ. Не устанавливайте советник дважды на один символ.
Советник можно оставить на графике постоянно. Пока по символу нет позиций, он ничего не делает.
ТРЕБОВАНИЯ
- MetaTrader 5. Проверено на сборке терминала 5836.
- Включенная алгоритмическая торговля в терминале и для советника.
- Счет, допускающий изменение стоп-лосса открытых позиций.
- Не используются DLL, WebRequest, внешние файлы и интернет-соединение.
ТЕСТИРОВАНИЕ
Версия 1.00 протестирована на демо-счете розничного брокера.
- Тесты расчетов: пройдено 46 автоматических проверок. Они охватывают BUY и SELL, безубыток, трейлинг, обе функции вместе, тик до срабатывания и точное срабатывание, нарушение stops level одним кандидатом и обоими, защиту существующего стоп-лосса, freeze level для стоп-лосса и тейк-профита, символы с 2, 3, 4 и 5 знаками, а также округление к шагу цены в правильную сторону.
- Интеграционный тест с торговым API на хеджинговом счете: перенос в безубыток для BUY и SELL выполнен с кодом возврата 10009 (запрос выполнен), существующий тейк-профит сохранен, неудачных запросов нет. Обработано около 360 000 тиков.
ЧАСТЫЕ ВОПРОСЫ
Открывает или закрывает ли советник сделки?
Нет. Он только изменяет стоп-лосс уже существующих позиций. Позицию закрывает брокер, когда цена достигает этого стоп-лосса.
Работает ли он со сделками другого советника или сигнала?
Да. Magic-номера не проверяются, поэтому управляется любая позиция по символу. По этой же причине не используйте его вместе с другой программой, изменяющей стоп-лосс того же символа.
Что происходит, когда терминал закрыт?
При закрытом терминале советник не работает. Уже установленные уровни стоп-лосса остаются на сервере и продолжают действовать, так как это серверные ордера.
Можно ли использовать безубыток без трейлинга?
Да. У каждой функции свой переключатель. Если отключены обе, советник бездействует и показывает ALL FUNCTIONS OFF.
Почему стоп-лосс не двигается, хотя прибыль достигнута?
Чаще всего причина в ограничении брокера. Посмотрите на панель: WAITING: STOP LEVEL означает, что запрошенный стоп-лосс ближе к цене, чем разрешено, и советник ждет допустимого расстояния вместо установки худшего уровня.
Работает ли он на неттинговом счете?
Да. На неттинговом счете по символу есть одна сводная позиция, и точкой безубытка служит ее средняя цена открытия.
ВЕРСИЯ
1.00 - Первый выпуск.
