[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[amibroker] Re: Question on how to use HHV or LLV in a looping function?



PureBytes Links

Trading Reference Links

Mike,
Appreciate that, I do need the looping because my code looks back 
quite a bit.

I also need to include the current bar in my HHV/LLV test because 
I'm setting "Limit Prices" for real-time trading. Obviously HHV/LLV 
on the current bar are snapshots in time rather than true 
reflections of what the high or the low for the bar ends up being.

I'm beginning to reach the conclusion that HHV/LLV because they are 
themselves in a sense "looping arrays" are not that efficient to use 
inside a loop. 

I am indeed testing other approaches however before I give up, I 
wanted to see if anyone else out there had successfully implemented 
HHV/LLV within a loop.  

Again, appreciate your attempts.

--- In amibroker@xxxxxxxxxxxxxxx, "Mike" <sfclimbers@xxx> wrote:
>
> Hi,
> 
> I haven't tested any of this for accuracy. But, you can play with 
the 
> following approaches, all of which I've tried to keep within the 
> structure of your original code snippet (i.e. assuming that 
looping 
> is necessary).
> 
> However, as suggested, looping may not be necessary, and likely is 
> not necessary.
> 
> If I read HHV correctly, then it will include the current bar in 
the 
> calculation. I'm assuming that you do not want to include the 
current 
> bar when looking at "the last 2 bars", and so have used Ref(..., -
1) 
> to exclude the current bar. Double check this.
> 
> Note too that bar indexing is zero based, so your counter (e.g. i 
= ) 
> needs to be 1 less than you might otherwise expect.
> 
> Option 1:
> 
> HighestOfTwo = Ref(HHV(High, 2), -1);
> 
> for (i = 2; i < BarCount; i++) {
>   xyz = HighestOfTwo[i];
>   ...
> }
> 
> Option 2:
> 
> HighestOfTwo = Max(Ref(High, -1), Ref(High, -2));
> 
> for (i = 2; i < BarCount; i++) {
>   xyz = HighestOfTwo[i];
>   ...
> }
> 
> Option 3:
> 
> for (i = 2; i < BarCount; i++) {
>   xyz = High[i - 1];
>   if (High[i - 2] > xyz) xyz = High[i - 2];
>   ...
> }
> 
> Again, things will go significantly faster if you don't need the 
> loops.
> 
> Mike
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "sidhartha70" <sidhartha70@> 
> wrote:
> >
> > Help if we knew the full context of the problem... it is likely 
that
> > you wouldn't need to use HHV/LLV inside a loop. You can probably 
> code
> > the use of HHV/LLV outside of the loop. if you need one at all...
> > 
> > 
> > --- In amibroker@xxxxxxxxxxxxxxx, "cottondepot" <bill.ghali@> 
wrote:
> > >
> > > Need to use HHV/LLV in a loop: 
> > > 
> > > for (i = 3; i < BarCount; i++) 
> > > {
> > > xyz=HHV(High[i],2);
> > > ...
> > > }
> > > 
> > > Obviously that didn't work. In the loop, I'm trying to use 
> the "High" 
> > > of the last 2 bars as the "LimitPrice" on an order.
> > > 
> > > Any pointers would be greatly appreciated.
> > >
> >
>



------------------------------------

Please note that this group is for discussion between users only.

To get support from AmiBroker please send an e-mail directly to 
SUPPORT {at} amibroker.com

For NEW RELEASE ANNOUNCEMENTS and other news always check DEVLOG:
http://www.amibroker.com/devlog/

For other support material please check also:
http://www.amibroker.com/support.html
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/amibroker/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/amibroker/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:amibroker-digest@xxxxxxxxxxxxxxx 
    mailto:amibroker-fullfeatured@xxxxxxxxxxxxxxx

<*> To unsubscribe from this group, send an email to:
    amibroker-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/