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