Stock Portfolio Organizer
The ultimate porfolio management solution.
WiseTrader Toolbox
#1 Selling Amibroker Plugin featuring:
Adaptive Price Zone (APZ) for Amibroker (AFL)
In “Trading With An Adaptive Price Zone,” author Lee Leibfarth presents a trading technique that uses adaptive bands based on the double-smoothed exponential moving average and the classic ADX indicator.
Implementing the adaptive price zone technique using AmiBroker Formula Language is easy and straightforward. Listing 1 shows ready-to-use code. The formula is for both the indicator and the trading system.
Screenshot shows a daily price chart of the S&P 500 continuous contract with adaptive price zone bands and trade entry/exit arrows (upper pane) and the ADX indicator (lower pane).
Screenshots
Similar Indicators / Formulas
Indicator / Formula
// Adaptive Price Zone Indicator & system
////////////////////////////////
function DblSmoothEMA( price, Length )
{
period = IIf( Length < 0, 1, sqrt( Length ) );
smooth = 2 / ( period + 1 );
return AMA( AMA( price, smooth ), smooth );
}
price = ParamField("Price");
period = Param("period", 20, 2, 100 );
BandPct = Param("width[%]", 1.4, 0.1, 4, 0.1 );
DsEMA = DblSmoothEMA( price, period );
RangeDsEMA = DblSmoothEMA( H - L, period );
UpBand = BandPct * RangeDsEMA + DsEMA;
DnBand = DsEMA - BandPct * RangeDsEMA ;
Plot( C, "Price", colorBlack, styleBar );
Plot( UpBand , "UpBand", colorLightGrey );
Plot( DnBand , "DownBand", colorLightGrey );
// you may uncomment lines below to get 'cloud' chart
// if you are using version 4.80 or higher
// PlotOHLC( UpBand, UpBand, DnBand, DnBand, "Band",
// ColorRGB( 245,245,255), styleCloud );
SetTradeDelays( 1, 1, 1, 1 );
ADXThshold = 30;
ADXValue = ADX( 14 );
Buy = ADXValue <= ADXThshold AND Low <= DnBand;
Short = ADXValue <= ADXThshold AND High >= UpBand;
Sell = Cover = ADXValue > ADXThshold;
if( Status("action") == actionIndicator )
{
Equity(2);
PlotShapes( Buy * shapeUpArrow, colorGreen, 0, DnBand, -24 );
PlotShapes( Sell * shapeDownArrow, colorRed, 0, UpBand, -24 );
PlotShapes( Short * shapeHollowDownArrow, colorRed, 0, UpBand, -24 );
PlotShapes( Cover * shapeHollowUpArrow, colorGreen, 0, DnBand, -24 );
}1 comments
Leave Comment
Please login here to leave a comment.
Back
Dear Andrew or friends
why the chart not show? no arrow, no bollinger, just price… could you please help me??
thanks
ss