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

[amibroker] Re: Help with coding Head And Shoulder



PureBytes Links

Trading Reference Links

Dennis,
Is this what you are trying to accomplish?? I ran over stocks in
Hemmscott database and got 3 Buys (Bullish). Try it out and let me
know if this is you objective.  

R.E(Dick) Hoierman
PS: watch for word wrap when retreiving

x = Cum(1);
per = 5;
back=50;
inter=100;
s11=CCI(14);//h;
s12=CCI(14);//L;
/* H & S */
pR = PeakBars( s11, per, 1 ) == 0;
endt1= LastValue(ValueWhen( pR, x, 1 ));
medt1=LastValue(ValueWhen( pR, x, 2 ));
startt1=LastValue(ValueWhen( pR, x, 3 ));
dt1=endt1-startt1;
C1=x==endt1 OR x==medt1 OR x==startt1;
endR = LastValue(ValueWhen( pR, s11, 1 ) );
medR=LastValue(ValueWhen( pR, s11, 2 ) );
startR = LastValue( ValueWhen( pR, s11, 3 ));
H&S=medR>endR AND medR>startR AND abs(startR-endR)<0.02*(startR+endR)
AND dt1<inter AND endt1>LastValue(x)-back;
MaxGraph=10;Graph1=CCI(14);Graph1Style=1;GraphXSpace=5;
/*H&S Neck Line*/
Aper=medt1-startt1;bper=endt1-medt1;
La= LastValue(ValueWhen(x==medt1,LLV(CCI(14),Aper)));
Lb=LastValue(ValueWhen(x==-1+endt1,LLV(CCI(14),bper)));
Fa=CCI(14)==La AND x>startt1 AND x<medt1;
Fb=CCI(14)==Lb AND x>medt1 AND x<endt1;
endt= LastValue(ValueWhen( Fb, x ));
startt=LastValue(ValueWhen( Fa, x ));
dtS =endt-startt;endS = Lb;startS = La;
aS = (endS-startS)/dtS;bS = endS;
trendlineS = aS * ( x -endt ) + bS;
Graph3 = IIf(H&S AND x>startt-5,trendlineS,-1e10);Graph3BarColor=7;
/*Inverted H & S = H&S1*/
tpR = TroughBars( s12, per, 1 ) == 0;
tendt1=LastValue(ValueWhen(tpr,x,1));
tmedt1=LastValue(ValueWhen(tpr,x,2));
tstartt1=LastValue(ValueWhen(tpr,x,3));
tdt1=tendt1-tstartt1;
C2=x==tendt1 OR x==tmedt1 OR x==tstartt1;
tendR = LastValue(ValueWhen( tpR, s12, 1 ) );
tmedR=LastValue(ValueWhen( tpR, s12, 2 ) );
tstartR = LastValue( ValueWhen( tpR, s12, 3 ));
H&S1=tmedR<tendR AND tmedR<tstartR AND
abs(tstartR-tendR)<0.02*(tstartR+tendR) AND tdt1<inter AND
tendt1>LastValue(x)-back;
Graph1BarColor=IIf(C1 AND H&S,7,IIf(C2 AND H&S1,10,1));
/*Inverted H&S Neck Line*/
tAper=tmedt1-tstartt1;tbper=tendt1-tmedt1;
Ha= LastValue(ValueWhen(x==tmedt1,HHV(CCI(14),tAper)));
Hb=LastValue(ValueWhen(x==-1+tendt1,HHV(CCI(14),tbper)));
tFa=CCI(14)==Ha AND x>tstartt1 AND x<tmedt1;
tFb=CCI(14)==Hb AND x>tmedt1 AND x<tendt1;
Rendt= LastValue(ValueWhen(tFb, x ));
Rstartt=LastValue(ValueWhen( tFa, x ));
Rdt =Rendt-Rstartt;endR = Hb;startR = Ha;
aR = (endR-startR)/Rdt;bR = endR;
trendlineR = aR * ( x -Rendt ) + bR;
Graph4 = IIf(H&S1 AND x>Rstartt-5,trendlineR,-1e10);Graph4BarColor=10;
Filter=H&S OR H&S1;
Buy = H&S1;
Sell= H&S; 
Filter = C <60 AND C >2 AND Volume > 100000 AND C> Ref(C,-1);
Result = WriteIf(Buy,"Buy","Sell");
AddTextColumn( WriteIf(Buy, "Buy" , "Sell" ) ,   "TRADE" ,  5 ,  
IIf(Buy,colorYellow, colorWhite), IIf(Buy, colorDarkGreen,
colorDarkRed) );
AddTextColumn(IndustryID(1) ,"     Industry Sector      ", 25.0,
colorWhite, colorBlue);
AddColumn( Close, "Close", 1.2, IIf( ROC(C, 1 ) >= 0,
colorDarkGreen,colorRed ),50 );
AddColumn(Ref(Close,-1),"Y-Close",1.2, IIf(
ROC(Ref(C,-1),1)>=0,colorDarkGreen, colorRed ),50 );
AddColumn( Volume, "Volume", 10.0, IIf( ROC(V, 1 ) >=
0,colorDarkGreen, colorRed ) );
AddColumn( ROC( Close, 1 ), "ROC(1)", 1.2, IIf( ROC(C, 1 ) >=
0,colorDarkGreen, colorRed));
AddColumn( H & S, "H&S", 2.1, colorDarkBlue,37 );
AddColumn( H & S1,"invH&S", 1.2, colorBlack,49);
Buy = ExRem(Buy,Sell);
Sell = ExRem(Sell,Buy);

