Hello, hoping someone can help out with this code. Aron was kind enough
to post a version of some code that is meant to inject some slippage
when using ApplyStop(). However, I can't seem to get it to work. All I
want it to do is reduce Long exits by 2 pips (I'm backtesting Forex) and
increase Short exits by 2 pips, when using ApplyStop.

Here is the code. At present, it only ends up blanking out my backtest
report - no trades taken. Without the code, dozens or hundreds of trades
taken, depending on which system I test. As far as I can tell, this code
should work, but doesn't. Any input appreciated:


SetCustomBacktestProc( "" );
if ( Status( "action" ) == actionPortfolio )
{
     TickSize = 0.0001;           // Forex
     bo = GetBacktesterObject();
     bo.PreProcess();
     slipage = TickSize;
     spread = 2 * TickSize;

     for ( bar = 0; bar < BarCount; bar++ )
     {
           for ( sig = bo.GetFirstSignal(bar); sig; sig =
bo.GetNextSignal(bar) )
           {
            symbol = sig.symbol;
            hi = Foreign(symbol, "H");
            lo = Foreign(symbol, "L");

              if ( sig.IsExit() )
              {
                if ( sig.isLong)
                {
                  realexitprice = sig.price - slipage;
                   if( realexitprice >= lo[bar] && realexitprice <=
hi[bar])
                   {
                     sig.price = realexitprice;
                     bo.ExitTrade(bar,sig.symbol,sig.Price);  // I'm not
sure if it is needed
                    }
                   else
                     sig.price = -1;
                 }
                 else
                {
                 ealexitprice = sig.price + slipage;
                   if (realexitPrice >= lo[bar]+ spread && realexitprice
<= hi[bar]+spread)
                   {
                     sig.price = realexitprice;
                     bo.ExitTrade(bar,sig.symbol,sig.Price); // I'm not
sure if it is needed
                    }
                   else
                     sig.price = -1;
                 }

               }
             }

         bo.ProcessTradeSignals( bar );
     }
   }


Reply via email to