Once the academic part is finished, I'll do a code refactoring.
I think the separation between the RL environment and components are okay.
However, at least the following needs to be done:
Orderbook: either make use of existing solution as suggested in #1 or remove unnecessary loading functions and reduce current complexity due to the use of 3 different data structures (list of OrderbookStates, dictionary of OrderbookStates, and dictionary of trades).
MatchEngine: make use of a compatible open source match engine or introduce concurrency.
Once the academic part is finished, I'll do a code refactoring. I think the separation between the RL environment and components are okay. However, at least the following needs to be done: