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

Reply via email to