// Downloaded From https://www.WiseStockTrader.com
TimeFrameSet( in5Minute);

dec = (Param("Decimals",2,0,7,1)/10)+1;
EMA110=EMA(C,110);
pt=CCI()>100;nt=CCI()<-100;

Buy2show = 0;
Short2show = 0;
Sell2show = 0;
Cover2show = 0;
Today = LastValue(Day());

// Check if it is time to close the postions.
EOD = IIf(TimeNum()>152900, 1, 0);
noEOD = IIf(TimeNum() < 152900,1, 0);

// Logic for uptrend or downtrend
uptrend = C>EMA110 AND pt;
downtrend=C<EMA110 AND nt;

// Ignore the previous day bar
Datefine = IIf(Ref(DateNum(),1) == Ref(DateNum(),-1),1,0);


// The current bar should be more than previous bar value + 0.1% for buy in uptrend
BuyV = uptrend AND Ref(uptrend, -1) AND (H > ( Ref(H, -1)+ H*.001 )) AND Datefine ;
// the current bar should be less than previous bar value - 0.1% for sell in downtrend
SellV = downtrend AND Ref(downtrend,-1) AND (L < ( Ref(L, -1)-L*.001 )) AND Datefine ;

BuyPrice = IIf(BuyV==1,Max(O,Ref(H,-1)+H*.001 ),0);
ShortPrice = IIf(SellV==1,Min(O,Ref(L,-1)-L*.001 ),0);

Bp = ValueWhen(BuyPrice !=0,BuyPrice);
Sp = ValueWhen(ShortPrice !=0,ShortPrice);

mktclose=Param("Market Close Time",152500,000000,235959,1 );

Buy = BuyV AND Today ;
Short= SellV AND Today ;
Cover = TimeNum() > mktclose ;
Sell = TimeNum() > mktclose ;

Buy=ExRem(Buy,Sell);
Short=ExRem(Short,Cover);

CP = 0;
Trend = 1;
//************************************************** *************************************//
for( i = 0; i < BarCount; i++ )
{
if( Buy[i] )
{
PlotText( "\n"+"\n"+"\n"+"Buy@" +WriteVal( Bp[ i],1.2), i-5, L[ i ]-Trend[i], colorWhite, colorBlue);
Buy2show=Bp;
}

if( Short[i] )
{
PlotText( "\n"+"\n"+"\n"+"Short@" +WriteVal (Sp[ i ],1.2), i-5, H[ i ]+Trend[i], colorWhite, colorRed );
Short2show=Sp;
}
}


SetChartOptions(0, chartShowDates);
//Plot(C,"\nC",colorWhite,64);
PlotShapes(IIf(Buy,shapeUpArrow,shapeNone),colorGreen,0,L,-15);
PlotShapes(IIf(Buy,shapeHollowUpArrow,shapeNone),colorWhite,0,L,-15);
PlotShapes(IIf(Buy,shapeHollowSmallCircle,shapeNone),colorWhite,0,BuyPrice,0);

PlotShapes(IIf(Short,shapeDownArrow,shapeNone),colorRed,0,H,-15);
PlotShapes(IIf(Short,shapeHollowDownArrow,shapeNone),colorWhite,0,H,-15);
PlotShapes(IIf(Short,shapeHollowSmallCircle,shapeNone),colorWhite,0,ShortPrice,0);

PlotShapes(IIf(Sell,shapeDownArrow,shapeNone),colorYellow,0,H,-15);
PlotShapes(IIf(Cover,shapeUpArrow,shapeNone),colorYellow,0,L,-15);


_SECTION_BEGIN("Price");
Graph0 = Close;
Graph0Style = 128;
barcolor = IIf( downtrend, colorRed, IIf( uptrend, colorGreen ,colorWhite ) );
Graph0BarColor = ValueWhen( barcolor != 0, barcolor );
SetBarFillColor( IIf( downtrend,colorRed, colorGreen) );
SetChartBkGradientFill( ParamColor("BgTop", colorBlack),ParamColor("BgBottom", colorBlack),ParamColor("Titleblock",colorWhite));
SetChartOptions(0,chartShowArrows|chartShowDates);
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Uptrend %g,Open %g, Hi %g, Lo %g,Close %g (%.1f%%) {{VALUES}}", uptrend,O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
ToolTip=StrFormat("Open: %g\nHigh: %g\nLow: %g\nClose: %g (%.1f%%)\nVolume: "+NumToStr( V, 1 ), O, H, L, C) + "\n" + "\n" ;
Plot( C, "Close", ParamColor("Color", colorWhite ), styleNoTitle |
ParamStyle("Style") | GetPriceStyle() );
Plot( 2, /* defines the height of the ribbon in percent of pane width*/ "ribbon",
IIf( uptrend, colorGreen, IIf( downtrend, colorRed, colorTan )), /* choose color */
styleOwnScale|styleArea|styleNoLabel, -0.5, 100 );

//filters
Filter=Buy|Short;
SetOption("NoDefaultColumns", True);
AddTextColumn(Name(), "SYMBOL");
AddColumn(DateTime(), "DATE", formatDateTime);
AddColumn(TimeNum() ,"Time",1, 75);
AddColumn(IIf(Buy, 66, 83), "TRIGGER", formatChar, colorWhite, IIf(Buy, colorGreen, colorRed));
AddColumn(IIf(Buy, BuyPrice,ShortPrice), "TRIG PRICE", 1.2);
AddColumn(IIf(Buy, (BuyPrice)+10, (ShortPrice)-10), "Target", 1.2);
AddColumn(IIf(Buy, (BuyPrice)-10, (ShortPrice)+10), "Stop Loss", 1.2);
AddColumn(C, "Last Close", 1.2);
SetSortColumns( -3 );Title = EncodeColor(29)+ Title = Name() + " " + EncodeColor(32)
+ Date() + " " + EncodeColor(29) + "{{INTERVAL}} " +
EncodeColor(29)+ " Open = "+ EncodeColor(17)+ NumToStr
(O,dec) +
EncodeColor(29)+ " High = "+ EncodeColor(17) + NumToStr
(H,dec) +
EncodeColor(29)+ " Low = "+ EncodeColor(17)+ NumToStr
(L,dec) +
EncodeColor(29)+ " Close = "+ EncodeColor(17)+ NumToStr
(C,dec) +
EncodeColor(29)+ " Volume = "+ EncodeColor(17)+ NumToStr
(V,1.0) +"\n"+"\n"+
EncodeColor(colorRed)+
WriteIf (Buy , " GO LONG / Reverse Signal at "+BuyPrice+" ","")+
WriteIf (Short , " EXIT LONG / Reverse Signal at "+ShortPrice+" ","")+"\n"+EncodeColor(colorBlue)+
WriteIf(Short , "Total Profit/Loss for the Last Trade Rs."+(ShortPrice-Bp)+"","")+
WriteIf(Buy , "Total Profit/Loss for the Last trade Rs."+(Sp-BuyPrice)+"","");
GraphXSpace=12;
_SECTION_BEGIN("EMA2");
P = ParamField("Price field",-1);
Periods = Param("Periods", 110, 2, 300, 1, 10 );
Plot( EMA( P, Periods ), _DEFAULT_NAME(), ParamColor( "Color", colorBlue ), ParamStyle("Style",styleThick) );
_SECTION_END();