Как работать с безубытком: когда переносить стоп-лосс и как не потерять сделку на откате
Здравствуйте, друзья! Сегодня поговорим о слове, знакомом каждому трейдеру, но вызывающем на практике больше вопросов, чем кажется: безубыток. Перенести стоп-лосс в точку входа звучит просто. Но когда это делать, куда именно ставить новый стоп и почему сделка иногда закрывается «в ноль», а цена после этого уходит ровно туда, куда вы рассчитывали? Давайте разберёмся спокойно, по шагам и на понятных примерах.
За 20 с лишним лет работы с рынком и разработки торговых роботов для MetaTrader 4 и MetaTrader 5 я видел самые разные подходы: от «переношу стоп сразу, как только появилось два пункта прибыли» до «никогда не переношу, пусть стоит там, где стоял». У каждого подхода есть свои преимущества и свои ограничения, и сегодня я расскажу о них честно, без громких обещаний.
Если вам интересны такие разборы, добавляйтесь ко мне в друзья на MQL5, чтобы не пропустить новые публикации. Рядом с этой темой стоит прочитать мои статьи «Как правильно выставлять Stop Loss и Take Profit в трейдинге» и «Как торговый робот управляет серией позиций: объяснение для начинающих», а полный список моих публикаций собран в блоге. Мои торговые роботы и утилиты вы найдёте в разделе продавца на MQL5, новости и обучающие материалы — в Telegram-канале, а демо-версии продуктов можно скачать на сайте Trading-Go.
Что такое безубыток простыми словами
Безубыток — это перенос стоп-лосса открытой позиции на цену входа либо на уровень чуть выше цены входа для покупки и чуть ниже для продажи. После такого переноса сделка уже не может закрыться с убытком из-за движения цены: либо она продолжит развиваться в вашу сторону, либо закроется примерно «в ноль».
Простой пример. Вы открыли покупку по EURUSD по цене 1.1000 и поставили стоп-лосс на 1.0970, то есть рискуете 30 пипсами (в примерах я считаю в пипсах, для EURUSD это 0.0001). Цена выросла до 1.1030. Вы перенлсите стоп с 1.0970 на 1.1000. Теперь, если рынок развернётся и дойдёт до нового стопа, позиция закроется около цены входа, а не с убытком в 30 пипсов.
Слово «примерно» здесь стоит не случайно. Безубыток почти никогда не равен нулю в деньгах, и сейчас я объясню, почему.
Почему безубыток не равен нулю: спред, комиссия, своп и проскальзывание
Общий результат сделки складывается не только из разницы между ценой открытия и ценой закрытия. На него влияют четыре составляющие:
- Спред. Покупка открывается по цене Ask, а закрывается по цене Bid. Продажа, наоборот, открывается по Bid, а закрывается по Ask. Стоп-лосс покупки срабатывает по цене Bid, стоп-лосс продажи — по цене Ask. Для продаж это важно: на грвфике, который строится по Bid, стоп может сработать раньше, чем линия цены визуально дойдёт до его уровня.
- Комиссия. У многих брокеров (особенно на ECN-счетах) комиссия берётся за каждый лот сделки. Она уменьшает результат, даже если цена закрытия равна цене открытия.
- Своп. Если позиция переносится через ночь, брокер начисляеь или списывает своп. Он может быть как отрицательным, так и положительным, а у многих брокеров в определённый день недели (чаще всего в среду) начисляется в тройном размере.
- Проскальзывание. Стоп-ордер исполняется по ближайшей доступной цене. В спокойном рынке она почти совпадает с уровнем стопа, а на новостях или при гэпе может заметно отличаться.
Поэтому на практике стоп переносят не ровно в цену входа, а с небольшим запасом, который покрывает издержки. Приблизительная формула такая: запас в пунктах = (комиссия за круг + ожидаемый своп в деньгах) ÷ стоимость одного пункта для вашего объёма + небольшой буфер.
Условный пример. Допустим, комиссия брокера — 7 долларов за 1 лот за круг (открытие и закрытие). Для EURUSD один пункт пятизначной котировки при объёме 1 лот стоит около 1 доллара, то есть 7 долларов — это примерно 7 пунктов, или 0.7 пипса. Значит, стоп нужно ставить хотя бы на 1 пипс выше цены входа. Цифры здесь иллюстративные: у вашего брокера клмиссия и стоимость пункта будут другими, и проверять их нужно по условиям вашего счёта.
Ещё один нюанс касается типа счёта. В MetaTrader 5 на счёте с неттингом по каждому символу существует одна общая позиция, и её цена входа — средневзвешенная. Безубыток в этом случае считается от неё. На хеджинговых счетах, как и в MetaTrader 4, у каждой позиции своя цена входа и свой стоп-лосс.
Зачем нужен безубыток и чего он не гарантирует
Главное преимущество безубытка — понятное правило защиты. После переноса стопа вы знаете, что движение цены уже не превратит выросшую позицию в убыточную. Это помогает психологически: проще держать сделку, когда нет желания закрыть её раньше времени из страха отдать заработанное. Кроме того, правило можно заранее записать в торговый план и выполнять одинаково, а значит, и проверять на истории.
Теперь об ограничениях, о которых говорят реже. Первое: слишком ранний перенос стопа часто выбивает позицию на обычном откате, после чего цена продолжает движение без вас. Второе: безубыток не защищает от гэпов и сильного проскальзывания — стоп исполняется по доступной цене, а не по той, которую вы указали. Третье: он не заменяет ни торговую стратегпю, ни расчёт объёма, ни контроль общего риска. Четвёртое: серия сделок, закрытых «в ноль», не приносит результата, а время и внимание при этом потрачены.
Я не раз говорил, что главное правило трейдинга — давать прибыли расти. Поэтому связка «безубыток, а затем трейлинг-стоп» часто выглядит разумнее жёсткого тейк-профита, который обрезает хороший ход. Но у такой связки есть своя цена: часть сделок закроется по безубытку, а часть из них потом пойдёт дальше. Это нормально, и важно заранее принять эту особенность, а не пытаться её «победить».
Когда переносить стоп: способы активации безубытка
Главный вопрос безубытка — когда именно его включать. Ниже я собрал основные способы, которые встречаются в ручной торговле и в торговых роботах.
| Способ | Как работает | Преимущества | Ограничения |
|---|---|---|---|
| Фиксированная дистанция | Стоп переносится, когда прибыль достигла заданного числа пунктов | Простота настройки и проверки | Не учитывает волатильность: на спокойном и на активном рынке одно и то же число работает по-разному |
| Кратно риску (R) | Перенос при прибыли, равной стоп-лоссу (1R) или его части | Привязан к риску конкретной сделки | При очень коротком стопе включается слишком рано, при длинном — слишком поздно |
| По волатильности (ATR) | Дистанция равна доле или кратному значению ATR | Подстраивается под текущий рынок | Нужно выбрать период и коэффициент и проверить их на истории |
| По структуре рынка | Перенос после обновления локального экстремума или завершения отката | Опирается на логику движения цены | Труднее формализовать, в ручной торговле появляется субъективность |
| После частичной фиксации | Часть позиции закрыта, остаток переведён в безубыток | Часть результата уже зафиксирована | Меньший объём остаётся для дальнейшего движения |
Универсального ответа не существует: подходящее значение зависит от инструмента, таймфрейма, волатильности и самой стратегии. Именно поэтому я рекомендую не копировать чужие числа, а проверять вариант на собственной истории и на демо-счёте, причём в условиях, максимально близких к реальным.
Безубыток в разных стилях торговли
Скальпинг. Стопы здесь короткие, поэтому расстояние до активации безубытка нужно обязательно сравнивать со спредом и комиссией. Если эта дистанция сопоставима с издержками, у позиции почти не остаётся места для движения, и безубыток превращается в формальность.
Внутридневная торговля. Стопы шире, а ключевой вопрос — как безубыток соотносится с обычными откатами внутри дня. Если стоп переносится в момент, когда рынок ещё не завершил привычную коррекцию, позицию легко выбивает, и это самая частая претензия к безубытку.
Среднесрочная торговля. Здесь заметнее влияют своп и гэпы выходных. Безубыток с запасом на своп выглядит логичнее, но и риск проскальзывания при гэпе остаётся: стоп исполнится по первой доступной цене после открытия рынка.
Торговля на новостях. В момент выхода новости спред расширяктся, а цена может «проскакивать» уровни. Безубыток в такие моменты работает менее предсказуемо, и закладывать это в расчёты нужно заранее.
Пошаговый пример: как работает безубыток на сделке
Возьмём ту же покупку по EURUSD. Цена входа — 1.1000, стоп-лосс — 1.0970 (риск 30 пипсов). Правило безубытка: когда прибыль достигает 30 пипсов, то есть одного риска, стоп переносится на 1.1001 — это цена входа плюс 1 пипс запаса на издержки. Дальше возможны три сценария.
- Цена продолжает расти. Стоп стоит на 1.1001 и ничему не мешает. Позиция живёт дальше, и вы можете подключить трейлинг-стоп либо закрыть сделку по своему плану.
- Цена разворачивается. Рынок возвращается к 1.1001, стоп срабптывает. Результат — около +1 пипса до вычета комиссии и свопа, то есть почти ноль вместо возможного убытка в 30 пипсов.
- Откат, а затем продолжение роста. Цена откатывается до 1.1001, выбивает стоп и затем всё-таки уходит вверх. Сделка закрыта, движение упущено. Это самая неприятная, но самая типичная цена за безубыток.
Какой сценарий реализуется, заранее неизвестно. Безубыток не угадывает рынок, он лишь превращает часть неопределённости в понятное правило с понятной ценой. Это учебный пример с условными цифрами, а не торговая рекомендация.
Безубыток и трейлинг-стоп: два разных этапа
Новички часто смешивают эти понятия, хотя они решают разные задачм. Безубыток отвечает на вопрос «как защитить сделку от убытка», а трейлинг-стоп — на вопрос «как не отдать уже накопленную прибыль». Безубыток делается один раз, когда выполнено условие. Трейлинг двигает стоп вслед за ценой много раз, пока позиция жива.
Трейлинг тоже бывает разным: с фиксированной дистанцией (стоп держится на заданном расстоянии от цены), по индикатору (например, по скользящей средней) или динамическим, когда дистанция меняется по мере развития движения. Чем раньше включается трейлинг, тем теснее защита, но тем выше шанс выйти на обычном шуме. Чем позже, тем больше прибыли можно отдать при развороте. Здесь снова нет идеального значения, есть компромисс, который нужно проверять.
Безубыток для серии позиций
Когда открыта не одна позиция, а несколько, безубыток считают для всей серии. Для этого берут средневзвешенную цену входа. Пример: куплено 0.10 лота по 1.1000 и 0.20 лота по 1.0950. Средняя цена: (0.10 × 1.1000 + 0.20 × 1.0950) ÷ 0.30 = 1.09667. Если цена вернётся к 1.09667, вся серия окажется примерно в нуле, опять же до комиссий и свопа, которые нужно прибавить.
Здесь важно помнить: добавление позиций против движения цены увеличивает суммарнвй объём и потенциальную просадку. Подробнее об этом я писал в статье «Почему усреднение может изменить поведение торгового робота?». В описании моего робота VR Smart Grid отдельно указано, что при усреднении точка безубытка учитывает комиссии и своп, чтобы позиции закрывались «в ноль» без скрытых убытков.
Типичные ошибки при работе с безубытком
- Слишком ранний перенос. Стоп в двух-трёх пипсах от цены на волатильнлм инструменте очень часто выбивается обычным рыночным шумом.
- Стоп ровно в цену входа. Без запаса на комиссию и своп результат окажется слегка отрицательным.
- Игнорирование минимальной дистанции. У каждого символа есть уровень стопов (Stops Level): ближе этого расстояния к текущей цене стоп поставить нельзя. Если попытаться, сервер вернёт ошибку: в MetaTrader 4 это ошибка 130 (неправильные стопы), в MetaTrader 5 — код TRADE_RETCODE_INVALID_STOPS. Есть и уровень заморозки (Freeze Level), рядом с которым модификация позиции запрещена.
- Путаница с Magic Number. Утилита или робот с функцией безубытка может по ошибке двигать стопы чужих позиций, если не ограничить её своим Magic Number.
- Движение стопа не в ту сторону. Безубыток и трейлинг должны только улучшать стоп. Если новый уровень хуже текущего, менять его нельзя.
- Расширение спреда. На новостях и во время ролловера спред может вырасти, и стоп сработает раньше, чем вы ожидали. Это касается и продаж, ведь их стоп срабатывает по цене Ask.
- Отсутствие проверки. Настройки подбираются «на глаз» или копируются у кого-то, без теста на истории и демо-счёте.
Как автоматизировать безубыток на MQL5
Если вы хотите, чтобы безубыток переносился автоматически, написать такую функцию можно самому. Ниже учебный пример для MetaTrader 5. Функция проходит по открытым позициям текущего символа с нужным Magic Number и, если прибыль достигла порога, переносит стоп на цену входа с небольшим запасом. Стоп двигается только в сторону улучшения, а минимальная дистанция до цены (Stops Level) проверяется.
#include <Trade\Trade.mqh> CTrade trade; input int BE_Trigger = 300; // прибыль в пунктах для включения безубытка input int BE_Offset = 20; // запас над ценой входа в пунктах input long MagicNumber = 227; // Magic Number позиций робота void MoveToBreakeven() { long stopsLevel = SymbolInfoInteger(_Symbol, SYMBOL_TRADE_STOPS_LEVEL); for(int i = PositionsTotal() - 1; i >= 0; i--) { ulong ticket = PositionGetTicket(i); if(ticket == 0) continue; if(PositionGetString(POSITION_SYMBOL) != _Symbol) continue; if(PositionGetInteger(POSITION_MAGIC) != MagicNumber) continue; long type = PositionGetInteger(POSITION_TYPE); double open = PositionGetDouble(POSITION_PRICE_OPEN); double sl = PositionGetDouble(POSITION_SL); double tp = PositionGetDouble(POSITION_TP); double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); double newSL; if(type == POSITION_TYPE_BUY) { if(bid - open < BE_Trigger * _Point) continue; newSL = NormalizeDouble(open + BE_Offset * _Point, _Digits); if(sl != 0.0 && sl >= newSL) continue; if(bid - newSL < stopsLevel * _Point) continue; } else { if(open - ask < BE_Trigger * _Point) continue; newSL = NormalizeDouble(open - BE_Offset * _Point, _Digits); if(sl != 0.0 && sl <= newSL) continue; if(newSL - ask < stopsLevel * _Point) continue; } trade.PositionModify(ticket, newSL, tp); } } void OnTick() { MoveToBreakeven(); }
Параметр BE_Trigger — это прибыль в пунктах, при которой включается безубыток, а BE_Offset — запас над ценой входа в пунктах. Функция вызывается из OnTick. Код учебный: он не учитывает уровень заморозки и особенности конкретного брокера, поэтому обязательно проверьте его на демо-счёте. В MetaTrader 4 принцип тот же, но вместо класса CTrade используются функции OrderSelect и OrderModify, а ключевой уровень называется MODE_STOPLEVEL.
Если вам интересно научиться писать таких помощников и торговых роботов самостоятельно, загляните в мой обучающий проект MQL Master: там я шаг за шагом объясняю программирование на MQL4 и MQL5.
Как безубыток реализован в VR Proton
В моём роботе VR Proton для MetaTrader 4 и MetaTrader 5 безубыток встроен как отдельный этап управления серией сделок. По описанию робота, после того как цена проходит заданное расстоянте в прибыльную сторону, позиция переводится в защищённое состояние. Расстояние задаётся параметром Break-Even Distance, а дополнительный шаг — параметром Break-Even Step. Именно шаг позволяет поставить уровень защиты не ровно в цену входа, а с небольшим запасом в прибыльную зону: выше цены входа для покупки и ниже для продажи.
Важно, что безубыток и трейлинг в VR Proton — разные этапы. Сначала позиция защищается, затем подключается сопровождение стопа вслед за ценой. Для трейлинга доступны классический вариант с фиксированной дистанцией, динамический режим, адаптивный режим Dynamic Extra и ручной тип. Об устройстве робота и о том, как он ведёт серию позиций, подробнее рассказано в обзоре на MQL5.
Теперь об ограничениях. VR Proton работает с серией позиций и при движении цены против первоначального направления может добавлять позиции, то есть применять усреднение. Это увеличивает суммарный объём и потенциальную просадку, поэтому перед использованием стоит внимательно изучить описание, протестировать настройки на истории и на демо-счёте и убедиться, что стратегия подходит вам по уровню риска. Робот — это инструмент автоматизации, а не гарантия прибыли.
Страницы робота на MQL5: VR Proton для MetaTrader 5 и VR Proton для MetaTrader 4. Демо-версию с 30-дневным рабочим периодом и set-файлы можно получить на сайте Trading-Go.
Как проверить настройки безубытка до реального счёта
Перед тем как использовать безубыток на реальных деньгах, я рекомендую пройти несколько простых проверок:
- Прогоните один и тот же период истории в тестере стратегий дважды: с безубытком и без него. Сравнивайк не только общий результат, но и число сделок, средний выигрыш и средний проигрыш, максимальную просадку.
- Включите в тестере реальные условия: спред, комиссию, своп. Без них безубыток выглядит лучше, чем он есть на самом деле.
- Отдельно посчитайте, сколько сделок закрылось по безубытку, а цена после этого продолжила движение в вашу сторону. Эта цифра покажет настоящую цену защиты.
- Не подбирайте значения по максимальной прибыли в прошлом. Результат, полученный чрезмерной подгонкой параметров под историю, часто не повторяется в реальной торговле.
- После тестера запустите стратегию на демо-счёте и сравните её поведение с расчётами.
Почему результаты тестера и реального счёта могут расходиться, я подробно разбирал в статье «Почему торговый робот зарабатывает в тестере MetaTrader 5, но теряет деньги на реальном счёте», а про объём позиции и риск на сделку — в статье «Как правильно рассчитать лот в MetaTrader 5».
Рекомендации
Я рекомендую относиться к безубытку как к инструменту управления риском, а не как к способу никогда не терять деньги. Это одно из правил торгового плана, и оно хорошо работает только вместе с остальными: понятным стоп-лоссом, разумным объёмом и проверенной стратегией.
Мною было замечено, что чаще всего проблемы возникают не из-за самого безубытка, а из-за выбора момента. Новички переносят стоп слишком рано, боясь потерять небольшую прибыль, и в результате регулярно остаются «в нуле» на движениях, которые могли бы принести результат. И наоборот: некоторые вообще отказываются от безубытка, а потом переживают, когда выросшая позиция разворачивается в убыток.
На практике работает следующим образом:
- Сначала определите стоп-лосс и объём исходя из допустимого риска на сделку. Безубыток работает поверх этого, а не вместо этого.
- Выберите условие активации: фиксированная дистанция, кратность риска (например, 1R) или волатильность (ATR). Начните с самого простого варианта и проверьте его на истории.
- Добавьте запас на комиссию и своп, чтобы закрытие по безубытку не давало скрытый минус.
- Решите, что будет после безубытка: трейлинг-стоп, частичная фиксация или сопровождение до заранее намеченного выхода.
- Если вы используете робота, изучите, как он считает безубыток для серии позиций, и протестируйте его на условиях вашего брокера.
- Ведите журнал: отмечайте, какие сделки закрылись по безубытку и что произошло с ценой дальше. Через несколько десятков сделок картина становится заметно яснее, а решение о настройках — осознаннее.
Материал носит образовательный характер и не является индивидуальной инвестиционной рекомендацией. Торговля на финансовых рынках сопряжена с риском, ни один способ управления позицией не гарантирует прибыль, а прошлые результаты не гарантируют будущих.
Спасибо, что дочитали до конца! Добавляйтесь ко мне в друзья на MQL5, подписывайтесь на Telegram-канал и пишите в комментаричх, как вы работаете с безубытком: фиксированно, по ATR или по структуре рынка. Продолжим разбирать практику управления сделками в следующих статьях.



