Графики японских свечей (Japanesecandlestickcharts) являются общепринятым способом графического представления рыночной информации, а также очень сильным аналитическим инструментом. Разнообразные типовые комбинации свечей содержат легко распознаваемые и надежные сигналы о психологии рынка и возможном будущем его поведении.
Обычный способ применения японских свечей заключается в том, что отдельным свечам или комбинациям из нескольких свечей приписывается некоторый характерный образ поведения рынка. Например, комбинации «вечерняя звезда», «утренняя звезда» и «харами», появившиеся после сильного тренда, предсказывают разворот графика; свечи «doji» свидетельствуют о неопределенности, смене настроений рынка и т.д. По своей природе принятие решений на основе комбинаций свечей является качественным, основанным на рассуждениях о психологии и настроениях рынка. Но, как и во всех методах технического анализа, хотелось бы иметь точные, численные индексы, то есть такие способы измерения силы таких свечей, чтобы можно было использовать эти индексы для более объективного анализа и встраивать их в компьютерные торговые системы
Кодирование японских свечей
Метод количественного анализа графиков японских свечей
Метод, предложенный В.Н. Лиховидовым, основан на сопоставлении каждой свече числового кода (CandleCode), имеющего простой смысл: чем более «бычье» содержание мы вкладываем в рисунок данной свечи, тем больший код ей будет присвоен. Наоборот, свечи «медвежьи» получат малые значения кода, и чем более «медвежьей» является свеча, тем меньший код она получит. Несколько подряд идущих свечей с большим значением кода покажут тенденцию роста рынка, а последовательное уменьшение кодов послужит сигналом к развороту тенденции. Усредняя различными способами коды свечей, мы построим разнообразные технические индикаторы. Один конкретный вид такого индикатора, названный автором ICS- IndexofCandleStrength (Индекс Силы Свечи), основан на последовательном сглаживании исходного кода короткими скользящими средними; он дает очень наглядные и незапаздывающие сигналы прорыва уровней и трендов.
Принцип кодирования японских свечей
Предлагаемый способ кодирования свечей основан непосредственно на следующих принципах интерпретации свечей, которые используются в техническом анализе: a - основное значение имеет цвет свечи - белые свечи являются бычьими, черные - медвежьими;
b - главное значение среди уровней, входящих в свечу, имеют уровни открытия и закрытия, иначе говоря, при построениии кода свечи мы основной вес приписываем ее телу, тени получат меньшие веса;
c - чем больший размах имеет тот или иной компонент свечи (тело, верхняя тень, нижняя тень), тем больший вес мы ему присвоим в составе нашего индекса.
Сам индекс будет таким образом иметь четыре компоненты, соответствующих цвету, телу, верхней и нижней теням. Поскольку цвет может быть только черным либо белым, на первую компоненту вполне хватит одного двоичного разряда: 0 - черная свеча, 1 - белая свеча. Для остальных компонент надо предусмотреть больше места, так как тень, к примеру, может быть большая, не очень большая или просто маленькая, и ее коды должны быть соответствующими. Мы остановимся на простом способе кодирования: считая, что каждый из компонентов свечи может быть большим, средним, малым по размеру, либо его может вообще не быть, мы предусмотрим на каждую компоненту два двоичных разряда (рис.1).
Итак, код свечи есть семиразрядное бинарное число. Первая компонента кода, первый бинарный разряд, представляет цвет свечи:
Вторая позиция (два бинарных разряда) кодирует размер тела:
Третья и четвертая компоненты (каждая из двух бинарных позиций) кодируют верхнюю и нижнюю тени соответственно:
Построенную таким образом последовательность нулей и единиц мы будем считать двоичным представлением некоторого десятичного числа. Это десятичное число и есть код данной свечи (CandleCode).
Рис.1. Структура кода свечи
Замечание. Так как свеча типа doji имеет тело нулевого размера, непонятно, какой цвет ей назначить. Но эту неопределенность легко устранить каким-либо дополнительным правилом. Например, можно считать doji белым, если его верхняя тень больше нижней, можно брать цвет тела doji противоположным цвету предшествующей свечи и т.д.
Посмотрим, как работает этот код в некоторых простых примерах. На рис. 2 для иллюстрации приведены несколько свечей и указаны соотношения их геометрических размеров.
Рис. 2. Геометрические соотношения размеров свечей
Для изображенных здесь свечей мы имеем следующие значения кодов:
a) 1111110=26+25+24+23+22+21=64+32+16+8+4+2=126
b) 0011000=24+23=16+8=24
c) 1011011=26+24+23+21+20=64+16+8+2+1=91
d) 1000101=26+22+20=64+4+1=69
Видно, что конструкция нашего индекса вполне соответствует тем основным принципам а-с, которые были положены в его основу.
Можно убедиться в применимости метода, сравнив получаемые коды с хорошо известными правилами интерпретации различных свечей (рис. 3, рис. 4).
Рис. 3. Примеры бычьих свечей и их коды
Рис. 4. Примеры медвежьих свечей и их коды
Согласно общепринятой трактовке, изложенной в литературе, свечи 118, 115 (whitemarubozu), 111 (whiteopeningbozu), 104, 97 (whiteclosingbozu) имеют явно выраженный бычий смысл, 24 рассматривается в литературе как бычья, а 102 - от sideways (неопределенная) до бычьей.
Свечи 3 (blackmarubozu) и 6 дают сильные медвежьи сигналы, 22 -от sideways до медвежьей; 108 часто рассматривается как медвежья, что находится в противоречии с большим значением ее кода. Свечи 111 и 8 (при достаточно большом размере тела) носят названия bullishbelt-hold и bearishbelt-hold (захват за пояс); 111 внизу графика может давать сильный бычий сигнал, 8 наверху графика может предсказывать медвежий разворот.
Рис. 5. Примеры разворотных свечей и их коды
Свеча 96 - karakasa (umbrella, зонтик); наверху рынка она называется «висельник» (hangingman), а внизу графика ее имя - «hammer» (молот); независимо от ее цвета, karakasa на верху дает sell-сигнал, а внизу - buy. Свеча 32 - пример падающей звезды (shootingstar), 63, 57, 53, 51, 48 -doji (63 - dojigravestone, 48 - dojidragonfly, 51 - fourpricedoji); различного типа doji генерируют надежные сигналы возможного будущего изменения тренда.
Пороговое правило для построения кода свечи
Практическая реализация предложенной идеи требует введения некоторых правил, которые позволяли бы решать, какие размеры элементов свечи являются малыми, какие средними и большими. Обозначим как обычно, элементы свечи через open, high, low, close и запишем следующее правило (рис. 6).
Рис. 6. Пороговое правило
Мы ввели здесь два пороговых значения (верхнее, имеющее индекс 1, и нижнее с индексом 2) для каждого элемента свечи: b1<b2 для тела, u1<u2 для верхней тени и l1<l2 для нижней тени. Если размер элемента свечи меньше нижнего порога, то этот элемент малый, если размер элемента лежит в диапазоне между верхним порогом и нижним, то этот элемент среднего размера, а все, что больше верхнего порога - большое.
Рис. 7. Пороговое решающее правило
При фиксированном выборе порогов b1, b2, u1, u2, l1, l2 код, присваиваемый свече, определен единственным образом. Но величины этих порогов должны быть различными для разных рынков, так как они зависят от волатильности рынков: свеча, которая выглядит большой на одном рынке, может оказаться маленькой на другом. Точно так же, пороги должны меняться при переходе от одного временного масштаба к другому: на часовых и дневных графиках свои ориентиры для размеров свечей. Следовательно, необходимо анализировать статистику распределений размеров свечей и на ее основе выбирать подходящие пороги. Задача интересная и творческая; решать ее можно разными средствами. Но не следует забывать о том, что это технический анализ и все разумные подходы здесь должны основываться на простых процедурах. Из различных вариантов автор выбрал вполне универсальный и простой, основанный на применении диапазонов Болинджера (BollingerBands). Рис. 8 иллюстрирует его на примере дневного графика британского фунта.
Рис. 8. Выбор порогов на основе диапазонов Болинджера
Три графика здесь представляют собой результаты применения технического индикатора BollingerBand к размерам верхних теней (ushd), тела (body) и нижних теней (lshd) соотвественно.
Поскольку BollingerBand является мерой среднеквадратичного разброса, то он дает подходящую оценку волатильности размеров элементов свечей. В терминах системы MetaStockIndicatorBuilder, верхний порог представлен функцией BbandTop, а нижний порог функцией BBandBot. Параметр «Deviations» функций BollingerBand выбран равным 0.5 (в случае стандартного гауссовского распределения это соответствует примерно одинаковой вероятности всех трех диапазонов: примерно 38 процентов свечей соответствуют среднему размеру, а по 31 проценту - малому и большому). Временной период в функциях BollingerBand мы везде выбрали равным 55.
Рис. 9 иллюстрирует результат кодирования для дневного графика GBP.
Рис. 9. CandleCodes для дневного графика GBP
Технические индикаторы типа ICS
Можно предложить несколько путей использования такой схемы кодирования для целей технического анализа и построения компьютерных торговых систем. Но наиболее естественной является попытка построения новых технических индикаторов. Действительно, сам по себе график CandleCode не выглядит привлекательным как инструмент анализа. С другой стороны, если несколько подряд идущих свечей имеют бычьи коды, их скользящее среднее покажет тенденцию к росту, а если затем попадутся разворотные свечи и медвежьи, усредненный график покажет разворот вниз. Следовательно, все, что нам необходимо - это подходящее сглаживание для выделения таких краткосрочных тенденций. Полезным свойством CandleCode окажется и то, что его значения ограничены диапазоном от 0 до 128; после сглаживания индикатор будет лежать между 0 и 100, что привычно для технических аналитиков.
Рис. 10. Индикатор Index of Candle Strength (ICS)
Рис. 10 показывает результат сглаживания кодов для графика швейцарского франка. Верхний график представляет здесь индикатор, который мы назвали IndexofCandleStrength (ICS); он получается трехкратным сглаживанием кода с помощью простого скользящего среднего (в данном случае - двухточечного).
Формирование медвежьего тренда 1 в мае сопровождалось возникновением тренда a и уровня поддержки b на графике ICS. Прорыв линии a 28 мая дал явный «long» сигнал, но тренд 1 не был нарушен (1 июня), цены сформировали новый локальный минимум (4 июня), который одновременно был подтвержден уровнем поддержки b. Последующий прорыв линии a 9 июня дал сильный опережающий «long» сигнал: двумя днями позже тренд 1 был пробит и начал формироваться новый, восходящий тренд 2. В процессе развития этого тренда уровень поддержки b оставался в силе, пока не создалась двойная дивергенция 3, c, которая дала сильный «short» сигнал, немедленно подтвержденный одновременным прорывом тренда 2 на графике цены и уровня поддержки b на графике индикатора, с последующим формированием нового медвежьего тренда.
Применение различных стандартных функций технического анализа (например, MA, RSI, MACD, Osc) к графику CandleCode или его сглаженному варианту может породить разнообразные новые функции технического анализа, которые, несомненно, будут полезными для анализа графиков и построения компьютерных торговых систем.
Рис. 11. Дневной график GBP, ICS и сглаженный ICS: дивергенции и пересечения
Рис. 11 показывает дневной график GBP с ICS, демонстрирующим серию дивергенций, точно предсказавших развороты рынка. На верхнем графике изображена композиция из трижды сглаженного ICS и еще раз трижды сглаженного. Про-лученный индикатор напоминает Stochastics: пересечение его быстрой и медленной линий дает хорошие сигналы.
Рис. 12. Дневной график JPYс составными CandleCode — аналогами MACD и RSI (S - sell сигнал, B - buy сигнал)
Другие варианты составных CandleCode - индикаторов представлены на рис. 12 для графика японской йены: это обычный индикатор MACD (9,12,26), примененный к ICS, а также суперпозиция Triplet (тройное сглаживание двухточечным МА) и RSI.(8) над CandleCode. Характерной чертой RSI-подобного индикатора является образование множества линий поддержки и сопротивления, прорывы которых дают сильные незапаздыва-ющие сигналы. CandleCode - вариант MACD, как и его обычный вариант, может использоваться для выделения тренда или как осциллятор.
Таким образом, технические индикаторы, построенные с помощью кода свечи CandleCode, представляют собой весьма интересные инструменты анализа рыночных графиков. В отличие от других индикаторов, принимающих во внимание только один элемент свечи (например, цену закрытия) или некоторые ее элементы, код свечи учитывает конфигурацию всей свечи в целом. А поскольку выбор порога основан на статистике рынка, то даже код отдельной свечи содержит много информации обо всем рынке.
Приложение 1
Индикатор в терминах MetaStock Indicator Builder и CQG for Windows.
Текст конструкций, связанных с построением CandleCode и производных от него индикаторов в терминах MetaStockIndicatorBuilder и CQGforWindows.
Текст индикатора ICS в системе MetaStock Indicator Builder
Размеры элементов свечи (тело, верхняя и нижняя тени): body
Abs(OPEN-CLOSE) lshd
If(CLOSE>=OPEN,OPEN-LOW,CLOSE-LOW) ushd
If(CLOSE>=OPEN,HIGH-CLOSE,HIGH-OPEN)
Для каждого компонента свечи определяются верхний и нижний пороги на основе BollingerBands: ThBotb
BBandBot( Fml( «body» ) ,55,E,0.5) ThTop_b
BBandTop( Fml( «body» ) ,55,E,0.5) ThBot_l
BBandBot( Fml( «lshd» ) ,55,E,0.5) ThTop_l
BBandTop( Fml( «lshd» ) ,55,E,0.5) ThBot_u
BBandBot( Fml( «ushd» ) ,55,E,0.5) ThTop_u
BBandTop( Fml( «ushd» ) ,55,E,0.5)
Вычисление кода свечи CandleCode для удобства разделено на три части:
CandleCode-b
If(CLOSE = OPEN,1,0)* If(Fml(«ushd»)>=Fml(«lshd»),64,48) + If(CLOSE=OPEN,0,1) * (If(CLOSE>OPEN,1,0) * (If(Fml(«body»)<= Fml(«ThBot_b» ) ,80,0) +If(Fml(«body»)> Fml(«ThBot_b» ) AND Fml(«body») <= Fml(«ThTop_b» ) ,96,0)+If(Fml(«body»)> Fml(«ThTop_b»),112,0)) + If(CLOSE<OPEN,1,0) * ( If(Fml(«body»)<= Fml(«ThBot_b» ) ,32,0) + If(Fml(«body»)> Fml(«ThBot_b» ) AND Fml(«body») <= Fml(«ThTop_b» ),16,0)))
CandleCode-l
If(Fml(«lshd») = 0,3,0)+If(Fml(«lshd») < Fml(«ThBot_l» ) AND Fml(«lshd»)>0,2,0)+ If(Fml(«lshd»)> Fml(«ThBot_l» ) AND Fml(«lshd»)<= Fml(«ThTop_l» ) AND Fml(«lshd»)>0,1,0)
CandleCode-u
If (Fml(«ushd») > ;0 AND Fml(«ushd») < = Fml(«ThBot_u» ) ,4,0)+If( Fml(«ushd») > Fml(«ThBot_u» ) AND Fml( «ushd») <= Fml(«ThTop_u» ) ,8,0)+If(Fml( «ushd» ) > Fml(«ThTop_u» ),12,0)
Результирующий код есть сумма трех найденных ранее:
CandleCode
Fml( «CandleCode-b» ) + Fml( «CandleCode-l» ) + Fml( «CandleCode-u» )
Усредненный код свечи ICS Periods:=Input(«Enter Periods»,2,13,2); Mov(Mov(Mov(Fml(«CandlCode») , Periods, S), Periods, S), Periods, S)
Текст индикатора ICS в системе CQG for Windows Body
Abs(Open(@)- Close(@)) Lshd
IF(Close(@) >= Open(@) , Open(@)- Low(@), Close(@)- Low(@) ) Ushd
IF(Close(@) >= Open(@), High(@)- Close(@), High(@)- Open(@)) ThBot_b
BLO(body.c1"(@),Sim,55,0.5) ThBot_l
BLO(lshd.c1"(@),Sim,55,0.5) ThBot_u
BLO(ushd.c1"(@),Sim,55,0.5) ThTop_b
BHI(body.c1"(@),Sim,55,0.5) ThTop_l
BHI(lshd.c1"(@),Sim,55,0.5) ThTop_u
BHI(ushd.c1"(@),Sim,55,0.5) CCod_b
IF(Close(@) = Open(@), 1, 0) * IF( ushd.c1"(@) >= lshd.c1"(@) , 64, 48) +
IF(Close(@) = Open(@), 0, 1) *
(IF(Close(@) > Open(@), 1, 0) *
(IF(body.c1"(@) <= ThBot_b.c1"(@), 80, 0) +
IF(body.c1"(@) > ThBot_b.c1"(@) AND body.c1"(@) <= ThTop_b.c1"(@), 96, 0) +
IF(body.c1"(@) > ThTop_b.c1"(@), 112, 0)) +
IF(Close(@) <Open(@), 1, 0) * (IF( body.c1"(@) <= ThBot_b.c1"(@), 32, 0) + IF( body.c1"(@) > ThBot_b.c1"(@) AND
body.c1"(@) <= ThTop_b.c1"(@), 16, 0) ))
CCod_l
IF(lshd.c1"(@) = 0, 3, 0) +
IF(lshd.c1"(@) < ThBot_l.c1"(@) AND lshd.c1"(@) > 0, 2, 0) + IF(lshd.c1"(@) > ThBot_l.c1"(@) AND lshd.c1"(@) <=
ThTop_l.c1"(@) AND lshd.c1"(@) > 0, 1, 0)
CCod_u
IF( ushd.c1"(@) > 0 AND ushd.c1"(@) <= ThBot_u.c1"(@), 4, 0) + IF(ushd.c1"(@)
> ThBot_u.c1"(@) AND ushd.c1"(@) <= ThTop_u.c1"(@),8, 0) + IF(ushd.c1"(@) > ThTop_u.c1"(@), 12, 0)
CCode
Ccod_b.c1"(@)+ Ccod_l.c1"(@)+ Ccod_u. c1"(@) ICS
MA(MA(MA(CCode.c1"(@),Sim,2),Sim,2), Sim,2)
www.spekulant.ru