Кодирование Японских свечей
|

Кодирование Японских свечей

Метод количественного анализа графиков японских свечей

Графики Японских свечей (japanese candlestick charts) являются общепринятым способом графического представления рыночной информации, а также очень сильным аналитическим инструментом. Разнообразные типовые комбинации свечей содержат легко распознаваемые и надежные сигналы о психологии рынка и возможном будущем его поведении.

Обычный способ применения Японских свечей заключается в том, что отдельным свечам или комбинациям из нескольких свечей приписывается некоторый характерный образ поведения рынка. Например, комбинации “вечерняя звезда”, “утренняя звезда” и “харами”, появившиеся после сильного тренда, предсказывают разворот графика; свечи “doji” свидетельствуют о неопределенности, смене настроений рынка и т.д. По своей природе принятие решений на основе комбинаций свечей является качественным, основанным на рассуждениях о психологии и настроениях рынка. Но, как и во всех методах технического анализа, хотелось бы иметь точные, численные индексы, то есть такие способы измерения силы таких свечей, чтобы можно было использовать эти индексы для более объективного анализа и встраивать их в компьютерные торговые системы.

Метод, предложенный В.Н. Лиховидовым, основан на сопоставлении каждой свече числового кода (Candle Code), имеющего простой смысл: чем более “бычье” содержание мы вкладываем в рисунок данной свечи, тем больший код ей будет присвоен. Наоборот, свечи “медвежьи” получат малые значения кода, и чем более “медвежьей” является свеча, тем меньший код она получит. Несколько подряд идущих свечей с большим значением кода покажут тенденцию роста рынка, а последовательное уменьшение кодов послужит сигналом к развороту тенденции. Усредняя различными способами коды свечей, мы построим разнообразные технические индикаторы. Один конкретный вид такого индикатора, названный автором ICS-Index of Candle Strength (Индекс Силы Свечи), основан на последовательном сглаживании исходного кода короткими скользящими средними; он дает очень наглядные и не запаздывающие сигналы прорыва уровней и трендов.

Принцип кодирования японских свечей

Предлагаемый способ кодирования свечей основан непосредственно на следующих принципах интерпретации свечей, которые используются в техническом анализе:

А – основное значение имеет цвет свечи – белые свечи являются бычьими, черные – медвежьими;

B – главное значение среди уровней, входящих в свечу, имеют уровни открытия и закрытия, иначе говоря, при построении кода свечи мы основной вес приписываем ее телу, тени получат меньшие веса;

C – чем больший размах имеет тот или иной компонент свечи (тело, верхняя тень, нижняя тень), тем больший вес мы ему присвоим в составе нашего индекса.

Сам индекс будет таким образом иметь четыре компоненты, соответствующих цвету, телу, верхней и нижней теням. Поскольку цвет может быть только черным либо белым, на первую компоненту вполне хватит одного двоичного разряда: 0 – черная свеча, 1 – белая свеча. Для остальных компонент надо предусмотреть больше места, так как тень, к примеру, может быть большая, не очень большая или просто маленькая, и ее коды должны быть соответствующими. Мы остановимся на простом способе кодирования: считая, что каждый из компонентов свечи может быть большим, средним, малым по размеру, либо его может вообще не быть, мы предусмотрим на каждую компоненту два двоичных разряда (рис.1).

Структура кода свечей

Итак, код свечи есть семиразрядное бинарное число. Первая компонента кода, первый бинарный разряд, представляет цвет свечи.

цвет свечи

Вторая позиция (два бинарных разряда) кодирует размер тела.

Вторая позиция (два бинарных разряда) кодирует размер тела

Третья и четвертая компоненты (каждая из двух бинарных позиций) кодируют верхнюю и нижнюю тени соответственно.

Третья и четвертая компоненты (каждая из двух бинарных позиций) кодируют верхнюю и нижнюю тени соответственно.

Построенную таким образом последовательность нулей и единиц мы будем считать двоичным представлением некоторого десятичного числа. Это десятичное число и есть код данной свечи (Candle Code).

Candle Code

Замечание. Так как свеча типа doji имеет тело нулевого размера, непонятно, какой цвет ей назначить. Но эту неопределенность легко устранить каким-либо дополнительным правилом. Например, можно считать doji белым, если его верхняя тень больше нижней, можно брать цвет тела doji противоположным цвету предшествующей свечи и т.д.

