PureBytes Links
Trading Reference Links
|
Hello Ed,
Wow ! That's amazing.
However, in order to learn, I would prefer to understand the concept
behind how you created this AFL.
Could you provide some comments for your code.
I'm asking because I want to modify this code to be able to display
the line & channels starting from a certain day and ending on a
certain day (not necessarily today). So, there would be two
variables (Period & Daysback) or (startdate & enddate).
Also, I want to modify the "dist" variable so that it is equal to the
the max absolute difference between the regression line and the price
array in that period.
Thanks again,
HB
--- In amibroker@xxxx, "Sharps_45_70" <sharps_45_70@xxxx> wrote:
> 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.
|