Графический анализ и торговые системы
|

Графический анализ и торговые системы

Графический анализ и торговые системыКак известно, к методам графического анализа относятся классический технический анализ, японские свечи и крестики-нолики. Им также родственны такие методы прогнозирования, как фрактальный анализ и анализ по уровням (Фибоначчи и т.п.). Отдельный разговор об индикаторе ZigZag, позволяющем увидеть пики трендов и отфильтровать ценовой шум. Эти методы объединяет неоднозначность интерпретации, что затрудняет создание на их основе механических торговых систем.

Японские свечи

В MetaStock уже существуют заранее запрограммированные функции, обозначающие комбинации японских свечей. К программному пакету даже прилагается готовый эксперт, выдающий на основе этих комбинаций сигналы. Эксперт, правда, далек от совершенства. Тем не менее, на основе японских свечей торговые системы разрабатывать возможно, и следующий пример это подтвердит. На основании всех комбинаций японских свечей, имеющихся в языке MetaStock, пишем торговую систему, выделяя бычьи и медвежьи разворотные фигуры:

Enter Long:

BigWhite() OR

BullHaramiCross() OR

BullHarami() OR

Bull3Formation() OR

EngulfingBull() OR

Hammer() OR

LongLowerShadow() OR

MorningDojiStar() OR

MorningStar() OR

PiercingLine() OR

RisingWindow() OR

3WhiteSoldiers()

Enter Short:

Bear3Formation() OR

BigBlack() OR

BearHaramiCross() OR

BearHarami() OR

DarkCloud() OR

DojiStar() OR

EngulfingBear() OR

EveningDojiStar() OR

EveningStar() OR

FallingWindow() OR

GravestoneDoji() OR

HangingMan() OR

InvHammer() OR

LongLeggedDoji() OR

LongUpperShadow() OR

OnNeckLine() OR

SeparatingLines() OR

ShootingStar() OR

3BlackCrows()

На 3-часовых графиках EUR/USD при тестировании система дает среднемесячную прибыль 2078 пунктов. За 86 дней тестирования система совершила 85 сделок, из которых 74, т.е. 87% – прибыльные. Максимальная просадка – 39 пунктов, средняя прибыль за сделку – 70 пунктов. Сигналы и кривая доходности системы показаны на рисунке 1.

Рис. 1. Кривая доходности системы на основе разворотных комбинаций японских свечей.

Рис. 1. Кривая доходности системы на основе разворотных комбинаций японских свечей.

Следует сразу же отметить, что японские свечи как метод прогнозирования хорошо работают только на графиках с достаточно большим временным масштабом, несмотря на труды некоторых теоретиков (сразу видно, что не практиков) внутридневной торговли. Доказать это можно, опять же, опытным путем, протестировав систему на 5-минутных графиках евро. Результат – за 3 дня теста система дала убыток 1081 пункт, открывая сделки буквально на каждой свече.

На основании японских свечей также можно разрабатывать индикаторы. В России известны публикации постоянного автора «ВС» Виктора Лиховидова о методах кодирования японских свечей. Существуют и другие методики математической обработки японских свечей, менее известные российскому читателю.

Так, разработанный Адамом Хефнером индикатор цвета свечей выделяет периоды рынка с преобладанием черных свечей или белых свечей, определяя бычий и медвежий тренды. Цвет свечи определяется просто: если цена закрытия выше цены открытия, свеча белая, если цена закрытия ниже цены открытия, свеча черная. Формула индикатора по умолчанию такая:

Lb : = Input ( «Look – Back Period?»,3,60,14);

B:=CLOSE – OPEN;

Bup:= Sum(B > 0, Lb);

Bdn:= Sum(B < 0, Lb);

BM:=(Bup/(Bup+Bdn))*100;

Mov(Bm,3,S)

