Tradovate
Tradovate is the one where this works cleanly.
Copy trading depends entirely on whether the platform will tell you about a fill and let you address each account separately. Tradovate does both, which is why it is the rail most of this runs on — and why a login holding four funded accounts behaves as four accounts rather than one.
Why the platform decides this, not the copier
Two properties make a platform good or useless for copying, and neither is a feature anyone markets.
Does it push execution events? A platform that reports each fill as it happens, with an id attached, lets a copier react to what actually occurred. One that only exposes a position summary forces the copier to poll and infer — and two fills inside one poll interval look like one fill, while a trade that reverses inside the interval looks like nothing happened.
Is each sub-account addressable? A prop-firm login commonly holds several funded accounts. If the platform treats the login as the unit, per-account sizing is impossible — every account gets the same order at the same size, which is how a small evaluation gets breached by a trade that was correct for a larger account.
Tradovate does both. That is the entire reason it is the rail most of this is built on.
- OAuthYou authorise Quanify against your Tradovate login. No password stored, nothing typed into a third-party bridge.
- Sub-accountsEvery funded account under that login appears individually and can be sized and capped on its own.
- Execution eventTradovate reports the fill. That event — not a poll, not a screen read — is what starts the copy.
- Fan-outEach account applies its own multiplier, then places its own order.
The session is held server-side, so copies continue with your machine off.
One login, several accounts, several sizes
This is the case almost everyone is actually in: a personal Tradovate account alongside two or three funded ones from a prop firm that routes through Tradovate.
Each has a different balance and a different distance to its own drawdown floor, so the correct contract count for the same trade is different on each. Working that out live, three times, while the market moves is where the mistakes come from — and the account you forget is generally the one already holding a position.
So each follower carries its own whole-number multiplier, applied server-side before the order leaves. One fill on the leader becomes four contracts on one account, eight on another, two on a third.
A muted account sits the trade out. The rest of the cascade never notices.
What happens when it goes wrong
Copying fails in a small number of specific ways. Each one has a defined answer here rather than a retry loop.
- Tradovate resends a fill
- De-duplicated for 60 seconds per account, keyed on the execution rather than the order — so a resend lands once and a partial is never mistaken for a duplicate.
- An order fills in pieces
- Every partial mirrors as a partial on its own execution id. A follower is never left holding a size the leader does not have.
- The session drops
- Reconnected server-side, and dead connections are evicted rather than reused — a socket that is open and receiving nothing is the failure that looks like silence.
- The engine restarts
- Fills stamped older than 30 seconds are refused rather than re-mirrored. A restart cannot replay your morning.
- One account needs to stop
- Mute it. It stops taking fills while staying linked and configured — unlinking to pause an account is how routing gets lost.
Nothing installed, nothing to keep awake
Quanify holds the Tradovate session itself. There is no bridge process, no desktop application and no VPS — the copies keep landing with your laptop shut, and there is no local program whose crash you find out about from a position you did not expect.
Nothing arms itself either. Every follower you add lands disabled, and a trader does not report itself armed until the engine has confirmed the routing. Configuring a group and turning it on are two separate decisions, deliberately.
If any of the accounts are funded, whether you may mirror across them is your firm's contract rather than a technical question — copy trading and prop firms covers which clauses decide it.
Common questions
Does Tradovate have copy trading?
Not as a built-in feature. Tradovate provides the API and the execution events; the copying is done by a platform connected to it. Quanify authorises over OAuth and places a separate sized order on each of your other accounts when the leader fills.
Can I copy between Tradovate sub-accounts on the same login?
Yes, and it is the common case. Every funded sub-account under a login is addressable individually, so one can lead and its siblings follow at their own sizes.
Why is Tradovate good for copy trading?
Two reasons that are not marketed as features: it pushes execution events as fills happen, so a copier reacts to what occurred rather than polling and inferring, and it exposes each sub-account separately, which is what makes per-account sizing possible at all.
Do I need a VPS to copy trade on Tradovate?
Not with Quanify — the broker session is held server-side, so nothing runs on your machine and copies continue with it switched off. Desktop copiers do need a machine that stays awake.
How fast does a copy reach the other accounts?
Roughly 50 to 200 milliseconds end to end, and nearly all of that is Tradovate's round trip in each direction — the report that a fill happened, then the order placed in response. Quanify's own contribution is microseconds.
Can I copy between Tradovate and a different platform?
Yes, as long as both are accounts you own and both platforms are supported. The leader and its followers do not have to sit on the same connection or the same broker.
More on trade copiers by platform
Start on a simulated account.
Connect a sim or evaluation account and run the whole product against it before you point anything at live money. Nothing about the setup changes when you do.