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

[amibroker] Re: Nested Loops - Custom Backtester



PureBytes Links

Trading Reference Links

Thanks to all who have responded.

GP, I believe that you've hit on the required approach.

Will take your code as a starting point.

Regards,
David



--- In amibroker@xxxxxxxxxxxxxxx, "gp_sydney" <gp.investment@xxx> 
wrote:
>
> I'd say it's not possible, but I haven't tried it.
> 
> The reason I say that is because the backtester object has to 
maintain
> the state of where you're up to in the signal list, otherwise
> GetNextSignal wouldn't know which one to get. Since your inner loop
> runs right to the end of the signal list, when the outer loop next
> calls GetNextSignal, the backtester object's state would already be 
at
> the end of the list and should return null (ie. end of list).
> 
> The only way I can think of to make it work would be to keep a 
counter
> for where the outer loop is up to and use that to return to the
> correct next signal after each pass of the outer loop rather than 
use
> a simple for loop, something like this:
> 
> sig = bo.GetFirstSignal(bar);
> sigCnt = 1;
> do
> {
>     for (sig_2 = bo.GetFirstSignal(bar); sig_2; sig_2 =
> bo.GetNextSignal(bar))
>     {
>         ... logic to compare signal
>     }
>     cnt = sigCnt++;
>     sig = bo.GetFirstSignal(bar);
>     while (sig && cnt--)
>         sig = bo.GetNextSignal(bar);
> } while (sig);
> 
> Note that I haven't tried this code though, so it may have mistakes 
in
> it or not work.
> 
> GP
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "david.weilmuenster"
> <dweilmuenster95125@> wrote:
> >
> > Hi,
> > 
> > In the Custom Backtester, I need to run a nested loop to examine 
all 
> > signals in comparison to a given signal, and have tried the 
following 
> > code to implement a  nested loop:
> > 
> > for ( sig = bo.getfirstsignal(bar); sig; sig = bo.getnextsignal
(bar))
> > 
> > {
> > 
> >   for ( sig_2 = bo.getfirstsignal(bar); sig_2; sig_2 = 
> > bo.getnextsignal(bar))
> > 
> >   {
> > 
> >    ... logic to compare signals
> > 
> >   }
> > 
> > }
> > 
> > -------------------------------------------
> > 
> > But, the code executes only for the first signal in the outer 
loop.  
> > I.e., it runs the inner loop perfectly, but only for the first 
signal 
> > in the outer loop.
> > 
> > Any clues as to what I'm doing wrong?  Maybe this isn't 
possible?  
> > Other approaches I should try?
> > 
> > Thanks,
> > David Weilmuenster
> >
>




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/