What am I missing about this "guaranteed" money-making scheme that I didn't hear from anyone but just popped up in my head? Let's suppose that I have already set up an account at Exchange A and Exchange B, loaded each up with a small buffer of BTC (much less than 1 BTC), and am able to make API requests to buy/sell from these.
Now, I start pulling down sell/buy offers from both exchanges, automatically, every minute, all the time.
My script then picks the most affordable (for me) &quot;sell&quot; offer, regardless of the amount, and takes the offer (buys the coins).
Instantly afterwards, it takes the most profitable (for me) &quot;buy&quot; offer on the other change (sells the coins).
It doesn't do these actions unless it calculates that the &quot;rest sum&quot; is over zero.
Is this not guaranteed to make me money each time this is done? And since it's automated, I only need to set it up once and then lean back and watch guaranteed money stream into my accounts, taking some of them out every now and then?
It sounds way too good to be true, so I must be missing something. Otherwise, I'm sure that this would be done by millions of people, around the clock, and it would quickly stop working. I feel as if this is probably very well known and long since &quot;patched&quot;.
But in terms of my understanding of how marketplaces/exchanges work, this seems like it would work. Unless there is some kind of random delay or other uncertainty which makes it impossible?
Of course, those exchanges/marketplaces all require photo id to be scanned and sent to them, so I'm unable to try this out &quot;live&quot;, but I still want to know why this wouldn't work.
What you are describing is called Arbitrage and is done by many traders for a variety of different assets, not just cryptocurrencies. This is only guaranteed to make you money so long as there is a price difference between exchanges. The end result of many people doing arbitrage is that the exchanges all settle onto the same price.
The main difficulty in performing arbitrage is the time it takes to move assets from one exchange to another. Ideally you would buy the asset, immediately transfer it to another exchange, and then sell it. However because of physics and protocol limitations, it is not possible to immediately move Bitcoin (and most cryptocurrencies). In the time that it took to move the Bitcoin, the price may have moved to be unfavorably to you, so you may lose money, or at least, not make any.
There are ways around it such as having balances on multiple exchanges so buying on one exchange triggers a sell on another. It's not strictly the same asset, but your balance of that asset does not change. However this requires upfront capital to setup those balances.
There are efforts to make it easier to perform arbitrage by decreasing the transfer time. Layer 2 protocols such as the Lightning Network or Blockstream's Liquid network allow for fast and nearly instant transfers of Bitcoin, so they can be utilized by traders to transfer Bitcoin between exchanges to perform arbitrage.