// Downloaded From https://www.WiseStockTrader.com
_SECTION_BEGIN

( "SingleMA" );

SetChartOptions

( 0, chartShowArrows | chartShowDates | chartWrapTitle );

SetChartBkColor

( ParamColor( "Outer Panel", colorBlack ) );

SetChartBkGradientFill

( ParamColor( "Upper Chart", colorBrown ), ParamColor( "Lower Chart", colorDarkGrey ) );





Type =

    ParamList( "Average Type", "Wilders,SMA,EMA" );

P =

    Param( "Averaging Period", 20, 3, 100, 1 );

Q =

    Param( "%Change", 1, 0.1, 10, 0.1 );

BP =

    Param( "BB Period", 20, 3, 100 );

BW =

    Param( "BB Width", 2, 0.5, 10, 0.5 );

BBOption =

    ParamToggle( "Plot BB", "No I Yes" );

Report =

    ParamList( "Trigs or Update or Tgt-SL?", "Triggers|Update|Tgt-SL" );

if





( Type == "Wilders" )
    A = Wilders( C, P );

if





( Type == "SMA" )
    A = MA( C, P );

if





( Type == "EMA" )
    A = EMA( C, P );

SL =

    Max( LLV( L, 5 ), Trough( L, Q, 1 ) );

Tgt =

    2 * H - SL;

MeanPrice =

    Prec( ( O + C ) / 2, 2 );

Part =

    100 * ( H - A ) / ( H - L );

BBTop =

    BBandTop( C, BP, BW );

BBBot =

    BBandBot( C, BP, BW );

Buy

= (

      Prec( C, 2 ) > Prec( A, 2 ) ) AND Part > 70;

Sell



= H < A;

Buy

=

    ExRem( Buy, Sell );

Sell



=

    ExRem( Sell, Buy );

Bought =

    Flip( Buy, Sell );

Sold =

    Flip( Sell, Buy );

NextTgt =

    ValueWhen( Buy, Tgt, 1 );

for





( i = 1; i < BarCount; i++ )

{

    if ( Bought[i] AND NOT Buy[i] )

    {

        SL[i] =

            Max( SL[i], SL[i - 1] );

        if ( C[i - 1] >= 0.9999 * NextTgt[i - 1] )
            NextTgt[i] = Tgt[i - 1];

        NextTgt[i] =

            Max( NextTgt[i], NextTgt[i - 1] );

    }

}

BuyDate =

    ValueWhen( Buy, Ref( DateTime(), 1 ), 1 );

BuyPrice

=

    ValueWhen( Buy, Ref( MeanPrice, 1 ), 1 );

SellPrice



=

    ValueWhen( Sell, Ref( MeanPrice, 1 ), 1 );

TgtReached =

    IIf( Bought AND NOT Buy AND C >= 0.9999 * NextTgt, True, False );

SLHit =

    IIf( Bought AND NOT Buy AND C < SL, True, False );

SLHit =

    ExRem( SLHit, Buy );

//



if





( TgtReached[BarCount - 1] )
    NextTgt[BarCount - 1] = 2 * H[BarCount -1] - SL[BarCount - 1];

//



if





( Status( "action" ) == actionIndicator )

