Basic Cash and Carry Bitcoin Futures Arbitrage on CryptoFacilities, BitMex or OKCoin


(Totally hypothetical scenario. Not financial advice. Do not do this. I do not endorse this and I'm not responsible for any losses.)

Note: This strategy only works when futures are trading at a premium and for the right type of contract: Inverse Contracts or any derivatives which can lock in the USD value somehow (OKCoin, Bitmex XBU, and CryptoFacilities). XBT (quanto) contract payout structure is different and less effective for arbing because you have to constantly rebalance. For simplicity, assume no fees, no spread, no counterparty risk (no socialized loss), no exchange risk (i.e, OKCoin go bankrupt mid-trade).


CryptoFacilities offers Forwards contracts with no socialized losses. Optimal for arbitrage.

Making money arbitraging bitcoin futures can be extremely simple. Futures contracts typically trade at a premium, and all you have to do, starting with USD, is buy bitcoin at Spot price and sell futures of the same amount at premium price. Then just wait until expiration. Whether it's a weekly, monthly, quarterly, or any futures contract, as long as it's in a premium, you lock in the sale price and earn the arbitrage profit.

Seems too easy? Let's go through an example in more detail. I'm going to use OKCoin as the example because their Spot and Futures exchanges are integrated so it's easier to illustralte. However, you're probably better off using BitMEX XBU or CryptoFacilities so you have a pure USD exchange constructed index and no clawback to be worried about. All three exchanges have weekly contracts which settle on Friday and have the same payout formula, so all of them apply -- just replace "OKCoin" in this how-to with whatever exchange you prefer. Example:

Simple Arbitrage Example Steps

  1. Use your $1000 to buy 2.5 bitcoin on OKCoin spot.
  2. Move your 2.5 BTC instantly from OKCoin Spot -> Futures
  3. Sell 10 Contracts ($1000) short at $405 on Weeklies

And that's it! All you have to do is wait until expiration of the contract and you guarantee $12.5 profit regardless of how price changes, (selling 2.5 coins for $5/coin) or about 1% profit on this move (ex-fees/spread/etc)

Remember, you must start with fiat, ideally with your USD already on OKCoin for the purposes of this example. You dont have time to deposit fiat, and USD is your starting point for arb purposes.

Since OKCoin (and other) futures are traded using only bitcoin, you have to get the USD into BTC in order to achieve the arbitrage. So either you start with Fiat on OKCoin and buy BTC, or you use USD to buy coin from somewhere else and just send the BTC over to OKCoin Futures. So even if you had $1000 in cash and had a buyer who was willing to sell to you at spot, that would be fine too, but then once you complete the arb and sell into $ you have to consider where and how.

So, find some fast way to get your USD into BTC so you can arb right away; USD = $1000 -> buy 2.5 BTC

Then you move your 2.5btc into the futures side of OKCoin, which credits right away.

On there, you sell 10 contracts ($1000) of BTCUSD1W at $405. Technically, for it to be a full complete hedge we would want to sell $1012.5 (2.5 BTC x 405 BTC/USD) worth of futures since we started with 2.5 bitcoin. However, there are no fractional contracts, only $100 denominations, so we have to deal with this. It ends up not being not such a big deal, and you'll see how it affects things in the end.

Note that you must use Cross Margin/NonIsolate Martin/Portfolio Margin in order to be fully unlevered and not at risk of margin call.

You have now successfully locked in an arbitrage profit in a trade on OKCoin bitcoin futures. You will earn a positive Pnl of $10-15 under any market conditions, regardless of whether price moons or dooms. The slippage in amount from $12.5 can come from a number of sources: socialised losses, fees, spreads, slight hedge amount imperfection, etc.

Once Friday comes and the Pnl settles, you can move your ~$10 arbitrage profit (in BTC, remember OKCoin futures are only traded using BTC) from OKCoin Futures -> Spot and sell into USD to secure your profit in USD, or just keep it in BTC.

If you're still scratching your head, analyze what your profit would be under two extreme cases: one where spot price suddenly skyrockets before settlement, and another where it dumps hard right before settlement.


BitMEX XBU series has no socialized losses & guaranteed settlement, ideal for arbitrage.

Case 1: BTC/USD jumps from $400 to $500 in 2 days before expiration

Now let's say after 2 days the price of BTC/USD is $500:

Your 2.5btc on deposit at OKCoin is now worth $1250 (2.5 BTC x 500 BTC/USD), however it is in a short position which has lost money:

Thus, you don't have 2.5 btc anymore because the 10 contracts on weeklies at $405 you shorted have just expired at $500 and you lost 0.4692 BTC after settlement, so youve got 2.0309 BTC x 500 BTC/USD = $1015.45.

You have profited $15.45 risk-free on your $1000, 1.55% in 2 days, or about 1528% in annualized percentage yield (APY) terms. Ending with: USD = $1015.45 ; BTC = 2.0309

Case 2: BTC/USD drops from $400 to $300 in 2 days before expiration

Now instead let's imagine that after 2 days the price of BTC/USD is $300, when the weekly futures contract settles at Index (aka spot).

This time your 2.5btc you put over on the futures account is worth $750 (2.5 BTC x 300 BTC/USD). But, your futures position short 10 contracts from $405 has now earned bitcoin because you shorted BTC/USD before it dumped hard and settled at Index (aka spot market):

After expiration, you have earned 0.8641 BTC after settlement and in total have 3.3641 BTC x 300 BTC/USD = $1009.23

You have profited $9.23 risk-free on your $1000, 0.92% in 2 days, or about 432% APY. Ending with: USD = $1009.23 ; BTC = 3.3641

Under both cases of extreme price action before expiration, you are earning an arbitrage profit.

The reason why you earn $15.45 in Case 1 and $9.23 on Case 2 is that there's a small difference in the amount sold and used at entry, leading to a slight imbalance. At the $405 we sold at, $1000 worth of futures used only 2.4692 BTC, where we started with 2.5 BTC. This left us with slightly more long (0.0308 BTC) exposure, thus the profit is slightly higher in the "skyrocket" Case 1. As mentioned in the beginning, this issue exists because we are working with a small $1,000 example and the minimum contract size is $100, so you can't get a perfectly aligned hedge on such a low level without fractional lots.

This is how it works in practice, a small difference leads to this outcome change, but the result is the same: risk-free (minus exchange/etc) arbitrage profit! The higher amount you work with, the more negligible this imbalance will be.

Thoughts