Try this - and right click and set time frameif you
want something different
/* Linear Regression test */
P = ParamField("Price field",-1);
Daysback = Param("Period for Liner Regression
Line",23,1,500,1);
shift = Param("Look back period",0,0,500,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.5, 0, 6,
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 |
styleNoRescale);
Plot( SDL , "Lower Lin Reg", SDColor,SDStyle |
styleNoRescale);
// ========================== Plot 2d
SD Channel
===============================================================
SDP2 = Param("2d Standard Deviation", 2.0, 0, 6,
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 |
styleNoRescale);
Plot( SDL2 , "Lower Lin Reg", SDColor2,SDStyle2 |
styleNoRescale);
Plot(Close,"Close",1,4);
// ============================ End Indicator Code
----- Original Message -----
Sent: Saturday, July 23, 2005 2:08
PM
Subject: Re: [amibroker] Linear
Regression Channel
Great
But where do I put that into. The code is
provided below.
Thanks
tony
P = ParamField("Price
field",-1); Daysback = Param("Period for Liner Regression
Line",23,1,500,1); shift = Param("Look back period",0,0,500,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, 0, 6, 0.1); SD = SDP;
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, 0, 6, 0.1); SD2 = SDP2;
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 );
// ============================ End Indicator Code
==============================================================
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 other support material please check also:
http://www.amibroker.com/support.html
YAHOO! GROUPS LINKS
|