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

[amibroker] Re: Nested Loops - Custom Backtester



PureBytes Links

Trading Reference Links

Ed, 

Unfortunately, I cannot re-create your results here.  I used a very 
simple backtest, and copied your code verbatim, but the outer loop 
still executes only for the first signal.

Thanks, though, for the suggestion,

David


--- In amibroker@xxxxxxxxxxxxxxx, "Edward Pottasch" <empottasch@xxx> 
wrote:
>
> hi,
> 
> it seems to be possible. I ran this code on top of some backtest. 
The results in the AA window show that both loops are used.  If you 
want to change a trade then you will have to change this setup. Here 
I first run the backtest and then go through the signal object.
> 
> Ed
> 
> 
> 
> 
> SetOption("UseCustomBacktestProc", True ); 
> 
> if( Status("action") == actionPortfolio ) { 
> 
>    bo = GetBacktesterObject(); 
>    //bo.PreProcess(); // Initialize backtester 
>    bo.backtest(); 
>     
>    for(bar=0; bar<BarCount; bar++) { 
>     
>             
>            for ( sig = bo.GetFirstSignal(bar); sig; 
sig=bo.GetNextSignal(bar)) { 
>                        
> 
>               for ( sig2 = bo.GetFirstSignal(bar); sig2; 
sig2=bo.GetNextSignal(bar)) { 
> 
>                  bo.RawTextOutput( "\t" + "Sig: " + sig.Symbol 
+ "   Sig2: " + sig2.Symbol  ); 
> 
> 
>               } 
>             
>            } 
>        
>    } 
>    //bo.PostProcess(); // Finalize backtester 
> 
> } 
> 
> 
> 
> 
>   ----- Original Message ----- 
>   From: david.weilmuenster 
>   To: amibroker@xxxxxxxxxxxxxxx 
>   Sent: Monday, July 02, 2007 5:18 PM
>   Subject: [amibroker] Nested Loops - Custom Backtester
> 
> 
>   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/