Partial Fills, Rejects, and Follower Drift in Copy Trading
Diagnose copy-trading mismatches by separating fill increments, final rejects, unknown outcomes, working quantity, target position, and actual broker exposure.
Why do copy-trading followers drift from the leader?
Followers drift because they have independent orders, account rules, timing, liquidity, and connection state, while sizing and rounding can intentionally create different target quantities.
A leader fill is the input to a follower decision, not proof that a follower executed. The copier must map the contract, apply the follower's multiplier and caps, submit a new order request, and observe that account's broker events. At any stage, a safe policy can skip the account or the platform can acknowledge, partially fill, fill, cancel, reject, or leave the outcome temporarily unknown.
Not every difference is an incident. A half-size follower should intentionally hold fewer contracts, and a working partial fill can create temporary quantity drift. An execution at another price creates price drift even if quantity matches. The dangerous case is an unexplained or persistent difference whose order state and actual exposure are not known.
Use a stateful reconciliation model: cumulative leader fills define a follower target under the current sizing policy; broker-reported follower position defines actual exposure; outstanding orders explain quantity that may still change. The response depends on all three, not on a generic “copy failed” label.
Different is not always wrong
Compare each follower with its own configured target, not blindly with the leader's raw quantity. Then classify any remaining difference by magnitude, age, and order state.
Model partial fills as cumulative execution
Accumulate broker-reported filled quantity by stable order and fill identity, and update follower targets only from newly observed leader increments.
A leader order for five contracts can fill two, then one, then two. If the copier processes the cumulative total as a new increment each time, it can over-copy. Store stable order and execution identifiers and calculate the delta that has not previously been applied. Deduplicate repeated events after reconnect.
Followers can also fill in pieces. Keep requested quantity, cumulative filled quantity, remaining working quantity, canceled quantity, and final status separately. “Partially filled” is not a final failure while the remaining order is legitimately working, but it needs an age and a policy for what happens when the leader target changes.
Fractional multipliers add another cumulative layer. With a 0.50 multiplier, two separate one-contract leader fills may create one follower contract when fractional carry reaches a whole unit. Document whether the product uses cumulative target or another supported rule. Final follower quantity should be predictable from the recorded events and configuration.
| Event | Leader cumulative | New copyable delta | 0.50× raw target |
|---|---|---|---|
| First fill reports 2 | 2 | 2 | 1.0 |
| Duplicate event reports 2 | 2 | 0 | 1.0 |
| Next fill reports 3 | 3 | 1 | 1.5 |
| Final fill reports 5 | 5 | 2 | 2.5 |
Classify rejects by action, not just message text
Normalize rejects into categories such as authentication, permission, contract, quantity, account risk, duplicate, and platform capacity while preserving the raw broker response.
A reject is useful evidence: the platform reports that the requested order was not accepted under a particular condition. It still does not prove the account has no position from earlier activity, so refresh current position before choosing recovery. Keep the platform's exact code and message alongside a stable internal category.
Authentication and permission failures usually require pausing the account until credentials or access are corrected. Invalid contract and mapping errors should fail closed and trigger mapping review. Quantity or account-risk rejects require recalculation, not repeated submission of the same request. Explicit throttling calls for bounded backoff and capacity handling.
Avoid text-only retry rules. Provider messages can change, and some errors are not safe to retry. Maintain an allowlist of transient categories, cap attempts, attach them to one correlation chain, and verify that the target is still current before any delayed submission.
- Authentication: pause and restore a verified session.
- Permission: verify account, product, environment, and account-stage eligibility.
- Contract: correct the exact expiry or connector identifier.
- Quantity/risk: recompute within follower caps; never loop the rejected amount.
- Rate limit: back off within a bounded queue and discard obsolete work.
- Unknown response: query broker truth before deciding whether to retry.
Treat timeouts as unknown outcomes
When acknowledgement is missing, query orders, fills, and positions before classifying the request or sending another one.
A timeout only proves that a definitive response did not reach the caller within the expected window. The broker may have rejected the request, accepted it as working, partially filled it, or completely filled it. Labeling every timeout as failed is operationally convenient but dangerous.
Use a supported client correlation identifier where available and retain account, symbol, side, quantity, and submission window. Query open and recent orders, fills, and the current position. If the result is still ambiguous, pause the follower and escalate rather than guessing. Any late event must still be matched to the original request.
Do not let a generic retry policy run while reconciliation is pending. If the leader exits during the uncertainty window, the current follower target may no longer be the original entry. Resolve or recalculate against the latest target before creating a correction.
- 1
Freeze new ambiguity
Pause the follower or relevant scope while the uncertain request is investigated.
- 2
Search by correlation
Query account orders and fills using supported IDs and the narrow submission window.
- 3
Refresh exposure
Retrieve current broker position and any working quantity with observation times.
- 4
Recalculate
Compare current actual exposure with the latest target before choosing another order.
Measure target, quantity, and price drift separately
Use signed target position minus actual position for quantity drift, and report execution-price differences as a separate metric.
The follower target should reflect cumulative leader fills, contract conversion, multiplier, rounding, and caps. The actual position comes from the follower broker. If target is long two and actual is long one, quantity drift is one contract. If both are long two but average prices differ, quantity is aligned while price drift remains.
Attach age and state. One contract of drift with a correlated order working for a brief period is not the same as one contract after a final reject. Include the remaining working quantity so an operator does not submit a correction on top of an order that can still fill.
Handle reversals with signed positions. Moving from long two to short one is a three-contract target change, not a one-contract sell. Existing manual positions or another strategy can invalidate a simple leader-derived target, so detect and escalate unexplained account activity instead of overwriting it automatically.
| Target | Actual | Working | Interpretation |
|---|---|---|---|
| +2 | +1 | Buy 1 | Temporary quantity drift may be covered |
| +2 | +1 | None after reject | Persistent one-contract underfill |
| 0 | +1 | Sell 1 | Exit is working; monitor outcome |
| -1 | +2 | None | Three-contract reversal mismatch |
| +2 | +2 | None | Quantity aligned; prices may still differ |
Reconcile with one current, bounded decision
Contain the account, establish broker truth, calculate the current difference once, and track any corrective order as a new independent lifecycle.
Pause new copying for the affected follower when further leader fills could increase uncertainty. Capture the full event chain and refresh account data. Canceling a working order, if appropriate and supported, also requires confirmation; a cancel request can race with a fill.
Once actual exposure and outstanding orders are known, choose whether to wait, cancel, correct toward target, flatten, or leave the account unchanged. The right choice depends on current market and risk, not on recreating history perfectly. Show the exact quantity and side before confirmation.
After a corrective or flatten request, observe its acknowledgement and fills and refresh the final position. Do not clear the incident because the button was clicked. Resume only after target and actual state are explained, credentials and mappings are healthy, and the original cause is addressed.
- 1
Contain
Pause the smallest safe scope while continuing to receive order and position updates.
- 2
Establish truth
Reconcile original, working, canceled, filled, and current position evidence.
- 3
Choose current intent
Wait, cancel, correct, flatten, or leave unchanged based on present exposure.
- 4
Verify independently
Track the recovery order and confirm final broker position before closing the incident.
Reduce drift with preflight, limits, and drills
Prevent avoidable mismatches by validating contracts and permissions, deduplicating events, bounding queues, and practicing recovery at small size.
Preflight every account's immutable ID, environment, exact contract, order permissions, multiplier, cap, and current connection state. Review mappings around futures rollover. Keep leader-fill and follower-request identifiers durable across reconnects so repeated events do not create repeated exposure.
Budget for platform rate limits and the largest expected partial-fill burst. Alert on queue age, not only queue depth, because a small stale queue can be more dangerous than a larger current one. Before submitting delayed work, compare it with the latest follower target.
Run controlled scenarios for duplicate events, policy skips, partial follower fills, explicit rejects, timeouts, reconnects, and exits from a drifted state. Use minimum practical exposure or approved simulation. Measure time to detect, contain, establish truth, and verify recovery. The goal is not zero variation; it is bounded, visible, recoverable variation.
No copier can guarantee identical fills
Order timing, account checks, market liquidity, and platform behavior remain independent. Strong controls prevent avoidable errors and expose unavoidable differences quickly.
Sources and methodology
HexTrade Research uses official product, exchange, regulator, and vendor documentation. Policies and platform behavior can change; follow the linked source and verify current terms before trading.
- 1.Place order endpoint — Tradovate, accessed Aug 30, 2026
- 2.Tradovate API rate limits — Tradovate, accessed Aug 30, 2026
- 3.ProjectX order placement — ProjectX, accessed Aug 30, 2026
- 4.ProjectX API rate limits — ProjectX, accessed Aug 30, 2026
- 5.Copy trading setup — HexTrade Docs, accessed Aug 30, 2026
- 6.Position and risk management — CME Group, accessed Aug 30, 2026
Frequently asked questions
Is a partial follower fill automatically a failure?
No. It is an intermediate execution state while remaining quantity may still be working. Track cumulative filled and working quantities, age the state, and compare actual exposure with the current target before deciding whether intervention is needed.
Should a rejected follower order be retried immediately?
Usually not without classification. Read the broker reason, refresh orders and position, correct authentication, permission, contract, quantity, or capacity issues, and confirm the target remains current. Repeating the same invalid request can worsen throttling or risk.
What is the difference between quantity drift and slippage?
Quantity drift is a difference between intended and actual contract position. Slippage or price drift is a difference in execution price. A follower can have matching quantity and a different price; adding contracts does not repair that price difference.
Can a timeout be treated as a reject?
No. A timeout is an unknown outcome because the broker may have accepted or filled the request without returning a timely response. Query correlated orders, fills, working quantity, and position before retrying.
Next step
Put the research into a controlled workflow
Start small, verify the broker and account rules, and keep risk controls between every signal and live order.
Explore futures copy tradingContinue reading
Educational content only. Futures are leveraged products and can produce losses greater than the amount you expected to risk. This article is not financial, legal, or prop-firm compliance advice.