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 amibroker@yahoogroups.com <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:* amibroker@yahoogroups.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. >>>>>>> > > >>>>>>> > > >>>>>>> > > >>>>>>> > >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> > >