Price Action perspective using VWAP+SD and TF AMAs

Discussion in 'Advanced Trading Strategies' started by pratapvb, Feb 7, 2016.

  1. pratapvb

    pratapvb Well-Known Member

    Joined:
    Sep 1, 2013
    Messages:
    2,219
    Likes Received:
    8,755
    Trophy Points:
    113
    Location:
    mumbai
    AMA

    Then to get the different TF perspective I use 5AMA (golden) and 15AMA (lavender with red border) that is AMA of 5min TF and AMA of 15min TF

    this gives a kind of multi TF play view

    [​IMG]
     
  2. pratapvb

    pratapvb Well-Known Member

    Joined:
    Sep 1, 2013
    Messages:
    2,219
    Likes Received:
    8,755
    Trophy Points:
    113
    Location:
    mumbai
    now when we combing the VWAP day perspective it reinforces the TF view or gives a perspetive whether to reverse or reenter or hold on etc

    [​IMG]
     
    Last edited: Feb 7, 2016
  3. pratapvb

    pratapvb Well-Known Member

    Joined:
    Sep 1, 2013
    Messages:
    2,219
    Likes Received:
    8,755
    Trophy Points:
    113
    Location:
    mumbai
    AMA

    generic version. This puts it for the chart TF. you can change to higher TF by using useTF and TF params. colors can be change to differentiate bands for visual feedback

    Code:
    
    datamode = ParamToggle("Data Mode", "No|Yes", 0) ;
    showintitle = ParamToggle("Show in Title", "No|Yes", 0) ;
    showlabel = ParamToggle("Show Label", "No|Yes", 1) ;
    
    usetf = ParamToggle("Use TF", "No|Yes", 0) ;
    tf = Param("TF", 6, 1, 100000, 1) ;
    isexpandLast = ParamToggle("Expand Mode", "First|Last", 1) ;
    expandmode = IIf(isexpandLast, expandLast, expandFirst) ;
    
    period = Param("Period", 30, 1, 100, 1) ;
    noiseperiod = Param("Noise Period", 5, 1, 100, 1) ;
    Clr = ParamColor("AMA Color", colorLightOrange) ;
    ClrClose = ParamColor("AMA Close Color", colorOrange) ;
    
    MAwidthper = Param("MA Width %", 0.005, 0, 10, 1) ;
    MAwidth = SelectedValue(C) * MAwidthper /100 ;
    showasband = ParamToggle("Show as band", "No|Yes", 1) ;
    Onlyclose = ParamToggle("Show Only Close", "No|Yes", 0) ;
    showclosebias = ParamToggle("Show Close Bias", "No|Yes", 0) ;
    Closebiasht = Param("Close bias Ht", 4, 0, 100) ;
    Clrbiasup = ParamColor("Color Bias Up", colorSkyblue) ;
    Clrbiasdn = ParamColor("Color Bias Down", colorRose) ;
    Clrbiasnone = ParamColor("Color Bias None", colorLavender) ;
    
    Clrband = ParamColor("Color Band", colorGold) ;
    bandlevel = Param("Level Band", -1, -5, 5, 1) ;
    tradearr = ParamToggle("Show Trade Arrow", "No|Yes", 0) ;
    triggertypepvt = ParamToggle("Trigger Type", "Bar|Pvt", 0) ;
    Onbody= ParamToggle("BO style", "H-L|Body", 1) ;
    
    datamodestyle = styleNoRescale ;
    if (NOT showintitle)
    	datamodestyle |= styleNoTitle ;
    if (NOT showlabel)
    	datamodestyle |= styleNoLabel ;
    
    if (datamode)
    	datamodestyle = styleNoDraw|styleNoTitle|styleNoLabel|styleNoRescale ;
    
    onlyClosestyle = 0 ;
    if (Onlyclose)
    	OnlyClosestyle = styleNoDraw ;
    
    tfs = tf *in1Minute ;
    if (usetf)
    	TimeFrameSet(tfs) ;
    
    tfma = int(Interval()/60) ;
    if (usetf AND tfs >= Interval())
    	tfma = tf ;
    
    strtf = NumToStr(tfma, 8.0)+"min" ;
    
    Refo = ParamField("TF Open", 0) ;
    Refh = ParamField("TF High", 1) ;
    Refl = ParamField("TF Low", 2) ;
    Refc = ParamField("TF Close", 3) ;
    //Refbi = ParamField("BI", 4) ;
    
    //Plot(EMA( Close, period ), "", colorRed) ;
    fast = 2/(2+1);
    slow = 2/(period+1);
    dir=abs(Refc -Ref(Refc ,-noiseperiod ));
    vol=Sum(abs(Refc -Ref(Refc,-1)),noiseperiod );
    ER=dir/vol;
    sc =( ER*(fast-slow)+slow)^2; 
    amaplotcx = AMA( Refc, sc ); 
    
    dirh=abs(Refh -Ref(Refh ,-noiseperiod ));
    volh=Sum(abs(Refh -Ref(Refh,-1)),noiseperiod );
    ERh=dirh/volh;
    sch =( ERh*(fast-slow)+slow)^2; 
    amaplothx = AMA( Refh, sch ); 
    
    dirl=abs(Refl -Ref(Refl ,-noiseperiod ));
    voll=Sum(abs(Refl -Ref(Refl,-1)),noiseperiod );
    ERl=dirl/voll;
    scl =( ERl*(fast-slow)+slow)^2; 
    amaplotlx = AMA( Refl, scl ); 
    
    	amaplotc = amaplotcx ;
    	amaploth = amaplothx ;
    	amaplotl = amaplotlx ;
    
    if (usetf)
    {
    	amaplotc = TimeFrameExpand(amaplotcx, tfs, expandmode) ;
    	amaploth = TimeFrameExpand(amaplothx, tfs, expandmode) ;
    	amaplotl = TimeFrameExpand(amaplotlx, tfs, expandmode) ;
    
    	TimeFrameRestore() ;
    }
    
    	showoncrb = ParamToggle("Show On CRB", "No|Yes", 0) ;
    	Refo = ParamField("CRB Open", 7+0) ;
    	Refh = ParamField("CRB High", 7+1) ;
    	Refl = ParamField("CRB Low", 7+2) ;
    	Refc = ParamField("CRB Close", 7+3) ;
    	Refbi = ParamField("CRB BI", 7+4) ;
    	Refcrbbars = ParamField("CRB Bars", 7+5) ;
    	Refnbars = ParamField("TF Bars", 7+6) ;
    	Refdt = ParamField("CRB DT", 7+7) ;
    
    
    	if (showoncrb)
    	{
    		diffbars = Refnbars -Refcrbbars -1 ;
    
    		// convert to crb
    		Refamaploth = Ref(amaploth, -diffbars) ;
    		Refamaplotc = Ref(amaplotc, -diffbars) ;
    		Refamaplotl = Ref(amaplotl, -diffbars) ;
    
    //		RefClre = Ref(Clr, -diffbars) ;
    
    		k = 0 ;
    		for ( i = Crbst ; i < BarCount ; i++)
    		{
    			Refbar = Refbi[i];
    
    			Refamaploth[i] = amaploth[Refbar] ;
    			Refamaplotc[i] = amaplotc[Refbar] ;
    			Refamaplotl[i] = amaplotl[Refbar] ;
    
    //			RefClre[i] = Clr[Refbar];
    			k++;
    		}
    	}
    	else
    	{
    		Refamaploth = amaploth ;
    		Refamaplotc = amaplotc ;
    		Refamaplotl = amaplotl ;
    //		RefClre = Clre ;
    	}
    
    
    Plot(Refamaplotc, strtf+"AMA close"+NumToStr(period, 1.0)+" "+ NumToStr(noiseperiod , 1.0), ClrClose, styleThick|datamodestyle) ;
    Plot(Refamaploth, strtf+"AMA high"+NumToStr(period, 1.0)+" "+ NumToStr(noiseperiod , 1.0), Clr, styleThick|datamodestyle|OnlyClosestyle) ;
    Plot(Refamaplotl, strtf+"AMA low"+NumToStr(period, 1.0)+" "+ NumToStr(noiseperiod , 1.0), Clr, styleThick|datamodestyle|OnlyClosestyle) ;
    if (MAwidth > 0)
    	PlotOHLC(Refamaplotc+MAwidth, Refamaplotc+MAwidth, Refamaplotc-MAwidth, Refamaplotc-MAwidth, "", ClrClose , styleCloud|styleNoLabel|datamodestyle) ;
    if (showasband)
    {
    	PlotOHLC(Refamaploth, Refamaploth, Refamaplotl, Refamaplotl, "", Clrband, styleCloud|styleNoLabel|datamodestyle|OnlyClosestyle, 0, 0, 0, bandlevel) ;
    }
    
    if (showclosebias)
    {
    	upside = Refamaploth-(Refamaploth-Refamaplotl)/3 ;
    	dnside = Refamaplotl+(Refamaploth-Refamaplotl)/3 ;
    
    	up = Refamaplotc >= upside ;
    	dn = Refamaplotc <= dnside ;
    
    	Clr = IIf(up, Clrbiasup, IIf(dn, Clrbiasdn,Clrbiasnone)) ;
    
    	Plot(Closebiasht, "", Clr, styleArea|styleNoLabel|styleOwnScale, 0, 100) ;
    }
    
    showparam = ParamToggle("Show Key Param", "No|Yes", 1) ;
    
    if (showparam)
    {
    	y = (SelectedValue(Refamaploth)+ SelectedValue(Refamaplotl)) /2 ;
    	tfsd = tfs ;
    	if (tfsd < Interval())
    		tfsd = Interval() ;
    
    //	str = "TF="+NumToStr(tfsd/in1Minute, 1.0) + " P=" + NumToStr(period, 1.0)+"-"+ NumToStr(noiseperiod, 1.0);
    	str = NumToStr(tfsd/in1Minute, 1.0) + " AMA" ;
    	PlotText(str, BarCount+2, y, colorBlack) ;
    }
    
    showrib = ParamToggle("Show Ribbon", "No|Yes", 0) ;
    barht = Param("Bar Ht", 4, 1, 100) ;
    
    Refo = ParamField("Open", 0) ;
    Refh = ParamField("High", 1) ;
    Refl = ParamField("Low", 2) ;
    Refc = ParamField("Close", 3) ;
    
    if (showrib)
    {
    	Buy = Refc > Max(Refamaplotc, Refamaploth) ;
    	Short = Refc < Min(Refamaplotc, Refamaplotl) ;
    
    	up = Flip(Buy, Short) ;
    	dn = Flip(Short, Buy) ;
    
    	Clr = IIf(up, colorBlue, colorRed) ;
    
    	Plot(barht, "", Clr, styleArea|styleNoLabel|styleOwnScale, 0, 100) ;
    }
    
    isemapvts = ParamToggle("Pvt Type", "H-L|EMA", 1) ;
    
    if (tradearr)// AND NOT datamode)
    {
    avgP = (Refh+refl+Refc)/3 ;
    p1 = Param("Fast", 1, 1, 100, 1) ;
    p2 = Param("Slow", 3, 1, 100, 1) ;
    
    ismph = H-H ;
    ismpl = L-L ;
    if (isemapvts)
    {
    EMA1 = EMA(avgP, p1) ;
    EMA2 = EMA(avgP, p2) ;
    
    upcross = Cross(EMA1, EMA2) ;
    downcross = Cross(EMA2, EMA1) ;
    
    bi = BarIndex() ; 
    
    mphbar = HighestSinceBars(upcross, Refh) ;
    mplbar = LowestSinceBars(downcross, Refl) ;
    
    mphbi = ValueWhen(downcross, bi, 0) - ValueWhen(downcross, mphbar, 0) ;
    ismph = mphbi == bi ;
    
    mplbi = ValueWhen(upCross, bi, 0) - ValueWhen(upCross, mplbar, 0) ;
    ismpl = mplbi == bi ;
    
    ismph = IIf(downCross AND mphbar == 0, True, ismph) ;
    ismpl = IIf(upcross AND mplbar == 0, True, ismpl) ;
    }
    else
    {
    	ismph = H >= Ref(H, -1) AND H > Ref(H, 1) ;
    	ismpl = L <= Ref(L, -1) AND L < Ref(L, 1) ;
    /*
    	ismph = ExRem(ismph, ismpl) ;
    	ismpl = ExRem(ismpl, ismph) ;
    	isbmph = ExRem(isbmph, isbmpl) ;
    	isbmpl = ExRem(isbmpl, isbmph) ;
    */
    
    }
    
    
    showminor = ParamToggle("Show Minor Pvts", "No|Yes", 1) ;
    showminorlvls = ParamToggle("Show Minor Levels", "No|Yes", 1) ;
    
    issquare = ParamToggle("Pvt style", "Circle|Square", 0) ;
    pvtmarker = IIf(issquare, shapeSmallSquare, shapeSmallCircle) ;
    
    if (showminor)
    {
    	PlotShapes(ismph*pvtmarker , colorRed, 0, Refh, 12) ;
    	PlotShapes(ismpl*pvtmarker , colorGreen, 0, Refl, -12) ;
    }
    
    mph = ValueWhen(ismph, Refh) ;
    mpl = ValueWhen(ismpl, Refl) ;
    
    if (showminorlvls)
    {
    	x = LineArray(0, SelectedValue(mph), (BarCount-1), SelectedValue(mph));
    
    	Plot(x, "", colorGold, styleDashed);
    
    	x = LineArray(0, SelectedValue(mpl), (BarCount-1), SelectedValue(mpl));
    
    	Plot(x, "", colorGold, styleDashed);
    }
    
    
    	Reflow = Refl ;
    	Refhigh = Refh ;
    	if (Onbody)
    	{
    		Reflow = Min(Refo, Refc) ;
    		Refhigh = Max(Refo, Refc) ;
    	}
    	
    	if (triggertypepvt)
    	{
    		Buy = ismph AND Refhigh > AMAploth ;
    		Short = ismpl AND Reflow < AMAplotl ;
    	}
    	else
    	{
    		Buy = avgP > AMAploth ;
    		Short = avgP < AMAplotl ;
    	}
    
    	Buy = ExRem(Buy, Short OR Refc < AMAploth ) ;
    	Short = ExRem(Short, Buy OR Refc > AMAplotl ) ;
    
    	Sell = (Refc < AMAploth AND NOT Refc  < AMAplotl AND Refl > AMAplotl) ;
    	Cover = (Refc  > AMAplotl AND NOT Refc  > AMAploth AND Refh < AMAploth) ;
    
    	Cover = ExRem(Cover, Short OR Buy) ;
    	Sell = ExRem(Sell, Short OR Buy) ;
    
    	PlotShapes(Buy*shapeUpTriangle, colorGreen, 0, Refh, 12) ;
    	PlotShapes(Short*shapeDownTriangle, colorBrown, 0, Refl, 12) ;
    
    	showsl = ParamToggle("Show SL", "No|Yes", 0) ;
    	if (showsl)
    	{
    		PlotShapes(Cover*shapeSmallUpTriangle, colorBlack, 0, Refh, 12) ;
    		PlotShapes(Sell*shapeSmallDownTriangle, colorBlack, 0, Refl, 12) ;
    	}
    
    }
    
     
  4. pratapvb

    pratapvb Well-Known Member

    Joined:
    Sep 1, 2013
    Messages:
    2,219
    Likes Received:
    8,755
    Trophy Points:
    113
    Location:
    mumbai
    15ama

    15min AMA where some defaults have been set to 15min TF with my default colors for it

    Code:
    
    datamode = ParamToggle("Data Mode", "No|Yes", 0) ;
    showintitle = ParamToggle("Show in Title", "No|Yes", 0) ;
    showlabel = ParamToggle("Show Label", "No|Yes", 1) ;
    
    usetf = ParamToggle("Use TF", "No|Yes", 1) ;
    tf = Param("TF", 15, 1, 100000, 1) ;
    isexpandLast = ParamToggle("Expand Mode", "First|Last", 1) ;
    expandmode = IIf(isexpandLast, expandLast, expandFirst) ;
    period = Param("Period", 30, 1, 100, 1) ;
    noiseperiod = Param("Noise Period", 5, 1, 100, 1) ;
    Clr = ParamColor("AMA Color", colorRed) ;
    ClrClose = ParamColor("AMA Close Color", colorRed) ;
    
    MAwidthper = Param("MA Width %", 0.005, 0, 10, 1) ;
    MAwidth = SelectedValue(C) * MAwidthper /100 ;
    showasband = ParamToggle("Show as band", "No|Yes", 1) ;
    Clrband = ParamColor("Color Band", colorLavender) ;
    bandlevel = Param("Level Band", -2, -5, 5, 1) ;
    tradearr = ParamToggle("Show Trade Arrow", "No|Yes", 0) ;
    triggertypepvt = ParamToggle("Trigger Type", "Bar|Pvt", 0) ;
    Onbody= ParamToggle("BO style", "H-L|Body", 1) ;
    
    datamodestyle = styleNoRescale ;
    if (NOT showintitle)
    	datamodestyle |= styleNoTitle ;
    if (NOT showlabel)
    	datamodestyle |= styleNoLabel ;
    
    if (datamode)
    	datamodestyle = styleNoDraw|styleNoTitle|styleNoLabel|styleNoRescale ;
    
    tfs = tf *in1Minute ;
    if (usetf)
    	TimeFrameSet(tfs) ;
    
    tfma = int(Interval()/60) ;
    if (usetf AND tfs >= Interval())
    	tfma = tf ;
    
    strtf = NumToStr(tfma, 8.0)+"min" ;
    
    Refo = ParamField("TF Open", 0) ;
    Refh = ParamField("TF High", 1) ;
    Refl = ParamField("TF Low", 2) ;
    Refc = ParamField("TF Close", 3) ;
    //Refbi = ParamField("BI", 4) ;
    
    //Plot(EMA( Close, period ), "", colorRed) ;
    fast = 2/(2+1);
    slow = 2/(period+1);
    dir=abs(Refc -Ref(Refc ,-noiseperiod ));
    vol=Sum(abs(Refc -Ref(Refc,-1)),noiseperiod );
    ER=dir/vol;
    sc =( ER*(fast-slow)+slow)^2; 
    amaplotcx = AMA( Refc, sc ); 
    
    dirh=abs(Refh -Ref(Refh ,-noiseperiod ));
    volh=Sum(abs(Refh -Ref(Refh,-1)),noiseperiod );
    ERh=dirh/volh;
    sch =( ERh*(fast-slow)+slow)^2; 
    amaplothx = AMA( Refh, sch ); 
    
    dirl=abs(Refl -Ref(Refl ,-noiseperiod ));
    voll=Sum(abs(Refl -Ref(Refl,-1)),noiseperiod );
    ERl=dirl/voll;
    scl =( ERl*(fast-slow)+slow)^2; 
    amaplotlx = AMA( Refl, scl ); 
    
    	amaplotc = amaplotcx ;
    	amaploth = amaplothx ;
    	amaplotl = amaplotlx ;
    
    if (usetf)
    {
    	amaplotc = TimeFrameExpand(amaplotcx, tfs, expandmode) ;
    	amaploth = TimeFrameExpand(amaplothx, tfs, expandmode) ;
    	amaplotl = TimeFrameExpand(amaplotlx, tfs, expandmode) ;
    
    	TimeFrameRestore() ;
    }
    
    	showoncrb = ParamToggle("Show On CRB", "No|Yes", 0) ;
    	Refo = ParamField("CRB Open", 7+0) ;
    	Refh = ParamField("CRB High", 7+1) ;
    	Refl = ParamField("CRB Low", 7+2) ;
    	Refc = ParamField("CRB Close", 7+3) ;
    	Refbi = ParamField("CRB BI", 7+4) ;
    	Refcrbbars = ParamField("CRB Bars", 7+5) ;
    	Refnbars = ParamField("TF Bars", 7+6) ;
    	Refdt = ParamField("CRB DT", 7+7) ;
    
    
    	if (showoncrb)
    	{
    		diffbars = Refnbars -Refcrbbars -1 ;
    
    		// convert to crb
    		Refamaploth = Ref(amaploth, -diffbars) ;
    		Refamaplotc = Ref(amaplotc, -diffbars) ;
    		Refamaplotl = Ref(amaplotl, -diffbars) ;
    
    //		RefClre = Ref(Clr, -diffbars) ;
    
    		k = 0 ;
    		for ( i = Crbst ; i < BarCount ; i++)
    		{
    			Refbar = Refbi[i];
    
    			Refamaploth[i] = amaploth[Refbar] ;
    			Refamaplotc[i] = amaplotc[Refbar] ;
    			Refamaplotl[i] = amaplotl[Refbar] ;
    
    //			RefClre[i] = Clr[Refbar];
    			k++;
    		}
    	}
    	else
    	{
    		Refamaploth = amaploth ;
    		Refamaplotc = amaplotc ;
    		Refamaplotl = amaplotl ;
    //		RefClre = Clre ;
    	}
    
    
    Plot(Refamaplotc, strtf+"AMA close"+NumToStr(period, 1.0)+" "+ NumToStr(noiseperiod , 1.0), ClrClose , styleThick|datamodestyle) ;
    Plot(Refamaploth, strtf+"AMA high"+NumToStr(period, 1.0)+" "+ NumToStr(noiseperiod , 1.0), Clr, styleThick|datamodestyle) ;
    Plot(Refamaplotl, strtf+"AMA low"+NumToStr(period, 1.0)+" "+ NumToStr(noiseperiod , 1.0), Clr, styleThick|datamodestyle) ;
    if (MAwidth > 0)
    	PlotOHLC(Refamaplotc+MAwidth, Refamaplotc+MAwidth, Refamaplotc-MAwidth, Refamaplotc-MAwidth, "", ClrClose , styleCloud|styleNoLabel|datamodestyle) ;
    if (showasband)
    {
    	PlotOHLC(Refamaploth, Refamaploth, Refamaplotl, Refamaplotl, "", Clrband, styleCloud|styleNoLabel|datamodestyle, 0, 0, 0, bandlevel) ;
    }
    
    showparam = ParamToggle("Show Key Param", "No|Yes", 1) ;
    
    if (showparam)
    {
    	y = (SelectedValue(Refamaploth)+ SelectedValue(Refamaplotl)) /2 ;
    	tfsd = tfs ;
    	if (tfsd < Interval())
    		tfsd = Interval() ;
    
    //	str = "TF="+NumToStr(tfsd/in1Minute, 1.0) + " P=" + NumToStr(period, 1.0)+"-"+ NumToStr(noiseperiod, 1.0);
    	str = NumToStr(tfsd/in1Minute, 1.0) + " AMA" ;
    	PlotText(str, BarCount+2, y, colorBlack) ;
    }
    
    Refo = ParamField("Open", 0) ;
    Refh = ParamField("High", 1) ;
    Refl = ParamField("Low", 2) ;
    Refc = ParamField("Close", 3) ;
    
    if (tradearr) // AND NOT datamode)
    {
    avgP = (Refh+refl+Refc)/3 ;
    p1 = Param("Fast", 1, 1, 100, 1) ;
    p2 = Param("Slow", 3, 1, 100, 1) ;
    
    ismph = H-H ;
    ismpl = L-L ;
    
    EMA1 = EMA(avgP, p1) ;
    EMA2 = EMA(avgP, p2) ;
    
    upcross = Cross(EMA1, EMA2) ;
    downcross = Cross(EMA2, EMA1) ;
    
    bi = BarIndex() ; 
    
    mphbar = HighestSinceBars(upcross, Refh) ;
    mplbar = LowestSinceBars(downcross, Refl) ;
    
    mphbi = ValueWhen(downcross, bi, 0) - ValueWhen(downcross, mphbar, 0) ;
    ismph = mphbi == bi ;
    
    mplbi = ValueWhen(upCross, bi, 0) - ValueWhen(upCross, mplbar, 0) ;
    ismpl = mplbi == bi ;
    
    ismph = IIf(downCross AND mphbar == 0, True, ismph) ;
    ismpl = IIf(upcross AND mplbar == 0, True, ismpl) ;
    
    showminor = ParamToggle("Show Minor Pvts", "No|Yes", 1) ;
    showminorlvls = ParamToggle("Show Minor Levels", "No|Yes", 1) ;
    
    issquare = ParamToggle("Pvt style", "Circle|Square", 0) ;
    pvtmarker = IIf(issquare, shapeSmallSquare, shapeSmallCircle) ;
    
    if (showminor)
    {
    	PlotShapes(ismph*pvtmarker , colorRed, 0, Refh, 12) ;
    	PlotShapes(ismpl*pvtmarker , colorGreen, 0, Refl, -12) ;
    }
    
    mph = ValueWhen(ismph, Refh) ;
    mpl = ValueWhen(ismpl, Refl) ;
    
    if (showminorlvls)
    {
    	x = LineArray(0, SelectedValue(mph), (BarCount-1), SelectedValue(mph));
    
    	Plot(x, "", colorGold, styleDashed);
    
    	x = LineArray(0, SelectedValue(mpl), (BarCount-1), SelectedValue(mpl));
    
    	Plot(x, "", colorGold, styleDashed);
    }
    
    
    	Reflow = Refl ;
    	Refhigh = Refh ;
    	if (Onbody)
    	{
    		Reflow = Min(Refo, Refc) ;
    		Refhigh = Max(Refo, Refc) ;
    	}
    	
    	if (triggertypepvt)
    	{
    		Buy = ismph AND mph > AMAploth ;
    		Short = ismpl AND mpl < AMAplotl ;
    	}
    	else
    	{
    		Buy = avgP > AMAploth ;
    		Short = avgP < AMAplotl ;
    	}
    
    	Buy = ExRem(Buy, Short OR Refc < AMAploth ) ;
    	Short = ExRem(Short, Buy OR Refc > AMAplotl ) ;
    
    	inbuy = Flip(Buy, Short) ;
    	inshort = Flip(Short, Buy) ;
    
    	Sell = (Refc < AMAploth AND NOT Refc  < AMAplotl AND inbuy) ;
    	Cover = (Refc  > AMAplotl AND NOT Refc  > AMAploth AND inshort) ;
    
    	Cover = ExRem(Cover, Short OR Buy) ;
    	Sell = ExRem(Sell, Short OR Buy) ;
    
    	PlotShapes(Buy*shapeUpTriangle, colorBlue, 0, Refh, 12) ;
    	PlotShapes(Short*shapeDownTriangle, colorRed, 0, Refl, 12) ;
    
    	showsl = ParamToggle("Show SL", "No|Yes", 1) ;
    	if (showsl)
    	{
    		PlotShapes(Cover*shapeSmallUpTriangle, colorBlack, 0, Refh, 12) ;
    		PlotShapes(Sell*shapeSmallDownTriangle, colorBlack, 0, Refl, 12) ;
    	}
    
    
    }
    
     
  5. vijkris

    vijkris Well-Known Member

    Joined:
    Mar 4, 2013
    Messages:
    3,714
    Likes Received:
    7,939
    Trophy Points:
    113
    Location:
    hyderabad
    pratap sir, no offence , sorry to interrupt the flow,
    thanks for starting the thread.:clap:

    in the image u meant +1sd? or vah :confused:

    [​IMG]
     
    TracerBullet and monkeybusiness like this.
  6. pratapvb

    pratapvb Well-Known Member

    Joined:
    Sep 1, 2013
    Messages:
    2,219
    Likes Received:
    8,755
    Trophy Points:
    113
    Location:
    mumbai
    Yes +1sd not VAH

    good to know that people have caught on :)
     
    Last edited: Feb 7, 2016

  7. pratapvb

    pratapvb Well-Known Member

    Joined:
    Sep 1, 2013
    Messages:
    2,219
    Likes Received:
    8,755
    Trophy Points:
    113
    Location:
    mumbai
    Now based on this combo of information we can take trades

    but for that we need some kind of pvts

    for coding purpose I created a pvt using 1ema and 3ema cross over. When it cross over to the up a mpl is defined and when it crosses over to the down then an mph is defined. NOTE that this is an approximation of a pvt and not a true pvt created by PA but in 95+% of the cases they will match

    with this we can create multiple type of pvts

    for e.g. in the charts below the green/brown dots are 5min ema pvts, the green/brown square are more conservative pvts with a factor of 2 ...that is 2ema and 6ema (or could think of it as 10min pvts. The bluegrey/orange pvts are 15min pvts (hence it shows as 3 squares on 5min chart

    of course a 15min pvt will also be a 10min pvt and 5min pvt so those are hidden at those pts

    [​IMG]


    [​IMG]
     
  8. pratapvb

    pratapvb Well-Known Member

    Joined:
    Sep 1, 2013
    Messages:
    2,219
    Likes Received:
    8,755
    Trophy Points:
    113
    Location:
    mumbai
    EMApvts

    Code:
    
    // Author: Pratap Balakrishnan
    // Copyright: All rights reserved. Not to be circulated or shared or posted on websites without the author's written permission.
    // email id: proxypra@gmail.com
    //
    
    ro = ParamField("Open", 0) ;
    rh = ParamField("High", 1) ;
    rl = ParamField("Low", 2) ;
    rc = ParamField("Close", 3) ;
    
    
    P = (rH+rL+rC)/3 ;
    p1 = Param("Fast", 1, 1, 100, 1) ;
    p2 = Param("Slow", 3, 1, 100, 1) ;
    EMAfactor = Param("EMA factor", 1, 1, 100) ;
    
    usebpvts = ParamToggle("Use Body Pvts", "No|Yes", 0) ;
    isemapvts = ParamToggle("Pvt Type", "H-L|EMA", 1) ;
    
    ismph = H-H ;
    ismpl = L-L ;
    bph = Max(rO,rC);
    bpl = Min(rO,rC);
    
    if (isemapvts)
    {
    EMA1 = EMA(P, p1*EMAfactor) ;
    EMA2 = EMA(P, p2*EMAfactor) ;
    
    upcross = Cross(EMA1, EMA2) ;
    downcross = Cross(EMA2, EMA1) ;
    
    //bph = Max(O,C);
    //bpl = Min(O,C);
    bi = BarIndex() ;
    
    mphbar = HighestSinceBars(upcross, rH) ;
    mplbar = LowestSinceBars(downcross, rL) ;
    
    mphbi = ValueWhen(downcross, bi, 0) - ValueWhen(downcross, mphbar, 0) ;
    ismph = mphbi == bi ;
    
    mplbi = ValueWhen(upCross, bi, 0) - ValueWhen(upCross, mplbar, 0) ;
    ismpl = mplbi == bi ;
    
    ismph = IIf(downCross AND mphbar == 0, True, ismph) ;
    ismpl = IIf(upcross AND mplbar == 0, True, ismpl) ;
    
    bmphbar = HighestSinceBars(upcross, bph) ;
    bmplbar = LowestSinceBars(downcross, bpl) ;
    
    bmphbi = ValueWhen(downcross, bi, 0) - ValueWhen(downcross, bmphbar, 0) ;
    isbmph = bmphbi == bi ;
    
    bmplbi = ValueWhen(upCross, bi, 0) - ValueWhen(upCross, bmplbar, 0) ;
    isbmpl = bmplbi == bi ;
    
    isbmph = IIf(downCross AND bmphbar == 0, True, isbmph) ;
    isbmpl = IIf(upcross AND bmplbar == 0, True, isbmpl) ;
    }
    else
    {
    	isbmph = ismph = rH >= Ref(rH, -1) AND rH > Ref(rH, 1) ;
    	isbmpl = ismpl = rL <= Ref(rL, -1) AND rL < Ref(rL, 1) ;
    
    	ismph = ExRem(ismph, ismpl) ;
    	ismpl = ExRem(ismpl, ismph) ;
    	isbmph = ExRem(isbmph, isbmpl) ;
    	isbmpl = ExRem(isbmpl, isbmph) ;
    
    
    }
    
    showminor = ParamToggle("Show Minor Pvts", "No|Yes", 1) ;
    
    issquare = ParamToggle("Pvt style", "Circle|Square", 1) ;
    Clrmph = ParamColor("MPH Color", colorGreen) ;
    Clrmpl = ParamColor("MPL Color", colorBrown) ;
    
    pvtmarker = IIf(issquare, shapeSmallSquare, shapeSmallCircle) ;
    
    if (showminor)
    {
    if (usebpvts)
    {
    	PlotShapes(isbmph*pvtmarker , Clrmph , 0, rH, 12) ;
    	PlotShapes(isbmpl*pvtmarker , Clrmpl, 0, rL, -12) ;
    }
    else
    {
    	PlotShapes(ismph*pvtmarker , Clrmph , 0, rH, 12) ;
    	PlotShapes(ismpl*pvtmarker , Clrmpl, 0, rL, -12) ;
    }
    }
    
    showminorlvls = ParamToggle("Show Minor Levels", "No|Yes", 1) ;
    
    mph = ValueWhen(ismph, rH) ;
    mpl = ValueWhen(ismpl, rL) ;
    
    if (showminorlvls)
    {
    	x = LineArray(0, SelectedValue(mph), (BarCount-1), SelectedValue(mph));
    
    	Plot(x, "", colorGold, styleDashed|styleNoRescale);
    
    	x = LineArray(0, SelectedValue(mpl), (BarCount-1), SelectedValue(mpl));
    
    	Plot(x, "", colorGold, styleDashed|styleNoRescale);
    }
    
    showminortrend = ParamToggle("Show Minor Trend", "No|Yes", 0) ;
    if (showminortrend)
    {
    	// initialize minor levels
    	mph = ValueWhen(ismph, rH) ;
    	mpl = ValueWhen(ismpl, rL) ;
    	mbph = ValueWhen(isbmph, bph) ;
    	mbpl = ValueWhen(isbmpl, bpl) ;
    
    	// minor trend
    	mut = rH > mph OR (rC > mbph) OR (ismph AND rH > Ref(mph, -1));
    	mdt = rL < mpl OR (rC < mbpl) OR (ismpl AND rL < Ref(mpl, -1));
    	mdt = Flip(mdt, mut) ;
    	mut = Flip(mut, mdt) ;
    	//mutst = ExRem(mut, mdt) ;
    	//mdtst = ExRem(mdt, mut) ;
    	
    	Clr = IIf(mut, colorBlue, colorRed) ;
    //	PlotOHLC(rO,rH,rL,rC, "", Clr, styleCandle|styleNoLabel);
    	Plot(4, "", Clr, styleArea|styleOwnScale, 0, 100, 0, -1) ;
    
    }
    
    
    tffactor = Param("TF Factor", 5, 1, 100, 1)  ;
    showhigher = ParamToggle("Show Higher", "No|Yes", 0) ;
    ishtfemapvts = ParamToggle("HTF Pvt Type", "H-L|EMA", 1) ;
    htfEMAfactor = Param("HTF EMA factor", 1, 1, 100) ;
    
    
    if (showhigher)
    {
    tfs = tffactor *Interval() ;
    
    TimeFrameSet(tfs) ;
    
    if (ishtfemapvts)
    {
    Ptf = (H+L+C)/3 ;
    EMA1tf = EMA(Ptf, p1*htfEMAfactor) ;
    EMA2tf = EMA(Ptf, p2*htfEMAfactor) ;
    
    upcrosstf = Cross(EMA1tf, EMA2tf) ;
    downcrosstf = Cross(EMA2tf, EMA1tf) ;
    bphtf = Max(O,C) ;
    bpltf = Min(O,C) ;
    
    if (usebpvts)
    {
    	Refhtf = bphtf ;
    	Refltf = bpltf ;
    }
    else
    {
    	Refhtf = H ;
    	Refltf = L ;
    }
    
    mphbartf = HighestSinceBars(upcrosstf, Refhtf) ;
    mplbartf = LowestSinceBars(downcrosstf, Refltf) ;
    
    bitf = BarIndex() ;
    mphbitf = ValueWhen(downcrosstf, bitf, 0) - ValueWhen(downcrosstf, mphbartf, 0) ;
    ismphtf = mphbitf == bitf ;
    
    mplbitf = ValueWhen(upCrosstf, bitf, 0) - ValueWhen(upCrosstf, mplbartf, 0) ;
    ismpltf = mplbitf == bitf ;
    
    ismphtf = IIf(downCrosstf AND mphbartf == 0, True, ismphtf) ;
    ismpltf = IIf(upcrosstf AND mplbartf == 0, True, ismpltf) ;
    }
    else
    {
    	ismphtf = H >= Ref(H, -1) AND H > Ref(H, 1) ;
    	ismpltf = L <= Ref(L, -1) AND L < Ref(L, 1) ;
    
    	ismphtf = ExRem(ismphtf, ismpltf) ;
    	ismpltf = ExRem(ismpltf, ismphtf) ;
    }
    
    if (showminortrend)
    {
    	// initialize minor levels
    	mphtf = ValueWhen(ismphtf, H) ;
    	mpltf = ValueWhen(ismpltf, L) ;
    	mbphtf = ValueWhen(ismphtf, bphtf) ;
    	mbpltf = ValueWhen(ismpltf, bpltf) ;
    
    	// minor trend
    	muttf = H > mphtf OR (C > mbphtf) OR (ismphtf AND H > Ref(mphtf, -1));
    	mdttf = L < mpltf OR (C < mbpltf) OR (ismpltf AND L < Ref(mpltf, -1));
    	mdttf = Flip(mdttf, muttf) ;
    	muttf = Flip(muttf, mdttf) ;
    	//mutst = ExRem(mut, mdt) ;
    	//mdtst = ExRem(mdt, mut) ;
    	
    	Clrtf = IIf(muttf, colorBlue, colorRed) ;
    //	PlotOHLC(rO,rH,rL,rC, "", Clr, styleCandle|styleNoLabel);
    	Clrtfe = TimeFrameExpand(Clrtf, tfs, expandLast) ;
    	Plot(2, "", Clrtfe, styleArea|styleOwnScale, 0, 100) ;
    
    
    }
    
    ismphtfe = TimeFrameExpand(ismphtf, tfs, expandFirst) ;
    ismpltfe = TimeFrameExpand(ismpltf, tfs, expandFirst) ;
    
    He=TimeFrameExpand(H, tfs, expandFirst) ;
    Le=TimeFrameExpand(L, tfs, expandFirst) ;
    
    mphhtf = ValueWhen(ismphtf, H) ;
    mplhtf = ValueWhen(ismpltf, L) ;
    
    muthtf = H > mphhtf OR (ismphtf AND H > Ref(mphhtf, -1));
    mdthtf = L < mplhtf OR (ismpltf AND L < Ref(mplhtf, -1));
    muthtf = IIf(muthtf AND mdthtf, IIf(C<O, 0, 1), muthtf) ;
    mdthtf = IIf(muthtf AND mdthtf, IIf(C>O, 0, 1), mdthtf) ;
    
    TimeFrameRestore() ;
    muthtfe = TimeFrameExpand(muthtf, tfs, expandFirst) ;
    mdthtfe = TimeFrameExpand(mdthtf, tfs, expandFirst) ;
    
    mphhtfe = TimeFrameExpand(mphhtf, tfs, expandLast) ;
    mplhtfe = TimeFrameExpand(mplhtf, tfs, expandLast) ;
    
    ishtfmph = IIf(ismph == ismphtfe, 1, 0) ;
    ishtfmpl = IIf(ismpl == ismpltfe, 1, 0) ;
    
    
    PlotShapes(ismphtfe *shapeSmallSquare, Clrmph , 0, He, 12) ;
    PlotShapes(ismpltfe *shapeSmallSquare, Clrmpl, 0, Le, -12) ;
    
    showhtflvls = ParamToggle("Show HTF levels", "No|Yes", 1) ;
    Clrhtflvl = colorPaleGreen ;
    
    //Plot(2, "", IIf(ismph , colorBlue, IIf(ismpl, colorRed, colorGrey40)), styleArea|styleOwnScale, 0, 100) ;
    //Plot(4, "", IIf(ishtfmph , colorBlue, IIf(ishtfmpl , colorRed, colorGrey40)), styleArea|styleOwnScale, 0, 100) ;
    	mphhtf = ValueWhen(ismphtfe , He, 1) ;
    	mplhtf = ValueWhen(ismpltfe , Le, 1) ;
    
    if (showhtflvls )
    {
    	mphhtf = ValueWhen(ismphtfe , He, 1) ;
    	mplhtf = ValueWhen(ismpltfe , Le, 1) ;
    	x = LineArray(0, SelectedValue(mphhtf), (BarCount-1), SelectedValue(mphhtf));
    
    	Plot(x, NumToStr(tfs/in1Minute, 1.0)+"min mph", Clrhtflvl , styleDashed|styleNoRescale|styleNoTitle);
    
    	x = LineArray(0, SelectedValue(mplhtf), (BarCount-1), SelectedValue(mplhtf));
    
    	Plot(x, NumToStr(tfs/in1Minute, 1.0)+"min mpl", Clrhtflvl , styleDashed|styleNoRescale|styleNoTitle);
    }
    
    showhtftrend = ParamToggle("Show HTF Trend", "No|Yes", 0) ;
    Htfbarht = Param("HTF Trend Bar Ht", 4, 1,100) ;
    riblayer = Param("Ribbon Layer", 1, -5, 5) ;
    
    if (showhtftrend)
    {
    	mdthtfe = Flip(mdthtfe, muthtfe) ;
    	muthtfe = Flip(muthtfe, mdthtfe) ;
    
    	Plot(Htfbarht, "", IIf(muthtfe, colorBlue, colorRed), styleArea|styleNoLabel|styleOwnScale, 0, 100, 0, riblayer) ;
    }
    //Plot(2, "", IIf(ismphtfe , colorRed, IIf(ismpltfe , colorBlue, colorGrey40)), styleArea|styleOwnScale, 0, 100) ;
    //Plot(4, "", IIf(ismph, colorRed, IIf(ismpl , colorBlue, colorGrey40)), styleArea|styleOwnScale, 0, 100) ;
    }
    
     
  9. pratapvb

    pratapvb Well-Known Member

    Joined:
    Sep 1, 2013
    Messages:
    2,219
    Likes Received:
    8,755
    Trophy Points:
    113
    Location:
    mumbai
    EMApvtsTF

    to puts pvts of higher TF. default is set to 15min

    Code:
    
    // Author: Pratap Balakrishnan
    // Copyright: All rights reserved. Not to be circulated or shared or posted on websites without the author's written permission.
    // email id: proxypra@gmail.com
    //
    
    debug = ParamToggle("Debug", "No|Yes", 0) ;
    
    ro = ParamField("Open", 0) ;
    rh = ParamField("High", 1) ;
    rl = ParamField("Low", 2) ;
    rc = ParamField("Close", 3) ;
    
    p1 = Param("Fast", 1, 1, 100, 1) ;
    p2 = Param("Slow", 3, 1, 100, 1) ;
    usebpvts = ParamToggle("Use Body Pvts", "No|Yes", 0) ;
    isemapvts = ParamToggle("Pvt Type", "H-L|EMA", 1) ;
    
    showminor = ParamToggle("Show Minor Pvts", "No|Yes", 1) ;
    
    issquare = ParamToggle("Pvt style", "Circle|Square", 1) ;
    Clrmph = ParamColor("MPH Color", colorBlueGrey) ;
    Clrmpl = ParamColor("MPL Color", colorOrange) ;
    
    pvtmarker = IIf(issquare, shapeSmallSquare, shapeSmallCircle) ;
    
    showminortrend = ParamToggle("Show Minor Trend", "No|Yes", 1) ;
    barht = Param("Bar Ht", 4, 0, 100, 1) ;
    showtrendclronbar = ParamToggle("Show Trend on Bar", "No|Yes", 0) ;
    
    tf = Param("TF", 15, 1, 100, 1)  ;
    showhigher = ParamToggle("Show Higher", "No|Yes", 1) ;
    
    tfs = tf *in1Minute;
    
    TimeFrameSet(tfs) ;
    
    if (isemapvts)
    {
    	Ptf = (H+L+C)/3 ;
    	EMA1tf = EMA(Ptf, p1) ;
    	EMA2tf = EMA(Ptf, p2) ;
    
    	upcrosstf = Cross(EMA1tf, EMA2tf) ;
    	downcrosstf = Cross(EMA2tf, EMA1tf) ;
    	bphtf = Max(O,C) ;
    	bpltf = Min(O,C) ;
    
    	if (usebpvts)
    	{
    		Refhtf = bphtf ;
    		Refltf = bpltf ;
    	}
    	else
    	{
    		Refhtf = H ;
    		Refltf = L ;
    	}
    
    	mphbartf = HighestSinceBars(upcrosstf, Refhtf) ;
    	mplbartf = LowestSinceBars(downcrosstf, Refltf) ;
    
    	bitf = BarIndex() ;
    	mphbitf = ValueWhen(downcrosstf, bitf, 0) - ValueWhen(downcrosstf, mphbartf, 0) ;
    	ismphtf = mphbitf == bitf ;
    
    	mplbitf = ValueWhen(upCrosstf, bitf, 0) - ValueWhen(upCrosstf, mplbartf, 0) ;
    	ismpltf = mplbitf == bitf ;
    
    	ismphtf = IIf(downCrosstf AND mphbartf == 0, True, ismphtf) ;
    	ismpltf = IIf(upcrosstf AND mplbartf == 0, True, ismpltf) ;
    }
    else
    {
    	ismphtf = H > Ref(H, -1) AND H > Ref(H, 1) ;
    	ismpltf = L < Ref(L, -1) AND L < Ref(L, 1) ;
    }
    
    	// initialize minor levels
    	mphtf = ValueWhen(ismphtf, H) ;
    	mpltf = ValueWhen(ismpltf, L) ;
    	mbphtf = ValueWhen(ismphtf, bphtf) ;
    	mbpltf = ValueWhen(ismpltf, bpltf) ;
    
    	// minor trend
    	mphbreak = H > mphtf OR (ismphtf AND H > Ref(mphtf, -1));
    	mplbreak = L < mpltf OR (ismpltf AND L < Ref(mpltf, -1));
    	mdttf = Flip(mplbreak , mphbreak ) ;
    	muttf = Flip(mphbreak , mplbreak) ;
    	//mutst = ExRem(mut, mdt) ;
    	//mdtst = ExRem(mdt, mut) ;
    	
    	Clrtf = IIf(muttf, colorBlue, colorRed) ;
    //	PlotOHLC(rO,rH,rL,rC, "", Clr, styleCandle|styleNoLabel);
    	Clrtfe = TimeFrameExpand(Clrtf, tfs, expandFirst) ;
    	mphbreake = TimeFrameExpand(mphbreak, tfs, expandFirst) ;
    	mplbreake = TimeFrameExpand(mplbreak, tfs, expandFirst) ;
    
    //	Plot(barht, "", Clrtfe, styleArea|styleOwnScale, 0, 100) ;
    
    nlvls = Param("No. of Lvls", 0, 0, 100, 1) ;
    showlvls = ParamToggle("Show Lvls", "No|Yes", 0) ;
    showatbodies = ParamToggle("Show at Bodies", "No|Yes", 1) ;
    showlabel = ParamToggle("Show Label", "No|Yes", 1) ;
    
    Clrhigh = ParamColor("Color High", colorRed) ;
    Clrlow = ParamColor("Color Low", colorBlue) ;
    styl = 0 ;
    if (NOT showlabel)
    	style |= styleNoLabel ;
    
    if (showlvls)
    {
    	for (i = 1 ; i <= nlvls; i++) 
    	{
    		Lvlh = ValueWhen(ismphtf, IIf(showatbodies, Max(O,C), H), i) ;
    		Lvll = ValueWhen(ismpltf, IIf(showatbodies, Min(O,C), L), i) ;
    
    		Lvlhe = TimeFrameExpand(Lvlh, tfs, expandFirst) ;
    		Lvlle = TimeFrameExpand(Lvll, tfs, expandFirst) ;
    
    		Plot(IIf(Lvlhe == Ref(Lvlhe, 1), Lvlhe, Null), "", Clrhigh, styleThick|styl |styleNoRescale) ;
    		Plot(IIf(Lvlle == Ref(Lvlle, 1), Lvlle, Null), "", Clrlow, styleThick|styl |styleNoRescale) ;
    	}
    }
    
    ismphtfe = TimeFrameExpand(ismphtf, tfs, expandFirst) ;
    ismpltfe = TimeFrameExpand(ismpltf, tfs, expandFirst) ;
    mphtfe = TimeFrameExpand(mphtf, tfs, expandLast) ;
    mpltfe = TimeFrameExpand(mpltf, tfs, expandLast) ;
    
    He=TimeFrameExpand(H, tfs, expandFirst) ;
    Le=TimeFrameExpand(L, tfs, expandFirst) ;
    
    TimeFrameRestore() ;
    
    //ishtfmph = IIf(ismph == ismphtfe, 1, 0) ;
    //ishtfmpl = IIf(ismpl == ismpltfe, 1, 0) ;
    
    	showoncrb = ParamToggle("Show On CRB", "No|Yes", 0) ;
    	Refo = ParamField("CRB Open", 7+0) ;
    	Refh = ParamField("CRB High", 7+1) ;
    	Refl = ParamField("CRB Low", 7+2) ;
    	Refc = ParamField("CRB Close", 7+3) ;
    	Refbi = ParamField("CRB BI", 7+4) ;
    	Refcrbbars = ParamField("CRB Bars", 7+5) ;
    	Refnbars = ParamField("TF Bars", 7+6) ;
    	Refdt = ParamField("CRB DT", 7+7) ;
    
    
    	if (showoncrb)
    	{
    		diffbars = Refnbars -Refcrbbars -1 ;
    
    		// convert to crb
    		Refismphtfe = Ref(ismphtfe, -diffbars) ;
    		Refismpltfe = Ref(ismpltfe, -diffbars) ;
    		RefHe = Ref(He, -diffbars) ;
    		RefLe = Ref(Le, -diffbars) ;
    		RefClrtfe = Ref(Clrtfe, -diffbars) ;
    
    //		RefClre = Ref(Clr, -diffbars) ;
    
    		k = 0 ;
    		for ( i = Crbst ; i < BarCount ; i++)
    		{
    			Refbar = Refbi[i];
    
    			Refismphtfe[i] = ismphtfe[Refbar] ;
    			Refismpltfe[i] = ismpltfe[Refbar] ;
    
    			RefHe[i] = He[Refbar] ;
    			RefLe[i] = Le[Refbar] ;
    
    			RefClrtfe[i] = Clrtfe[Refbar] ;
    //			RefClre[i] = Clr[Refbar];
    			k++;
    		}
    	}
    	else
    	{
    		Refismphtfe = ismphtfe ;
    		Refismpltfe = ismpltfe ;
    		RefHe = He;
    		RefLe = Le;
    		RefClrtfe = Clrtfe;
    
    //		RefClre = Clre ;
    	}
    
    
    markpvts = ParamToggle("Mark Pvts", "No|Yes", 1) ;
    showtext = ParamToggle("Show Text", "No|Yes", 1) ;
    txtoff = 16 ;
    ribLayer = Param("Rib Layer", 0, -5, 5, 1) ;
    
    
    if (markpvts)
    {
    	PlotShapes(Refismphtfe *pvtmarker , Clrmph , 0, RefHe, 12) ;
    	PlotShapes(Refismpltfe *pvtmarker , Clrmpl, 0, RefLe, -12) ;
    }
    
    if (showminortrend)
    	Plot(barht, "", RefClrtfe, styleArea|styleOwnScale, 0, 100, 0, ribLayer ) ;
    
    if (showtrendclronbar)
    {
    
    	// minor trend
    	hbreak = H > Ref(mphtfe, -1) ;
    	lbreak = L < Ref(mpltfe, -1) ; 
    	mdt = Flip(lbreak , hbreak ) ;
    	mut = Flip(hbreak , lbreak) ;
    	//mutst = ExRem(mut, mdt) ;
    	//mdtst = ExRem(mdt, mut) ;
    	
    	Clr = IIf(mut, colorBlue, colorRed) ;
    //	PlotOHLC(rO,rH,rL,rC, "", Clr, styleCandle|styleNoLabel);
    
    	SetBarFillColor(Clr) ;
    	Plot(C, "", Clr, styleCandle|styleNoLabel, 0,0,0,1) ;
    }
    
    	ismph = Refismphtfe AND (RefHe == H) ;
    	ismpl = Refismpltfe AND (RefLe == L) ;
    
    if (showtext)
    {
    	bi = BarIndex() ;
    
    	st = LowestVisibleValue(bi) ;
    	ed = HighestVisibleValue(bi) ;
    
    	for (i = st ; i <=ed ; i++)
    	{
    		if (ismph[i])
    			PlotText(NumToStr(Refhe[i], 8.1), i-2, Refhe[i] +txtoff-2, colorBlack) ;
    		if (ismpl[i])
    			PlotText(NumToStr(Refle[i], 8.1), i-2, Refle[i] -txtoff, colorBlack) ;
    	}
    }
    
    showerls = Param("Show ERLs", 0, 0, 10, 1) ;
    showderls = Param("Show DERLs", 0, 0, 10, 1) ;
    
    	showmoves = ParamToggle("Show Moves", "No|Yes", 0) ;
    	Connectlast = ParamToggle("Connect Last", "No|Yes", 0) ;
    	Clrmoveup = ParamColor("Color Move Up", colorBlue) ;
    	Clrmovedn = ParamColor("Color Move Down", colorRed) ;
    
    
    if (showerls > 0)
    {
    	Clrerlres = Clrmovedn ;
    	Clrerlsupp = Clrmoveup ;
    
    mphb = (NOT mphbreake) AND Ref(mphbreake, 1) ;
    mplb = (NOT mplbreake) AND Ref(mplbreake, 1) ;
    mph = ValueWhen(ismphtfe, H, 1) ;
    mpl = ValueWhen(ismpltfe, L, 1) ;
    	for (i = 1 ; i <= showerls ; i++)
    	{
    		res = ValueWhen(mphb, mph, i) ;
    		supp = ValueWhen(mplb, mpl, i) ;
    		
    		Plot(res, "", Clrerlres, styleNoLine|styleDots|styleNoTitle|styleNoRescale) ;		
    		Plot(supp, "", Clrerlsupp, styleNoLine|styleDots|styleNoTitle|styleNoRescale) ;
    	}
    }
    
    if (showderls > 0)
    {
    	Clrderlres = Clrmovedn ;
    	Clrderlsupp = Clrmoveup ;
    
    	bi = BarIndex() ;
    
    	for (i = 1 ; i <= showderls ; i++)
    	{
    		res1 = ValueWhen(ismph, H, i) ;
    		res1bi = ValueWhen(ismph, bi, i) ;
    
    		res2 = ValueWhen(ismph, H, i+1) ;
    		res2bi = ValueWhen(ismph, bi, i+1) ;
    
    		supp1 = ValueWhen(ismpl, L, i) ;
    		supp1bi = ValueWhen(ismpl, bi, i) ;
    
    		supp2 = ValueWhen(ismpl, L, i+1) ;
    		supp2bi = ValueWhen(ismpl, bi, i+1) ;
    
    		derlres = LineArray(SelectedValue(res2bi), SelectedValue(res2), SelectedValue(res1bi), SelectedValue(res1), 1) ;
    		derlsupp = LineArray(SelectedValue(supp2bi), SelectedValue(supp2), SelectedValue(supp1bi), SelectedValue(supp1), 1) ;
    		
    		Plot(derlres, "", Clrderlres, styleLine|styleNoTitle|styleNoRescale) ;		
    		Plot(derlsupp, "", Clrderlsupp, styleLine|styleNoTitle|styleNoRescale) ;
    	}
    }
    
    //Plot(2, "", IIf(ismphtfe , colorRed, IIf(ismpltfe , colorBlue, colorGrey40)), styleArea|styleOwnScale, 0, 100) ;
    //Plot(4, "", IIf(ismph, colorRed, IIf(ismpl , colorBlue, colorGrey40)), styleArea|styleOwnScale, 0, 100) ;
    
    if(showmoves)
    {
    	bi = BarIndex();
    	edbi = HighestVisibleValue(bi) ;
    	stbi = LowestVisibleValue(bi) ;
    
    	stph = Null ;
    	stx = 0 ;
    	edx = 0 ;
    	edph = Null ;
    	for (i = stbi; i <= edbi ; i++)
    	{
    		if (ismph) // (Refismphtfe[i] AND RefHe[i] == H[i])
    		{
    			stph = edph ;
    			edph = H[i] ;
    			stx = edx ;
    			edx = i ;
    		}
    
    		if (ismpl) // (Refismpltfe[i] AND RefLe[i] == L[i])
    		{
    			stph = edph ;
    			edph = L[i] ;
    			stx = edx ;
    			edx = i ;
    		}
    
    		if (stx!= 0 AND edx !=0)
    		{		
    		pline = LineArray(stx, stph, edx, edph); 
    
    		Plot(pline, "", IIf(stph < edph, Clrmoveup, Clrmovedn), styleThick|styleNoLabel) ;
    		}
    	
    	}
    
    	if (Connectlast)
    	{
    			stx = edx ;
    			edx = BarCount-1 ;
    			stph = edph ;
    			edph = C[edx] ;
    		if (stx!= 0 AND edx !=0)
    		{		
    		pline = LineArray(stx, stph, edx, edph); 
    
    		Plot(pline, "", IIf(stph < edph, Clrmoveup, Clrmovedn), styleThick|styleNoLabel) ;
    		}
    	
    	}
    }
    
    mut = Refclrtfe == colorBlue ;
    mdt = NOT mut ;
    showzone = ParamToggle("Show Zone", "No|Yes", 0) ;
    showasdefarea = ParamToggle("Show as Def Area", "No|Yes", 1) ;
    zoneonbodies = ParamToggle("Zone on bodies", "No|Yes", 1) ;
    Layerzone = Param("Layer zone", -4, -5, 5, 1) ;
    Clrzone = IIf(mut, ParamColor("Zone UT", colorSkyblue), ParamColor("Zone DT", colorRose)) ;
    if (showzone)
    {
    
    	mph = ValueWhen(ismph, H) ;
    	mpl = ValueWhen(ismpl, L) ;
    	mbph = ValueWhen(ismph, Max(C, O));
    	mbpl = ValueWhen(ismpl, Min(C, O)) ;
    
    	hbreak = IIf(ismph, H > Ref(mph, -1), H > mph) ;
    	lbreak = IIf(ismpl, L < Ref(mpl, -1), L < mpl) ;
    	Hbreak = ExRem(Hbreak, ismph) ;
    	Lbreak = ExRem(Lbreak, ismpl) ;
    
    	up = Flip(Hbreak, Lbreak) ;
    
    	mphbreak = Refclrtfe != Ref(Refclrtfe, -1) AND Refclrtfe == colorBlue;
    	mplbreak = Refclrtfe != Ref(Refclrtfe, -1) AND Refclrtfe == colorRed;
    
    	zmph = IIf(zoneonbodies, mbph, mph) ;
    	zmpl = IIf(zoneonbodies, mbpl, mpl) ;
    	if (showasdefarea)
    	{
    		zoneh = IIf(up, ValueWhen(hbreak, zmph), ValueWhen(lbreak, zmph)) ;
    		zonel = IIf(up, ValueWhen(hbreak, zmpl), ValueWhen(lbreak, zmpl)) ;
    
    	}
    	else
    	{
    		zoneh = ValueWhen(mphbreake OR mplbreake, zmph) ;
    		zonel = ValueWhen(mphbreake OR mplbreake, zmpl) ;
    	}
    
    	PlotOHLC(zoneh, zoneh, zonel, zonel, "", Clrzone, styleCloud|styleNoLabel|styleNoRescale,0,0,0,Layerzone) ;
    }
    
    showtflvls = ParamToggle("Show Lvls", "No|Yes", 1) ;
    Clrtflvl = colorPaleGreen ;
    
    if (showtflvls )
    {
    	Hd = ValueWhen(ismphtfe , He, 1) ;
    	Ld = ValueWhen(ismpltfe , Le, 1) ;
    	x = LineArray(0, SelectedValue(Hd), (BarCount-1), SelectedValue(Hd));
    
    	Plot(x, NumToStr(tfs/in1Minute, 1.0)+"min mph", Clrtflvl , styleDashed|styleNoRescale);
    
    	x = LineArray(0, SelectedValue(Ld), (BarCount-1), SelectedValue(Ld));
    
    	Plot(x, NumToStr(tfs/in1Minute, 1.0)+"min mpl", Clrtflvl , styleDashed|styleNoRescale);
    }
    
    
     
  10. pratapvb

    pratapvb Well-Known Member

    Joined:
    Sep 1, 2013
    Messages:
    2,219
    Likes Received:
    8,755
    Trophy Points:
    113
    Location:
    mumbai
    for trading purposes I sometimes use 3min and even 2min pvt for entries
     
    monkeybusiness, vijkris and eku like this.
Loading...

Share This Page