Одним из первых, кто использовал особенности ценовой динамики для адаптации индикатора, был известный аналитик и разработчик торговых систем Тушар Ченд. В 1994 году он представил на суд публики оригинальную методику расчета Экспоненциальной скользящей средней (ЕМА) с динамически меняющимся периодом усреднения – VIDYA (Variable Index Dynamic Average). Период усреднения ЕМА был поставлен в зависимость от волатильности цен. Оказалось, что полученный индикатор более точно реагирует на движение цен, быстрее отзывается на изменение динамики или направления рынка, чем обычные простые или экспоненциальные средние [1].
В данной статье мы рассмотрим принципы построения и торговли с помощью адаптивного ценового канала – Adaptive Price Channel (APC).
Экстремальные значения цен на графике являются психологическими точками, которые устанавливают определенный коридор цен, а также показывают страх и переживания участников рынка. Прорыв за обычный коридор цен создает ярко выраженные боль и сожаления основной массы трейдеров. Одним из способов торговли на таких прорывах является покупка, при условии, что цена превысила или закрылась выше своего максимального значения за определенный (фиксированный) период (далее период "n"). Такой вид торговли на прорывах, в отличие от контртрендовой, является технически логичным, потому что торговля происходит в направлении основного движения, в то время как попытка поймать лучшую цену довольно рискованна.
Остается только определить длину ценового канала, в котором будут отслеживаться максимальные и минимальные значения. Чаще всего это делается с помощью аналитических программ (MetaStock, OmegaTradeStation и другие) на исторических данных. Однако спустя некоторое время реальной торговли можно заметить, что если использовать более длинный (короткий) период ценового канала, то можно было бы получить большую доходность, чем используя оптимальный параметр полученный на исторических данных. Причиной этому может быть затяжная консолидация рынка, выраженная боковым движением цен или изменение волатильности рынка.
На рис. 1 видно, что ценовой канал, рассчитанный за короткий период (в нашем случае n=5), слишком узкий, что приводит к значительным ложным сигналам во время бокового движения рынка (25.12.2003-30.12.2003 и 09.01.2004-19.01.2004). В то время как широкий канал дает пространство для изменения цен и не реагирует на случайные колебания. Однако в периоды тренда широкий канал медленно подтягивается к ценам, что приводит к потере значительной части прибыли. Узкий же канал, наоборот, чувствительнее реагирует на возникновение тренда, улавливая его начало на ранней стадии, и довольно быстро реагирует на движение цен, сохраняя большую часть прибыли (05.01.2004-08.01.2004).

