Hi,

I need the gradient of the slope, and for each bar.  This is where it is
difficult...

Thanks,

Louis

2008/9/19 Tony Grimes <[EMAIL PROTECTED]>

>   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