Metadata-Version: 2.1
Name: yacu
Version: 0.0.1
Summary: Predict crypto prices with ML.
Home-page: https://github.com/1103s/crypto-bot
Author: Yet Another Crypto Util Team
Author-email: 
License: GPL3
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3.6
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: pandas (==1.3.5)
Requires-Dist: scikit-learn (==1.0.2)
Requires-Dist: numpy (==1.22.2)
Requires-Dist: matplotlib (==3.5.1)
Requires-Dist: cryptocmd
Requires-Dist: skforecast (==0.4.2)
Requires-Dist: art (==5.5)
Requires-Dist: requests (==2.27.1)
Requires-Dist: pyqt5 (==5.15.6)
Requires-Dist: sphinxawesome-theme
Requires-Dist: pyside6 (==6.2.4)
Requires-Dist: PyQt5 (==5.15.6)
Requires-Dist: pyqtgraph (==0.12.4)
Requires-Dist: sphinx-rtd-theme

[![Code Is Passing All Unit Tests?](https://github.com/1103s/crypto-bot/actions/workflows/python-app.yml/badge.svg)](https://github.com/1103s/crypto-bot/actions/workflows/python-app.yml) [![Documentation Is Generated?](https://github.com/1103s/crypto-bot/actions/workflows/gh-pages.yml/badge.svg)](https://github.com/1103s/crypto-bot/actions/workflows/gh-pages.yml) [![Publish To Docker](https://github.com/1103s/crypto-bot/actions/workflows/publish.yml/badge.svg)](https://github.com/1103s/crypto-bot/actions/workflows/publish.yml)

# 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

### Docker or podman


- `docker pull yetanothercryptoutil/yacu` or

- `podman pull yetanothercryptoutil/yacu`


### Local installation via anaconda
- 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

- Podman: `podman run yacu`

- Docker: `docker run yacu`

- Python: `python3 gui.py`

### CLI

#### 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 to `figures/`
- `python3 crypto_uitl.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_uitl.py --crypto ETH --days 50 --lags 400`: The larger `lags` 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](https://1103s.github.io/crypto-bot/).

## Requirements

- docker, podman, 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)
- Fix tabs. Automatically switch tabs after new forecast
- Add moving averages toggling to graph (IDK what a moving average is)


