[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Parallel lines for regression channels ?



PureBytes Links

Trading Reference Links

HB,

Try this. 

Ed

///////////////////////////////////////////////////////
Period=40;
price=A;// choose price array


LinReg=( Period * Sum( Cum( 1 ) * price,Period ) - 
Sum( Cum( 1 ),Period) * Sum( price,Period) ) / 
(Period * Sum(Cum( 1 )^2,Period ) - 
Sum( Cum( 1 ),Period )^2 ) * Cum( 1 ) + (MA(price,Period) - 
MA( Cum(1 ),Period) * (Period * Sum( Cum( 1 ) * price,Period) - 
Sum( Cum( 1 ),Period ) * Sum( price,Period) ) / (Period * 
Sum( Cum(1 )^2 ,Period) - Sum( Cum( 1 ),Period )^2 ) );

ind=(LastValue(LinReg)-(LastValue(LinRegSlope(price,Period))*
(LastValue(Cum(1))-Cum(1))))+Ref(price,(0-(LastValue(Cum(1))-
Period)))-Ref(price,(0-(LastValue(Cum(1))-Period)));

Dist=ind*.05;// distance from regression

Plot( price, "Price", 1, 64);
Plot( ind, "Regression", 5, 1);
Plot( ind+Dist, "+Line", 6, 1);
Plot( ind-Dist, "-Line", 6, 1);
/////////////////////////////////////////////////////



--- In amibroker@xxxx, "HB" <hbahlool0542@xxxx> wrote:
> Hello Ed,
> 
> Yes, I used parts of that formula. However, it plots incorrect 
results.
> 
> Try plotting that one and you'll see what I mean.
> 
> HB
> ----- Original Message ----- 
> From: Sharps_45_70 
> To: amibroker@xxxx 
> Sent: Wednesday, July 24, 2002 9:19 AM
> Subject: [amibroker] Re: Parallel lines for regression channels ?
> 
> 
> HB,
> 
> Try working off this formula from the AFL library.
> 
> http://www.amibroker.com/library/formula.php?id=106
> 
> Ed
> 
> 
> --- In amibroker@xxxx, "HB" <hbahlool0542@xxxx> wrote:
> > Ok, I've been trying to build the 40-day linear regression line 
> (starting from today, going back 40 days) and I can't even seem 
to do 
> that.
> > 
> > First, some basic math:
> > 
> > linear line: y = mx + b where m is the slope, b is the 
intercept, 
> and x is the bar #
> > 
> > LRline = Slope * (bar #) + Intercept
> > 
> > Note: Any time I write "Summation", it is the sum of the 
variable 
> for i = 1 to N, where N is the period
> > 
> > Slope = [ N*(Summation(X*Y)) - Summation(X) * Summation(Y) ] / 
[N * 
> Summation (X^2) - (Summation(X))^2]
> > OR
> > Slope = [Summation ((X-MeanX)*(Y-MeanY))] / [Summation((X-MeanX)
^2)]
> > 
> > Intercept = [Summation(Y) - Slope * Summation(X)] / N
> > OR
> > Intercept = MeanY - Slope * MeanX
> > 
> > Based on that, here's the AFL I've implemented so far. Someone 
> please correct what I'm doing wrong !
> > 
> > // Raff Regression Channels (at least the beginning of it :)
> > 
> > periods = 40;
> > DaysBack = 0;
> > 
> > // Compute the number of bars in datafile, this section was 
> developed by Frank Snay
> > RABars = 0; //initialize
> > TotalBars = Cum(1); //how many bars in database
> > FinalBar = LastValue(TotalBars);//number value of last bar
> > EndDay = FinalBar - DaysBack;//for other than 0 DaysBack
> > StartDay = EndDay - periods+1;//starting point for line
> > Master1 = IIf(TotalBars >= StartDay AND TotalBars <= 
> EndDay,1,0);//defined period
> > RABars = IIf(Master1,Ref(RABars,-1)+1,0); // daily counter in 
> defined period
> > RABarKntr = IIf(Master1,Sum(RABars,periods),0); //Sum of daily 
> counts
> > 
> > // Calculate LRLine formula components
> > SumX = Sum (RABars, periods);
> > SumY = Sum(C, periods);
> > SumXY = Sum (C * RABars, periods) ;
> > SumXX = Sum (RABars * RABars, periods);
> > 
> > n = periods;
> > 
> > Slope = (n * SumXY - SumX * SumY) / (n * SumXX - SumX * SumX );
> > Intercept = (SumY - Slope * SumX) / n;
> > 
> > /*
> > // Other calculation method which yields a different result ?!
> > SumX = Sum (RABars, periods);
> > SumY = Sum(C, periods);
> > SumXY = Sum (C * RABars, periods) ;
> > SumXX = Sum (RABars * RABars, periods);
> > MeanX = SumX/periods;
> > MeanY = SumY/periods;
> > 
> > Slope = Sum((RABars-MeanX)*(C-MeanY), periods);
> > Intercept = MeanY - slope * MeanX;
> > */
> > 
> > // Linear Regression Line
> > LRLine = Slope * RABars + Intercept; 
> > LRLine = IIf(RABarKntr >= 1, LRLine,-1e10);
> > 
> > // Graph the output
> > MaxGraph=2;
> > Graph0 = Close; Graph0Style = 1; Graph0Color =1;
> > Graph1 =LRLine; Graph1Style = 1;
> > 
> > //END
> > 
> > ----- Original Message ----- 
> > From: hmab1 
> > To: amibroker@xxxx 
> > Sent: Tuesday, July 23, 2002 7:07 PM
> > Subject: [amibroker] Parallel lines for regression channels ?
> > 
> > 
> > 
> > Hello,
> > 
> > Is it possible in AFL to contruct parallel lines on either 
side 
> of a 
> > linear regression line ?
> > 
> > I'm trying to build a linear regression channels indicator.
> > 
> > The central line would be the linear regression line. The 
upper 
> and 
> > lower channel lines are placed equidistant from the center 
line 
> and 
> > parallel to it. The distance between the central line and the 
> upper 
> > line would be equal to greatest distance between the central 
line 
> and 
> > the highest value. The distance between the central line and 
the 
> > lower line would be equal to greatest distance between the 
> central 
> > line and the lowest value.
> > 
> > I've been racking my brain, reading through the various AFL 
> > functions, and searching this group !! Is this even 
possible ?
> > 
> > Inputs would be the start date, end date, and variable array 
> (e.g. 
> > Close).
> > 
> > Thanks,
> > HB
> > 
> > 
> > 
> > Yahoo! Groups Sponsor 
> > ADVERTISEMENT
> > 
> > 
> > 
> > Your use of Yahoo! Groups is subject to the Yahoo! Terms of 
> Service.
> 
> 
> Yahoo! Groups Sponsor 
> ADVERTISEMENT
> 
> 
> 
> Your use of Yahoo! Groups is subject to the Yahoo! Terms of 
Service.