For the final project of my intermediate Python programming class in the Fall of 2017, I created Crypto Trader, a cryptocurrency price-tracking and market arbitrage tool programmed in Python. This program scrapes information from Coinmarketcap.com, a website that provides information regarding the top cryptocurrencies. Specifically, the program scrapes relevant price information regarding the top 10 cryptocurrencies (by market capitalization) and then provides users with a chart displaying these currencies as well as a table to help find the cheapest exchanges to buy these cryptocurrencies (tailored specifically for those who are in US), thus performing market arbitrage.
For full access to the program and its code, access it on GitHub here.
I've been interested and involved in the cryptocurrency space since 2013 and wanted to develop a program that could be of interesting use in this space. In 2017, hundreds of alt-coins flooded the cryptocurrency market, making it almost impossible to track and follow all of the coins. At the same time, more and more cryptocurrency exchanges began to launch and open up to US customers, so I wanted to provide an easy way for traders to use this program to engage in market arbitrage.
Coinmarketcap.com is a highly used website for all those involved in the cryptocurrency space. However, there is no way to easily use the information contained on Coinmarketcap to perform market arbitrage without having to click into each individual currency and then do sorting on each page. Crypto Trader allows a user to get this information simply by running this program, allowing them to make smart trades at the right exchanges.
Once the program runs, it will open two tabs in a user's browser. The first tab will show the Crypto Chart (displayed at the top of the page) and the second tab will display the Crypto Arbitrage Table (seen above).
- Crypto Chart shows the user a bar chart of the top 10 cryptocurrencies with their respective prices. The left most coin is the largest cryptocurrency (by market cap). This makes it easy to get a quick visual of the top 10 coins and their current average prices.
- Crypto Arbitrage Table will show the user a table of these top 10 cryptocurrencies, organized by the respective markets where they are able to sell and buy them. This table is ranked by most valuable coin first (by market cap) and shows the lowest price at which to buy this and subsequent coins. This allows for potential market arbitrage as you can buy a coin at the lowest price listed and then sell it at the higher price listed further down the chart. For instance, as you can see in the screenshot, you can buy Bitcoin (the #1 coin) on the WEX exchange for $15,210 and then sell it on CEX.IO for $17,137.50 for an 11% profit.
This project represented a culmination of the Python skills that I have acquired during the two Python programming classes (SI 506 & SI 507) I have taken while at The School of Information (UMSI). While programming is still an area that I am very much improving in, I have thoroughly enjoyed my coding classes at UMSI as they present me with consistent mental challenges and require persistence and determination. This final project was no different and it was fulfilling, after ~30-35 hours of code, to build something that I would actually be able to use when trading cryptocurrencies.
If I had more time, the next steps with this program would be to look through the historical data of cryptocurrencies (even beyond the top 10), to make recommendations as to what cryptocurrencies to buy. This could even look at something like Google Trends to identify a tipping point as when to buy a cryptocurrency (for instance, try to identify an upward trend in Google Trends in order to start a buying order).