{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Tutorial 104: Time Series with Pandas / NumPy\n", "\n", "Contributed by: Avi Thaker https://github.com/athaker/CNTK\n", "November 20, 2016\n", "\n", "This tutorial will introduce the use of the Cognitive Toolkit for time series data. We show how to prepare time series data for deep learning algorithms. We will cover training a neural network and evaluating the neural network model. We will also look at the predictive potential on classification of an Exchange-traded Funds ([ETF](https://en.wikipedia.org/wiki/Exchange-traded_fund)), and in this simplified setting how one could trade it. This tutorial serves **only** as an example of how to use neural networks for time series analysis. \n", " \n", "It is important to note that the stock market is extremely noisy and is difficult to predict. This is best done by professionals with domain expertise. It is more important to make sure the model is correct before setting up a trading system (there are many factors to consider including but not limited to: [curve fitting bias](https://en.wikipedia.org/wiki/Overfitting), [forward looking bias](http://www.investopedia.com/terms/l/lookaheadbias.asp?lgl=no-infinite), profitability etc.). The learnings and anecdotes presented in this tutorial is only for exemplary purposes with the goal of introducing an approach to analyze time series data.\n", "\n", "This tutorial introduces how to use pandas_datareader package and pandas. Please note, this tutorial will utilize the numpy interface to CNTK which interfaces well with [Pandas dataframes](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html) (a structure that is well suited towards timeseries analysis). \n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from __future__ import print_function\n", "import os\n", "import numpy as np\n", "\n", "import cntk\n", "import cntk as C\n", "from cntk.initializer import glorot_uniform\n", "from cntk.layers import default_options, Dense # Layers\n", "\n", "import datetime\n", "import pandas as pd\n", "pd.options.mode.chained_assignment = None # default='warn'\n", "%matplotlib inline\n", "\n", "# Select the right target device when this notebook is being tested:\n", "if 'TEST_DEVICE' in os.environ:\n", " if os.environ['TEST_DEVICE'] == 'cpu':\n", " cntk.device.try_set_default_device(cntk.device.cpu())\n", " else:\n", " cntk.device.try_set_default_device(cntk.device.gpu(0))\n", "\n", "# If you want to set the program to use a CUDA enabled GPU\n", "#from cntk.device import try_set_default_device, gpu\n", "#try_set_default_device(gpu(0))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Importing stock data\n", "We first retrieve stock data using the method `get_stock_data`. This method downloads stock data on a daily timescale from Yahoo finance (can be modified to get data from Google Finance and many other sources). [Pandas datareader]( http://pandas-datareader.readthedocs.io/en/latest/remote_data.html) shows many use cases for this data reader." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# A method which obtains stock data from Yahoo finance\n", "# Requires that you have an internet connection to retreive stock data from Yahoo finance\n", "import time\n", "try:\n", " from pandas_datareader import data\n", "except ImportError:\n", " !pip install pandas_datareader\n", " from pandas_datareader import data\n", "\n", "def get_stock_data(contract, s_year, s_month, s_day, e_year, e_month, e_day):\n", " \"\"\"\n", " Args:\n", " contract (str): the name of the stock/etf\n", " s_year (int): start year for data\n", " s_month (int): start month\n", " s_day (int): start day\n", " e_year (int): end year\n", " e_month (int): end month\n", " e_day (int): end day\n", " Returns:\n", " Pandas Dataframe: Daily OHLCV bars\n", " \"\"\"\n", " start = datetime.datetime(s_year, s_month, s_day)\n", " end = datetime.datetime(e_year, e_month, e_day)\n", " \n", " retry_cnt, max_num_retry = 0, 3\n", " \n", " while(retry_cnt < max_num_retry):\n", " try:\n", " bars = data.get_data_yahoo(contract, start, end)\n", " return bars\n", " except:\n", " retry_cnt += 1\n", " time.sleep(np.random.randint(1,10)) \n", " \n", " print(\"Yahoo Finance is not reachable\")\n", " return None" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Saving data\\Stock\\stock_SPY.pkl\n" ] } ], "source": [ "import pickle as pkl\n", "\n", "# We search in cached stock data set with symbol SPY. \n", "# Check for an environment variable defined in CNTK's test infrastructure\n", "envvar = 'CNTK_EXTERNAL_TESTDATA_SOURCE_DIRECTORY'\n", "def is_test(): return envvar in os.environ\n", "\n", "def download(data_file):\n", " data = get_stock_data(\"SPY\", 2000, 1,2,2017,1,1)\n", " dir = os.path.dirname(data_file)\n", " \n", " if not os.path.exists(dir):\n", " os.makedirs(dir)\n", " \n", " if not os.path.isfile(data_file):\n", " print(\"Saving\", data_file )\n", " with open(data_file, 'wb') as f:\n", " pkl.dump(data, f, protocol = 2)\n", " return data\n", "\n", "data_file = os.path.join(\"data\", \"Stock\", \"stock_SPY.pkl\")\n", "\n", "# Check for data in local cache\n", "if os.path.exists(data_file):\n", " print(\"File already exists\", data_file)\n", " data = pd.read_pickle(data_file) \n", "else: \n", " # If not there we might be running in CNTK's test infrastructure\n", " if is_test():\n", " test_file = os.path.join(os.environ[envvar], 'Tutorials','data','stock','stock_SPY.pkl')\n", " if os.path.isfile(test_file):\n", " print(\"Reading data from test data directory\")\n", " data = pd.read_pickle(test_file)\n", " else:\n", " print(\"Test data directory missing file\", test_file)\n", " print(\"Downloading data from Yahoo Finance\")\n", " data = download(data_file) \n", " else:\n", " # Local cache is not present and not test env\n", " # download the data from Yahoo finance and cache it in a local directory\n", " # Please check if there is trade data for the chosen stock symbol during this period\n", " data = download(data_file)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Building the training paramaters\n", "\n", "The stock market behavior exhibits substantial [autocorrelation](https://en.wikipedia.org/wiki/Autocorrelation) ([reference](http://epchan.blogspot.com/2016/04/mean-reversion-momentum-and-volatility.html)). We use [ETF](http://www.investopedia.com/terms/e/etf.asp) `SPY` index representing the \"market\" of stock. This is the ETF that encompasses around top 500 companies in America by market capitalization. We will trade under the assumption that there is some short term autocorrelation that have predictive power in the market. \n", "\n", "### Predicting\n", "* Whether or not the next data for the given stock/ETF will be above or below the current day.\n", "\n", "### Predictors\n", "* The previous 8 days, classified if greater than the current day,\n", "\n", "* The volume changes as a percentage,\n", "\n", "* The percentage change from the previous day.\n", "\n", "Note, we are not feeding the neural network the price itself. Financial timeseries data are noisy. It is important not to overfit the data. There is a lot we can do here (smoothing, adding more features, etc.), but we will keep this tutorial simple, and demonstrate CNTK's ability to interface with timeseries data. " ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OpenHighLowCloseVolumeAdj Closediffv_diffp_1p_2p_3p_4p_5p_6p_7p_8
Date
2000-01-03148.250000148.250000143.875000145.4375008164300105.3669380.0000000.00000000000000
2000-01-04143.531204144.062500139.640594139.7500008089800101.2464430.0406980.00920900000000
2000-01-05139.937500141.531204137.250000140.00000012177900101.4275630.0017860.33569810000000
2000-01-06139.625000141.500000137.750000137.750000622720099.7974780.0163340.95559800000000
2000-01-07140.312500145.750000140.062500145.7500008066500105.5933380.0548890.22801711110000
2000-01-10146.250000146.906204145.031204146.2500005741700105.9555800.0034190.40489811111000
2000-01-11145.812500146.093704143.500000144.5000007503700104.6877350.0121110.23481700111000
2000-01-12144.593704144.593704142.875000143.0625006907700103.6462910.0100480.08628100011100
2000-01-13144.468704145.750000143.281204145.0000005158300105.0499760.0133620.33914311001110
2000-01-14146.531204147.468704145.968704146.9687047437300106.4762680.0133950.30642811111111
\n", "
" ], "text/plain": [ " Open High Low Close Volume \\\n", "Date \n", "2000-01-03 148.250000 148.250000 143.875000 145.437500 8164300 \n", "2000-01-04 143.531204 144.062500 139.640594 139.750000 8089800 \n", "2000-01-05 139.937500 141.531204 137.250000 140.000000 12177900 \n", "2000-01-06 139.625000 141.500000 137.750000 137.750000 6227200 \n", "2000-01-07 140.312500 145.750000 140.062500 145.750000 8066500 \n", "2000-01-10 146.250000 146.906204 145.031204 146.250000 5741700 \n", "2000-01-11 145.812500 146.093704 143.500000 144.500000 7503700 \n", "2000-01-12 144.593704 144.593704 142.875000 143.062500 6907700 \n", "2000-01-13 144.468704 145.750000 143.281204 145.000000 5158300 \n", "2000-01-14 146.531204 147.468704 145.968704 146.968704 7437300 \n", "\n", " Adj Close diff v_diff p_1 p_2 p_3 p_4 p_5 p_6 p_7 \\\n", "Date \n", "2000-01-03 105.366938 0.000000 0.000000 0 0 0 0 0 0 0 \n", "2000-01-04 101.246443 0.040698 0.009209 0 0 0 0 0 0 0 \n", "2000-01-05 101.427563 0.001786 0.335698 1 0 0 0 0 0 0 \n", "2000-01-06 99.797478 0.016334 0.955598 0 0 0 0 0 0 0 \n", "2000-01-07 105.593338 0.054889 0.228017 1 1 1 1 0 0 0 \n", "2000-01-10 105.955580 0.003419 0.404898 1 1 1 1 1 0 0 \n", "2000-01-11 104.687735 0.012111 0.234817 0 0 1 1 1 0 0 \n", "2000-01-12 103.646291 0.010048 0.086281 0 0 0 1 1 1 0 \n", "2000-01-13 105.049976 0.013362 0.339143 1 1 0 0 1 1 1 \n", "2000-01-14 106.476268 0.013395 0.306428 1 1 1 1 1 1 1 \n", "\n", " p_8 \n", "Date \n", "2000-01-03 0 \n", "2000-01-04 0 \n", "2000-01-05 0 \n", "2000-01-06 0 \n", "2000-01-07 0 \n", "2000-01-10 0 \n", "2000-01-11 0 \n", "2000-01-12 0 \n", "2000-01-13 0 \n", "2000-01-14 1 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Feature name list\n", "predictor_names = []\n", "\n", "# Compute price difference as a feature\n", "data[\"diff\"] = np.abs((data[\"Close\"] - data[\"Close\"].shift(1)) / data[\"Close\"]).fillna(0) \n", "predictor_names.append(\"diff\")\n", "\n", "# Compute the volume difference as a feature\n", "data[\"v_diff\"] = np.abs((data[\"Volume\"] - data[\"Volume\"].shift(1)) / data[\"Volume\"]).fillna(0) \n", "predictor_names.append(\"v_diff\")\n", "\n", "# Compute the stock being up (1) or down (0) over different day offsets compared to current dat closing price\n", "num_days_back = 8\n", "\n", "for i in range(1,num_days_back+1):\n", " data[\"p_\" + str(i)] = np.where(data[\"Close\"] > data[\"Close\"].shift(i), 1, 0) # i: number of look back days\n", " predictor_names.append(\"p_\" + str(i))\n", " \n", "\n", " \n", "# If you want to save the file to your local drive\n", "#data.to_csv(\"PATH_TO_SAVE.csv\")\n", "data.head(10)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": false }, "source": [ "### What we are trying to predict\n", "\n", "Here we are trying to predict whether or not the next days' trading will be above or below the current day. We will represent a predicted up day as a 1, else a 0 if the next day is the same or below. (Note: the market is unlikely going to close at the same price as it did the previous day). " ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "data[\"next_day\"] = np.where(data[\"Close\"].shift(-1) > data[\"Close\"], 1, 0)\n", "data[\"next_day_opposite\"] = np.where(data[\"next_day\"]==1,0,1) # The label must be one-hot encoded\n", "\n", "# Establish the start and end date of our training timeseries (picked 2000 days before the market crash)\n", "training_data = data[\"2000-01-15\":\"2008-01-01\"]\n", "\n", "# We define our test data as: data[\"2008-01-02\":]\n", "# This example allows to to include data up to current date\n", "\n", "test_data = data[\"2008-01-02\":\"2016-11-25\"] \n", "training_features = np.asarray(training_data[predictor_names], dtype = \"float32\")\n", "training_labels = np.asarray(training_data[[\"next_day\",\"next_day_opposite\"]], dtype=\"float32\")" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "Here we are actually building the neural network itself. We will use a simple feedforward neural network (represented as `NN` in the plots) with 10 inputs and 50 dimensions.\n", "\n", "**Suggested exercise** Try experimenting here with different sizes and number of hidden layers. What happens when we make this network large? Do we overfit the data? " ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(2000, 10)\n" ] } ], "source": [ "print(training_features.shape)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note, we are using `layers` library in this tutorial. The details documentation can be found [here](https://cntk.ai/pythondocs/layerref.html)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [], "source": [ "# Lets build the network\n", "input_dim = 2 + num_days_back\n", "num_output_classes = 2 #Remember we need to have 2 since we are trying to classify if the market goes up or down 1 hot encoded\n", "num_hidden_layers = 2\n", "hidden_layers_dim = 2 + num_days_back\n", "input_dynamic_axes = [C.Axis.default_batch_axis()]\n", "input = C.input_variable(input_dim, dynamic_axes=input_dynamic_axes)\n", "label = C.input_variable(num_output_classes, dynamic_axes=input_dynamic_axes)\n", "\n", "def create_model(input, num_output_classes):\n", " h = input\n", " for i in range(0,num_hidden_layers):\n", " h = Dense(hidden_layers_dim, \n", " init = glorot_uniform(), \n", " activation = C.relu)(h)\n", " \n", " return (Dense(num_output_classes, init=glorot_uniform(), activation=None)(h))\n", " \n", "z = create_model(input, num_output_classes)\n", "loss = C.cross_entropy_with_softmax(z, label)\n", "label_error = C.classification_error(z, label)\n", "lr_per_minibatch = C.learning_rate_schedule(0.125,C.UnitType.minibatch)\n", "trainer = C.Trainer(z, (loss, label_error), [C.sgd(z.parameters, lr=lr_per_minibatch)])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#Initialize the parameters for the trainer, we will train in large minibatches in sequential order\n", "minibatch_size = 100\n", "num_minibatches = len(training_data.index) // minibatch_size\n", "\n", "#Run the trainer on and perform model training\n", "training_progress_output_freq = 1\n", "\n", "# Visualize the loss over minibatch\n", "plotdata = {\"batchsize\":[], \"loss\":[], \"error\":[]}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Number of passes through the data, how we train time series data\n", "This tutorial will differ from other tutorials in the sense that here we will not randomly send data to the trainer, instead each minibatch will be fed sequentially in the order of the time dimension. This is key to time series data-handling where we want to \"weigh\" the data at the end of our sample a slightly higher. You can put in multiple passes, however you will notice significant performance degradation. Try it out! Additionally, multiple passes tend to overfit the financial timeseries data. This overfitting can be mitigated using standard ML approaches such as [L1 regularization](https://en.wikipedia.org/wiki/Regularization_%28mathematics%29)." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of mini batches\n", "20\n", "The shape of the training feature minibatch\n", "(100, 10)\n" ] } ], "source": [ "tf = np.split(training_features,num_minibatches)\n", "\n", "print(\"Number of mini batches\")\n", "print(len(tf))\n", "\n", "print(\"The shape of the training feature minibatch\")\n", "print(tf[0].shape)\n", "\n", "tl = np.split(training_labels, num_minibatches)\n", "\n", "# It is key that we make only one pass through the data linearly in time\n", "num_passes = 1 \n", "\n", "# Defines a utility that prints the training progress\n", "def print_training_progress(trainer, mb, frequency, verbose=1):\n", " training_loss = \"NA\"\n", " eval_error = \"NA\"\n", " if mb%frequency == 0:\n", " training_loss = trainer.previous_minibatch_loss_average\n", " eval_error = trainer.previous_minibatch_evaluation_average\n", " if verbose: \n", " print (\"Minibatch: {0}, Loss: {1:.4f}, Error: {2:.2f}%\".format(mb, training_loss, eval_error*100))\n", " return mb, training_loss, eval_error" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Minibatch: 0, Loss: 0.8458, Error: 52.00%\n", "Minibatch: 1, Loss: 0.7292, Error: 53.00%\n", "Minibatch: 2, Loss: 0.7177, Error: 52.00%\n", "Minibatch: 3, Loss: 0.7022, Error: 52.00%\n", "Minibatch: 4, Loss: 0.7118, Error: 53.00%\n", "Minibatch: 5, Loss: 0.7118, Error: 53.00%\n", "Minibatch: 6, Loss: 0.6900, Error: 44.00%\n", "Minibatch: 7, Loss: 0.7228, Error: 61.00%\n", "Minibatch: 8, Loss: 0.7242, Error: 61.00%\n", "Minibatch: 9, Loss: 0.7087, Error: 48.00%\n", "Minibatch: 10, Loss: 0.7006, Error: 54.00%\n", "Minibatch: 11, Loss: 0.7013, Error: 54.00%\n", "Minibatch: 12, Loss: 0.6948, Error: 53.00%\n", "Minibatch: 13, Loss: 0.7122, Error: 56.00%\n", "Minibatch: 14, Loss: 0.6950, Error: 49.00%\n", "Minibatch: 15, Loss: 0.7011, Error: 55.00%\n", "Minibatch: 16, Loss: 0.7015, Error: 48.00%\n", "Minibatch: 17, Loss: 0.6794, Error: 46.00%\n", "Minibatch: 18, Loss: 0.6874, Error: 49.00%\n", "Minibatch: 19, Loss: 0.7077, Error: 49.00%\n" ] } ], "source": [ "# Train our neural network\n", "tf = np.split(training_features,num_minibatches)\n", "tl = np.split(training_labels, num_minibatches)\n", "\n", "for i in range(num_minibatches*num_passes): # multiply by the \n", " features = np.ascontiguousarray(tf[i%num_minibatches])\n", " labels = np.ascontiguousarray(tl[i%num_minibatches])\n", " \n", " # Specify the mapping of input variables in the model to actual minibatch data to be trained with\n", " trainer.train_minibatch({input : features, label : labels})\n", " batchsize, loss, error = print_training_progress(trainer, i, training_progress_output_freq, verbose=1)\n", " if not (loss == \"NA\" or error ==\"NA\"):\n", " plotdata[\"batchsize\"].append(batchsize)\n", " plotdata[\"loss\"].append(loss)\n", " plotdata[\"error\"].append(error)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nIYRQU/4fIXIuPgDsW8EAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.figure(1)\n", "plt.subplot(211)\n", "plt.plot(plotdata[\"batchsize\"], plotdata[\"loss\"], 'b--')\n", "plt.xlabel('Minibatch number')\n", "plt.ylabel('Loss')\n", "plt.title('Minibatch run vs. Training loss ')\n", "plt.show()\n", "\n", "plt.subplot(212)\n", "plt.plot(plotdata[\"batchsize\"], plotdata[\"error\"], 'r--')\n", "plt.xlabel('Minibatch number')\n", "plt.ylabel('Label Prediction Error')\n", "plt.title('Minibatch run vs. Label Prediction Error ')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Notice the trend for the label prediction error is still close to 50%. Remember that this is time variant, therefore it is expected that the system will have some noise as it trains through time. It should be noted; the model is still learning the market. Additionally, since this time series data is so noisy, having an error rate below 50% is good (many trading firms have win-rates of near 50% and have made money nearly every day [VIRTU](https://en.wikipedia.org/wiki/Virtu_Financial#Trading_activity)). However note they are high frequency trading firm and can leverage themselves up with low winrate strategies (51%). Trying to classify and trade every single day is expensive from transaction fees perspective. Therefore, one approach would be to trade when we think we are more likely to win?\n", "\n", "Let us try this idea." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Average error: 49.00%\n" ] } ], "source": [ "# Now that we have trained the net, and we will do out of sample test to see how we did.\n", "# and then more importantly analyze how that set did\n", "\n", "test_features = np.ascontiguousarray(test_data[predictor_names], dtype = \"float32\")\n", "test_labels = np.ascontiguousarray(test_data[[\"next_day\",\"next_day_opposite\"]], dtype=\"float32\")\n", "\n", "avg_error = trainer.test_minibatch({input : test_features, label : test_labels})\n", "print(\"Average error: {0:2.2f}%\".format(avg_error * 100))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here we see that we have an error rate near 50%. At first glance this may appear to not have learned the network, but let us examine further and see if we have some predictive power." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [], "source": [ "out = C.softmax(z)\n", "predicted_label_prob = out.eval({input:test_features})\n", "test_data[\"p_up\"] = pd.Series(predicted_label_prob[:,0], index = test_data.index)\n", "test_data[\"p_down\"] = predicted_label_prob[:,1]\n", "test_data['long_entries'] = np.where((test_data.p_up > 0.55), 1, 0)\n", "test_data['short_entries'] = np.where((test_data.p_down > 0.55) , -1, 0)\n", "test_data['positions'] = test_data['long_entries'].fillna(0) + test_data['short_entries'].fillna(0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Evaluating our Data\n", "Here we take the output of our test set and compute the probabilities from the softmax function. Since we have probabilities we want to trade when there is a \"higher\" chance that we will be right, instead of just a >50% chance that the market will go in one direction. The goal is to find a signal, instead of trying to classify the market. Since the market is so noisy we want to only trade when we have an \"edge\" on the market. Moreover, trading frequently has higher fees (you have to pay each time you trade).\n", "\n", "We will say that if the prediction probability is greater than 55% (in either direction) we will take a position in the market. If it shows that the market will be up the next day with greater than 55% probability, we will take a 1-day long. If it is greater than a 55% chance that the next day will be below today's position we will take 1-day [short] (http://www.investopedia.com/university/shortselling/shortselling1.asp)(the same as borrowing a stock and buying it back). \n", "\n", "We will then evaluate this timeseries performance by looking at some more metrics: average monthly return, standard deviation of monthly returns, the [Sharpe ratio](http://www.investopedia.com/terms/s/sharperatio.asp), and the [Maximum drawdown](https://en.wikipedia.org/wiki/Drawdown_%28economics%29). The Sharpe ratio is the average return minus the risk free rate (which is basically zero) over the standard deviation of returns normalized to a year. \n", "\n", "$$Sharpe = \\frac{r_p - r_f}{\\sigma_p}$$\n", "$$r_p = \\text{portfolio return}$$\n", "$$r_f = \\text{risk free rate}$$\n", "$$\\sigma_p = \\text{standard deviation of portfolio return}$$\n", "\n", "Generally, the higher the Sharpe ratio, the better you are taking less risk for each unit of reward. This assumes the mean return and standard deviation are sufficient to describe the distribution of returns, akin to an assumption of normally distributed returns.\n", "\n", "A trading strategy can be profitable even if the winrate is 50% or lower, if the wins are greater than the losses you can have a less than 50% winrate and still make some money (usually classified as momentum strategies). Finally, even if we do not beat the market by trading it individually, we can still outperform it by trading multiple assets that are uncorrelated with each other (or trade a basket of stocks to get market exposure; we are not trading each at the same time). However, that will not be covered in this tutorial. " ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": true }, "outputs": [], "source": [ "def create_drawdowns(equity_curve):\n", " \"\"\"\n", " Calculate the largest peak-to-trough drawdown of the PnL curve\n", " as well as the duration of the drawdown. Requires that the \n", " pnl_returns is a pandas Series.\n", "\n", " Parameters:\n", " pnl - A pandas Series representing period percentage returns.\n", "\n", " Returns:\n", " drawdown, duration - Highest peak-to-trough drawdown and duration.\n", " \"\"\"\n", "\n", " # Calculate the cumulative returns curve \n", " # and set up the High Water Mark\n", " # Then create the drawdown and duration series\n", " hwm = [0]\n", " eq_idx = equity_curve.index\n", " drawdown = pd.Series(index = eq_idx)\n", " duration = pd.Series(index = eq_idx)\n", "\n", " # Loop over the index range\n", " for t in range(1, len(eq_idx)):\n", " cur_hwm = max(hwm[t-1], equity_curve[t])\n", " hwm.append(cur_hwm)\n", " drawdown[t]= (hwm[t] - equity_curve[t]) \n", " duration[t]= 0 if drawdown[t] == 0 else duration[t-1] + 1\n", " return drawdown.max(), duration.max()" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure()\n", "test_data[\"p_up\"].hist(bins=20, alpha=0.4)\n", "test_data[\"p_down\"].hist(bins=20, alpha=0.4)\n", "plt.title(\"Distribution of Probabilities\")\n", "plt.legend([\"p_up\", \"p_down\"])\n", "plt.ylabel(\"Frequency\")\n", "plt.xlabel(\"Probablity\")\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "TRADING STATS\n", "AVG Monthly Return :: 0.03%\n", "STD Monthly :: 2.94%\n", "SHARPE :: 0.03\n", "MAX DRAWDOWN :: 35.16%, 75.0 months\n", "Correlation to SPY :: -0.00\n", "NUMBER OF TRADES :: 769\n", "TOTAL TRADING DAYS :: 4277\n", "SPY MONTHLY RETURN :: 0.76%\n", "SPY STD RETURN :: 4.44%\n", "SPY SHARPE :: 0.59\n", "SPY DRAWDOWN :: 55.37%, 8.0 months\n", "0.351648055589\n" ] }, { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "test_data[\"pnl\"] = test_data[\"Adj Close\"].diff().shift(-1).fillna(0)*test_data[\"positions\"]/np.where(test_data[\"Adj Close\"]!=0,test_data[\"Adj Close\"],1)\n", "test_data[\"perc\"] = (test_data[\"Adj Close\"] - test_data[\"Adj Close\"].shift(1)) / test_data[\"Adj Close\"].shift(1)\n", "monthly = test_data.pnl.resample(\"M\").sum()\n", "monthly_spy = test_data[\"perc\"].resample(\"M\").sum()\n", "avg_return = np.mean(monthly)\n", "std_return = np.std(monthly)\n", "sharpe = np.sqrt(12) * avg_return / std_return\n", "drawdown = create_drawdowns(monthly.cumsum())\n", "spy_drawdown = create_drawdowns(monthly_spy.cumsum())\n", "print(\"TRADING STATS\")\n", "print(\"AVG Monthly Return :: \" + \"{0:.2f}\".format(round(avg_return*100,2))+ \"%\")\n", "print(\"STD Monthly :: \" + \"{0:.2f}\".format(round(std_return*100,2))+ \"%\")\n", "print(\"SHARPE :: \" + \"{0:.2f}\".format(round(sharpe,2)))\n", "print(\"MAX DRAWDOWN :: \" + \"{0:.2f}\".format(round(drawdown[0]*100,2)) + \"%, \" + str(drawdown[1]) + \" months\" )\n", "print(\"Correlation to SPY :: \" + \"{0:.2f}\".format(round(np.corrcoef(test_data[\"pnl\"], test_data[\"diff\"])[0][1],2)))\n", "print(\"NUMBER OF TRADES :: \" + str(np.sum(test_data.positions.abs())))\n", "print(\"TOTAL TRADING DAYS :: \" + str(len(data)))\n", "print(\"SPY MONTHLY RETURN :: \" + \"{0:.2f}\".format(round(monthly_spy.mean()*100,2)) + \"%\")\n", "print(\"SPY STD RETURN :: \" + \"{0:.2f}\".format(round(monthly_spy.std()*100,2)) + \"%\")\n", "print(\"SPY SHARPE :: \" + \"{0:.2f}\".format(round(monthly_spy.mean()/monthly_spy.std()*np.sqrt(12),2)))\n", "print(\"SPY DRAWDOWN :: \" + \"{0:.2f}\".format(round(spy_drawdown[0]*100,2)) + \"%, \" + str(spy_drawdown[1]) + \" months\" )\n", "\n", "print(drawdown[0])\n", "(monthly.cumsum()*100).plot()\n", "(monthly_spy.cumsum()*100).plot()\n", "plt.legend([\"NN\", \"SPY\"],loc=2)\n", "plt.ylabel(\"% Return\")\n", "plt.title(\"TRADING SPY OUT OF SAMPLE\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This plot shows the % returns when we trade using SPY and NN based models only when we are > 55% sure of the predicted directionality.\n", "\n", "It is interesting to see here how the NN performs during the [financial crisis](https://en.wikipedia.org/wiki/Financial_crisis_of_2007%E2%80%932008). This strategy makes money when many are losing ( refer to the dip in the green line in the plot between 2008-2010)! More importantly, this strategy has a significantly lower volatility (lower standard deviation in the blue line relative to the green line). \n", "\n", "In the summary statistic, you can also see a lower maximum drawdown of 13.62% for the NN model compared to the 55.37% for the SPY index over the same period of time. Similarly, a higher Sharpe ratio close to 1 from the NN model compared to 0.6 from the SPY index for the same period indicates the NN based decisions to be more stable (less risky). Thus, from a quant perspective it is more likely to be profitable (it makes money in many different market time periods). More importantly, the NN strategy is relatively uncorrelated with the SPY index (only 0.06 close to 0). \n", "\n", "**Suggested task**: Try to experiment with this network with different stocks and see what happens to the Sharpe ratio when you have multiple trading streams that are uncorrelated with each other. \n", "\n", "Remember when trading you can trade with leverage, and increase your return profile (as long as you are willing to handle the down times). The best trading strategies are the ones that can consistently make money no matter which market they are trading and no matter what is happening in the market. This \"edge\" is termed alpha in the quant industry.\n", "\n", "It is important to notice how much of a drawdown you will experience when trading (http://www.investopedia.com/terms/m/maximum-drawdown-mdd.asp?lgl=no-infinite). Since our current model is calculating only the percentage returns where returns are not reinvested, and we are not holding but trading, the larger the drawdown the harder it is to recover (if you lost 90% of your portfolio then have a 90% gain, you will only be at 19% of your starting value). \n", "\n", "We can only predict on close prices and not the adjusted close prices since the adjusted close prices incorporate data from the future (such as stock splits and dividends) which can incorporate bias into our network. " ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "TRADING STATS\n", "AVG Monthly Return :: -1.01%\n", "STD Monthly :: 7.03%\n", "SHARPE :: -0.50\n", "MAX DRAWDOWN :: 170.53%, 105.0 months\n", "Correlation to SPY :: -0.05\n" ] }, { "data": { "image/png": "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\noINgyy3j1/7EidC79/I0zZtH802XLrDvvnDppbD99tCuHRx7bDTz/PnP+StDpjz8MJx1Fpx5JnTu\nDMcdF01ZtRk8GMaMiWBu4sSsZ7PgpLX2jRSe1VaDDh1UUyIi+fX003DVVdFE07VrNNcMHBhBSKpW\nreCZZ2CvveCOO6BPn6hR2GefaO647DLYbjvYe+/M5nHOHJgwIR5vvx352Gij+A7daKMIqr74In7k\nVS12eu+9y5vJ62rcuAhCBg6Em26CSZNg553huuvgiitqPu7JJ+Hqq+Nxzz3RKXiXXRpU5OLj7kXz\nAC4BJgALgXk1pOkAPJ1IMwv4C7BaSpptgJeBxcAXwPl1uHYPwCdNmuSFpndv98MPz3cuRErfrFnu\n223n3r27+557uh98sPsJJ7g//XS+c5Zf993nDu577BF/i4qKuh1XWeleXr7itvJy9332cV9nHffp\n0zOTv9Gj3TffPPII7htt5H7ooe777+/erVtcq2rfeuu5b799fKd27BjHzZ1b92tNnuzeqlWUYenS\n5dsvv9y9aVP3t9+u/riPPnJv3TreU5WV7tde67766u7z5zeo6AVj0qRJDjjQw1dxry225psy4BHg\njup2mtlqwDNEDdBOwPHAIODKpDStgLHA50SgcT4w2MxOymbGs0nDgkVyY/Bg+PRT2GmnaG5YvDiq\n2fv1g0cfzXfu8mP0aPjtb+F3v4MXX4T99osa3Lowi34myZo0geHDoxbjsMNgyZKG5e+hh+Dww2GT\nTWDEiPiu/Oqr6Hw6Zgy8+y7MnQsLF8Zj9ux4TR95BJ5/HubNi866CxfWfq0XX4S+fWHzzeP8ZWXL\n9112GWy9ddSgpJbpxx/hkENggw3gvvvi73LCCdHcM3x4w8pfdFYVsRTqgwg2VqopAfoCy4B1k7b9\nHzAfaJp4/gdgbtXzxLbrgA9ruWbB1pQMHhzRvYhkz9Sp7k2auN9ww4rby8vdBw6MfaNG5Sdv+fLc\nc+7NmrkfeeTKNR4NNWmSe/Pm7iedVP9zPPig+2qruR93XP3z99Zb7i1bRq1Kcs1HsoUL3U8/fXlt\n0ezZ1ad77734e514ovuIEe5Dh7pfc03Udq+5pvuHH66Y/uCD3bfeOmpOil1da0ryHmDU57GKoORP\nwOSUbZ2ASqBb4vk/gNEpaXoBFUCbVVyzYIOSESPilSyVaj6RQnTQQVGdv3jxyvuWLXM/6qionh89\nOudZy4vXXnNfYw33vn3df/opO9e49974bjvlFPfvv0/v2Pvvj4Bk0KCGB0xjx8Zre8IJKwcIEya4\nb7KJe4sW7rfcUnvT1U03+c9NRU2auK+7rnuXLu5PPrly2mefjXSvv77i9h9/dN9vP/dbb21YuXKp\nsQYldwHPpmxbPRGU7JN4Pha4IyVN10RQsvkqrlmwQcnkydW/cUUkM155JT5jDz5Yc5ply9yPOCJu\nXvfd5/7UU+5//av7uee6DxgQN5iafP11/GL+4YfM5z3TZsyIG+taa7nvvnvUEmTTbbdF8LPRRu5P\nPLHqtD/84P7GG/G3NIsaibr2b6nNgw/Ge2D11d3XXtt9/fXdO3WK6+y0U/QJqas5cyKvtdWAlJdH\nIPzb3y7ftnSp+777Rl5+8YvsBYSZVtegJO+jb8zsOuDCVSRxoKu7f5yjLK3S2WefTZs2bVbYNmDA\nAAYMGJCnHMFmm8W/06bBjjvmLRsiJckdzj8funePSb9q0rRpzLNx9NEwaFBsKyuLPl/Nm0dfi6uu\ngosvXrHPxSuvwBFHwKxZMTPzkCH1y+f8+TG8trIy5sdo1qx+56nOvHnRN+Ohh2LIb1lZzDNy992w\nxhqZu051Tj8dDjwwZoXt3x8OPRROPTX6fnz5ZfQPmT4dPvgAPv88jjGLNLfeWvf+LbUZODD6Eb3/\nfgx1XrIk/u3YEU46aeW+Mauy7rp1S9ekSZz7uutiFE+rVtF/54UX4jU+4wx47DE48sj6lSlbRo4c\nyciRI1fYtmDBgrodvKqIJRcPYB1gs1oeTVOOUfNNio4d3S+6KN+5ECleS5e633139AtJ/vU5alT8\nKv33v+t2nvLyqL2cMWP5r/SKCvc//jHOc/DB0RRRWel+/fVRhd+rV/RJaNbM/ZNP0s/7qFHxy71V\nqzhHnz5RxZ8JH3/s3qFD1ADtu6/7sGH5aSqurHR/6KHoP1fV/NG6tfsWW0S+zj038vbWW9mvvcml\nGTPiPXL77e7nnRc1Mw89FPv22CPeO8WgsTbf7MvKHV1PJjq6liWe/57o6NokKc21FHFHV/cYfta/\nf75zIY1Zebn7v/5VPNXJyT74wL1nz/jCr6oWP/dc9ylT3DfdNG56mfDEExE4dOni3q9fXOvCC6Pp\nZ+HCuPn361f9sY8/Hjegk06KZqGXX3afNi2CHIjjvvrK/YUXotPkjjumN5S1Ou+9596uXeT3iy8a\ndq5M+f77eL0WLMh3TnKnf/8IwCCas6pU9SecOjV/eaurkgxKiDlIugFXAAsS/+8GtEzsXw2YAjxL\nzEWyDzAbuCrpHK2BmYkaky2AI4EfgRNruXZBByVnnhnj6UXyYelS96OPjm+UAw90X7Ik3zmqm/Ly\nqK1o3jxuvG++6f7+++5nn7187gqzCE4yZdq0uFabNiv3kXj44bjm2LErbv/3v6MGZPvt3bfdNv5f\nVVvQrp37o4+u2D/hrbeiA+UWW8Qv7fp4++34G3TrVvNoEsmNqg6vl1664vYlS+J1Puus7F175szo\np9PQEUClGpQMSzSzpD72SErTARiTCDRmA39m5cnTtgJeAhYBXwLn1eHaBR2U3HFHVK/WNGRNJFuW\nLIlfck2bul98cdzg+/atfpRKofjuu7iR77prBB3nnOO+aNGKaZYscX/kEffhwzN//cWL3b/9duXt\nlZXRebRr1+Wf5bffjpqPffZZXgu1dGnUYowe7T5vXvXXmDYtal5++Uv3d96pOS/PP+9+6qkRnD32\nWJx33Lj4Zb7jjjWfX3Jr6tTqA4MLLohOx6nv34b65BP33/1ueQC85Zbud91V/6axkgxK8vko9KBk\n/Hgvmmo8KR0LF0b/hebN3ceMiW3PPx8jFPbeO79t+//9r/tLL8UN9vnno2nphhtiJtamTePzss02\nkaaQTJ4cgdItt8SIjl/8IoKD+vQR+fLLmH22RYsYIpts2bLohwbRJ23NNf3n2peq+TbSHYYruffp\np/F63Xdfw8/1ww8x0uyoo2I4dbt27kOGRM1d//7xvmzbNpoc031vKChpZEHJ11/Hq/nYY/nOiZSi\niopov77ttri5PfFEBMK77x4TS73wworpx4+P7XvumbkOl+mYODG+VJNvshA35/32i0mrPv889/mq\nq5NPjuadjh2j1qQhfUMWLYq5Oqrm+/jpp+h7sttu0YFyyJB4fSsrYxr9V1+NGphM//KW7OnTJ4Yl\nV6msjCHMnTtHDVhNTS+zZ0eT0AEHRNqqz0mnTvEZSX0P/Pe/0bTZsmU0Jc6ZU/c8KihpZEFJZWVU\n4V17bb5zIqXmf/+LWg9YsS8DxI1zwoTqj3vllfj1veGG7lddFTe8XFi61H2rraLj6tSpUQ392WfR\nUbNYbrTffBN/2w4dorajoSor3e+8072sLNbuWWedmPfj1Vcbfm7Jv9Gj4/P4zjuxXlDVPCY77BD/\nnnrqyhPITZgQn802baK59fzz3f/xj2guXLZs1debPDlGQW2+ed07QN97r4KSRhWUuEekfNxx+c6F\nlJJRo6K6doMNlne+XLw4Aoxp02r/BT91aowWWX31uCEOHBhfhtmcNvvaa6MGYPLk7F0jF95/PwLC\nTHr99ah96dev4SNzpHAsXerevn0EnC1bRsD51FOx76674vPQr180p1ZWxkywTZtGn6r6doT+5JOo\nXdlwwxgNtSovv+xeVqagpNEFJYMGRWQs0lCLF8eU2uB+yCENv4F9+23059h4Y/+5evjCCyNwqFop\ndtIk95tvjiGuF1xQv+t8/HH0bzn//Iblt5SVwjoqsrI//cl/rhVJHS799NMRrOywQ8w6DNEM09CB\nETNnRr+stm1rrjH94IOoxe/ZU0FJowtKhgyJHvP60pGGuuOO+HV1772ZfT9VVET/k5NPXj7ktnPn\n5XMwNG8eQ1Ah+qWko7IyFjbr3Lm0Js8SqYtly1bdT2rSpOUT7D36aOauO39+9C1r0sT96qtXbCaa\nMSOaILfe2v3FF+sWlJjHDVdqYWY9gEmTJk2iR48e+c5OtZ54Ag46CGbOjCWwRerrN7+JKa7Hjs3e\nNZYtg3Hj4KmnYMMNYffdYfvtYwrzXXaBxYth0qSYvr0u7rsvlnsfOxb69MlevkWK1dy5MTX+hhtm\n9rzLlsGVV8K118Zn94EHYO214zP93XcwcSLMnj2Znj17AvR098k1nSvva99I5nTtGv9OnaqgROpv\nzhx48UW4/fbsXqesDPbZJx6pbrst1nG6+274wx9qP9c338C558IxxyggEalJXdfcSVdZWazr1KcP\nHHssdOsGm2wS6xJNmBBB0OzZdTtXhpYqkkLQuXO8OaZNy3dOpJg98USMrTnooPzlYYcdYlG7yy6L\nxeBWxR1OPjkWYbvpppxkT0SqsfvuMGVKLKA4dSo8+SRssUV651BQUkLKyiI6VVAiDTFqFPz617De\nevnNx3XXRbXw4MGrTnfHHRFI3XMP/OIXOcmaiNSgTZtYLXv+/AhS0qWgpMR06aKgROpv/vxYFv2w\nw/KdE1h/fbj88mhGev/96tO89x6ccw6cdlosay8ihaF58/odp6CkxCgokYZ48kmoqICDD853TsKZ\nZ8LGG8NZZ0W+ki1aBEceCZttBtdfn5/8iUhmKSgpMV26ROeiH3/Md06kGI0aBbvuWjgdpZs1g1tv\njdqbLl2iqWbRoth39tkwfTo89BC0aJHXbIpIhigoKTFVI3A++ii/+ZDis2ABPPdcYTTdJOvbF958\nE3r0iGaajh2jE+zf/hYBS7od6USkcCkoKTGbbx7/qglH0jVmDCxdCoccku+crGz77eHhh+GTT2DA\nAHj0UTjiCDjppHznTEQySUFJiWndGtq3V1Ai6fvnP2NukA4d8p2Tmm28ccxhMmcOjBgRw4BFpHQo\nKClB6uwq6frxR3j22cJruqnJGmvEjLMiUloUlJQgBSWSrmeegSVL4NBD850TEWnMFJSUoK5d4eOP\nobw83zmRYvDjj3DzzdC9e8wKLCKSLwpKSlCXLtFhcfr0fOdECt1338V6FR98EH01RETySUFJCaoa\nInn77VBZmd+8NFZffhmzjabjhRfggguiGSUXvvkG9twzho+/8ALstlturisiUhMFJSWoffuY4fKW\nW+Coo5ZPNiXZN3MmnHJKrEHUs2eMEKlNRQX88Y+w997xuh12WNR0ZdOMGbDHHvD11/DSSzHkVkQk\n35rmOwOSHeedB7/6VSzl3qtXLFhWKLN0lqI5c+DPf4ahQ2H11WMZ76lTYeDAuPGfe271x82aBUcf\nHYHBVVdFINO/fwSTDz8ciyymY+nSqCErL4/XfdttoWniU15ZGZOQjRkD990Xo1deeQU23bQhJRcR\nyRwFJSXs4IPjpnPggbEU/Jgx0K1bvnNVembMiGBi8WK48MKY/rxNG3CPWqvzzosalOuvh9USdZPf\nfAPjxsWaLmbRfNKrV+wbPTpeu2OOgeHDlwcVtfngAzj22Gg2atYsashat46VOtu2hbFj47pt28L+\n+8PVV8Mvf5mVP4mISL0oKClxPXrEr+MDD4T99oN339Xy7plUXh41Hc2awZQpsbJtFTO49toITM44\nI2Yjbd0aJk6Ezz6LNH36wP33Q7t2y4/bf3945BE4/HA4/ni4555Vr+1SWRmjZy69NGrH3ngDttoK\n3n4bXnwxHv/5T0zNfsABsPPOdQ90RERyydw933koCmbWA5g0adIkevToke/spG3mzKglqaox0UyY\nmXH55XDddXHjX1VH0VGjIjDp0CGCgp13hp12ipqKml6LRx+NZpyysphpdY894tG+fbye//tf/Pvs\nszBhQtTQXHONFqcTkcIzefJkevbsCdDT3SfXlE6/lxqJ9u2jH8EBB0QH2LPPzneOit+//x1BwDXX\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "test_data[\"p_up\"] = pd.Series(predicted_label_prob[:,0], index = test_data.index)\n", "test_data[\"p_down\"] = predicted_label_prob[:,1]\n", "test_data['long_entries'] = np.where((test_data.p_up > 0.50) , 1, 0)\n", "test_data['short_entries'] = np.where((test_data.p_down > 0.50) , -1, 0)\n", "test_data['positions'] = test_data['long_entries'].fillna(0) + test_data['short_entries'].fillna(0)\n", "test_data[\"pnl\"] = test_data[\"Adj Close\"].diff().shift(-1).fillna(0)*test_data[\"positions\"]/np.where(test_data[\"Adj Close\"]!=0,test_data[\"Adj Close\"],1)\n", "monthly = test_data.pnl.resample(\"M\").sum()\n", "avg_return = np.mean(monthly)\n", "std_return = np.std(monthly)\n", "sharpe = np.sqrt(12) * avg_return / std_return\n", "drawdown = create_drawdowns(monthly.cumsum())\n", "\n", "print(\"TRADING STATS\")\n", "print(\"AVG Monthly Return :: \" + \"{0:.2f}\".format(round(avg_return*100,2))+ \"%\")\n", "print(\"STD Monthly :: \" + \"{0:.2f}\".format(round(std_return*100,2))+ \"%\")\n", "print(\"SHARPE :: \" +\"{0:.2f}\".format(round(sharpe,2)))\n", "print(\"MAX DRAWDOWN :: \" + \"{0:.2f}\".format(round(drawdown[0]*100,2)) + \"%, \" + str(drawdown[1]) + \" months\" )\n", "print(\"Correlation to SPY :: \" + \"{0:.2f}\".format(round(np.corrcoef(test_data[\"pnl\"], test_data[\"diff\"])[0][1],2)))\n", "(monthly.cumsum()*100).plot()\n", "(monthly_spy.cumsum()*100).plot()\n", "plt.legend([\"NN\", \"SPY\"],loc=2)\n", "plt.ylabel(\"% Return\")\n", "plt.title(\"TRADING SPY OUT OF SAMPLE\")\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "The plot above shows the % returns when we trade every day using SPY and NN based models as compared to a confidence based trading show in previous plot. With frequent trading the volatility is higher and transaction fees (not accounted in this plot) will greatly eat into any profits.\n", "\n", "\n", "## Suggested exercises\n", "Try changing the batch size, the network itself, the activation functions, and many other features and see how much it affects the output. Notice how it can change dramatically? This means what you have been training on might be noise and you need to refine either the model or more likely the inputs to the network itself. \n", "\n", "After you have completed the aforementioned exercise, experiment with applying the trained network to other to other timeseries data. Pick a stock in the S&P 500, pick something that is uncorrelated with the S&P 500, try a completely random dataset. How do you expect each of those to do? Should the performance match up with S&P 500 out of sample performance? How about the random data?\n" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.49\n" ] } ], "source": [ "# Repeatable factor (used for runtime verification)\n", "print(error)" ] }, { "cell_type": "markdown", "metadata": { "collapsed": true }, "source": [ "## Appendix\n", "A great resource for getting started as a Quant: https://www.quantstart.com/\n", "An online back-testing and open source trading platform, hosts quant competitions and a forum: https://www.quantopian.com/\n", "[A summary of backtesting and biases](https://www.quantstart.com/articles/successful-backtesting-of-algorithmic-trading-strategies-part-i)\n", "[For those who want to automatically trade in python](https://github.com/blampe/IbPy)" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python [default]", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" } }, "nbformat": 4, "nbformat_minor": 1 }