Посмотрим, как работает этот код в некоторых простых примерах. На рис. 2 для иллюстрации приведены несколько свечей и указаны соотношения их геометрических размеров.

несколько свечей и указаны соотношения их геометрических размеров

Видно, что конструкция нашего индекса вполне соответствует тем основным принципам а-с, которые были положены в его основу.

Можно убедиться в применимости метода, сравнив получаемые коды с хорошо известными правилами интерпретации различных свечей (рис. 3, рис. 4).

интерпретации различных свечей

интерпретации различных свечей

Согласно общепринятой трактовке, изложенной в литературе, свечи 118, 115 (white marubozu), 111 (white opening bozu), 104, 97 (white closing bozu) имеют явно выраженный бычий смысл, 24 рассматривается в литературе как бычья, а 102 – от sideways (неопределенная) до бычьей.

интерпретации различных свечей

Свечи 3 (black marubozu) и 6 дают сильные медвежьи сигналы, 22 – от sideways до медвежьей; 108 часто рассматривается как медвежья, что находится в противоречии с большим значением ее кода. Свечи 111 и 8 (при достаточно большом размере тела) носят названия bullish belt-hold и bearish belt-hold (захват за пояс); 111 внизу графика может давать сильный бычий сигнал, 8 наверху графика может предсказывать медвежий разворот.

Свеча 96-karakasa (umbrella, зонтик); наверху рынка она называется “висельник” (hanging man), а внизу графика ее имя – “hammer” (молот); независимо от ее цвета, karakasa на верху дает sell-сигнал, а внизу – buy. Свеча 32 – пример падающей звезды (shooting star), 63, 57, 53, 51, 48 -doji (63 – doji gravestone, 48 – doji dragonfly, 51 – four price doji); различного типа doji генерируют надежные сигналы возможного будущего изменения тренда.

Пороговое правило для построения кода свечи

Практическая реализация предложенной идеи требует введения некоторых правил, которые позволяли бы решать, какие размеры элементов свечи являются малыми, какие средними и большими. Обозначим как обычно, элементы свечи через open, high, low, close и запишем следующее правило (рис. 6).

Пороговое правило

Мы ввели здесь два пороговых значения (верхнее, имеющее индекс 1, и нижнее с индексом 2) для каждого элемента свечи: b1<b2 для тела, u1<u2 для верхней тени и l1<l2 для нижней тени. Если размер элемента свечи меньше нижнего порога, то этот элемент малый, если размер элемента лежит в диапазоне между верхним порогом и нижним, то этот элемент среднего размера, а все, что больше верхнего порога – большое.

пороговое решающее правило

При фиксированном выборе порогов b1, b2, u1, u2, l1, l2 код, присваиваемый свече, определен единственным образом. Но величины этих порогов должны быть различными для разных рынков, так как они зависят от волатильности рынков: свеча, которая выглядит большой на одном рынке, может оказаться маленькой на другом. Точно так же, пороги должны меняться при переходе от одного временного масштаба к другому: на часовых и дневных графиках свои ориентиры для размеров свечей. Следовательно, необходимо анализировать статистику распределений размеров свечей и на ее основе выбирать подходящие пороги. Задача интересная и творческая; решать ее можно разными средствами. Но не следует забывать о том, что это технический анализ и все разумные подходы здесь должны основываться на простых процедурах. Из различных вариантов автор выбрал вполне универсальный и простой, основанный на применении диапазонов Болинджера (Bollinger Bands). Рис. 8 иллюстрирует его на примере дневного графика британского фунта.

выбор порогового правила свечи

Три графика здесь представляют собой результаты применения технического индикатора Bollinger Band к размерам верхних теней (ushd), тела (body) и нижних теней (lshd) соответственно.

Поскольку Bollinger Band является мерой среднеквадратичного разброса, то он дает подходящую оценку волатильности размеров элементов свечей. В терминах системы Meta Stock Indicator Builder, верхний порог представлен функцией BbandTop, а нижний порог функцией BBandBot. Параметр “Deviations” функций Bollinger Band выбран равным 0.5 (в случае стандартного гауссовского распределения это соответствует примерно одинаковой вероятности всех трех диапазонов: примерно 38 процентов свечей соответствуют среднему размеру, а по 31 проценту – малому и большому). Временной период в функциях Bollinger Band мы везде выбрали равным 55.

Рис. 9 иллюстрирует результат кодирования для дневного графика GBP.

результат кодирования для дневного графика GBP

Технические индикаторы типа ICS

