tspooner / rl_markets

Market Making via Reinforcement Learning
https://arxiv.org/abs/1804.04216v1
BSD 3-Clause "New" or "Revised" License
313 stars 105 forks source link

How to use your code? #8

Open dichen9412 opened 5 years ago

dichen9412 commented 5 years ago

Hi, Finally, I made everything correct and it looks like I have successfully built your project. However, I have no idea how to run your model. Could you please provide a readme for us to use your model? e.g. How to feed the data? How to run?

Best, Di

mbasso commented 5 years ago

Hi @dichen9412, I'm trying to run it manipulating the dataset I found here. However, I'm not able to make it work correctly. Have you figured out the shape of the dataset or something else?

dichen9412 commented 5 years ago

Not yet. I just successfully compiled this project but I have no idea about his data format or how to run it. If you know, please tell me!

Hi @dichen9412, I'm trying to run it manipulating the dataset I found here. However, I'm not able to make it work correctly. Have you figured out the shape of the dataset or something else?

tspooner commented 5 years ago

Hey @dichen9412 and @mbasso! Sorry for the delayed response - been very busy with follow up work.

First off, I appreciate that there is a lack of documentation with this project which I apologise for. The main point I make to people is that this framework is designed with a very specific kind of data in mind: the combination of "Market Depth" and "Transaction" level data. The former tell us about the shape of the order book at any given time up to N level into the LOB. The latter tells us about the actual transactions/executions that occurred. You can find more details about this in the paper that I have linked in the readme.

This data is very expensive as it is incredibly high-fidelity and includes event-level updates which can occur on the sub-millisecond level. As such, I typically recommend that you take the RL and LOB components from this and implement your own data parser or stochastic simulator to feed into and populate the LOB. The data your refer to @mbasso could potentially be used from what I can see - though it is a very small dataset with only 3 weeks of updates.

What I would recommend is that you check out my "rsrl" repo which I've been working on for some time. This includes fast implementations of RL algorithms with some documentation. I am in the process of integrating this and other works of mine into that framework. When that's done, I'll add much more documentation.

Sorry for any hassle! Tom