Индикатор представляет собой осциллятор с экстремумами 30 и 70. Бычий сигнал формируется при пересечении индикатором снизу вверх линии 30, медвежий сигнал – при пересечении сверху вниз линии 70. Пригодность этого индикатора для разработки торговых систем дискуссионна, т.к. он исследует ретроспективу и не может предугадать, какой тренд будет в дальнейшем.

Но направление доминирующего тренда по нему определять можно. Если использовать индикатор в торговых системах, то код торговой системы в MetaStock будет следующий:

Enter Long:

B:=CLOSE – OPEN;

Bup:= Sum(B > 0, opt1);

Bdn:= Sum(B < 0, opt1);

BM:=(Bup/(Bup+Bdn))*100;

CC:=Mov(Bm,opt2,S);

Cross(CC, opt3)

Enter Short:

B:=CLOSE – OPEN;

Bup:= Sum(B > 0, opt1);

Bdn:= Sum(B < 0, opt1);

BM:=(Bup/(Bup+Bdn))*100;

CC:=Mov(Bm,opt2,S);

Cross(opt4, CC)

При тестировании системы на 3-часовых графиках EUR/USD результат – 850 пунктов в месяц (рис. 2), с 87% прибыльных сделок, при значениях opt1 = 14, opt2 = 3, opt3 = 45, opt4 = 52.

Рис. 2. Индикатор цвета свечи на 3-часовом графике EUR/USD и кривая доходности системы с применением этого индикатора.

Рис. 2. Индикатор цвета свечи на 3-часовом графике EUR/USD и кривая доходности системы с применением этого индикатора.

 Поклонникам фрактального анализа

На язык MetaStock «перевод» ценовых пиков графика и фракталов довольно прост. Известны стандартные формулы, используемые в ряде торговых систем. По-видимому, часть из них используется и для определения фракталов в эксперте Билла Вильямса, программе, поставляемой в комплекте MetaStock, но защищенной паролем.

Прежде всего хочется предупредить многочисленных поклонников фрактального анализа, что далеко не все комбинации баров пригодны для построения торговых систем.

Что касается псевдонаучных теорий типа – если вершины трех идущих подряд баров выше максимумов, это означает близкий обвал рынка, – то такие стратегии в MetaStock вообще лучше не использовать. Тем не менее, есть несколько торговых систем, отслеживающих пики на графиках баров.

Например, система, выделяющая пики на основе функций Highest High Value и Lowest Low Value, а также положения высшей точки бара относительно скользящего среднего:

Enter Long:

If(H-L > Ref(HHV((H-L),opt1),-1)

AND ((H >= Mov(C,opt2,S)) OR

Ref(H,-1) >= Ref(Mov(C,opt2,S),-1))

AND C < Mov(C,opt2,S),1,0)

Enter Short:

If(H-L > Ref(HHV((H-L),opt1),-1)

AND ((L <= Mov(C,opt2,S)) OR Ref(L,

-1) <= Ref(Mov(C,opt2,S),-1)) AND C >

Mov(C,opt2,S),1,0)

На часовом графике EUR/USD лучший результат системы – 1068 пунктов в месяц при 15 совершенных сделках, из которых все прибыльные (рис. 3), при opt1 = 9 и opt2 = 10.

Рис. 3. Кривая доходности системы на основе разворотных фигур баров на часовом графике EUR/USD.

Рис. 3. Кривая доходности системы на основе разворотных фигур баров на часовом графике EUR/USD.

Расположение баров и индикатор Вильямса

Фрактальный анализ также можно причислить к визуальным методам. Тем не менее, методики, разработанные Биллом Вильямсом, сравнительно легко поддаются выражению в виде кодов механических торговых систем в MetaStock и других программах. Ниже читатель сможет ознакомиться с одним из примеров сочетания элементов стратегии Profitunity и анализа расположения баров относительно друг друга.

Алгоритм системы следующий:

