Creating Bitcoin trading bots that don’t lose money
In this article we are going to create deep reinforcement learning agents that learn to make money trading Bitcoin. In this tutorial we will be using OpenAI’s gym and the PPO agent from the stable-baselines library, a fork of OpenAI’s baselines library. If you are not already familiar with how to create a gym environment from scratch, or how to render simple visualizations of those environments, I have just written articles on both of those topics.
Feel free to pause here and read either of those before continuing. For this tutorial, we are going to be using the Kaggle data set produced by Zielak. The.csv data file will also be available on my Github repo if you’d like to download the code to follow along.
Okay, let’s get started. First, let’s import all of the necessary libraries. Make sure to pip install any libraries you are missing.
Next, let’s create our class for the environment. We’ll require a pandas data frame to be passed in, as well as an optional initial_balance, and a lookback_window_size, which will indicate how many time steps in the past the agent will observe at each step. We will default the commission per trade to 0.075%, which is Bitmex’s current rate, and default the serial parameter to false, meaning our data frame will be traversed in random slices by default.