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: [email protected] 
  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



   

Reply via email to