So I took the template code for a backtest from the user knowledge base article. What I don't understand is why it changes the outcome of my trades even though I have no custom code in it. For instance, before inserting the custom backtest code, my AFL creates 30 trades. But with this added, it creates 34 trades, and 2 of them are on the same day.
Why would this following code modify the outcome of an AFL backtest:
SetCustomBacktestProc("");
if (Status("action") == actionPortfolio)
{
// Get backtester object
bo = GetBacktesterObject();
// o pre-processing
bo.PreProcess();
// Loop through all bars
for (i = 0; i < BarCount; i++)
{
// Loop through all signals at this bar
for (sig = bo.GetFirstSignal(i); sig; sig = bo.GetNextSignal(i))
{
// Process trades at this bar
bo.ProcessTradeSignals(i);
}
// Handle programmed stops at this bar
bo.HandleStops(i);
// Update MAE/MFE stats for bar
bo.UpdateStats(i, 1);
// Update stats at
bar's end
bo.UpdateStats(i, 2);
}
// Do post-processing
bo.PostProcess();
}
///// End of custom backtesting code