10 commandments of successful crypto arbitrage trading
As with most things in life it is good to stick to some rules that work. It is especially important when you are interested in making money arbitraging cryptocurrency markets. If you are one of these people that believe “this-bot-will-make-money-for-you-when-you-sleep” kind of stories you should probably stop reading here. But if you are serious about making money by arbitraging crypto markets and want to avoid mistakes that can be really costly and damaging to your activities than you should probably give the points below some thought. So let’s start with our “10 commandments of a successful crypto arbitrage trader”.
1. Know the markets you are trading in. This refers to individual venues (exchanges) as well as individual crypto assets. Regarding exchanges you should what sort of liquidity you can expect there for a particular currency pair. For example big exchanges like Kraken may have great liquidity in BTC or ETH pairs but for ZEC or XMR it will not be so good. After a while you should be familiar with where there is good liquidity and where there is thin liquidity. Also some exchanges — the biggest ones — tend to drive movements compared to other exchanges that lag. Once there is a strong dynamic move up in Gdax this would probably be soon replicated in other exchanges. If the price is moving up be quick to buy at these stale prices at lagging exchanges and sell at the leading ones. If the price is rising rapidly and you have completed the buy part of your arbitrage then you have a comfortable situation of selling into a rally, perhaps using limit orders instead of market orders to limit the cost. In general it is good to look into the order book from time to time so that you know what you can expect when trading certain markets (whether the order book is well populated in terms of prices and volumes available, whether you can expect significant price impact when executing a market order, etc.). Try to stay close to the markets so that you know what state it is currently in, try to adjust your trading accordingly to extract as much profit as you can.
2. Know all your risks and manage them properly. You will probably come across many arbitrage definitions that will describe the process as risk-free. There is nothing like a risk-free arbitrage, there are always some risks involved. The question is whether potential return justifies taking these risks. Sometimes these risks can be minimized but never totally eliminated, so they need to be accepted and managed. The most important risks in crypto arbitrage are:
· Counterparty risk — the risk that your exchange will be hacked or become insolvent or will act in any unexpected way and you will be hit with a financial loss as a result.
· Transfer risk — arbitrage requires constant asset (fiat money and crypto) rebalancing; there is a number of potential pitfalls when transferring cryptos between exchanges and as a result your crypto may get lost, be stuck for a long period of time (and its price changes during this period), may become unavailable in any way.
· Execution risk — to complete a successful arbitrage you need to buy the same asset on one exchange and sell it at a higher price on another exchange. Simple as that. Yet many things may go wrong during this process. Prices streamed by exchange API may be wrong, platforms may become unresponsive during volatile markets (volatile markets equals heavy user load on the platform), you may mistake buy with sell orders, do a typo, enter incorrect amount into the order window and many other.
· Price risk to your crypto stock used for arbitrage operations.
These are only the most important risks. I will delve into risks in more details in the following points.
3. Counterparty risk (credit risk) — know the venues you are trading on. Counterparty risk is probably the biggest risk currently associated with crypto arbitrage. There are no insurance schemes as with most mature stock markets. When a brokerage house or a bank becomes insolvent usually retail clients participate in a financial protection scheme that will help them recoup all/most/part of their losses associated with holding their assets in an insolvent entity. These regulated entities in the financial markets are also under heavy scrutiny from the market regulators, so if anything starts to go wrong preventive actions may be taken to protect client assets. This is undoubtedly the greatest benefit of regulation in the financial markets, yet crypto markets are yet to be regulated, so you need to manage all these risks yourself. Fortunately there is a few things you can do to mitigate these risks:
· Only open accounts with exchanges that are trustworthy and have some established track record. Use your common sense to judge it: Kraken or Gdax will probably be less risky than a newly-opened exchange registered in the Bahamas even though they may all not have any specific license to offer crypto trading. The licensing process is still very rare at the moment (Japan being a notable exception here) so you need to look at factors like: how long has this entity been in the market, do they have good history (Reddit forums, social media), have they had problems with their local regulators, is it registered in a mature and secure jurisdiction (like the US) or some countries commonly associated with poor retail clients protection or generally shady off-shore activities.
· Try to spread your crypto stock and fiat money deposits across different exchanges — in other words do not put all your eggs into one basket. Only keep as much crypto stock and fiat money on an exchange as you need for your arbitrage operations.
· If in any doubt, withdraw all assets from the exchange and wait for any uncertainties to clear. Any doubt means things like: social media complaints regarding withdrawals and deposits delays, articles mentioning potential problems for the exchange (hack, financial problems, regulatory interest, etc.), any rumors.
· If you are planning a break from arbitraging (vacation) withdraw all your assets.
4. Transfer risk — this is a risk associated with any asset transfer, but mostly related to crypto transfers. Simple as it may seem many bad things may happen, these include, among others, the following:
· Transfers stuck in a blockchain waiting to be confirmed for hours or even days (last quarter of 2017 saw many cases like that with exchanges paying too little to execute all awaiting transfers in a reasonably fast manner, especially with BTC extremely high transfer costs towards the end of 2017).
· Different transfer standards making transfer between exchanges incompatible (e.g. Bitstamp using ETH contract protocol for ETH withdrawals that no other exchange is able to receive — this results in your ETH stuck and you are at the mercy of the receiving exchange to sort it out for you; happy ending after a week if you are lucky, but don’t count on it all the time).
· Deposit not credited for no meaningful reason.
· Withdrawal requested and deducted on one exchange but not visible in the blockchain (support will not take care of it for a week if that is a busy period like the end of 2017).
· Avoid depositing/withdrawing the same amounts in a short period of time — some exchanges seem to have problems handling such transfers.
· Problems with exchange wallets (maintenance).
· Exchanges introducing new addresses and you missed the notification and try to use an old address saved in another platform’s address book — a very common mistake.
· Problems with networks under heavy load — extreme cases of long wait times for BTC or even reasonably fast crypto like ETH. These may be quite tragic if the load is heavy, exchanges pay too low fees and/or there is some sort of blockchain upgrade.
· Simple but costly mistakes like sending BCH to BTC address (or vice versa). Such operation will be accepted by the exchange (unfortunately BTC and BCH share the same addresses after the BCH fork) but may result in your crypto lost completely or you being at the mercy of the receiving exchange which may (but doesn’t have to!) work with some so-called trusted miners to undo this operation. This will always result in some penalty cost like 20–30% of the crypto at stake. Definitely a very costly mistake.
You need to be aware of these risk and minimize them as much as possible. In general it is not a good idea to conduct arbitrage without having a crypto asset available on the exchange where you are going to sell. You basically can’t guarantee the sell price if you need to wait for a transfer to hit your account. This may be mitigated in case of cryptos like Ripple or Dash, which tend to confirm fast but there is always risk that the price will change and you will not be able to close the arbitrage with profit. In order to avoid problems with assets stuck in a transfer stick to some simple rules:
· Make sure the address is correct, never rely on an old address saved in another platform, spreadsheet etc.
· When copy and paste always check that the final address is the correct one, be especially careful not to mistake BTC and BCH addresses (only recently some exchanges started implementing so called BCH Cash Address format but it will probably take a while before this becomes a standard and all major exchanges use compatible transfer systems relying on the new standard).
· If in any doubt, always execute a test transfer — once you are sure it works you may repeat this with target amount many times with 100% confidence.
5. Use crypto stock and manage it in a way that brings the price risk of this stock to the level you understand and accept. To make things simple when arbitraging you may try two things:
· You may buy cheap crypto on exchange A, transfer it to rich exchange B and sell it there. It sounds simple but doesn’t work in practice for most cryptos. Quite often you need too much time to complete the transfer and the price will change, often unfavourably to you. So you will not be able to close the sell leg with a price that was there when you initiated the crypto transfer from exchange A to B. This will result in outcome less favourable than expected.
· You may avoid the problem described above by holding some crypto stock on exchange B. This way when you buy on exchange A you have the cryptos available for sale immediately at exchange B. So you can buy on exchange A and sell on B at the same time minimizing the market price risk for your sell leg. Be aware of price decline risk for your crypto stock. If your crypto stock is relatively large compared to your arbitrage volumes it may happen that your arbitrage profits will be reduced or even consumed by crypto price declines. Fortunately there is some tools to manage this risk:
· Your crypto stock means you have a long position in crypto and it is susceptible to price decline risk. If you are a hodler is it not a problem to you. Actually it is the best possible option. Once you are a crypto believer you can make additional profit with your arbitrage activity which may even be bigger than gains in crypto price itself. But if you are not happy about this price risk of your crypto stock you still have some options:
· You may look for a CFD broker and create a short position there that will offset your long positions in your crypto stock. This may be costly as they often charge high rollover costs (swap cost, or cost of keeping your position open). You may also try to short a futures contract — there are BTC futures on CME and CBOT exchanges. Using these tools you can eliminate the price risk of your stock completely. You may also try to borrow some cryptos against collateral (usually BTC) on some crypto exchanges but this means using leverage and the exchanges usually have close out rules that can be activated with increased volatility and can cause some unpredicted developments. Without going into details it is probably better to try to offset this risk using a derivative products like CFD or futures contract preferably executed with a reputable and regulated broker which would make it a safe solution (you would only have to monitor your collateral, or roll futures contract to next expiry date, which is manageable).
· When considering your crypto stock size you need to take into account your typical crypto arbitrage transaction size and recent market developments. You need to estimate how much crypto you in fact need to be flexible with your arbitrage actions. To give you an example: if you arbitrage BTC you need let’s say one hour to complete a round turn (which is buying BTC on exchange A, selling BTC stock on exchange B, replenishing BTC stock on B by sending to exchange B the BTC bought on exchange A). The same round turn for LTC may be 15 minutes, for DSH it may be 5 minutes whereas for XRP (the fastest one) it may be one minute. Clearly you need much less stock for LTC, DSH or XRP than you need for BTC if there is a discrepancy lasting 2 hours and you want to arbitrage as much volume as possible. So you can have similar results but much less price risk for your stock when you concentrate your arbitrage activities in cryptos that can process payments reasonably quickly. There is of course some simplification for this explanation as we can’t go into details in such a short text but the conclusion is valid: if you want to minimize price risk of your stock target “fast” cryptos and/or try to cover some/all exposure with derivatives.
· You may consider a combination of the above factors. What often works is cutting down on your stock if recently it has gained significantly in value as it is probably prone to a serious correction (like the one we saw in January and February of 2018). Sometimes when you feel uncomfortable with the size of your crypto stock you may use derivatives to lower your exposure. But you have to avoid speculating with your stock portfolio size as this will probably result in a much worse performance than pure long term holding. At least this is what all research suggests in case of stock markets results. People you pay to manage your holdings (like fund managers) barely ever beat the indices in the long run. They may be successful in individual years but overall they are nearly always worse than the market, so it doesn’t make any sense to pay them for this when compared to buy-and-hold strategy. So try to stick to your strategy regarding your crypto stock management and keep any adjustments to minimum.
6. Apply for a high level account at the exchanges you trust — this will help you push heavy volumes when opportunities arise without bumping into deposit/withdrawal limits.
7. Reduce your costs — costs eat into your profitability, try to reduce them as much as possible. Basically you should be aware of what your costs are and how you can reduce them. There is a few issues that it is worth to keep your eye on:
· Maker/taker structures at some exchanges, where you can act as a maker (this means you “make” market by providing liquidity, in this case using limit orders to buy or sell) or taker (you take, or consume, liquidity provided by others when you use market orders to buy or sell). Maker orders are substantially cheaper than taker orders, sometimes they are even free (Gdax) so whenever possible try to use them. If the price is going up and you need to sell it may be worth to place a sell limit order instead of a market sell order and wait for other traders to consume it. Of course there is a risk that once you place your sell limit order the price will reverse and you will be forced to chase falling prices to close your sell leg. The knowledge when to use a limit order instead of a market order comes with practice so you can’t just obey some magic rules here. When you buy or sell using market orders you have to pay for liquidity that is available immediately to you and you do that in a form of paying spread (selling at lower prices, called bid, and buying at higher prices, called ask) and sometimes also a higher commission rate. Try to minimize that when possible. If the market is going up usually some exchange will lag so that sell limit orders resting there will become off-market. This is when you need to act quickly to buy cheap, so you would probably want to use a market order to take advantage of this situation before others do. Once you have the buy leg completed you may decide if you want to close it quickly with a market order, or try to use a sell limit order close to the current price and increase your potential profit by saving the cost of spread and possibly a lower (or no) commission. You may also do a mix of both. Once again, this usually comes with practice. If there is plenty of opportunities you just want to close them fast and move on to the next one. So you would probably operate with market orders. If there is not much going on and you work on a single opportunity with a good entry price and the market going into the right direction you can try to play with limit orders to get additional profit. There are no clear answers, but you should be aware of what kind of trade-off you are facing here.
· There are sometimes progressive commission schemes (e.g. Kraken) so that the more volume you trade the lower your commission rate.
· If you are a heavy volume player try to negotiate a better deal with your exchanges. It will probably not work with Gdax or Kraken (unless you are a real whale) but you can strike a good deal with some smaller exchanges.
· Take into account crypto transfers costs. Usually they are negligible for the most popular cryptos, but sometimes when the network becomes congested this cost may increase significantly, so pay attention to it.
· When operating with fiat money be careful with wire money costs, especially moving USD around may be costly. EUR SEPA wires are usually fast and cheap (like 1 EUR per transfer, no matter what amount) whereas USD wire may cost a percentage of value which definitely makes it more costly. Also credit card operators may have fees that will offset your arbitrage profit completely.
8. Do not try to arbitrage when there is not much going on in the market, wait patiently for the periods of high volatility. High volatility brings best arbitrage opportunities. You may try to categorize the opportunities into a few groups:
· Sometimes there is one order on a particular exchange that is too big to swallow by market participants in a short period of time, market is moving and this order becomes off-market. You definitely want to take advantage of such situations. Usually these opportunities last for minutes, not longer. Trade notifications via Telegram of our CryptoArbTrader are a great tool of spotting and exploiting these.
· With less popular cryptos order books may become thin and that is when people may place orders that are off-market instantly when placed and they probably don’t know about that. You don’t want to spend countless hours waiting for them so you need a notification tool which will alert you when such opportunities arise.
· High volatility periods that generate long lasting arbitrage opportunities. By far the best option as you may repeat the arbitrage cycles for days reaping heavy profits.
· Situations where one of the exchanges becomes constantly cheaper or more expensive than the others. Kraken was a great example of a cheap exchange in Q4 2017 as it was constantly 3–4% cheaper than Gdax, probably because of 2 reasons: retail crowd hitting Coinbase to buy Crypto and Coinbase using Gdax to get enough liquidity, and Kraken having problems with overloaded servers that resulted in its platform being nearly non-operational (yes, you sometimes had to send an order 20 times and 3 minutes later you learnt that 3 of them were executed…and that was if you were lucky enough to log in). Anyway these are two trustworthy exchanges so if you were patient enough to try Kraken you could make great money arbitraging these two for a long period of time, day by day.
· When one of the exchanges becomes expensive you should however be careful. It may be that this exchange is having problems with fiat withdrawals. They do happen and most of the time are temporary problems but it may also be a sign of serious problems to come (hack, insolvency, etc.). Once people realize there may be a problem every reasonable trader will try to convert all fiat into crypto and run away, at least for a while to see how the situation uncovers. This may drive demand and prices unnaturally high compared to other exchanges.
· One thing that is extremely important is that once your arbitrage cycle is complete you need to withdraw fiat money from an exchange (where you sold crypto) in order to prevent building a large position in fiat money there which results in increased credit risk related to this exchange.
· Do not start too soon, it usually takes a while for big arbitrage opportunities to build. Once volatility is increasing and potential profits reach nice levels you don’t want a situation where you emptied your fiat wallet on a cheap exchange prematurely. Try to always keep a reasonable fiat money balance on all exchanges you use for arbitraging. Obviously keep in mind this stock of fiat money also makes you potentially susceptible to an exchange becoming insolvent in which case you are screwed. Again it is a matter of sound judgment how much fiat money you want/need to have available for arbitraging at various exchanges. But without fiat money available to buy cheap crypto it is not possible to conduct arbitrage in crypto/fiat markets.
· Sometimes there are structural price differences between jurisdictions, notable case is South Korea with its so called “Kimchi premium”. In late 2017 Coinmarketcap even removed Korean exchanges from its listings as most of these exchanges commanded 30%+ premium in price compared to other top exchanges (50% was the record in early January 2018). Usually, like in the case of South Korea, these differences are extremely difficult or impossible to exploit. Korean laws restrict any cross borders wires for individuals so it is impossible for Korean and non-Korean to engage into any arbitrage activities (with the exceptions of expats living in Korea, which was a loophole).
· Start small and move into bigger amounts when potential profits justify it. Be aggressive when its justified by great opportunities, stay on the sidelines when there is not much to gain.
9. Be aware of execution risk — each platform gui is slightly different and it is very easy to make a mistake. This may either be a typo (one “0” too many), a market order placed instead of a limit order, a buy order instead of a sell order, etc. when you get used to one platform and it has buy orders form on the left-hand side and sell form on the right-hand side you are prone to make a mistake if you switch to another platform that has a reversed layout for order placement forms. Be careful not to make a mistake. There are different potential problems that may arise during trading, among the most common:
· API showing delayed prices. You get a signal and want to act on it but when checking prices in the platform gui it seems that prices are different. So don’t try to hit market buy or sell orders blind without checking their correctness.
· Platform gui showing delayed prices when under heavy load. This may refer to current bid and ask prices as well as last trade price. If in any doubt use small limit orders to check if what you see is what you get, or basically refrain from trading. It has to be said that most of crypto exchanges do not come close to stability and reliability offered by established regulated markets brokers like eTrade or Interactive Brokers. This concerns both their platform gui and APIs.
When you have an exchange API that is stable and reliable all the time you may try to automate the arbitrage process. But it is only as good as your logic applied and the input data you feed in. Once you receive old data, or the price stream is delayed, the logic will do things it is not supposed to do and this will probably result in a loss. If you look at stock market history and how stock trading has evolved over the years it is quite certain that crypto exchanges API will get better, to a level on par with the ones offered by stock exchanges. This will introduce a new wave of players into crypto markets. These new players will be hedge funds specializing in algorithmic trading exploiting all possible arbitrage opportunities in milliseconds. But the current state of crypto market trading seems to be too early for them to deploy their algos on crypto exchanges. Goldman Sachs is still considering at the beginning of 2018 whether to set up algo desk for crypto and none of the biggest algo hedge funds and market makers has openly moved to crypto trading as of yet, though there are some smaller players and Gdax disclosed they were in talks with some top industry players. One thing is sure: the arbitrage opportunities we have experienced in crypto markets will be gone one day, so take advantage of them when you still can.
10. Try to learn a lesson from each and every mistake you make. It is very difficult to avoid them but once they happen you need to prevent them from happening again, so that they don’t affect negatively your PnL. We have been there before. Sent BCH to BTC address when in a hurry (lots of arbitrage action during that day) — ended up in paying 20% of that crypto value to have this case resolved 2 weeks later when market price was significantly lower. Had fiat wires stuck for 2 weeks for no apparent reasons by an exchange (successfully money returned). Had crypto transfers sent from one exchange to another via ETH contract which resulted in funds not credited to the account for 2 weeks (successfully resolved after about 2 weeks but ETH went down during this period). Buying instead of selling and selling instead of buying. Going through a thin order book because of the incorrect order price placed in the order form. And many, many more. We tried to learn a lesson from all these mistakes, like never rely on old addresses, if in doubt do a test transfer, check all the wire details twice and so on. We hope we managed to at least give you some warning signs that will help you navigate through crypto arbitrage trading. Perhaps not a rocket science but definitely not a piece of cake, either. Good luck with your crypto arbitrage!