Realistic Market Replay fills: NT7 vs. NT8 - help - futures io
futures io futures trading



Realistic Market Replay fills: NT7 vs. NT8 - help


Discussion in NinjaTrader

Updated
      Top Posters
    1. looks_one xplorer with 10 posts (8 thanks)
    2. looks_two Trader146 with 2 posts (0 thanks)
    3. looks_3 iantg with 2 posts (3 thanks)
    4. looks_4 wxsim1 with 1 posts (1 thanks)
    1. trending_up 2,951 views
    2. thumb_up 12 thanks given
    3. group 2 followers
    1. forum 15 posts
    2. attach_file 1 attachments




Welcome to futures io: the largest futures trading community on the planet, with well over 125,000 members
  • Genuine reviews from real traders, not fake reviews from stealth vendors
  • Quality education from leading professional traders
  • We are a friendly, helpful, and positive community
  • We do not tolerate rude behavior, trolling, or vendors advertising in posts
  • We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community.  It's free and simple.

-- Big Mike, Site Administrator

(If you already have an account, login at the top of the page)

 
Search this Thread
 

Realistic Market Replay fills: NT7 vs. NT8 - help

(login for full post details)
  #1 (permalink)
Site Moderator
London UK
 
Experience: Beginner
Platform: CQG
Broker: S5
Trading: Futures
 
xplorer's Avatar
 
Posts: 5,264 since Sep 2015
Thanks: 13,183 given, 12,392 received

During my attempt to transition from NT7 to NT8, I am encountering a few issues. Some of them may or may not be related to my limited understanding of both systems.

I want to establish whether the following problem is due to settings, inexperience or something else:


Last Friday I placed a live trade on CL via limit order and I got filled.


When I replay the trade via NinjaTrader Market Replay and try to get filled I get two different results depending on whether I use NT7 or NT8.


I have attached a video that shows the behavior
  • On the left hand side I have NT7. You can see that my estimated place in the queue gets to 58 before being filled. You can also see that a total of 60 contracts have traded where I had placed my limit (there were 7 before price traded there).
    So on NT7 I would say it is reasonable to assume that with that amount of lots traded and my position in the queue I should have been filled

  • On NT8 however (right hand side) my place in the queue drops to 4 and then to 1. But I don't get filled. I have noticed this behavior with NT8 where basically I stay as first in the queue but I won't get filled, probably unless price traverses through my limit order


I couldn't find a setting for changing this on NT8, and while I appreciate whatever happens on Replay / SIM will always be simulated, my take is that NT7 is considerably more realistic and NT8 is not. I say this because my live trade got filled and so did my one on NT7 Market Replay, so that is mimicking what really happened in the market.


On both NT7 and NT8 the only settings I could find that are related to this are Enforce partial fills and Enforce immediate fills. Both settings are unchecked on both platforms.



Help please, do you know if it's a simple setting that I should change on NT8 to make it behave more realistically and, if so, which setting is that?

Attached Files
Register to download File Type: mp4 markRepNT78.mp4 (1.59 MB, 42 views)
Reply With Quote

Can you help answer these questions
from other members on futures io?
About MC Backtesting Features - Limit Order Fills, Bar Magnifier and IOG
MultiCharts
2nd cross over
MultiCharts
Select custom session template not working
TradeStation
Multicharts Custom instrument
MultiCharts
Does anyone use options levels in trading?
Traders Hideout
 
Best Threads (Most Thanked)
in the last 7 days on futures io
How did you learn to trade?
135 thanks
2020 profit and loss results
68 thanks
NinjaTrader buys TransAct Futures (Infinity Brokers), plans its own FCM
61 thanks
Big Mike in Ecuador
60 thanks
Help improve the FIO community
44 thanks
 
(login for full post details)
  #2 (permalink)
Atlanta, GA/USA
 
Experience: Intermediate
Platform: NinjaTrader
Broker: Ninjatrader/CQG
Trading: ES, NQ, CL, GC
 
Posts: 84 since Jan 2015
Thanks: 244 given, 90 received

I'm sorry I don't have the answer for you, but I do have a question. What are you using that shows your place in the queue?

Thanks

Reply With Quote
 
(login for full post details)
  #3 (permalink)
Site Moderator
London UK
 
Experience: Beginner
Platform: CQG
Broker: S5
Trading: Futures
 
xplorer's Avatar
 
Posts: 5,264 since Sep 2015
Thanks: 13,183 given, 12,392 received



Trader146 View Post
I'm sorry I don't have the answer for you, but I do have a question. What are you using that shows your place in the queue?

Thanks

That's part of Jigsaw which is the DOM interface you see there.

Reply With Quote
 
