Skip to content

Instantly share code, notes, and snippets.

@gjlr2000
Last active January 28, 2021 06:56
Show Gist options
  • Save gjlr2000/6954900a0f6500bbe41867bb5b2ed140 to your computer and use it in GitHub Desktop.
Save gjlr2000/6954900a0f6500bbe41867bb5b2ed140 to your computer and use it in GitHub Desktop.
LSTM ts US Rates prediction
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "LSTM ts US Rates prediction",
"version": "0.3.2",
"provenance": [],
"collapsed_sections": []
},
"kernelspec": {
"name": "python2",
"display_name": "Python 2"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"[View in Colaboratory](https://colab.research.google.com/gist/gjlr2000/6954900a0f6500bbe41867bb5b2ed140/lstm-ts-us-rates-prediction.ipynb)"
]
},
{
"metadata": {
"id": "px6CignJqKFO",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"#Time Series prediction with LSTM\n",
"\n",
"In [Writing like Cervantes](https://medium.com/@gjlr2000/writing-like-cervantes-61a63c964d82) I showed how LSTM-NN (Long Short Term Memory Neural Networks) show what a fellow blogger says is an \"[unreasonable effectiveness(http://karpathy.github.io/2015/05/21/rnn-effectiveness/)\". If you see the example I developed, you will see how the neural network 'learned' to write in Spanish (letter by letter) in a little under 2 hours after reading the whole 'Don Quijote'.\n",
"\n",
"Not surprisingly, LSTM NN have been proposed to predict Time Series. \n",
"\n",
"**Spoiler alert:** Most of them do not work in Finance (so far I have only seen one that claims to work: [Universal Features of Price Formation in Financial Markets: Perspectives From Deep Learning - Sirignano and Cont](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3141294))). That could be because:\n",
"\n",
"1. practitioners who have implemented a working version of a neural network would use the whole extent of the law to keep it secret ( [Goldman suing ex-programmer](https://www.vanityfair.com/news/2013/09/michael-lewis-goldman-sachs-programmer)) and avoid the 'alpha destruction effect' that happens when a strategy is published [Does Academic Research Destroy Stock Return Predictability?](https://www2.bc.edu/jeffrey-pontiff/Documents/Predictability%20JF%20with%20copy%20edits%20Final.pdf)\n",
"\n",
"2. The timeseries cannot be predicted, because as as Sirignano and Cont write, \"*the data used for estimation is often limited to a recent time window, ... financial data can be **‘non-stationary’** and **prone to regime changes** which may render older data less relevant for prediction.*\" \n",
"\n",
"3. The timeseries can be predicted, but the practicioner/researcher does not have access to the full dataset/ computer power.\n",
"\n",
"Below (after some discussion of points 2 and 3) I will show in full detail an example of time series prediction of the 5 year US rate. \n"
]
},
{
"metadata": {
"id": "-i4kcZKLjBeg",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"# -*- coding: utf-8 -*-\n",
"\n",
"# In this section I add the initial libraries required for this tutorial\n",
"# 'requests': allow HTTP-post API calls\n",
"import requests\n",
"# 'json': to format as json calls to API\n",
"import json \n",
"# 'pandas': to plot the timeseries\n",
"import pandas as pd\n",
"# 'datetime': to convert different date formats\n",
"import datetime as dt\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline\n",
"import time"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "7NHrfLnKjPeS",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"More about non-stationarity and regime changes -- you can read the formal definition in Wikipedia [non-stationary](https://en.wikipedia.org/wiki/Stationary_process)], but le me give you a real life example.\n",
"\n",
"In September 6 of 2011 the [Swiss National Bank](https://en.wikipedia.org/wiki/Swiss_franc#2011%E2%80%932014:_Big_movements_and_capping):\n",
"\n",
"\n",
"> *set a minimum exchange rate of 1.20 francs to the euro (capping franc's appreciation) saying \"the value of the franc is a threat to the economy\",[18] and that it was \"prepared to buy foreign currency in unlimited quantities\"*\n",
"\n",
"a policy that was abandoned on 15 January 2015.\n",
"\n",
"\n"
]
},
{
"metadata": {
"id": "v6ESbyx2twv8",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"The period when the Swiss Franc was capped versus the Euro correspond to the shaded region in the plot below. The big moves before and after correspond to **regimes changes**. The argument against neural networks being unable to identify them usually assumes that there is no additional variable that can be used to identify them, hence it can be weakened if we are able to **add** input variables which identifies the regimes (in this case, central bank intervention).\n",
"\n",
"However, it is difficult to think ahead of the variables needed for prediction (it is always easier in hindsight), and if there are multiple regimes the data will be subdivided over and over, reducing the possibility of successful training (mental exercise: think what woulk happen if we take the 'Don Quixote' example mentioned above and train the system with a mixed bag of small blogs in different languages instead of a huge book in one language).\n"
]
},
{
"metadata": {
"id": "T40OFkNjJP84",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 302
},
"outputId": "29264b8a-5f0e-4b33-cb20-664efc928241"
},
"cell_type": "code",
"source": [
"\n",
"\n",
"QUAND_TS = \"https://www.quandl.com/api/v3/datasets/ECB/EURCHF.json?api_key=o6YKGjyDcseE3LFKrSK3\"\n",
"\n",
"# Call Quandl to get all the data\n",
"q = requests.get(url = QUAND_TS)\n",
"q_json = q.json() \n",
"q_data = q_json['dataset']['data']\n",
"\n",
"# Compute derived series from Quandl Data\n",
"dates = []\n",
"values = []\n",
"q_len = len(q_data)\n",
"column_len = len(q_data[0])\n",
"column = column_len-1\n",
"columns = q_json['dataset']['column_names']\n",
"print (columns)\n",
"Value = 'EURCHF'\n",
"columns = ['Date', Value]\n",
"\n",
"# The following could be easily done using Quandl's\n",
"# python API - but I keep it the 'hard way' to allow\n",
"# compatibility with Google Colaboratory\n",
"df_rates = pd.DataFrame.from_records(q_data, columns = columns)\n",
"df_rates['Date'] = pd.to_datetime(df_rates['Date'])\n",
"df_rates.set_index('Date', inplace=True)\n",
"ax = df_rates[df_rates.index >= pd.Timestamp('2008-09-06')].plot(figsize=(8,4))\n",
"ax.fill_betweenx(ax.get_ylim(), pd.Timestamp('2011-09-06'), pd.Timestamp('2015-01-15'), alpha=0.1, zorder = -1)\n"
],
"execution_count": 4,
"outputs": [
{
"output_type": "stream",
"text": [
"[u'Date', u'Value']\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.collections.PolyCollection at 0x7fc4703e2ed0>"
]
},
"metadata": {
"tags": []
},
"execution_count": 4
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAeEAAAD7CAYAAABdcCxHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAIABJREFUeJzt3Xd4W9X5wPGvLHmveGXvdTKchBDI\nJoQEKHuUhvJjr1JWSxhlFVpGoVDKpqwGCrSU2ULCKCMJKyEkZBDIOllOHGc4tuO9NX5/XEmWbMlW\nbFnDfj/Pkye6S3ot6eq9Z9xzTA6HAyGEEEKEXky4AxBCCCG6K0nCQgghRJhIEhZCCCHCRJKwEEII\nESaShIUQQogwkSQshBBChIkl1C9YVFQZEfdEZWQkUVpaE+4wWhUNMYLEGUzRECNInMEWDXFGQ4wQ\nuXHm5KSafK3vtiVhi8Uc7hDaFA0xgsQZTNEQI0icwRYNcUZDjBA9cbp02yQshBBChJskYSGEECJM\nJAkLIYQQYSJJWAghhAgTScJCCCFEmEgSFkIIIcJEkrAQQggRJiEfrEOIjiqtrG/XcTk5qe0+NlSi\nIUaIrjhFdNu/fx8XX3weSo3yWj98+AgGDBjIOef80r3u+uuv4v7776WuzuF1TGNjI0OHDueWW27H\nbDZTW1vLU089htabiIuLJy0tjZtvvp1evXrzwAP3MHv2XGbMOMb9vKeeOpePPlrCxx9/wIIFz9O3\nbz/3tlNOOZ1TTjm93X+fJGEhhBARbeDAQTzzzIte61566YXDOuaBB+7h888/4aSTTuWppx6jT58+\n3Hbb7wFYunQx99xzJ88993KbscyZcwLXXz+/HX+Fb5KEhRBCdHljxuRSULCHmppqVq1awdtvL3Rv\nmzPneI4+ekpY4pIkLIQQokuzWq18881XnHXWOezdW8DAgYMwm72Ht0xNbWq6eOGFZ3jjjX+GJDZJ\nwkIIIdr08gcb+XptQVCf8+hRPTl3zvA298vP383111/lXh44cBBZWdk+9zWZTIDD65gdO7ZzwQUX\nM2vWbLZt24rdbm/19X796+tbtAm7LF36OVu2bHIvn3/+xUyfPrPNv8EfScJCCCEimq824f/8520q\nKyu81pWVlZGTk0N+fqHXMXfddSsDBgwCoF+/fuzevYuGhgbi4uLcx27ZsolRo8a0GUtY2oSVUrnA\nQuBxrfUzzbYNAN4A4oC1WuurgxadEEKIiHD56WM5ferAcIfhNnHikTzwwL2cd96FJCQksH79D6Sk\npNCjRw/y8wu99r322hu4+ebfMGXKNJKSkpk581gWLHiOa6+9AYAvv1zCu+++xdNPt97ZqzO0mYSV\nUsnA08ASP7s8CjyqtX5PKfU3pdRArXV+MIP058ChGv71mebinyl6ZiSF4iWFEEKEWPPqaIBrr/0t\nv/zlBcyffy0Wi4WkpGTuvvs+n8f37duP2bPn8uqrL/HrX1/HDTfczLPPPsXFF/+S1NQ0evbsxYMP\nPuKsyg4tk8PhaHUHpZQFiAVuA4o9S8JKqRhgL9Bfa20L5AWLiipbf8HDsGLjAf7+wSbmHtmfnx87\nlMT4wGvXc3JSKSqqDFYonSIaYoTQx9ne+1NHDs1m687iIEcTXNEQI0RXnHIOBUc0xAiRG2dOTqrP\nDN9mEnZRSt1DyyTcC/gG+AQ4EvhGa31Ha89jtdocwZp0efXmQu5d8B0AcbFm/vPQaUF5XiGEECLI\nfCbhjnbMMgH9gCeBXcBHSqlTtdYf+TugtLSmgy/ZpLG+0f24odHG8rV7GDmgR0DHRurVkqdoiBGk\nJBxM0RAjRFeccg4FRzTECJEbp7/R2zo6dnQxsFtrvcNZHb0EGNvB5wxYcoL3NcSeg1WhemkhhBCi\nwzqUhLXWVmCnUmqEc9UkQHc4qgDFx3pXa1fXNvrZUwghhIg8gfSOnoTRA3ow0KiU+gWwCMjTWr8H\nzAdecXbS+gn4oPPC9ZaeEue1/P6yPM6YOcTnvg6Hg09X7WFE/3SG9UsPRXhCCCFEq9pMwlrrNcDs\nVrZvB9o/XEgHmGNiuPPCSTz4rzXudTa7HXNMywL+toJy3v5iOwAv3z4nZDEKIYQQ/kT9fMLD+6d7\nJdW6Bt93Sm3ZXRqqkIQQQoiARH0Sdpk6phcAtfVWn9sPOXvUpiXFhiwmIYQQojVdJgknOntK19X7\nLgk3Wo31cbHBuUdZCCGE6Kguk4RdtytV+ukhXd9ozJoRa+kyf7IQQogo12UyUnZ6IgBFZbU+t6/d\nWgRAXJBG6xJCCCE6qssk4V4ZRhL+7Ps9tDoUZ+jH5xZCCCF86jJJ2DWL0r7iahYuy/PaZvOYwNlm\nC9r8EUIIIUSHdJkknJEa73782fd73I/tdgdvLd3uXq5r8N17WgghhAi1LpOEPXnOCfnFur0sXl3g\nXi4ur8Nqs/s6zG1vcTU79pZ3WnxCCCEEdNUk7PF4jT7YYru/zlsudy9YyQP/XIPdLlXXQgghOk/X\nTMIeWbiwtGXC3V/ifzrFmrqm6urFawr87teWTbsOsa+4ut3HCyGE6Pq6ZBKudiZSh8NBeVWDj+3+\nZ1sqr26aq1bntz3Upc1u56MVuyivqncv3/b8t/z1zR+4a8FKGhp9Dx4ihBBCdMkkDFBYWkN9ow27\nx+1K82YPA8DaSg9pzxrodduKydtf4XcoTIDlPx3gP1/t5MZnlgOwJb+MorI69/a2qr6FEEJ0X102\nCR+qqPeqWgbI6WHcS2y1+u+Y1bwd+P5XV3Pd41973eZUW2917xfjUfd9qKKONVu826A/XLGb3Qcq\n2/dHCCGE6NLanMowWtnsdne1dO6QTM45dhilzirj1npH++uM9cLCjVx79jgqaxq44alljBuaxdSx\nvbyGwXx+0Ua2F3j3ql65qZCVmwq5+syx7C2q5vQZg9m2p4zU5Dj656R09M8UQggRxbpsErbaHNQ4\n234H90ljUO9UqvKM5UZnErba7Pzj4y3MmtAHNTADAJufJLxaF/Hxd7tZv70YgJ92lvDTzhLSkuPc\n+3gm4Gfmz+L6J752Lz+/cCMAH3y7y71u1oS+/HLOcBLju+zHIIQQohUB/forpXKBhcDjWutnmm3b\nBewBXD2QLtBa7w1ijAGbP288L320mcqaRiqqG3jq3S0A5PRIAMBiNqqOXSXhn3aUsGLjAVZsPOCe\nk9hVEp44Ipt124q9nv/dL3e0eM2K6pYdv646fQyJ8W2PUf31+n18vX4fAD0zEjn7mKG8sGgjfbKS\nmD9vAjk5qQH93UIIIaJTm0lYKZUMPA0saWW3k7XWVUGLqp3GD8vmjBlDeP3zrazYcMC9fsygTAAs\nzqpjq9VItFaPUq/d7iAmxuTuyNU3O7lFEm5NSmIsVbWNXH3mWCaPNuY2/uu10zGbY3jni+0UFFWR\nX+j/LTpYWssLi4zS8v6SGjbvLmXMiJ4Bv74QQojoE0jHrHrgFGBfJ8cSFGZnaVfvKXOvy0wzhrSM\nNRt/7ier8rngD//zGhVr/tPLaLTa3dXRFnMMd1x4JL+/eBJTx/Zq8TqPXjeDIX2aSqqnThvEC7fM\ndidg43UTSE+O48rTxnDPZZO557Kj3dv+/OupHDE82+/fUdcgtzYJIURX12ZJWGttBaxKqdZ2e14p\nNRhYBtyhtQ7bUFPmmJbTJLmGsUxOiHWvq6hu8Bpjuqq2kcqaBo9ezzCifw8AhvVNZ8POQ1R5zFWc\nkRrPNWfmcuvzKwDITk9oc67igb1SeeqGY0iMN2OOieG3vxjv3lZSXsdf31xHcmIsO/dVUFZZ38oz\nCSGE6AqC0SPoD8AnwCHgfeAc4F1/O2dkJGHpxDl9M3sktVjnalvNzm69N3JSSgIpDUZ7cWpqgleb\n7N/vPB6A1VsOkpYUR05OKllZKYwblk1yooWfzRjqNWa1Pzn+1ueksuCuE9maX8rNT37NJ6vyufLn\n46OmXTiUcXbktUYO9V/7ECmiIUaInjjlHAqeaIgRoidOCEIS1lq/5nqslPoYGEcrSbi01P+QkcFQ\nXd2yBFlUFNh9us+9u55ZE/oCUFfb6PO4sQPSvZ7zxnlGaba4ODhN4raGptJ2WWU9MbbIr5bOyUkN\n+D0OhtJ21hKMHJrN1p2Bt/OHQzTECNEVZyi/m+0V6nOoPaIhRojcOP1dGHRosA6lVLpS6lOllOs+\nnWOBDR15zo4yx7T+J/VIifO77aedJXzwrTEXcYyPau1QyE5PdD9+63Pd5oxPQggholebSVgpNUkp\n9SVwKXCDUupLpdRNSqmztdblwMfAd0qp5UARrZSCQ8HVMcufo0a13uPY1YPZV9tyqFz8M6P9/fNV\n+Xz83e6wxSGEEKJzBdIxaw0wu5XtTwJPBjGmDrE0S543nTvBa3ny6F5e8wsDnHvccN7+YrvXunCV\nhAFmju/Da59qAN7/Jo+Z4/qQmZYQtniEEEJ0ji43dnTzEmzu0Cyv5eH90nnxd7O91p00ZWCL5wlj\nDsZijuGhX091L9/y7Lcyt7EQQnRBXS8Jm9v+kyw+9rnt/In8bPKApudpo225s/XMSGLK2N7u5Sv/\n8gWLlueFMSIhhBDB1gWTcGBF2Kx0o3r3j5caA2iogRmcc+ww9/b4uM67jSpQV501zmv5/W/yKC6v\nlVKxEEJ0EV0uCVs8SrDD+6X73e/pW47jnsuOZlDvpm7jniXk+NjwvzU9M5N44ZZjvdbd+twKrvzL\nFzI9ohBCdAHhzzRB5tkmfMEJI/3ul5oUx8Be/m/oHtInLahxtVesxcx9l09usf7eV77n1ue+xeGQ\nUrEQQkSrLjeHnmd1dHuqlK84dTSJ8RZSk/zfTxxq/Xum8PLtcyitrGfdtiL+9dlWAIrL69hXUkO/\n7OQwRyiEEKI9umASbircx7UxlrMvM8b1CWY4QZWRGs+cI/sz58j+fLYqnzeXbmfX/gpJwkIIEaW6\nXHV0WlLTJA2+ekF3FcP6G+3dWz1mixJCCBFdulyWSohrKtxHQg/nzjKoVyoWs4m8/dJBSwgholWX\nS8Ke2lMdHS0s5hgyUxOormv0ud3ucFDXYA1xVEIIIQ5Hl8xSF5+kOG364ICmFoxmcbFm6hps2B0O\nXv98Kys2HnBve+/rnVz72NfsK64OY4RCCCFa0+U6ZgHMPqJfuEMIiaR4MwX1Vr796QBL1hSwZA38\n/YNNXH7KaD5aYUz8sHJTIWfPGhrmSIUQQvjSJUvC3cXEkTkAvPzxZq/1nsuFnTx/sxBCiPaTJBzF\nRg7o4bWcnd5ypqUDJZKEhRAiUkkSjmIDeqZ4Lf/lmun86rQxXuvyD1ZRVeu785YQQojwkiQcxSzm\nGM49brjXOl8TWGzMOxSqkIQQQhwGScJRLinB6Fs33Dl4h83WcizpHfvKQxqTEEKIwATUO1oplQss\nBB7XWj/jZ58/A9O01rODF55oy8xxfbDZ7EwZ0wsAq83eYp/CQ7WhDksIIUQA2iwJK6WSgaeBJa3s\nMwaYFcS4RIBiYkwcd2R/khKM4TqPGtWzxT6WAOdYFkIIEVqBVEfXA6cA+1rZ51Hg90GJSHRIYryF\nY8Z7T0Jh9VFFLYQQIvzaTMJaa6vW2m99plLqUuArYFfwwhIdUdtg81redaCCVZsLwxSNEEIIf0yB\nTgqvlLoHKPZsE1ZKZQLvAccD/YBX2moTtlptDoul606sEAk27izh9r8t48ozc1mwcIN7/VsPnOKu\nthZCCBFSPtsFOzps5RwgB/gGiAeGKaUe11rf6O+A0ggZwSknJ5Wiosiegai9MfZMjePl2+cA8NpH\nMTRYjc5ae/eX0yMlPqgxQujfy9LK+nYdN3JoNlt3Fgc5muCKhhghuuKM9PMcuvbvUahFapw5Oak+\n13foFiWt9bta6zFa66nA2cDa1hKwCL0hfdLcj+uaVVMfqqjj4dfXkl8YeV9YIYToDtosCSulJmF0\nvBoMNCqlfgEsAvK01u91bniio2wezQ219d5TG7775Q70njKeX7iRB6+aGurQhBCi22szCWut1wCz\nA9hvVyD7idAye0zn2Lwk/N0mo7OWr3uLhRBCdD4ZMauLi4nxTMJNJeHFq/e4HxeX17X6HItX7+Hy\nh5bKGNRCCBFkkoS7uLFDMt2PN3iMIf3vxdvcj0cN9J6NqTnXvuu2FQU5OiGE6N4kCXdxJ00eyKUn\njwJgX1G1z336Zif7Pd6zJ3Jn9KwWQojuTJJwFxcTY2LWhL4kxluorjOqo5t30Gq0+m8TPnCo6ZYy\nX5NDCCGEaD9Jwt1EcoKF6jqjTfeGp77x2tbYSsesH3c03QtaVF7LvmLfpWkhhBCHT5JwN5GSGEtl\nTSMOh6PFWNKNjf6T8KermjpwvbF4G3ctWIk9wFHWhBBCtE6ScDeRkRqP1WZnr4+SbGslYV/KqxqC\nFZYQQnRrkoS7iczUBAB27W85Opa/NmF/44oXlcn8xEIIEQyShLuJtJQ4AIrLmxLoiUcPwBxjor7R\n5vMYV3JOS/Ke9KGiWkrCQggRDB2dwEFEifRkIwlv3VPmXmc2m7BYYti5r4KGRhtxscbsVnUNVt75\nYgd7i6oAGNAzhY27St3HNVh9J20hhBCHR0rC3URakpGEt+Q3JeExgzKpdw5luXB5nnv9f77cyRfr\n9rK1oBzAKwEDNLTSkUsIIUTgJAl3EynNqpTPPW6412hahyqaBuVw3crkT4Of6mshhBCHR5JwNxFn\n8f6oR/RPB6B/TrLX/wDJCd4J+1enjfFafnPp9s4IUQghuh1Jwt1ErEcSHtE/nWH9jCT881nDADDH\nNG3/fkuh+3FGajzTcnuHKEohhOhepGNWNxHv7HQFcMeFk9yPXcm50dnZasPOEipqjOrom86dwKDe\nqQBcdfoYvttUyI87SkIVshBCdHlSEu4mMtMSfK53J2GbnaraRh57e717W+7QLFKdHbqmju3N/HkT\n6JWRCPi/h1gIIUTgJAl3c64k/OG3u6lrNrGDL4Wlxn3GHyzf5XN7RXUDlz+01GeJ+bNV+bz2yRZJ\n4EII4RRQdbRSKhdYCDyutX6m2bZfAVcANmA9cJ3WWn5lI9DvzjuCmBiT1zrP6QlrPJJwdrrvkrPL\n+8vyOGPmkBbrb3l2OQBPvLOel247DpPJeL1DFXXuDl3HHtHPXc0thBDdWZslYaVUMvA0sMTHtiTg\nPOAYrfUMYBQwLdhBiuAYPTgTNTDDa11GajyDnQlxxcYD7vX3XHZ0u14jzTkoCHgn9U9W5rsfH5Rh\nL4UQAgisOroeOAXY13yD1rpGaz1Xa93oTMjpwIHm+4nI5kqcrhmTTpo8kKRmtyn5sudgVYt10z16\nUlfWNN1v7Fk10nw+YyGE6K7arI7WWlsBq1LK7z5KqduBG4AntNY7gxeeCIXm7beBTlVYUFTFgJ4p\nAHy38QCfrMzHbG6q7v5u4wF6ZiQyPbeP13jTdQ0y2IcQQkCQblHSWj+klHoS+FgptUxrvdzfvhkZ\nSVgsZn+bQyonJ/LbJUMRY4+UeMqqmkbM2lVY6fd1xw/P5sftxQBs2VPOGbNHAPDiB5ta7LvI2Xnr\n2KMGeVVBl1TWs7u4hqNG92pXvB15T0YOzW73saESDTFC9MQZDec5REec0RAjRE+c0MEkrJTKBHK1\n1l9rrWuVUv8DZgB+k3BpaU1HXjJocnJSKSpqOa1fJAlVjH/+9VSuefQr93JVTaPf173qtDFs31vO\nE++s50BxFUVFlWRkJvvc1+Wiez7xWv58VT6fr8rn+p+P48iROYcdb2llfds7+TByaDZbdxa369hQ\niYYYIbrijPTzHOT3KJgiNU5/FwYdvUUpFnhFKZXiXJ4M6A4+pwix+FgzU8Y0lUqH9knzu29SgoXx\nw7JIjLdQW29UKy/6eke7XvfAoci4IBNCiHAJpHf0JKXUl8ClwA1KqS+VUjcppc7WWhcC9wFfKKVW\nAMXAos4MWHSOS05qavM//4QRbe5fW2+lwDnV4b7iaq9tD1/tu4P8SVMGei27pkoUQojuKpCOWWuA\n2a1sfwV4JWgRibCI82inT4gLvJWiuq6R3llN1dGPXjeDjNR4n/uOHpThdavSio2F/Or0se2IVggh\nugYZO1oAEBNj4v4rJpOc2PatSYCzOtpKQ6Mdu93oTZ2eEuc3AQOYTDB/3nje/XIHBUXVfvcTQoju\nQoatFG79clK8RtBqzdGjjA5VDY02GpyTP1x9RstSbarHPMax5hjGD8vmviumuNc1Wu0dCVkIIaKa\nJGHRLtnpxkQOO/dVkH/A6Ilo8Zgu8bbzJ3Le3BEM65vuXjdiQA/340nKSOK1DTJwhxCi+5IkLNpl\npDOh/v3DTaz4aT9glHRd1MAMTjx6gLsknJEaT4ypaSCPRGe78/ynloUqZCGEiDiShEW7JMa37E4Q\na2n5dXJNGOGZgMFoP3bZsrs0yNF1X2VV9TJLlRBRRJKwaJf42JZfnTgfI6GdPn0wI/qnc+3ZuV7r\nc4dkuh//5Y11wQ+wG9q6p4z7X13Nhyt2hzsUIUSAJAmLdomPbZlwfZWOM9MSuOPCSQxpNgBI89mc\nRMdtLygH4Mt1e8MciRAiUJKERbvEx7VMwgk+1rXmqjPGBCscAazWB92Pd+wtD2MkQohASRIW7RLn\noyTsav8N1GTnBA7Ko9e0MAZA+Wb9Ph5/+wfy9lcEdEx5VT3lHjNVLVqe535cUl7XYlQzIURkkCQs\n2iXGZOLF3812LycnHP64LzEmEymJsewr6ViC2LqnjP9+vQO7w4Hd7nDPV1xQVEV5dfsmewinT1bm\n8/6yPAqKqvnqhxbTePu0dpv3ZAqeg6E8+tYPPPrWD9Q3Gvdz5xdW8u6X27HZ5B5tIcJNRswS7WYx\nx/Dy7XNI65FESXH7Zi2pqm0EYH9JNX2yWp+NyZeislpeWLQRgNwhWSz4cBM2u4PjJ/Vn8ZoCstIS\nuPOiSe2KLVwOljZN+xhriaHRavfZ89zTh9/uarFu9ZaDHDWqpzv53vnid+QOyWRD3iEARvTvwcJl\neZRXN3DVGWMPq0Zi5Yb97D9YyZjBmW3vLITwS5Kw6LD4WDOxHZwjevPuUncSdjgcmExtV207HA4e\nen2te/mD5buwOYfQXLymAICSijoqqhtIS47z+RyRqLKmqVp57dYi1m4tIndIJhmp8Xzz434uPXkU\n44ZmAcZ7kF9YRY+UOMqqGvjdeRN55E2jt/kbS7a1qM52JWCA1z5tmvDsxUUbuf+KyazRRby/zKjK\nnnNkP2rrrfTMSGLWhL5ez/Onf6xyP77lvCPadQElhJDqaBFmPXsYI28tXl3gXnffq6t52CO5+lPX\nYPNa9letvWZrUQciDD2LueVpuSHvEN/8aAyK8sr/trjXL/tpP0/950fKqozEnZWeQM+MRPf27zYV\nBvy6T7zzozsBAyxdu5cVGwtZuCyPm/+2nP99Z9z61Hz2q09X7Qn4NYQQ3iQJi7A6Y+ZgwJhb2OEw\n2nN3H6hE7ylr9bjV+qBXSa41hyrqOhpmSDXa7KQkxjJ5dE+f280eHeA27fIe6MRiNmGztRysY9rY\n3lx0omqxHuDGcycARq1BaxavKWDTrkO88skWr/U/7Syhtt7qnshDCBE4qY4WYZXTo6nUdsXDX3DX\nxUcFdNwbi7e5H0/P7c23Gw64l8cPy+LHHSXu5W83HGDWhL6MDEK8odDYaCfWHMO844ZTcLC6RQnf\nZndQXddIckIsmR6zVmWkxGMymTj3uGE8t3Cj1zFnzhxMrMXMESOysdrsWMwxrNpcSP+cFPpme1cl\n//ac8WSkxvPjzhKG9U3D4TA6dwG89NFmAPrlJHPNmbnctWAlgPv/P156tLvqv6S8jsVr9jB6UAZD\n+qQRF2vG4XDwzH9/YkDPFAb1SuXo0b28LiqE6G4kCYuwaj7oh2dpLJAOSQApzaZf/OWc4fTPSeHI\nkTn86bXVADz0+lrOL65h0vCsIETdeaw2O+U1DQzISSHGZOLm847AarNz2/MrAOidmcSBQzX84aVV\nLY698nTjvuvh/Xvw6HUz2LzrEG99sZ2bzj3Cq83eVd3tukUM4KyZQ3h/WR5pSbEM6p0KwMxxfdzb\nJ4/uyarNTfchX3jyaBLjLcye2M9rcJB7X/metOQ4+mYlsyXfKKV7Hueyv6SGVZsP8s6XO5g7qT/H\nT+rvddtbVW0jcZYYn7fCCdGVSBIWYdUrM8lr+d+fb3U/rm+0tUjCNXWNPP72D17rEuLM9M9Jdt+W\nkxBnYe6k/gBMHdPL3S7670+30C9zIr2bvWZn+XRVPlsLyrj0pFGkJvnuGGZz3lLlupAoPFSD3e4g\nx6Nd17OkeMWpo3ngn2taPM+fr5raImGNHpzJPZdNDijWYyb0ZfSgDDLTEnxun3fccFZtPkiMCW6/\ncBLTJvRj685iTp8+mKR4Cw2NNndnuIrqBio87lluy5I1BSxxHpsUbyEuNoayqgZyeiRwy3kTW7SR\nu8bGDqTznhCRLqAkrJTKBRYCj2utn2m27Tjgz4AN0MCVWmu5AVEEpHlJ2HPAiTqP5OSydmux1z2w\nAD1S4pk/bwJP//cnstO9k8g5xw5jSN80d/X1txsO8PNZQ9mws4S6BhtHjTLaXXcfqMRqszOsXzrB\nsGLjAT773uiw9KfX1pCVFs+QPmnkDs1iRP90d2JZsmYPn67aw/hhWfzf3BFUH6oBICutqZrZZDLx\ns8kDyEhNIDMtgfnzxvPEOz+6t08amROUEmO2R9NAczEmE49eN8PnNtcFz5xJ/bnzxe+8ts0c14e1\n24ro2SORsUMy+fi73dx07hH0zU6mtLKej7/bzVqPjnM19VZqnLd2F5XV8fjb6/n1GWOxmGPYvPsQ\nuUOyuPPvxms8fPU0n53YhIgmprZmXFFKJQMfAtuAH30k4W3AcVrrAqXUO8A/tNYf+3u+oqLKiOi9\nkZOTSlFR++5tDZVoiBE6HmdlTQNvLtnGio3ePXmPn9Sf80/wbslduanQfV9wWnIcp08fzBEjslvM\n0tRcfYONv7y5jrJK78E7+mQlcerUQSxwtnVeedoYryTZXjf/bXmr26eN7c3Zs4Zy63Pf+tw+b/Yw\npo7t7fd4h8OBwwE6vxQ1KKPNvz/YRg7NZuvO4hbr120rYuWmQuwOB/83dyQZqfHYHQ5wtD6i2pb8\nUsqq6ikuq0MN7IHFHMMz//2+mKzQAAAgAElEQVSpzThOnjKQo0b1pEdKvM/tI4dmd4tzKBSiIUaI\n3DhzclJ9ngCBlITrgVOA2/xsn6S1dt2MWAREdqObiDipSXE+f0R/2lnSYp1rcA8wqi6PHJkT0GvE\nx5m55YJJ3PW8d9LbX1LjTsAACz7cBEBaUiwnTx3EqIEZpCTFEmMyUVtvJSHOjMlkoqyqnj0Hq8gd\nkonJZKKmrpHaBhtZzurcrLSEVnsbr9h4gBUbD/jclhhvIXdo66eRyWTCZDKqnCPJxBE5TBzh/ZnE\nmEzQxjXCKB8Tejx41VSefGc9hR6DlzT3v5X5LFlTwAUnjKSkoo7PVxeQ0yOB8qoGjh7dk5zslHb9\nHUKESptJWGttBaxK+b69wZWAlVJ9gBOBu4MZoOgemvfQBaOdsrmS8qbEdsbMIYf1GhNG5HDjuRN4\n/O31DOqdyqlTB7F07V5KK+swmUwkxJnZdcC4gq6oaeStpdsBowTnuv0mMd6COcbkvhgwAcmJse7l\nhDgzVpsdq/M2oUeund6ilLpqc6H7ucHo9HT8pAFU1zWSO7InFeX+k053Eh9r5re/GM+7X+5A7ynj\n7GOG0tBoIzkxlrhYMy86a0QarHb+4XHvdH6hcR/z4tUFLF1TQK/MJG674EjS/LTLi+7L4XBwqMKo\nHctK990forO1WR3topS6ByhuXh3t3NYT+Bi4U2v9WWvPY7XaHJYOjq4kuh6Hw8EZtyzyWnfJqWP4\nxZwRXuteWrSB97/awR2XHM308S2TdEdZbXZueuIr8vZVYDGbGD88h+q6RhqtdurqrVjtDmLNRhIu\nr2pgcJ80Gq129wAWg/ukER9rJj7OzNFjenPWscP8/r0OBxwsraFnRtJhT34hmqzfWsSHy3dSWlnP\n1vxSBvVOo6K6nrlHD+SdJUZfgD9fO4PcYdlhjlREmneXbuPVjza5l2eM78utFx3VWedju6ujW6WU\nSgP+B/y+rQQMUFpa09GXDIpIbTfwFA0xQufFWVpW0+J5q50dt+pqG3y2SbbGXztmc9efPe6wnrc1\ngbyeZ8k30BjDLZLiTLSYmOfnYicmxsRbn2+lzMd3KZJEw7keDTHC4cW5Yr333NvLf9zH+i0H6J8T\n/GaMnJxUn+uD0bXwUYxe058E4blEN/bM/Fleyw2NLTvZO4iIfn0iSpichY8AK/xEN+JwONhaYMy7\nPbJ/010RNXXWkMbRZklYKTUJI9EOBhqVUr8AFgF5wKfAxcAIpdSVzkP+rbV+sXPCFV1ZUrPpEOut\n3mND2+x2ftppTEAglbciEK7meMnBojnPcdVv/OURXPPoVwA0NNr8HdIpAumYtQaY3couvu8NEKId\nzj1uOIuW51HXYKO6tpGaOqs7OX+yMp9C5320MlCDCIT7eyJF4W7DZrOzanMhamAG6X5mT9uYd4iP\nVhgTkowflkV8rJkTjhrA56v38OOOkjbvTggmGTFLRJSTpgxkWm5vbnx6Gas2H2TV5oO8fPscAHR+\n06QOkoNFIFzfExk9qOsrLK3hX59tZeueMhqtxid+50WTGN5sAJ5Gq809FjrAKVMHAbDrgHGn7eI1\nBS3GJ+hMMtyMiDhxzYaqtDtLMVab/JSKw+O+VpOCcJd0qKKOQmdn37v+vpKNeYfcCRjgw293uR83\nWm28uWSbuwQMcMTwbEY424OvOSsXMMait4ew5kRKwiLixMV6J+G6ehtJCRYaPZKwSVqFRSDcbcKS\nhbuCfcXV/LC9mJ9NHsB/v9rJ/1bmt7q/5yxji9cUuIeSBbjkJMWxR/RzL/dIiWfCsCzW7yhx/+aE\ngiRhEXHMMd5JuLbeaBe2es6TKzlYBMCE9MzqSl5YtJE9B6tYsfEAe5uNIe/SLyeZ4yb241+fbfUa\ni97crA1r9KCWo7TFOsdgbwxhrZtUR4uIt2qz0YvR5lUSFqJt0ju6a9lz0BgUx18CvuCEkTx/+/HM\nnmiUcNdtK+bRN9cBTd+B3CGZXHjiSHpmtJxNzeqsyg5lD2lJwiIiZXhUI73z5Q4Ar5KwdMwSgXD1\njg50ZEARWQqKqrj1uW/ZsrvUq1Tr6by5I3j8NzO54RfjmTXBmAPbc6jYjbtK2VZQ5h5a9rTpg5lz\nZH+fz+VqX/5i3V6f2zuDVEeLiFRe1XTCxccZVUSeHbPkFiURCNe3RHJwdPr351spLq/jL2+s87n9\nzosmMaxvGiaTiQnDvYcl9ZxE5c//Wuten9xselRPl50ymgf/uYZPVuYzb/awkPzOSElYRKRpY3u5\nH08Zbcz5K72jxeGS6ujo4HA4eOeL7azectC9zma3s8XjtkSXmeP7cPFJinsvn8zwful+E+XdlxzF\nOB/3+/bs4X+iBs/bmfyVvINNSsIiIo0c2IPlG4yp/uoajPaZMo/SsZSDRWAkC0eDiuoGd0/n+6+c\nQnKChW9+3O9z37OPGerVXOVPWnIcZ84c4jUl6kUnjiS2jQmEfnX6GIrL6/zOUR1skoRFRJo5rg+W\nmBj+/uEmauttlFfVe+8gWVgEwNXRXm5Rimyepc53v9hOSUU9Bc6ZyTy9dNtxh1VFPLRvGgtuPe6w\nZkWaNrZ3wPsGg1RHi4hkMpmYOrYX5hgTNfWN3PjM8hbbhWibTOAQDTyT8PodJV4JePwwo0o5My2+\nXed9pE8TKiVhEbFMJhMpSbFUVje23BaGeET0kaGjo8PnHoNoeModksn1Px/Hf7/eyYzc0JZQQ0WS\nsIho6Ulx5B9sWS0lRCCaLtYkC0ey2vqW0we6xowHY2KXrkqqo0VES/MzC4pUR4tANN0nHOZARKvq\nmg2O4aqC7g6kJCwiWoqfe/okB4tAyC1K0aG+wUZ6chznzhlOUWktxx81INwhhYwkYRHRYi2+K2sk\nB4tANA3WIWk4kjU02khKiA15z+RIINXRIqLF+bunT7KwCESUVZk8/PpaLn9oKdsLysMdSkjVNdrc\nI+N1NwElYaVUrlJqh1Lqeh/bEpRSryqlVgc/PNHdxXpMa3ja9MHuxzKVoQhENPWOLq2sR+8xRoh6\nffHWgI5Zv72Ye15exYa8krZ3jlB2h4OGRjvxsZKEfVJKJQNPA0v87PII8EMwgxLCJc6jOjohzsyw\nfmnEWWJI6KZXzeLwuDtmRUGrsGuCAYAhfdLa3P+59zfw5Ls/kn+wisfeWs9eH4NbRAPXjEXd9ZwO\npCRcD5wC7POz/U7gvaBFJIQHzzbhWEsMd1w4iT9edjRx3fSqWRyeUE/gsHrLQQ6W1bbr2G9+bPqJ\n/XLdXtZtK2p1/+89xlkGuPulVWzfG13V2B98u4trH/saMIau7I7aTMJaa6vW2u+3SmtdGdyQhGiS\nENfUdzA+1kyMyeS1TojWuJuEQ5CEy6rqefb9Ddz+/Ip2HZ+Z6j2xwNP/+Ym8/RU0Wr1v36moaeDy\nh5b6fI68/RVtvk5dQ8t7csPlva93uh/bo6HNoBOE/NcsIyMJSxsDaIdKTk5quENoUzTECJ0X55D+\nPdyPMzOSyMlJ7dBrjRya3fZOYRYNMUJ0xJl30Jj8PSU1odPPpQaPfgoxcRaSEmJJjA/sJzZvXzkf\nrdjVYv39rzZ1tXnp9ydgNpt4/zPv9uJ/3nMSew5Wcuezy7FjavXvXLo6n8ed0wLOPXoAJ00bzK1P\nf8OtFx3FzAn92oyzPe/hxp0l3P63Zdx71TSOVD3d67ftKfXa796rppPdI/Gwn9+XaPndhDAk4VLn\npMnhlpOTSlFRZBfioyFG6Nw4a2qaJm6orqqnqKiS0sr6Vo7wb+TQbLbuLA5WaJ0iGmKE6InTVRKu\nqKjt9HNpvUf18KX3feZ+/LcbZ2GOMbmbUAoP1WAxx5CV3lTyfeAfq6iuM0qouUMz2bDzUIvnv+KB\nz1use+Sa6TTWNWBzlm73F1W5/84de8upqm3k6/X7GNo3jbTkOP7x8Rb3sUu+38MS53CRD7+2GnV7\n6+3Q7T3PH/zHSgD++OIKLj9lNDPH98Fqs3PTE0Y19LnHDefYI/riaLQG5TOK1N9NfxcGUq8nIlqs\nuanFJNIHYheRp7O/Mja7naVr9zIjtw/Pvb/B5z7XPW4km0tPHsUr/2tKgi/cMhuL2cSjb/1A4SGj\ncHLZyaM4ZkJfSsrr+N1z37b62p7DOmY7E/rX6/exadchLv6Z4rG317u3r9vW9gXTJyvzOWnKwDb3\nO1yelcwvf7yZ1z/fSmJ8U23o8Uf1x2LuvnfLtpmElVKTgEeBwUCjUuoXwCIgT2v9nlLqHWCAsav6\nEnhRa/3vzgtZdCeeJ6ekYHH4jG9NZ7U3PvjPNeTtr+SNxdva3NczAQPc9+r3TM/tzaZdTdWyx0zo\nC0BWegKjB2WweXcpWWkJlFTUeR173dnjvJY9b+8pLq/zSsDNTRyRjclkYu1W745fb3+xnXXbirjj\nwkmA0VHq2fd+4uxZQ1EDM9r8+5qz2uxc9ciXLdbXN9qod/aIvvyU0d06AUMASVhrvQaY3cr2ecEM\nSAhPvTKT3I9lvGhxuJp3zLLa7GzIO8T4YVnEBOH7VFbVskfv1WeOpdFqZ1i/dO588Tu/x+4tquad\nL3a4l686fYzX9lOmDWLz7lJOPHoAU8b0wmqzU17dQHlVA0eMaNkef/7xI/h3GxcDg3qn8ptzxgPw\n444S6hqsTBiezTWPfgXAtoJyFi3L4/QZg5n/9DIA/vHxFh66elqrz+uL5982flgWl5w0iq9+2Mui\n5bvc66eO7XXYz9vVSHW0iGieY0fHdO8LZtEOzceO/s9XO/h0ldEOergTxPuSmhjr1Ufh7kuOct/j\n27xXs0ufrCT2l3j3jXnjT6dQW+Vd2h07OJPHfzOT1KRY9wVDZpp3D2pPE4ZneyXhC04YycQR2dz2\n/Aqy0hJaJFLPSRJuO38iD//b6LD1/rI8Squa/qaDZbXsLa4mITne72vbHQ7KqxpwOBzuGCtrmy5Q\nfn3GWBLjLZw5cwinTB0ktxh6kCQsooaUhMXh8/7ObN7dVPW7cFkeZx0ztN3PXN9oo6Co2mud5yAb\nsRYzC247jvXbi8lMTeDeV74H4IFfTSVvfwX3v7qa5AQLT8+fRUpibIskDJDuZxYxX3J6JPL4b2Zy\no7MEO3dSfwBe+N3sNkv9amAGj18/gxufWQ7AVz94Dwtx94KVXsvTc3tz5WlGyd3hcHDlw1+4t505\ncwgnTxlIda3RWexvN85y9xI3mUySgJuRJCyihvTLEocrxj1spVEW9mw7XbR8F/1zUjhqVE9fh7ap\nqKwWu8PB+GFZnDxloM920xiTiYkjcgB47uZj3SPADemTxsu3zwn6xBLpyXHMGNebftkpXjEEdGxK\nPA/8agq///vKNvf9dsMBCoqquPrMXGx2779h4bI8Fi7Lcy8HeptWdyXvjogawWjDE91Ms/mEB/ZM\nZZvH5AjPvr+Bv147vdVqXl9q6qz84aVVAIwc0COgjku+xkbujNqdK04d0/ZOfvTJSuaRa6azWh/k\nmPF9SUqwcP+rq30OApJfWNVqm7cIjCRhETW653g6oiM8+2Xt2Fvuc0jJN5ds49pmvY3b4jnEZHb6\n4SXwSJeVnsDPJjfdqnTb+RNxAP379qCoqBKrzc5jb/3Alvwyr+Nc1c4bdpbw3aZCRg7oQe6QzBBH\nH30kCYuo0bzaS4i2uAqa5VX1PPCpBsAcY+KyU0bxxuJtVNdZ2zVmcXJCU4fB7PTgjPIUqZq34VrM\nMdx6/pH8sK2Y/IOVWMwxHDexn7vaOXdoFrlDs3w9lfBB+puKqOGQJCwOk2vKy4qaphmKJqkcpuf2\n4Q+XHg3A1oJy7H6+Wz/tLOHyh5by1Q97vdYXeoz8N6h3SvPDuoUjRmRzxgyjt7O0+7afvHMianTX\nAd5F+5mcxYxDHoNdpDl7HHtWI2/OL2Xs4EzKq+pZv6OE6bm9OVhay9tLtwPw6ieaVz/RLZ7/zgsn\nYZZ750QHSBIWUUM6ZonD5SoJ/7ijadJ71yxcnp2iHn3zB+6/cgrLftzHp6v2tBjdyp9h/dqe91eI\n1sglnIh4aoAxk9KAnt2z2k90gI/rNs85qh+7fob78d0LVpJfWBXwUw/vly73rosOk5KwiHjz502g\nvKYhaNOcie6jeYocNbAHc45smrKvR4r3KFCeg3l4uvK00Sz4cLPXulnOcZ6F6AgpCYuIFx9npqck\nYNEOngXV+Dgzt55/pFfPZoD7Lp/c5iQCRwzPZub4Pu7l3/x8nNeyEO0lJWEhRJflWV0cb/GdaPv3\nTOHuS47ijy+v8lo/dUwvvttUCBjtyBf/THHWzCGHPbCHEK2RJCyE6LI8q6NjLf7HLO6fk+x+fPLU\ngcybPRy7w8HAXqkM7p1KTIyJGEySgEXQSXW0EKLL8iwJx8X6/7kzmUxMUsYYz5mpRqKNMZk4acpA\nRg06/Ll0hQiUlISFEF2XR1E4rpWSMBjz+a4bVdzuCR2EaA9JwkKILsvz3vLYVkrCYFRXTx4tk8yL\n0AooCSulcoGFwONa62eabTseeBCwAR9rre8PepRCCNEOJq+SsLS+icjT5rdSKZUMPA0s8bPLU8A5\nwAzgRKVU++fREkKIIFKDmmbxaas6WohwCOTSsB44BdjXfINSaihwSGu9R2ttBz4G5gY3RCGEaJ+U\nxFjSU4yxolvrmCVEuLT5rdRaW7XWLSfhNPQGijyWDwJyB7sQImK42oXbGpBDiHAIdsesNgdSzchI\nwhIh1UI5OanhDqFN0RAjhDbOjrzWyKHZQYykc0RDjBA9cbpuU0pOiovo8ymSY3OJhhgheuKEjifh\nfRilYZd++Ki29lTqMQ9nOOXkpFJUVBnuMFoVDTFC6OMsraxv13Ejh2azdWdxkKMJrmiIEaIrzkar\nDYCGBmvEnk/RcK5HQ4wQuXH6uzDoUP2M1noXkKaUGqyUsgCnAZ915DmFECKYbDZjHmpzjMx4JCJP\nmyVhpdQk4FFgMNColPoFsAjI01q/B1wDvOHc/S2t9dZOilUIIQ6bzeFKwtImLCJPm0lYa70GmN3K\n9q+BaUGMSQghgiYp3kJ9g43E+MjoiyKEJ7k0FEJ0aTf98gimje3NyVMGhTsUIVqQYSuFEF1av+xk\nfnW6jCEkIpOUhIUQQogwkSQshBBChIkkYSGEECJMJAkLIYQQYSJJWAghhAgTScJCCCFEmMgtSiLq\nZKTGh+XYUImGGCF64hQikklJWAghhAgTScJCCCFEmEgSFkIIIcJEkrAQQggRJpKEhRBCiDCRJCyE\nEEKEiSRhIYQQIkwkCQshhBBhYnI4HOGOQQghhOiWpCQshBBChIkkYSGEECJMJAkLIYQQYSJJWAgh\nhAgTScJCCCFEmEgSFkIIIcKkyydhpZQp3DEIEY2i5dxRSqWFO4auRCnV1/l/l88PkaBL3ieslMoA\nrgA+APZqrauUUiatdcT8sc4YrwY+BXZorcsjLUYApVQPIEdrvS3csbTG+X7eBHwPfKe1PhjB7+d8\nYCXwvda6OJLi9Ei8zwCfAB9GSmzNOd/L24Ba4CGtdUOYQ/JJKZWF8Zl/jfGZl4U5JJ+UUunArcAl\nwFStdUGYQ2rB+Zn/FlgBrNVal0TS+dMeXe5KRyk1F1gI9ALmAY8CRNKHpJSaBbyHEeN5wPMQWTEC\nKKXMwGfAHUqpQeGOxx+l1HTgPxjf55nAvyAi38/TgfeBJOB44GGIuDhdP2gzgVOBiPzclVJXA58D\n5cDDEZyABwFvAJmAAsaFNyLflFJXAYuci38HbJFWE6KUOhPjtz0Z4/yJuN/29ugySdiZMAD6AV9p\nrX+ntf4TcIxS6ufOfSLl780G1mit52utbwXGK6XmQcRVAQ4C6gErcKRSKi7M8fgzBNigtf698/1M\nVErlhjsoHwYArzpjfB/Y4toQCZ+7UipGa2131ioUA2nAZKVUUphD86KUGgBMwTjPH9Ja1ztLSK7t\nkXKeA/QF0Fpfp7V+Rmv9jWtDJHzmAEqpSRgFggu11r8HJgPxEZjcBgCvaa1vA14Ftrs2RMp72R6R\n9GVtF6VUrlLqMeA3SqkEIAWocJ6oAN8AdwBore1hinGYUupCj1WpQInzxw7gTuBuCO9VnY84K4HL\ngGXAHGBYWAJrxkecpcArzm19gV3A7tBH5s1HnBXAZ87P/W/AGKXUdRC+z90zRmcCjgHqcFZFY3zu\n6Uqp2HDE5+KM8yIArfUejJqkRqXUeUqpl4AnlVJPOreH5Tz3iNPzMy8GdimlZiulXldKvaqUegQi\n4lx3vZ9rtNb3O99XMKp6R4crNhcf72U/YJhS6ixgATBJKXUlRHdpOCqTsOuqRyk1EuPHbD0wAbgL\nqAL6AHcrpf4M7AMqlVI3eB4bqhidHgZ+q5Q63rmcB0wCsgC01guB/UqpO5zHhuxz8RPnXOdypdZ6\nO/AukADMdF04eNQ8hDNO1/v5idZ6rfNxOsZVvSkcV8d+4jzBufy61nov0AN4AvgzME8p9UfnsSH5\n3P3EOAfcCSwdmKu1/jdQg/H53xTq99NHnL/x+MzXYlws3IjR1nojcESo30s/cXqeQxaMmqR5GE07\nNwJTlFJ/iIA4f+P63JVSMUopk/O8zsD4HQ15rUIb589LwBcY583bwO8wzp+Q/24GU1QGDbiqRccA\nRVrrV4EbABNGKfMNnO1FWut7gXuAQc7qtlBdMcWC+0KhEXgNuMjZieBroAQ4z6Ma7UFgglLKEuIr\neV9xXuyMs04pZdZa12C0F03FqEoH470OpdbeT7tSyuLcbwqwTWtdobV2OGtHwh3nhZ6dR7TWeVrr\nl7XWWzE65/1CKZUQws/dV4yXePwA2oHlSqlrgNkY1dLfh6G00dpnXoDR8fIh4A2t9SHg18AvQ/xe\n+ovTdQ5txqg2dTWZHAJ+BZwTIXFe4jqHgBittQ2jkDAfwlKr0Nr5sx34DlgM/NO5fAfwM6VUfDhr\nQDoiqpKwUuo4pdR/gEeV0RlnJWBWSo3SWldgfDjDgDSt9TvAc85Dp2D0QO70D6lZjDOdP7R/wEhi\n9RgnIMBjGJ00znEuDwXWaa2tnR1jgHFe5tzVBKC1/gDYA9yulPoWo0NZJMXp+mwHAP9yNlN8DVwQ\nSXEqpSxKqdFKKVd131Bgsda6LgJivNy5awrwfxjnzZkYVf1zlFLZLZ81LHFe4dx1vdb6PYzSJsBg\n4H+heC8DjPNK565vA5sx2tfjMb6ji537REKcXuc6RnurSSk11Xl8p19wH0aMWRgXNJ7nzzKtdUje\ny84QNbcoKaX6YPSAvR+jOu9YIB+jzaWH1vovzv3+iFHKfBe4FpiL8SH+Xmu9IsQxzgG+1Vr/Qxmd\nW04ELgTma60LnFVWczGqpi3Avc5Scqc6jDh/q7Xe5zzGAnyEcRL8UWv9UYTG+TRwBvAj8KzW+n+R\nFqdS6lznuv6AGXhEa/1ZhMR4o9Z6j1JqpPOHEKVUb6CvR5V/JMTpei+nAGcBRzqf4q9a688jKE7X\nuT4aOAmYhtFZ677O/swPM07PcygNo6q3VGv9WATF6Hov5wMjMJJxDEbv+C86O87OEtFJ2Nk+cTdG\nonUASVrrR5xVjEdjVEX9AxiO0S74pbP94A9a62Ocz3FCZ56UbcQ4BXgAOEsb94MOAq4BDmitn1BK\nDdNa71BKTdFar+ysGDsQ516t9dNKqREYPaX7a61ficA492mtn1JKKeBcZ9wvR2Cc+7XWTzrj3AvM\n0Fp/GqExDtVa73Q2R9g6K8YgxKmcx8109q2I1Dhd76fSWusIjNN1Drl+k/rrTrxPuIO/mwo4iHEv\nc6dfZHe2iE3Cyujl+jRGaXcDxr1rPwHTtNY1yuiteR/QG6MX5/UYV0znYFwV/1FrXRvmGM3AX4EG\nbXSrRyl1JPBP51M8qLV+vTNjDEKcJoxqofdC8GPckThjgNsxqiM79Z7RaPjcgxDjfcDbnd0OHITv\n5p+00YGsUwXh/XwgSuL8k9b6jQiPMSTvZahY2t4lbHKATK31OQBKqdk0Db5xDUYb4LsYo6csxqjS\nfQmjveW6zk7AAcYIxsARNzi/eA7gcWArxpd9TQhi7GicD2itV0ucQYszVJ97d3gvoyVOOdeDF2Mo\n38uQiOQkXAj8SRndzmOAHcDJwGtKqQVa6zVKqQqMHnRVGFUbqTq0Q8IFGmMtRvVJOvCENjqThJLE\n2f3ijIYYJc7uGWc0xBgyEVsd7UkZnYKWYvTUvAA4DXgE497gYzBGeqkOX4QBxXiR1roqfBEaJM7g\nioY4oyFGkDiDLRrijIYYO1skl4Q9jQPQWpcCzyilqjF60PUGrgl3AnZqK8ZI+SJJnMEVDXFGQ4wg\ncQZbNMQZDTF2qmhJwv2AN5TRlf15YBVwV2d3GjlM0RAjSJzBFg1xRkOMIHEGWzTEGQ0xdqpoScJZ\nGMP8nQ28EqE946IhRpA4gy0a4oyGGEHiDLZoiDMaYuxU0ZKEd2HMG/psZ99+0gG7iPwYQeIMtl1E\nfpy7iPwYQeIMtl1Efpy7iPwYO1W0dMyK+EmboyFGkDiDLRrijIYYQeIMtmiIMxpi7GxRkYSFEEKI\nriiqJnAQQgghuhJJwkIIIUSYSBIWQgghwkSSsBBCCBEm0XKLkhDCD6XUYEADrvmyY4FvMOasrWnl\nuAu11v/q/AiFEP5ISViIrqFIaz1baz0bmAukAn4HPnBOF/eHEMUmhPBDSsJCdDFa6zql1Hxgm1Jq\nLMbcwJkYifkdrfXDwMvAIKXUZ1rrE5VS5wK/wZijtwi4UmtdEqY/QYhuQ0rCQnRBWutGYDXGrDTv\na62PA2YAdyql0oA/YpSeT1RKDQB+DxyvtZ4JfAncGZ7IhehepCQsRNeVDhwAjlFKXQM0AAkYpWJP\n04A+wKdKKYB4IC+EcQrRbUkSFqILUkolAUdglGrjgRlaa4dSqtjH7vXAKq31aSEMUQiBVEcL0eUo\npWKBp4DPgV7AJmcCPgNIwkjKdoxe1ADfA5OVUr2dx89TSp0Z+siF6H5k7GgholyzW5TMQAbwGUa7\n7ijgDWA/sBDIBSYCUyBHkLIAAABgSURBVIE1gBWYBZwB3AzUOP9dorUuDOXfIUR3JElYCCGECBOp\njhZCCCHCRJKwEEIIESaShIUQQogwkSQshBBChIkkYSGEECJMJAkLIYQQYSJJWAghhAgTScJCCCFE\nmPw/VxZog5MCa58AAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc4703bf850>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"id": "Gcu6cGvQjKbZ",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"Sirignano and Cont claim they can make it work by:\n",
"* using huge amounts of data: \"*Our data set is a high-frequency record of all orders, transactions and order cancellations for approximately 1000 stocks traded on the NASDAQ between January 1, 2014 and March 31, 2017*\" \"*In electronic markets such as the NASDAQ, new orders may arrive at high frequency —\n",
"sometimes every microsecond — and order books of certain stocks can update millions of\n",
"times per day. This leads to TeraBytes of data, which we put to use to build a data-driven\n",
"model of the price formation process.*\"\n",
"* massive computer power: \"* Approximately 500 GPU\n",
"nodes are used to train the stock-specific models.*\" \n",
"* LSTM Neural Networks: \"*The resulting LSTM network involves up to hundreds of thousands of parameters. This is relatively small compared to networks used for instance in image or speech recognition, but\n",
"it is huge compared to econometric models traditionally used in finance*\"\n",
"\n",
"I have a pet peeve for irreproducible research, and lacking access to terabytes of limit order data hundreds of GPU's I cannot comment on the the paper.\n",
"\n",
"But a very important factor that could explain the success of this approach, is the use of the whole public view of the Limit Order Book (LOB).\n",
"\n",
"Think about it: above I showed how regime changes worked in the case of the EURCHF; after the announcement, the 'floor' of 1.20 CHF to EUR was in effect an unlimited limit order. In fact, the limit order does not have to unlimited to have an effect on following prices; as long as the limit order is 'large':\n",
"\n",
"\n",
"> *Large limit orders can be \"front-run\" by \"order matching\" or \"penny jumping\". For example, if a buy limit order for 100,000 shares for 1.00 is announced to the market, many traders may seek to buy for 1.01. If the market price increases after their purchases, they will get the full amount of the price increase. However, if the market price decreases, they will likely be able to sell to the limit order trader, for only a one cent loss. [[wiki](https://en.wikipedia.org/wiki/Front_running)]*\n",
"\n",
"Hence, by choosing the whole public Limit Order Book as input to the time series, Sirignano and Cont are using an additional set of features that can provide usefule extra information.\n",
"\n",
"**Note**: Before trying to use neural networks to deal with time series it is worthwile to ask whether we have 'enough' data **and** computer power (which is not the case of most lonely day traders and academics who publish on the web and scientific papers). \n",
"\n",
"\n",
"## How could it work ?\n",
"\n",
"Still, I find value in negative results (the [dark matter of research](https://www.aje.com/en/arc/negative-results-dark-matter-research/) ), so for my sake I decided to try a simple Time Series example 'warts and all'.\n",
"\n",
"In a previous example of AI in TimeSeries I showed how an unsupervised learning technique ([clustering](https://medium.com/@gjlr2000/rates-clustering-611a3af9b294)) can be used to identify regime change. But if you click on the example, you will see that having a timeseries with about 2.5k (250 business days for 10 years) datapoints divided in regimes that range from months to years provides very little data for a big neural network like the 'Don Quijote' (which as more than 1 million parameters to train).\n",
"\n",
"There are quite few sources of material to use LTSM for prediction, but I particularly liked one class in coursera: [Crude Oil price prediction](https://github.com/romeokienzler/developerWorks/blob/master/coursera/ai/week3/lstm_crude_oil_price_prediction.ipynb)\n",
"\n",
" \n",
"Another useful resources are:\n",
"\n",
"* Anomaly Detection for Temporal\n",
"Data using Long Short-Term\n",
"Memory (LSTM) http://www.diva-portal.org/smash/get/diva2:1149130/FULLTEXT01.pdf\n",
"* How to Prepare Sequence Prediction for Truncated Backpropagation Through Time in Keras https://machinelearningmastery.com/truncated-backpropagation-through-time-in-keras/\n",
"\n",
"The following code is a copy of the coursera course, but I will try to give some insights."
]
},
{
"metadata": {
"id": "Pc6ev0xUiyYL",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 302
},
"outputId": "168f8b4b-41e3-493f-fc29-b2164275cd3a"
},
"cell_type": "code",
"source": [
"\n",
"\n",
"# Treasury rates: we can download them from Quandl\n",
"QUAND_TS = \"https://www.quandl.com/api/v3/datasets/USTREASURY/YIELD.json?api_key=o6YKGjyDcseE3LFKrSK3\"\n",
"\n",
"\n",
"# Call Quandl to get all the data\n",
"q = requests.get(url = QUAND_TS)\n",
"q_json = q.json() \n",
"q_data = q_json['dataset']['data']\n",
"\n",
"# Compute derived series from Quandl Data\n",
"dates = []\n",
"values = []\n",
"q_len = len(q_data)\n",
"column_len = len(q_data[0])\n",
"column = column_len-1\n",
"columns = q_json['dataset']['column_names']\n",
"print (columns)\n",
"\n",
"\n",
"# The following could be easily done using Quandl's\n",
"# python API - but I keep it the 'hard way' to allow\n",
"# compatibility with Google Colaboratory\n",
"df_rates = pd.DataFrame.from_records(q_data, columns = columns)\n",
"df_rates['Date'] = pd.to_datetime(df_rates['Date'])\n",
"df_rates.set_index('Date', inplace=True)\n",
"df_rates.plot()"
],
"execution_count": 3,
"outputs": [
{
"output_type": "stream",
"text": [
"[u'Date', u'1 MO', u'3 MO', u'6 MO', u'1 YR', u'2 YR', u'3 YR', u'5 YR', u'7 YR', u'10 YR', u'20 YR', u'30 YR']\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fc4735f06d0>"
]
},
"metadata": {
"tags": []
},
"execution_count": 3
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nXUx5KHHuKE0/Ym7erNN+LpPZghTW3+jucUT6kvZCMOu36qxwlyVBFFB9DsqjWt8NZjzjNZL4eLKD\n+y/PZF9+/6Jb0b61aJawZiaiuNKwj0ii+lgBnk/9uBMVFE+4y9MQueKlXi0MZA3GGnG5r8Z63fG1\nSxNEkY6310ZUGvviupvnGF5v+9Qos9Dx1pt0b9GU/WT0xGvQF5v8Hyo0NA0c4jpdeOKJP3Httd+K\n2f7d797KY489TCgU4sEH/8B3v3sLJlOssyaKIqWl46mpiW1gPVQYNuJhTMwYz9nFXyMo9hoEgdde\nm0BdfeySraNPJ/V//n0PG9+KlUL1h7vefxGVCwHm5s7kviW/YnRqbKLrtCD1zcifPo8xBCVEGawk\n3Jyb4Y5s8ySIVOWYOVKgf2btXM2YuhL6fPdhI59jz2JVkd5fVZa0qtBojFWWkhkaj2+vUfNmjmkn\nKRPSSZmYQdKYVPIbD1A3co92DEXz5Fs6h6j/ZEiL9/fYY++h8Kl4d7aWiFUqNAck2KftmrvT+F02\nPPRHWp57pv9ztjYaXja1OEmPapiteDw0PvIQis+LEMXZDvnjV7ieCPqGUo4c1eLzVdV5Mfue7lL/\nAwf2kZWVTUZG7ASSn1/AWWfN5Ve/+hmBQJA5c+LrInk8HrZs+TjS6ed04Iu5zj8NEASB80at5O88\nPeB+bc0u3D3+mO1eT6yKmyWO9/RFg9SP+NfpwKIrvsv7j2rJy/aOZIgqnI12sLtx4PBWgqR7iC8v\nM3rR5SNtNGSaKa73xy0GavQ0M9rX5zcLr65K8pI5Wt/Nrm1W6CMnmzY9kyzhEKvMm3knewEr3Rs5\nnFTCvtG9npZ2jE7X0Kj6BZITwA9+S6wRD4UnMX84RNTLdDX3abumdg48lpF3/gZThpPDN1wHQM/2\nrchFZiRJZwNN3v54zOcUn5+Qmh5ZpAh9woZy0E3Q34rNcfwaMkpUNfSnu8axw9zKq00h1BE7+KRF\nxmKJYiht/DGSOSksDXD8S59pWZNYM/q8Qfd79dWXOfvs/ve79trrWbPmXP74R2NXqJ07P+Xmm29E\nURRqa2v49rdvYsyYwetoThZfTBfxNMIuD0xheu7xbShKrHEOBWPji03pJu5Z/H9DNrYvO8ZlRDWQ\n7vMVRxf3pNOJ7GuJeOJye/wEV7dDMnT/2Vti5Ouv29jHW1YFJpVlkZhjVKbshWNUMtY0G+mChxKx\n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\nrkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc4729be610>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"id": "yq2OHKdDaUwv",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"The first thing I do is to use USD rates - just to try something different and check whether the results make sense (I do that because I am more familiar with rates, but also because the data is free and does not require me publishing user id's and passwords)\n",
"\n",
"Visually, I can see that values range between 0 and 10%. \n",
"\n",
"**Note**: (first wart): pre-defining the range with *all* introduces [look ahead bias](https://www.investopedia.com/terms/l/lookaheadbias.asp), even if for rates it can be claimed the near future will still range between this values. But so far I have seen this error multiple times.\n",
"\n"
]
},
{
"metadata": {
"id": "WNVeoaH39w_r",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 221
},
"outputId": "ab92cc52-6a7a-41e5-f0fd-b188e62bfe92"
},
"cell_type": "code",
"source": [
"Value = '5 YR'\n",
"df_rates = pd.DataFrame.from_records(q_data, columns = columns)\n",
"df_data_1 = ((df_rates[['Date',Value]]).sort_index(ascending = False))\n",
"print(df_data_1.shape)\n",
"df_data_1.head()\n"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"(7110, 2)\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Date</th>\n",
" <th>5 YR</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>7109</th>\n",
" <td>1990-01-02</td>\n",
" <td>7.87</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7108</th>\n",
" <td>1990-01-03</td>\n",
" <td>7.92</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7107</th>\n",
" <td>1990-01-04</td>\n",
" <td>7.91</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7106</th>\n",
" <td>1990-01-05</td>\n",
" <td>7.92</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7105</th>\n",
" <td>1990-01-08</td>\n",
" <td>7.92</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Date 5 YR\n",
"7109 1990-01-02 7.87\n",
"7108 1990-01-03 7.92\n",
"7107 1990-01-04 7.91\n",
"7106 1990-01-05 7.92\n",
"7105 1990-01-08 7.92"
]
},
"metadata": {
"tags": []
},
"execution_count": 4
}
]
},
{
"metadata": {
"id": "F7xoZmxecmLA",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"Below you can see the data is represented as an array of consecutive days.\n",
"\n",
"**Note**: (2nd wart) this techniques removes useful information that could be relevant - is it a weekend, end of quarter, month ([weekend effect](https://www.investopedia.com/terms/w/weekendeffect.asp)) ? We could add it back as a 'feature'"
]
},
{
"metadata": {
"id": "d_lt12wSfd_Y",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 294
},
"outputId": "f0cc3eaf-8ff1-4e79-b4b0-7819f524e1e0"
},
"cell_type": "code",
"source": [
"import matplotlib.pyplot as plt\n",
"df_data_1_plot = df_data_1.iloc[:,1:2].values\n",
"# Visualising the Data\n",
"plt.plot(df_data_1_plot, color = 'red', label = Value)\n",
"plt.title('Historical Data')\n",
"plt.xlabel('Time (Days)')\n",
"plt.ylabel('Yields')\n",
"plt.legend()\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n/D/BQE+6SYcQtwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc05287ce10>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"id": "NCapBy-XflWs",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "f4d2938d-ac62-49d2-8569-d6d1225e6a29"
},
"cell_type": "code",
"source": [
"\n",
"#import packages#import \n",
"import numpy as np\n",
"import pandas as pd\n",
"from keras.preprocessing import sequence\n",
"from keras.models import load_model"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
],
"name": "stderr"
}
]
},
{
"metadata": {
"id": "fvFMOMbBd90J",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"Here we start entering some 'hyperparameters':\n",
"\n",
"\n",
"* batch size and epochs tell the system how fast and how many times to train\n",
"* **training** timesteps tell the system how far back in time to go during training.\n",
"\n",
"**Note**: (3rd wart) The hyperparameters will impact the accuracy of the predictor - and if we only have a small set of data it might be possible that playing with different hyperparameters gives us an 'overfitted neural network' that will work very well **just** in the available set but awufully afterwards.\n",
"\n",
"**Note**: I have seen that the **training** timesteps are confused with the amount of memory used (as if the system as an ARIMA model) - but it is not the case. LSTM will remember well back in the past. Read \n",
"\n",
"* How to Prepare Sequence Prediction for Truncated Backpropagation Through Time in Keras https://machinelearningmastery.com/truncated-backpropagation-through-time-in-keras/\n",
"\n"
]
},
{
"metadata": {
"id": "_Wdogq_gfpv-",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"# defining the batch size and number of epochs\n",
"batch_size = 64\n",
"epochs = 120\n",
"timesteps = 30"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "bjxR93o4gRMI",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
},
"outputId": "7bc096ca-8b5e-408a-b2d6-0da25281606a"
},
"cell_type": "code",
"source": [
"length = len(df_data_1)\n",
"print length\n",
"length *= 1 - 0.1\n",
"print length"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"7110\n",
"6399.0\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "DXZ0WSd2gSmo",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"def get_train_length(dataset, batch_size, test_percent):\n",
" # substract test_percent to be excluded from training, reserved for testset\n",
" length = len(dataset)\n",
" length *= 1 - test_percent\n",
" train_length_values = []\n",
" for x in range(int(length) - 100,int(length)): \n",
" modulo=x%batch_size\n",
" if (modulo == 0):\n",
" train_length_values.append(x)\n",
" print x\n",
" return (max(train_length_values))"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "45fimt2zgoPX",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
},
"outputId": "0fbd9956-b84e-4352-e716-e38ff9851067"
},
"cell_type": "code",
"source": [
"length = get_train_length(df_data_1, batch_size, 0.1)\n",
"print length"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"6336\n",
"6336\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "rGmXmDmsgdTQ",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "5dbf655b-ae4a-43cd-8b24-e83a7bea1c16"
},
"cell_type": "code",
"source": [
"#Adding timesteps * 2\n",
"upper_train = length + timesteps*2\n",
"df_data_1_train = df_data_1[0:upper_train]\n",
"training_set = df_data_1_train.iloc[:,1:2].values\n",
"training_set.shape"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(6396, 1)"
]
},
"metadata": {
"tags": []
},
"execution_count": 11
}
]
},
{
"metadata": {
"id": "RVoENVzZgvbT",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "dd46b059-fe40-4334-aea4-8fd1ffea7e84"
},
"cell_type": "code",
"source": [
"# Feature Scaling\n",
"from sklearn.preprocessing import MinMaxScaler\n",
"sc = MinMaxScaler(feature_range = (0, 1))\n",
"training_set_scaled = sc.fit_transform(np.float64(training_set))\n",
"training_set_scaled.shape"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(6396, 1)"
]
},
"metadata": {
"tags": []
},
"execution_count": 13
}
]
},
{
"metadata": {
"id": "FB3wyB3nfYKw",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"**Note**: (1st wart again) - the MinMaxScaler introduces look-ahead bias. The inputs of the neural network need to fall within the range 0 to 1, and just below we used the whole available data set to scale the input.\n",
"\n",
"How about if want to predict stock values (that can rise forever) ? Well, you need to somehow transform your data into something that falls between 0 and 1 - that is why Sirignano and Cont model the probability that the next move is up or down - a number between 0 and 1:\n",
"\n",
"\n",
"> \"*The models therefore predict whether the next price move is up or down*\"\n",
"\n"
]
},
{
"metadata": {
"id": "HqWlNfk7g0rj",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 102
},
"outputId": "87d0d530-671e-444e-9127-b087ee211cb6"
},
"cell_type": "code",
"source": [
"X_train = []\n",
"y_train = []\n",
"\n",
"# Creating a data structure with n timesteps\n",
"\n",
"print length + timesteps\n",
"for i in range(timesteps, length + timesteps): \n",
" X_train.append(training_set_scaled[i-timesteps:i,0])\n",
" y_train.append(training_set_scaled[i:i+timesteps,0])\n",
"\n",
"print len(X_train)\n",
"print len (y_train)\n",
"print np.array(X_train).shape\n",
"print np.array(y_train).shape"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"6366\n",
"6336\n",
"6336\n",
"(6336, 30)\n",
"(6336, 30)\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "zAl8N3uVBGnn",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
},
"outputId": "6541ba97-67e1-4aaa-e6b1-1f1f261086f0"
},
"cell_type": "code",
"source": [
"# Reshaping\n",
"X_train, y_train = np.array(X_train), np.array(y_train)\n",
"X_train = np.reshape(X_train, (X_train.shape[0], X_train.shape[1], 1))\n",
"y_train = np.reshape(y_train, (y_train.shape[0], y_train.shape[1], 1))\n",
"print X_train.shape\n",
"print y_train.shape"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"(6336, 30, 1)\n",
"(6336, 30, 1)\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "-NzJ-BuKg3nD",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"# Building the LSTM\n",
"# Importing the Keras libraries and packages\n",
"\n",
"from keras.layers import Dense\n",
"from keras.layers import Input, LSTM\n",
"from keras.models import Model\n",
"import h5py"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "-Tmeep3Rg4rf",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"Now we setup the architecture of the LSTM neural network: 4 layers, 2 of them LSTM with 10 neurons each and a Dense final one.\n",
"\n",
"**Note** (3rd wart again) - we have more hyperparameters here - layers and neurons - how do we define them ? We can modify them until a network has a better accuracy, but we fall into overfiting - that is why need more and more data - we need different testing sets for each architecture to avoid overfitted models.\n",
"\n",
"**Note** Notice that here (as opposed to the 'Don Quijote' example) the LSTM add a stateful = 'True' command - that means the network will have Long memory."
]
},
{
"metadata": {
"id": "2QPL2cGGg5kr",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 272
},
"outputId": "8fdb87a9-1731-43dd-ad8d-53263bc49fe9"
},
"cell_type": "code",
"source": [
"# Initialising the LSTM Model with MAE Loss-Function\n",
"# Using Functional API\n",
"\n",
"inputs_1_mae = Input(batch_shape=(batch_size,timesteps,1))\n",
"lstm_1_mae = LSTM(10, stateful=True, return_sequences=True)(inputs_1_mae)\n",
"lstm_2_mae = LSTM(10, stateful=True, return_sequences=True)(lstm_1_mae)\n",
"\n",
"output_1_mae = Dense(units = 1)(lstm_2_mae)\n",
"\n",
"regressor_mae = Model(inputs=inputs_1_mae, outputs = output_1_mae)\n",
"\n",
"regressor_mae.compile(optimizer='adam', loss = 'mae')\n",
"regressor_mae.summary()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"input_1 (InputLayer) (64, 30, 1) 0 \n",
"_________________________________________________________________\n",
"lstm_1 (LSTM) (64, 30, 10) 480 \n",
"_________________________________________________________________\n",
"lstm_2 (LSTM) (64, 30, 10) 840 \n",
"_________________________________________________________________\n",
"dense_1 (Dense) (64, 30, 1) 11 \n",
"=================================================================\n",
"Total params: 1,331\n",
"Trainable params: 1,331\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "l4eKZljPh8-m",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"It is useful to compare the number of parameters to train (1.3k) with the number of data points (6.6k). Compared to the Don Quijote example were we had roughly the same number of parameters and hyperparameters, is a 'good' sign.\n",
"\n",
"**Note** (2nd wart) - the input layer uses 'batches' of 60 points (to make training faster), 30 backward looking training steps and 1 feature. Above we mentioned that we had discarded information -- here we could add it again in the form of another feature, **but** that would increase the number of parameters to train while our data has **not** increased. \n",
"\n",
"Neural networks seems to have escaped the [curse of dimensionality](https://hackernoon.com/what-killed-the-curse-of-dimensionality-8dbfad265bbe) (the curse says that \"the number of training instances needed grows exponentially with the number of dimensions\" [link](http://www.visiondummy.com/2014/04/curse-dimensionality-affect-classification/)), but still it does not mean you can use a few examples to train a huge neural network.\n",
"\n",
"\n",
"Below I will start the training of the network -please keep scrolling down to see the results."
]
},
{
"metadata": {
"id": "3L7Lg4GJhOgt",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"for i in range(epochs):\n",
"# print(\"Epoch: \" + str(i))\n",
" regressor_mae.fit(X_train, y_train, shuffle=False, epochs = 1, batch_size = batch_size, verbose = 0)\n",
" regressor_mae.reset_states()\n",
" "
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "gks-NtMXhYX9",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"def get_test_length(dataset, batch_size):\n",
" \n",
" test_length_values = []\n",
" for x in range(len(dataset) - 200, len(dataset) - timesteps*2): \n",
" modulo=(x-upper_train)%batch_size\n",
" if (modulo == 0):\n",
" test_length_values.append(x)\n",
" print x\n",
" return (max(test_length_values))"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "nIveALFUhbWA",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 85
},
"outputId": "e6ad904b-7dd2-4f04-efce-fd6faec2cdd0"
},
"cell_type": "code",
"source": [
"test_length = get_test_length(df_data_1, batch_size)\n",
"print(test_length)\n",
"upper_test = test_length + timesteps*2\n",
"testset_length = test_length - upper_train\n",
"print testset_length"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"6972\n",
"7036\n",
"7036\n",
"640\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "6JY3RrDhhffo",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "bcce35f3-047a-4201-bae7-4da4bc9a37fd"
},
"cell_type": "code",
"source": [
"print upper_train, upper_test, len(df_data_1)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"6396 7096 7110\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "jiAbNQT5hgHe",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"# construct test set\n",
"\n",
"#subsetting\n",
"df_data_1_test = df_data_1[upper_train:upper_test] \n",
"test_set = df_data_1_test.iloc[:,1:2].values\n",
"\n",
"#scaling\n",
"scaled_real_bcg_values_test = sc.fit_transform(np.float64(test_set))\n",
"\n",
"#creating input data\n",
"X_test = []\n",
"for i in range(timesteps, testset_length + timesteps):\n",
" X_test.append(scaled_real_bcg_values_test[i-timesteps:i, 0])\n",
"X_test = np.array(X_test)\n",
"\n",
"\n",
"#reshaping\n",
"X_test = np.reshape(X_test, (X_test.shape[0], X_test.shape[1], 1))"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "4Qy04dL_hjbP",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 68
},
"outputId": "5ba00797-1dad-461a-f00e-ef23af55957b"
},
"cell_type": "code",
"source": [
"#prediction\n",
"predicted_bcg_values_test_mae = regressor_mae.predict(X_test, batch_size=batch_size)\n",
"regressor_mae.reset_states()\n",
"\n",
"print predicted_bcg_values_test_mae.shape\n",
"\n",
"#reshaping\n",
"predicted_bcg_values_test_mae = np.reshape(predicted_bcg_values_test_mae, \n",
" (predicted_bcg_values_test_mae.shape[0], \n",
" predicted_bcg_values_test_mae.shape[1]))\n",
"\n",
"print predicted_bcg_values_test_mae.shape\n",
"#inverse transform\n",
"predicted_bcg_values_test_mae = sc.inverse_transform(predicted_bcg_values_test_mae)\n",
"\n",
"\n",
"#creating y_test data\n",
"y_test = []\n",
"for j in range(0, testset_length - timesteps):\n",
" y_test = np.append(y_test, predicted_bcg_values_test_mae[j, timesteps-1])\n",
"# print predicted_bcg_values_test_mae[j, timesteps-1], test_set[j]\n",
"\n",
"# reshaping\n",
"y_test = np.reshape(y_test, (y_test.shape[0], 1))\n",
"\n",
"print y_test.shape"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"(640, 30, 1)\n",
"(640, 30)\n",
"(610, 1)\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "SzCXqdkOhmjX",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 627
},
"outputId": "0be9c763-4ec6-49cd-e7b4-a84deccc39a7"
},
"cell_type": "code",
"source": [
"# Visualising the results\n",
"plt.plot(test_set[timesteps:len(y_test)], color = 'red', label = 'Prices')\n",
"plt.plot(y_test[0:len(y_test) - timesteps], color = 'blue', label = 'Predicted Prices')\n",
"plt.title('Prediction - MAE')\n",
"plt.xlabel('Time')\n",
"plt.ylabel('Prices')\n",
"plt.legend()\n",
"plt.show()\n",
"\n",
"err_vector = ((test_set[timesteps:len(y_test)] - y_test[0:len(y_test) - timesteps]))\n",
"#plt.plot(err_vector)\n",
"plt.hist(err_vector)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc05282e690>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(array([ 1., 3., 13., 77., 161., 178., 111., 28., 5., 3.]),\n",
" array([-0.16316795, -0.12250455, -0.08184114, -0.04117773, -0.00051432,\n",
" 0.04014909, 0.0808125 , 0.1214759 , 0.16213931, 0.20280272,\n",
" 0.24346613]),\n",
" <a list of 10 Patch objects>)"
]
},
"metadata": {
"tags": []
},
"execution_count": 24
},
{
"output_type": "display_data",
"data": {
"image/png": "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\nSUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc05002ced0>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"id": "U1NkKSJBicSR",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"## Results - finally\n",
"\n",
"Well, they are pretty poor. \n",
"\n",
"The graph above does not look too bad because the prediction at least falls 'close by' to the last seen level. However, the prediction is done only for 1 step - the series is constructed by adding the correct value to the series at each point once it is known for the next day prediction, and even then the prediction has a downward bias which would have cost dearly any trader.\n",
"\n",
"**Note**: the test results have a big bias (5bps undershoot according to the histogram). This is the part where either someone would be tempted fix the bias by making some changes to the hyperparameters (add neurons ? add lags ? etc.) or would train different models in parallel until we find a model which performs better in this final step. That is a **mistake** -- this 'out of sample' is supposed to be the 'proof of the pudding' - you cannot reuse it to have another go at the series. That is why you need lots more data so that you can keep and untouched test set on hand for every model you want to try.\n",
"\n",
"## What did I learn ?\n",
"\n",
"My goal was to show how these LTSM *could* be used. \n",
"\n",
"Each one of the 'warts' can be addressed and improved when more data (and computer power) is available:\n",
"\n",
"* wart 1: look ahead bias - this requires having a good domain knowledge. \n",
"* wart 2: removing useful information - this requires both the domain knowledge + more data\n",
"* wart 3: hyperparameter selection - need even more data to be able to test each different model.\n",
"\n",
"In three words: data, data and data.\n",
"\n",
"**Note** - it is common to think that a 'lot of data' can be overcomed by adding more data points per example - this timeseries has only one datapoint per day, but maybe we could add lots of other related datapoints the same day ? If we were to do that we would be adding input points to the neural network and would increase the trainable parameter, but we will still have the same number of examples. Put another way - think that you have 10 pictures to train a cat identifier - the system will not improve if you increase the resolution of your pictues to HD instead of low res -- you need *more* pictures.\n",
"\n",
"\n",
"\n"
]
},
{
"metadata": {
"id": "H-B58U9khpFJ",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "2d170c27-c5d3-47aa-83f0-20a04b0dffe2"
},
"cell_type": "code",
"source": [
"import math\n",
"from sklearn.metrics import mean_squared_error\n",
"rmse = math.sqrt(mean_squared_error(test_set[timesteps:len(y_test)], y_test[0:len(y_test) - timesteps]))\n",
"print(rmse)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"0.0701804462487\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "cV0ALfDrhrFh",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "e768e0b3-060c-48e3-ff14-52c1402044e6"
},
"cell_type": "code",
"source": [
"from sklearn.metrics import mean_absolute_error\n",
"mae = mean_absolute_error(test_set[timesteps:len(y_test)], y_test[0:len(y_test) - timesteps])\n",
"print(mae)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"0.05744177693334118\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "kWLQxR9YhtaW",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"import h5py\n",
"regressor_mae.save(filepath=\"rates5yr_with_mae_30_ts.h5\")"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "18_jhB40hygp",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 272
},
"outputId": "4c2ed97e-8aca-4d0a-9ebe-38b012a18a0e"
},
"cell_type": "code",
"source": [
"# Initialising the LSTM Model with MSE Loss Function\n",
"\n",
"inputs_1_mse = Input(batch_shape=(batch_size,timesteps,1))\n",
"lstm_1_mse = LSTM(10, stateful=True, return_sequences=True)(inputs_1_mse)\n",
"lstm_2_mse = LSTM(10, stateful=True, return_sequences=True)(lstm_1_mse)\n",
"\n",
"output_1_mse = Dense(units = 1)(lstm_2_mse)\n",
"\n",
"regressor_mse = Model(inputs=inputs_1_mse, outputs = output_1_mse)\n",
"\n",
"regressor_mse.compile(optimizer='adam', loss = 'mse')\n",
"regressor_mse.summary()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"input_2 (InputLayer) (64, 30, 1) 0 \n",
"_________________________________________________________________\n",
"lstm_3 (LSTM) (64, 30, 10) 480 \n",
"_________________________________________________________________\n",
"lstm_4 (LSTM) (64, 30, 10) 840 \n",
"_________________________________________________________________\n",
"dense_2 (Dense) (64, 30, 1) 11 \n",
"=================================================================\n",
"Total params: 1,331\n",
"Trainable params: 1,331\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "WT3056yah2dg",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"epochs = 120\n",
"for i in range(epochs):\n",
"# print(\"Epoch: \" + str(i))\n",
" regressor_mse.fit(X_train, y_train, shuffle=False, epochs = 1, batch_size = batch_size, verbose = 0)\n",
" regressor_mse.reset_states()"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "nXYnCiNQIG83",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"predicted_bcg_values_test_mse = regressor_mse.predict(X_test, batch_size=batch_size)\n",
"regressor_mse.reset_states()\n",
"\n",
"predicted_bcg_values_test_mse = np.reshape(predicted_bcg_values_test_mse, \n",
" (predicted_bcg_values_test_mse.shape[0], \n",
" predicted_bcg_values_test_mse.shape[1]))\n",
"predicted_bcg_values_test_mse = sc.inverse_transform(predicted_bcg_values_test_mse)\n",
"\n",
"pred_mse = []\n",
"\n",
"for j in range(0, testset_length - timesteps):\n",
" pred_mse = np.append(pred_mse, predicted_bcg_values_test_mse[j, timesteps-1])\n",
"\n",
"pred_mse = np.reshape(pred_mse, (pred_mse.shape[0], 1))"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "O9YNiF82IKlE",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 627
},
"outputId": "63ec0b4e-aed6-48fd-c2f0-2c3ef0c760c0"
},
"cell_type": "code",
"source": [
"# Visualising the results\n",
"plt.plot(test_set[timesteps:len(pred_mse)], color = 'red', label = 'Prices')\n",
"plt.plot(pred_mse[0:len(pred_mse) - timesteps], color = 'green', label = 'Predicted Prices with MSE')\n",
"plt.plot(y_test[0:len(y_test) - timesteps], color = 'blue', label = 'Predicted Prices')\n",
"plt.title('Prediction - MSE')\n",
"plt.xlabel('Time')\n",
"plt.ylabel('Prices')\n",
"plt.legend()\n",
"plt.show()\n",
"\n",
"err_vector = ((test_set[timesteps:len(pred_mse)] - pred_mse[0:len(pred_mse) - timesteps]))\n",
"#plt.plot(err_vector)\n",
"plt.hist(err_vector)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc043f36d50>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(array([ 1., 2., 8., 49., 128., 171., 160., 51., 7., 3.]),\n",
" array([-0.17178941, -0.12745171, -0.08311401, -0.03877631, 0.0055614 ,\n",
" 0.0498991 , 0.0942368 , 0.1385745 , 0.1829122 , 0.2272499 ,\n",
" 0.2715876 ]),\n",
" <a list of 10 Patch objects>)"
]
},
"metadata": {
"tags": []
},
"execution_count": 35
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXUAAAD4CAYAAAATpHZ6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4yLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvNQv5yAAAEKBJREFUeJzt3X+QXWddx/H3sovShIVuy2USI0NE\n8cvQzjBasWIbKCWFUst0JEFmKLUYqmhRaf3DicAUUlQqmAnQdrSZtlAr+CtMbTPStNMUa61QMx0t\nozLfoSqIJJDVLmFLYtrQ+Mc9gctmd+/dc+/es/vs+/VPzn3u2XO+eebez33mueeeZ+T48eNIksrw\njKYLkCQNjqEuSQUx1CWpIIa6JBXEUJekgow1efLJyekVf+nNxMQqpqYON13GkmF/nMw+OdlK75NW\na3xkruccqTdsbGy06RKWFPvjZPbJyeyTuRnqklQQQ12SCmKoS1JBDHVJKoihLkkFMdQlqSCGuiQV\nxFCXpIIY6pJUkEZvEyAtVVuuu7+xc9+69fzGzq3lz5G6JBXEUJekghjqklQQQ12SCmKoS1JBDHVJ\nKoihLkkFMdQlqSCGuiQVpKdflEbEmcCdwI7MvCEingncBvwYMA1szsypiLgUuAp4GtiZmbcsUt2S\npFl0HalHxGrgemBvR/MvA5OZ+dPAXwAbqv2uATYC5wFXR8RpA69YkjSnXqZfjgIXAfs72t4AfBIg\nM3dm5l3A2cC+zDyUmUeAh4BzBlyvJGkeXadfMvMYcCwiOpvXA6+PiA8BXweuBNYAkx37HATWznfs\niYlVjI2NLrDk8rRa402XsKSs9P5o6mZiu7df0sh561rpr5O51L1L4wiQmbktIt4L/A7wT7PsM6+p\nqcM1T1+OVmucycnppstYMuyP5iynfl/pr5P5PtDqXv3yDeCBavse4Aza0zNrOvZZx/dP2UiSFlnd\nUL8buLDaPgtI4GHg5RFxakQ8m/Z8+oP9lyhJ6lXX6ZeIOAvYTnse/amI2Ay8BfhoRLwdeAK4PDOP\nRMRW2iP348C2zDy0aJVLkk7Syxelj9C+RHGmN82y7y5gV/9lSZLq8BelklQQQ12SCmKoS1JBDHVJ\nKoihLkkFMdQlqSCGuiQVxFCXpIIY6pJUEENdkgpiqEtSQQx1SSqIoS5JBTHUJakghrokFaSnNUoj\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fc043fe47d0>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"id": "ADwHK3w4S6Lj",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
},
"outputId": "6a0846d7-6148-4f5b-e8e9-01974b35ccc4"
},
"cell_type": "code",
"source": [
"print (predicted_bcg_values_test_mse.shape)\n",
"print (X_test.shape)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"(640, 30)\n",
"(640, 30, 1)\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "-puzXYxAIPO0",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"regressor_mse.save(filepath=\"rates5yr_with_mse_30_ts.h5\")"
],
"execution_count": 0,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment