During my graduate studies, I took a class on linear optimization. This class was very eye opening to me. I was very excited to create a model for a real-life application.
For my final project in the class, I joined up with 3 teammates to find arbitrage opportunities with cryptocurrencies. We figured that with cryptocurrency being so volatile, arbitrage would be a very effective way to make money.
My primary focus on the project was gathering all of the data. I have a lot of experience with data scraping and selenium, and was easily able to retrieve the data necessary to find the arbitrage opportunities.
It took us a few tries to finally get the model right, but we finally settled on a network flow model. We simply crafted our network, associating the costs of each crypto from each marketplace. We then maximized the function and successfully got our arbitrage calculations working properly.
While the model itself worked like a charm, I am not a millionaire right now because it takes too long for crypto exchanges to validate. Only one cryptocurrency - Ripple - is fast enough for arbitrage to be possible.
Below, you can see a good example of the arbitrage output. The trades are the red arrows on the graph.