PureBytes Links
Trading Reference Links
|
Tomasz answered kindly
Hello,
This formula is written poorly:
FIRST:
Replace Cum( 1 ) with BarIndex()
So instead of:
x =
Cum(1);
use
x = BarIndex();
Then replace all other occurrences of BarIndex() by simply x
(AVOID repetitive calls of the same function !)
Again replace repetitive calls of StDev and LinRegSlope
with ONE call and use later the variables.
Best regards,
Tomasz Janeczko
--- In amibroker@xxxxxxxxxxxxxxx, "lagramada7" <tm7@xxx> wrote:
>
> I mailed to Tomasz about a AFL script I derived from one on AFL
library
> I added some more lines @ fib distance to the original channel.
works
> fine in day, 60 or 30 min, but with YM in 3 or 5 min my laptop is
very,
> very slow
> // Linear Regression Line with 2 Standard Deviation Channels Plotted
> Above and Below
>
> // Written by Patrick Hargus, with critical hints from Marcin
Gorzynski,
> Amibroker.com Technical Support
>
>
> AB slows to a crawl when using following AFL with YM in 3 min any
> hint? sincerely
> // Linear Regression Line with 2 Standard Deviation Channels Plotted
> Above and Below
>
> // Written by Patrick Hargus, with critical hints from Marcin
Gorzynski,
> Amibroker.com <http://amibroker.com/> Technical Support
>
> // Designed for use with AB 4.63 beta and above, using drag and drop
> feature.
>
> // Permits plotting a linear regression line of any price field
> available on the chart for a period determined by the user.
>
> // 2 Channels, based on a standard deviation each determined by the
> user, are plotted above and below the linear regression line.
>
> // A look back feature is also provided for examining how the
indicator
> would have appeared on a chart X periods in the past.
>
>
>
> P =
> ParamField("Price field",-1 );
> Daysback =
> Param("Period for Liner Regression Line", 233,1,21046,1);
> shift =
> Param("Look back period",0 ,0,240,1);
>
>
> // =============================== Math Formula
> =============================================================
>
> x =
> Cum(1);
> lastx =
> LastValue( x ) - shift;
> aa =
> LastValue( Ref(LinRegIntercept ( p, Daysback), -shift) );
> bb =
> LastValue( Ref(LinRegSlope( p, Daysback ), -shift) );
> y = Aa + bb * ( x - (Lastx - DaysBack +
> 1 ) );
>
>
> // ==================Plot the Linear Regression Line
> ==========================================================
>
>
>
> LRColor =
> ParamColor("LR Color", colorCycle );
> LRStyle =
> ParamStyle("LR Style");
> LRLine =
> IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y, Null );
> Plot
> ( LRLine , "LinReg", LRCOLOR, LRSTYLE ); // styleDots );
> // ========================== Plot 1st SD Channel
> ===============================================================
>
> SDP =
> Param("Standard Deviation", 1.3 , 0, 21, 0.1);
> SD = SDP/
> 2;
> width =
> LastValue( Ref(SD*StDev(p, Daysback),-shift) ); // THIS IS WHERE THE
> WIDTH OF THE CHANELS IS SET
> SDU =
> IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y+width ,
Null ) ;
> SDL =
> IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y-width ,
Null ) ;
> SDColor =
> ParamColor("SD Color", colorCycle );
> SDStyle =
> ParamStyle("SD Style");
> Plot
> ( SDU , "Upper Lin Reg", SDColor,SDStyle );
> Plot
> ( SDL , "Lower Lin Reg", SDColor,SDStyle );
> // ========================== Plot 2d SD Channel
> ===============================================================
>
> SDP2 =
> Param("2d Standard Deviation", 2.1 , 0, 21, 0.1);
> SD2 = SDP2/
> 2;
> width2 =
> LastValue( Ref(SD2*StDev (p, Daysback),-shift) ); // THIS IS WHERE
THE
> WIDTH OF THE CHANELS IS SET
> SDU2 =
> IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y+width2 ,
Null ) ;
> SDL2 =
> IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y-width2 ,
Null ) ;
> SDColor2 =
> ParamColor("2 SD Color", colorCycle );
> SDStyle2 =
> ParamStyle("2 SD Style");
> Plot
> ( SDU2 , "Upper Lin Reg", SDColor2,SDStyle2 );
> Plot
> ( SDL2 , "Lower Lin Reg", SDColor2,SDStyle2 );
> // ========================== Plot 3d SD Channel
> ===============================================================
>
> SDP3 =
> Param("3d Standard Deviation", 3.4 , 0, 21, 0.1);
> SD3 = SDP3/
> 2;
> width3 =
> LastValue( Ref(SD3*StDev (p, Daysback),-shift) ); // THIS IS WHERE
THE
> WIDTH OF THE CHANELS IS SET
> SDU3 =
> IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y+width3 ,
Null ) ;
> SDL3 =
> IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y-width3 ,
Null ) ;
> SDColor3 =
> ParamColor("3 SD Color", colorCycle );
> SDStyle3 =
> ParamStyle("3 SD Style");
> Plot
> ( SDU3 , "Upper Lin Reg", SDColor3,SDStyle3 );
> Plot
> ( SDL3 , "Lower Lin Reg", SDColor3,SDStyle3 );
> // ========================== Plot 4d SD Channel
> ===============================================================
>
> SDP4 =
> Param("4d Standard Deviation", 5.5 , 0, 21, 0.1);
> SD4 = SDP4/
> 2;
> width3 =
> LastValue( Ref(SD4*StDev (p, Daysback),-shift) ); // THIS IS WHERE
THE
> WIDTH OF THE CHANELS IS SET
> SDU4 =
> IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y+width3 ,
Null ) ;
> SDL4 =
> IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y-width3 ,
Null ) ;
> SDColor4 =
> ParamColor("4 SD Color", colorCycle );
> SDStyle4 =
> ParamStyle("4 SD Style");
> Plot
> ( SDU4 , "Upper Lin Reg", SDColor4,SDStyle4 );
> Plot
> ( SDL4 , "Lower Lin Reg", SDColor4,SDStyle4 );
>
>
>
>
> // ========================== Plot 5d SD Channel
> ===============================================================
>
> SDP5 =
> Param("5d Standard Deviation", 8.9 , 0, 21, 0.1);
> SD5 = SDP5/
> 2;
> width5 =
> LastValue( Ref(SD5*StDev (p, Daysback),-shift) ); // THIS IS WHERE
THE
> WIDTH OF THE CHANELS IS SET
> SDU5 =
> IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y+width5 ,
Null ) ;
> SDL5 =
> IIf( x > (lastx - Daysback) AND BarIndex() < Lastx, y-width5 ,
Null ) ;
> SDColor5 =
> ParamColor("5 SD Color", colorCycle );
> SDStyle5 =
> ParamStyle("5 SD Style");
> Plot
> ( SDU5 , "Upper Lin Reg", SDColor5,SDStyle5 );
> Plot
> ( SDL5 , "Lower Lin Reg", SDColor5,SDStyle5 );
>
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/
For other support material please check also:
http://www.amibroker.com/support.html
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/amibroker/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:amibroker-digest@xxxxxxxxxxxxxxx
mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|