// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN("Price");
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", ParamColor("Color", colorBlack ), styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); 
_SECTION_END();

_SECTION_BEGIN("Graphics");
GrpPrm=Param("Graphic Space",4,-50,50);
GraphXSpace=GrpPrm;
_SECTION_END();
//======================================================================================







_SECTION_END();

Buy=Scolor=ParamColor( "Sup Color", colorBrown );





///////////////////////////////////////////////////////////////////////////////
//	Gap Finder
//	AFL that plots that unfilled Gaps encountered within the last N bars.
// Author : Adheer Pai (adheer@gmail.com)
///////////////////////////////////////////////////////////////////////////////

// Input : The number of bars ago from where to start looking for gaps.
// Default is 250 : So, by default we search for Gaps found in last 250 trading days ( 1 year )
period = Param("Lookback Period", 250, 15, 500);
// If we do not have enough bars, adjust the period accordingly.
if( BarCount - period - 1 < 0 ) period = BarCount - 2;

bIsGapUp = ( L > Ref(H, -1) );		// Identify GapUp bars
bIsGapDn = ( H < Ref(L, -1) );		// Identify GapDown bars

// We are not interested in Gap Ups and Gap Downs before the Period e.g. before the last 250 bars.
// So we clear the values for bars before the ones we are interested in.
for( i = 0 ; i < (BarCount - 1 - period) ; i++ )
{
	bIsGapUp[i] = False;
	bIsGapDn[i] = False;
}

// Now plot GapUp bars with a Up-Triangle below its low.
PlotShapes(IIf(bIsGapUp, shapeSmallUpTriangle, shapeNone), colorBlue, 0, L, -12 );
// Now plot GapDown bars with a Down-Triangle below its high.
PlotShapes(IIf(bIsGapDn, shapeSmallDownTriangle, shapeNone), colorRed, 0, H );

// Now walk from the first bar (e.g 250 bars ago, to the current bar)
for( i = (BarCount - period - 1) ; i <= (BarCount - 1) ; i++ )
{
	dUpper = 0.0; dLower = 0.0; bFilled = True;
	// Is the current bar a Gap-Up bar ?
	if( bIsGapUp[i] == True )
	{
		// If yes, the store the Gap (Upper value) and Lower values.
		dUpper = L[i]; dLower = H[i-1]; bFilled = False;
		// Now walk till the current bar and see if the Gap values have been filled from Above.
		// I.e prices are falling and the gap is being falled.
		for( j = i+1; j <= (BarCount - 1) ; j++ )
		{
			// Check whether the current low is lesser than the Gap high. If yes, the Gap
			// has been penetrated.
			if( L[j] < dUpper )
			{
				dUpper = L[j];			
				// Determine whether the Gap has been fully penetrated - if yes, then the
				// Gap has been filled.
				if( dUpper <= dLower ) bFilled = True;
			}
			if( bFilled == True ) break;
		}
	}
	else if( bIsGapDn[i] == True )
	{
		// Same logic as GapUp - except we check whether the Gap has been pierced from Below.
		// i.e Prices are rising and the Gap has been filled.
		dUpper = L[i-1]; dLower = H[i]; bFilled = False;
		for( j = i+1; j <= (BarCount - 1) ; j++ )
		{
			if( H[j] > dLower )
			{
				dLower = H[j];
				if( dLower >= dUpper ) bFilled = True;
			}
			if( bFilled == True ) break;		// Gap was filled, so move on to find the next gap.
		}
	}
	if( bFilled == False )			// Gap Not filled - so plot horizontal line at the Gap Level.
	{
		pLine = LineArray(i-1, dLower, BarCount-1,dLower, 1);
		Plot(pLine, "", colorRed, styleDashed);
		pLine = LineArray(i-1, dUpper, BarCount-1, dUpper, 1);
		Plot(pLine, "", colorBlue, styleDashed);
	}
}


/*Gann HiLo*/

Hld = IIf(C > Ref(MA(H, 3), -1), 1, IIf(C < Ref(MA(L, 3), -1), -1, 0));
Hlv = ValueWhen(Hld != 0, Hld, 1);
Hilo = IIf(Hlv == -1, MA(H, 3), MA(L, 3));
Trigger = IIf(C>Hilo, colorGreen, colorRed);
Plot(Hilo,"HiLo",Trigger,styleStaircase);


tf = Param( "TF", 0, 0, 0, 0 ) ;
tfs = tf * in1Minute ;
TimeFrameSet( tfs ) ;

GraphXSpace=5;
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) Vol " +WriteVal( V, 1.0 ) +" {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 )) ));
Plot( C, "Close",  colorBlack , styleNoTitle | ParamStyle("Style") | GetPriceStyle() ); 



O1=Ref(O,-1);H1=Ref(H,-1);L1=Ref(L,-1);C1=Ref(C,-1);
O2=Ref(O,-2);H2=Ref(H,-2);L2=Ref(L,-2);C2=Ref(C,-2);
O3=Ref(O,-3);H3=Ref(H,-3);L3=Ref(L,-3);C3=Ref(C,-3);


BT=H2<H3 AND L2<L3 AND H1<H2 AND L1<L2;
ST=H2>H3 AND L2>L3 AND H1>H2 AND L1>L2;


LDB=C1>O1;
LDS=C1<O1;
BULLHarami= O>C1 AND O<O1 AND C<O1 AND C>C1; //AND BT AND LDS;
BEARHarami= O<C1 AND O>O1 AND C>O1 AND C<C1; //AND ST AND LDB ;
Buy=BULLHARAMI;
Sell=BEARHARAMI;
//Short=Sell=bear;
//Cover=0;
//Buy=ExRem(Buy,Sell);Sell=ExRem(Sell,Buy);
//Short=ExRem(Short,Cover);Cover=ExRem(Cover,Short);
PlotShapes(IIf(Buy,shapeUpArrow,shapeNone),colorGreen,0,L,Offset=-10);
PlotShapes(IIf(Sell,shapeDownArrow,shapeNone),colorRed,0,H,Offset=-10);
//PlotShapes(IIf(Short, shapeHollowDownArrow , shapeNone), colorRed);
//PlotShapes(IIf(Cover, shapeHollowUpArrow , shapeNone), colorGreen);

TimeFrameRestore();



_SECTION_BEGIN("EMA");
P = ParamField("Price field",-1);
Periods = Param("Periods", 15, 2, 300, 1, 10 );
Plot( EMA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") ); 
_SECTION_END();