Идея коротко
После входа у сделки есть риск: расстояние до стопа, умноженное на размер позиции. Jack Corsellis предлагает как можно раньше сделать этот риск нулевым. Для этого часть позиции продаётся лимитным ордером на уровне, где зафиксированная прибыль равна убытку, который даст остаток, если цена вернётся к стопу.
Уровни у автора три: половина позиции на 1R, треть на 2R или четверть на 3R. R здесь расстояние от входа до стопа. Стоп остатка не двигается. Если после частичной продажи цена дойдёт до стопа, сделка закроется примерно в ноль.
Пример автора. Покупка 3000 акций по 8.84, стоп 8.57, риск 27 центов на акцию или $810 на позицию. Лимит на продажу 1000 акций по 9.38 (два R) фиксирует $540. У оставшихся 2000 акций риск те же $540. Прибыль минус риск остатка равна нулю, сделка «прокатана бесплатно».
Джек показывает это как часть метода Qullamaggie. У самого Qullamaggie в пересказе правило грубее: продать треть или половину через 3-5 дней и перенести стоп в безубыток. Ниже блок, который встраивается в любую стратегию со стопом, и пример на карточке School Run.
Почему это может работать
Автор объясняет free roll управлением риском, а не поиском прибыли. По его словам, это особенно важно в неспокойном рынке. Если зафиксировать часть позиции на первом импульсе после сжатия, сделка перестаёт угрожать счёту, а остаток может идти дальше по трейлингу.
Второй довод касается поведения. Автор хочет как можно раньше оказаться в позиции, где проиграть уже нельзя, и спокойно пересидеть откат после первого импульса. Эффект на дисциплину реален, но в бэктесте он не виден.
Цена за это понятна: часть позиции закрывается рано и не участвует в редких крупных движениях. Для стратегий с низкой долей прибыльных сделок это может снижать итог. Автор такой проверки не показывает, статистики по free roll отдельно в видео нет.
Правила
Блок free roll (автор)
// вход, стоп и основной выход берутся из стратегии, в которую встраивается блок
R = |EntryPrice - StopLoss| // автор: риск на акцию или контракт
m = 1, 2 или 3 // автор: кратность R
f = 1 / (m + 1) // автор: 1/2 на 1R, 1/3 на 2R, 1/4 на 3R
// Finetiq: формула как обобщение трёх уровней
Qty0 = размер позиции на входе
QtyFR = round_up(Qty0 * f, шаг объёма) // Finetiq: округляем вверх, иначе прибыль не покроет риск остатка
// лонг, сразу после исполнения входа
FR_Price = EntryPrice + m * R
SELL QtyFR LIMIT at FR_Price // автор: sell limit сразу после входа
SELL (текущий объём) STOP at StopLoss // стоп на всю оставшуюся позицию, уровень не меняется
// проверка нулевого риска
QtyFR * m * R >= (Qty0 - QtyFR) * R
// шорт зеркально: BUY QtyFR LIMIT at EntryPrice - m * R
// если стоп задет раньше цели, частичного выхода нет: убыток 1R на всю позицию
Уточнения автора
// от подтянутого стопа: если стоп поднят до NewStop, R' = EntryPrice - NewStop,
// цель опускается до EntryPrice + m * R' (автор)
// у круглого числа: цель ставится чуть ниже круглого уровня.
// Нужная цель T задаёт стоп: NewStop = EntryPrice - (T - EntryPrice) / m (автор)
// у локального максимума базы: цель ниже максимума, там ждёт продавец (автор)
// после free roll остаток ведёт выход основной стратегии
// у автора это первое закрытие ниже EMA 10 или EMA 21
Вариант Qullamaggie: по времени и в безубыток
// правило Qullamaggie в пересказе автора
IF BarsSinceEntry >= 3 AND позиция в плюсе // автор: через 3-5 дней; Finetiq: день 3 и условие «в плюсе»
SELL 1/3 (или 1/2) AT NEXT BAR OPEN
StopLoss = EntryPrice // автор: стоп остатка в безубыток
Пример: School Run с free roll
Карточка school-run: покупка стоп-ордером выше максимума второй 15-минутной свечи, стоп на её минимуме, цель в два стопа, выход до конца сессии. Добавляем free roll на 1R.
Qty0 = 2 контракта // Finetiq: минимум, чтобы продать половину
R = EntryPrice - Bar2.Low
SELL 1 LIMIT at EntryPrice + 1 * R // free roll: половина на 1R
SELL 1 LIMIT at EntryPrice + 2 * R // цель карточки для второй половины
SELL (текущий объём) STOP at Bar2.Low // до free roll 2 контракта, после 1
EXIT остаток at SessionClose - 5 мин // из карточки School Run
// исходы в R от риска всей позиции: -1 до free roll; 0, если после free roll остаток ушёл на стоп;
// +1.5, если остаток дошёл до цели. Без free roll цель дала бы +2
Параметры
| Параметр | Значение | Откуда |
|---|---|---|
| Доля и уровень | 1/2 на 1R, 1/3 на 2R, 1/4 на 3R | автор |
| Тип ордера | sell limit сразу после входа | автор |
| Стоп остатка | без изменений | автор |
| Опорный стоп | начальный или подтянутый | автор |
| Цель у сопротивления | ниже круглого числа или локального максимума | автор |
| Выход остатка | закрытие ниже EMA 10 или EMA 21 | автор |
| Вариант по времени | 1/3-1/2 через 3-5 дней, стоп в безубыток | автор, правило Qullamaggie |
| День в варианте по времени | 3 | Finetiq |
| Округление доли | вверх до шага объёма | Finetiq |
| Пример: минимальный объём | 2 контракта | Finetiq |
Что проверить
- Free roll против полной позиции. Одна и та же стратегия: вся позиция до основного выхода, free roll на 1R, 2R и 3R, вариант Qullamaggie с безубытком через 3 дня. Сравнивайте среднюю сделку в R, итог, максимальную просадку и самую длинную серию убытков.
- Хвост распределения. Посчитайте, какую долю итога дают лучшие 5% сделок с free roll и без него. Если стратегия живёт на редких крупных трендах, ранняя продажа части может съесть больше, чем экономит на стопах.
- Сделки «в ноль». Доля сделок, где сработал free roll, а остаток ушёл на стоп. Если их много, сравните базовый блок, где стоп остатка стоит на месте, с трейлингом остатка (стоп подтягивается под EMA 10 или EMA 21 на каждом закрытом баре) и с переносом стопа остатка в безубыток.
- Издержки и проскальзывание. Три ордера вместо двух, комиссия на каждый. Проскальзывание на стопе делает «ноль» отрицательным. На внутридневных сделках с узким стопом это заметная часть R.
- Гэпы через стоп. Сделки на дневных барах акций, где открытие ниже стопа. Автор сам говорит, что нулевой риск условен. Посчитайте средний убыток таких сделок в R.
- Одна свеча задела и цель, и стоп. Посчитайте, как часто это случается на вашем таймфрейме. Результат теста зависит от того, какой уровень тестер считает первым.
- Округление объёма. На маленьком счёте или с 1 контрактом долю не разделить. Посчитайте, сколько сделок прошло без free roll из-за минимального объёма.
Особенности платформ
TradingView (Pine Script)
- Частичный выход:
strategy.exit("FR", "L", qty_percent = 50, limit = frPrice, stop = stopLoss)и второйstrategy.exit("Rest", "L", stop = stopLoss)для остатка. Для трети задайтеqty_percentс округлением вверх, иначе прибыль не покроет риск. - С позицией в 1 контракт половину не продать. Входите количеством, кратным 2, 3 или 4, через параметр
qtyвstrategy.entry. - Если лимит и стоп задеты одной свечой, порядок неизвестен.
use_bar_magnifier = true(платные планы) или тест на младшем таймфрейме. - Цена входа для расчёта R:
strategy.position_avg_price. При доборе позиции она меняется, и R нужно зафиксировать на первом входе.
MultiCharts и TradeStation (EasyLanguage)
- Частичный выход задаётся количеством:
Sell ("FR") 1000 shares total next bar at FR_Price limit. Без словаtotalколичество относится к каждому входу отдельно, и при нескольких входах продастся больше, чем нужно. - Лимит живёт один бар. Отправляйте его на каждом баре, пока
CurrentShares(илиCurrentContracts) равен размеру на входе. - Стоп на остаток без количества:
Sell ("SL") next bar at StopLoss stopзакрывает всё, что осталось. SetProfitTargetиSetStopLossработают на всю позицию или на контракт в деньгах, частичную цель ими не задать. Для порядка исполнения внутри бара нужны Look-Inside-Bar Backtesting или Bar Magnifier.
MetaTrader 5 (MQL5)
- На неттинговом счёте одна позиция на символ. Частичный выход это встречная сделка меньшего объёма: отложенный
SellLimitнаQtyFRуменьшит лонг при исполнении. SL и TP позиции относятся ко всему оставшемуся объёму. - На хеджинговом счёте встречный ордер откроет отдельный шорт, и получится лок. Частичное закрытие делается по тикету:
CTrade::PositionClosePartialпо рынку, когда цена дошла до уровня. Либо сразу открыть две-четыре позиции и дать одной из них TP на уровне free roll. - TP позиции закрывает её целиком, частичной цели на сервере брокера нет. Без отдельной позиции free roll исполняется советником, и в момент разрыва связи он не сработает.
- Объём округляется по
SYMBOL_VOLUME_STEPиSYMBOL_VOLUME_MIN. С 0.01 лота долю не выделить, минимальная позиция для трети 0.03.
Где идея может сломаться
- «Нулевой риск» гипотетический. Гэп через стоп, проскальзывание и комиссии дают убыток и после free roll, автор сам об этом предупреждает.
- Статистики по блоку автор не приводит. Цифры в видео это разборы отдельных сделок. Ни одна из них не отвечает на вопрос, выше ли итог с free roll, чем без него.
- Метод показан на акциях с сильным моментумом и узким стопом. На рынке с широким стопом цель 1-3R может достигаться редко, и блок почти не будет срабатывать.
- В стратегиях с долей прибыльных 20-30% итог держится на немногих больших сделках. Продажа трети или половины на первом импульсе режет именно их.
- На внутридневных таймфреймах цель в 1R часто достигается и возвращается, и много сделок заканчивается в ноль с тремя комиссиями.
- Польза для дисциплины реальна, но в бэктесте её не измерить. Решение нужно принимать по цифрам теста, а не по ощущению безопасности.