1. Длинные позиции открываются, если: а) цены закрытия двух последних свечей растут друг относительно друга, а индикатор AC Green выше индикатора AC Red;  б) цены закрытия трех последних свечей растут друг относительно друга, а индикатор AC Green ниже индикатора AC Red.

2. Короткие позиции открываются, если: а) цены закрытия двух последних свечей падают друг относительно друга, а индикатор AC Green ниже индикатора AC Red; б) цены закрытия трех последних свечей падают друг относительно друга, а индикатор AC Green выше индикатора AC Red.

3. Позиции закрываются с помощью плавающего стоп-лосса по ATR.

Код системы следующий:

Enter Long:

AC1:=(If((Mov(((H+L)/2),opt1,S)-Mov(((H+L)/2),opt2,S))-Mov((Mov(((H+L)/2),opt1,S)-Mov (((H+L)/2),opt2,S)),opt1,S)>(Ref(Mov (((H+L)/2),opt1,S),-1)-Ref(Mov(((H+L)/2),opt2,S),-1))-Mov((Ref(Mov(((H+L)/2),opt1,S),-1)-Ref(Mov(((H+L)/2),opt2,S),-1)),opt1,S),(Mov(((H+L)/2),opt1,S)-Mov(((H+L)/2),opt2,S))-Mov((Mov(((H+L)/2),opt1,S)-Mov(((H+L)/2),opt2,S)),opt1,S),0));

AC2:=If((Mov(((H+L)/2),opt1,S)-Mov(((H+L)/2),opt2,S))-Mov((Mov(((H+L)/2),opt1,S)-Mov(((H+L)/2),opt2,S)),opt1,S)<(Ref(Mov(((H+L)/2),opt1,S),-1)-Ref(Mov(((H+L)/2),opt2,S),-1))-Mov((Ref(Mov(((H+L)/2),opt1,S),-1)-Ref(Mov(((H+L)/2),opt2,S),-1)),opt1,S),(Mov(((H+L)/2),opt1,S)-Mov(((H+L)/2),opt2,S))-Mov((Mov (((H+L)/2),opt1,S)-Mov(((H+L)/2),opt2,S)),opt1,S),0);

(C>Ref(C, -1) AND Ref(C, -1)> Ref(C, -2) AND AC1>AC2) OR (C>Ref(C, -1) AND Ref(C, -1)> Ref(C, -2) AND Ref(C, -2)>Ref(C, -3)

AND AC1<AC2)

Close Long:

LOW < (Ref(LOW,-1)-Ref( opt3*ATR(opt4),-1))

Enter Short:

AC1:=(If((Mov(((H+L)/2),opt1,S)-Mov(((H+L)/2),opt2,S))-Mov((Mov(((H+L)/2),opt1,S)-Mov(((H+L)/2),opt2,S)),opt1,S)>(Ref(Mov(((H+L)/2),opt1,S),-1)-Ref(Mov(((H+L)/2),opt2,S),-1))-Mov((Ref(Mov(((H+L)/2),opt1,S),-1)-Ref(Mov(((H+L)/2),opt2,S),-1)),opt1,

S),(Mov(((H+L)/2),opt1,S)-Mov(((H+L)/2),opt2,S))-Mov((Mov(((H+L)/2),opt1,S)-Mov(((H+L)/2),opt2,S)), opt1,S),0));

AC2:=If((Mov(((H+L)/2),opt1,S)-Mov(((H+L)/2),opt2,S))-Mov((Mov(((H+L)/2),opt1,S)-Mov(((H+L)/2),opt2,S)),opt1,S)<(Ref(Mov(((H+L)/2),opt1,S),-1)-Ref(Mov(((H+L)/2),opt2,S),-1))-Mov((Ref(Mov(((H+L)/2),opt1,S),-1)-Ref(Mov(((H+L)/2),opt2,S),-1)),opt1,S),(Mov(((H+L)/2),opt1,S)-Mov(((H+L)/2),opt2,S))-Mov((Mov(((H+L)/2),opt1,S)-Mov(((H+L)/2),opt2,S)),opt1,S),0);

