Skip to content

Instantly share code, notes, and snippets.

@gjlr2000
Last active January 28, 2021 06:56
Show Gist options
  • Save gjlr2000/62561e11e1044aa5d06e7abe2b757522 to your computer and use it in GitHub Desktop.
Save gjlr2000/62561e11e1044aa5d06e7abe2b757522 to your computer and use it in GitHub Desktop.
DeepQ_trader_public.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "DeepQ_trader_public.ipynb",
"version": "0.3.2",
"provenance": [],
"collapsed_sections": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"[View in Colaboratory](https://colab.research.google.com/gist/gjlr2000/62561e11e1044aa5d06e7abe2b757522/deepq_trader_public.ipynb)"
]
},
{
"metadata": {
"id": "6Y-pG57IemAH",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# DQ Trader\n",
"\n",
"Sharp eyes noticed that in my previous blog ['Teaching a Robot to Buy Low and Sell High'](https://medium.com/@gjlr2000/teaching-a-robot-to-buy-low-sell-high-c8d4f061b93d) there was no mention of neural networks.\n",
"\n",
"Yet, in all the news the talk is all about how 'deep learning' was used to beat humans in their own turf (Go). So where can the neural networks be used ?\n",
"\n",
"In a nutshell: instead of building a gigantic 'cheatsheet' (please read my above blog) built by simulating tons of possible 'states', we train a neural network.\n",
"\n",
"What follows is quite geeky, so feel free to skip it.\n",
"\n",
"## Substituting the Q-space with a Q-space function\n",
"\n",
"Neural networks prefer data to be within a limited range (usually from 0 to 1 or -1 to 1), so in the code I will scale Ritter's parameters:\n"
]
},
{
"metadata": {
"id": "LURyvuBa2wA_",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"\n",
"\n",
"import random\n",
"import numpy as np\n",
"import pandas as pd\n",
"from collections import deque\n",
"from keras.models import Sequential\n",
"from keras.layers import Dense\n",
"from keras.optimizers import Adam\n",
"\n",
"\n",
"def find_nearest(array, value):\n",
" array = np.asarray(array)\n",
" idx = (np.abs(array - value)).argmin()\n",
" return array[idx]\n",
"\n",
"\n",
"\n",
"class PSpaceRitter:\n",
" def __init__(self, \n",
" H = 5, \n",
" P_e = 50, \n",
" sigma = 0.1, \n",
" P_min = 0.1, \n",
" P_max = 100, \n",
" tick_size = 0.1,\n",
" lot_size = 100):\n",
" self.theta = np.log(2) / H\n",
" self.P_maxOrg = P_max\n",
" self.P_minOrg = P_min\n",
" self.P_eOrg = P_e\n",
" # P_spaceOrg => Unscaled Price Space\n",
" self.P_spaceOrg = np.arange(0,(P_max-P_min)/tick_size+1)*tick_size + np.round(P_min/tick_size)*tick_size\n",
" self.Pdiv = (self.P_maxOrg - self.P_minOrg) / 2.0\n",
" # Scale the resuting prices to fit a range from -1 to 1\n",
" self.P_space = (self.P_spaceOrg - P_e)/ self.Pdiv \n",
" self.sigma = sigma\n",
" self.TickSizeOrg = tick_size \n",
" self.P_e = self.P_eOrg - P_e\n",
" self.TickSize = (self.P_space[1] - self.P_space[0])\n",
" self.LotSize = lot_size\n",
"\n",
" \n",
" def PriceOrg(self, d):\n",
" return find_nearest(self.P_spaceOrg, d)\n",
"\n",
" def Price(self, d):\n",
" return find_nearest(self.P_space, d)\n",
" \n",
" def PriceSamplerOrg(self, sampleSize):\n",
" eps_t = np.random.randn(sampleSize)\n",
" pe = self.P_eOrg\n",
" sigma = self.sigma\n",
" lambda_ = self.theta\n",
" p = self.PriceOrg(pe)\n",
"\n",
" prices = [p]\n",
" for i in range(0,sampleSize):\n",
" y = np.log(p / pe)\n",
" y = y + sigma * eps_t[i] - lambda_ * y\n",
" pnew = pe * np.exp(y)\n",
" # pnew = np.min([pnew, self.P_max])\n",
" # discretizing to make sure it appear in P_space\n",
" prices.append(self.PriceOrg(pnew))\n",
" # this one seems missing !\n",
" p = pnew\n",
" return prices\n",
" \n",
" def PriceSampler(self, sampleSize):\n",
" prices = self.PriceSamplerOrg(sampleSize)\n",
" return ((pd.DataFrame(prices) - self.P_eOrg) / self.Pdiv).values\n",
"\n",
" def SpreadCost(self, d_n):\n",
" return self.TickSize * np.abs(d_n)\n",
" \n",
" def ImpactCost(self, d_n, LotSizeScl):\n",
" return d_n * d_n*self.TickSize/ LotSizeScl\n",
" \n"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "7rbO26aliLNL",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"Once we have a model of the price movement, we can add the full space by selecting how many actions we want to consider at any point (2*K +1) and a maximum level of the portfolio (M)"
]
},
{
"metadata": {
"id": "4zjdBL8oZs51",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"class PHASpace:\n",
" def __init__(self, pSpace,\n",
" M = 10, \n",
" K = 5):\n",
"\n",
"\n",
" self.Pdiv = pSpace.Pdiv\n",
" self.P_e = pSpace.Pdiv\n",
" self.P_space = pSpace.P_space\n",
" self.P_spaceOrg = pSpace.P_spaceOrg\n",
" self.pSpace = pSpace \n",
" self.A_spaceOrg = np.arange(-K ,K+1)*pSpace.LotSize\n",
" self.H_spaceOrg = np.arange(-M, M+1)*pSpace.LotSize\n",
" self.Hdiv = M * pSpace.LotSize\n",
" self.TickSize = (self.P_space[1] - self.P_space[0])\n",
"\n",
" self.A_space = self.A_spaceOrg / self.Hdiv\n",
" self.H_space = self.H_spaceOrg / self.Hdiv\n",
" \n",
" self.LotSize = pSpace.LotSize / self.Hdiv\n",
"\n",
" self.iterables = [ self.P_space, self.H_space ]\n",
" self.State_space = pd.MultiIndex.from_product(self.iterables) \n",
" self.Q_space = pd.DataFrame(index = self.State_space, columns = self.A_space).fillna(0)\n",
"\n",
" self.iterablesOrg = [ self.P_spaceOrg, self.H_spaceOrg ]\n",
" self.State_spaceOrg = pd.MultiIndex.from_product(self.iterablesOrg) \n",
" self.Q_spaceOrg = pd.DataFrame(index = self.State_spaceOrg, columns = self.A_spaceOrg).fillna(0)\n",
" \n",
"\n",
" def Holding(self ,d):\n",
" return find_nearest(self.H_space, d)\n",
" \n",
" def PriceSampler(self, N_train):\n",
" return self.pSpace.PriceSampler(N_train)\n",
"\n",
" def Price(self, dn):\n",
" return self.pSpace.Price(dn)\n",
" \n",
" def HoldingOrg(self ,d):\n",
" return find_nearest(self.H_spaceOrg, d)\n",
" \n",
" def PriceSamplerOrg(self, N_train):\n",
" return self.pSpace.PriceSamplerOrg(N_train)\n",
"\n",
" def PriceOrg(self, dn):\n",
" return self.pSpace.PriceOrg(dn)"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "B_K4Bchxiv89",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"In pure Q-trading we simulated the process thousands of times to fill the table. In my previous blog you will see how some cells remain unfilled or filled with only a few random numbers. \n",
"\n",
"The resulting policy could give a very high Sharpe ratio, but a human he could barely make sense out of it as sometimes the computer would tell him to buy high when the price is already high (just because it there was one time when the simulation went even higher at that particular state).\n",
"\n",
"For every price and holding there is a vector of 11 elements (11 actions: from going short from -K to being long K lots). We could try to fit a curve instead of filling up the 231 cells of the table,.\n",
"\n",
"**Note** I will be using neural networks below just because they are in vogue, but you can actually use any other function approximator. Neural networks are [universal approximators](https://en.wikipedia.org/wiki/Universal_approximation_theorem), but so are humble [polynomial functions](https://en.wikipedia.org/wiki/Stone%E2%80%93Weierstrass_theorem)."
]
},
{
"metadata": {
"id": "Mk6net9tm7Vn",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"I will replace the 'cheatsheet filling' of the Q-space with a neural network represented by:\n",
"\n",
"\n",
"```\n",
"model = Sequential() \n",
"model.add(Dense(self.action_size*2, input_dim=self.state_size, activation='hard_sigmoid'))\n",
"model.add(Dense(self.action_size*2, activation='hard_sigmoid'))\n",
"model.add(Dense(self.action_size, activation='linear'))\n",
"model.compile(loss='mse',\n",
" optimizer=Adam(lr=self.learning_rate))\n",
"\n",
"```\n",
"\n",
"The state has two variables (price and holding), and there are 11 possible action, so the neural network is a:\n",
"\n",
"* 2 inputs (price and holding)\n",
"* a layer of 11 x 2 = 22 'sigmoid' neurons,\n",
"* another layer of 22 'sigmoid' neurons\n",
"* a layer of 11 'linear' neurons\n",
"\n",
"**Note** we could change to another 'universal approximator' - make life easier with polynomial, but as this is a didactic blog I keep with the latest hype.\n",
"\n",
"\n",
"\n",
"\n",
"\n"
]
},
{
"metadata": {
"id": "2wf6Pdgfl0j0",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"Below I redefine functions I need; "
]
},
{
"metadata": {
"id": "eKi5SiGu2iro",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"\n",
"\n",
"class DQNAgent:\n",
" def __init__(self,\n",
" phaSp, \n",
" batch_size = 1000, \n",
" gamma = 0.999, \n",
" epsilon = 0.1, \n",
" epsilon_min = 0.01, \n",
" epsilon_decay = 1, \n",
" learning_rate = 0.001, \n",
" kappa = 0.0001, \n",
" N_train = 10000, \n",
" ):\n",
"\n",
" self.phaSp = phaSp\n",
" \n",
" self.state_example = (self.phaSp.Price(0), self.phaSp.Holding(0))\n",
" self.state_size = len(self.state_example)\n",
" self.action_size = len(self.phaSp.A_space)\n",
" self.batch_size = batch_size\n",
"\n",
" self.memory = deque(maxlen=self.batch_size*100)\n",
" self.gamma = gamma # discount rate\n",
" self.epsilon = epsilon # exploration rate\n",
" self.epsilon_min = epsilon_min\n",
" self.epsilon_decay = epsilon_decay\n",
" self.learning_rate = learning_rate\n",
" self.alpha = self.learning_rate\n",
" self.kappa = kappa\n",
" self.N_train = N_train\n",
" self.TickSize = phaSp.TickSize \n",
" self.LotSize = phaSp.LotSize \n",
" self.model = self._build_model()\n",
" def _build_model(self):\n",
" # Neural Net for Deep-Q learning Model\n",
" model = Sequential() \n",
" # Attempt one \n",
" #model.add(Dense(24, input_dim=self.state_size, activation='sigmoid'))\n",
" #model.add(Dense(24, activation='sigmoid'))\n",
" # Or dynamic architecture\n",
" model.add(Dense(self.action_size*2, input_dim=self.state_size, activation='hard_sigmoid'))\n",
" model.add(Dense(self.action_size*2, activation='hard_sigmoid'))\n",
" model.add(Dense(self.action_size, activation='linear'))\n",
" model.compile(loss='mse',\n",
" optimizer=Adam(lr=self.learning_rate))\n",
" return model\n",
" def remember(self, state, action, reward, next_state):\n",
" self.memory.append((state, action, reward, next_state))\n",
" def act(self, state):\n",
" if np.random.rand() <= self.epsilon:\n",
" return random.randrange(self.action_size)\n",
" act_values = self.model.predict(state)\n",
" return np.argmax(act_values[0]) # returns action\n",
" def train(self, state, action, reward, next_state):\n",
" target = reward + self.gamma * \\\n",
" np.amax(self.model.predict(next_state)[0])\n",
" target_f = self.model.predict(state)\n",
" target_f[0][action] = target\n",
" self.model.fit(state, target_f, epochs=1, verbose=0)\n",
" def save(self, name):\n",
" self.model.save_weights(name)\n",
" def load(self, name):\n",
" self.model.load_weights(name)\n",
" \n",
" \n",
" def SpreadCost(self, d_n):\n",
" return self.TickSize * np.abs(d_n)\n",
" # return 0.0\n",
"\n",
" def ImpactCost(self, d_n):\n",
" return d_n * d_n*self.TickSize/self.LotSize\n",
" # return 0.0\n",
"\n",
" def TotalCost(self, d_n):\n",
" return self.phaSp.pSpace.SpreadCost(d_n) + self.phaSp.pSpace.ImpactCost(d_n, self.LotSize)\n",
"\n",
"\n",
" def ResultReward(self, currState, nextState):\n",
" currPrice = currState[0]\n",
" nextPrice = nextState[0]\n",
" currHolding = currState[1]\n",
" nextHolding = nextState[1]\n",
" dn = nextHolding - currHolding\n",
" cost = self.TotalCost(dn)\n",
" pricedif = nextPrice - currPrice\n",
" pnl = nextHolding * pricedif - cost\n",
" reward = pnl -0.5 * self.kappa * (pnl * pnl)\n",
" result = {\n",
" 'pnl': pnl,\n",
" 'cost': cost,\n",
" 'reward' : reward,\n",
" 'dn' : dn\n",
" }\n",
" return result\n",
" \n",
" \n",
" def LearningSimple(self, N_train) :\n",
" pricePath = self.phaSp.PriceSampler(N_train)\n",
" \n",
" currState = (self.phaSp.Price(self.phaSp.P_e), self.phaSp.Holding(0))\n",
" for e in range(0, N_train-1):\n",
" state = np.reshape(currState, [1, self.state_size])\n",
" action = self.act(state)\n",
" shares_traded = self.phaSp.A_space[action]\n",
" currHolding = currState[1]\n",
" nextHolding = self.phaSp.Holding(currHolding + shares_traded)\n",
" nextPrice = pricePath[e+1]\n",
" nextState = (nextPrice, nextHolding)\n",
" next_state = np.reshape(nextState, [1, self.state_size])\n",
" result = self.ResultReward(currState, nextState)\n",
" reward = result['reward']\n",
" self.train(state, action, reward, next_state)\n",
" state = next_state\n",
" currState = nextState\n",
" #if e % 1000 == 0:\n",
" # print(e)\n",
" # print(currState, reward)\n",
"\n",
" \n",
" def OutOfSample(self, nsteps):\n",
" pricePath = self.phaSp.PriceSampler(nsteps+1)\n",
" currHolding = self.phaSp.Holding(0)\n",
" pnl = []\n",
"\n",
" for i in range(0, nsteps):\n",
"\n",
" currPrice = pricePath[i]\n",
" currState = (currPrice, currHolding)\n",
" state = np.reshape(currState, [1, self.state_size])\n",
" action = self.act(state)\n",
" shares_traded = self.phaSp.A_space[action]\n",
" #shares_traded = chooseAction(currState)\n",
"\n",
" nextHolding = self.phaSp.Holding(currHolding + shares_traded)\n",
"\n",
" nextPrice = pricePath[i+1]\n",
" nextState = (nextPrice, nextHolding)\n",
"\n",
" result = self.ResultReward(currState, nextState)\n",
" #pnl.append(result['pnl'])\n",
" pnl.append(result['pnl'] * self.phaSp.Pdiv * self.phaSp.Hdiv)\n",
"\n",
" currHolding = nextHolding\n",
"\n",
" return pd.DataFrame(pnl)\n",
"\n",
"\n",
" \n",
" \n",
" def mapQspace(self):\n",
" \n",
" aa = self.phaSp.Q_space.reset_index()\n",
" bb = self.model.predict(aa[['level_0', 'level_1']].values)\n",
" cc = self.phaSp.Q_spaceOrg.copy()\n",
" \n",
" cc.iloc[:,:] = bb\n",
" return cc\n",
"\n"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "AhyA-AGCo9Ck",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"The code above now will do all the work. \n",
"\n",
"So now I create an 'agent' that uses the full Q-space generated when the price dynamics behave as Ritter -- \n",
"\n",
"**Note** you can now add another class that generates different dynamics, *but* the deep Q trader will only work if the space follows a Markov Decision Process -- so if you were to add a Geometric Brownian Motion the deep Q trader does not work."
]
},
{
"metadata": {
"id": "RSp_-2n92vVi",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"\n",
"pRit = PSpaceRitter()\n",
"ps = PHASpace(pRit)\n",
"\n",
"agent = DQNAgent(ps)\n"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "4ftaz3IADUp6",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"## DQN-Trader explained\n",
"\n",
"DQN-Trader: [D]eep [Q]-space [N]eural Network.\n",
"\n",
"Instead of filling up the Q-space cheatsheet, we fit/train the NN with the rewards. That's it.\n"
]
},
{
"metadata": {
"id": "nHW6vMNtECDN",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"How does it work ? Let's see:"
]
},
{
"metadata": {
"id": "MaHmSd7tLqpz",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 347
},
"outputId": "02329fab-395e-4fc0-f818-56c5cc9f3d7e"
},
"cell_type": "code",
"source": [
"pnl = agent.OutOfSample(5000)\n",
"plt.plot(pnl.cumsum())\n",
"\n",
"for i in range(0,7):\n",
" agent.LearningSimple(10000)\n",
" pnl = agent.OutOfSample(5000)\n",
" plt.plot(pnl.cumsum())\n",
"plt.show()\n",
"from google.colab import files\n",
"\n",
"modelWeightsName = 'dqn_trader.h5'\n",
"agent.model.save_weights(modelWeightsName)\n",
"files.download(modelWeightsName) \n"
],
"execution_count": 18,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\nrkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3f55e9f978>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"id": "zSudkguZqTEe",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"On my experiments, I just needed to run about 70k training examples (as opposed to the 10 million simulations to fill the Q-space cheatsheet) to get the same performance as in [Machine Learning for Trading](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3015609).\n",
"\n",
"However, I believe the main advantage is the visibility of the result - in my previous blog [Teaching a Robot to 'Buy Low' and 'Sell High'](https://medium.com/@gjlr2000/teaching-a-robot-to-buy-low-sell-high-c8d4f061b93d) the Action cheatsheet was very noisy.\n",
"\n",
"But look at the neural-network cheatsheet:\n",
"\n",
"It is very clear (in red) that a trader has to sell whenever price is above 50, and even lower *if* there is already a holding of the asset. The regions seems to be partitioned in nice lines.\n",
"\n",
"To be fair, the lines could be derived analytically (as we have the underlying model), but this does show that a neural network can be used to derive a 'white-box' intuitive action cheatsheet."
]
},
{
"metadata": {
"id": "oviftpUcG8v9",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 367
},
"outputId": "a4ba11a1-b7dc-41f3-f952-31d4ce2e9685"
},
"cell_type": "code",
"source": [
"DQ_space = agent.mapQspace()\n",
"DQ_full_action = (pd.DataFrame(DQ_space.idxmax(axis =1))).unstack()\n",
"\n",
"import seaborn as sns\n",
"from matplotlib.ticker import FormatStrFormatter\n",
"\n",
"ax = sns.heatmap(DQ_full_action[0], yticklabels=100, cmap = 'RdYlBu')\n",
"\n",
"majorFormatter = FormatStrFormatter('%0.2f')\n",
"plt.show()"
],
"execution_count": 19,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\nsvP/AQfnamqqNnZqAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3f55e99cf8>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"id": "gIGPQc-isPd8",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"A different perspective (3D)"
]
},
{
"metadata": {
"id": "r9V8nxLda2tx",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 330
},
"outputId": "3d8baa88-7eca-4697-ecb3-62fce5269c23"
},
"cell_type": "code",
"source": [
"Q_action = (pd.DataFrame(DQ_space.idxmax(axis =1))).reset_index()\n",
"from mpl_toolkits.mplot3d import Axes3D\n",
"from matplotlib import cm\n",
"from matplotlib.ticker import LinearLocator, FormatStrFormatter\n",
"import matplotlib.pyplot as plt\n",
"\n",
"fig = plt.figure()\n",
"ax = fig.gca(projection='3d')\n",
"Qcols = Q_action.columns\n",
"X = Q_action[Qcols[0]].values\n",
"Y = Q_action[Qcols[1]].values\n",
"Z = Q_action[Qcols[2]].values\n",
"ax.scatter3D(X, Y, Z, c=Z, cmap = 'RdYlBu');"
],
"execution_count": 20,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f3f54211128>"
]
},
"metadata": {
"tags": []
}
}
]
}
]
}
@lorrp1
Copy link

lorrp1 commented Jul 24, 2018

Hello, nice work. lets say i manage to improve it and make it profitable on real data (forex ecc.), how can i use the agent to go "live" using any api (ib, oanda ecc.)?

@gjlr2000
Copy link
Author

Sorry for the late answer; did you manage to connect it to Interactive Brokers ? if so, let me know as I am getting acquainted with their API.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment