Tema Binary Wave Composite, QStick
Основная идея, лежащая в основе двоичной волны (binary
wave) - это получение показаний от нескольких индикаторов, так, чтобы они
возвращали плюс единицу, когда сигнализируют о покупке, минус единицу при
сигнале на продажу и ноль при нейтральном состоянии. Затем их показания
складываются, чтобы получить результирующий индикатор - собственно двоичную
волну. Я представляю свою двоичную волну в виде гистограммы. Все, что выше
+5 будет бычьим состоянием, меньше -13 - медвежьим, а промежуток -
нейтральным. Формулы таковы:
BW2
If(Tema(DI(),21) > 5,+1,If(Tema(DI(),21) < -13,-1,0))
BW3
If(Tema(10000*LinRegSlope(C,34)/C,34) > 5,+1,
If(Tema(10000*LinRegSlope(C,34)/C,34) < -13,-1,0))
BW4
If(Tema(CCI(21),21) > 5,+1, If(Tema(CCI(21),21) < -13,-
1,0))
BW5
If(Tema(ROC(C,21,%),21) > 2,+1,If(Tema(ROC(C,21,%),21) <
-2,-1,0))
BW6
If(Tema(MFI(21),21)-50 > 5,+1,If(Tema(MFI(21),21)-50 <
-5,-1,0))
BW7
If(Tema(CMO(C,21),21) > 5,+1,If(Tema(CMO(C,21),21) <
-5,-1,0))
BW8
If(Mov(C,21,VAR) > Mov(C,55,VAR) AND HHV(Mov(C,233,VAR),5) =
HHV(Mov(C,233,VAR),13),+1,If(Mov(C,21,VAR) < Mov(C,55,VAR) AND LLV(Mov(C,233,VAR),5)
= LLV(Mov(C,233,VAR),13),-1,0))
Следующая формула складывает все это в двоичную волну:
BW Add
Fml("BW2") + Fml("BW3") + Fml("BW4") + Fml("BW5") + Fml("BW6")
+ Fml("BW7") + Fml("BW8")

Затем я решил сделать кое-что по другому. Так как задача
этой системы - находить тренды. я решил добавить усилитель, для выявления
тренда на ранних стадиях. Мне нравятся числа Фибоначчи, и я пользуюсь
Rsquare, как измерителем силы тренда. На этом то я и основал свой усилитель.
После долгих раздумий получилась следующая формула:
BW Amplifier
If(RSquared(C,21) > 0.8,5,If(RSquared(C,21) > 0.6,3,If(RSquared(C,21)
> 0.4,2, If(RSquared(C,21)>0.2,1,0.5))))
Tema Binary Wave Composite
Periods := Input("Enter Tema Smoothing Periods",8,233,21);
Tema(Fml("BW Add")*Fml("BW Amplifier"),Periods)

И наконец, давайте построим систему торговли для Tema
Binary Wave Composite. Помните, двоичная волна - это сложение нескольких
индикаторов, которые суммируются и сглаживаются. Значит, положительные
значения бутут символизировать движение вверх, отрицательные - вниз. Кроме
того, рост волны означает бычьи настроения на рынке, падение - медвежьи.
Стало быть, мы можем использовать пересечение нулевой линии снизу вверх, как
сигнал к покупке, а сверху вниз - к продаже. При хорошем алгоритме можно
также пользоваться началом подъема от нижних значений для покупки или же
началом падения от пиков - для продажи. Я решил использовать пересечение
8-дневной средней от BW с самим индикатором для получения ранних сигналов.
Для подтверждения я пользуюсь индикатором QStick и переменной средней.
Формула:
Periods := Input("Enter Periods",1,233,34);
Tema(Qstick(Periods),Periods)
Чтобы получить сигнал к покупке, я использую функцию
ALERT с пересечением 8 дневной vma от BW с BW. Кроме того, долен повышаться
QStick, а 21-дневная vma должна быть больше, чем 55 дневная vma.
Вот сигнал к покупке:
Enter Long
Alert(Cross(Fml("Tema Binary Wave Comp"), Mov(Fml("Tema
Binary Wave Comp"),8,S)),21) AND HHV(Tema(Qstick(34),34),5) = HHV(Tema(Qstick(34),34),13)
AND Mov(H,21,VAR) > Mov(H,55,VAR)
Из-за бычьего настроения рынка я сделал сигнал к продаже
более требовательным. Вместо попыток уловить падения от пиков я использую
пересечение с оптимизированным отрицательным числом. По прежнему для
подтверждения используется QStick и vma, да еще добавлена необходимость
сегодняшнего закрытия ниже вчерашнего минимума.
Вот сигнал к продаже:
Enter Short
Alert(Cross(-opt2,Fml("Tema Binary Wave Comp")),8) AND Tema(Qstick(34),34)
< -0.1 AND C < Ref(L,-1) AND Mov(L,21,VAR) < Mov(L,55,VAR)
Выходы у меня получились следующие:
Close Long
Fml("Tema Binary Wave Comp") < -opt1 AND Tema(Qstick(34),34)
< 0 AND LLV(Mov(L,21,VAR),5) = LLV(Mov(L,21,VAR),13)
Close Short
Fml("Tema Binary Wave Comp") > 0 AND Tema(Qstick(34),34) >
0.08
При оптимизации я пользуюсь числами Фибоначчи:
Opt 1: Min 3, Max 13, Step 5
Opt 2: Min 3, Max 13, Step 5
