xchg-rax-rax / crypto_quote_service

A program for obtaining mass market data from from various crypto excahnges for the purpose back-testing and training ML models
0 stars 0 forks source link

Implement QuoteService class #4

Open xchg-rax-rax opened 1 year ago

xchg-rax-rax commented 1 year ago

Overview

The QuoteService class will be the core class of this application. It will be responsible for the following:

Implementation

QuoteService should be implemented in a modular fashion which permits it to be used to manage the interaction with essentially any crypto exchange's websocket API. The best way of doing this is not trivially obvious in advanced so one aught to be willing to experiment during this process. The two options I see are:

  1. Have a single QuoteService class which gets passed lambdas or std::functions which define it's exchange specific behavior
  2. Make QuoteService a parent class from which exchange specific children inherit and overwrite

My inclination (bias) is towards the former, but it may be better to opt for the latter in this situation

xchg-rax-rax commented 1 year ago

After some playing around I've concluded that the best approach is start out by creating classes specific to a few exchange that we wish to connect to and then once we have gained a better understanding of what the requirements of this class truly is and the correct abstractions required to support them, we will then create this class.

For now we will create a number of new issues to cover creating QuoteService classes for the different exchanges