// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN("NIFTY SuperTrend");
_N(Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ));
SetChartOptions(1,chartShowArrows|chartShowDates|chartWrapTitle);


GraphXSpace = 15;

SetBarFillColor(IIf(C>O,ParamColor("Candle UP Color", colorGreen),IIf(C<=O,ParamColor("Candle Down Color", colorRed),colorLightGrey)));
Plot(C,"",IIf(C>O,ParamColor("Wick UP Color", colorDarkGreen),IIf(C<=O,ParamColor("Wick Down Color", colorDarkRed),colorLightGrey)),64,0,0,0,0);
SetChartBkGradientFill( ParamColor( "TopColor", ColorRGB( 0, 255, 255 ) ), ParamColor( "BottomColor", ColorRGB( 0, 255, 255 ) ) );

//SetTradeDelays(1,1,1,1);
Period   = Param("Period", 800, 1, 2400, 1);
mult   = Param("Multiplier", 8, 1.1, 20.0, 0.01);  //   5 minutes chart.

f=ATR(period);

VS[0] = Close[0]; 
trend[0] = 0;
HighC[0]=0;
Lowc[0]=0;

for( i = period+1; i < BarCount; i++ ) 
{ 

  vs[i]   = vs[i-1];
  trend[i]   = trend[i-1];
  highC[i]   = HighC[i-1];
  lowc[i]   = lowc[i-1];

   if ((trend[i]>=0) && ( C[i] <VS[i] ))
   {
         trend[i] =-1;
         HighC[i] = C[i];
         lowc[i] = C[i];
   }

   if ((trend[i]<=0) && (C[i] >VS[i]))
   {
         trend[i]=1;
         HighC[i] = C[i];
         lowc[i] = C[i];
   }  

   if (trend[i]==-1) 
   {
      if (C[i]<lowc[i]) lowc[i] = C[i];
    VS[i]= lowc[i]+ (mult*f[i]);
   }


   if (trend[i]==1)  
   {
      if (C[i]>HighC[i]) HighC[i] = C[i];
    VS[i]= HighC[i]-(mult*f[i]);
   }

} 

Plot(VS, "Vol Stop",IIf(trend==1,colorRed,colorYellow ),styleThick);

Buy=Cross(Trend,0);
Short=Cross(0, Trend);
Buy = Ref(Buy, -1);
Short = Ref(Short, -1);

Hp = HHV( H, 40 );
Lp = LLV( L, 40 );

BarsSincebuy = BarsSince( Buy );
BarsSinceshort = BarsSince( Short );
LastSignal = IIf( BarsSincebuy < BarsSinceshort, 1, -1 );
Sig = WriteIf( BarsSincebuy < BarsSinceshort, "BUY", "SELL" );

slPrice = IIf( LastSignal == 1, HighestSince( Buy, Lp ), LowestSince( Short, Hp ) );
initialrisk = IIf( LastSignal == 1, BuyPrice - SLPrice, SLPrice - ShortPrice );
CurrentPL = IIf( LastSignal == 1, C - BuyPrice, SellPrice - C );

BuyPrice=ValueWhen(Buy,O);
ShortPrice=ValueWhen(Short,O);

entry = IIf( LastSignal == 1, BuyPrice, ShortPrice );

PlotShapes(Buy * shapeUpArrow,colorDarkGreen, 0,L, Offset=-45); 
PlotShapes(Short * shapeDownArrow,colorDarkRed, 0,H, Offset=-45);


bars = LastValue( IIf(BarsSincebuy < BarsSinceshort, BarsSincebuy, BarsSinceshort));
Offset = 15;
Clr = IIf(LastValue(LastSignal) == 1, colorGreen, colorRed);


if ( ParamToggle( "Message Board ", "Show|Hide", 1 ) )
{
    GfxSelectFont( "Tahoma", 11, 700 );
    GfxSetBkMode( 1 );
    GfxSetTextColor( colorWhite );

    if ( SelectedValue( LastSignal ) == 1 )
    {
        GfxSelectSolidBrush( colorDarkGreen );
        Datetim = "" + ValueWhen( Buy, Day(), 1 ) + "/" + ValueWhen( Buy, Month(), 1 ) + "/" + ValueWhen( Buy, Year(), 1 ) + " " + ValueWhen( Buy, Hour(), 1 ) + ":" + ValueWhen( Buy, Minute(), 1 );
    }
    else
    {
        GfxSelectSolidBrush( colorDarkRed );
        Datetim = "" + ValueWhen( Short, Day(), 1 ) + "/" + ValueWhen( Short, Month(), 1 ) + "/" + ValueWhen( Short, Year(), 1 ) + " " + ValueWhen( Short, Hour(), 1 ) + ":" + ValueWhen( Short, Minute(), 1 );
    }

    pxHeight = Status( "pxchartheight" ) ;

    xx = Status( "pxchartwidth" );
    Left = 1100;
    width = 310;
    x = 1.5;
    x2 = 250;

    y = pxHeight / 1;

    GfxSelectPen( colorLightBlue, 1 );
    GfxRoundRect( x, y - 105, x2, y , 7, 7 ) ;
    GfxTextOut( ( "NIFTY SUPERTREND SYSTEM" ), 25, y - 105 );
    GfxTextOut( ( "Last Signal" ), 10, y - 65 ) ;
    GfxTextOut( ( ": " + Datetim ), 115, y - 65 ) ;
    GfxTextOut( ( "" + sig + " Entry @" ), 10, y - 45 );
    GfxTextOut( ( ": " + entry ), 110, y - 45 );
    GfxTextOut( ( "Current P/L" ), 10, y - 25 );
    GfxTextOut( ( ": " + WriteVal( IIf( sig == "BUY", (  C - entry ), ( entry - C ) ), 2.2 ) ), 110, y - 25);;
    x = 290;
    x2 = 500;

}

_SECTION_END();

_SECTION_BEGIN("L.T.P.");
cx = Param( "cxposn", 1000, 0, 1250, 1 );
cy = Param( "cyposn", 25, 0, 500, 1 );
GfxSelectFont( "Candara", 18, 98, False );
gfxcup	= SelectedValue(C > Ref(C,-1));
gfxpcolor = IIf(gfxcup,colorDarkGreen,colorDarkRed);
GfxSetTextColor(gfxpcolor);
//GfxSetTextColor( colorWhite );
GfxTextOut( "L.T.P.  " + C + " ", cx, cy );
_SECTION_END();

_SECTION_BEGIN("trend");
uptrend= Signal(29)<MACD(13);
downtrend= Signal(29)>MACD(13);
Plot( 2, /* defines the height of the ribbon in percent of pane width */"ribbon",
IIf( uptrend, colorGreen, IIf( downtrend, colorRed, 0 )), /* choose color */
styleOwnScale|styleArea|styleNoLabel, -0.5, 100 );
_SECTION_END();