(C<Ref(C, -1) AND Ref(C, -1) < Ref(C, -2) AND AC1<AC2) OR

(C<Ref(C, -1) AND Ref(C, -1) <Ref(C, -2) AND Ref(C, -2)<Ref(C, -3) AND AC1>AC2)

Close Short:

HIGH > (Ref(HIGH,-1)+Ref (opt3*ATR(opt4),-1))

Эта система, как было выяснено опытным путем, дает наилучший результат на 2-часовых графиках EUR/USD при opt1 = 4, opt2 = 26, opt3 = 1, opt4 = 4. Среднемесячная доходность – 1425 пунктов, при 75% прибыльных сделок (рис. 4).

Рис. 4. Кривая доходности торговой системы на основе индикаторов Вильямса на 2-часовых графиках EUR/USD.

Рис. 4. Кривая доходности торговой системы на основе индикаторов Вильямса на 2-часовых графиках EUR/USD.

 Мистификации

Как уже говорилось, возможности построения в MetaStock торговых систем и индикаторов на основе методов визуального, или графического, анализа в значительной степени ограничены. Однако именно визуальный анализ привлекает огромное внимание создателей разного рода «чудодейственных» индикаторов и торговых систем.

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

На деле же, чаще всего система выискивает такие фигуры среди массива исторических данных, что очень легко. Тогда как подогнать под исторические данные математические индикаторы – например скользящие средние или осцилляторы – практически невозможно.

Можно привести конкретные примеры. Так, на сайте www.tacticaltrader.ca некая канадская фирма предлагает купить пакет торговых систем для MetaStock. Эти торговые системы позиционируются разработчиками как средства нахождения пиков свинговых движений рынка. Среди прочих есть индикатор со следующим кодом:

If((({R2}(Zig((((HIGH+LOW+CLOSE)/3)-(Abs(2*(HIGH+LOW++CLOSE)/3)-HIGH)+(Abs(2*(HIGH+LOW+CLOSE)/3)-LOW)),3,%)<

Ref(Zig((((HIGH+LOW+CLOSE)/3)-(Abs(2*(HIGH+LOW+CLOSE)/3)-HIGH)+(Abs(2*(HIGH+LOW+CLOSE)/3)-LOW)),3,%),-1) ) AND {S2}Zig (((HIGH+LOW+CLOSE)/3-(((Abs (2*(HIGH+LOW+CLOSE)/3))-LOW)-(Abs(2*(HIGH+LOW++CLOSE)/3)-HIGH))),3,%) < Ref(Zig(((HIGH+LOW+CLOSE)/3-(((Abs(2*(HIGH+LOW+CLOSE)/3))–LOW)-(Abs(2*(HIGH+LOW+CLOSE)/3)-HIGH))),3,%),-1))=1),-1,1)

Трейдер, более-менее знакомый с программированием в MetaStock и знающий, что означает функция Zig, может понять, что речь идет об индикаторе ZigZag. Этот индикатор занимает особое место в визуальном анализе.

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

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

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

Существуют и менее брутальные, но все равно малоприятные для трейдеров интерпретации визуального анализа. К таким, в частности, относятся многочисленные попытки создания систем и экспертов на основе метода Томаса Демарка «Секвента». Нельзя полностью отрицать значение деятельности Демарка, в частности, созданные им индикаторы.

Но при изучении метода секвенты можно сделать вывод, что создавался он в расчете на невозможность его механизации в программах технического анализа, и, соответственно, его проверки.

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

Еще большее недоумение может вызвать нагромождение эмпирических правил, по которым должна строиться торговля. Давно известно, что чем больше условий поставлено в механической торговой системе, тем больше вероятность, что она «запутается» или начнет подстраиваться под исторические данные.

2004

Роман Мамчиц