(login for full post details)
  #4 (permalink)
Atlanta, GA/USA
 
Experience: Intermediate
Platform: NinjaTrader
Broker: Ninjatrader/CQG
Trading: ES, NQ, CL, GC
 
Posts: 84 since Jan 2015
Thanks: 244 given, 90 received


xplorer View Post
That's part of Jigsaw which is the DOM interface you see there.



Thanks. I had no idea.


Sent from my iPhone using futures.io

Reply With Quote
 
(login for full post details)
  #5 (permalink)
Site Moderator
London UK
 
Experience: Beginner
Platform: CQG
Broker: S5
Trading: Futures
 
xplorer's Avatar
 
Posts: 5,264 since Sep 2015
Thanks: 13,183 given, 12,392 received

Refreshing the question.

Reply With Quote
The following user says Thank You to xplorer for this post:
 
(login for full post details)
  #6 (permalink)
Site Moderator
London UK
 
Experience: Beginner
Platform: CQG
Broker: S5
Trading: Futures
 
xplorer's Avatar
 
Posts: 5,264 since Sep 2015
Thanks: 13,183 given, 12,392 received

Refreshing...

Reply With Quote
 
(login for full post details)
  #7 (permalink)
Miami, FL
 
Experience: Advanced
Platform: NT
Trading: ES, CL
 
Posts: 126 since May 2013
Thanks: 274 given, 70 received

You may want to use Market If Touched orders and sacrifice 1 tick to guarantee the fill. Hope that helps

Reply With Quote
The following user says Thank You to wxsim1 for this post:
 
(login for full post details)
  #8 (permalink)
Site Moderator
London UK
 
Experience: Beginner
Platform: CQG
Broker: S5
Trading: Futures
 
xplorer's Avatar
 
Posts: 5,264 since Sep 2015
Thanks: 13,183 given, 12,392 received


wxsim1 View Post
You may want to use Market If Touched orders and sacrifice 1 tick to guarantee the fill. Hope that helps

Hi, thanks.

I really am after trying to understand the difference as to why I got filled in NT7 and not in NT8, and whether there are settings to get one to mimic the other.

I suspect the Market if Touched in this case would not mimic what I'm looking for, but I do appreciate your suggestion.

Reply With Quote
 
(login for full post details)
  #9 (permalink)
Site Moderator
London UK
 
Experience: Beginner
Platform: CQG
Broker: S5
Trading: Futures
 
xplorer's Avatar
 
Posts: 5,264 since Sep 2015
Thanks: 13,183 given, 12,392 received

I relayed this issue to NT support, they were able to reproduce it and the development team is going to look at it.

Reply With Quote
The following 2 users say Thank You to xplorer for this post:
 
(login for full post details)
  #10 (permalink)
hong kong
 
Experience: Beginner
Platform: Ninjatrader
Trading: futures
 
Posts: 35 since Oct 2014
Thanks: 66 given, 24 received


wrong location, please remove

Reply With Quote
 
(login for full post details)
  #11 (permalink)
Site Moderator
London UK
 
Experience: Beginner
Platform: CQG
Broker: S5
Trading: Futures
 
xplorer's Avatar
 
Posts: 5,264 since Sep 2015
Thanks: 13,183 given, 12,392 received

From NT support:


Quoting 
The short answer is that the simulated fill engine in NinjaTrader 8 is more conservative than the simulated fill engine in NinjaTrader 7.

There could be many cases where NinjaTrader 7 would fill but in fact in real life it would not have. In your case you experienced a time where NinjaTrader 7 replay and live agreed on the fill, but there are many other cases where it could fill 'too soon'.

The reason we changed the simulated fill engine in NinjaTrader 8 is to be consistently conservative which in the end should result in more consistent simulated fills


Reply With Quote
The following user says Thank You to xplorer for this post:
 
(login for full post details)
  #12 (permalink)
charlotte nc
 
Experience: Master
Platform: ninjatrader
Broker: NinjaTrader
Trading: Emini (ES, YM, NQ, ect.)
 
Posts: 398 since Jan 2015
Thanks: 76 given, 1,079 received


xplorer View Post
Refreshing...


Hi xplorer,

I think you and I have crossed paths before on similar threads trying to deconstruct and understand the NT simulation engine. I recently started migrating my code base from 7 to 8 to have another point of comparison and I hit some fairly significant differences in testing between 7 and 8.

I have strategies that beat one or the other or both, but there are some strategies that do very well in one and very bad in another. So I am wondering myself where the line is on what is a realistic representation of the market.

Here is a link to my thread with NT support:

https://ninjatrader.com/support/forum/showthread.php?p=524972

