1. œÓÙÂÒÒËÓ̇θÌ˚È ÊÛ̇Î
Индикатор тренда
на основе прорыва
динамического
ценового канала
ÓÌÒÚ‡ÌÚËÌ ÓÔ˚ÍËÌ
konkop@mail.ur.ru
«Бывает нечто, о чем говорят: «смотри, вот это новое»;
но это было уже в веках, бывших прежде нас».
Книга Екклезиаста (1), 11.
Как это ни странно звучит, но при всем своем разнообразии трейдера, люди с разными торговыми предпочтениями и лич
рынки оказываются удивительно однообразны, если смотреть ными чертами характера будут порождать все новые и новые
на них под определенным углом зрения. Так, с точки зрения методы распознавания трендов. Ибо, воистину: «Вкус не
«торговца трендов», на рынке есть только тренды и… трен указчик: кто любит арбуз, а кто — свиной хрящик…» Один
ды. Неважно, растущие, падающие или боковые, но только свято верит в Скользящие Средние, другому по нраву ADX,
тренды, и больше ничего. И несмотря на это, идентификато третий не признает ничего кроме RSI (который, кстати,
ров тренда существует великое множество (хотя, казалось тоже хороший трендовый индикатор). Остается только од
бы, найди самый лучший и пользуйся только им). Но в том то но: выбрать то, что больше по душе, и не метаться в беско
и дело, что идеального индикатора тренда не существует. нечных поисках блестящего и пузатого, как тульский само
И до тех пор, пока на рынке присутствует больше одного вар, Holy Grail.
Н
иже я хочу представить один из способов называемые коррекциями, более сложны для анализа. Далеко
распознавания рыночных трендов, который не всегда можно просто и однозначно ответить на вопрос, ког-
лично мне внушает достаточное доверие, да коррекция завершается или перерастает в тренд противопо-
хотя, может быть, и повторяет давно извест- ложного направления.
ные прописные истины, просто несколько в На рис. 1 представлена типичная картина развития трендов.
ином свете. Рост, сопровождаемый коррекциями, слом тенденции и после-
дующее развитие нисходящего тренда. В классической интер-
Тренды претации первый сигнал смены направления восходящего
тренда появляется в точке А, когда цены достигли более низких
Даже начинающие трейдеры хорошо знакомы с основным де- значений, чем на предыдущей впадине. Определение момента,
визом трендовой торговли: «Торгуйте всегда в направлении когда коррекция к основной тенденции перерастает в смену на-
тренда, давайте прибыли течь и обрезайте убытки». правления тренда, требует внимательного анализа данных и в
Однако этот тезис вступает в некоторое противоречие с са- некоторых случаях приближается более к искусству, нежели к
мим определением тренда. Как известно, тренды не являются сухому техническому анализу.
(чаще всего) прямыми линиями. Это очередности подъемов и
Прорыв динамического
спадов. При этом на восходящем тренде каждые последующие
ценового канала
пик или впадина должны быть выше предыдущих. Соответст-
венно, на нисходящих трендах каждый последующий мини-
мум или максимум цен должны быть ниже предыдущих. Дви- Свойство трендов формировать повышающиеся и понижаю-
жения цены в направлении основной тенденции не вызывают щиеся последовательности пиков и впадин эффективно экс-
каких-либо противоречий для понимания. А вот движения плуатируется в так называемых Пробойных торговых систе-
против основной тенденции, но в рамках общего направления, мах (Break-Out Systems). В этом случае сигналом к покупке
—Ó‚ÂÏÂÌÌ˚È ÚÂȉËÌ„ n π 4 2001
24
2. Тåõíè÷åñêèé àíàëèç www.m-trading.ru
служит превышение ценами предыду-
щего максимума за определенный пери-
од, сигналом к продаже, в свою очередь,
движение цен ниже предыдущего ми-
нимума за определенный период.
Обычно в пробойных системах исполь-
зуется фиксированная длина горизон-
тального ценового канала, в котором
отслеживаются пики и впадины. При
этом длина канала может быть самой
различной и зависит от множества фак-
торов, таких как временной масштаб,
волатильность, ликвидность рынка
и т. д. Несмотря на свою «привязан-
ность» к горизонтальному ценовому ка-
налу, пробойные торговые системы от-
носятся к классу трендовых (прорыв це-
нового канала сигнализирует о
возникновении нового тренда). Однако
именно в этом и кроется основное про-
–ËÒ. 1. √‡ÙËÍ –¿Œ ≈›— –ÓÒÒËË (Ãì¡), ̉ÂθÌ˚ ‰‡ÌÌ˚Â. Õ‡ ‚ÓÒıÓ‰ˇ˘ÂÏ ÚẨÂ, ̇˜‡‚¯ÂÏÒˇ
тиворечие подобных систем. Так как ‚ ÓÍÚˇ·Â 1998 „Ó‰‡, ıÓÓ¯Ó ‚ˉÌ˚ ˜ÂÚ˚ ÍÓÂ͈ËÓÌÌ˚ı ‰‚ËÊÂÌˡ. œË ˝ÚÓÏ Í‡Ê‰˚È ÔÓÒÎÂ‰Û˛-
длина ценового канала является вели- ˘ËÈ Ï‡ÍÒËÏÛÏ Ë ÏËÌËÏÛÏ, ‰ÓÒÚË„ÌÛÚ˚È ˆÂ̇ÏË, Ó͇Á˚‚‡ÎÒˇ ‚˚¯Â Ô‰˚‰Û˘Â„Ó. ¬ ˲Π2000 „Ó‰‡
ÔÓÒÚÛÔËÎ Ô‚˚È Ò˄̇Π‡Á‚ÓÓÚ‡ ‚ÓÒıÓ‰ˇ˘ÂÈ ÚẨÂ̈ËË (ˆÂÌ˚ ‚ ÚӘ͠¿ Ó͇Á‡ÎËÒ¸ ÌËÊ Ô‰˚-
чиной постоянной, он как рамка дви-
‰Û˘Â„Ó ÏËÌËÏÛχ). “ẨÂÌˆËˇ ÒÏÂÌË· ̇ԇ‚ÎÂÌË ̇ ÌËÒıÓ‰ˇ˘Û˛. “‡Í Í‡Í ˆÂÌ˚ ‚ ÚӘ͠— ÌÂ
жется вдоль ценового ряда, включая в Ô‚˚ÒËÎË Ô‰˚‰Û˘ËÈ Ï‡ÍÒËÏÛÏ ‚ ÚӘ͠¬, ÔÓÒΉÌ ‰‚ËÊÂÌË ˆÂÌ ÓÒÚ‡ÂÚÒˇ ‚ ‡Ï͇ı ÍÓÂÍ-
ˆËË Í ÌËÒıÓ‰ˇ˘ÂÏÛ ÚẨÛ
себя значительный фрагмент прошлых
колебаний цен. При этом часто возни-
кает ситуация, когда при смене направ- На рис. 2 изображена схема действия период восходящего тренда, поэтому
ления основной тенденции в характери- Трендового индикатора прорыва дина- цена в этой точке не учитывается для
стиках нового тренда еще некоторое мического канала. Во время восходяще- расчета индикатора. Смена направле-
время учитываются ценовые движения го тренда индикатор отстоит на опреде- ния тренда фиксируется после пересе-
предыдущего тренда (прошлые макси- ленном расстоянии от каждого нового чения ценой индикатора (сигнал разво-
мумы или минимумы, которые уже не максимума, достигнутого ценами (H1, рота). С этого момента начинается от-
имеют отношения к новому тренду). H2). В точке H3 цены не превысили счет нового периода для ценового
В качестве альтернативы классическо- значение максимального пика за весь канала. При этом первое расчетное
му прорыву обычного ценового канала я
предлагаю использовать Трендовый ин-
дикатор прорыва динамического ценового
канала.
Принцип этого индикатора основан
на следующем: при возрастающем
тренде индикатор находится под гра-
фиком цен всегда на постоянном удале-
нии от максимального пика, достигну-
того ценами за расчетный период. При
снижающемся тренде, индикатор нахо-
дится над ценами, на постоянном уда-
лении от минимальной впадины за пе-
риод. То есть ширина ценового канала
задается не расстоянием между локаль-
ными максимумами и минимумами, а
величиной удаления индикатора от экс-
тремального пика или впадины теку-
щего тренда. При этом период ценово-
го канала для вычисления индикатора
увеличивается динамически, начиная с
момента пересечения ценами индика-
–ËÒ. 2. —ıÂχ ‡·ÓÚ˚ “ÂÌ‰Ó‚Ó„Ó Ë̉Ë͇ÚÓ‡ ÔÓ˚‚‡ ‰Ë̇Ï˘ÂÒÍÓ„Ó ˆÂÌÓ‚Ó„Ó Í‡Ì‡Î‡. »Ì‰Ë͇ÚÓ
тора. Такой подход исключает влияние
̇ıÓ‰ËÚÒˇ ̇ ÔÓÒÚÓˇÌÌÓÏ Û‰‡ÎÂÌËË ÓÚ Ï‡ÍÒËχθÌÓ„Ó ÔË͇ ËÎË ÏËÌËχθÌÓÈ ‚Ô‡‰ËÌ˚ Á‡ ‡Ò˜ÂÚ-
на индикатор цен из прошлого периода Ì˚È ÔÂËÓ‰. œÂËÓ‰ ˆÂÌÓ‚Ó„Ó Í‡Ì‡Î‡ ̇˜Ë̇ÂÚ ‰Ë̇Ï˘ÂÒÍË Û‚Â΢˂‡Ú¸Òˇ ÔÓÒΠÔÂÂÒ˜ÂÌˡ ˆÂ-
̇ÏË Ë̉Ë͇ÚÓ‡. œË ˝ÚÓÏ ‚ ‡Ò˜ÂÚ Ë̉Ë͇ÚÓ‡ ‚Íβ˜‡˛ÚÒˇ ÚÓθÍÓ Ï‡ÍÒËÏÛÏ˚ Ë ÏËÌËÏÛÏ˚, ‚ıÓ-
вычислений, которые использовались
‰ˇ˘Ë ‚ ÌÓ‚˚È ÔÂËÓ‰, Ë Ì ۘËÚ˚‚‡˛ÚÒˇ ‰‚ËÊÂÌˡ ˆÂÌ, ÓÚÌÓÒˇ˘ËÂÒˇ Í Ô‰˚‰Û˘ÂÏÛ ÚẨÛ
для идентификации предыдущих трен-
дов.
π 4 2001 n 25
—Ó‚ÂÏÂÌÌ˚È ÚÂȉËÌ„
3. œÓÙÂÒÒËÓ̇θÌ˚È ÊÛ̇Î
На рис. 3 хорошо видно, как такой
индикатор определяет тренды, фильт-
руя коррекции, не превышающие опре-
деленный процент, и «переключаясь»
только при действительной смене на-
правления основной тенденции. Но,
как и любой трендовый индикатор, на
участках рынка с боковыми движения-
ми он начинает выдавать ошибочные
торговые сигналы с небольшими убыт-
ками.
В приложении представлен код на
Easy Language для процентного Трендо-
вого индикатора прорыва динамичес-
кого ценового канала.
Адаптация индикатора
к волатильности рынка
Другим подходом в реализации Трендо-
–ËÒ. 3. √‡ÙËÍ –ÓÒÚÂÎÂÍÓÏ (Ãì¡), ‰Ì‚Ì˚ ‰‡ÌÌ˚Â. œÓˆÂÌÚÌ˚È “Ẩӂ˚È Ë̉Ë͇ÚÓ ÔÓ˚‚‡
вого индикатора прорыва динамическо-
‰Ë̇Ï˘ÂÒÍÓ„Ó ˆÂÌÓ‚Ó„Ó Í‡Ì‡Î‡ (¯ËË̇ ͇̇· ÒÓÒÚ‡‚ΡÂÚ 10 %). ƒÎˇ ̇„Ρ‰ÌÓÒÚË, ÒËÌËÏ ˆ‚ÂÚÓÏ
го ценового канала является его адапта-
ÔӉ҂˜ÂÌ˚ ‚ÓÒıÓ‰ˇ˘Ë ÚẨ˚, ÁÂÎÂÌ˚Ï ó ÌËÒıÓ‰ˇ˘ËÂ
ция к текущей волатильности рынка.
Согласитесь, обидно, в случае неожи-
значение минимума за период будет в не противоречит здравому смыслу, что
данно возросшей волатильности, полу-
точке L3, последующие в точках локаль- глубина коррекционных движений
чить сигнал на завершение тренда, а по-
ных впадин L4, L5 и т. д. Увеличение пе- против основной тенденции чаще всего
сле этого наблюдать, как цены продол-
риода ценового канала будет происхо- определяется именно в процентном вы-
жают динамичное движение в прежнем
дить до тех пор, пока цены не пересекут ражении от очередного экстремума
направлении. Для таких случаев полез-
индикатор в обратном направлении. цен. Используя Трендовый индикатор в
таком виде, мы позволяем свободно но наделить индикатор следующим
Фильтр коррекций развиваться неглубоким коррекциям свойством: при росте волатильности он
против основной тенденции, вовремя будет «отодвигаться» от цен, давая сво-
боду случайным колебаниям, при сни-
Простейшей реализацией такого Трен- улавливая действительное изменение
жении волатильности «приближаться»
дового индикатора будет выражение в направления тренда. При этом в расче-
к ценам, улавливая раннюю смену тен-
пунктах или в процентах величины те индикатора участвуют только цены,
денции.
«отступа» индикатора от максималь- входящие в текущий тренд и исключа-
В качестве меры волатильности для
ных пиков и минимальных впадин за ются экстремумы, принадлежащие
расчета индикатора удобно использо-
расчетный период. Последнее тем более прошлым тенденциям.
вать реальный торговый диапазон (True
Range). В техническом анализе обычно
используется средний реальный торго-
вый диапазон за период (Average True
Range, ATR). Обычно это достигается
сглаживанием True Range простой сколь-
зящей средней. Я же предлагаю исполь-
зовать для сглаживания True Range взве-
шенную скользящую среднюю (Weight-
ed Moving Average), в расчете которой
последние значения параметра имеют
«больший вес» по сравнению с предыду-
щими. Получив, таким образом, взве-
шенный средний реальный торговый
диапазон (Weighted Average True Range,
WATR), мы можем использовать его для
вычисления Трендового индикатора
прорыва динамического ценового кана-
ла, адаптированного к текущей вола-
тильности рынка.
На восходящих трендах индикатор бу-
–ËÒ. 4. ¿ÍˆËË –¿Œ ≈›— (Ãì¡), ‰Ì‚Ì˚ ‰‡ÌÌ˚Â. “Ẩӂ˚È Ë̉Ë͇ÚÓ ÔÓ˚‚‡ ‰Ë̇Ï˘ÂÒÍÓ„Ó
ˆÂÌÓ‚Ó„Ó Í‡Ì‡Î‡ ̇ ÓÒÌÓ‚Â WATR (œÂËÓ‰ ÛÒ‰ÌÂÌˡ WATR = 15 ‰ÌÂÈ, ÍÓ˝ÙÙˈËÂÌÚ Ã = 4)
дет находиться ниже цен на величину
М∗WATR от максимального пика за рас-
—Ó‚ÂÏÂÌÌ˚È ÚÂȉËÌ„ n π 4 2001
26
4. Тåõíè÷åñêèé àíàëèç www.m-trading.ru
четный период. На нисходящих трендах,
соответственно, выше на величину
М∗WATR от минимальной впадины за
период, где коэффициент М — множи-
тель, определяющий количество взве-
шенных средних реальных торговых
диапазонов, на которое индикатор отсто-
ит от цен. Обычно величина М выбира-
ется в диапазоне от 1 до 4, в зависимости
от характеристик конкретного рынка,
временного масштаба данных, психоло-
гических установок трейдера и так далее.
На рис. 4 представлен Трендовый ин-
дикатор прорыва динамического цено-
вого канала на основе WATR. Хорошо
видно, что такой индикатор более адап-
тирован к рыночным колебаниям. При
росте волатильности он «отступает» по-
дальше от цен, давая простор для слу-
чайных движений против тренда. При
снижении волатильности приближается –ËÒ. 5. 15-ÏËÌÛÚÌ˚È „‡ÙËÍ –¿Œ ≈›— (Ãì¡). “Ẩӂ˚È Ë̉Ë͇ÚÓ ÔÓ˚‚‡ ‰Ë̇Ï˘ÂÒÍÓ„Ó
ˆÂÌÓ‚Ó„Ó Í‡Ì‡Î‡ ̇ ÓÒÌÓ‚Â WATR. (œÂËÓ‰ ÛÒ‰ÌÂÌˡ WATR = 21, ÍÓ˝ÙÙˈËÂÌÚ Ã = 2)
к ценам, улавливая как можно раньше
смену тенденции. По своей природе, та-
ных масштабах одновременно. Это поз- данных не появится сигнал окончания
кой индикатор несет в себе логику попу-
воляет реализовать популярную методи- роста. После подтверждения нисходящей
лярного ATR-Trailing сигнала (скользя-
ку трендовой торговли: определение ос- тенденции на дневных данных, с часовых
щий сигнал на основе ATR), но с его по-
новной тенденции на большем времен- графиков принимаются сигналы только
мощью можно более наглядно
ном масштабе и исполнение торговых на продажу вплоть до разворота дневного
наблюдать за возникновением, развити-
сигналов на меньшем тайм-фрейме толь- тренда вверх. Точно так же можно ис-
ем и завершением трендов.
ко в направлении главного тренда. Для пользовать сочетания временных мас-
В приложении представлен код на Easy
начала с помощью Трендового индикато- штабов 60 мин и 10 мин, недельные и
Language для Трендового индикатора
ра прорыва динамического ценового ка- дневные и т. д.
прорыва динамического ценового кана-
нала, например, на дневных графиках, На рис. 6 представлен пример ком-
ла на основе WATR.
определяем восходящий тренд. Затем пе- плексного использования Трендового ин-
Дополнительные реходим на более мелкий временной мас- дикатора на основе WATR. Часовые дан-
возможности штаб, скажем 60 минут, и, наложив на не- ные в нижней части графика служат для
го индикатор, исполняем сигналы только определения направления основной тен-
на покупку, до тех пор, пока на дневных денции. На 10-минутных данных в верх-
Хотелось бы отметить, что такой подход
к идентификации трендов практически
одинаково хорошо работает на любых
временных масштабах. Для примера, на
рис. 5 представлен 15-минутный график
РАО ЕЭС (ММВБ) с торговыми сигнала-
ми от Трендового индикатора прорыва
динамического ценового канала на осно-
ве WATR. Хорошо видно, как распозна-
ются возникновение, развитие и разво-
рот трендов. Сигналы на покупку и про-
дажу поступают на достаточно ранних
стадиях развития тенденции, при том
что движение цен в направлении тренда
уже оформилось. К сожалению, как и
любой трендовый подход, такая система
будет давать ложные сигналы с неболь-
шими убытками на безтрендовых участ-
ках. Подобные проблемы обычно разре-
шаются добавлением в торговые систе-
мы дополнительных фильтров, однако
это уже тема для другой статьи. –ËÒ. 6. ÓÏÔÎÂÍÒÌÓ ËÒÔÓθÁÓ‚‡ÌË “ÂÌ‰Ó‚Ó„Ó Ë̉Ë͇ÚÓ‡ ‚ ‡ÁÌ˚ı ‚ÂÏÂÌÌ˚ı χүڇ·‡ı.
◊‡ÒÓ‚˚Â Ë 10-ÏËÌÛÚÌ˚ ‰‡ÌÌ˚ –¿Œ ≈›— (Ãì¡)
Описанные индикаторы можно эффек-
тивно использовать в нескольких времен-
π 4 2001 n 27
—Ó‚ÂÏÂÌÌ˚È ÚÂȉËÌ„
5. œÓÙÂÒÒËÓ̇θÌ˚È ÊÛ̇Î
ней части графика исполняются сигналы
œËÎÓÊÂÌË торговой системы. На восходящем трен-
Процентный Трендовый индикатор прорыва динамического ценового канала
де — только длинные позиции, на нисхо-
в формате Omega TradeStation. {Percentage Trend Indicator with correction
дящем тренде — только короткие пози-
filter and dynamic period of trend calculation. Copyright (c) konkop 2001}
ции. В результате торговля идет всегда в
направлении основной тенденции.
Inputs:
K(15), {%Coeff. of correction}
Max_per(50); {Max. Dynamic Period for Trend Calculation} Заключение
Vars: Trend(C), Period(0) ; {Trend Calculation}
Condition1= C > Trend[1]; {UpTrend} В заключение еще раз хочу напомнить
Condition2= C <= Trend[1]; {DownTrend}
важную отличительную черту Трендо-
{SetUp Period When New Trend Begin}
вого индикатора прорыва динамическо-
If C Cross over Trend[1] or C Cross Below Trend[1] Then Period = 0;
го ценового канала от классического
If Period < Max_per Then Begin {Counting UpTrends with dynamic period}
прорыва. Ширина канала измеряется в
If Condition1 Then Begin
процентах, пунктах или в мерах вола-
Period = Period +1;
Trend = Highest(C,Period)[1]∗(1 — (K/100)); тильности от максимального пика (на
End ; {Counting DownTrends with dynamic period} растущих трендах), или минимальной
If Condition2 Then Begin впадины (на снижающихся трендах) за
Period = Period + 1; расчетный период индикатора. При
Trend = Lowest(C,Period)[1]∗(1 + (K/100));
этом длина ценового канала (расчетный
End;
период) динамически увеличивается с
End Else Begin {Counting UpTrends with constant period}
момента пересечения ценами индикато-
If Condition1 Then Trend = Highest(C,Max_per)[1]∗(1 — (K/100));
ра вниз или вверх. Это позволяет ис-
{Counting DownTrends with constant period}
ключить из вычислений движения цен,
If Condition2 Then Trend = Lowest(C,Max_per)[1]∗(1 + (K/100));
End; {Plotting Indicator} которые имели отношение к предыду-
Plot1(Trend, «Trend»);
Трендовый индикатор прорыва динамического ценового канала на основе WATR
в формате Omega TradeStation.
{Volatility Trend Indicator based on Smoothed True Range
and dynamic period of trend calculation. Copyright (c) konkop 2001}
Inputs:
Len(21), {WATR Lenght}
M(3), {WATR Multiplier}
Max_per(50); {Max. Dynamic Period for Trend Calculation}
щему тренду, и использовать только те
Vars: TrueHi(H), TrueLo(L), TrueRng(0), WATR(0), Trend(C), Period(0) ;
{Calculate Smoothed TR} колебания, которые входят в формиру-
If Close[1] > High Then TrueHi = Close[1] Else TrueHi = High; ющийся новый тренд. На практике для
{Calculate TrueHigh} ускорения вычислений в программных
If Close[1] < Low Then TrueLo = Close[1] Else TrueLo = Low; пакетах технического анализа макси-
{Calculate TrueLow}
мальную длину динамического ценово-
TrueRng = TrueHi — TrueLo; {Calculate TrueRange}
го канала можно ограничить 50-ю или
WATR = WAverage(TrueRng,Len); {Calculate WATR}
100 барами (в зависимости от времен-
{Trend Calculation}
ного масштаба данных), так как малове-
Condition1= C > Trend[1]; {UpTrend}
роятно, что за такой длительный пери-
Condition2= C <= Trend[1]; {DownTrend}
{SetUp Period When New Trend Begin} од цены не сформируют новый локаль-
If C Cross over Trend[1] or C Cross Below Trend[1] Then Period = 0; ный экстремум или тренд не сменит
If Period < Max_per Then Begin {Counting UpTrends with dynamic period} направление.
If Condition1 Then Begin Данный подход не претендует на осо-
Period = Period +1;
бую новизну или оригинальность. И уж
Trend = Highest(C,Period) — M∗WATR;
тем более на звание «Священного Само-
End ; {Counting DownTrends with dynamic period}
вара», в который только уголька под-
If Condition2 Then Begin
кинь, да краник пошире открой... Одна-
Period = Period + 1;
ко мне кажется, найдутся трейдеры и
Trend = Lowest(C,Period) + M∗WATR;
End; аналитики, личным торговым предпо-
End Else Begin {Counting UpTrends with constant period} чтениям которых этот метод покажется
If Condition1 Then Trend = Highest(C,Max_Per)[1] — M∗WATR; близким и понятным. В конце концов,
{Counting DownTrends with constant period} на рынке есть только тренды и… трен-
If Condition2 Then Trend = Lowest(C,Max_per)[1] + M∗WATR;
ды. И наша задача всего лишь выбрать
End; {Plotting Indicator}
комфортный для себя способ их иден-
Plot1(Trend,»Trend»);
тификации.
—Ó‚ÂÏÂÌÌ˚È ÚÂȉËÌ„ n π 4 2001
28