The project that my group is attempting to tackle within this 10 week period is a AI/ML Bitcoin Trading Bot. Knowing what the project gives you a lot of information while simultaneously giving very limited information. So yes, it is a project that utilizes AI/ML but that is like saying that a baking project utilizes all purpose flour. It gives you a small inkling of an idea about what you are going to get, but very little detail about the actual implementation. So more specifically, my group and I have concluded that we are going to try to build a multi-objective reinforcement learning model.
Any time that anyone uses a bunch of big words to state what sort of thing they are going to do with AI/ML, a valid followup question may include but is not limited to “What?” and “Why?”. So we can start with the what. Multi-objective means that our model will have more than one goal that it wants to accomplish, and in this particular case of a Bitcoin trading bot those objectives are primarily maximizing profit and minimizing risk. The reinforcement learning part means that we incentivize the model to behave in a way that helps achieve the objectives. Why our group chose this was because it seemed like the approach that made the most sense for a financial training model and would allow us to come up with a model that could outperform a human trader following traditional rules.
Another decision we made is that we are not going to try to make our model fully unsupervised. Meaning that we are going to give it a set of features to learn from and operate with. This is instead of building the model so it discerns relevant features for itself. We chose this course of action mostly to reduce implementation complexity. We worried that trying to build and train a fully self-learning and unsupervised model in our short time frame would be too much of a stretch and would take time away from other aspects of our project.
When it came time to decide as a group what technologies we wanted to utilize to implement the reinforcement model side of this project, we realized that there wasn’t that wide of a variety to choose from. Python is essentially the universal language of AI/ML and when it comes to deep learning and more specifically training neural networks, Tensorflow and Keras serve as the primary Python packages. For the financial trading side of the project, our advisor insisted that we use the open source financial technology platform QuantConnect. Both of these technologies are fantastic for their respective applications, but one drawback is that they are not typically combined in the way that we are intending to. So one of the trickier aspects that we anticipate to face is getting our trained model to play nicely with the QuantConnect API. But that is a problem for future me…
So despite the very steep learning curve for our team to learn how to build and train our model and the potential hangups of trying to get it to interact with QuantConnect, I think that my team is off to a great start and we have a solid approach worked out. As we dive deeper into how this is all going to work I get more and more excited, so onward we go.
– Joe
Leave a Reply