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.
- 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 viapositionSide, and Bybit at the account level (set the position mode on Bybit; no payload param —buy/sellopen 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 identifier | Symbol example | Notes |
|---|---|---|
binance | BTCUSDT | Spot. No separator. |
binance-futures | BTCUSDT | USD-M perpetuals. Same string as Spot. |
binance-futures-coin | BTCUSD_PERP | Coin-margined. Underscore before PERP. Quarterly contracts use BTCUSD_251226. |
bybit | BTCUSDT | Linear (USDT-margined) perpetuals. |
bybit-spot | BTCUSDT | Same string as Bybit Futures. |
okx | BTC-USDT (spot) · BTC-USDT-SWAP (perp) · BTC-USDT-251226 (dated future) · BTC-USD-251226-50000-C (option) | Dashes. Suffix must match the instrumentType field. |
kucoin | XBTUSDTM | Futures. XBT (not BTC). M suffix = perpetual. |
kucoin-spot | BTC-USDT | Dash separator. BTC (not XBT). |
coinbase-spot | BTC-USD | Dash separator. Auto-transforms BTCUSD → BTC-USD and BTCUSDT → BTC-USDC. |
coinbase | BTC-USD-PERP (perpetual) · BTC-26DEC26-CDE (expiring) | Triple segment. Perpetuals accept -PERP or TradingView's .P (e.g. BTCUSD.P); expiring contracts are strict. |
bitmex | XBTUSD | XBT = BTC (legacy naming). Quarterly: XBTM26. |
bitmex-testnet | XBTUSD | Same format as live. |
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 BTCUSD → BTC-USD and BTCUSDT → BTC-USDC.
Demo / testnet support
TVH offers two parallel paths to risk-free trading. The right one depends on the exchange.
| Exchange | Demo Account checkbox | Separate testnet identifier |
|---|---|---|
| Binance Spot | ✅ | ❌ |
| Binance Futures USD-M | ✅ | binance-futures-testnet |
| Binance Futures Coin-M | ❌ (no demo path) | binance-futures-coin-testnet |
| Bybit Futures | ✅ | bybit-testnet |
| Bybit Spot | ✅ | bybit-spot-testnet |
| OKX | ✅ | ❌ (demo via checkbox covers everything) |
| KuCoin Futures | ❌ | ❌ |
| KuCoin Spot | ❌ | ❌ |
| Coinbase Spot |