Futures Spread Trading Terminal

Crypto Futures Spread Trading Terminal


Spread Market Selector


Spread market selector drives the spread that is currently displayed on the spread chart as well as on the orderbook. Also all the orders will be executed against the currently selected spread.

Currently BitSpreader only allows for trading on spreads constructed from two futures.
  • These futures need to share the same underlying instrument
  • These futures need to share the same margin type (USD or coin margined)
Spread market selector

Step 1: Futures type selection


Select one of:
  • Coin margined futures (inverse) - available on Deribit and Binance and Huobi
  • USD margined futures - available on Deribit and Binance

Coin margined futures use base currency of the instrument as the currency in which margin is controlled
USD margined futures use stable coins as the currency in which margin is controlled

Step 2: exchange and instrument selection


You can construct spreads from instruments across two futures on the same exchange or across two futures on two different exchanges. Exchange selector always shows exchanges containing futures of type selected in "Futures type" selector. It is not possible to select same instrument in both legs. After selecting a spread, chart, orderbook and deal ticket show the data relating to the selected spread.

The spread will be constructed as a price difference between LEG1 and LEG2: LEG1 - LEG2. That means that:

  • buying the spread: we are buying LEG1 and selling LEG2
  • selling the spread: we are selling LEG1 and buying LEG2


Spread market selector

Instrument details


Beneath each spread leg after moving your mouse pointer over the information icon you can view the details of the instrument that is selected
Spread instrument selector
FieldComments
Amount step sizeAmount step size is the minimum increment allowed when buying or selling this instrument
Contract sizeContract size refers to the amount or quantity of an underlying security represented by a derivatives contract usually equal to amount step size.
Minimum notional valueMinimum notional value expresses minimum value of the contract, below which the exchange will reject the order
Minimal trade sizeMinimum trade size expressed in base contract currency
Max leverageMaximum leverage available for this instrument on exchange
Default leverageLeverage set by default. In order to change the default leverage, refer to the exchange specific settings here

Spread Matrix

Spread instrument matrix selector

Spread Matrix streams current values of cross-exchange and intra-exchange spreads. You can choose any combination of exchanges, LEG1 instruments will be on vertical axis, LEG2 instruments will be on horizontal axis. On crossings you will find the spreads between particular pairs of instruments.

Spread Matrix is also an alternative way of selecting the spread on which you want to trade - just click on selected spread, it will be chosen as the current instrument for trade

Spread Chart

Spread chart
BitSpreader uses standard Trading View javascript library for displaying spread candles. You can find basic tutorial and help to the chart legend and indicators HERE

How the spread chart is built?

BitSpreader builds the data set represented on the chart based on the real time ticker data streamed from exchanges. We are not using TradingView data. We are not subtracting one candles set from another.

Here is how we do it:
  • BitSpreader generates synthetic spread instruments - each spread instrument consists of two legs - two futures markets - that have the same underlying instrument (ie BTC) and are of same futures type (coin margined or usd margined). BitSpreader creates all possible combinations of pairs- each available market with every other market.
  • BitSpreader subscribes to all the derivative markets on all exchanges supported by BitSpreader and constantly receives stream of updates on orderbooks, trades and tickers.
  • Every time the ticker arrives from any futures market, it updates all the spread instruments containing this futures market
This method is much more precise than the method used by majority of the tools on market. Majority of the tools capable of showing the spreads just subtracts two sets of candles. Each candle is set of four coordinates - Open, High, Low, Close.
When subtracting two data sets in this form Open and Close are calculated properly - we can subtract them from each other as they have exactly same time coordinates, but we are getting invalid highs and lows - we subtract values that have different time coordinates, thus the result is invalid.
Conclusion is: BitSpreader chart is much more precise and better tool for analysis than other tools that built the spread chart by subtracting two sets of candles

Price typeselection

Price TypeDescription
LAST priceDifference between the prices of last trades on each of the spread legs

LastPrice = Leg1LastPrice-Leg2LastPrice
ASK priceThe price for which you can BUY given spread. In other words it is ASK spread price. It is equal to the lowest entry in the spread order book on the ASK side.

BuyPrice = Leg1AskPrice-Leg2BidPrice
BID priceThe price for which you can SELL given spread. In other words it is BID spread price. It is equal to the highest entry in the spread order book on the BID side.

SellPrice = Leg1BidPrice-Leg2AskPrice


Spread Order Book

Spread Order Book represents synthetic order book generated in real time by BitSpreader.

Here is how we do it:
  • BitSpreader generates synthetic spread instruments - each spread instrument consists of two legs - two futures markets - that have the same underlying instrument (ie BTC) and are of same futures type (coin margined or usd margined). BitSpreader creates all possible combinations of pairs- each available market with every other market.
  • BitSpreader subscribes to all the derivative markets on all exchanges supported by BitSpreader and constantly receives stream of updates on orderbooks, trades and tickers.
  • Every time the orderbook update arrives from any futures market, it updates all the spread order books containing this futures market
  • Spread order book is a result of composing two order books into one order book.

    The ASK side of Spread Order Book is a result of matching the ASK side of order book of Leg 1 futures market with the BID side of orderbook of Leg 2 futures market.

    The BID side of Spread Order Book is a result of matching the BID side of order book of Leg 1 futures market with the ASK side of orderbook of Leg 2 futures market.

    Detailed explanation of the mechanism will be the subject for the separate article.
