// Downloaded From https://www.WiseStockTrader.com //http://www.tradewithme.me/uploads/7/9/9/5/7995199/murray_maths_with_patterns_modified_intraday.afl // Credit for the Octave logic goes to Jacek below // All other features developed by Abnash Singh 6-11-2011 // abnash1978@yahoo.co.uk // 13/11/2011 Added S/R levels in the title line along with High and low /* MURREY MATH HORIZONTAL LINES Formula for Amibroker based on Excel spreadsheet by Jacek */ //Plot(C,"CLose",colorWhite,styleCandle); //GraphXSpace=1; MaxGraph=12; function splround(x) { y=int(x)+round(x%int(x)*100)/100; return y; } up=Study("UP",GetChartID()); dm=Study("DN",GetChartID()); Color=IIf(C>O,colorGreen,colorRed); //Graph0=Close; Graph0Color=1; Graph0Style=64; //Plot(C,"close",color,styleBar); // Colored bars starts _SECTION_BEGIN("Carl_ASC"); function PercentR( periods ) { return -100 * ( HHV( H, periods ) - C )/( HHV( H, periods ) - LLV( L, periods ) ); } periods= Param("periodes",14,1,100,1); PR=PercentR( periods ); SetChartOptions(0,chartShowArrows|chartShowDates); _N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) )); Plot( C, "Close", IIf(pr>-50,colorBlue,colorRed), styleBar| styleThick|styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); //if( ParamToggle("Tooltip shows", "All Values|Only Prices" ) ) //{ //ToolTip=StrFormat("Open: %g\nHigh: %g\nLow: %g\nClose: %g (%.1f%%)\nVolume: "+NumToStr( V, 1 ), O, H, L, C, SelectedValue( ROC( C, 1 ))); //} _SECTION_END(); // Colored bars ends Period=Param("MM_Period", 32, 4, 256, 1) ; TYpe=ParamList("Rolling/Intraday","Rolling|Intraday") ; PER = Period; dn=DateNum(); tn=TimeNum(); Lox=Hix=0; Lox = LLV(Min(H,L),PER ) ; Hix = HHV(Max(H,L),PER ) ; avp=(O+C)/2; Line0=Line1=Line2=Line3=Line4=Line5=Line6=Line7=Line8=Lineplus2=Lineminus2=0; Lo=L[0];Hi=H[0]; for (i=0;i0 AND i1) { if(dn[i]!=dn[i-1]) { Lo=L[i]; Hi=H[i]; } } if (L[i]Hi)Hi=H[i]; } else if (type=="Rolling") { Hi=Hix[i]; Lo=Lox[i]; } if (up[i]>hi)Hi=up[i]; if (dm[i] Hi, Min_1 + Oct, Min_1 + 2*Oct ) ; Min_2 = IIf( (Min_1 + 1/8*(Max_1-Min_1)) <= Lo AND Hi <= (Max_1 - 1/8*(Max_1-Min_1)) , (Min_1 + 1/4*(Max_1-Min_1)) , Min_1 ) ; Max_2 = IIf( (Min_1 + 1/8*(Max_1-Min_1)) <= Lo AND Hi <= (Max_1 - 1/8*(Max_1-Min_1)) , (Max_1 - 1/4*(Max_1-Min_1)) , Max_1 ) ; /******************************/ Diff = Max_2 - Min_2 ; H1 = IIf( (Min_2 + 3/16*Diff) <= Lo AND Hi <= (9/16*Diff + Min_2) , Min_2 + 1/2*Diff, 0) ; H2 = IIf( (Min_2 - 1/8*Diff) <= Lo AND Hi <= (5/8*Diff + Min_2) AND H1==0, Min_2 + 1/2*Diff, 0) ; H3 = IIf( (Min_2 + 7/16*Diff) <= Lo AND Hi <= (Min_2 + 13/16*Diff), Min_2 + 3/4*Diff, 0 ) ; H4 = IIf( (Min_2 + 3/8*Diff) <= Lo AND Hi <= (Min_2 + 9/8*Diff) AND H3==0, Max_2, 0 ) ; H5 = IIf( (Min_2 + 1/8*Diff)<=Lo AND Hi <= (Min_2 + 7/8*Diff) AND H1==0 AND H2==0 AND H3==0 AND H4==0, Min_2 + 3/4*Diff , 0 ) ; H6 = IIf( ( H1 + H2 + H3 + H4 + H5 ) == 0, Max_2, 0 ) ; /**************************/ L1 = IIf(H1>0, Min_2 + 1/4*Diff, 0) ; L2 = IIf(H2>0, Min_2, 0) ; L3 = IIf(H3>0, Min_2 + 1/2*Diff, 0) ; L4 = IIf(H4>0, Min_2 + 1/2*Diff, 0) ; L5 = IIf(H5>0, Min_2 + 1/4*Diff, 0) ; L6 = IIf(H6>0, Min_2, 0 ) ; M_8 = ( H1 + H2 + H3 + H4 + H5 + H6 ) ; M_0 = ( L1 + L2 + L3 + L4 + L5 + L6 ) ; /**************************************/ Line0[i] = M_0 ; Line1[i] = M_0 + (1*(0.125*(M_8-M_0))); Line2[i] = M_0 + (2*(0.125*(M_8-M_0))); Line3[i] = M_0 + (3*(0.125*(M_8-M_0))); Line4[i] = M_0 + (4*(0.125*(M_8-M_0))); Line5[i] = M_0 + (5*(0.125*(M_8-M_0))); Line6[i] = M_0 + (6*(0.125*(M_8-M_0))); Line7[i] = M_0 + (7*(0.125*(M_8-M_0))); Line8[i] = M_8 ; Lineplus2[i] = M_8 + (2*(0.125*(M_8-M_0))); Lineminus2[i] = M_0 - (2*(0.125*(M_8-M_0))); } Plot(Line0,"Line0",6,styleLine);//0/8 Plot(Line1,"Line1",7,styleLine);//1/8 Plot(Line2,"Line2",4,styleLine);//2/8 Plot(Line3,"Line3",5,styleLine|styleDashed);//3/8 Plot(Line4,"Line4",6,styleLine);//4/8 Plot(Line5,"Line5",5,styleLine|styleDashed);//5/8 Plot(Line6,"Line6",4,styleLine);//6/8 Plot(Line7,"Line7",7,styleLine);//7/8 Plot(Line8,"Line8",6,styleLine);//8/8 Plot(Lineplus2,"Lineplus2",4,styleLine);//+2/8 Plot(Lineminus2,"Lineminus2",4,styleLine);//-2/8 /**************************************************************/ Title = Date()+" Murray Maths "+ Interval(format=2)+" "+Name()+" O "+WriteVal(O,1.2)+" H "+WriteVal(H,1.2)+" L "+WriteVal(L,1.2)+" C "+ WriteVal(C,1.2)+" "+EncodeColor(colorYellow)+" Dayhigh " +WriteVal(Hi,1.2)+" Daylow "+WriteVal(Lo,1.2) +"\n"+EncodeColor(colorGreen)+"Upper Breakout "+EncodeColor(colorRed)+WriteVal(Lineplus2,1.2)+EncodeColor(colorGreen) +" Resistance 8/8 "+EncodeColor(colorBlue)+WriteVal(Line8,1.2)+EncodeColor(colorGreen)+" Reversal 7/8 "+EncodeColor(colorYellow) +WriteVal(Line7,1.2) +"\n"+EncodeColor(colorYellow)+"Middle S/R 4/8 "+EncodeColor(colorBlue)+WriteVal(Line4,1.2) +"\n"+EncodeColor(colorRed)+"Lower Breakout "+EncodeColor(colorRed)+WriteVal(Lineminus2,1.2)+EncodeColor(colorRed)+" Support 0/8 " +EncodeColor(colorBlue)+WriteVal(Line0,1.2)+EncodeColor(colorRed)+" Reversal 1/8 "+EncodeColor(colorYellow)+WriteVal(Line1,1.2); /* Title = Name() + "=" + WriteIf( round(C)== C, NumToStr(C,1) , WriteVal(C) ) + " " + "\\c17" + WriteIf( Interval()==86400, "Daily ", WriteIf(Interval()==3600,"Hourly ", WriteIf(Interval()==900,"15 Min ", WriteIf(Interval()==300,"5 Min ", WriteIf(Interval()==60,"1 Min ", "" ) ) ) ) ) + Date() + "\\c12" + WriteIf(Volume>0," Turnover=","") + WriteIf(Volume>0, WriteVal(Volume*Close/1000), "" ) ; */ Filter = 1 ; AddColumn(Lineminus2,"Limit1",1.2); AddColumn(IIf(C>Lineminus2 AND CLine0 AND CLine1 AND CLine2 AND CLine3 AND CLine4 AND CLine5 AND CLine6 AND CLine7 AND CLine8 AND C2) { //bearish doji evening star if (C2[i]>O2[i] AND((C2[i]-O2[i])/(.001+H2[i]-L2[i])>.6) AND (C2[i]=O1[i]) AND ((H1[i]-L1[i])>(3*(abs(C1[i]-O1[i])))) AND (O[i]>C[i]) AND (O[i]0) { m=i;ind[i]=1; PlotText("BEARDJEV*",i,H[i]+10,colorRed); } //abandoned baby if (((C1[i] == O1[i]) AND (C2[i]>O2[i]) AND ((C2[i]-O2[i])/(.001+H2[i]-L2[i])>.6) AND (O[i]>C[i]) AND (L1[i]>H2[i]) AND (L1[i]>H[i])) AND MA13[i]-MA134[i]>0) { m=i;ind[i]=1; PlotText("ABBABY",i,H[i]+10,colorRed); } //Bearish Kicking if(C[i].6) AND (C[i]-L[i]<0.2*(H[i]-L[i])) AND (H[i]-O[i]<0.2*(H[i]-L[i])) AND C1[i]>O1[i] AND ((C1[i]-O1[i])/(.001+H1[i]-L1[i])>.6) AND (H1[i]-C1[i]<0.2*(H[i]-L[i])) AND (O1[i]-L1[i]<0.2*(H[i]-L[i])) AND O[i]O1[i] AND (C1[i]-O1[i])/(.001+H1[i]-L1[i])>.6 AND (O[i]>C[i]) AND (O[i]>=H1[i]) AND (C[i]>O1[i]) AND (((C1[i]+O1[i])/2)>C[i]) AND (C[i]>O1[i]) AND MA13[i]-MA134[i]>0) { m=i;ind[i]=1; PlotText("DRKCLD",i,H[i]+10,colorRed); } //Three black crows if (C[i].6) AND C1[i].6) AND C2[i].6) AND (C[i]C1[i]) AND (O[i]C2[i]) AND (O1[i]0 ) { m=i;ind[i]=1; PlotText("3BLKCROWS",i,H[i]+10,colorRed); } //3 Inside down if ((C2[i]>O2[i]) AND ((C2[i]-O2[i])/(.001+H2[i]-L2[i])>.6) AND (O1[i]>C1[i]) AND (O1[i]<= C2[i]) AND (O2[i]<= C1[i]) AND ((O1[i]-C1[i])<(C2[i]-O2[i])) AND (O[i]>C[i]) AND (C[i]0 ) { m=i;ind[i]=1; PlotText("3INSIDEDN",i,H[i]+10,colorRed); } //3 Outside down if (((C2[i]>O2[i]) AND (O1[i]>C1[i]) AND ((O1[i]-C1[i])/(.001+H1[i]-L1[i])>.6) AND (O1[i]>= C2[i]) AND (O2[i]>= C1[i]) AND ((O1[i]-C1[i])>(C2[i]-O2[i])) AND (O[i]>C[i]) AND (C[i]0 ) { m=i;ind[i]=1; PlotText("3OUTSIDEDN",i,H[i]+10,colorRed); } //Bearish upside gap two crows if (O[i]>C[i] AND O1[i]>C1[i] AND C1[i]>C[i] AND O1[i]C2[i]) AND O1[i]>C2[i] AND C2[i]>O2[i] AND ((c2[i]-o2[i])/(.001+H2[i]-L2[i])>.6) AND MA13[i]-MA134[i]>0 ) { m=i;ind[i]=1; PlotText("UPSDGAP2CRW",i,H[i]+10,colorRed); } //bullish Patterns //Piercing line if (((C1[i].6) AND (((O1[i]+C1[i])/2)0.6)) AND MA13[i]-MA134[i]<0 ) { n=i;ind[i]=1; PlotText("PrcingLin",i,L[i]-10,colorGreen); } //Bullish Kicking if(C[i]>O[i] AND ((C[i]-O[i])/(.001+H[i]-L[i])>.6) AND (H[i]-C[i]<0.2*(H[i]-L[i])) AND (O[i]-L[i]<0.2*(H[i]-L[i])) AND C1[i].6) AND (H1[i]-O1[i]<0.2*(H1[i]-L1[i])) AND (C1[i]-L1[i]<0.2*(H1[i]-L1[i])) AND O[i]>o1[i] ) { n=i;ind[i]=1; PlotText("BullKik",i,L[i]-10,colorGreen); } //Bullish Abandoned Baby if ((C1[i] == O1[i]) AND (O2[i]>C2[i]) AND ((O2[i]-C2[i])/(.001+H2[i]-L2[i])>.6) AND (C[i]>O[i]) AND (L2[i]>H1[i]) AND (L[i]>H1[i]) AND MA13[i]-MA134[i]<0) { n=i;ind[i]=1; PlotText("BullABBABY",i,L[i]-10,colorGreen); } if (m==i-1 AND (O[i]>=(C[i]-0.1*(H[i]-L[i])) OR (O[i]C1[i])))PlotText("PC",i,H[i]+2,colorWhite); else if (m==i-1 )PlotText("Ignore",i,H[i]+2,colorRed); if (n==i-1 AND (O[i]<=(C[i]+0.1*(H[i]-L[i])) OR (O[i]>c1[i] OR C[i]>C1[i])))PlotText("PC",i,L[i]-2,colorWhite); else if (n==i-1 )PlotText("Ignore",i,L[i]-2,colorRed); //Bullish Morning doji Star if ((O2[i]>C2[i]) AND ((O2[i]-C2[i])/(.001+H2[i]-L2[i])>.6) AND (C2[i]>O1[i]) // AND (O1[i]>C1[i]) AND ((H1[i]-L1[i])>(3*(abs(C1[i]-O1[i])))) AND (C[i]>O[i]) AND (O[i]>O1[i]) AND MA13[i]-MA134[i]<0) { n=i;ind[i]=1; PlotText("BullMornD*",i,L[i]-10,colorGreen); } //3 Inside up if ((O2[i]>C2[i]) AND ((O2[i]-c2[i])/(.001+H2[i]-L2[i])>.6) AND (C1[i]>O1[i]) AND (C1[i]<= O2[i]) AND (C2[i]<= O1[i]) AND ((C1[i]-O1[i])<(O2[i]-C2[i])) AND (C[i]>O[i]) AND (C[i]>C1[i]) AND (O[i]>O1[i]) AND MA13[i]-MA134[i]<0) { n=i;ind[i]=1; PlotText("3InsideUp",i,L[i]-10,colorGreen); } //3 Outside up if ((O2[i]>C2[i]) AND ((O2[i]-c2[i])/(.001+H2[i]-L2[i])>.6) AND (C1[i]>O1[i]) AND (C1[i]>= O2[i]) AND (C2[i]>= O1[i]) AND ((C1[i]-O1[i])>(O2[i]-C2[i])) AND (C[i]>O[i]) AND (C[i]>C1[i]) AND MA13[i]-MA134[i]<0) { n=i;ind[i]=1; PlotText("3OutsideUp",i,L[i]-10,colorGreen); } //3 White soldiers if ((C[i]>O[i]) AND ((C[i]-O[i])/(.001+H[i]-L[i])>.6) AND (C1[i]>O1[i]) AND ((C[i]-O[i])/(.001+H[i]-L[i])>.6) AND (C2[i]>O2[i]) AND ((C[i]-O[i])/(.001+H[i]-L[i])>.6) AND (C[i]>C1[i]) AND (C1[i]>C2[i]) AND (O[i]O1[i]) AND (O1[i]O2[i]) AND (((H[i]-C[i])/(H[i]-L[i]))<.2) AND (((H1[i]-C1[i])/(H1[i]-L1[i]))<.2) AND (((H2[i]-C2[i])/(H2[i]-L2[i]))<.2) AND MA13[i]-MA134[i]<0 ) { n=i;ind[i]=1; PlotText("3WhtSoldiers",i,L[i]-10,colorGreen); } //Bullish Concealing Baby Swallow if (O[i]>C[i] AND O1[i]>C1[i] AND O2[i]>C2[i] AND O3[i]>C3[i] AND (H[i]==O[i] AND L[i]==C[i]) AND (H2[i]==O2[i] AND L2[i]==C2[i]) AND (H3[i]==O3[i] AND L3[i]==C3[i]) AND ((O3[i]-C3[i])/(.001+H3[i]-L3[i])>.6) AND ((O2[i]-C2[i])/(.001+H2[i]-L2[i])>.6) AND (((H1[i]-L1[i])>3*(O1[i]-C1[i])) AND ((H1[i]-C1[i])/(.001+H1[i]-L1[i])>0.6) AND ((H1[i]-O1[i])/(.001+H1[i]-L1[i])>0.6)) AND (O2[i]C[i])) { n=i;ind[i]=1; PlotText("ConcBABYSWL",i,L[i]-10,colorGreen); } //moderate reversal indicators //Bullish Dragonfly Doji if (O[i]==C[i] AND H[i]==C[i] AND ((H[i]-L[i])/(.001+H[i]-L[i])>.6) AND MA13[i]-MA134[i]<0 ) { n=i;ind[i]=1; PlotText("BullDoji",i,L[i]-10,colorGreen); } // bullish long legged Doji if (abs(O[i]-C[i])<0.15*(H[i]-L[i]) AND abs(O[i]-(H[i]+L[i])/2)<0.2*(H[i]-L[i]) AND C[i].6) AND O1[i].6) AND (C1[i]-C[i])<0.2*(H[i]-L[i])) { n=i;ind[i]=1; PlotText("GRaveStnDoji!!!",i,L[i]-10,colorGreen); } //Doji Star if (O[i]==C[i] AND O1[i]==C1[i] AND O2[1]==C2[i] AND O1[i]O4[i] AND ((C4[i]-O4[i])/(.001+H4[i]-L4[i])>.6) AND (C3[i]>C4[i]) AND O3[i]>C3[i] AND H3[i]-L3[i]>3*(O3[i]-C3[i]) AND (C2[i]3*abs((O2[i]-C2[i])) AND (C1[i]C1[i] AND H1[i]-L1[i]>3*(O1[i]-C1[i]) AND (H[i]>H3[i]) AND C[i]>O[i] AND ((C[i]-O[i])/(.001+H[i]-L[i])>.6)) { n=i;ind[i]=1; PlotText("BullMathold",i,L[i]-10,colorGreen); } } } }