This should work for degree.

PI=3.14159265358979;

Deg = atan(Slope)*180/PI;

Personally, I don't see why you would want to do a regression analyses if
you are "looking for a line that ends at each bar and that starts from the
HHV." Regression analyse is not needed, since you are just connecting two
points with a straight line - the HHV to each bar. Just an opinion - I like
to keep it simple.


On Sat, Sep 20, 2008 at 9:13 AM, Louis P. <[EMAIL PROTECTED]> wrote:

>   Hi,
>
> @Tony:Sorry I thought gradient was the good word.  Maybe I meant angle, or
> degree?  I want a LR slope of approx. 30-50 degrees.  How can I do that?
> @gp_sydney: I need to go to work, but will check this tomorrow or Monday.
> I looked very quickly and was wondering where in that formula can I
> determine how steep the slope will be.  That would help a lot!
>
> Thank you you two a lot!
>
> Louis
>
>
>
> 2008/9/20 gp_sydney <[EMAIL PROTECTED]>
>
>>   Sorry, a couple of typos in the formula. It should be:
>>
>>
>> n = HHVBars(High, periods);
>> avX = MA(x, n);
>> avY = MA(y, n);
>> avXY = MA(x*y, n);
>> avXX = MA(x*x, n);
>>
>> b = (avXY - avX*avY) / (avXX - avX*avX);
>> a = avY - b*avX;
>>
>> GP
>>
>> --- In [email protected] <amibroker%40yahoogroups.com>,
>> "gp_sydney" <[EMAIL PROTECTED]> wrote:
>> >
>> > Louis,
>> >
>> > I gather you want to use regression to get a best-fit line from the
>> > most-recent HHV, not just draw a line between the end points. From my
>> > understanding of regression though, which isn't a lot, I gather that
>> > such a line may not actually pass through either end point, so may not
>> > go "from the HHV" exactly or end at the current bar exactly (to get
>> > that, just draw a line between those two points as previously
>> > mentioned). Once you have the line though, you could offset it
>> > vertically to get it to pass exactly through the HHV or current bar
>> > (but not both of course).
>> >
>> > From a response Tomasz gave you in another thread about how to
>> > calculate Rsquared without a loop:
>> >
>> > http://finance.groups.yahoo.com/group/amibroker/message/129392
>> >
>> > you can similarly do the regression itself. According to Tomasz,
>> > LinRegSlope already accepts variable periods (ie. arrays), so to get
>> > the slope you should be able to just use that function. Or to
>> > calculate both coefficients yourself, then something like this (based
>> > on the formula given at http://www.educalc.net/2104083.page):
>> >
>> > n = HHVBars(High, periods);
>> > avX = MA(x, n);
>> > avY = MA(y, n);
>> > avXY = MA(x*y, n);
>> > axXX = MA(x*x, n);
>> >
>> > b = (avXY - avX*avY) / (avXX - avX*avX);
>> > a = axY - b*avX;
>> >
>> > Hopefully I've got that right (I haven't tested it). The line formula
>> > is then:
>> >
>> > line = a + b*x;
>> >
>> > The slope is 'b' and the intercept 'a'. The slope is in dollars per
>> > bar. I'm not sure what you want by a percentage slope though, as the
>> > 'x' and 'y' axes are in completely different units.
>> >
>> > Also note that the calculated lines would only be straight on a linear
>> > price scale (if they were plotted). If you use semi-log, then the
>> > formula for a straight line is different - and how to do regression
>> > for it would take some figuring out.
>> >
>> > Hope this helps.
>> >
>> > Regards,
>> > GP
>> >
>> >
>> > --- In [email protected] <amibroker%40yahoogroups.com>, "Louis
>> P." <rockprog80@> wrote:
>> > >
>> > > Hi,
>> > >
>> > > I need the gradient of the slope, and for each bar. This is where
>> it is
>> > > difficult...
>> > >
>> > > Thanks,
>> > >
>> > > Louis
>> > >
>> > > 2008/9/19 Tony Grimes <Tonez.Email@>
>> > >
>> > > > Louis,
>> > > >
>> > > > If your looking for the slope & difference between HHV of 20 bars
>> > & the
>> > > > current close, all you should need is this:
>> > > >
>> > > > Pds=20;
>> > > >
>> > > > LastHighBar = HHVBars(High, Pds);
>> > > > LastHighVal = HHV(High, Pds);
>> > > >
>> > > > Slope = IIf(LastHighBar,(Close - LastHighVal) / LastHighBar,0);
>> > > > CloseDiff = Close - Ref(Close, -LastHighBar);
>> > > >
>> > > >
>> > > > On Fri, Sep 19, 2008 at 4:51 PM, Louis P. <rockprog80@> wrote:
>> > > >
>> > > >> Hi Tony,
>> > > >>
>> > > >> Thank you a lot for your response. I'm still very weak with
>> > loops. Last
>> > > >> time experimented with one, I had to reboot my computer! :) So
>> > do you know
>> > > >> how such a loop could work? And if I run, let's say 2 minutes
>> > bar for one
>> > > >> year, wouldn't that be really really long to deal with? I have
>> > PIV with 1.5
>> > > >> GHz ram.
>> > > >>
>> > > >> I am looking for a line that ends at each bar and that starts
>> > from the HHV
>> > > >> of 20 bars, and I want to do things with this bar: e.g. compare
>> > the closes
>> > > >> between current bar and the HHV to the bar and establish the
>> > gradient of
>> > > >> that linear regression bar for each bar.
>> > > >>
>> > > >> Thanks a lot!
>> > > >>
>> > > >> Louis
>> > > >>
>> > > >> 2008/9/19 Tony Grimes <Tonez.Email@>
>> > > >>
>> > > >>> Hi Louis,
>> > > >>>
>> > > >>> A loop will work, but how slow - it depends (Speed of your
>> computer,
>> > > >>> number of bars loaded, how many loops your using etc...).
>> > Without seeing
>> > > >>> what your actually looking for (The end result), I think you
>> > could do it
>> > > >>> with one loop, with only one pass through the loop. The speed
>> > should be OK.
>> > > >>>
>> > > >>> Good Luck.
>> > > >>>
>> > > >>> Tony
>> > > >>>
>> > > >>> On Fri, Sep 19, 2008 at 2:47 PM, Louis P. <rockprog80@> wrote:
>> > > >>>
>> > > >>>> Hi Tony,
>> > > >>>>
>> > > >>>> Thanks for the tips. Basically, I'd need a loop and use it on
>> > each and
>> > > >>>> every bar of the array to determine the LR, right?
>> > > >>>>
>> > > >>>> That will slow down my computer a lot, don't you think?
>> > > >>>>
>> > > >>>> Thanks,
>> > > >>>>
>> > > >>>> Louis
>> > > >>>>
>> > > >>>> 2008/9/16 Tony Grimes <Tonez.Email@>
>> > > >>>>
>> > > >>>>> SelectedValue takes an array ( of numbers) and returns a
>> single
>> > > >>>>> number based on the bar that is selected in the chart.
>> > > >>>>>
>> > > >>>>> The first formula worked because SelectedValue was giving you a
>> > > >>>>> number.
>> > > >>>>>
>> > > >>>>> Look at it this way: Array --> SelectedValue ---> Number.
>> > > >>>>>
>> > > >>>>> Remove SelectedValue: Array---->Array.
>> > > >>>>>
>> > > >>>>> You can draw a line with single numbers, but not arrays.
>> > > >>>>>
>> > > >>>>> You can always use a loop.
>> > > >>>>>
>> > > >>>>> You might want to read: Understanding how AFL works, in the
>> > Amibroker
>> > > >>>>> users guide. Until you really understand AFL & array
>> > processing, you are
>> > > >>>>> going to keep running into these problems, which will just
>> > slow you down.
>> > > >>>>>
>> > > >>>>>
>> > > >>>>> On Tue, Sep 16, 2008 at 10:34 PM, Louis P. <rockprog80@>wrote:
>> > > >>>>>
>> > > >>>>>> Hi Tony,
>> > > >>>>>>
>> > > >>>>>> Why was the first formula working (the one with
>> > selectedvalue) and not
>> > > >>>>>> the second one? Why simply deleting the "selectedvalue"
>> > makes it an array
>> > > >>>>>> that will not be accept in "linearray"?
>> > > >>>>>>
>> > > >>>>>> Is there any way to draw a line without using lastvalue or
>> > > >>>>>> selectedvalue? Do I need to use a loop?
>> > > >>>>>>
>> > > >>>>>> Thanks,
>> > > >>>>>>
>> > > >>>>>> Louis
>> > > >>>>>>
>> > > >>>>>> 2008/9/16 Tony Grimes <Tonez.Email@>
>> > > >>>>>>
>> > > >>>>>>> Louis,
>> > > >>>>>>>
>> > > >>>>>>> All of the variables you are creating for the LineArray
>> > function are
>> > > >>>>>>> arrays themselves. Although LineArray generates an array, it
>> > does not accept
>> > > >>>>>>> any arrays as inputs. Additionally, your error message was
>> > probably
>> > > >>>>>>> different. It probably went from complaining about argument
>> > #4 having the
>> > > >>>>>>> incorrect type (which you corrected) to argument #3 having
>> > the incorrect
>> > > >>>>>>> type.
>> > > >>>>>>>
>> > > >>>>>>> On Tue, Sep 16, 2008 at 9:10 PM, Louis P. <rockprog80@>wrote:
>> > > >>>>>>>
>> > > >>>>>>>> Hi,
>> > > >>>>>>>>
>> > > >>>>>>>> Thank you for your help.
>> > > >>>>>>>>
>> > > >>>>>>>> @Ara:
>> > > >>>>>>>>
>> > > >>>>>>>> If in
>> > > >>>>>>>>
>> > > >>>>>>>> barhh1 = HHVBars( High, Periods ) ;
>> > > >>>>>>>> bi1 = BarIndex();
>> > > >>>>>>>> y11 = LinearReg( C, barhh1 ) ;
>> > > >>>>>>>> y01 = LinRegIntercept( C, barhh1 ) ;
>> > > >>>>>>>> sl1 = LineArray( bi1-barhh1+0, y01, bi1, y11, 0, True );
>> > > >>>>>>>>
>> > > >>>>>>>> I replace
>> > > >>>>>>>>
>> > > >>>>>>>> sl1 = LineArray( bi1-barhh1+0, y01, bi1, y11, 0, True );
>> > > >>>>>>>>
>> > > >>>>>>>> by
>> > > >>>>>>>>
>> > > >>>>>>>> sl1 = LineArray( bi1-barhh1+0, y01, bi1, LastValue(y11), 0,
>> > True
>> > > >>>>>>>> );
>> > > >>>>>>>>
>> > > >>>>>>>> I still have the same error message. I don't know from
>> > where it is
>> > > >>>>>>>> coming.. unfortunately!
>> > > >>>>>>>>
>> > > >>>>>>>>
>> > > >>>>>>>> @gp_sydney:
>> > > >>>>>>>>
>> > > >>>>>>>> That was a typo, you are right; I arranged that by adding a
>> > 1. But
>> > > >>>>>>>> still, the problem remains: the last line does not work.
>> > > >>>>>>>>
>> > > >>>>>>>> One day, I asked support if I needed a loop to do such LR
>> > and they
>> > > >>>>>>>> said I should not need one.
>> > > >>>>>>>>
>> > > >>>>>>>> Here is the original code:
>> > > >>>>>>>>
>> > > >>>>>>>> barhh = SelectedValue( HHVBars( High, Periods ) );
>> > > >>>>>>>> bi = SelectedValue( BarIndex() );
>> > > >>>>>>>> y1 = SelectedValue( LinearReg( C, barhh ) );
>> > > >>>>>>>> y0 = SelectedValue( LinRegIntercept( C, barhh ) );
>> > > >>>>>>>> sl = LineArray( bi-barhh+0, y0, bi, y1, 0, True );
>> > > >>>>>>>>
>> > > >>>>>>>> What I want to do is simply eliminate the "selectedvalue"
>> > part and
>> > > >>>>>>>> use the code not only for the selected data but for the
>> > whole data. I want
>> > > >>>>>>>> to be able to draw a line from each HHV to each bar and
>> > then work with the
>> > > >>>>>>>> result.
>> > > >>>>>>>>
>> > > >>>>>>>> If it can't be done without a loop, I feel like I'll be
>> > lost in time
>> > > >>>>>>>> again; last time I tried to run a loop on my computer it
>> > freezed and after 2
>> > > >>>>>>>> minutes I decided to shut down AB...
>> > > >>>>>>>>
>> > > >>>>>>>>
>> > > >>>>>>>> Thanks for the help,
>> > > >>>>>>>>
>> > > >>>>>>>> Louis
>> > > >>>>>>>>
>> > > >>>>>>>>
>> > > >>>>>>>>
>> > > >>>>>>>>
>> > > >>>>>>>>
>> > > >>>>>>>>
>> > > >>>>>>>>
>> > > >>>>>>>> 2008/9/16 gp_sydney <gp.investment@>
>> > > >>>>>>>>
>> > > >>>>>>>>> As Ara said, in the shown code snippet you don't have
>> > "barhh"
>> > > >>>>>>>>> defined,
>> > > >>>>>>>>> only "barhh1".
>> > > >>>>>>>>>
>> > > >>>>>>>>> Beyond that, you have the same issue I mentioned
>> > originally, that
>> > > >>>>>>>>> the
>> > > >>>>>>>>> linear regression functions and LineArray function take
>> scalar
>> > > >>>>>>>>> values
>> > > >>>>>>>>> (ie. single numbers) as parameters, not arrays.
>> > > >>>>>>>>>
>> > > >>>>>>>>> I gather you're trying to create a line from the
>> > most-recent HHV
>> > > >>>>>>>>> value
>> > > >>>>>>>>> using the subsequent close data for every bar on the
>> > chart. As I
>> > > >>>>>>>>> don't
>> > > >>>>>>>>> think the linear regression functions can take arrays
>> for the
>> > > >>>>>>>>> period,
>> > > >>>>>>>>> I think you'd need to use a loop and do the linear
>> regression
>> > > >>>>>>>>> yourself
>> > > >>>>>>>>> at each bar (you could call the array functions within the
>> > loop,
>> > > >>>>>>>>> but
>> > > >>>>>>>>> since they fill a whole array each time, they would do a
>> > lot of
>> > > >>>>>>>>> unnecessary work). If you do that yourself inside the
>> > loop, then at
>> > > >>>>>>>>> each bar you'd have scalar 'x' and 'y' values to calculate
>> > the line
>> > > >>>>>>>>> slope and so on.
>> > > >>>>>>>>>
>> > > >>>>>>>>> For what it's worth, the BarIndex function simply gives
>> > you the bar
>> > > >>>>>>>>> number. It provides a way of using the current bar number
>> > in array
>> > > >>>>>>>>> formula.
>> > > >>>>>>>>>
>> > > >>>>>>>>> Regards,
>> > > >>>>>>>>> GP
>> > > >>>>>>>>>
>> > > >>>>>>>>>
>> > > >>>>>>>>> --- In [email protected]<amibroker%40yahoogroups.com>
>> > <amibroker%40yahoogroups.com>,
>> > > >>>>>>>>> "Louis P." <rockprog80@> wrote:
>> > > >>>>>>>>> >
>> > > >>>>>>>>> > Hi,
>> > > >>>>>>>>> >
>> > > >>>>>>>>> > Sorry, You can replace "periods" by 50 if you wish. I
>> > just forgot
>> > > >>>>>>>>> to
>> > > >>>>>>>>> > include that.
>> > > >>>>>>>>> >
>> > > >>>>>>>>> > barhh1 = HHVBars( High, *50* ) ;
>> > > >>>>>>>>> > bi1 = BarIndex() ;
>> > > >>>>>>>>> > y11 = LinearReg( C, barhh ) ;
>> > > >>>>>>>>> > y01 = LinRegIntercept( C, barhh ) ;
>> > > >>>>>>>>> > sl1 = LineArray( bi1-barhh1+0, y01, bi1, y11, 0, True );
>> > > >>>>>>>>> >
>> > > >>>>>>>>> > Still, it is not working, even if barhh1 is defined...
>> > > >>>>>>>>> >
>> > > >>>>>>>>> > Louis
>> > > >>>>>>>>> >
>> > > >>>>>>>>> > 2008/9/16 Ara Kaloustian <ara1@>
>> > > >>>>>>>>> >
>> > > >>>>>>>>> > > y11 and y01 use "barhh" which is not defined.
>> > > >>>>>>>>> > >
>> > > >>>>>>>>> > > You have defined "barhh1"
>> > > >>>>>>>>> > >
>> > > >>>>>>>>> > >
>> > > >>>>>>>>> > >
>> > > >>>>>>>>> > > ----- Original Message -----
>> > > >>>>>>>>> > > *From:* Louis P. <rockprog80@>
>> > > >>>>>>>>> > > *To:* 
>> > > >>>>>>>>> > > [email protected]<amibroker%40yahoogroups.com>
>> > <amibroker%40yahoogroups.com>
>> > > >>>>>>>>> > > *Sent:* Tuesday, September 16, 2008 2:46 PM
>> > > >>>>>>>>> > > *Subject:* [amibroker] What is wrong?
>> > > >>>>>>>>> > >
>> > > >>>>>>>>> > > Hi,
>> > > >>>>>>>>> > >
>> > > >>>>>>>>> > > What is wrong in the following formula?
>> > > >>>>>>>>> > >
>> > > >>>>>>>>> > > barhh1 = HHVBars( High, Periods ) ;
>> > > >>>>>>>>> > > bi1 = BarIndex() ;
>> > > >>>>>>>>> > > y11 = LinearReg( C, barhh ) ;
>> > > >>>>>>>>> > > y01 = LinRegIntercept( C, barhh ) ;
>> > > >>>>>>>>> > > sl1 = LineArray( bi1-barhh1+0, y01, bi1, y11, 0, True );
>> > > >>>>>>>>> > >
>> > > >>>>>>>>> > >
>> > > >>>>>>>>> > > Thanks,
>> > > >>>>>>>>> > >
>> > > >>>>>>>>> > > Louis
>> > > >>>>>>>>> > >
>> > > >>>>>>>>> > > p.s. There was "Selectedvalue" in the first four lines
>> > but I
>> > > >>>>>>>>> don't
>> > > >>>>>>>>> want to
>> > > >>>>>>>>> > > plot it on the chart based on where I am on that
>> > chart, but
>> > > >>>>>>>>> simply
>> > > >>>>>>>>> set the
>> > > >>>>>>>>> > > variable so I can use the stuff later.
>> > > >>>>>>>>> > >
>> > > >>>>>>>>> > >
>> > > >>>>>>>>> > >
>> > > >>>>>>>>> >
>> > > >>>>>>>>>
>> > > >>>>>>>>>
>> > > >>>>>>>>
>> > > >>>>>>>
>> > > >>>>>>
>> > > >>>>>
>> > > >>>>
>> > > >>>
>> > > >>
>> > > >
>> > > >
>> > >
>> >
>>
>>
>  
>

Reply via email to