{

    Ttl =

        EncodeColor( colorTurquoise ) + "Single MA system, INDICATOR FROM SRI VAARI STOCKS" + "\n"

        +

        WriteIf( Buy, EncodeColor( colorGreen ) + "Buy Triggered Today, Buy this stock Tomorrow.", "" )

        +

        WriteIf( Sell, EncodeColor( colorRed ) + "Sell Triggered Today, Sell This stock Tomorrow.", "" )

        +

        EncodeColor( colorTan ) + WriteIf( Bought AND NOT Buy, "Bought @ " + BuyPrice + ". "

                                           +

                                           "Target Price = " + NextTgt + ", Stop Loss = " + SL + ".\n"

                                           +

                                           WriteIf( TgtReached, "Target Reached. Next Target = " + Ref( NextTgt, 1 ) + ".\n", "" )

                                           +

                                           EncodeColor( colorGold ) + "Profit / Loss so far = " + Prec( 100 * ( C - BuyPrice ) / BuyPrice, 2 ) + "%", "" )

        +

        WriteIf( Sold AND NOT Sell, "Sold @ " + SellPrice + "\nProfit / Loss in Previous Trade = " + Prec( 100 * ( SellPrice - BuyPrice ) / BuyPrice, 2 ) + "%", "" );
    _N( Title = StrFormat( "{{NAME}} ({{INTERVAL}}), {{DATE}} ; {{OHLCX}}, V=%1.0f\n {{VALUES}}\n\n", V ) + Ttl );

    ChartStyle =

        ParamStyle( "Chart Type", styleBar, maskAll );
    PlotOHLC( O, H, L, C, "", colorWhite, ChartStyle );
    Plot( A, Type + "(" + P + ")", colorYellow, styleLine | styleThick );
    Plot( IIf( Bought, NextTgt, Null ), "Target", colorDarkTeal, styleLine | styleThick );
    Plot( SL, "Trail SL", colorWhite, styleLine );
    PlotShapes( IIf( Buy, shapeSquare, shapeNone ), colorGreen, 0, L, Offset = -20 );
    PlotShapes( IIf( Buy, shapeSquare, shapeNone ), colorLime, 0, L, Offset = -30 );
    PlotShapes( IIf( Buy, shapeUpArrow, shapeNone ), colorWhite, 0, L, Offset = -25 );
    PlotShapes( IIf( Sell, shapeSquare, shapeNone ), colorRed, 0, H, Offset = 20 );
    PlotShapes( IIf( Sell, shapeSquare, shapeNone ), colorOrange, 0, H, Offset = 30 );
    PlotShapes( IIf( Sell, shapeDownArrow, shapeNone ), colorWhite, 0, H, Offset = -25 );

    if ( BBOption )
        Plot( BBtop, "BB-Top", colorPink, styleLine );

    if ( BBOption )
        Plot( BBBot, "BB-Bot", colorPink, styleLine );

    {

        AlertIf( Buy , "SOUND C:\\Windows\\Media\\Raga\\Windows Notify.wav", "Audio alert", 2 );
        AlertIf( Sell , "SOUND C:\\Windows\\Media\\Raga\\Windows Notify.wav", "Audio alert", 2 );

    }

}



if





( ( Status( "action" ) == actionExplore ) AND Report == "Triggers" )

{

    Filter = Buy OR Sell;

    SetOption( "NoDefaultColumns", True );
    AddTextColumn( Name(), "Symbol", 77, colorDefault, colorDefault, 120 );
    AddColumn( DateTime(), "Trigger Date", formatDateTime );
    AddColumn( IIf( Buy, 66, 83 ), "Signal", formatChar, colorYellow, IIf( Buy, colorGreen, colorRed ) );
    AddColumn( C, "C. M. P.", 6.2 );
    AddColumn( IIf( Buy OR Bought, NextTgt, Null ), "Target", 6.2 );
    AddColumn( IIf( Buy OR Bought, SL, Null ), "StopLoss", 6.2 );

}



if( ( Status( "action" ) == actionExplore ) AND Report == "Update" )

{

    Filter = True;



    SetOption( "NoDefaultColumns", True );
    AddColumn( DateTime(), "Updated On", formatDateTime, colorDefault, colorDefault, 96 );
    AddTextColumn( Name(), "Symbol", 77, colorDefault, colorDefault, 120 );
    AddColumn( BuyDate, "Buy Date", formatDateTime, colorDefault, colorDefault, 96 );
    AddColumn( BuyPrice, "Buy Price", 6.2 );
    AddColumn( NextTgt, "Target", 6.2 );
    AddColumn( SL, "StopLoss", 6.2 );
    AddColumn( C, "CMP", 6.2, colorDefault, colorDefault, 96 );

}



if( ( Status( "action" ) == actionExplore ) AND Report == "Tgt-SL" )
{
    Filter = TgtReached OR SLHit;

    SetOption( "NoDefaultColumns", True );
    AddColumn( DateTime(), "Updated On", formatDateTime, colorDefault, colorDefault, 96 );
    AddTextColumn( Name(), "Symbol", 77, colorDefault, colorDefault, 120 );
    AddColumn( BuyDate, "Buy Date", formatDateTime, colorDefault, colorDefault, 96 );
    AddColumn( BuyPrice, "Buy Price", 6.2 );
    AddColumn( NextTgt, "Target", 6.2 );
    AddColumn( SL, "StopLoss", 6.2 );
    AddColumn( C, "CMP", 6.2, colorDefault, colorDefault, 96 );
    AddColumn( IIf( TgtReached, 89, 32 ), "Tgt Hit?", formatChar, colorYellow, IIf( TgtReached, colorGreen, colorDefault ) );
    AddColumn( IIf( TgtReached, 2 * H - SL, Null ), "Next Tgt", 1.2 );
    AddColumn( IIf( SLHit, 89, 32 ), "SL-Hit", formatChar, colorYellow, IIf( SLHit, colorRed, colorDefault ) );

}

_SECTION_END();