OK, I verified that open positions work if I handle them AFTER the main loop 
(loop through all bars) in CBT.
But it has problem within the main loop.

Here is the code:

If I put AddCustomMetric() after bo.ExitTrade(), it has no effect.

   if (sig.isExit())
   {
    pos = bo.FindOpenPos( sig.Symbol );
    if(pos) {
     lastC = pos.GetPrice(bar-1, "C");
     curO =pos.GetPrice(bar, "O");
     if(bo.ExitTrade(bar,sig.symbol,sig.Price))
     { 
      //!!!!!!!!!!!!!!!!!!!!! the folowing line has no effect!!!!!!!!
         pos.AddCustomMetric("OvernightGap", curO - lastC);
     _TRACE("EXIT: " + sig.symbol + "@" + sig.Price);
     }
    }
   }

If I put it before bo.ExitTrade(), the crach warning window of AB popped up:

   if (sig.isExit())
   {
    pos = bo.FindOpenPos( sig.Symbol );
    if(pos) {
     lastC = pos.GetPrice(bar-1, "C");
     curO =pos.GetPrice(bar, "O");
     //!!!!!!!!!!!!!!!!!!!!! the folowing line crash amibroker!!!!!!!!
     pos.AddCustomMetric("OvernightGap", curO - lastC);
     if(bo.ExitTrade(bar,sig.symbol,sig.Price))
     { 
      _TRACE("EXIT: " + sig.symbol + "@" + sig.Price);
     }
    }
   }


  ----- Original Message ----- 
  From: Tomasz Janeczko 
  To: [email protected] 
  Sent: Tuesday, November 28, 2006 1:58 PM
  Subject: Re: [amibroker] AddCustomMetric() for open positions



  Hello,

  Are you sure ? Open positions and closed trades are handled by exactly the 
same class internally and I see
  no reason why it should not work. If in doubt send code that allows to 
reproduce the problem to support.

  Best regards,
  Tomasz Janeczko
  amibroker.com
    ----- Original Message ----- 
    From: Mark H 
    To: [email protected] 
    Sent: Tuesday, November 28, 2006 6:47 PM
    Subject: [amibroker] AddCustomMetric() for open positions


    Tomasz:

    AddCustomMetric() has no effect on open positions. I want to add some 
custom metrics based on some calculations using values returned by GetPrice(). 

    AddCustomMetric() works fine for closed positions (trades), but then 
GetPrice() no longer works.

    Is this by design? 

    Thanks,

    - Mark

   

Reply via email to