.

80 Percent Accurate Kbrain Trading System - Amibroker AFL Code

Click Image To Enlarge. Please Rate And Comment.

80 Percent Accurate Kbrain Trading System

_SECTION_BEGIN( "Heikin" );
HaC = EMA( ( O + C + H + L ) / 4, 3 );
HaO = AMA( Ref( HaC, -1 ), 0.8 );
HaH = Max( H, Max( HaC, HaO ) );
HaL = Min( L, Min( HaC, HaO ) );

e1 = EMA( C, 21 );
e2 = MA( C, 26 );
ehh = e1 > e2 ;
ell = e1 < e2 ;
ri = ( e1 + e2 ) / 2;
Colri = IIf( ehh, colorBlue, colorRed );

SetBarFillColor( IIf( Hac > Hao, colorBlue, colorRed ) );
Colcan = IIf( Hac > ri, colorBlue, colorRed );
PlotOHLC( HaO, HaH, HaL, HaC, "" + Name(), colcan, styleCandle | styleNoLabel );
_SECTION_END();

_SECTION_BEGIN( "KBrain" );
//========================Initiation================ ========
bts = ParamToggle( "BrainTrend1 signal", "No|Yes" , 1 );
btst = ParamToggle( "BrainTrend1 stop", "No|Yes" , 1 );
btsl = ParamToggle( "BrainTrend1 stop line", "No|Yes" , 1 );
period = Param( "Period", 14, 6, 20, 1 );
x1 = 53;
x2 = 47;
d = 2.3;
f = 7;
s = 1.5;
range = ATR( f );
Range1 = ATR( f ) / d;
Range2 = ( ATR( f ) * s ) / 4;
range3 = ATR( 10 );
R = ( ( HHV( H, period ) - C ) / ( HHV ( H, period ) - LLV ( L, period ) ) ) * -100;
EMA1 = EMA( R, Period );
EMA2 = EMA( EMA1, 5 );
Difference = EMA1 - EMA2;
ZeroLagEMA = EMA1 + Difference;
value2 = abs( ZeroLagEMA );


function PercentR( periods )
{
    return -100 * ( HHV( H, periods ) - C ) / ( HHV( H, periods ) - LLV( L, periods ) );
}


for ( i = 1; i < Period - 1; i++ )
{


    tm = 1;
    bstop = 1;
    sstop = 1;
    p = 1;
}

for ( i = period + 10; i < BarCount; i++ )
{
    C[0] = 0;
    Value2[0] = 0;
    p[0] = 0;
    Plot1[0] = 0;
    Plot2[0] = 0;
    Val1 = 0;
    Val2 = 0;
    temp[0] = 0;
    Value3[0] = 0;
    tm[0] = 0;
    p1[i] = 0;
    bt1[0] = 0;
    bt2[0] = 0;
    r[0] = 0;
    bt1a[0] = 0;
    bt2a[0] = 0;
    istop[0] = Val1[0];
    stop[i] = Val1[0];
    bstop[0] = 0;
    sstop[i] = 0;
//==================================Indicators====== ======================
    {
        if ( value2[i] < x2 AND abs( Close[i] - Close[i-2] ) > range1[i] )
            p[i] = 1 ;
        else
        {
            if ( value2[i] > x1 AND abs( Close[i] - Close[i-2] ) > Range1[i] )
                p[i] = 2 ;

            else

                p[i] = 0;
        }
    }

    if ( ( value2[i] < x2 AND p[i] == 1 ) OR ( value2[i] < x2 AND p[i] == 0 ) )

    {
        if ( abs( Close[i] - Close[i-2] ) > Range1[i] )
        {
            Plot1[i] = H[i];
            Plot2[i] = L[i];
        }
        else
        {
            Plot1[i] = Plot1[i-1];
            Plot2[i] = Plot2[i-1];
        }
    }
    else
    {
        if ( ( value2[i] > x1 AND p[i] == 2 ) OR ( value2[i] > x1 AND p[i] == 0 ) )

        {
            Plot1[i] = L[i];
            Plot2[i] = H[i];
        }
        else
        {
            Plot1[i] = Plot1[i-1];
            Plot2[i] = Plot2[i-1];
        }
    }

//==================KBrain Signal ====================================
    {
        if ( value2[i] < x2 AND ( abs( Close[i] - Close[i-2] ) > Range1[i] ) )
        {
            if ( p[i] == 1 OR p[i] == 0 )
                Value3[i] = L[i] - range3[i];

            val1[i] = Value3[i];

            p[i] = 1;

            temp[i] = 1;
        }
        else
        {
            temp[i] = temp[i-1];
        }

        {
            if ( value2[i] > x1 AND ( abs( Close[i] - Close[i-2] ) > Range1[i] ) )
            {
                if ( p[i] == 2 OR p[i] == 0 )
                    Value3[i] = H[i] + range3[i];

                val2[i] = Value3[i];

                p[i] = 2;

                temp[i] = 2;;
            }

        }
    }

    {

        if ( temp[i] == 1 AND Plot1[i] > 0 AND tm[i] != 1 )
            tm[i] = 1;

        if ( temp[i] == 2 AND Plot2[i] > 0 AND tm[i] != 2 )
            tm[i] = 2;

    }

//===============================stop=============== =========================
    {
        if ( value2[i] < x2 AND ( abs( Close[i] - Close[i-2] ) > Range1[i] )AND p[i] != 2 )

        {
            value3[i] = L[i] - range3[i];
            va1[i] = Value3[i];
            p1[i] = 2;
            r[i] = Va1[i];
            bstop[i] = Va1[i];
            bt2[i] = bt2[i-1];
        }

        if ( value2[i] > x1 AND ( abs( Close[i] - Close[i-2] ) > Range1[i] )AND p[i] != 1 )

        {
            Value3[i] = H[i] + range3[i];
            va2[i] = Value3[i];
            p1[i] = 1;

            r[i] = Va2[i];
            sstop[i] = Value3[i];
            bt1[i] = bt1[i-1];
        }

    }



    if ( val1[i] == 0 AND val2[i] == 0 AND p[i] == 0 )
    {
        bstop[i] = bstop[i-1];
        sstop[i] = sstop[i-1];
    }


    if ( bstop[i] < bstop[i-1] AND tm[i] == 1 AND tm[i-1] == 1 )
        bstop[i] = bstop[i-1];

    if ( sstop[i] > sstop[i-1] AND tm[i] == 2 AND tm[i-1] == 2 )
        sstop[i] = sstop[i-1];

}

