Hi All, I'm getting Error 19 when I try to call EnterTrade for a
predefined symbol. I would appreciate if someone could please tell me
I'm an idiot for missing something obvious in the following......
In CBT we typically have this type of code which places a trade on the
currently obtained signal, but if I also want to enter a long trade on
the symbol "BATS" whenever a short entry is made then the line
highlighted in yellow should do the trick. However its giving me an
Error 19.Any suggestions?
SetCustomBacktestProc("");if (Status("action") == actionPortfolio){
bo = GetBacktesterObject(); // Get backtester object
bo.PreProcess(); // Do pre-processing for (i = 0; i < BarCount;
i++) // Loop through all bars { for (sig =
bo.GetFirstSignal(i); sig; sig = bo.GetNextSignal(i)) { //
Loop through all signals at this bar if (sig.IsEntry() &&
sig.IsLong()) // Process long entries
bo.EnterTrade(i, sig.Symbol, sig.IsLong(), sig.Price, sig.PosSize);
else { // Process long exits
if (sig.IsExit() && sig.IsLong()) bo.ExitTrade(i,
sig.Symbol, sig.Price); }
// Process short entries if (sig.IsEntry() &&
!sig.IsLong()) { bo.EnterTrade(i,
sig.Symbol, sig.IsLong(), sig.Price, sig.PosSize);
LpairPrice = Foreign("BATS", "C");
// HERE is where I get Error 19. COM method/function
'EnterTrade' call failed bo.EnterTrade(i, "BATS", True,
LpairPrice, -20); } else {
if (sig.IsExit() && !sig.IsLong()) // Process short exits
bo.ExitTrade(i, sig.Symbol, sig.Price); }
} // End of for loop over signals at this bar
bo.HandleStops(i); // Handle programmed stops at this bar
bo.UpdateStats(i, 1); // Update MAE/MFE stats for bar
bo.UpdateStats(i, 2); // Update stats at bar's end } // End of
for loop over bars bo.PostProcess(); // Do post-processing}
// Simple trade rules for this exampleBuy = Cross( MA(C,5), MA(C,20)
);Sell = Cross( MA(C,20), MA(C,5) );
Short = Cross( MA(C,30), MA(C,10) );Cover = Cross( MA(C,10), MA(C,30) );