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