Version: 1.0.0
Cryptocurrency Exchange API
System will connect to various exchanges for real-time trade information.
System will record trading information to be later used for supervised machine learning.
The project is more so to experiment with various technologies and see how far it goes.
- Imperitive Programming Paradigm
- Object Oriented Programming
- Parallel Processing Approach
- Dependancy Injection with Adapter Pattern
- Extension Methods
The following links are the exchange API documents
The following development process seems to work well for this project.
- Test Driven Development
- Docker implementation
- Saving 15 minutes, 1 hour and 1 day trading candles for neural network
- Worker Service with SignalR broadcast
- Binance Trading
- Acount Information
- List Orders
- Post Orders
- Product Information
- Ticker Information
- Fill Information
- Product Historic Candles
- Coinbase Pro Trading
- Acount Information
- Account History
- Account Holds
- List Orders
- Post Orders
- Product Information
- Ticker Information
- Fill Information
- Product Order Book
- Product Historic Candles
- Subscribe to Real-Time Feeds
- Trading Indication
- Relative Strength Index
- Recurrent Neural Network (RNN)
- Tensorflow
- Keras
- Long Short Term Memory (LSTM) model for time series prediction
- XML Comments
- Automatic Trading based on end-user rules
- Front End with Electron and Angular 9
- TensorFlowJS
- RNN Trained Shards
- Unit Test
- Implement prediction API via machine learning Flask APP
- Angular - (Framework - Frontend)
- TypeScript - (Language - Frontend)
- Webpack - (Bundler)
- npm - (Package Manager)
- Karma - (Test Runner)
- Jasmine - (Test Framework)
- Rxjs - Reactive library for handling asynchronous data calls, callbacks and event-based programs
- Sass
- Angular Material - UI component Library
- .Net 5 C# - (Language - Backend)
- AspNetCore SignalR - (Real-Time web functionality library)
- Python 3 - (Language - Backend/Machine Learning)
- Keras - (Dead Learning Library)
- Tensorflow - (Artificial Intelligence Library)
- Flask - (MicroWeb Framework)
- Celery - (Distributed Task Queue)
- RabbitMQ - (Message Broker)
Database
- MongoDB - (Database Engine)
Centralized Logging
- GrayLog - (Centralized Log Management)
- Using visual studios build solution.
- Run the "copy_plugins.bat", it will copy the plugins to the exchange.service plugin directory (release and debug)
- Using visual studios run the "exchange.service" project.
- Using visual studio code, open the "exchange.signalR.client.web.frontend" directory and run the following
npm install
npm start
- Navigate to localhost:9000
- Using visual studio code, download and install docker
- In some cases you might have to clean orphaned images using the following command:
docker image prune
- Using visual studio code, remove volumes with the following command
docker-compose down -v
- Using visual studio code, build the docker image with the following command
docker-compose up --build
- Byte Order Mark (BOM) casuing issues with UTF-8 file. It can be removed form the init.sh file as part of docker mongo with the following command in bash:
sed -i $'1s/^\uFEFF//' theFilePath