Stock Portfolio Organizer

The ultimate porfolio management solution.

Shares, Margin, CFD's, Futures and Forex
EOD and Realtime
Dividends and Trust Distributions
And Much More ....
For Portfolio Manager Click Here

WiseTrader Toolbox

#1 Selling Amibroker Plugin featuring:

Advanced Adaptive Indicators
Advanced Pattern Exploration
Neural Networks
And Much More ....
Find Out More Here

3 line break for Amibroker (AFL)
deepu826
about 13 years ago
Amibroker (AFL)

Rating:
5 / 5 (Votes 1)
Tags:
amibroker, chart

Three Line Break charts display a series of vertical boxes (“lines”) that are based on changes in prices. As with Kagi, Point & Figure, and Renko charts, Three Line Break charts ignore the passage of time.

Screenshots

Similar Indicators / Formulas

ultimate trend
Submitted by ravi0055 almost 11 years ago
Heiken Ashi, Bolinger Bands And ADX
Submitted by vole_00 over 12 years ago
bad tick clean
Submitted by pious243 about 11 years ago
Williams Alligator System
Submitted by durgesh1712 over 12 years ago
*Level Breakout system*
Submitted by Tinych over 12 years ago

Indicator / Formula

Copy & Paste Friendly
//------------------------------------------------------------------------------




GraphXSpace = 7;

numline = Param( "Break", 2, 2, 10, 1 );
j = 0;
Line[j] = C[0];
Op[j] = C[0];
direction = 0;
up = 0; // count up lines
down = 0;// count down lines
Count = 1; // count lines

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

    if ( direction[j] == 0 ) // continues down
    {
        if ( C[i] < Line[j] )
        {
            j++;
            direction[j] = 0;
            Line[j] = C[i];
            Op[j] = Line[j-1];
            down++;
            up = 0;
            Count++;
        }
        else
        {
            if ( Count == 1 &&	C[i] > OP[j] )// I-st reverse
            {
                j++;
                direction[j] = 1;
                Line[j] = C[i];
                Op[j] = Op[j-1];
                up++;
                down = 0;
                Count++;
            }

            if ( Count > 1 && down  == 1 && C[i] > Line[j-1] )//  reverse after 1 down line
            {
                j++;
                direction[j] = 1;
                Line[j] = C[i];
                Op[j] = Op[j-1];
                up++;
                down = 0;
                Count++;
            }

            if ( Count > 1  && down  > 1 && down < numline && C[i] > Op[j-1] )//simple reverse
            {
                j++;
                direction[j] = 1;
                Line[j] = C[i];
                Op[j] = Op[j-1];
                up++;
                down = 0;
                Count++;
            }

            if (  down >= numline && C[i] > Op[j-( numline -1 )] ) // white trunaround line
            {
                j++;
                direction[j] = 1;
                Line[j] = C[i];
                Op[j] = Op[j-1];
                up++;
                down = 0;
                Count++;
            }
        }



    }
    else // continues up
    {
        if ( C[i] > Line[j] )
        {
            j++;
            direction[j] = 1;
            Line[j] = C[i];
            op[j] = Line[j-1];
            up++;
            down = 0;
            Count++;
        }
        else
        {
            if ( Count == 1  &&	C[i] < OP[j] )// I-st reverse
            {
                j++;
                direction[j] = 0;
                Line[j] = C[i];
                Op[j] = Op[j-1];
                down++;
                up = 0;
                Count++;

            }

            if ( Count > 1 && up  == 1 && C[i] < Line[j-1] )//  reverse after 1 up line
            {
                j++;
                direction[j] = 0;
                Line[j] = C[i];
                Op[j] = Op[j-1];
                down++;
                up = 0;
                Count++;
            }

            if ( Count > 1 && up  > 1 && up < numline && C[i] < Op[j-1] ) //simple reverse
            {
                j++;
                direction[j] = 0;
                Line[j] = C[i];
                Op[j] = Op[j-1];
                down++;
                up = 0;
                Count++;
            }

            if ( up >= numline && C[i] < Op[j-( numline -1 )] )//black trunaround line

            {
                j++;
                direction[j] = 0;
                Line[j] = C[i];
                Op[j] = Op[j-1];
                down++;
                up = 0;
                Count++;
            }
        }
    }
}

delta = BarCount - j - 1;

direction = Ref( direction, - delta );
C = Ref( Line, - delta );
O = ( Ref( Op, -delta ) );
H = L = C;


Plot( C, "", 39, styleCandle );

Title = Name() + "  Three Line Break" + "\n" +
        "Value = " + SelectedValue( C )  + "\n" +
        "Break = " + numline;

0 comments

Leave Comment

Please login here to leave a comment.

Back