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

[amibroker] Re: Nested Loops to Examine Signals in Custom BackTester



PureBytes Links

Trading Reference Links

Graham,

Thanks, that could do the trick, and would likley be more efficient 
processing.

One concern:  Is there an architectural limit on the number of 
variables that one can create using varset?


Thanks,
David



--- In amibroker@xxxxxxxxxxxxxxx, Graham <kavemanperth@xxx> wrote:
>
> Why not do 2 separate loops and in the first use varset to obtain 
what
> information you need for each signal to use in the second loop
> 
> -- 
> Cheers
> Graham Kav
> AFL Writing Service
> http://www.aflwriting.com
> 
> 
> 
> On 16/11/2007, david.weilmuenster <dweilmuenster95125@xxx> wrote:
> > GP,
> >
> > Thanks.  I was afraid it would involve something similar to your
> > suggestion.
> >
> > Will take it from there, and make something work.
> >
> > Thanks agin,
> > David
> >
> >
> > --- In amibroker@xxxxxxxxxxxxxxx, "gp_sydney" <gp.investment@>
> > wrote:
> > >
> > > Yes, the backtester object maintains the state internally of 
which
> > > signal is the next one, so both loops are affecting the same 
state
> > > variable.
> > >
> > > For the outer loop you need to keep your own count of how many
> > signals
> > > it's processed and after the inner loop has finished, do 
another get
> > > first followed by the current count of get next until the state 
is
> > > back to where it needs to be for the next pass of the outer 
loop.
> > >
> > > There are a few ways to do this, but one would be something like
> > this:
> > >
> > > sig = bo.GetFirstSignal(bar);
> > > count = 1;
> > > while (sig)
> > > {
> > >    ... inner loop here ...
> > >
> > >    sig = bo.GetFirstSignal(bar);
> > >    cnt = count++;
> > >    while (sig && cnt--) sig = bo.GetNextSignal(bar);
> > > }
> > >
> > > I haven't tried this code though, so there may be issues in it.
> > >
> > > Note also that the way you have it, the outer loop will 
terminate at
> > > the very first signal that's not an entry. If you only want to 
skip
> > > non-entries rather than terminate the loop at the first one, 
put the
> > > IsEntry test inside the loop in an IF statement, not as part of 
the
> > > loop condition. Similarly for the inner loop with the symbol 
match
> > test.
> > >
> > > Regards,
> > > GP
> > >
> > >
> > > --- In amibroker@xxxxxxxxxxxxxxx, "david.weilmuenster"
> > > <dweilmuenster95125@> wrote:
> > > >
> > > > Hi,
> > > >
> > > > Is it possible to use nested loops of Signals in Custom
> > BackTester?
> > > >
> > > > What I have in mind is something like:
> > > >
> > > > for ( sig = bo.GetFirstSignal(bar); sig AND sig.isentry;
> > > > sig=bo.GetNextSignal(bar))
> > > > {
> > > > ...
> > > >
> > > > for ( compsig = bo.GetFirstSignal(bar); compsig AND
> > compsig.symbol !=
> > > > sig.symbol; compsig=bo.GetNextSignal(bar))
> > > > {
> > > >
> > > > ....
> > > >
> > > > }
> > > > }
> > > >
> > > > But, what seems to happen is that the inner loop is processed
> > only
> > > > once, for the first signal identified in the outer loop.  Am
> > guessing
> > > > that bo.getnextsignal(bar) needs to be "reset" somehow at end 
of
> > > > inner loop, but don't see how to do it.
> > > >
> > > >
> > > > Thanks in advance for help,
> > > >
> > > > David
> > > > San Jose, CA
> > > >
> > >
> >
> >
> >
> >
> > 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
> >
> >
> >
> >
>




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/