Рис. 1. Часовой график ЛукОйла. Синяя линия – узкий ценовой канал (период n=5), красная линия – широкий ценовой канал (период n=18).
Принцип "золотой середины" не всегда оправдан. Допустим мы использовали бы канал рассчитанный по максимальным и минимальным ценам за последние 11-12 часов. Стоит уменьшиться или увеличиться волатильности рынка, как данный ценовой канал попадет в категорию "узкого" или "широкого".
Построение APC.
Отличительной особенностью APC является изменение длины канала (периода "n") в зависимости от текущего состояния рынка. То есть, при динамичном движении цен периоду "n", за который рассчитывается ценовой диапазон, присваивается меньшее значение, что позволяет выявить начало тренда и его замедление на ранних стадиях, соответственно, при боковом – ненаправленном движении – период "n" приобретает большее значение, предоставляя возможность "дышать" рынку в пределах ценового канала. В качестве изменения периода "n" можно применять индикаторы волатильности (Average True Range, Standard Deviation), которые используют концепцию диапазона для определения величины недавнего рыночного движения.
Мы же, для определения состояния рынка применим коэффициент эффективности Перри Кауфмана (Efficiency Ratio, ER), который основан на сравнении общего движения цены и суммы шумовых движений рынка за определенный период [2]. Формула для вычисления коэффициента ER может быть представлена следующим образом:
, где
Signal = Abs(Price – Price(-n)) — абсолютное значение разности между текущей ценой и ценой в начале периода вычислений – представляет собой общее движение цены за период;
Noise = Sum(Abs(Price – Price(-1)),n) — сумма абсолютных значений ежедневных приращений цены в течение периода вычислений – является шумовой составляющей.
Как видно из формулы коэффициент эффективности (ER) может принимать значения от 0 до 1. Если цена двинулась вверх на 10 пунктов за 10-дневный период и при этом возрастала на один пункт каждый день, то есть на рынке присутствовало однонаправленное движение, с полным отсутствием шума, то ER=10/10*1 = 1. В свою очередь, на ненаправленном рынке, где произошло небольшое общее движение цены, но было много шумовых колебаний, значение ER будет стремиться к 0. Например, если цены сдвинулись только на 1 пункт за 10 дней, но при этом движение цен каждый день составляли 10 пунктов то вверх, то вниз, ER=1/10*10 = 0,01.
Заранее хотелось бы отметить, что в своих расчетах Перри Кауфман для вычисления ER использует 10-дневный период, объясняя свой подход просто: "десятка" в вычислениях не меняет цифровых значений, а только десятичную точку, к тому же 10 дней – это две торговые недели или примерно половина торгового месяца. Так как в своих примерах мы будем использовать данные российского фондового рынка в часовом масштабе, для расчета ER мы будем применять 18-часовой период, что равняется двум торговым дням.
Таким образом, когда ER, рассчитанное за 18-часовой период, стремится к 1, то есть на рынке присутствует сильный тренд с малым количеством шумов, мы должны использовать более узкий коридор цен (n -- min). И наоборот, когда на рынке со слабым трендом и высоким уровнем шума ER стремится к нулю, необходимо использовать широкий коридор цен (n -- max). Остается определить диапазон максимального и минимального значения, в пределах которого будет изменяться период "n" для расчета ценового канала. В данной статье мы использовали диапазон от 1 до 18, исходя из того же принципа, что 18 часов это два торговых дня на российском фондовом рынке. Для того чтобы при ER=1 – период "n" принимал значение 1, и при ER=0 – n=18 сделаем следующее преобразование:
n = 18-17*ER
Для нахождения максимальных и минимальных цен за определенный период необходимо чтобы "n" принимало целые значения, поэтому при написании формулы для расчета Adaptive Price Channel в формате MetaStock, воспользуемся функцией округления – "Round".
Таким образом, адаптивный ценовой канал будет рассчитываться по следующей формуле:
Hline=HHV(H,n)+0.01;
Lline=LLV(L,n)-0.01
где Hline – верхняя граница ценового канала, которая расположена на 1 пункт выше максимального значения цены за последние n часов;
Lline – нижняя граница канала, которая расположена на 1 пункт ниже минимального значения цены за последние n часов.
Согласно формулам период "n" может принимать различные значения от 1 до 18, к сожалению, программа MetaStock не позволяет динамически изменять значения периода в выражениях типа HHV(Data Array, Periods), ATR(Periods) и др. Поэтому в дальнейшем будем использовать функцию условия "если" (if), которая также имеет свои ограничения (до 15 условий). Наблюдения показали, что "n" довольно редко принимает значения от 1 до 4, поэтому если n(lit)=4, то ценовой канал будет рассчитываться за последние 4 часа, если n=5 – за 5 часов и т.д. На рис. 2 представлена полная формула расчета Adaptive Price Channel в формате MetaStock.

Рис. 2. Формула Adaptive Price Channel в формате MetaStock
Согласно данному расчету адаптивного ценового канала, ордер на покупку/продажу необходимо устанавливать по предыдущему значению APC, так как текущее значение индикатора может изменяться. Кроме того, выражение: LStop:=If(PREV(lit)L,If(Lline(big)=PREV,Lline,PREV),Lline), говорит о том, что если текущее значение нижней границы канала будет меньше чем предыдущее, то индикатору присвоится предыдущее значение, что и объясняет ступенчатое движение индикатора в направлении изменения цен. Для верхней границы канала – если текущее значение больше предыдущего, то индикатору также присваивается текущее значение. Изменение индикатора в противоположную сторону означает, что в этой свече был сигнал на продажу/покупку.
Преимущества APC.
На рис. 3 видно, что в периоды бокового движения цен (23-25 августа и 1-5 сентября) узкий ценовой канал с фиксированным периодом (n=5), дает большое количество ложных сигналов на покупку и продажу, в то время как APC не реагирует на случайные колебания рынка. Однако в период динамичного изменения цен (26-30 августа) APC, так же как и узкий канал, максимально близко находится от цен, что позволяет защитить большую часть прибыли.

