Михаил Королюк - Как правильно поставить стоп-лосс
Правильное определение стоп-лосса — задача не тривиальная. Смысл этого стопа понятен — огран убытков определенным значением и, таким образом, снижение риска разорения. При этом необход крайностями:
1. Постановкой стопа слишком далеко, что делает его неэффективным.
2. Слишком близким размещением, приводящим к чрезмерно частому срабатыванию стопа и снижа торговой системы.
Обратите внимание, что задачами стоп-лосса является не уменьшение или, тем более, предотвраще ограничение их максимального размера. Потери на рынке неизбежны и являются частью торгового максимального размера убытков стоп-лосс выполняет еще одну важную задачу психологического п определенной точки выхода из позиции, которая оказалась убыточной, способно значительно умен перегрузки у трейдера. Понимание того, что убытки заранее лимитированы некоторым уровнем, а і положительное математическое ожидание прибыли, существенно улучшает трейдерскую дисциплиі
К определению размера стоп-лосса необходимо переходить после того, как на руках уже имеется т демонстрирующая хорошие результаты. Не стоит ждать от стоп-лосса чудес в виде значительного у задача, повторюсь, в уменьшении рисков.
Для определения оптимального стоп-лосса необходимо исследовать рынок, иначе говоря, стоп-лосс Недопустим субъективный подход, когда трейдер определяет стоп-лосс исходя из того, каким капи долю от этого капитала он может относительно безболезненно потерять в ходе одной сделки. Рынк готовность к потерям той или иной степени тяжести, оптимальный стоп-лосс зависит только от хара после исследования рынка величина оптимального стоп-лосса окажется слишком велика для вас — торговать этот рынок, чем торговать без стоп-лосса или с неправильно поставленным стоп-лоссом.
Ниже мы попробуем описать возможную последовательность действий и логику рассуждений поста лосса на примере своей торговой системы.
Итак, у нас есть почти приличная, как мы считаем, торговая система. Для того чтобы она стала сов иметь стоп-лосс. Помимо всего прочего, это будет способствовать моему спокойному ночному сну...
Мы предпочитаем писать стопы сами, а не пользоваться встроенными в Метасток. Одна из причин -полагаем, что на нашем малоликвидном с технической точки зрения рынке для увеличения эффект пользоваться для получения сигналов торговых систем ценами закрытия, открытия, максимума или носят случайный характер. Для того чтобы представить отличие нашего рынка от «нормального» за весь объем РТС за день — это примерно 15-20 секунд торговли акциями Microsoft. Понятно, что прі рынке около минимальных, максимальных цен на открытии торгов и на их закрытии проходят деся эти цены носят не случайный, а закономерный характер, адекватно отражая происходившие на ры корректно использовать данные показатели в техническом анализе. Увы, у нас такой рынок будет і мы нашли, состоит в использовании для получения сигналов средней цены за период (день, час). С цена более верно отражает динамику состояния рынка, нежели используемые стандартно цены отк максимума.
Для хранения средней цены акции за период мы используем в Downloader столбец, зарезервирован Interest1. Так как в этот столбец можно вносить только целые значения, то, зачастую, приходится с на некий коэффициент, равный 10, 100, 1000 и т. д., для приведения к целым значениям, а потом индикатор, производящий обратное преобразование. Так, для хранения средних значений сделок f полученное из отчетов о торгах значение на 10 000, а потом для обращения к данным используем представляющий из себя следующую конструкцию:
Avg.Price: =OI /10000;
Avg.Price
К сожалению (или к счастью), Метасток не позволяет использовать во встроенных стопах никаких : закрытия, минимума или максимума. Поэтому для использования в стоп-лоссе средней цены прихо, лосса самостоятельно. На самом деле это не только не трудно, но еще и полезно — понимание того позволяет в последующем подходить творчески к его модификации. В принципе описанный ниже п качестве стопа значение любого индикатора, а не только средней цены за период.
Логику составления стоп-лосса на языке Метастока можно представить так:
1. Сначала надо выделить те участки цен, которые приходятся на открытые позиции, то есть те фр которых в принципе возможно срабатывание стоп-лосса. В отличии от языка продуктов фирмы Om SuperChart и д. р.), Метасток не умеет сам определять текущее состояние позиций, что является су языка, затрудняющим создание торговых стратегий. Мы определяем текущую позицию, сравнивая после последнего сигнала на открытие позиций и последнего сигнала на закрытие позиций:
Enter.trade: = условия открытия позиций;
Close.trade: = условия закрытия позиций;
Position: = HighestBars(Close.trade) > HighestBars(Enter.trade);
Теперь мы имеем в своем распоряжении функцию Position, которая возвращает значение 1 при отк при закрытой.
2. Следующий шаг состоит в определении «опорной» цены, для которой отсчитывается значение ст такой «опорной» цены используется цена открытия позиции. Выглядит это так:
Open.Price: = ValueWhen (1, Position = 1 and ref (Position, 81) = 0, AvgPrice);
Функция Open.Price возвращает значение цены (в данном случае — средней цены на данном баре) графика бара, для которого выполняется следующее условие — текущая позиция открыта (Position баре была закрыта (ref (Position, -1) = 0).
3. Необходимо учесть комиссию, которая добавляется к «опорной» цене при длинных позициях и в позициях (далее пример для длинных позиций):
Full.Price: = Open.Price * (100 + значение комиссии в %)/100;
4. Теперь можно задать условие, при котором происходит срабатывание стоп-лосса, а именно прох (средней ценой за период) ниже «опорной» цены на некоторое количество процентов (для длинны
AvgPrice < Full.Price * (( 100 - opt1)/100),
где opt1 — это величина стоп-лосса в процентах.
Итого, целиком конструкция стоп-лосса для длинных позиций выглядит следующим образом:
Enter.trade: = условия открытия длинных позиций;
Close.trade: = условия закрытия длинных позиций;
Position:= HighestBars (Close.trade) >= HighestBars (Enter.trade);
Open.Price: = ValueWhen (1, Position = 1 and ref (Position, 81) = 0, AvgPrice);
Full.Price: = Open.Price *(100 + значение комиссии в %)/100;
AvgPrice < Full.Price *((100 - opt1) / 100)
Для коротких позиций так:
Enter.trade: = условия открытия коротких позиций ;
Close.trade: = условия закрытия коротких позиций ;
Position: = HighestBars (Close.trade) >= HighestBars (Enter.trade);
Open.Price: = ValueWhen (1, Position = 1 and ref (Position, 81) = 0, AvgPrice);
Full.Price: = Open.Price *(100 - значение комиссии в %)/100;
AvgPrice > Full.Price *((100 - opt1)/100)
Заменяя AvgPrice на любое другое значение — Close, Open, High, Low или даже значение какого-ни привязать стоп-лосс к любому другому показателю.
Далее, после внесения данного фрагмента кода в условия закрытия сделки в окне System Editor мс За шаг при оптимизации лучше взять значение в один процент.
После проведения оптимизации начинается самое важное — анализ полученных результатов.
Для подготовки данных к анализу мы используем набор макросов в среде Excel, позволяющий авто важных показателей доходности и риска системы на основании результатов тестирования. Данный Test Analyser свободно доступен на сайте: .
В качестве примера анализа используем результаты тестирования стоп-лосса для нашей торговой с часовым данным EESR в РТСе (комиссия 0.8 %, только лонг, открытие позиций на зыкрытии
Наиболее важными показателями из представленных здесь мы считаем среднемесячную доходност среднемесячного дохода и риска (выделены в таблице жирным шрифтом). Это то, на что можно с о рассчитывать при использовании системы в течение достаточно длительного периода времени. Ост то, из чего складывается эта доходность, позволяя выявить важные особенности торговых систем.
Итак, собственно анализ результатов. Сначала отсекаем одну крайность — слишком близкую поста таблице следует, что в эту категорию попадают 1 %, 2 % и 3 % стоп-лоссы. Показатели этих систе сравнении с системами с более далеко стоящими стопами, но и по сравнению с исходной системой уменьшают средний и максимальный размеры убыточных сделок, однако за счет резкого увеличен сделок имеют гораздо худшие показатели средней месячной доходности, математического ожидани соотношения доход/риск. Кроме того, существенно возрастает количество убыточных месяцев и си торговать.
Иначе говоря, близко расположенные к точке открытия позиций стоп-лоссы часто закрывают потен небольшим убытком, и, увеличивая количество сделок за счет последующего переоткрытия позици счет вашего брокера дополнительные суммы комиссионных.
Психологически комфортно торговать два вида стоп-лоссов — близкие, из-за маленького размера у дальние, из-за редкой реализации этих стопов. Именно с этим связано иногда желание или прибли глаз долой. Дальние стопы и отказ от стопов мы обсудим чуть ниже, вопрос же о приближении стог наболевший— не реже раза в месяц приходится рассказывать анекдот о бабушке летчика, просивш чтобы не разбиться...
Полученные при тестировании данные доказывают, что слишком близко поставленный стоп-лосс н торговли, но и значительно их ухудшает. Лучше торговать совсем без стоп-лосса или с очень далек чем с чересчур близкой его постановкой.
Отбросив 1-3%-е стоп-лоссы как слишком близко поставленные, снова рассматриваем результаты ищем наиболее доходные и наименее рискованные варианты. С этой точки зрения наиболее хорош лоссы. У них максимальная из всех помесячная доходность и максимальное соотношение доход/рис математическое ожидание прибыли от сделки. Кстати, в Метастоке по результатам тестирования он в отчете, претендуя на вхождение в состав торговой системы. Это одна из ловушек системной торг бы не одно «но» — смотрим самую первую строчку в таблице, — эти стоп-лоссы очень редки. Увы, называется подгонкой под исторические данные. Эти стоп-лоссы встречались слишком редко, чтоб рассматривать как достоверные.
Вполне возможно, что по мере накопления статистики появится возможность еще раз вернуться к з стоп-лоссы смогут доказать свое право на существование в составе торговых систем — но не сейча
Вообще говоря, существует точка зрения, что стоп-лоссы должны быть очень широкими (придуман — ruin-stop). В отличие от стоп-лосса, который, как следует из названия, ограничивает убытки, даі только при угрозе разорения. Обычно это означает десятки процентов просадки счета. Есть даже п использования такой торговой тактики. Так, легендарный Ларри Вильямс увеличил свой счет за год определенным правилам в основном внутри дня против тренда и не используя стоп-лоссов. Справе что столь агрессивный стиль торговли сопровождается все-таки чрезмерно большими рисками — на следующий год он разорился.
Заговорив о разных точках зрения на стоп-лосс, нельзя не упомянуть и наиболее радикальную из н и трейдер Виктор Нидерхоффер писал:
«Я никогда не использую стопы. Комбинация различных выходов обеспечивает мне значительное г
Достаточно часто без стоп-лоссов торгуют начинающие трейдеры, не понимающие, что убытки на р возможность заниматься этим бизнесом. Однако для профессионала такая точка зрения достаточно трейдерский мир с увлечением заключал пари на срок, который удастся продержаться Нидерхоффі Справедливости ради следует указать, что Виктору удалось продержаться на рынке дольше, чем пр все-таки он был талантливым трейдером, однако общий итог оказался неутешительным — потеря д полное разорение фонда, управляющим которого он был.
Таким образом, наш выбор ограничивается значениями стоп-лоссов от 4 до 6 %. По большому счет одинаковый результат, а те тонкие различия, что есть между ними, сформированы расхождениями нашей точки зрения, опять-таки недостоверно. Поэтому на этой стадии, после отсечения двух край становится скорее вопросом психологического комфорта. Мы выбираем более дальний стоп-лосс, р реже, чем 4 и 5 %-е стоп-лоссы, однако средний и максимальный размеры убыточных сделок у них дродаун даже меньше. Психологически легче получать стоп-лосс чуть большего размера, но реже. потенциальную угрозу потери в будущем эффективности стоп-лосса из-за изменения характера ры наибольшую опасность представляет собой все-таки чрезмерно близкое расположение стопов к цеі и 5%-е стоп-лоссы могут потерять свою эффективность вследствие изменения характера рынка раі
Небольшой пассаж о структуре убыточных сделок. В начале данной статьи мы написали, что одной ограничение максимального размера убытков. При этом может на первый взгляд показаться странн в 6 % максимальный размер отфиксированного убытка составляет более 11 %. Таким образом, мож стоп-лосс не выполняет своей задачи и не предотвращает больших убытков. Это, естественно, не т жестко ограничить убытки на уровне своей установки по причине возможных гэпов, сразу проскакі через установленный уровень. Поэтому, де-факто, стоп-лосс устанавливается на подступах к болы
До сих пор мы разбирали объективный стоп-лосс фиксированной величины. В формуле на языке М величина задавалась значением opt1:
AvgPrice < Full.Price . ((100 . opt1)/100).
Однако существует возможность (и в этом одна из прелестей написания стопов самостоятельно, вм в программы заготовок) заменить opt1 более сложной конструкцией.
Понятно, что величина стоп-лосса зависит во многом от средней волатильности рынка. Стоп-лосс д того, что можно назвать обычным колебанием цен, и реагировать именно на настоящее движение п подобно описанному выше, позволяет методом подбора значений привязать стоп-лосс к средней во тестирования. Однако никто не может запретить нам и более тонкой настройки, когда стоп-лосс пр волатильности за весь период тестирования, а к значению волатильности за существенно более ко осуществить переход к объективному адаптивному стоп-лоссу. Слово объективный означает, что ве на основании характеристик рынка, а адаптивный — что эта величина может меняться в зависимос характеристик рынка.
Безусловно, такая адаптация стоп-лосса требует дополнительного исследования рынка — и не обяз Можно предложить несколько вариантов реализации адаптивного стоп-лосса.
Стоп-лосс, адаптивный по волатильности
В качестве меры текущей волатильности рынка можно взять значение среднего торгового диапазон стандартное отклонение цен (Standart Deviation) или стандартную ошибку (Standart Error)2 за опре умножать на некий коэффициент и вычитать полученное значение от цены открытия позиции. На я адаптивного стоп-лосса выглядят так:
AvgPrice < Full.Price - optl * ATR(opt2)
или
AvgPrice < Full.Price - opt1 * stdev (close, opt2)
или
AvgPrice < Full.Price - opt1 * ste(close, opt2)
Возможны и иные варианты определения волатильности. Мы, например, предпочитаем стандартное логарифма соотношения текущей цены и цены n2 периодов назад:
Std(Log(Close/Ref(Close,8n2)),n1)
По наблюдениям Чака Лебо (Chuck LeBeau), в реальной практике можно обнаружить, что проблемы стопом начинают возникать тогда, когда краткосрочная рыночная волатильность становится необы могут быть выбиты случайным движением. Для устранения этих ложных срабатываний стопов Лебс краткосрочную рыночную волатильность (3-4 дня), так и долгосрочную (15-20 дней) и устанавлив значения волатильности, которое на данный момент оказалось наибольшим. Это позволяет стопам то же время предотвращает ложные срабатывания стопов после нескольких необычайно спокойных
Стоп-лосс, адаптивный к уровням сопротивления и поддержки.
Есть определенная логика в том, чтобы распологать стоп-лоссы на пробитие важных уровней подде хорошо различимых графических паттернов — треугольников, каналов, линий тренда. В случае прі дальнейшее движение цен против позиции является логическим обоснованием необходимости закр

В то же время есть одна тонкость — не следует, как правило, располагать стоп-лоссы точно на хор несколько сдвигать их в ту или иную сторону. Достаточно часто на хорошо видимых уровнях распо количество ордеров, и крупные игроки порой специально играют на пробитие таких уровней, прові позиций мелких игроков. Обычно графически это проявляется картиной «прокола» линии поддерж результате выхода мелких игроков из позиций и также быстро потом возвращается в предыдущий ¦ скупки крупными игроками подешевевших в результате успешной игры на понижение акций. На тр называется «стряхивание с позиций».
Минусом такого стоп-лосса является трудность его формализации на языках программ техническог сложности с его тестированием. В качестве частичного выхода можем предложить к использованию определяющих сразу несколько уровней поддержки и сопротивления.
Индикатор уровней сопротивления:
Pds: = Input( «Periods»,2,25,3);
B: = Input(«Field: 1 = Close, 2 = Open, 3 = High, 4 = Low», 1, 4, 1);
Z: = If(B = 1, CLOSE, If(B=2, OPEN, If(B=3, HIGH, If(B=4, LOW, 0))));
R1; R2; R3; R4; R5; R6
Индикатор уровней поддержки:
pds: = Input(«Periods»,2,25,7);
B: = Input(«Field: 1 = Close, 2 = Open, 3 = High, 4 = Low», 1,4,1);
Z:=If(B = 1,CLOSE,If(B=2,OPEN,If(B=3,HIGH,If(B=4,LOW, 0))));
s1: = ValueWhen( 1, Ref( Z, -pds) = LLV( Z, 2 * pds + 1), Ref( Z, -pds)) AND Ref( Z, -pds) <> pds));
s2: = ValueWhen( 2, Ref( Z, -pds) = LLV( Z, 2 * pds + 1), Ref( Z, -pds)) AND Ref( Z, -pds) <> pds));
s3: = ValueWhen( 3, Ref( Z, -pds) = LLV( Z, 2 * pds + 1), Ref( Z, -pds)) AND Ref( Z, -pds) <> pds));
s4: = ValueWhen( 4, Ref( Z, -pds) = LLV( Z, 2 * pds + 1), Ref( Z, -pds)) AND Ref( Z, -pds) <> pds));
s5: = ValueWhen( 5, Ref( Z, -pds) = LLV( Z, 2 * pds + 1), Ref( Z, -pds)) AND Ref( Z, -pds) <> pds));
s6: = ValueWhen( 6, Ref( Z, -pds) = LLV( Z, 2 * pds + 1), Ref( Z, -pds)) AND Ref( Z, -pds) <> pds));
S1; S2; S3; S4; S5; S6
Это результат проведенной нами модификации опубликованных в 1998 году в майском номере TAS (Mel Widner) для языка Метастока. При модификации данных индикаторов мы избавились от функи Метастоке ОЧЕНЬ медленно, добавили возможность изменения цен, для которых рассчитывается ур варианте была возможность расчета уровней только для цен закрытия), и возможность изменения первоначальном варианте уровни рассчитывались только для 5-дневных экстремумов).
Кроме того, мы несколько изменили алгоритм определения уровня. В первоначальном варианте фо подряд цены, например, закрытия были равны между собой и образовывали локальный максимум, уровня с одинаковыми значениями. Нам показалось более логичным предположить, что, в такой си с одним и тем же уровнем, который держит цены два дня подряд. Мы ввели дополнительное услови
AND Ref( Z, -pds) <> Ref( Z, -pds - 1)
В нашем варианте индикаторов в такой ситуации образуется только один уровень, берущий свое на ценой.
Результат применения индикатора уровней поддержки (необходимо выбрать dotted style отображен представлен на рисунке.
Изменяя периоды в индикаторе, можно изменять важность уровня — чем выше значение периода, ¦ наоборот.
Стоп-лосс канала
В качестве стоп-лосса можно использовать минимальную или максимальную цену за определенный называется стоп-лосс канала. Он очень адаптивен к текущим рыночным условиям, поскольку он ме волатильности. Стоп-лосс канала размещается на относительном удалении от цен в периоды высок тренда и приближается к ценам в периоды низкой волатильности и снижения силы тренда. В основ логика — мы знаем, что прорыв важных максимумов и минимумов часто является сигналом разворо размещеный на уровне максимумов или минимумов, является обоснованным с точки зрения технич
Для длинных позиций стоп-лосс канала будет выглядеть так:
Close < LLV( Close, optl)
Для коротких позиций так:
Close > HHV( Close, optl),
где optl — длина канала.
У этого стопа есть свои недостатки. В период сильного тренда он может быть размещен слишком да С другой стороны, на консолидирующемся рынке с низкой волатильностью такой стоп может, наоб<
Естественно, перечисленными выше вариантами отнюдь не исчерпывается адаптивность стоп-лоссо изменение размещения стоп-лоссов в зависимости от сроков открытия позиции. По наблюдениям у смысл в первые дни после открытия позиции удалять стоп-лосс от точки открытия, с тем чтобы дат цен, постепенно приближая стоп по мере прохождения определенного времени.
Наши возможности по адаптации стоп-лоссов ограничены только нашей фантазией...
Вообще говоря, эффективность стоп-лоссов во многом зависит от эффективности торговой системы стоп-лосс существенно улучшает доходность торговой системы, то это, скорее всего, указывает на выходов. В идеале же, при хорошо построенной торговой системе правильно подобранный стоп-ло заметного влияния на показатели доходности и риска уже готовой системы. Таким образом, он игр; обороны», которой приходится вступать в действие достаточно редко, но которую, несмотря на ред иметь в «составе команды».
В заключение хочется подчеркнуть ряд положений, которые кажутся нам особенно важными:
1. Стоп-лосс должен быть, его не может не быть.
2. Стоп-лосс должен быть объективным, основанным на изучении особенностей рынка.
3. При анализе результатов тестирования стоп-лосса недостаточно оценивать только изменения до проводить комплексный анализ, включающий в себя показатели доходности и риска системы, а так лосса.
Содержание раздела