Friday, March 23, 2018

Murrey Math Lines AFL - Good Level finder

This is indeed one of the good finder of levels related to the particular price level on the basis of Murray maths.




//AFL CODE:
/*///////////////////////////////////////////////////////////
P = ParamField( "Price field" );
T3MAP = Param("T3MA Periods", 100, 2, 300, 1, 10 );
function T3(price,periods)
{
s = 0.84;
e1=EMA(price,periods);
e2=EMA(e1,Periods);
e3=EMA(e2,Periods);
e4=EMA(e3,Periods);
e5=EMA(e4,Periods);
e6=EMA(e5,Periods);
c1=-s*s*s;
c2=3*s*s+3*s*s*s;
c3=-6*s*s-3*s-3*s*s*s;
c4=1+3*s+s*s*s+3*s*s;
Ti3=c1*e6+c2*e5+c3*e4+c4*e3;
return ti3;
}
T3MA = T3(P,T3MAP);
Plot( T3MA, _DEFAULT_NAME(), ParamColor( "Color", colorBlack ),
ParamStyle("StyleL",styleThick) );
///////////////////////////////////////////////////*/
SetChartBkColor(ParamColor("COLOR",colorTeal));

/////////////////////////////////////////////////
 function HullMaFunction( P, Periods, Delay )
{
X = 2 * WMA(P,round(Periods/2)) - WMA(P,Periods);
HullMA = WMA(X,round(sqrt(Periods)));
HullMA = Ref(HullMA,-Delay);
return HullMa;
}

PlotPriceField = ParamToggle("PriceField","HIDE|SHOW",1);
P = ParamField("Price field",-1);
Periods = Param("Periods", 100, 2, 200, 1, 10 );
Delay = Param("Delay", 0, 0, 10, 1 );
HullMA = HullMaFunction( P, Periods, Delay );
Plot( HullMA, _DEFAULT_NAME(), ParamColor( "Color", colorBlack ),
ParamStyle("StyleL",styleThick) );

//////////////////////////////////////////////////////////////////////////
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), styleCandle| 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", 300, 4, 1000, 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;i<BarCount;i++)
{
//if (i>0 AND i<BarCount)PlotText(WriteVal(dm[i],1.0),i,L[i]-15,colorWhite);

if (Type=="Intraday")
{
    if(I>1)
    {
        if(dn[i]!=dn[i-1])
        {
            Lo=L[i];
            Hi=H[i];
        }
    }
    if (L[i]<Lo)Lo=L[i];
    if (H[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]<lo)Lo=dm[i];
//PlotText(WriteVal(Lo,1.0),colorWhite,i,H[i]+15);

Fractal = IIf(Hi<=250,100, IIf(Hi<=2500,1000, IIf(Hi<=25000,10000, IIf(Hi<=250000,100000, 0 )))) ;
int_Log = int( log(Fractal/(Hi-Lo))/log(2) ) ;
Oct = Fractal * ( exp(ln(1/2)* int_Log ) ) ;


Min_1 = int( Lo / Oct ) * Oct ;

Max_1 = IIf( (Min_1 + Oct) > 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  ;



}

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

/**************************************************************/
Title = EncodeColor(colorWhite)+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(colorWhite)+"Upper Breakout "+EncodeColor(colorWhite)+WriteVal(Lineplus2,1.2)+EncodeColor(colorBRIGHTGreen)
            +" Resistance 8/8 "+EncodeColor(colorBlue)+WriteVal(Line8,1.2)+EncodeColor(colorBRIGHTGreen)+" 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);