Можно предложить несколько путей использования такой схемы кодирования для целей технического анализа и построения компьютерных торговых систем. Но наиболее естественной является попытка построения новых технических индикаторов. Действительно, сам по себе график Candle Code не выглядит привлекательным как инструмент анализа. С другой стороны, если несколько подряд идущих свечей имеют бычьи коды, их скользящее среднее покажет тенденцию к росту, а если затем попадутся разворотные свечи и медвежьи, усредненный график покажет разворот вниз. Следовательно, все, что нам необходимо – это подходящее сглаживание для выделения таких краткосрочных тенденций. Полезным свойством Candle Code окажется и то, что его значения ограничены диапазоном от 0 до 128; после сглаживания индикатор будет лежать между 0 и 100, что привычно для технических аналитиков.

Index of Candle Strength (ICS)

Рис. 10 показывает результат сглаживания кодов для графика швейцарского франка. Верхний график представляет здесь индикатор, который мы назвали Index of Candle Strength (ICS); он получается трехкратным сглаживанием кода с помощью простого скользящего среднего (в данном случае – двухточечного).

Формирование медвежьего тренда 1 в мае сопровождалось возникновением тренда а и уровня поддержки b на графике ICS. Прорыв линии a 28 мая дал явный “long” сигнал, но тренд 1 не был нарушен (1 июня), цены сформировали новый локальный минимум (4 июня), который одновременно был подтвержден уровнем поддержки b. Последующий прорыв линии a 9 июня дал сильный опережающий “long” сигнал: двумя днями позже тренд 1 был пробит и начал формироваться новый, восходящий тренд 2. В процессе развития этого тренда уровень поддержки b оставался в силе, пока не создалась двойная дивергенция 3, c, которая дала сильный “short” сигнал, немедленно подтвержденный одновременным прорывом тренда 2 на графике цены и уровня поддержки b на графике индикатора, с последующим формированием нового медвежьего тренда.

Приложение 1

Индикатор в терминах MetaStock Indicator Builder и CQG for Windows.

Текст конструкций, связанных с построением CandleCode и производных от него индикаторов в терминах MetaStock Indicator Builder и CQG for Windows.

Текст индикатора ICS в системе MetaStock Indicator Builder

Размеры элементов свечи (тело, верхняя и нижняя тени):

body
Abs(OPEN-CLOSE)
lshd
If(CLOSE>=OPEN,OPEN-LOW,CLOSE-LOW)
ushd
If(CLOSE>=OPEN,HIGH-CLOSE,HIGH-OPEN)

Для каждого компонента свечи определяются верхний и нижний пороги на основе Bollinger Bands:

ThBot_b
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)

Вычисление кода свечи Сandle Сode для удобства разделено на три части:

CandleCode-b
I f ( C L O S E = O P E N, 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)

Применение различных стандартных функций технического анализа

Применение различных стандартных функций технического анализа (например, MA, RSI, MACD, Osc) к графику Candle Code или его сглаженному варианту может породить разнообразные новые функции технического анализа, которые, несомненно, будут полезными для анализа графиков и построения компьютерных торговых систем.

Рис. 11 показывает дневной график GBP с ICS, демонстрирующим серию дивергенций, точно предсказавших развороты рынка. На верхнем графике изображена композиция из трижды сглаженного ICS и еще раз трижды сглаженного. Полученный индикатор напоминает Stochastics: пересечение его быстрой и медленной линий дает хорошие сигналы.

Другие варианты составных Candle Сode – индикаторов представлены на рис.12 для графика японской йены: это обычный индикатор MACD (9,12,26), примененный к ICS, а также суперпозиция Triplet (тройное сглаживание двухточечным МА) и RSI.(8) над CandleCode. Характерной чертой RSI-подобного индикатора является образование множества линий поддержки и сопротивления, прорывы которых дают сильные не запаздывающие сигналы. CandleCode – вариант MACD, как и его обычный вариант, может использоваться для выделения тренда или как осциллятор.

Таким образом, технические индикаторы, построенные с помощью кода свечи Candle Code, представляют собой весьма интересные инструменты анализа рыночных графиков. В отличие от других индикаторов, принимающих во внимание только один элемент свечи (например, цену закрытия) или некоторые ее элементы, код свечи учитывает конфигурацию всей свечи в целом. А поскольку выбор порога основан на статистике рынка, то даже код отдельной свечи содержит много информации обо всем рынке.

 Январь-февраль 2000

Виктор Лиховидов