I offered up 2 strategies (one in 7 and one 8) and they show significantly different results. If anyone is interested in just testing and providing feedback on what behavior they think is more realistic I would be glad to get the feedback.

It sounds like from your experience, you favored the behavior of 7 more, is this correct?

Thanks for any advice in advance!

Ian

Visit my futures io Trade Journal Reply With Quote
The following user says Thank You to iantg for this post:
 
(login for full post details)
  #13 (permalink)
Site Moderator
London UK
 
Experience: Beginner
Platform: CQG
Broker: S5
Trading: Futures
 
xplorer's Avatar
 
Posts: 5,264 since Sep 2015
Thanks: 13,183 given, 12,392 received


iantg View Post
Hi xplorer,

I think you and I have crossed paths before on similar threads trying to deconstruct and understand the NT simulation engine. I recently started migrating my code base from 7 to 8 to have another point of comparison and I hit some fairly significant differences in testing between 7 and 8.

I have strategies that beat one or the other or both, but there are some strategies that do very well in one and very bad in another. So I am wondering myself where the line is on what is a realistic representation of the market.

Here is a link to my thread with NT support:

https://ninjatrader.com/support/forum/showthread.php?p=524972

I offered up 2 strategies (one in 7 and one 8) and they show significantly different results. If anyone is interested in just testing and providing feedback on what behavior they think is more realistic I would be glad to get the feedback.

It sounds like from your experience, you favored the behavior of 7 more, is this correct?

Thanks for any advice in advance!

Ian

Thanks for the question Ian. I say "thanks" because it reminded me that I wanted to test something out and just now I have had the chance to do it.

In this particular case NT support suggested that NT8 is more 'conservative' when filling orders during Market Replay, which is why I had two different experiences between NT7 and NT8. This was back in February.

During last summer, however, I discovered a feature on NT8 called "tick replay" which, as I understand it, replays the trades in the same order as they occurred live.

I first tried that via Market Replay after a live trade I had placed on CL - since Tick Replay was off, I did not get filled. I tried enabling Tick Replay and replayed the CL session, this time being filled.

After having read your question today I tried again on that old trade from February, this time enabling Tick Replay, and this time too I got filled.


So it appears that this option increases accuracy - that's what NT is saying anyway.

Some overview of Tick Replay functionality is offered here
https://ninjatrader.com/support/helpGuides/nt8/en-us/?tick_replay.htm

Hope it helps.

Reply With Quote
The following user says Thank You to xplorer for this post:
 
(login for full post details)
  #14 (permalink)
Site Moderator
London UK
 
Experience: Beginner
Platform: CQG
Broker: S5
Trading: Futures
 
xplorer's Avatar
 
Posts: 5,264 since Sep 2015
Thanks: 13,183 given, 12,392 received

Just leaving this here as a reminder, for myself mostly


NinjaTrader View Post
- It will replay with accuracy to the DateTime.Tick.
- You can't compare live executed trades to our simulator engine. Orders filled in MR uses our simulation engine which is driven by market data to approximate if an order should be filled. A simulator is exactly that, a simulation.


Reply With Quote
The following user says Thank You to xplorer for this post:
 
(login for full post details)
  #15 (permalink)
charlotte nc
 
Experience: Master
Platform: ninjatrader
Broker: NinjaTrader
Trading: Emini (ES, YM, NQ, ect.)
 
Posts: 398 since Jan 2015
Thanks: 76 given, 1,079 received

Hi xplorer,

You and I were both on this old thread and have both been trying to understand the underlying assumptions and accuracy of the simulation engines for a while now. I have made a little progress in my research since my last post to this thread so I will add a few things that might be helpful to you and others when testing.

1. In NinjaTraader 8 there is a cs file called APQ that has the estimated queue tracking code that NinjaTrader uses. After doing extensive testing, I have found that their fill simulation is more or less the same as their queue tracking. So if you want to peak under the hood and see the code logic, you easily can. But in a nutshell here is how it works... They only improve your position in the queue when the total volume drops below your position. So lets say you are # 500 in the queue and the queue moves up suddenly to 800 and then back down to 500 after some time... How does that delta of 300 (800-500) impact your place in the queue? It has 0 impact. You only improve your position in the queue once the volume drops below 500. Ray confirmed this on an old thread I had with their support staff a while back. It's a fair approach, but a very conservative approach. People that wait in line for a long time will generally get more movement in the queue because you always start off in the back of the line not the front. NT assumes everyone is always at the very front of the line, and unless the volume drops below them, they don't see any improvement.

