In a previous lesson, we covered the theory behind a cash and carry trade. In this lesson we are going to put the theory into practice, and execute a cash and carry trade from start to finish on Deribit.

To execute a cash and carry, also known as a basis trade, we will start with some USDC in our Deribit account, and then we will buy bitcoin in a spot market with our USDC. We will then immediately sell a futures contract at a higher price with the same position size. After waiting for the difference between the spot price and the future to decrease, we will then close our futures short, and sell the remaining bitcoin back into USDC.

At the end of this process we will have more USDC than we started with, all while staying delta neutral. This means it doesn’t matter to us whether the bitcoin price increases or decreases, we will still end up increasing the amount of USDC we hold in our account.

As discussed in the theory lesson, futures contracts will often trade at a price different to the spot price of an asset. Usually the futures will trade at a premium to spot, but this premium will on average decrease over time, until at expiration any premium has disappeared. It is this behaviour of starting with a premium which then disappears that we can take advantage of.

I’ve created a custom tab here especially for executing this cash and carry trade. As we will need both the spot market and a futures contract, I have included the BTC/USDC spot market on the left, and the September bitcoin future in the middle.

I’ve included the Futures component on the right which shows the available prices on each of the bitcoin futures contracts. As we move down the list of dated futures contracts we can see the dollar premium over the spot price increases, as the time to expiry increases. Though the annualised premium in the APR column actually decreases.

One figure worth noting here is the APR for the closest dated future that expires in less than a day. The APR is showing as about 33%, which may seem like a great opportunity, but in reality this is not going to be achievable. The APR is high mainly due to the short time to expiry, and the relatively small dollar premium of $25 over the spot price would quickly be eaten up by slippage and fees, meaning little if any profit would be realised.

It is always wise then to look at more than just the APR when deciding which contract to use for a cash and carry trade.

For this example, we’re going to use the September future. The dollar premium is about $400 (approximately 1.3%) which will be sufficient to cover our trading costs, and leave enough left over for a nice profit. As the percentages are similar, if we wanted to lock in these rates for a longer period of time (earning more dollars, but taking more time), we could just as easily choose any of the later expiries as well. I’d like to be able to close the trade in a reasonable time frame for this lesson though, so we’ll stick with September.

In the top right of this custom tab, we have the Account Summary. This shows we are starting with 3,000 USDC. After fees and slippage, we will be hoping to make a little over 1% of this from this cash and carry trade, so we hope to end with a balance of over 3,030 USDC. Let’s execute the trade and see how close we get.

Step 1: buy spot bitcoin

The first step is to use our USDC balance to buy bitcoin in the BTC/USDC spot market. Let’s place a limit order to buy as much bitcoin as we can at a price of 30,360. We’re going to leave that order to see if we get a fill. And once we do get filled, we will then use the bitcoin we have purchased as collateral to short the September future.

Step 2: sell the bitcoin future

After about a minute, our order fills. We now have bitcoin in our account, which we can see in the account summary. At this point we need to sell the September future for as close to the same size in bitcoin terms as we can.

As the first leg of our trade has already been filled, we want this next order to execute quickly so we are not at risk of the price moving away before the order is filled. To achieve this we can choose a limit price that is a few dollars deep into the order book.

Personally I prefer to use limit orders even when I want an immediate fill, so I maintain control of the maximum slippage for the order. This is personal taste though, and some traders may prefer the simplicity of a market order.

Step 3: wait

Once we have bought the spot bitcoin and sold the future, we wait. It may seem odd to list waiting as a step, but for a cash and carry trade like this, most of the time is spent simply waiting for the spread between the future and the spot price to close.

A cash and carry is a slow, low percentage return trade. The benefits though, are very low risk, and predictable returns.

What to do while we wait?

In terms of the position itself, we won’t touch it again until the premium of the September future over the spot price has decreased significantly, allowing us to book our profit. This will often mean waiting until very close to expiry, although in a price crash type scenario, this could happen sooner if we are quick enough to take advantage of it. There is more information on closing cash and carry trades during a crash in the theory lesson mentioned at the beginning of this lesson.

In this case we will be leaving all the funds on the exchange to use as collateral for our short position in the September future. By doing this we aren’t using any leverage, and there is no possibility of liquidation. This is the safest choice if we plan to set it and forget it, but does leave us with more counterparty risk. If we were happy to be more active, paying attention to when we may need to top up our account, we could store a portion of the bitcoin we purchased in our own wallet, off the exchange. Whether to use leverage to remove some of our capital from the exchange is a trade off between counterparty risk and liquidation risk.

Another option in between leaving all the funds on the exchange and using leverage while keeping some of the funds in our own wallet, would be to use a custodian service to store the funds. This way we will still be safe from liquidation, but don’t have to worry as much about the exchange. Though we do then have to worry about the custodian, so we’d really just be transferring our counterparty risk from the exchange to the custodian. Some traders may prefer to use a custodian though whose specialty is storing funds. They may also be able to use their funds on several exchanges from one custodian account, meaning less transferring between different exchanges to rebalance collateral.

