[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Re: The Reverse Engine Bollinger Bands Problem, IV



PureBytes Links

Trading Reference Links




I suspect you guys may be referring to the system 
described here: <A 
href="">http://www.bollingeronbollingerbands.com/methods/main.php
 
...although he talks of only reducing the bandwidth 
to +/- 1.5 
<BLOCKQUOTE 
>
  ----- Original Message ----- 
  <DIV 
  >From: 
  Al 
  Venosa 
  To: <A title=amibroker@xxxxxxxxxxxxxxx 
  href="">amibroker@xxxxxxxxxxxxxxx 
  Sent: Wednesday, September 24, 2003 6:38 
  PM
  Subject: Re: [amibroker] Re: The Reverse 
  Engine Bollinger Bands Problem, IV
  
  Well, Pal, there's not much more to report. I think I may have coded it 
  once in AB a year or so ago, but I don't remember much about the results. When 
  you place your orders, you use OCO orders so you don't get filled on both long 
  and short on the same day. You get filled at the first breach of a band (upper 
  or lower), and then the other order automatically gets canceled. Or, you could 
  use it as a reversal system, too, if you wanted. I know nothing about Gann 
  support and resistance points, so I can't comment on that. Thanks for the 
  reply. 
   
  AV
  <BLOCKQUOTE 
  >
    ----- Original Message ----- 
    <DIV 
    >From: 
    palsanand 
    
    To: <A title=amibroker@xxxxxxxxxxxxxxx 
    href="">amibroker@xxxxxxxxxxxxxxx 
    Sent: Wednesday, September 24, 2003 
    9:07 PM
    Subject: [amibroker] Re: The Reverse 
    Engine Bollinger Bands Problem, IV
    Hi,I can envision some problems with this 
    Bollinger Breakout system.  1)  It is extremely diffcult 
    for one to make a determination of the direction of the market based on 
    volatility (HVR, BandWidth etc.,)alone without a good Entry/Exit Trading 
    signal Detection System.  Hence you may have to straddle the 
    market.2)  Suppose you go long above the upper band and you 
    place a sell stop below the lower band (straddle) and vice-versa and you 
    get filled on both sides....You may get away with this system by 
    placing your stop not just above/below the bands but at for e.g., at 
    Gann's support and resistance points, because these points once they are 
    breached reverse their function (support becomes resistance and 
    resistance becomes support).I would be interested in knowing 
    more about this 
    system....Thanks.Regards,Pal--- 
    In amibroker@xxxxxxxxxxxxxxx, "Al Venosa" <advenosa@xxxx> 
    wrote:> Pal,> > There is a trading system used by some 
    traders called the Bollinger Breakout System. It is similar to what DT 
    has proposed. You buy when the upper band is exceeded plus a small 
    additional amount (opposite for shorting). However, the standard 
    deviation bands are much smaller than the usual +/- 2. Usually, they are 
    around +/- 0.4 or so. So, the bands are quite a bit narrower and are 
    used as breakout bands rather than the usual rebound bands or 
    support/resistance levels where one sells at the top of the upper band 
    and buys at the bottom of the lower band. Just a different way of 
    looking at things. It's a volatility breakout system of sorts. By the 
    way, the exit is the opposite of the entry: sell at the breakout from 
    the lower band (if long originally). > > 
    AV>   ----- Original Message ----- >   
    From: palsanand >   To: amibroker@xxxxxxxxxxxxxxx 
    >   Sent: Wednesday, September 24, 2003 1:03 
    PM>   Subject: [amibroker] Re: The Reverse Engine Bollinger 
    Bands Problem, IV> > >   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 
    >               
    ADVERTISEMENT>              
    >        
    >        > > 
    >   Send BUG REPORTS to bugs@xxxx>   Send 
    SUGGESTIONS to suggest@xxxx>   
    ----------------------------------------->   Post 
    AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
    >   (Web page: <A 
    href="">http://groups.yahoo.com/group/amiquote/messages/)>   
    -------------------------------------------->   Check group 
    FAQ at: <A 
    href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
    > >   Your use of Yahoo! Groups is subject to the 
    Yahoo! Terms of Service. > > >   
    --->   Outgoing mail is certified Virus 
    Free.>   Checked by AVG anti-virus system (<A 
    href="">http://www.grisoft.com).>   
    Version: 6.0.520 / Virus Database: 318 - Release Date: 
    9/18/2003
    Send BUG REPORTS to bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
    suggest@xxxxxxxxxxxxx-----------------------------------------Post 
    AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: 
    <A 
    href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
    group FAQ at: <A 
    href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
    Your use of Yahoo! Groups is subject to the <A 
    href="">Yahoo! Terms of Service. 
    
  <BLOCKQUOTE 
  ><FONT 
    face="Courier New">---Outgoing mail is certified Virus 
    Free.Checked by AVG anti-virus system (<A 
    href="">http://www.grisoft.com).Version: 
    6.0.520 / Virus Database: 318 - Release Date: 
9/18/2003Send 
  BUG REPORTS to bugs@xxxxxxxxxxxxxSend SUGGESTIONS to 
  suggest@xxxxxxxxxxxxx-----------------------------------------Post 
  AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx (Web page: <A 
  href="">http://groups.yahoo.com/group/amiquote/messages/)--------------------------------------------Check 
  group FAQ at: <A 
  href="">http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
  Your use of Yahoo! Groups is subject to the <A 
  href="">Yahoo! Terms of Service. 







Yahoo! Groups Sponsor


  ADVERTISEMENT 









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 the Yahoo! Terms of Service.