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. >>>>>> > > >>>>>> > > >>>>>> > > >>>>>> > >>>>>> >>>>>> >>>>> >>>> >>> >> > >