Closing or rolling

We come back to the account now less than one day before the September future expires. The premium of the September future over the index is now close to zero, so we are ready to either close or roll this cash and carry trade.

To open the trade, we began by using our USDC to purchase BTC, and then we opened a short position on the September future. To close the trade then, what we need to do is close the short position on the September future, and then sell all the remaining BTC back into USDC. This is exactly what we will do in a moment, but before we do that, let’s take a look at the alternative of rolling this position out to a later expiry to capture some more premium.

Remember, initially we used USDC to purchase BTC, and then opened a short on the September future contract. To roll the futures short to a later expiry, we would need to buy back the September future position, and then sell another later expiry for a higher price. As we can see in the Futures component, all of the later expiry dates are indeed trading at a higher price than the September future, so we can achieve this on whichever future we prefer.

Rather than executing both legs separately though, Deribit has a very useful collection of products known as Futures Spreads. These allow us to execute trades in two futures simultaneously with a single order. If we navigate to the Futures Spreads list, we can see we have access to many different futures spreads.

For the purposes of this example, let’s assume that we want to roll our position to the December future. To do this we would use the December/September futures spread order book. After finding the desired spread in the list, we can click to open the order book for this spread.

The bid/ask spread is nice and tight, which helps minimise slippage costs versus trading in the two individual order books separately. We want to buy the September future and sell the December future, and this combination can be seen under the Sell button. So to roll our position from September to December, we can sell into the best bid of 311. This means our December future will be sold at a price $311 higher than the price we buy our September future back at. This will add up to 3 months to the trade, but will also add roughly an extra 1.1% to our overall profit. And there is no limit to the number of times we can roll out into the future. If we are happy with the rates received, we can theoretically never fully close the cash and carry, and keep either adding the premium captured to the position size, or cash out the profits each time.

A note on adding the premium to the position size: Using futures spreads order books to roll keeps the same position size in dollars on the new future. However, if we have captured enough additional premium with the roll, we may wish to hedge this premium as well. For example, on our account size of roughly $3,000, rolling for an additional 1% would get us an extra $30. So after rolling the main position, we may choose to add the additional $30 to our December short manually.

In practice, we will eventually want to close a cash and carry, even if we have already successfully rolled it several times. This may be because the futures start trading at a discount to spot, allowing us to capture extra profit by closing, or it may be because we have found a better place to invest our capital. Let’s see how we go about fully closing the cash and carry back into USDC.

Step 4: Close the future short

Remember, to close the trade we need to close the short position on the September future, and then sell all the remaining BTC back into USDC. We can see that our account equity is currently valued at around $3035, so if we manage to close the future at the mark price, and then sell the BTC at the index price, this is what we would be left with.

That is unlikely to be the case in this example, because this would require perfect execution (which as you will soon see, I did not achieve), but also because the spot market is currently trading slightly lower than the index, so we will get slightly less USDC when we sell our BTC. Despite these factors, we should still be able to get close to this value at the end.

First, I’m going to place a limit order to close the futures position. As we are short, this means it’s a limit order to buy, and I’ve chosen a price of 26,610. After a few seconds, this order is filled, leaving us with no position in the futures.

Step 5: Sell the bitcoin back into USDC

Next we need to sell the remaining BTC back into USDC in the spot market. As the spot price is trading a little lower than the index, I get a little greedy here and also try filling the spot leg with a limit order as well. I could just sell immediately into the best bid, but instead, I enter a limit order to sell the BTC at a price of 26,590.

When choosing to leave a resting limit order for the final part of the trade instead of just crossing the spread, it’s possible to get a better price, but we’re also running the risk of the price moving away from our order, leaving us without a fill.

In this instance, the price does indeed decrease, moving away from the order, so I edit the price a couple of times, and eventually get filled at 26570. This price is about $7 lower than what we could have got by simply selling into the best bid to begin with.

Once that order fills though, our cash and carry trade is over. The account summary shows that there is now a little over 3032 USDC in the account. We started with 3000 USDC, so we have made a net profit of a little more than 1% of the account.

So despite the less than perfect execution when closing the trade, we have achieved the roughly 1% profit that we expected to make when we entered the trade.

Although the profit is relatively small, we have achieved this profit with no delta risk. In other words, we didn’t care if bitcoin went up or down, we would still have made money regardless. In fact, we didn’t even look at a chart of the bitcoin price once during the trade.

For small traders looking for a large percentage return, this type of trade is unlikely to be attractive, unless the premiums on the futures are extremely high. For example, like in 2021 when it was possible to lock in annualised rates of well over 20% on the Deribit futures. However, for traders who are searching for small, consistent, low risk gains, or traders who have some more capital saved up, cash and carry trades can be an attractive place to allocate capital that would otherwise not be earning any yield.

AUTHOR(S)

Cryptarbitrage

Deribit Content - Spreadsheets, Options, Futures Premiums..

RECENT ARTICLES