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) );

Reply via email to