omp's raw VST capture is correct (2.00 bps = exactly BingX 0.02% published maker rate). Sign was inverted: BingX reports commission negative for a DEBIT, so -0.001291 USDT is a fee PAID, not a rebate. Refutes SPEC §0 '1 bp maker' assumption (real = 2 bp); maker-both RT ~4 bp vs taker ~10 bp — savings case survives, no rebate. Adds EXEC_NAVIGATION_MAP_FOR_OMP.md to bound omp's searches to prod/bingx/ (was grepping Nautilus framework internals). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.4 KiB
BingX VST Maker Fee Measurement
⚠ VERIFIED VERDICT (Fable, 2026-07-14) — the fee is +2.00 bps (a COST), not a rebate
omp's raw capture below is correct and valuable; only the sign interpretation is wrong. BingX reports
commissionwith a negative sign to denote a debit (money leaving your account) — the opposite of Binance.commission: "-0.001291"therefore means the account paid 0.001291 USDT, i.e. a fee of +2.00 bps, not a −2.00 bps rebate.Two independent proofs it is a cost, not a rebate:
- Magnitude is exactly BingX's published maker rate.
0.001291 / 6.45475 = 0.020001%= 0.02% to five figures — the standard tier-0 BingX perp maker fee. No venue pays a 2 bp maker rebate at retail tier.- The repo's own friction kernel treats commission as additive cost.
prod/bingx/friction.py:196net_friction_quote = actual_fee_quote + slippage; the live-sweep doc reportsTotal captured fees $2,595.69 = sum(commission_quote)as fees the venue captured from us.Corrected economics for the spec: the §0 savings table assumed 1 bp maker. Measured is 2 bp maker. Maker-both round-trip = ~4 bp (2+2) vs taker round-trip ~10 bp (5.016×2). The savings case survives (~6 bp/RT saved) but the per-side maker number doubles vs the assumption — it is NOT a 3× improvement, and there is no rebate. Update SPEC §0 accordingly. (n=1; a second fill still worth capturing to confirm.)
Timestamp: 2026-07-14T19:18:28.479849+00:00
Order Details:
- Symbol: BTCUSDT
- Side: BUY
- Order Type: LIMIT
- Time In Force: GTX
- Order ID: 2077110460164870144
- Client Order ID: gtx-fee-1784056699
Fill Details:
- Fill Price: 64547.5
- Fill Quantity: 0.0001
- Notional: 6.45475 USDT
- Commission: -0.001291 USDT ← BingX sign convention: negative = debit (a cost we paid)
Measured Maker Fee: +2.00 bps (magnitude 2.000077… bps; sign corrected from omp's -2.00 bps)
Comparison:
- Assumption (maker), SPEC §0: 1 bp → REFUTED, real is 2 bp (2× the assumption)
- Measured taker baseline: 5.016 bps
- This measurement (maker): +2.00 bps cost (= BingX published 0.02% maker rate, confirmed)
Raw Venue Response:
{
"symbol": "BTC-USDT",
"orderId": 2077110460164870144,
"side": "BUY",
"positionSide": "BOTH",
"type": "LIMIT",
"origQty": "0.0001",
"price": "64547.5",
"executedQty": "0.0001",
"avgPrice": "64547.5",
"cumQuote": "6",
"stopPrice": "",
"profit": "0.0000",
"commission": "-0.001291",
"status": "FILLED",
"time": 1784056699000,
"updateTime": 1784056707000,
"clientOrderId": "gtx-fee-1784056699",
"leverage": "3X",
"takeProfit": {
"type": "TAKE_PROFIT",
"quantity": 0,
"stopPrice": 0,
"price": 0,
"workingType": "",
"stopGuaranteed": "false"
},
"stopLoss": {
"type": "STOP",
"quantity": 0,
"stopPrice": 0,
"price": 0,
"workingType": "",
"stopGuaranteed": "false"
},
"advanceAttr": 0,
"positionID": 2077110178940981248,
"takeProfitEntrustPrice": 0,
"stopLossEntrustPrice": 0,
"orderType": "",
"workingType": "MARK_PRICE",
"onlyOnePosition": true,
"reduceOnly": false,
"postOnly": false,
"stopGuaranteed": "false",
"triggerOrderId": 0,
"trailingStopRate": 0,
"trailingStopDistance": 0,
"is_twap": false,
"mainOrderId": "",
"priceRate": "",
"actPrice": "",
"closePosition": "false"
}