Hi Steemit!
I wanted to give back to the Steemit community in the best way I know how: through the power of engineering! I've hacked together a small tool that allows you to detect when there are arbitrage opportunities between two Bitcoin exchanges. The idea is to be notified when the price differs beyond a certain threshold to take advantage of the difference (see below). I originally built this tool for myself, but thought it might interest some others on Steemit, so I created a simple interface to open it up to the world. Currently I support the two exchanges that I use most frequently: Gemini and Coinbase. Disclaimer: In no way should this be considered investment advice. Think of this tool as an additional data provider to help you make more informed investment decisions. http://coinwatch.azurewebsites.net/
Let's look at the basics of arbitrage. In a perfect economy, the price for an identical good or service should be the same. This is especially true for digital goods such as bitcoin, where it doesn't cost more to ship the product to certain locations. Price differences occur due to market fragmentation.
I recently discovered Azure Functions; a neat offering from Azure that allows you to write a simple function in C#, F#, or JavaScript and create triggers to automatically run your code on a virtual machine. You can plug-in various I/O modules (Azure storage, SendGrid, Twilio, etc.) which makes it simple to integrate with supported technologies. It also supports Nuget imports so you're not limited to the various modules existing in the Azure Functions library. It's ideal for small IOT projects as you don't have to manage any hardware or deployment and can edit your service entirely in the browser.
The tool is made up of a couple functions and a website for user interaction. Every 5 minutes, the data collection function calls Gemini/Coinbase APIs to collect the latest trading prices. The prices are logged in a history table and stored in a processing Queue. The queued data is listened to by another Azure Function which calculates the price difference and determines who should be notified. There are a couple other Azure Functions for handling user signup, updating alert thresholds, and unsubscribing. Separately, I've created a simple website for interacting with the various APIs.
http://coinwatch.azurewebsites.net/
I'd love to get some feedback and feature requests. The following features could be coming down the pipeline, depending on community interest:
If you feel like this tool is helpful, please consider showing support by upvoting or resteeming to help keep the service running.