I’m working on a Bitcoin arbitrage bot. 
There’s often a +33 basis point price differential between particular exchanges I’ve selected. That seems large enough that this should be able to make some money.
This strategy is fairly low risk, but does have some.
Trading fees are only 0% on maker fees. Taker fees are still up to as much as 0.2%.
Each trade will need a stop order outside the limit in case a limit isn’t hit; in that case the loss is larger than expected and you pay the taker fee.
If one exchange is perpetually either cheaper or more expensive, I will end up with lopsided exposure on that exchange.
Imagine that Exchange A is always more expensive. I will always be buying on other exchanges, and going short on Exchange A. Eventually, I build up a -5 BTC short position on Exchange A, and a +5 long position on Exchange B.
If Bitcoin goes on a bull run, I will have to sell BTC on Exchange B and transfer it to Exchange A to cover margin. Those transfers incur fees, and become exponentially easier to miss the more exchanges you trade on.
 Arbitrage is finding price discrepancies for a fungible asset like a stock. In this case, I’ve found a lot of the time, Bitcoin might be $47,850 on Exchange A. At the exact same time, it’s $47,650 on Exchange B. You can buy it on Exchange B and simultaneously sell it on Exchange A, pocketing the $200 difference.