Hi all, I came across this video a couple of years ago & recently got some free time for an attempt to reproduce something similar. I've got async data feeds (tick data+L2) inplace using IB. For reproducibility/replay, I'll be storing all the feed data locally using mongodb+arctic. My next milestone is to specifically focus on state representation. I.e how to represent and encode the 'input' tensors you see in the following figure. I have a background in building systems for evolutionary optimization & on/off policy learning based techniques (RL). I'm starting this thread to journal my progress & learn from others with a stronger domain/background in trading. Please feel free to share any feedback/advise you may have. Thanks, ~exo
the issue is the data from IB. They are not realtime, but 2-30ms snapshots, so you actually don't test your system on the real market. Crap in, crap out
Thank you that makes sense. Each 'step' in the environment is actually a collection of sequential ticks, so the frequency of executions are closer to minutes. That window size is parameterized and tunable. I'm not looking to do any ultra hft, but good to know IB isn't near real time. (I'll look into Rithmic/IQfeed as well)
The hard part will be the pre-processing. I gave up on this approach of trading a single instrument with only time and sales data on that instrument. I realized that if it was possible, many trading firms with far more resources than I have will likely have already exploited whatever market inefficiency is left to exploit. I suspect that there might still be an edge to trading correlations between multiple instruments, but haven't really put much thought into it.
The most important question is why reverse engineer this NN Trading system? Where is the evidence to show that it is a good workable system?