Skip to main content

Exchange Quirks Reference

One page with every exchange-specific gotcha you need before sending your first trade: symbol formats, demo/testnet availability, feature support, leverage caps.

TL;DR
  • Symbol format varies wildly: BTCUSDT (Binance), BTC-USDT-SWAP (OKX), XBTUSDTM (KuCoin Futures), BTC-USD-PERP (Coinbase Futures), XBTUSD (BitMex).
  • Demo Account checkbox works for Binance Spot, Binance Futures USD-M, Bybit (Spot + Futures), and OKX. Binance Coin-M + BitMex use separate testnet identifiers instead.
  • Hedge Mode is supported on Binance Futures (USD-M + Coin-M) via hedgeMode, OKX via positionSide, and Bybit at the account level (set the position mode on Bybit; no payload param — buy/sell open each side). Everywhere else it's n/a.
  • Leverage cap is exchange-defined per pair. TVH applies no hard-coded internal cap; KuCoin reads its leverage limit from the contract metadata at runtime.

Symbol format reference

Use these formats in the TradeCommand pair field. Wrong suffix or wrong separator → the order is rejected with no useful error. See also: TradeCommand gotchas — symbol format.

Exchange identifierSymbol exampleNotes
binanceBTCUSDTSpot. No separator.
binance-futuresBTCUSDTUSD-M perpetuals. Same string as Spot.
binance-futures-coinBTCUSD_PERPCoin-margined. Underscore before PERP. Quarterly contracts use BTCUSD_251226.
bybitBTCUSDTLinear (USDT-margined) perpetuals.
bybit-spotBTCUSDTSame string as Bybit Futures.
okxBTC-USDT (spot) · BTC-USDT-SWAP (perp) · BTC-USDT-251226 (dated future) · BTC-USD-251226-50000-C (option)Dashes. Suffix must match the instrumentType field.
kucoinXBTUSDTMFutures. XBT (not BTC). M suffix = perpetual.
kucoin-spotBTC-USDTDash separator. BTC (not XBT).
coinbase-spotBTC-USDDash separator. Auto-transforms BTCUSDBTC-USD and BTCUSDTBTC-USDC.
coinbaseBTC-USD-PERP (perpetual) · BTC-26DEC26-CDE (expiring)Triple segment. Perpetuals accept -PERP or TradingView's .P (e.g. BTCUSD.P); expiring contracts are strict.
bitmexXBTUSDXBT = BTC (legacy naming). Quarterly: XBTM26.
bitmex-testnetXBTUSDSame format as live.
Coinbase Futures silently rejects wrong symbols

On a Coinbase chart in TradingView, the symbol displays as BTCUSD. For Coinbase Futures perpetuals, send BTC-USD-PERP or TradingView's BTCUSD.P — the adapter resolves the perpetual by base asset. Expiring contracts must be the exact BTC-26DEC26-CDE form. A bare BTCUSD or a wrong suffix returns a 400 from Coinbase with no actionable hint. Coinbase Spot is more forgiving: the adapter auto-transforms BTCUSDBTC-USD and BTCUSDTBTC-USDC.

Demo / testnet support

TVH offers two parallel paths to risk-free trading. The right one depends on the exchange.

ExchangeDemo Account checkboxSeparate testnet identifier
Binance Spot
Binance Futures USD-Mbinance-futures-testnet
Binance Futures Coin-M❌ (no demo path)binance-futures-coin-testnet
Bybit Futuresbybit-testnet
Bybit Spotbybit-spot-testnet
OKX❌ (demo via checkbox covers everything)
KuCoin Futures
KuCoin Spot
Coinbase Spot
Coinbase Futures
BitMexbitmex-testnet

Demo Account checkbox means: keep the same exchange identifier in your TradeCommand payload, tick the box on the API key in TVH, and TVH routes your orders to the exchange's paper-trading endpoint instead of live.

Separate testnet identifier means: you change the exchange field in your payload (e.g. "exchange": "binance-futures-testnet"), create a fresh API key on the exchange's separate testnet domain (e.g. testnet.binancefuture.com), and add it to TVH like a normal live key — without ticking the Demo checkbox.

See also: Account & API Keys — Demo Account.

Feature support matrix

Legend: ✅ supported · ⚠️ supported with caveats · ❌ not supported · n/a doesn't apply

FeatureBinance SpotBinance Fut USD-MBinance Fut Coin-MBybit FutBybit SpotOKXKuCoin FutKuCoin SpotCoinbase SpotCoinbase FutBitMex
Market orders
Limit orders
Multiple TPs
Trailing stop loss⚠️ via reduce-only
Hedge Moden/ahedgeModehedgeMode✅ account-leveln/a✅ via positionSide⚠️n/an/an/a
Sub-accounts (via named apiKey)
DCA / Order-Mesh
Scaled orders
postOnly
reduceOnlyn/an/an/an/a
useFixedSize (quote sizing)
useEntireAccountBalance✅ UTA only
setTpToPosition (limit-entry TP attach, Bybit-only)n/an/an/a✅ Bybit-onlyn/an/an/an/an/an/an/a
targetAssignedToPosition (market-entry TP attach, Bybit-only)n/an/an/a✅ Bybit-onlyn/an/an/an/an/an/an/a
Math expressions (SL/TP)
Limit-order chasing⚠️⚠️

Cross-refs:

unitsType & scaledOrderStyle quick reference

For sizing-mode and scaled-order distribution, every exchange accepts the same six unitsType values and three scaledOrderStyle values:

  • unitsType: absolute · percent · percentBalance · percentPosition · percentWallet · risk
  • scaledOrderStyle: even · bigSmall · smallBig
  • limitPriceType: fixedPrice · bestPrice (scaled orders only)

These are validated by the TVH dispatcher before reaching the exchange adapter, so support is identical everywhere. The semantics of e.g. percentBalance differ per exchange (futures wallet vs. spot wallet), but the string value is the same.

See Sizing options for full semantics.

instrumentType reference (OKX only)

OKX has one exchange identifier (okx) but several markets. Use the instrumentType field to switch:

instrumentTypeMarketSymbol example
spotSpot pairsBTC-USDT
marginCross/isolated margin spotBTC-USDT
swapPerpetual swaps (default if omitted)BTC-USDT-SWAP
futuresExpiring futuresBTC-USDT-251226
optionOptions (limited TVH support)BTC-USD-251226-50000-C

The string is singular — use option, not options. Symbol suffix must match the type.

Leverage caps per exchange

The cap is the lower of (exchange max, TVH-internal cap). Most exchanges enforce per-pair tiers; the table shows the headline max.

ExchangeCapNotes
Binance Futures USD-M125×Per-pair tier; lower for new/illiquid pairs
Binance Futures Coin-M125×Same tiering as USD-M
Bybit Futures (UTA)100×Cumulative across the Unified Account
OKX Swap125×Varies for dated futures
KuCoin Futuresexchange-setRead from KuCoin's contract metadata at runtime. No hard-coded TVH-internal cap.
Coinbase Futuresexchange-setPer-product tier
BitMex100×XBT pairs; lower on alts

Spot trading has no leverage unless you explicitly opt into margin mode (Binance Margin, OKX instrumentType: "margin").

Keeping this page accurate

These matrices reflect live TVH behaviour across all 16 exchange identifiers: symbol formats, demo support, feature flags, and leverage caps.

If this page ever drifts from what you see in production (a new symbol format, a new identifier), please file an issue. See the LLM schema for an auto-generated source of truth.