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

Reply via email to