Рис. 3. Часовой график Сургутнефтегаз. Ценовой канал с периодом n=5 (синяя линия), адаптивный канал APC (зеленая линия)
Такое поведение APC объясняется зависимостью периода n от текущего состояния рынка. Для наглядности в верхней части графика (рис. 3) представлено изменение периода n за который рассчитывается адаптивный ценовой канал. Так, во время отсутствия на рынке направленного движения (23-25 августа и 1-5 сентября) период n колебался в пределах от 11 до 18, а в период тренда – 3-7.
При сравнении APC и канала с широким диапазоном (n=18) видно, что во время направленного движения рынка (рис. 4) широкий ценовой канал, в отличии от адаптивного, медленно реагирует на изменение цен и запаздывает с точками входа/выхода (12, 22, 26 октября), а в периоды бокового движения рынка данные индикаторы практически повторяют друг друга.

Рис. 4. Часовой график Ростелеком. Ценовой канал с периодом n=18 (красная линия), адаптивный канал APC (зеленая линия)
Еще одним из способов изменения периода "n" является построение адаптивного канала на основе усредненного направленного движения (ADX), который был представлен в одной из статей Чака Лебо [3]. Основная идея заключается в том, что временной интервал канала на пробитие должен изменяться в зависимости от силы тренда. Чем более сильный тренд, тем меньшее количество дней (часов) участвуют в формировании канала (сильная тенденция – несколько дней в канале, слабая тенденция и, следовательно, изменчивый рынок – большее количество дней в канале).
Автор предлагает следующую формулу для расчета периода "n". Формула может выглядеть приблизительно так: n = 150/ADX (14 баров), где n – это количество дней (часов) в канале. Правила на покупку и на продажу в этом случае будут звучать так: размещайте стоп-приказ на покупку на один пункт выше максимума за "n" дней; размещайте стоп-приказ на продажу на один пункт ниже минимума за "n" дней. Это основная версия системы. Она работает как обычная разворотная система без каких-либо дополнительных выходов. При ее тестировании можно изменять только два параметра – длину ADX и величину константы, которая в приведенном примере равна 150.
Не смотря на то, что подобного рода индикаторы можно использовать как реверсивную систему, как показывает практика, наиболее эффективным является применение ценовых каналов в системе "тройного (двойного) экрана". То есть, когда на больших по периоду графиках (неделя, день) определяется основная тенденция, а на более мелких (час), с помощью ценового канала, осуществляется открытие позиции по направлению основного тренда.
Итоги.
Состояние любого финансового рынка можно разбить на две фазы: период направленного движения и период бокового движения цен с высоким уровнем шумовых колебаний. Применение ценового канала с фиксированным периодом нахождения максимальных и минимальных цен на различных фазах рынка, имеет ряд преимуществ и недостатков.
Так, в момент направленного движения узкий ценовой канал более динамичен и отзывчив на изменение цен, однако выдает большое количество ложных сигналов во время бокового движения рынка. Широкий ценовой канал, наоборот – на трендовых участках сильно запаздывает, но в периоды ненаправленного движения дает возможность ценам колебаться в пределах заданного диапазона.
Как показал анализ Adaptive Price Channel, за счет динамично меняющегося периода "n" заимствовал лучшие характеристики узкого и широкого ценового каналов, что позволяет эффективнее вести торговлю в периоды различного состояния рынка.
Литература.
1. Копыркин К. Динамические средние ч.1 // Современный трейдинг, №5-6. – 2001. – с. 8-12.
2. Копыркин К. Динамические средние ч.2 // Современный терйдинг. – Сентябрь. – 2001. – с. 74-79.
3. Статьи Лебо (Бюллетень №4) // http://www.fx-trader.narod.ru/b4.html.