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

[amibroker] Re: Nested Loops - Custom Backtester



PureBytes Links

Trading Reference Links

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@xxx> 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/