How to Mix Tradovate and ProjectX Followers in One Copy Group
Design a mixed-platform futures copy group with explicit account eligibility, contract mapping, follower sizing, rate-limit planning, and broker-by-broker reconciliation.
Can Tradovate and ProjectX accounts be followers in one group?
They can be combined when the current HexTrade broker and copy-trading documentation lists the relevant connectors and every account, contract, and permission passes preflight.
This is a HexTrade product-scope statement, not a claim that Tradovate or ProjectX natively copies to the other platform. The hosted group is the coordinating layer. It receives a supported leader-fill event, calculates a target for each eligible follower, and sends a platform-specific order request through the appropriate connector.
Mixed-platform does not mean interchangeable. Tradovate and ProjectX expose different authentication, account identifiers, contract identifiers, error responses, and rate-limit rules. The copier can normalize common concepts such as side, quantity, and status for the dashboard, but the original broker response must remain available for diagnosis.
Begin with one follower on each platform and minimum practical exposure. Prove symbol mapping, order direction, quantity, entry, partial/complete outcomes, and exit before adding accounts. A leader fill can result in a Tradovate fill and a ProjectX rejection—or the reverse—so the group is healthy only when individual results are visible and drift is reconciled.
Connector support is dated
Confirm HexTrade's current supported-broker and copy-trading docs, then confirm account permissions with each platform. Do not infer support from a platform name alone.
Create a canonical fill intent before translation
Represent the leader event in platform-neutral fields, then let each connector translate that intent without changing its economic meaning.
A useful canonical record contains a unique event identity, leader account, root product, exact contract month, buy or sell side, newly filled quantity, fill timestamp, and the group's versioned configuration. This record is an audit fact. It should not be rewritten when one connector uses a different symbol or status vocabulary.
For each follower, calculate a separate target from that canonical event. Add follower account ID, multiplier, fractional carry, rounded quantity, caps, and eligibility result. Only after those decisions are recorded should the platform adapter build the order request expected by Tradovate or ProjectX.
This separation makes errors easier to locate. If both connectors receive the wrong side, inspect canonical intent. If only ProjectX receives an invalid contract ID, inspect its mapping. If one account is skipped due to a cap, inspect follower policy rather than the adapter. A common dashboard can normalize states while retaining the connector request and original response.
| Layer | Examples | Reason |
|---|---|---|
| Canonical fill | Event ID, contract month, side, filled quantity | Preserves leader truth |
| Follower policy | Multiplier, cap, pause, target quantity | Explains routing decisions |
| Tradovate request | Tradovate account and accepted symbol format | Meets connector contract |
| ProjectX request | ProjectX account and contract identifier | Meets connector contract |
| Outcome | Normalized state plus raw response | Supports operations and diagnosis |
Map contracts explicitly for each platform
Use an exact, reviewed mapping from the leader contract to each connector's currently tradable contract identifier; never guess from a root symbol.
Futures symbols encode product and expiry, and platforms can expose them differently. A leader event for a specific MES expiry must map to that intended expiry in both follower environments. Sending a root, stale alias, or next-month contract by mistake can create a position that appears related but has different liquidity and price behavior.
Maintain a mapping record with canonical product, expiry, exchange where relevant, Tradovate symbol, ProjectX contract identifier, tick size, tick value, and review date. Validate it against current platform data around rollover. If either side cannot resolve the exact contract, skip that follower and alert; do not fall back to a nearby symbol.
Contract conversion is a separate decision. If a leader uses ES and a follower intentionally uses MES, encode the conversion and risk cap explicitly. Test quantities that produce fractions and apply rounding once at the final follower boundary. The economic ratio must come from current contract specifications, not a name-based assumption.
- 1
Resolve the leader contract
Capture root and exact expiry from the broker-reported fill event.
- 2
Look up each connector mapping
Require a current reviewed Tradovate symbol and ProjectX contract identifier.
- 3
Validate economics
Check tick size, tick value, and any intentional standard-to-micro conversion.
- 4
Fail closed
Skip the affected follower on an unknown or stale mapping and surface a clear reason.
Size each follower independently
Use account-specific multipliers and hard caps after contract conversion so mixed platforms do not imply equal risk.
A ProjectX account and a Tradovate account can have different balances, trailing limits, current positions, and permitted maximums even when they trade the same contract. Calculate planned loss from stop distance, tick value, quantity, fees, and a slippage allowance for each follower. Use the lower of the sizing result and the account's current cap.
Preserve the filled leader increment as the sizing input. A submitted five-contract leader order that has filled two should not automatically generate five-contract follower requests. For partial fills and sub-one multipliers, keep a cumulative target or fractional remainder so repeated small increments behave predictably.
Display final order quantity by account before activation. Also display aggregate group exposure, because ten individually acceptable follower orders can create an unacceptable correlated total. A follower that rounds to zero should be marked as intentionally skipped rather than silently absent.
- Set multiplier, maximum quantity, and permitted symbols per follower.
- Perform contract conversion before final integer rounding.
- Include existing broker position when enforcing maximum exposure.
- Recalculate after account-stage or drawdown changes.
- Use zero and pause as valid risk decisions.
Normalize status without erasing broker detail
Present a common lifecycle for operators, but retain each platform's IDs, messages, and quantities as the evidence behind it.
A practical normalized lifecycle includes queued, submitting, acknowledged, working, partially filled, filled, canceled, rejected, unknown, and skipped. The adapter maps a broker event into one of those states and stores the raw platform status. Do not label a request “filled” merely because the submission endpoint returned successfully.
Unknown deserves special treatment. A timeout or dropped response may occur after the broker accepted an order. The recovery path is to query by correlation details, inspect working orders and positions, and then decide whether a new request is needed. Treating unknown as rejected invites duplicates.
Cross-platform health should show mixed outcomes. If Tradovate followers are current and one ProjectX connection is stale, the group is degraded rather than wholly healthy or wholly failed. The operator should be able to pause only the affected follower while preserving visibility into all existing positions.
| State | Meaning | Next question |
|---|---|---|
| Acknowledged | Request accepted for processing | Has any quantity filled? |
| Partially filled | Some requested quantity executed | Is the balance still working? |
| Rejected | Platform declined the request | What rule or input caused it? |
| Unknown | Definitive response is missing | What do broker orders and positions show? |
| Skipped | Policy intentionally sent no request | Is the skip reason expected? |
Budget separately for connector limits and outages
Model the largest fan-out and recovery burst for Tradovate and ProjectX independently, then degrade the affected path without blind retries.
Each platform publishes or enforces its own request constraints. A group event can create order submissions plus status and reconciliation queries. Partial fills can increase event count, and a reconnect can create a state-refresh burst. Build separate budgets so one busy connector does not consume the assumptions of the other.
Use bounded queues, backoff for explicit throttling, and event deduplication. Before executing a delayed copy action, recalculate whether it still moves the follower toward the current target. A stale entry that arrives after the leader has exited should be discarded or escalated, not submitted because it finally reached the front of a queue.
Design failure isolation. If ProjectX authentication expires, mark those followers unavailable and continue monitoring their last known positions while the Tradovate path remains observable. Whether new copying should continue for healthy followers is a documented group policy, not an improvised decision during an outage.
Latency is variable
Do not promise simultaneous cross-platform execution. Connector health, request limits, network transit, market liquidity, and account checks can all change timing and outcomes.
Roll out the mixed group in controlled stages
Prove one account per connector, then add followers in small batches with an explicit stop and rollback gate.
Start in the safest supported environment and use minimum practical exposure. Confirm account IDs and environments, then exercise a complete entry and exit. Watch the leader fill separately from both follower submissions and outcomes. Compare final positions directly at Tradovate and ProjectX.
Next test a partial leader fill, a follower intentionally skipped by a safe local cap, a reconnect, and a mapping failure that should fail closed. You are testing observability as much as execution. Every case needs a clear timeline and account-level result.
Add followers only after no unexplained drift remains. Recalculate the request burst and aggregate loss budget at each stage. Keep a runbook for pausing one follower, one connector segment, or the entire group; querying broker truth; resolving unknown outcomes; and verifying final positions before resuming.
- 1
Stage one
Use one leader and one minimum-size follower on the first connector.
- 2
Stage two
Add one follower on the second connector and verify exact contract mapping.
- 3
Stage three
Exercise skips, partial fills, reconnects, and scoped pause controls.
- 4
Stage four
Add accounts in small batches while reviewing capacity and aggregate exposure.
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.Copy trading setup — HexTrade Docs, accessed Aug 30, 2026
- 2.Supported brokers — HexTrade Docs, accessed Aug 30, 2026
- 3.Place order endpoint — Tradovate, accessed Aug 30, 2026
- 4.Tradovate API rate limits — Tradovate, accessed Aug 30, 2026
- 5.ProjectX order placement — ProjectX, accessed Aug 30, 2026
- 6.ProjectX API rate limits — ProjectX, accessed Aug 30, 2026
Frequently asked questions
Does Tradovate connect directly to ProjectX for copy trading?
This article does not make that claim. The mixed workflow described here uses HexTrade as the documented hosted coordinating layer, with separate supported connectors. Confirm current HexTrade connector scope and each platform account's permissions.
Can both platforms use the same futures symbol text?
Do not assume so. Resolve the exact contract and expiry using each connector's accepted identifier, and maintain an explicit mapping. If a mapping is unknown or stale, skip the follower rather than falling back to a root or nearby contract.
Will Tradovate and ProjectX followers fill at the same time and price?
Not reliably and never as a guarantee. Each order travels through a different account and connector lifecycle, and liquidity, platform processing, restrictions, and network timing can differ. Reconcile each actual fill and position.
What happens if only one connector is down?
Mark and pause the affected followers, preserve their last known exposure, and follow the group's documented degradation policy. Keep healthy paths observable, but do not infer failed-account positions from the leader or from followers on the other platform.
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.