Spread Order Book


Trading Panel

BitSpreader currently supports following order types:

  • Market order
  • Auto-Trigger order
  • Auto-Spreading order


Market Order

  • size - size of each outright contract
Spread Market Order is realised by two market orders issued by BitSpreader to the exchanges. Both market orders are sent with the same size - provided by user, but with different directions.
Spread Trading Panel
  • BUY spread means: BUY LEG 1, SELL LEG 2
  • SELL spread means: SELL LEG 1, BUY LEG 2


IMPORTANT! There is no guarantee that the actual transaction price will be the price currently displayed on the BitSpreader Futures Spread Trading Terminal. The market moves very fast and there is always a chance that the order books will be in different state when your market orders get to the exchange.

Restrictions and Validation: please refer to the Spread Market Details section for reference


Auto-Trigger Order

  • trigger price - price at which the order will be triggered
  • size - size of each outright contract


Auto trigger order

Auto-Trigger orders are executed by BitSpreader when the price reaches the trigger price level. At that moment BitSpreader executes regular Market Order with provided size.

  • Auto-Trigger BUY - BitSpreader will execute the order when the spread ASK price is below the trigger price
  • Auto-Trigger SELL - BitSpreader will execute the order when the spread BID price is above the trigger price


Auto-Trigger order works in a similar way as a limit order on regular exchange but the differences are significant, therefore we avoid using the name Limit Order in this case.


IMPORTANT! There is no guarantee that the actual price of the transaction will be equal to the trigger price - there is high probability of SLIPPAGE due to the LATENCY. Auto-Trigger uses market orders for the execution. There is a latency introduced on transport between the exchange and BitSpreader. The market moves very fast and there is high chance that the order books will be in different state when your market orders get to the exchange.

After the Auto-Trigger order is created: you can manage the order in the Active Spread Orders pane

Restrictions and Validation: please refer to the Spread Market Details section for reference


Auto-Spreading Order

Basic options

  • Spread limit price - limit price of the spread
  • Size - size of each outright contract


Auto-spreading order

Advanced options

  • Quoting on - on which market limit orders will be placed with a price details of the market
  • VWAP Multiplier - multiplier on size used to deduce the price - see below
  • Cooldown (ms) - minimum age of the limit order to update it
  • Max Order Move - limits order movement in one action, withdrawing the working order and cancelling the spread if exceeded.
  • Slop - precision of order adjustment - see below
  • Iceberg order - divide large order into smaller limit orders - see below
  • Heging type - strategy for the heging order - see below


Auto-spreading order

Active-Spreading is the most advanced type of spread orders provided by BitSpreader. Active-spreading is using the combination of limit and market orders to execute the spread transaction. One of the spread legs is executed using the limit order and second with market order.

BitSpreader places and actively updates limit orders on the market selected as the "Quoting" market. The second market in the spread is called "Hedging" market. As soon as the limit order is filled, BitSpreader executes the market (taker) order on the hedging market. This way of execution is faster and cheaper compared to Auto-Trigger orders. Users have higher chance to catch short-lasting spreads and pay lower fees - instead of 4 times the taker order fee as in the full cycle of auto-trigger/manual spread orders - the fees that need to be paid are 2 times taker fee and 2 times maker fee. In some cases user may get a rebate instead of paying the fee (the cost of executing the market order and providing the liquidity to the exchange is negative - the exchange pays to the user for his service).

