Say, exchange A has a 'standard' LTC/BTC market where you sell 1 BTC and get 0.1 LTC instantly, but exchange B, is a CFD exchange trading LTC/BTC where you go short 1 BTC and then have to close the trade at a later point?
don't make arbitrage more complicated that it is. getting Contract for difference involved in the process makes things impossible because you need to first act fast and get it all filled and second have to account for prices, wasted time, fees,...
For example, though - if you took BTC/USD on bitmex (which doesn't support USD deposits/withdrawals, instead uses a price pegging system), and BTC/USD on bitfinex, which uses USDT, arbitrage is not possible, because there's no way to exchange USD between exchanges, so market structure does matter in this case.
I'm just wondering what the constraints are? Is it simply the ability to deposit/withdraw the base/quote currencies on both exchanges?
you are more on track here.
you can take a more complicated route in order to perform arbitrage but more complication means harder to perform and higher risk and possibly even more wasted time all contributing to less profit or even loss.
here is how you could do it.
lets say bitcoin is worth higher in bitmex. your method of arbitrage means you sell BTC there and then transfer the "money" to the other exchange. well you don't have to use USD to transfer money! you can do it with USDT, XRP, LTC, even DOGE. but prices of these need to be stable. so you sell BTC on bitmex to one of these, transfer it to the other exchange and buy bitcoin with it there.