--- In amibroker@xxxxxxxxxxxxxxx, "Terry" <MagicTH@xxx> wrote:
>
> Besides, PeakBars uses the ZigZag function which looks into the future.
> --
> Terry
> 
> -----Original Message-----
> From: amibroker@xxxxxxxxxxxxxxx [mailto:amibroker@xxxxxxxxxxxxxxx] On
> Behalf Of Dennis And Lisa
> Sent: Sunday, September 03, 2006 21:46
> To: amibroker@xxxxxxxxxxxxxxx
> Subject: [amibroker] Re: Help with coding Head And Shoulder
> 
> Hi Anthony, thanks for your input. I tried doing this some time ago, 
> and I get nothing in the exploration.
> 
> Dennis
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "Anthony Faragasso" <ajf1111@> 
> wrote:
> >
> > Hello,
> > 
> > I inserted the CCI(14) in the code, load into the AA window, 
> select all symbols , n=1, explore..double click on a ticker..is this 
> what you are trying to accompolish..
> > 
> > 
> > 
> > x = Cum(1);
> > 
> > per = 5;
> > 
> > back=50;
> > 
> > inter=100;
> > 
> > s11=CCI(14);//h;
> > 
> > s12=CCI(14);//L;
> > 
> > /* H & S */
> > 
> > pR = PeakBars( s11, per, 1 ) == 0;
> > 
> > endt1= LastValue(ValueWhen( pR, x, 1 ));
> > 
> > medt1=LastValue(ValueWhen( pR, x, 2 ));
> > 
> > startt1=LastValue(ValueWhen( pR, x, 3 ));
> > 
> > dt1=endt1-startt1;
> > 
> > C1=x==endt1 OR x==medt1 OR x==startt1;
> > 
> > endR = LastValue(ValueWhen( pR, s11, 1 ) );
> > 
> > medR=LastValue(ValueWhen( pR, s11, 2 ) );
> > 
> > startR = LastValue( ValueWhen( pR, s11, 3 ));
> > 
> > Filter1=medR>endR AND medR>startR AND abs(startR-endR)<0.02*
> (startR+endR) AND dt1<inter AND endt1>LastValue(x)-back;
> > 
> > MaxGraph=10;Graph1=CCI(14);Graph1Style=1;GraphXSpace=5;
> > 
> > /*H&S Neck Line*/
> > 
> > Aper=medt1-startt1;bper=endt1-medt1;
> > 
> > La= LastValue(ValueWhen(x==medt1,LLV(CCI(14),Aper)));
> > 
> > Lb=LastValue(ValueWhen(x==-1+endt1,LLV(CCI(14),bper)));
> > 
> > Fa=CCI(14)==La AND x>startt1 AND x<medt1;
> > 
> > Fb=CCI(14)==Lb AND x>medt1 AND x<endt1;
> > 
> > endt= LastValue(ValueWhen( Fb, x ));
> > 
> > startt=LastValue(ValueWhen( Fa, x ));
> > 
> > dtS =endt-startt;endS = Lb;startS = La;
> > 
> > aS = (endS-startS)/dtS;bS = endS;
> > 
> > trendlineS = aS * ( x -endt ) + bS; 
> > 
> > Graph3 = IIf(Filter1 AND x>startt-5,trendlineS,-
> 1e10);Graph3BarColor=7;
> > 
> > /*Inverted H & S*/
> > 
> > tpR = TroughBars( s12, per, 1 ) == 0;
> > 
> > tendt1=LastValue(ValueWhen(tpr,x,1));
> > 
> > tmedt1=LastValue(ValueWhen(tpr,x,2));
> > 
> > tstartt1=LastValue(ValueWhen(tpr,x,3));
> > 
> > tdt1=tendt1-tstartt1;
> > 
> > C2=x==tendt1 OR x==tmedt1 OR x==tstartt1;
> > 
> > tendR = LastValue(ValueWhen( tpR, s12, 1 ) );
> > 
> > tmedR=LastValue(ValueWhen( tpR, s12, 2 ) );
> > 
> > tstartR = LastValue( ValueWhen( tpR, s12, 3 ));
> > 
> > Filter2=tmedR<tendR AND tmedR<tstartR AND abs(tstartR-tendR)<0.02*
> (tstartR+tendR) AND tdt1<inter AND tendt1>LastValue(x)-back;
> > 
> > Graph1BarColor=IIf(C1 AND Filter1,7,IIf(C2 AND Filter2,10,1));
> > 
> > /*Inverted H&S Neck Line*/
> > 
> > tAper=tmedt1-tstartt1;tbper=tendt1-tmedt1;
> > 
> > Ha= LastValue(ValueWhen(x==tmedt1,HHV(CCI(14),tAper)));
> > 
> > Hb=LastValue(ValueWhen(x==-1+tendt1,HHV(CCI(14),tbper)));
> > 
> > tFa=CCI(14)==Ha AND x>tstartt1 AND x<tmedt1;
> > 
> > tFb=CCI(14)==Hb AND x>tmedt1 AND x<tendt1;
> > 
> > Rendt= LastValue(ValueWhen(tFb, x ));
> > 
> > Rstartt=LastValue(ValueWhen( tFa, x ));
> > 
> > Rdt =Rendt-Rstartt;endR = Hb;startR = Ha;
> > 
> > aR = (endR-startR)/Rdt;bR = endR;
> > 
> > trendlineR = aR * ( x -Rendt ) + bR; 
> > 
> > Graph4 = IIf(Filter2 AND x>Rstartt-5,trendlineR,-
> 1e10);Graph4BarColor=10;
> > 
> > Filter=Filter1 OR Filter2;
> > 
> > NumColumns=2;/*Graph2=x==-1+tendt1;*/
> > 
> > Column0=Filter1;
> > 
> > Column1=Filter2;
> > 
> > Column0Format=Column1Format=1.0;
> > 
> > Column0Name="H&S";
> > 
> > Column1Name="inv H&S";
> > 
> >   ----- Original Message ----- 
> >   From: Dennis And Lisa 
> >   To: amibroker@xxxxxxxxxxxxxxx 
> >   Sent: Sunday, September 03, 2006 1:06 PM
> >   Subject: [amibroker] Re: Help with coding Head And Shoulder
> > 
> > 
> >   Thanks, but I tries replacing the H and L variables with CCI(14) 
> and 
> >   still got nothing.
> > 
> >   Dennis
> > 
> >   --- In amibroker@xxxxxxxxxxxxxxx, "Anthony Faragasso" <ajf1111@> 
> >   wrote:
> >   >
> >   > Here is a Head and shoulders coded sometime ago by Dimitri.
> >   > 
> >   > x = Cum(1);
> >   > 
> >   > per = 5;
> >   > 
> >   > back=50;
> >   > 
> >   > inter=100;
> >   > 
> >   > s11=H;s12=L;
> >   > 
> >   > /* H & S */
> >   > 
> >   > pR = PeakBars( s11, per, 1 ) == 0;
> >   > 
> >   > endt1= LastValue(ValueWhen( pR, x, 1 ));
> >   > 
> >   > medt1=LastValue(ValueWhen( pR, x, 2 ));
> >   > 
> >   > startt1=LastValue(ValueWhen( pR, x, 3 ));
> >   > 
> >   > dt1=endt1-startt1;
> >   > 
> >   > C1=x==endt1 OR x==medt1 OR x==startt1;
> >   > 
> >   > endR = LastValue(ValueWhen( pR, s11, 1 ) );
> >   > 
> >   > medR=LastValue(ValueWhen( pR, s11, 2 ) );
> >   > 
> >   > startR = LastValue( ValueWhen( pR, s11, 3 ));
> >   > 
> >   > Filter1=medR>endR AND medR>startR AND abs(startR-endR)<0.02*
> >   (startR+endR) AND dt1<inter AND endt1>LastValue(x)-back;
> >   > 
> >   > MaxGraph=10;Graph1=C;Graph1Style=64;GraphXSpace=5;
> >   > 
> >   > /*H&S Neck Line*/
> >   > 
> >   > Aper=medt1-startt1;bper=endt1-medt1;
> >   > 
> >   > La= LastValue(ValueWhen(x==medt1,LLV(L,Aper)));
> >   > 
> >   > Lb=LastValue(ValueWhen(x==-1+endt1,LLV(L,bper)));
> >   > 
> >   > Fa=L==La AND x>startt1 AND x<medt1;
> >   > 
> >   > Fb=L==Lb AND x>medt1 AND x<endt1;
> >   > 
> >   > endt= LastValue(ValueWhen( Fb, x ));
> >   > 
> >   > startt=LastValue(ValueWhen( Fa, x ));
> >   > 
> >   > dtS =endt-startt;endS = Lb;startS = La;
> >   > 
> >   > aS = (endS-startS)/dtS;bS = endS;
> >   > 
> >   > trendlineS = aS * ( x -endt ) + bS; 
> >   > 
> >   > Graph3 = IIf(Filter1 AND x>startt-5,trendlineS,-
> >   1e10);Graph3BarColor=7;
> >   > 
> >   > /*Inverted H & S*/
> >   > 
> >   > tpR = TroughBars( s12, per, 1 ) == 0;
> >   > 
> >   > tendt1=LastValue(ValueWhen(tpr,x,1));
> >   > 
> >   > tmedt1=LastValue(ValueWhen(tpr,x,2));
> >   > 
> >   > tstartt1=LastValue(ValueWhen(tpr,x,3));
> >   > 
> >   > tdt1=tendt1-tstartt1;
> >   > 
> >   > C2=x==tendt1 OR x==tmedt1 OR x==tstartt1;
> >   > 
> >   > tendR = LastValue(ValueWhen( tpR, s12, 1 ) );
> >   > 
> >   > tmedR=LastValue(ValueWhen( tpR, s12, 2 ) );
> >   > 
> >   > tstartR = LastValue( ValueWhen( tpR, s12, 3 ));
> >   > 
> >   > Filter2=tmedR<tendR AND tmedR<tstartR AND abs(tstartR-tendR)
> <0.02*
> >   (tstartR+tendR) AND tdt1<inter AND tendt1>LastValue(x)-back;
> >   > 
> >   > Graph1BarColor=IIf(C1 AND Filter1,7,IIf(C2 AND Filter2,10,1));
> >   > 
> >   > /*Inverted H&S Neck Line*/
> >   > 
> >   > tAper=tmedt1-tstartt1;tbper=tendt1-tmedt1;
> >   > 
> >   > Ha= LastValue(ValueWhen(x==tmedt1,HHV(H,tAper)));
> >   > 
> >   > Hb=LastValue(ValueWhen(x==-1+tendt1,HHV(H,tbper)));
> >   > 
> >   > tFa=H==Ha AND x>tstartt1 AND x<tmedt1;
> >   > 
> >   > tFb=H==Hb AND x>tmedt1 AND x<tendt1;
> >   > 
> >   > Rendt= LastValue(ValueWhen(tFb, x ));
> >   > 
> >   > Rstartt=LastValue(ValueWhen( tFa, x ));
> >   > 
> >   > Rdt =Rendt-Rstartt;endR = Hb;startR = Ha;
> >   > 
> >   > aR = (endR-startR)/Rdt;bR = endR;
> >   > 
> >   > trendlineR = aR * ( x -Rendt ) + bR; 
> >   > 
> >   > Graph4 = IIf(Filter2 AND x>Rstartt-5,trendlineR,-
> >   1e10);Graph4BarColor=10;
> >   > 
> >   > Filter=Filter1 OR Filter2;
> >   > 
> >   > NumColumns=2;/*Graph2=x==-1+tendt1;*/
> >   > 
> >   > Column0=Filter1;
> >   > 
> >   > Column1=Filter2;
> >   > 
> >   > Column0Format=Column1Format=1.0;
> >   > 
> >   > Column0Name="H&S";
> >   > 
> >   > Column1Name="inv H&S";
> >   > 
> >   > ----- Original Message ----- 
> >   > From: Dennis And Lisa 
> >   > To: amibroker@xxxxxxxxxxxxxxx 
> >   > Sent: Sunday, September 03, 2006 8:56 AM
> >   > Subject: [amibroker] Help with coding Head And Shoulder
> >   > 
> >   > 
> >   > I am trying to code the H&S pattern into Amibroker. I want to 
> >   have 
> >   > it recognized on the CCI. I coded it, but cannot get it to 
> >   recognize 
> >   > properly. Here is the code, if anyone can help, I would 
> >   appreciate 
> >   > it.
> >   > 
> >   > thanks,
> >   > Dennis
> >   > 
> >   > z= CCI(14);
> >   > 
> >   > Plot(z,"",colorSkyblue,styleLine);
> >   > 
> >   > Plot(z,"",colorLime,styleHistogram);
> >   > 
> >   > Plot(0,"",colorRed,styleLine);
> >   > 
> >   > //---------------------------------------------------
> >   > 
> >   > // Head and Shoulders Pattern: to use with CCI(14) with zero 
> >   line 
> >   > 
> >   > // calculate left shoulder
> >   > 
> >   > LStop= z== HHV(z,(BarsSince(z<0))) AND z>=0 ; //left shoulder 
> top
> >   > 
> >   > LSbot= z==LLV(z,BarsSince(Lstop))AND z>=0 ; //left shoulder 
> >   bottom
> >   > 
> >   > LeftShoulder= LSbot; //left shoulder
> >   > 
> >   > // calculate head
> >   > 
> >   > HeadTop= z==HHV(z,BarsSince(LSbot)) AND z>=0; //head top
> >   > 
> >   > HeadBot=z== LLV(z,BarsSince(Headtop)) AND z>0; //head bottom
> >   > 
> >   > Head= headbot; //head
> >   > 
> >   > // calculate right shoulder
> >   > 
> >   > RStop= z==HHV(z,BarsSince(Headbot)) AND z>0; //right shoulder 
> top
> >   > 
> >   > rsbot= z==LLV(z,BarsSince(RStop)); // right shoulder bottom
> >   > 
> >   > RightShoulder= rsbot; //right shoulder bottom
> >   > 
> >   > //----------------------------------------------------------
> >   > 
> >   > // Plot numbers for refernce to aid in testing
> >   > 
> >   > PlotShapes(IIf
> >   > (Leftshoulder,shapeDigit1,shapeNone),colorTurquoise,0,0,-
> 15); // 
> >   > left shoulder bottom
> >   > 
> >   > PlotShapes(IIf(Head,shapeDigit2,shapeNone),colorTurquoise,0,0,-
> >   > 25); //head bottom
> >   > 
> >   > PlotShapes(IIf
> >   > (rightshoulder,shapeDigit3,shapeNone),colorTurquoise,0,0,-
> >   35); // 
> >   > right shoulder bottom
> >   > 
> >   > 
> >   > 
> >   > 
> >   > 
> >   > 
> >   > ----------------------------------------------------------
> >   ---------
> >   > 
> >   > avast! Antivirus: Inbound message clean. 
> >   > 
> >   > Virus Database (VPS): 0635-4, 09/01/2006
> >   > Tested on: 9/3/2006 9:15:08 AM
> >   > avast! - copyright (c) 1988-2006 ALWIL Software.
> >   >
> > 
> > 
> > 
> >    
> > 
> > 
> > -------------------------------------------------------------------
> ---------
> > 
> >     avast! Antivirus: Inbound message clean. 
> > 
> >     Virus Database (VPS): 0635-4, 09/01/2006
> >     Tested on: 9/3/2006 1:12:50 PM
> >     avast! - copyright (c) 1988-2006 ALWIL Software.
> >
> 
> 
> 
> 
> 
> 
> Please note that this group is for discussion between users only.
> 
> To get support from AmiBroker please send an e-mail directly to 
> SUPPORT {at} amibroker.com
> 
> For other support material please check also:
> http://www.amibroker.com/support.html
> 
>  
> Yahoo! Groups Links
>