What do you mean be gradient of the slope?
On Fri, Sep 19, 2008 at 9:36 PM, Louis P. <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> > >> 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. <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> >>> >>>> 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. <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> >>>>> >>>>>> 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. <[EMAIL PROTECTED]>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 <[EMAIL PROTECTED]> >>>>>>> >>>>>>>> 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. <[EMAIL PROTECTED]>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 <[EMAIL PROTECTED]> >>>>>>>>> >>>>>>>>>> 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>, >>>>>>>>>> "Louis P." <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> >>>>>>>>>> > >>>>>>>>>> > > y11 and y01 use "barhh" which is not defined. >>>>>>>>>> > > >>>>>>>>>> > > You have defined "barhh1" >>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>>>> > > ----- Original Message ----- >>>>>>>>>> > > *From:* Louis P. <[EMAIL PROTECTED]> >>>>>>>>>> > > *To:* [email protected] <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. >>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>>>> > > >>>>>>>>>> > >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> > >
