What is arbitrage? Currency arbitrage is the practice of taking advantage of price differences between markets. These price differences emerge because certain exchanges are more liquid than others. Bigger exchanges with more trading will 'drive' the price of the rest of the market. Smaller exchanges follow the price of larger ones, with a small lag. That small lag is what makes arbitrage possible. Complexities Blockchain confirmation One point of confusion is the delay between exchanges during a Bitcoin transfer. This is because of something called blockchain confirmation, an essential aspect of Bitcoin. Without going into technicalities, this is a process that takes around 10 minutes to complete. Most exchanges require 6 confirmations before allowing you to use newly transferred funds. If you're executing arbitrage, you'll need to wait an hour before selling the same bitcoin on the other market. As you can see in the hypothetical timeline above, an extra hour can eliminate any arbitrage available. You can get around this limitation! By keeping a small balance of Bitcoin in the larger exchange, you can take advantage of immediate arbitrage. If you're trading 0.1 bitcoin during arbitrage, keep at least 0.1 bitcoin in the more expensive exchange. After an hour, your 0.1 bitcoin will get transferred from the cheaper exchange to the more expensive one. If you want to be able to conduct arbitrage more than once per hour, just keep a little extra funds in the more expensive exchange. Fees You have to account for transaction fees when determining whether to conduct arbitrage. Most exchanges have a transaction fee of 0.6%. This fee gets taken twice because it happens for each exchange Conclusion Arbitrage is available to more than just hedge funds and high frequency traders. If you have some programming skills, there are tons of open source arbitrage libraries out there that you can play with. I wrote one in Ruby! I'm also crowdfunding a course on creating your own bitcoin arbitrage bot, no programming skills required! Here is the bot: https://github.com/hstove/rbtc_arbitrage Thanks for reading :)