I'm having real problems with the behaviour of OnMarketDepth() when using market replay. Sometimes the MarketDepth event will fire correctly when I started to replay a session and build the rows of the order book (example below)
OnMarketDepth()
Market Data Time : 09:40:30.84
Market Data Time (ticks) : 633826428300847500
Market Data Type : Ask
Market Data Operation : Insert
Market Data Position : 0
Market Data Price : 1.6108
Market Data Volume : 5
OnMarketDepth()
Market Data Time : 09:40:30.84
Market Data Time (ticks) : 633826428300847500
Market Data Type : Ask
Market Data Operation : Insert
Market Data Position : 1
Market Data Price : 1.6109
Market Data Volume : 1
OnMarketDepth()
Market Data Time : 09:40:30.84
Market Data Time (ticks) : 633826428300847500
Market Data Type : Ask
Market Data Operation : Insert
Market Data Position : 2
Market Data Price : 1.611
Market Data Volume : 41
OnMarketDepth()
Market Data Time : 09:40:30.84
Market Data Time (ticks) : 633826428300847500
Market Data Type : Ask
Market Data Operation : Insert
Market Data Position : 3
Market Data Price : 1.6111
Market Data Volume : 18
OnMarketDepth()
Market Data Time : 09:40:30.84
Market Data Time (ticks) : 633826428300847500
Market Data Type : Ask
Market Data Operation : Insert
Market Data Position : 4
Market Data Price : 1.6112
Market Data Volume : 7
OnMarketDepth()
Market Data Time : 09:40:30.84
Market Data Time (ticks) : 633826428300847500
Market Data Type : Bid
Market Data Operation : Insert
Market Data Position : 0
Market Data Price : 1.6106
Market Data Volume : 2
OnMarketDepth()
Market Data Time : 09:40:30.84
Market Data Time (ticks) : 633826428300847500
Market Data Type : Bid
Market Data Operation : Insert
Market Data Position : 1
Market Data Price : 1.6105
Market Data Volume : 8
OnMarketDepth()
Market Data Time : 09:40:30.84
Market Data Time (ticks) : 633826428300847500
Market Data Type : Bid
Market Data Operation : Insert
Market Data Position : 2
Market Data Price : 1.6104
Market Data Volume : 13
OnMarketDepth()
Market Data Time : 09:40:30.84
Market Data Time (ticks) : 633826428300847500
Market Data Type : Bid
Market Data Operation : Insert
Market Data Position : 3
Market Data Price : 1.6103
Market Data Volume : 29
OnMarketDepth()
Market Data Time : 09:40:30.84
Market Data Time (ticks) : 633826428300847500
Market Data Type : Bid
Market Data Operation : Insert
Market Data Position : 4
Market Data Price : 1.6102
Market Data Volume : 7
However, on many occasions these events are not correctly fired and the order book is not correctly built (example below). You can see from the timestamps that on this occasion the first instance of the MarketDepth event being raised is 24 seconds after the previous example.
OnMarketDepth()
Market Data Time : 09:40:54.834
Market Data Time (ticks) : 633826428548347500
Market Data Type : Bid
Market Data Operation : Update
Market Data Position : 3
Market Data Price : 1.6095
Market Data Volume : 5
OnMarketDepth()
Market Data Time : 09:40:54.834
Market Data Time (ticks) : 633826428548347500
Market Data Type : Bid
Market Data Operation : Update
Market Data Position : 4
Market Data Price : 1.6094
Market Data Volume : 21
OnMarketDepth()
Market Data Time : 09:40:54.834
Market Data Time (ticks) : 633826428548347500
Market Data Type : Bid
Market Data Operation : Update
Market Data Position : 4
Market Data Price : 1.6094
Market Data Volume : 29
Can you please advise as to how I can force a market replay session to always build the order book correctly.
I am running NT v6.5.1000.12 and have the correct versions of the .NET framework.
Thanks.
Comment