Stock Portfolio Organizer
The ultimate porfolio management solution.
Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
head n shoulder for Amibroker (AFL)
Copy & Paste Friendly
Back
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | Head & Shoulder/Inverted Head & Shoulder: 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" ; Double top & bottom: /* Detecting double tops and bottoms*/ percdiff = 5; /* peak detection threshold */ fwdcheck = 5; /* forward validity check */ mindistance = 10; validdiff = percdiff/10; PK= Peak ( H , percdiff, 1 ) == High ; TR= Trough ( L , percdiff, 1 ) == Low ; x = Cum ( 1 ); XPK1 = ValueWhen ( PK, x, 1 ); XPK2 = ValueWhen ( PK, x, 2 ); xTR1 = ValueWhen ( Tr, x, 1 ); xTr2 = ValueWhen ( Tr, x, 2 ); peakdiff = ValueWhen ( PK, H , 1 )/ ValueWhen ( PK, H , 2 ); Troughdiff= ValueWhen ( tr, L , 1 )/ ValueWhen ( tr, L , 2 ); doubletop = PK AND abs ( peakdiff - 1 ) < validdiff AND (Xpk1 -Xpk2)>mindistance AND High > HHV ( Ref ( H , fwdcheck ), fwdcheck - 1 ); doubleBot=tr AND abs ( troughdiff - 1 ) < validdiff AND (Xtr1 -Xtr2)>mindistance AND Low < LLV ( Ref ( L , fwdcheck ), fwdcheck - 1 ); Sell = doubletop; Buy = doublebot; WriteIf ( Highest ( doubletop ) == 1, "AmiBroker has detected some possible double top patterns for " + Name () + "\nLook for green arrows on the price chart." , "There are no double top patterns for " + Name () ); WriteIf ( Highest ( doublebot)==1, "AmiBroker has detected some possible double bottom patterns for " + Name () + "\nLook for red arrows on the price chart." , "There are no double bottom patterns for " + Name () ); Filter = Sell OR Buy ; AddColumn ( IIf ( doubletop , 88, 01), "Double TOP" , formatChar ); AddColumn ( IIf ( doublebot , 88, 01), "Double BOT" , formatChar ); |