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

Bollinger Band ZigZag Indicator 4 for Amibroker (AFL)

Rating:
3 / 5 (Votes 2)
Tags:
amibroker

Here is AFL based on BB. indicates possible reversal points on daily on weekly charts(EOD). dont use it on live charts

Indicator / Formula

Copy & Paste Friendly
_SECTION_BEGIN("Bollinger Band ZigZag Indicator");
function ParamOptimize( description, defaultVal, minv, maxv, step )
    { 
    return Optimize(description, Param(description,defaultVal, minv, maxv, step ), minv, maxv, step ); 
    }

BlankBars = 10; // Set to the number set in preferences

Buy = Sell = Short = Cover = Pos = 0;
Periods = ParamOptimize( "Periods", 3, 3, 30, 1 );
Width = ParamOptimize( "Width", 1, 0, 5, 0.1 );
BBTOp = BBandTop( H, Periods, Width ); // Note H is used instead of the tradional C
BBBot = BBandBot( L, Periods, Width ); // Note L is used instead of the tradional C

Plot( BBTop, "BBTop", colorBlue, styleLine );
Plot( BBBOt, "BBBot", colorBlue, styleLine );
Plot( C, "", 1, 128 );

BI = BarIndex();
start = Status( "firstvisiblebarindex" ) - BI[0] - BlankBars;
end     = Status( "lastvisiblebarindex" ) - BI[0] - BlankBars;
LBI = LastValue( BarIndex() );

for ( b = LBI; b > Periods; b-- )
{
    if ( L[b] <= BBBot[b] AND pos <= 0 )
    {
        pos = 1;
        Buy[b] = True;
        BuyPrice[b] = BBBot[b];
    }
    else
        if ( H[b] >= BBTop[b] AND Pos >= 0 )
        {
            Pos = -1;
            Sell[b] = True;
            SellPrice[b] = BBTop[b];
        }
}

Short = Sell;
ShortPrice = SellPrice;

Cover = Buy;
CoverPrice = BuyPrice;

Eq = Equity( 1 );

if ( ParamToggle( "Equity", "HIDE|SHOW", 0 ) )
    Plot( Eq, "", colorYellow, 1 | styleOwnScale );

ShowTriangles = ParamToggle( "Arrows", "HIDE|SHOW", 1 );

if ( showTriangles )
{
    PlotShapes( IIf( Buy,     shapeSmallUpTriangle, shapeNone ), 5, 0, BuyPrice, 0 );
    PlotShapes( IIf( Sell,    shapeHollowDownTriangle, shapeNone ), 4, 0, SellPrice, 0 );
    PlotShapes( IIf( Cover, shapeHollowUpTriangle, shapeNone ), 5, 0, CoverPrice, 0 );
    PlotShapes( IIf( Short, shapeSmallDownTriangle, shapeNone ), 4, 0, ShortPrice, 0 );
}

if ( ParamToggle( "Trade Lines", "HIDE|SHOW", 0 ) )
{
    Sig = Buy OR Short;
    signum = Cum( Sig );
    y0 = 0;
    y1 = C[0];
    TPrice = C;
    Shortcolor = LongColor = colorWhite;

    for ( b = start ;b < end ;b++ )
    {
        if ( Sig[b] )
        {
            x0 = y0;
            x1 = y1;
            y0 = b;

            if ( Buy[b] )
            {
                y1 = BuyPrice[b];
                Color = Shortcolor;
            }
            else
                if ( Short[b] )
                {
                    y1 = ShortPrice[b];
                    Color = Longcolor;
                }

            if( SigNum[b] > 1 ) Plot( LineArray( x0, x1, y0, y1 ), "", Color, 1 | styleThick );
        }
    }
}
_SECTION_END();

2 comments

1. empottasch

problem is that usually signals come earlier than shown in the chart. Still the system would still work if you get an entry/exit price close to BBBot or BBTop. Trading this system in the hourly time frame will still give a good result for ES mini futures when you take into account a “slippage” from BBBot and BBTop of 3 ticks. For oil 8 ticks is allowed.

Question is can you get anywhere near that in reality.

2. ole

Throwing error when “Trade Lines” is toggled to Show.

Leave Comment

Please login here to leave a comment.

Back