| |
 |
MetaStock System Test 02 - Tema Binary Wave, QStick
|
 |
|
|
|
Views:
1694 |
| Added: February 09, 2007 |
| |
|
|
|
| This formula has not been rated yet |
| |
| |
email this link
|
| |
| |
| Tags:
MetaStock, system
|
| |
 |
The basic idea behind a MetaStock binary wave is to use if statements on several
MetaStock indicators and have them return plus one for a bullish indication, minus
one for a bearish indication, and zero for a neutral condition. Then you add them
all up for your binary wave indicator. I decided to format all my indicators so
they could be plotted as a histogram. For these indicators plotting as histograms,
positive is bullish and negative is bearish. To cut down on whipsaws, I decided
that over +5 would be bullish, under -13 would be bearish and anything in between
would be neutral. Therefore my binary wave formulas are:
BW2 Demand Index
If(Tema(DI(),21) > 5,+1,If(Tema(DI(),21) < -13,-1,0))
BW3 Linear Regression Slope
If(Tema(10000*LinRegSlope(C,34)/C,34) > 5,+1,
If(Tema(10000*LinRegSlope(C,34)/C,34) < -13,-1,0))
BW4 CCI
If(Tema(CCI(21),21) > 5,+1, If(Tema(CCI(21),21) < -13,- 1,0))
BW5 ROC
If(Tema(ROC(C,21,%),21) > 2,+1,If(Tema(ROC(C,21,%),21) < -2,-1,0))
BW6 Money Flow
If(Tema(MFI(21),21)-50 > 5,+1,If(Tema(MFI(21),21)-50 < -5,-1,0))
BW7 CMO
If(Tema(CMO(C,21),21) > 5,+1,If(Tema(CMO(C,21),21) < -5,-1,0))
BW8 VAR ma
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))
The next formula just adds up the binary wave:
BW Add
Fml("BW2") + Fml("BW3") + Fml("BW4") + Fml("BW5")
+
Fml("BW6") + Fml("BW7") + Fml("BW8")
Next, I decided to do something a little different. Since the whole purpose
of this test is to catch a trending stock, I decided to add an amplifier that
would get larger as the trend got stronger. Since I like Fibonacci numbers,
I decided to use Rsquared as a measure of trend strength and base my amplifier
on Fibonacci numbers. The formula I finally came up with after a lot of tinkering
follows.
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))))
The last step in constructing the binary wave was to decide on the smoothing
and put it all together. Of course, I used tema smoothing.
Tema Binary Wave Composite
Periods := Input("Enter Tema Smoothing Periods",8,233,21);
Tema(Fml("BW Add")*Fml("BW Amplifier"),Periods)
The final step is to come up with a system test for the Tema Binary Wave Composite.
Remember, the binary wave is just made up of a bunch of technical indicators
that I give a +1 value when bullish, 0 when neutral, and -1 when bearish. Then
they are summed and smoothed. So in general a positive value is bullish and
a negative value is bearish. Also a rising number is bullish and a falling number
is bearish. Therefore you could use a zero crossover to the upside as a buy
signal and a crossover to the downside as a sell signal. If you had a good algorithm,
you could also use a rise from a negative peak (or trough) as a buy signal and
a fall from a positive peak as a sell signal. I decided to use a 8 day moving
average of the BW with a crossover of the BW for my algorithm in an attempt
to get an early signal on a rise from a negative peak. It does have the disadvantage
of finding way too many peaks so I only use it as an Alert. For confirmation
I use the QStick function and a variable moving average function.
QStick was developed by Chande as a way to quantify candlesticks. Since the
difference between the open and close prices lies at the heart of candlestick
charting, QStick is simply a moving average of that difference. Negative values
of QStick correlate to black candlesticks, positive values to white candlesticks.
Since in general black candles are bearish and white candles are bullish, this
indicator can also be plotted as a histogram and interpreted the same was as
the Binary Wave. The formula is:
Periods := Input("Enter Periods",1,233,34);
Tema(Qstick(Periods),Periods)
Now to get my open long signal I use the ALERT signal with an 8 day vma BW
crossover of the BW. Then to actually get the signal, I have to have both the
QStick rising and the 21 day vma greater then the 55 day vma.
Therefore my buy signal became:
MetaStock System Test 02 - Tema Binary Wave Composite, QStick
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)
Since the market has an upward bias, I wanted my sell signal to be more restrictive.
Therefore instead of trying to catch a fall from a positive peak as my sell
alert, I wanted a crossover of an optimized negative number. I still used QStick
and vma to confirm and also added that the close should be lower than yesterdays
low.
Therefore, my sell signal became:
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)
Then I wanted exit conditions that were less then full signal reversals. I decided
that the BW being less than a negative number would be my primary close long
signal, but I also wanted confirmation from other indicators. After a lot of
trial and error I used the following:
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
Finally I also used Fibonacci numbers for my optimization:
Opt 1: Min 3, Max 13, Step 5
Opt 2: Min 3, Max 13, Step 5
Code:
The basic idea behind a MetaStock binary wave is to use if statements on several
MetaStock indicators and have them return plus one for a bullish indication, minus
one for a bearish indication, and zero for a neutral condition. Then you add them
all up for your binary wave indicator. I decided to format all my indicators so
they could be plotted as a histogram. For these indicators plotting as histograms,
positive is bullish and negative is bearish. To cut down on whipsaws, I decided
that over +5 would be bullish, under -13 would be bearish and anything in between
would be neutral. Therefore my binary wave formulas are:
BW2 Demand Index
If(Tema(DI(),21) > 5,+1,If(Tema(DI(),21) < -13,-1,0))
BW3 Linear Regression Slope
If(Tema(10000*LinRegSlope(C,34)/C,34) > 5,+1,
If(Tema(10000*LinRegSlope(C,34)/C,34) < -13,-1,0))
BW4 CCI
If(Tema(CCI(21),21) > 5,+1, If(Tema(CCI(21),21) < -13,- 1,0))
BW5 ROC
If(Tema(ROC(C,21,%),21) > 2,+1,If(Tema(ROC(C,21,%),21) < -2,-1,0))
BW6 Money Flow
If(Tema(MFI(21),21)-50 > 5,+1,If(Tema(MFI(21),21)-50 < -5,-1,0))
BW7 CMO
If(Tema(CMO(C,21),21) > 5,+1,If(Tema(CMO(C,21),21) < -5,-1,0))
BW8 VAR ma
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))
The next formula just adds up the binary wave:
BW Add
Fml("BW2") + Fml("BW3") + Fml("BW4") + Fml("BW5")
+
Fml("BW6") + Fml("BW7") + Fml("BW8")
Next, I decided to do something a little different. Since the whole purpose
of this test is to catch a trending stock, I decided to add an amplifier that
would get larger as the trend got stronger. Since I like Fibonacci numbers,
I decided to use Rsquared as a measure of trend strength and base my amplifier
on Fibonacci numbers. The formula I finally came up with after a lot of tinkering
follows.
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))))
The last step in constructing the binary wave was to decide on the smoothing
and put it all together. Of course, I used tema smoothing.
Tema Binary Wave Composite
Periods := Input("Enter Tema Smoothing Periods",8,233,21);
Tema(Fml("BW Add")*Fml("BW Amplifier"),Periods)
The final step is to come up with a system test for the Tema Binary Wave Composite.
Remember, the binary wave is just made up of a bunch of technical indicators
that I give a +1 value when bullish, 0 when neutral, and -1 when bearish. Then
they are summed and smoothed. So in general a positive value is bullish and
a negative value is bearish. Also a rising number is bullish and a falling number
is bearish. Therefore you could use a zero crossover to the upside as a buy
signal and a crossover to the downside as a sell signal. If you had a good algorithm,
you could also use a rise from a negative peak (or trough) as a buy signal and
a fall from a positive peak as a sell signal. I decided to use a 8 day moving
average of the BW with a crossover of the BW for my algorithm in an attempt
to get an early signal on a rise from a negative peak. It does have the disadvantage
of finding way too many peaks so I only use it as an Alert. For confirmation
I use the QStick function and a variable moving average function.
QStick was developed by Chande as a way to quantify candlesticks. Since the
difference between the open and close prices lies at the heart of candlestick
charting, QStick is simply a moving average of that difference. Negative values
of QStick correlate to black candlesticks, positive values to white candlesticks.
Since in general black candles are bearish and white candles are bullish, this
indicator can also be plotted as a histogram and interpreted the same was as
the Binary Wave. The formula is:
Periods := Input("Enter Periods",1,233,34);
Tema(Qstick(Periods),Periods)
Now to get my open long signal I use the ALERT signal with an 8 day vma BW
crossover of the BW. Then to actually get the signal, I have to have both the
QStick rising and the 21 day vma greater then the 55 day vma.
Therefore my buy signal became:
MetaStock System Test 02 - Tema Binary Wave Composite, QStick
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)
Since the market has an upward bias, I wanted my sell signal to be more restrictive.
Therefore instead of trying to catch a fall from a positive peak as my sell
alert, I wanted a crossover of an optimized negative number. I still used QStick
and vma to confirm and also added that the close should be lower than yesterdays
low.
Therefore, my sell signal became:
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)
Then I wanted exit conditions that were less then full signal reversals. I decided
that the BW being less than a negative number would be my primary close long
signal, but I also wanted confirmation from other indicators. After a lot of
trial and error I used the following:
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
Finally I also used Fibonacci numbers for my optimization:
Opt 1: Min 3, Max 13, Step 5
Opt 2: Min 3, Max 13, Step 5
Source: http://www.guppytraders.com
all systems for MetaStock
all systems
|