//=============================SYSTEM=============== =======================
Mycolor = IIf( p == 1, colorLime, IIf( p == 2, colorRed, colorBlue ) );

PlotShapes( shapeCircle* ( bts AND tm == 1 AND Ref( tm, -1 ) == 2 ), colorTurquoise, 0, bstop, 0 );

PlotShapes( shapeCircle* ( bts AND tm == 2 AND Ref( tm, -1 ) == 1 ), colorCustom12, 0, sstop, 0 );

PlotShapes( IIf( btst AND p == 1, shapeSmallCircle, Null ), colorTurquoise, 0, bstop, 0 );

Plot( IIf( btsl AND tm == 1, bstop, Null ), "", colorPaleBlue, 1 );

PlotShapes( IIf( btst AND p == 2, shapeSmallCircle, Null ), colorCustom12, 0, sstop, 0 );

Plot( IIf( btsl AND tm == 2, sstop, Null ), "", colorLightYellow, 1 );

Buy = Cover = ( bts AND tm == 1 AND Ref( tm, -1 ) == 2 );

Sell = Short = ( bts AND tm == 2 AND Ref( tm, -1 ) == 1 );

SellPrice = ValueWhen( Sell, C, 1 );

BuyPrice = ValueWhen( Buy, C, 1 );

Long = Flip( Buy, Sell );

Shrt = Flip( Sell, Buy );

_SECTION_END();

//=================TITLE============================ ================================================== ==================
_SECTION_BEGIN( "Title" );

if ( Status( "action" ) == actionIndicator )
    (
        Title = EncodeColor( colorWhite ) + "KBrain V 1.1. " + " - " + Name() + " - " + EncodeColor( colorRed ) + Interval( 2 ) + EncodeColor( colorWhite ) +
                " - " + Date() + " - " + "\n" + EncodeColor( colorYellow ) + "Op-" + O + " " + "Hi-" + H + " " + "Lo-" + L + " " +
                "Cl-" + C + " " + "Vol= " + WriteVal( V ) + "\n" +
                EncodeColor( colorLime ) +
                WriteIf ( Buy , " GO LONG / Reverse Signal at " + C + " ", "" ) +
                WriteIf ( Sell , " EXIT LONG / Reverse Signal at " + C + " ", "" ) + "\n" + EncodeColor( colorWhite ) +
                WriteIf( Sell , "Total Profit/Loss for the Last Trade Rs." + ( C - BuyPrice ) + "", "" ) +
                WriteIf( Buy , "Total Profit/Loss for the Last trade Rs." + ( SellPrice - C ) + "", "" ) +
                WriteIf( Long AND NOT Buy, "Trade : Long - Entry price Rs." + ( BuyPrice ), "" ) +
                WriteIf( shrt AND NOT Sell, "Trade : Short - Entry price Rs." + ( SellPrice ), "" ) + "\n" +
                WriteIf( Long AND NOT Buy, "Current Profit/Loss Rs." + ( C - BuyPrice ) + "", "" ) +
                WriteIf( shrt AND NOT Sell, "Current Profit/Loss Rs." + ( SellPrice - C ) + "", "" ) );

_SECTION_END();

BuyPrice = ValueWhen( Buy, C );

SellPrice = ValueWhen( Sell, C );

Filter = ( Buy OR Sell );;

AddColumn( IIf( Buy, BuyPrice, Null ), " Buy ", 6.2, 1, colorGreen );
AddColumn( IIf( Sell, SellPrice, Null ), " sell ", 6.2, 1, colorOrange );
Previous Post Next Post