PureBytes Links
Trading Reference Links
|
Hi,
I would characterize your definition of upper or lower breakout as a
continuation signal not a breakout.
In my opinion an upper breakout always starts from the lower Bband
and a lower breakout always starts from the upper Bband. The trick
there is to find that particular value of the Z-Score (+/-2)that will
detect the breakout or counter-trend pullback. It is made much
easier by calculating a range of Z-Scores with different moving
averages (2-21) & performing a check on it using StochZ(50) & StochZ
(200).
The Bollinger Bands are Standard Deviation Bands. It's superiority
is in showing your investments volatility along with the likely
support and resistance areas (Z=0). The extremes of the band (+/-2)
are considered "unusual". Every time you see an investment reach the
extremes, it is said to be at the "Bollinger Band". However, it is
also a key turning point. The price can be expected to be anywhere
within the 95% confidence band at any time. The moment the
investment hits the extremes, it is now statistically significant and
something has caused this new valuation and it is time to search for
a signal using your favorite Entry/Exit Trading Signal Detection
system.
But, sometimes a breakout becomes a counter-trend pullback & vice-
versa. The trick there is to detect the volatility. You may find
that the volatility characteristics are quite different for these two
types of market conditions.
Regards,
Pal
--- In amibroker@xxxxxxxxxxxxxxx, "Dimitris Tsokakis" <TSOKAKIS@xxxx>
wrote:
> Here is an application of the method.
> Suppose we trade BBands and suppose we buy at the upper breakout
and sell some, say 8, days later.
> The usual code would be, from 1/1/2003 till now
>
> // Without the method
> t=8;
> Buy=Cross(C,bt);Buy=ExRemSpan(Buy,t);Sell=Ref(Buy,-t);
> SetTradeDelays( 1, 1, 1, 1 ) ;
> e2=Equity(1,3,1030101,1030924);
>
> where bt is the BBandTop(C,n,f) upper Bollinger Band
> Buy/Sell at Open with delay +1.
>
> Now we know in advance the critical level X1 to have a BB breakout
tomorrow.
> We may use it as a BuyPrice and set Buy delay to 0.
> The new system would be
>
> // With the method
> t=8;
> Buy=Cross(C,bt);Buy=ExRemSpan(Buy,t);Sell=Ref(Buy,-t);BuyPrice=Ref
(x1,-1);
> SetTradeDelays( 0, 1, 1, 1 ) ;e1=Equity(1,3,1030101,1030924);
>
> The att. gif gives an outline of the improvement.
> Of course, nothing is free in this world, we have to decide, when
the price reach the critical level X1, that it will close higher !!
> Explore the database for the n=1 last quotations with
>
> n=10; f=2;
> Qn=Sum(C^2,n);Qn_1=Sum(C^2,n-1);
> Sn=Sum(C,n);Sn_1=Sum(C,n-1);
> Mn=Sn/n;Mn_1=Sn_1/(n-1);
> Kn=(1/n)*sqrt(n*Qn-Sn^2);Kn_1=(1/(n-1))*sqrt((n-1)*Qn_1-Sn_1^2);
> bb=Mn-f*Kn;bt=Mn+f*Kn;
> S=Sn_1;Q=Qn_1;
> A2=(n-1)*(f^2-n+1);
> A1=-2*(f^2+1-n)*S;
> A0=f^2*n*Q-f^2*S^2-S^2;
> x1=(-A1-sqrt(A1^2-4*A2*A0))/(2*A2);
> x2=(-A1+sqrt(A1^2-4*A2*A0))/(2*A2);
> Plot(C,"C",1,8);
> Plot(X1,"",colorBlue,1);
> Plot(X2,"",colorBlue,1);Plot(bb,"BBandBot",7,1);Plot
(bt,"BBandTop",7,1);
> PlotShapes(shapeDownTriangle*Cross(x2,Ref(C,1)),colorPink);
> PlotShapes(shapeDownArrow*(Cross(bb,C)),colorRed);
> PlotShapes(shapeUpTriangle*Cross(Ref(C,1),x1),colorAqua);
> PlotShapes(shapeUpArrow*(Cross(C,bt)),colorBrightGreen);
> Title="The next "+Name()+" Close should be "+"\n *below"+WriteVal
(x2)+" [ "+WriteVal(100*(-1+x2/C))+"% ] for a BBandBot Cross"+
> "\n *above"+WriteVal(x1)+" ["+WriteVal(100*(-1+x1/C))+"% ] for a
BBandTop Cross"+
> "\n Actual Next Close = "+WriteIf(Cum(1)!=LastValue(Cum
(1)),WriteVal(Ref(C,1)),"?");
> t=8;
> // With the method
> Buy=Cross(C,bt);Buy=ExRemSpan(Buy,t);Sell=Ref(Buy,-t);
> BuyPrice=Ref(x1,-1);
> SetTradeDelays( 0, 1, 1, 1 ) ;
> e1=Equity(1,3,1030101,1030924);
> // Without the method
> Buy=Cross(C,bt);Buy=ExRemSpan(Buy,t);Sell=Ref(Buy,-t);
> SetTradeDelays( 1, 1, 1, 1 ) ;
> e2=Equity(1,3,1030101,1030924);
> Filter=e1>e2;
> AddColumn(e2,"e Without");
> AddColumn(e1,"e With");
> AddColumn(100*(-1+e1/e2),"Profits % Increment");
>
> to get an idea of probable applications.
> Dimitris Tsokakis
>
>
>
>
>
> ----- Original Message -----
> From: Dimitris Tsokakis
> To: amibroker@xxxxxxxxxxxxxxx
> Sent: Tuesday, September 23, 2003 1:15 PM
> Subject: Fw: The Reverse Engine Bollinger Bands Problem, III
>
>
> If you expect a BBandBot(C,10,3) to cross CSCO Close, perhaps you
should wait for long.
> This type of cross never occurred the last 45 months !!
> There are some resctrictions in BBandbot(C,n,f) parameters.
> A. f upper limit
> For a given n, the values of f are limited.
> This limit is not universal, it varies from stock to stock.
> In AA window, explore the current stock for the last n=1 bars with
>
> // f upper limit for a given n
> // Explore ONLY current stock, n=1 last quotations
> SetOption ("NoDefaultColumns" ,True);
> AddTextColumn(Name(),"Name");
> n=10;
> for(f=1.5;f<=3;f=f+0.1)
> {
> b=BBandBot(C,n,f);
> x=Cross(b,C);y=LastValue(Cum(x));
> if(y>0)
> {AddColumn(y,"f="+WriteVal(f,1.1),1.0);}
> }
> Filter=1;
>
> You may see the # of Cross(b,C) per f value. the last column gives
the upper limit of f for a given n.
> For the database it is better to use the code
>
> // f upper limit for a given n
> // Explore the database for the n=1 last quotations
> SetOption ("NoDefaultColumns" ,True);
> AddTextColumn(Name(),"Name");
> n=10;
> for(f=1.5;f<=3;f=f+0.1)
> {
> b=BBandBot(C,n,f);
> x=Cross(b,C);y=LastValue(Cum(x));
> AddColumn(y,"f="+WriteVal(f,1.1),1.0);
> }
> Filter=1;
>
> For the N100 database no stock exceeded f=3 since Jan2000.
>
> B. n lower limit
> For a given f there is a lower limit for n, also variable from
stock to stock.
>
> // n lower limit for a given f
> // Explore the database for the n=1 last quotations
> SetOption ("NoDefaultColumns" ,True);
> AddTextColumn(Name(),"Name");
> f=2.5;
> for(n=3;n<20;n=n+1)
> {
> b=BBandBot(C,n,f);
> x=Cross(b,C);y=LastValue(Cum(x));
> AddColumn(y,"n="+WriteVal(n,1.0),1.0);
> }
> Filter=1;
>
> You will see that n should be greater than n=8 for a probable Cross
(b,C)
>
> C. fmax for various n
> For your BBandBot parameters selection you should know the fmax for
various n.
> // fmax for various n
> SetOption ("NoDefaultColumns" ,True);
> AddTextColumn(Name(),"Name");
> for(n=10;n<210;n=n+10)
> {
> for(f=1.5;f<=5;f=f+0.1)
> {
> b=BBandBot(C,n,f);
> x=Cross(b,C);y=LastValue(Cum(x));
> if(y>0)
> {fmax=f;}
> }
> Filter=1;// explore for the n=1 last quotations.
> AddColumn(fmax,"n="+WriteVal(n,1.0),1.1);
> }
>
> In the attached gif you may see the fmax distribution for a group
of stocks [test period Jan2000 till now]
> It is better to know the mutual f,n limitations before using the
Reverse Engine BBands mechanism.
> Dimitris Tsokakis
>
>
> ----- Original Message -----
> From: Dimitris Tsokakis
> To: amibroker@xxxxxxxxxxxxxxx
> Sent: Monday, September 22, 2003 1:53 PM
> Subject: The Reverse Engine Bollinger Bands Problem, II
>
>
> Here is the complete IB formula for BBandTop, BBandbot.
>
> // Anticipating the next bar BBandBot or BBandTop cross, by D.
Tsokakis, Sept 2003
> n=20; f=2;
> Qn=Sum(C^2,n);Qn_1=Sum(C^2,n-1);
> Sn=Sum(C,n);Sn_1=Sum(C,n-1);
> Mn=Sn/n;Mn_1=Sn_1/(n-1);
> Kn=(1/n)*sqrt(n*Qn-Sn^2);Kn_1=(1/(n-1))*sqrt((n-1)*Qn_1-Sn_1^2);
> bb=Mn-f*Kn;bt=Mn+f*Kn;
> S=Sn_1;Q=Qn_1;
> A2=(n-1)*(f^2-n+1);
> A1=-2*(f^2+1-n)*S;
> A0=f^2*n*Q-f^2*S^2-S^2;
> x1=(-A1-sqrt(A1^2-4*A2*A0))/(2*A2);
> x2=(-A1+sqrt(A1^2-4*A2*A0))/(2*A2);
> Plot(C,"C",1,8);
> Plot(X1,"",colorBlue,1);
> Plot(X2,"",colorBlue,1);Plot(bb,"BBandBot",7,1);Plot
(bt,"BBandTop",7,1);
> PlotShapes(shapeDownTriangle*Cross(x2,Ref(C,1)),colorPink);
> PlotShapes(shapeDownArrow*(Cross(bb,C)),colorRed);
> PlotShapes(shapeUpTriangle*Cross(Ref(C,1),x1),colorAqua);
> PlotShapes(shapeUpArrow*(Cross(C,bt)),colorBrightGreen);
> Title="The next "+Name()+" Close should be "+"\n *below"+WriteVal
(x2)+" for a BBandBot Cross"+
> "\n *above"+WriteVal(x1)+" for a BBandTop Cross"+
> "\n Actual Next Close = "+WriteIf(Cum(1)!=LastValue(Cum
(1)),WriteVal(Ref(C,1)),"?");
>
> The formula gives quite accurate results. Sometimes it is useful.
> At point Z1, the price should be below 13.845 and the next bar
close was 13.840.
> At point Z2, the price should be above 20.840 and the next bar
close was 20.850.
> From the mathematical point of view, both crosses come from the
same 2nd degree equation A2*X^2+A1*X+A0=0
> Dimitris Tsokakis
> [to be continued]
>
> ----- Original Message -----
> From: Dimitris Tsokakis
> To: amibroker@xxxxxxxxxxxxxxx
> Sent: Monday, September 22, 2003 11:26 AM
> Subject: The Reverse Engine Bollinger Bands Problem
>
>
> What is the necessary next bar Close to see prices below the next
bar BBandbot ?
> Steve Karnish is responsible for the question [and
the ...headache], some time ago.
> The following code is dedicated to him.
> Paste in IB the
>
> // Anticipating the next bar BBandbot cross, by D. Tsokakis, Sept
2003
> n=10;
> f=2;
> Qn=Sum(C^2,n);Qn_1=Sum(C^2,n-1);
> Sn=Sum(C,n);Sn_1=Sum(C,n-1);
> Mn=Sn/n;Mn_1=Sn_1/(n-1);
> Kn=(1/n)*sqrt(n*Qn-Sn^2);Kn_1=(1/(n-1))*sqrt((n-1)*Qn_1-Sn_1^2);
> b=Mn-f*Kn;
> S=Sn_1;Q=Qn_1;
> A2=(n-1)*(f^2-n+1);
> A1=-2*(f^2+1-n)*S;
> A0=f^2*n*Q-f^2*S^2-S^2;
> x2=(-A1+sqrt(A1^2-4*A2*A0))/(2*A2);
> Plot(X2,"",colorBlue,1);Plot(C,"C",1,8);Plot(b,"BBandBot",7,1);
> PlotShapes(shapeUpArrow*Cross(x2,Ref(C,1)),colorWhite);
> PlotShapes(shapeDownArrow*(Cross(b,C)),colorRed);
> Title="The next "+Name()+" Close should be <="+WriteVal(x2)+
> "\nActual Next Close = "+WriteIf(Cum(1)!=LastValue(Cum(1)),WriteVal
(Ref(C,1)),"?");
>
> The solution is the X2 array.
> For visual verification, a white arrow is plotted when the X2
crosses the next bar close and a red arrow points the actual cross.
>
> Dimitris Tsokakis
> [to be continued]
------------------------ Yahoo! Groups Sponsor ---------------------~-->
Buy Ink Cartridges or Refill Kits for your HP, Epson, Canon or Lexmark
Printer at MyInks.com. Free s/h on orders $50 or more to the US & Canada.
http://www.c1tracking.com/l.asp?cid=5511
http://us.click.yahoo.com/mOAaAA/3exGAA/qnsNAA/GHeqlB/TM
---------------------------------------------------------------------~->
Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
|