A machine learning cryptocurrency robot which detects and sends alerts about pump & dump schemes on cryptocurrency exchanges. This program is meant to run on a server and send out alerts when it detects a pump & dump. The program now supports Python 3.8!
Due to a large number of spam messages being sent about the bot, this repository was temporarily privated.
This bot's development has been put on hold. It is not finished. We were in our testing stage.
- [Web Interface for Displaying Pumps and Dumps] (https://pumpbot.netlify.app/) (work in progress)
- PumpBot Web Back-End API Documentation
Once the bot has finished the testing stage, we will add detailed instructions on how to set it up.
This project is meant to expand on research on cryptocurrency pump & dumps, which is an emerging problem in the field of criminal science. Specifically, this project is a continuation of the research done by Josh Kamps and Bennett Kleinberg of University College London on cryptocurrency pump & dumps. (Kamps, J; Kleinberg, B; (2018) To the moon: defining and detecting cryptocurrency pump-and-dumps. Crime Science, 7, Article 18.) Their article can be found here.
We are using APIs specific to each cryptocurrency exchange we analyze in order to obtain price and volume data. For example, cryptocurrency listings on Binance are obtained with the Binance API. Using exchange-specific APIs allows us to obtain accurate, real-time, minute specific information on each coin. When the program starts, it downloads a list of all coins on the exhange and keeps them updated in a database.
In addition to cryptocurrency, our program is also built to analyze stock market data. The program first downloads all listings from relevant markets (e.g. NASDAQ, TSX), usually via FTP. Afterwards, the program filters out the listings that are not penny stocks. Only penny stocks are stored because pump & dump stock schemes typically occur with penny stocks, and not high-value stocks. As with cryptocurrency listings, the program keeps the prices of penny stock listings up-to-date as it runs. Currently, stock listing prices are obtained with the yfinance library. UPDATE: this feature is put on hold for now in order to focus on cryptocurrency pump & dump schemes.
We are using custom TensorFlow-powered classification neural networks to interpret the real-time data of listings. The network outputs a single probability - the probability that the stock is beginning to experience a pump & dump. The input layer accepts the most recent price changes of a penny stock. The output layer contains a single output node with our probability. Our training data is custom-made. We are willing to sacrifice some recall for higher precision. Note that this program uses TensorFlow 2, which currently supports up to Python 3.6 (as of April 20th, 2020).
After a pump & dump is detected, a Discord bot sends out an alert to a Discord server regarding the listing. The bot runs concurrently with the program and is optional. This bot uses Discord.py.
Pump & dump alerts are sent to a database. This database is read by a website, which serves as our front-end.
- Robert Ciborowski - Machine learning developer and data analytics
- Derek Wang - Discord bot helper
- James Tang - Full stack developer