Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

IOrder.Time vs OnOrderUpdate call

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    IOrder.Time vs OnOrderUpdate call

    According to NT help IOrder.Time represent the time the order state was last updated. Exactly where and how is this timestamp generated?

    I am running NT7R2 on Zen-Fire Virtual Machine and conducting tests to determine why the processing times from order submission/change to acknowledgement that the order has reached state 'working' sometimes exceed 500 ms. I am generating my own timestamps plus am checking IOrder.Time plus have enrolled Zen-Fire and MIrus to this exercise, too.

    FDAX Example: On average the total processing time has been around 130-140 ms (N=several hundreds). This is not bad taking into account that the signal must cross the Atlantic twice during the process. Counting starts when I submit/change the order inside OnMarketData() - timestamp SendTime - and ends when OnOrderUpdate() gets called and the order state is 'working' - timestamp AckTime. Occasionally, however, I get following results (the digits after 'PM' denote milliseconds):

    SendTime=3/10/2011 1:43:33 PM:921,
    IOrder.Time=3/10/2011 1:43:34 PM:718,
    AckTime=3/10/2011 1:43:34 PM:874,

    The whole process took 953 ms. Interestingly, there is a 156 ms gap between IOrder.Time and AckTime. Returning to my question at the top of this post, what could explain that difference? Understanding that 156 ms difference does not sove the equation, but I am trying to narrow down the problem space...

    #2
    Hello,

    Thanks for your forum post.

    Yes I remember your post over on the Zenfire delay thread.

    I'm looking into this with development. At the latest you will have a response tomorrow.

    Thanks for your patience.
    BrettNinjaTrader Product Management

    Comment


      #3
      Hello,

      Thanks for your patience.

      iOrder.Time has a local time stamp, however there may be an adapter that does a native time stamp instead here.

      As far as OnBarUpdate(), information on where this runs and its details can be found here:



      Let me know if I can be of further assistance.

      BrettNinjaTrader Product Management

      Comment


        #4
        Ok, how about IExecution.Time, does it hold the timestamp generated at the exchange?

        Comment


          #5
          IExecution is the same as IOrder.
          BrettNinjaTrader Product Management

          Comment


            #6
            Hmmm, it seems to be difficult to track & trace order processing. Zen-Fire did it for one order that took in total 950 ms to process, reported back that it took "100ms from the time we got the request to when the exchange confirmed it". So in this case the computer (VM) and NT accounted for the remaining 850 ms.

            Comment

            Latest Posts

            Collapse

            Topics Statistics Last Post
            Started by Geovanny Suaza, 02-11-2026, 06:32 PM
            0 responses
            647 views
            0 likes
            Last Post Geovanny Suaza  
            Started by Geovanny Suaza, 02-11-2026, 05:51 PM
            0 responses
            369 views
            1 like
            Last Post Geovanny Suaza  
            Started by Mindset, 02-09-2026, 11:44 AM
            0 responses
            108 views
            0 likes
            Last Post Mindset
            by Mindset
             
            Started by Geovanny Suaza, 02-02-2026, 12:30 PM
            0 responses
            572 views
            1 like
            Last Post Geovanny Suaza  
            Started by RFrosty, 01-28-2026, 06:49 PM
            0 responses
            573 views
            1 like
            Last Post RFrosty
            by RFrosty
             
            Working...
            X