2. The different in the market replay vs. the Live SIM can be huge for most traders. Virtually everyone has the same experience where the market replay results are significantly better than live SIM. There is a reason for this. Here it is: Market replay assumes 0 latency on order execution. So you move from Initialized > Submitted > Accepted > Working in 0 MS on every trade, every time. All entries, exits and cancels have 0 latency. By contrast Live SIM has a built in 100 to 200 MS of latency (I think it is something like 120) on every execution (entries, exits, cancels). So this alone will put people a few price levels off from where market replay will mark you. Also, (this part is more obvious) the live data feed can lag in real time, but by contrast market replay is just reading the file off your machine and will always be perfectly in sync with 0 lag.

3. This may not be a big one, but I think it needs to be stated. The OnBarUpdate method can front run the level 1 and level 2 feeds, in market replay, Live SIM, and Live Trading. I have a thread on this topic somewhere on their support forum too... But the key thing here is that the SIM engine fills off of the level 1 feed from OnMarketData and not OnBarUpdate. So if you are getting signals from OnBarUpdate, you can actually be front running the SIM engine and seeing into the future a tiny bit. This only applies for HFT types of systems, but you can get false positives due to this front running in some cases depending on how you use your signals. I doubt this would impact any chart traders at all though.

4. There is a strange bug with cancels where you can actually land a cancel after a price level has changed against your position in Simulation (Live SIM and market replay). I attribute this to the front running of the OnBarUpdate vs. the event handler that fills you. (Same as Point 3 above basically)

Overall it's a very good product regarding simulating fills and has more complexity than the other tools on the market. I think the only thing that makes it hard for me personally is the latency in executions... I have to either pick between 0 (Market replay) or (120 MS) live sim. With my particular co-location, in live trading I am in between 0 and 25 MS on every execution... And there is practically no way I can use NT to model for that particular latency scenario. So it's just not accurate at all for my use case as is. I have to take the market replay results and then guess at how bad I will do with real execution latency vs. their 0 latency. I think I put it out there one time asking them to give users an option to address this, but they stated that they are not pursuing features for HF traders at this time.


Anyway... Hope this helps!

Ian



xplorer View Post
Just leaving this here as a reminder, for myself mostly


In the analytical world there is no such thing as art, there is only the science you know and the science you don't know. Characterizing the science you don't know as "art" is a fools game.
Visit my futures io Trade Journal Reply With Quote
The following 2 users say Thank You to iantg for this post:
 
(login for full post details)
  #16 (permalink)
Site Moderator
London UK
 
Experience: Beginner
Platform: CQG
Broker: S5
Trading: Futures
 
xplorer's Avatar
 
Posts: 5,264 since Sep 2015
Thanks: 13,183 given, 12,392 received


iantg View Post
Hi xplorer,

Anyway... Hope this helps!

Ian

Hi Ian, thanks.


It sounds like you and I come to this from different angles, i.e. you, if I'm not mistaken, are looking at it from a HF or quasi-HF point of view, and probably by doing a lot of backtesting.

On the other hand, I am a complete backtesting virgin on NT8. I never backtested once on it. I am not familiar with OnBarUpdate. Basically I use Market Replay much in the same way @GruttePier does, i.e. just playing each day as if it were a normal day and trade off it. In fact I don't even look at NT sim anymore. Whenever I need to be on SIM, I use my CQG SIM which to me seems like an excellent SIM engine.

Having said the above, I still tend to get occasionally annoyed when I go and replay on NT8 a trade that I took live on CQG and I don't get filled in Market Replay when I was filled live (using Tick Replay).

Certainly your tip about the queue position code as well as the latency that NT applies are concepts that help broaden the picture, although it sounds like they won't solve the "perfect emulation" of the live environment I was led to believe "tick replay" was going to provide. I intuitively understand why: after all if I am market replaying, I can in no way affect the market dynamics that were taking place at that time: be it placing 1, 10 or 100 lots in Replay wouldn't change what the market would have really done.


I'm sure at some point I will look more closely at the whole HF thing which I find fascinating on a Order Flow level, and when that time comes I'll probably pick your brain.

Thanks for the post.

Reply With Quote
The following 2 users say Thank You to xplorer for this post:


futures io Trading Community Platforms and Indicators NinjaTrader > Realistic Market Replay fills: NT7 vs. NT8 - help


Last Updated on July 28, 2018


Upcoming Webinars and Events
 

NinjaTrader Indicator Challenge!

Ongoing
 

Are you doing what it takes to trade right? w/FuturesTrader71

Jan 21
 

Journal Challenge!

February
 

Battlestations!

March
     



Copyright © 2021 by futures io, s.a., Av Ricardo J. Alfaro, Century Tower, Panama, +507 833-9432, info@futures.io
All information is for educational use only and is not investment advice.
There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
no new posts