As bitcoin gains popularity, more exchanges are emerging globally, each with its own pros and cons. With so many exchanges to trade on, deciding which one is right for you will depend on your trading strategy, and one strategy I’d like to highlight is spread trading. This means profiting from the different prices for bitcoins between various exchanges. In the example below I’ll use examples for Bitfinex, Poloniex, and QuadrigaCX. I use QuadrigaCX as an example because this is the best place for Canadians to buy and sell bitcoins, and QuadrigaCX also offers a bitcoin/US dollar pair. Also keep in mind that Bitfinex & Poloniex use USD “tether” which is a representative token and not actual US dollars.
The strategies described below are probably best done using the API from each exchange. If you are not familiar with using web APIs, then the strategies below can still be used by entering your orders manually, but you can execute orders (and manage order books) much better using a program to enter orders for you instead of entering orders manually. Here are links to web API documentation for each exchange: Bitfinex API, Poloniex API, QuadrigaCX API.
Let’s take a look at the market on each of these three exchanges to see what the current spreads are. When I refer to the “spread”, I’m referring to the difference between the bid and ask prices posted to the exchange, and then I will compare the “spread” between each exchange to see if there are any profit opportunities.
At the time of writing, here are the current markets:
Poloniex 15,529 / 15,560
Bitfinex 15,526 / 15,538
QuadrigaCX 15,505 / 15,999
The first thing we should notice as we look at these bids and offers is the markets on Bitfinex and Poloniex are much tighter than the market on QuadrigaCX. There is a small difference (a fraction of 1%) between the bids and offers on both Bitfinex and Poloniex, but a few percent difference between bids and offers on QuadrigaCX. This is where the opportunity lies. Even though QuadrigaCX is based in Canada and largely deals with Canadian payment methods, they still post a USD market, but since moving USD in and out of QuadrigaCX is much less common than Canadian dollars, their USD markets are also much more shallow.
When evaluating these markets, we should also keep trading costs in mind. Explicit trading fees are the biggest expense, the only other expense being the implied cost of carrying the float of money required to make trades. Poloniex will cost about 0.25% per transaction (depending on your volume), Bitfinex will cost 0.20%, and QuadrigaCX charges 0.50% per transaction. So in order to make a profit, we need to at least cover these trading costs.
The lowest bid based on the price quoted above is QuadrigaCX @ 15,526 and the highest offer is QuadrigaCX @ 15,999. If you bought 1 bitcoin at 15,526 and sold at 15,999, your profit before commissions would be 473 (the difference between the buy and sell). But what are the fees? 77.63 on the buy side, and 80 on the sell side for a total of 157.63. So if you can make a market with a spread of 473 and incur 157.63 of costs, then your profit will be 315.37.
Is it this simple? Well, yes and no. In one sense, anyone is free to post markets and wait for traders to take their bid or offer. But on the other hand, the market is wide for reason. Looking at the volume of trades on the BTC/USD market on QuadrigaCX, it can sometimes take more than an hour to go by between transactions. This light liquidity is the risk that you need to take in order to get the reward.
Another way to bridge this liquidity is to post bids and offers on QuadrigaCX, recognizing that the spread is the widest on this market, and when you do get filled on one leg of the trade, you can offset your risk by taking the opposite side of the trade on a more liquid exchange (such as Poloniex and Bitfinex). For example, if we post a bid of 15,510 and an offer of 15,900 on QuadrigaCX, and the 15,510 bid gets filled, we can still work our sell order on QuadrigaCX at 15,900, while we also work duplicate orders on other exchanges. We can work OCO orders (“order cancels other”) so that when one of our sales gets filled on one exchange, we cancel the other working orders. You can see how using a computer program (a “bot”) to do this type of trading is much better than doing it manually (unless you want to stare at a trading screen all day).
The program (or trading strategy) that you use must make the necessary calculations for you, so that your program (or you) can know where to place buys and sells. If you are writing a program to do this type of trading, you need to have the program run checks and make calculations, adjust orders according to formulas. You can either set cron jobs to refresh orders and calculations on specific time intervals, or have the program place buys and sells based on other triggers, or both. Once you understand how to price these types of markets, its really up to your imagination how to let the program run your trading strategy. You can take more or less market price risk, you can tie up more or less capital, you can have the strategy take a bullish or bearish strategy, and you can use other exchanges (such as Deribit) to hedge your risk.