How is the limit order calculated/updated

  • Limit order price is calculated as the hedging market price plus spread limit price (or minus depending on the direction and which one is quoting which hedging).
  • When the price on the hedging exchange moves, BitSpreader recalculates the price on the limit order and updates it
  • Example:
    • user wants to buy the spread Binance:BTC-PERP - Deribit:BTC-Mar23, BitSpreader needs to buy BTC-PERP on Binance and sell BTC-Mar23 on Deribit.
    • User has selected to buy the spread with the Auto-Spreading order, user provides the spread limit price: 30$ and Binance:BTC-PERP as the quoting market. Deribit:BTC-Mar23 will be the hedging market
    • BitSpreader takes the current price on the selling market - Deribit:BTC-Mar23 BID - ie 17615$, computes the limit order price by subtracting the limit spread price (30$) - 17615$ - 30$ = 17585$ - the limit order price is 17585$
    • BitSpreader places the limit order on the quoting exchange: BUY Binance:BTC-PERP with price 17585$
    • The price on the hedging exchange - Deribit:BTC-Mar23 BID - moves from 17615$ to 17600$, BitSpreader recalculates the new limit price - it is 17600$ - 30$ = 17570$ and updates the limit order: BUY Binance:BTC-PERP with price 17570$
    • The limit order is filled - BitSpreader instantly executes the market order: SELL on Deribit:BTC-Mar23. Assuming the price didn't move in the meantime this order should be instantly filled with price 17600$
    • This user has bought the spread Binance:BTC-PERP - Deribit:BTC-Mar23 with the price 17600$ - 17570$ = 30$
  • To reduce the flickering effect on the limit order (continuous placing the order and cancelling it instantly) we have following controls
    • If the difference between newly computed spread between current hedging price and existing order limit price is greater than SLOP, then the existing order should be updated with the new price (unless existing order is younger than cooldown time) - this is called symmetric slop. Asymmetric slop has two parameters: inside slop (number of ticks) - representing the worst price user can accept for the spread and outside slop (number of ticks) - representing the best price user can accept for the spread
    • In order to assess the hedging price, BitSpreader looks into hedging exchange order book and computes the VWAP (volume weighted average price) of the expected order size multiplied by VWAP multiplier. The bigger the VWAP multiplier, the more conservative will be the price calculated in this way (VWAP calculation will be reaching deeper into the order book and the price will reach levels that are less likely to get filled in short time) therefore providing more stable price assessment.
    • In case the new limit order price calculation matches the SLOP condition, BitSpreader will update the existing limit order only in case it is older than cooldown time. In other words, cooldown time defines the minimum age (in milliseconds) of the limit order after which BitSpreader will attempt to update it.
  • To maintain market stability and preserve order integrity, users can utilize the Max Order Move parameter in BitSpreader. This feature is designed to prevent excessive or abrupt movements in quoting orders, acting as a protective measure against large and sudden shifts in order positions. By setting a threshold for how far an order can move in a single action, it ensures that trades are executed within reasonable and anticipated limits. If this parameter is triggered, BitSpreader will immediately cancel the spread order and transition to an ERROR state, providing additional details about the 'Max Order Move' breach.
  • Iceberg order allows to execute a large order by placing smaller (defined as "Iceberg display size" param) orders. When one disclosed portion is filled, then the next portion in sent to the market after delay defined as refill delay param.
  • Fees are not taken under account in the limit order price calculations, actual fees are displayed on spread positions and taken into account in the spread position profit and loss calculation.
  • There are certain conditions in which the calculated limit order price would be instantly matched as a taker order. BitSpreder takes following steps to avoid that:
    • BitSpreader is using POST-only flag on the limit orders. Post-only Mode means that Traders can only place an Order if it would be posted to the Order Book as a Maker Order.
    • In case BitSpreader has received the price updates that show that computed limit order price would be instantly filled, the BitSpreader updates the price to put the limit order on the top of the order book.

Hedging
  • Hedging with market orders - it guarantees the order will be filled but it can be filled with a price that is not optimal - the best available current price
  • Limit IOC with payup ticks - By using this strategy, traders ensure they do not pay more than a certain amount (or sell for less than a certain amount). The payup ticks offer a degree of flexibility to account for market volatility, increasing the likelihood of the order being executed while still controlling the slippage (the difference between the expected price of a trade and the executed price).


IMPORTANT! There is no guarantee that the actual price of the spread will be equal to the spread limit price - there is probability of SLIPPAGE due to the LATENCY.

After the Auto-Spreading order is created: you can manage the order in the Active Spread Orders pane

Restrictions and Validation: please refer to the Spread Market Details section for reference


Spread Market Details

FieldComments
Amount step sizeAmount step size is the minimum increment allowed when buying or selling this instrument

amtStepSize = minimal common denominator(leg1AmtStepSize, leg2AmtStepSize)
Contract sizeContract size refers to the amount or quantity of an underlying security represented by a derivatives contract usually equal to amount step size.

ctrSize = minimal common denominator(leg1ctrSize, leg2ctrSize)
Minimum notional valueMinimum notional value expresses minimum value of the contract, below which the exchange will reject the order

minNotionalValue = max(leg1minNotionalValue, leg2minNotionalValue)
Minimal trade sizeMinimum trade size expressed in base contract currency

minTradeSize = max(leg1minTradeSize, leg2minTradeSize)

Active Spread Orders

Active spread orders
All auto-trigger and active spreading spread orders that have not been fully realised yet are visible in the "Active Spread Orders" pane.
You can cancel the order as long as it is not fully filled.

Spread order states:

Spread order stateDescription
WORKINGBitSpreader is waiting for the trigger price to execute the order
REJECTEDBoth legs of the spread order have been rejected by the exchange
CANCELLEDUser has cancelled the spread order
FILLEDThe spread order is fully filled
PARTIALLY_FILLEDThe spread order is filled only partially, both legs are equal, there is no exposure
INCOMPLETEThe spread order is filled only partially the fill on one leg is not equal to the fill on the second leg - exposure is present.