It's a question that pops up every quarter: "I'm looking for the current futures contract, but I can't find it. What happened?" If you use both NinjaTrader and Tradovate, especially with trade copiers like Replikanto, understanding how each platform handles the quarterly futures rollover is crucial — a mismatch can lead to missed trades, confusion, and the frustrating experience of watching your instruments disappear.
The Core of the Issue: Two Different Rollover Philosophies
The main reason for confusion is that NinjaTrader and Tradovate determine the rollover date differently.
- NinjaTrader is date-driven: it follows a predetermined schedule, usually based on the exchange's official rollover dates. When the time comes, NinjaTrader presents a pop-up window prompting you to roll your instrument lists over to the next contract month (e.g., from the September contract to the December contract).
- Tradovate is volume-driven: it uses a more dynamic, market-based approach, automatically switching its continuous contract (e.g., NQ1!) to the new month only once trading volume on the new contract exceeds volume on the expiring one. This keeps you trading the most active and liquid instrument.
This difference means NinjaTrader will almost always prompt you to roll over a few days before Tradovate does.
Common Symptom: "Replikanto Is Not Copying the Trades"
Watch for these signs that a rollover mismatch is the cause:
- An instrument you were trading yesterday has disappeared from a list or chart.
- Replikanto is receiving the leader's orders, but they aren't reaching your follower accounts.
- The contract shown in the Replikanto window doesn't match the contract shown in the NinjaTrader Orders tab.
Here's a common scenario that causes this:
- NinjaTrader displays its rollover notification. You accept it.
- Your NinjaTrader charts and instrument lists are now updated to the new contract, for example, MNQ 12-25.
- However, the majority of the market volume is still on the old contract, MNQ 09-25.
- Because Tradovate is volume-driven, it's still operating on MNQ 09-25 even though it displays the continuous symbol MNQ1!.
- When Replikanto tries to match the trade, it sees you trading MNQ 12-25 on NinjaTrader, but receives orders on the leader account for the old contract because Tradovate hasn't rolled yet.
The result: trades stop copying.
The Golden Rule for a Seamless Rollover
To keep both platforms in sync and avoid copying interruptions, follow this simple but critical rule: always let Tradovate's volume-based rollover lead the way.
Here is the step-by-step process:
- Deny the NinjaTrader prompt: when NinjaTrader shows its rollover notification, don't accept it immediately — click "No" or postpone the action.
- Wait for Tradovate: keep trading the current contract. Watch for a rollover notification from Tradovate, or simply compare volume by opening charts for both the expiring and the new contract. For the CME equity index futures — ES, NQ, YM, RTY and their Micro equivalents MES, MNQ, M2K, MYM — that volume shift typically happens around the Monday of the week containing the third Friday of March, June, September, or December, so expect Tradovate to lag NinjaTrader's prompt by a few days, not weeks.
- Confirm the rollover: once volume has decisively shifted and Tradovate has rolled over, it's time to update NinjaTrader.
- Roll over in NinjaTrader: go to Tools > Database Management in the Control Center. In the "Rollover" grid, check the Update column next to your futures instruments and select Rollover. This updates your instrument lists and every open NinjaTrader window, including Replikanto.
- Save your workspace: go to Workspaces > Save in the Control Center. This step is easy to skip, but without it NinjaTrader can reload the old, already-expired contract the next time it starts — bringing the rollover notification right back.
By waiting for the volume to shift and saving the change, you ensure both platforms are looking at the same active contract, so your trade copier and other tools keep working correctly.
Running NinjaScript Automated Strategies
The batch rollover in Database Management updates instrument lists and open windows, but it does not roll over the instrument assigned inside a NinjaScript strategy — that needs a separate, manual update after every rollover.
A Note on Instrument Naming
Remember that NinjaTrader requires you to select the specific contract expiration (e.g., NQ 12-25), while Tradovate often uses a continuous, or front-month, symbol (like NQ1!) that rolls automatically. This is a fundamental difference to keep in mind when setting up your instruments on each platform.
Starting with NinjaTrader 8.1, the platform offers three symbology display styles for futures contracts. You can change this setting through the NinjaTrader Client Dashboard under Settings > Preferences. The three formats are:
- Month-name (default): uses a three-letter month abbreviation, for example MYM JUN 26.
- Numeric: uses month number and year, for example MYM 06-26.
- Exchange (letter): uses the standard exchange single-letter month code and year digit, for example MYMM6.
After changing this setting, restart NinjaTrader for it to take effect.
Replikanto does not define its own instrument symbology — it inherits whatever format NinjaTrader is configured to display, so the instrument names you see in the Replikanto window always match your NinjaTrader symbology setting. After a rollover, make sure the instrument shown in Replikanto matches exactly what appears in the NinjaTrader Orders tab.
Related Articles
- Trades are not copying to followers? Copier not working.
- Does Replikanto support automatic instrument rollover?
- How does NinjaTrader notify when to roll futures contracts?
Following this process turns the quarterly rollover from a source of frustration into a smooth, predictable event.
Comments
0 comments
Article is closed for comments.