- Backtest with your own tools and historical data. Plurex does not backtest; it provides the market data, including candles, that you can feed into your own research.
- Forward test on paper. Run the strategy unchanged against live order books, with fees and funding, until you trust its behaviour.
- Go live. Connect an exchange account on the paper host’s model host and point the strategy at it.
What stays the same
Make the switch
1
Find the model host
Read the paper host’s
modelHostId from List hosts. That is the real host
your paper account has been simulating.2
Connect an exchange account on it
Create an API key at the exchange and connect it with Connect an account
using
modelHostId as hostId. See Connect an exchange account.3
Re-read the live host's capabilities and markets
Read the model host’s
capabilities from List hosts and its market summaries from
List host markets. They are not identical to the paper host’s; the
checklist below says where they differ.4
Swap the account ID
Point your strategy at the new account ID. Start small, and compare live fills with what paper produced.
Differences to plan for
Paper simulates the market faithfully where it can and leaves out what it cannot. Each difference below is either visible in the hosts’ capabilities and market summaries, or listed here so you can plan for it.Leverage and liquidation
Paper trades perpetuals at 1× with no leverage setting, and never liquidates: losses take a balance negative instead. Live perpetual markets usually have a leverage setting (settings.leverage on the market summary), and the exchange’s
current leverage applies to your orders. Before your first live order, read it with
Get leverage and set it with
Set leverage where the market allows. Live positions can be liquidated,
so size them and manage margin with that in mind.
Capabilities paper offers that the live host may not
The paper host provides some operations and options whatever its model host supports. Check the live host’s capabilities before relying on:- the
ByClientOrderIdvariants of order lookups and cancels, batch lookups, and theBeforeandAftervariants of List closed orders; - Cancel all orders;
- IOC and FOK on limit orders, and FOK on market orders (
supportedTimeInForcein each order type’s options); - fill details on the order stream (
accountOrders.includesFillDetails); without them, read executions with List fills; - the scope of a position mode change (
settings.positionMode.setEffectScope); live, a change may apply to more than one market or the whole account.
Capabilities the live host may offer that paper does not
- Notional-sized market orders on perpetuals. Paper perpetual market orders are sized in contracts only.
- Trigger reference prices paper cannot evaluate from live data. Compare the
trigger.referencePriceoptions of each market’s trigger order types on both hosts. - Dated futures and option markets, which paper does not list.
Fees and funding
Live fees follow your real exchange account: its tier, volume, promotions, fee-token discounts and the exchange’s own rules for which asset a fee is charged in. Paper charges the tier you selected, and charges spot fees in the quote asset. Live funding settles at the exchange’s own price; paper estimates it from the mark price at the funding time. See Fees and funding.Execution realism
Paper has no latency and no market impact beyond the visible book, and estimates queue position from visible size. Expect live fills, especially passive fills and large sweeps, to differ. A live sweep across several price levels may report several fills where paper reports one at the average price.Funds held by trigger orders
Paper reserves funds for a trigger order from the moment you place it. Some exchanges reserve nothing until the trigger fires, so live, a waiting trigger may not reduce your available balance, and an order paper refused for lack of funds may be accepted.Reduce-only orders
Paper rejects a reduce-only order that is larger than the position left to close. Some exchanges trim it to the position size instead. Size reduce-only orders from the current position on both.Insufficient collateral on perpetuals
Paper rejects a perpetual order that its collateral cannot cover with422 Rejected. A live host may report the same
situation as 422 InsufficientFunds. Handle both codes as “not enough funds or collateral”.
Transactions
Paper postsDeposit, TradingFee, Settlement and FundingPayment transactions. A live host reports its own set,
which may include types such as Withdrawal, Transfer, BorrowInterest or LiquidationFee, and may not report
some of paper’s. Read accountTransactions.supportedTransactionTypes, and handle types you do not recognise.
Transaction history and stream
A paper host offers transaction history and the transaction stream when its model host does, so this rarely changes when you switch. Still checkaccountTransactions.listTransactions and
accountTransactions.subscribeToAccountTransactions on the live host, and fall back to polling List transactions where
there is no stream.
Write strategies that adapt
The safest way to make the switch seamless is to never hard-code a host. Read the host’s capabilities and the market’s order rules when the strategy starts, and choose behaviour from them. The same code then runs on paper and live.load_profile for the paper host while you forward test and for the model host when you go live. If a decision
your strategy depends on comes out differently, you find out at start-up rather than from a rejected order.