Crypto Util
Real time cryptocurrency price data prediction command line utility using machine learning regression. Cross platform compatible on Linux, macOS, and Windows. Written in Python 3.
Install
Python
-
pip3 install yacu
or -
python3 -m pip install yacu
Docker or Podman (CLI ONLY!)
-
docker pull yetanothercryptoutil/yacu
or -
podman pull yetanothercryptoutil/yacu
NOTE: If you use this method, only the CLI features of the program will be available.
Local installation via anaconda (for development)
- Download and install anaconda
git clone https://github.com/1103s/crypto-bot.git
cd crypto-bot
conda create --name crypto_util python=3.9.7
source activate crypto_util
python3 -m pip install -r requirements.txt
Usage
GUI
-
Default:
yacu
-
Anaconda:
python3 src/gui.py
CLI
-
Default:
yacu-cli
-
Podman:
podman run yacu
-
Docker:
docker run yacu
-
Anaconda:
python3 src/crypto_util.py
Local command line usage
-
python3 crypto_util.py --crypto BTC
: The basic functionality requires the user to input at least the cryptocurrency symbol. Note that by default images of the data and predictions are saved tofigures/
-
python3 crypto_util.py --crypto ETH --days 10 --lags 80
: More specific flags can be specified, such as the number of days into the future to predict the price. -
python3 crypto_util.py --crypto ETH --days 50 --lags 400
: The largerlags
is the longer the training time, but also the higher the accuracy will be. -
python3 crypto_util.py --ls --source kraken
: In order for the user to see what cryptocurrency symbols are available for an API source, the utility allows for this listing argument with no additional flags. -
python3 crypto_util.py --help
: Prints the usage instructions.
Docker or podman
-
docker run yacu
or podman run yacu
Example Docker or podman Usage
-
podman run yacu --crypto ETH
: In this case the settings are set to default. However, the cryptocurrency you want to analyze is a required flag. -
podman run yacu --help
displays the usage and required arguments for the utility to work.
Documentation
Documentation can be found here.
Requirements
- docker, podman, pip, or anaconda
TODOs
- Add method to save and load previously trained ML model files using the python library
pickle
. - Implement training functionality (get_data already done)
- Add more ML models maybe? Maybe make a more customizable model, such as being able to make a 1D convolutional neural network with specified inputs (e.g. price of BTC correlated with other coins) and user-specfied outputs (whether a particular trend appears bearish or bullish).
- More color palettes for the MainWindow (variations of dark mode)
- Add moving averages toggling to graph
Installation problems
- On some Linus distributions the PySide6 import will throw an error like this:
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version
GLIBC_2.28' not found`- The fix for this is
sudo apt-get install libc6
- The fix for this is