Created
November 2, 2017 11:17
-
-
Save TeamAuquan/b90b348caf4573ebf44a5751ef633b7d to your computer and use it in GitHub Desktop.
Apply ML to Trading
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Application of Machine Learning Techniques to Trading" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"This post is inspired by our observations of some common caveats and pitfalls during the competition when trying to apply ML techniques to trading problems.\n", | |
"Let’s look into how we can use ML to create a trade signal by data mining." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"import numpy\n", | |
"import scipy\n", | |
"import sklearn\n", | |
"import numpy as np\n", | |
"import pandas as pd\n", | |
"from datetime import datetime, timedelta\n", | |
"import matplotlib.pyplot as plt\n", | |
"import os" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"To setup an ML framework, We create features which could have some predictive power (X), a target variable that we’d like to predict(Y) and use historical data to train a ML model that can predict Y as close as possible to the actual value. Finally, we use this model to make predictions on new data where Y is unknown." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Step 1: Setup your problem\n", | |
"\n", | |
"We're going to use a problem from [QuantQuest](http://quant-quest.auquan.com/problem/qq2p1) for demo.\n", | |
"We are going to create a prediction model that predicts future expected value of basis, where:\n", | |
"\n", | |
"$basis$ = Price of Stock - Price of Future\n", | |
"\n", | |
"$basis_t=S_t−F_t$\n", | |
"\n", | |
"$Y$ = future expected value of basis = $Average(basis_{(t+1)}, basis_{(t+2)}, basis_{(t+3)},basis_{(t+4)},basis_{(t+5)})$\n", | |
"\n", | |
"*Note Y(t) will only be known during a backtest, but when using our model live, we won’t know Price(t+1) at time t. We make a prediction Y(Predicted,t) using our model and compare it with actual value only at time t+1. **This means you cannot use Y as a feature in your predictive model)** *\n", | |
"\n", | |
"Since this is a regression problem, we will evaluate the model on RMSE. We’ll also use Total Pnl as an evaluation criterion\n", | |
"\n", | |
"$RMSE = \\sqrt{\\sum{(Y_{actual} - Y_{predicted})^2} / n} $\n", | |
"\n", | |
"Our Objective: Create a model so that predicted value is as close as possible to Y" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Step 2: Collect Reliable Data\n", | |
"\n", | |
"We are using the folliwing data for our stock at minute interval data for trading days over one months(~8000 data points):\n", | |
"Stock Bid Price, Ask Price, Bid Volume, Ask Volume \n", | |
"Future Bid Price, Ask Price, Bid Volume, Ask Volume\n", | |
"$Stock VWAP = {Bid Price*Ask Volume + Ask Price*Bid Volume}/(Ask Volume + Bid Volume)$\n", | |
"Future VWAP\n", | |
"\n", | |
"Data is already cleaned for Dividends, Splits, Rolls" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# Load the data\n", | |
"\n", | |
"def getData(datasetId, instrumentId):\n", | |
" fileName = 'historicalData/' + datasetId + '/' + instrumentId + '.csv'\n", | |
" if not os.path.isfile(fileName):\n", | |
" url = 'https://raw.githubusercontent.com/Auquan/auquan-historical-data/master/qq2Data/%s/%s.csv' % (\n", | |
" dataSetId, instrumentId)\n", | |
" response = urlopen(url)\n", | |
" status = response.getcode()\n", | |
" if status == 200:\n", | |
" print('Downloading %s data to file: %s' % (instrumentId, fileName))\n", | |
" with open(downloadLocation, 'w') as f:\n", | |
" f.write(response.read().decode('utf8'))\n", | |
" else:\n", | |
" print('File not found. Please check settings!')\n", | |
"\n", | |
"datasetId = 'trainingData1'\n", | |
"instrumentId = 'MQK'\n", | |
"getData(datasetId, instrumentId)\n", | |
"fileName = 'historicalData/' + datasetId + '/' + instrumentId + '.csv'\n", | |
"data = pd.read_csv(fileName, engine='python', index_col = 0, parse_dates=True)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# Preparing our data\n", | |
"data['Stock Price'] = data['stockTopBidPrice'] + data['stockTopAskPrice'] / 2.0\n", | |
"data['Future Price'] = data['futureTopBidPrice'] + data['futureTopAskPrice'] / 2.0\n", | |
"data['Y(Target)'] = data['basis'].shift(-5)\n", | |
"del data['benchmark_score']\n", | |
"del data['FairValue']" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
" stockVWAP futureVWAP basis stockTopBidVol \\\n", | |
"2017-01-06 09:17:00 517.773 512.492 5.425 79 \n", | |
"2017-01-06 09:18:00 515.300 510.682 4.425 40 \n", | |
"2017-01-06 09:19:00 516.225 511.342 4.950 81 \n", | |
"2017-01-06 09:20:00 519.792 513.959 5.650 179 \n", | |
"2017-01-06 09:21:00 520.270 513.819 6.400 68 \n", | |
"2017-01-06 09:22:00 524.792 519.118 5.625 2299 \n", | |
"\n", | |
" stockTopAskVol stockTopBidPrice stockTopAskPrice \\\n", | |
"2017-01-06 09:17:00 79 518.00 518.30 \n", | |
"2017-01-06 09:18:00 10 515.05 515.30 \n", | |
"2017-01-06 09:19:00 1496 516.20 516.45 \n", | |
"2017-01-06 09:20:00 1940 519.65 519.95 \n", | |
"2017-01-06 09:21:00 93 520.45 520.60 \n", | |
"2017-01-06 09:22:00 4924 524.60 525.00 \n", | |
"\n", | |
" futureTopBidVol futureTopAskVol futureTopBidPrice \\\n", | |
"2017-01-06 09:17:00 4000 2000 512.60 \n", | |
"2017-01-06 09:18:00 2000 4000 510.65 \n", | |
"2017-01-06 09:19:00 2000 2000 511.25 \n", | |
"2017-01-06 09:20:00 2000 2000 514.05 \n", | |
"2017-01-06 09:21:00 2000 6000 513.85 \n", | |
"2017-01-06 09:22:00 2000 2000 519.00 \n", | |
"\n", | |
" ... stockTotalAskVol futureTotalBidVol \\\n", | |
"2017-01-06 09:17:00 ... 2780 12000 \n", | |
"2017-01-06 09:18:00 ... 1756 10000 \n", | |
"2017-01-06 09:19:00 ... 3010 10000 \n", | |
"2017-01-06 09:20:00 ... 3530 10000 \n", | |
"2017-01-06 09:21:00 ... 2128 12000 \n", | |
"2017-01-06 09:22:00 ... 5890 10000 \n", | |
"\n", | |
" futureTotalAskVol stockAverageBidPrice \\\n", | |
"2017-01-06 09:17:00 12000 517.493 \n", | |
"2017-01-06 09:18:00 24000 514.919 \n", | |
"2017-01-06 09:19:00 14000 515.986 \n", | |
"2017-01-06 09:20:00 12000 519.549 \n", | |
"2017-01-06 09:21:00 24000 520.022 \n", | |
"2017-01-06 09:22:00 12000 524.558 \n", | |
"\n", | |
" stockAverageAskPrice futureAverageBidPrice \\\n", | |
"2017-01-06 09:17:00 518.654 512.000 \n", | |
"2017-01-06 09:18:00 515.708 510.340 \n", | |
"2017-01-06 09:19:00 516.488 511.050 \n", | |
"2017-01-06 09:20:00 520.079 513.470 \n", | |
"2017-01-06 09:21:00 520.756 513.392 \n", | |
"2017-01-06 09:22:00 525.054 518.740 \n", | |
"\n", | |
" futureAverageAskPrice Stock Price Future Price \\\n", | |
"2017-01-06 09:17:00 513.142 777.150 769.025 \n", | |
"2017-01-06 09:18:00 511.283 772.700 766.075 \n", | |
"2017-01-06 09:19:00 511.650 774.425 767.000 \n", | |
"2017-01-06 09:20:00 514.650 779.625 771.175 \n", | |
"2017-01-06 09:21:00 514.775 780.750 771.050 \n", | |
"2017-01-06 09:22:00 519.592 787.100 778.675 \n", | |
"\n", | |
" Y(Target) \n", | |
"2017-01-06 09:17:00 5.625 \n", | |
"2017-01-06 09:18:00 5.400 \n", | |
"2017-01-06 09:19:00 5.450 \n", | |
"2017-01-06 09:20:00 5.175 \n", | |
"2017-01-06 09:21:00 5.050 \n", | |
"2017-01-06 09:22:00 5.225 \n", | |
"\n", | |
"[6 rows x 30 columns]\n" | |
] | |
} | |
], | |
"source": [ | |
"print(data.head(6))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"stockVWAP\n", | |
"futureVWAP\n", | |
"basis\n", | |
"stockTopBidVol\n", | |
"stockTopAskVol\n", | |
"stockTopBidPrice\n", | |
"stockTopAskPrice\n", | |
"futureTopBidVol\n", | |
"futureTopAskVol\n", | |
"futureTopBidPrice\n", | |
"futureTopAskPrice\n", | |
"stockNextBidVol\n", | |
"stockNextAskVol\n", | |
"stockNextBidPrice\n", | |
"stockNextAskPrice\n", | |
"futureNextBidVol\n", | |
"futureNextAskVol\n", | |
"futureNextBidPrice\n", | |
"futureNextAskPrice\n", | |
"stockTotalBidVol\n", | |
"stockTotalAskVol\n", | |
"futureTotalBidVol\n", | |
"futureTotalAskVol\n", | |
"stockAverageBidPrice\n", | |
"stockAverageAskPrice\n", | |
"futureAverageBidPrice\n", | |
"futureAverageAskPrice\n", | |
"Stock Price\n", | |
"Future Price\n", | |
"Y(Target)\n" | |
] | |
} | |
], | |
"source": [ | |
"#Available data\n", | |
"\n", | |
"for i in range(len(data.columns)):\n", | |
" print(data.columns[i])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Step 3: Split Data\n", | |
"\n", | |
"For this problem we have three datasets available, we will use one as training set, second as validation set and the third as our test set" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"# Training Data\n", | |
"datasetId = 'trainingData1'\n", | |
"instrumentId = 'MQK'\n", | |
"getData(datasetId, instrumentId)\n", | |
"fileName = 'historicalData/' + datasetId + '/' + instrumentId + '.csv'\n", | |
"training_data = pd.read_csv(fileName, engine='python', index_col = 0, parse_dates=True)\n", | |
"\n", | |
"# Validation Data\n", | |
"datasetId = 'trainingData2'\n", | |
"instrumentId = 'MQK'\n", | |
"getData(datasetId, instrumentId)\n", | |
"fileName = 'historicalData/' + datasetId + '/' + instrumentId + '.csv'\n", | |
"validation_data = pd.read_csv(fileName, engine='python', index_col = 0, parse_dates=True)\n", | |
"\n", | |
"# Test Data\n", | |
"datasetId = 'trainingData3'\n", | |
"instrumentId = 'MQK'\n", | |
"getData(datasetId, instrumentId)\n", | |
"fileName = 'historicalData/' + datasetId + '/' + instrumentId + '.csv'\n", | |
"out_of_sample_test_data = pd.read_csv(fileName, engine='python', index_col = 0, parse_dates=True)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Preparing Data\n", | |
"\n", | |
"We add the target variable $Y$, defined as average of next five values of basis " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 58, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"def prepareData(data, period):\n", | |
" data['Y(Target)'] = data['basis'].rolling(period).mean().shift(-period)\n", | |
" if 'FairValue' in data.columns:\n", | |
" del data['FairValue']\n", | |
" data.dropna(inplace=True)\n", | |
"\n", | |
"period = 5\n", | |
"prepareData(training_data, period)\n", | |
"prepareData(validation_data, period)\n", | |
"prepareData(out_of_sample_test_data, period)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Step 4: Feature Engineering\n", | |
"\n", | |
"Let's try to create some features that may have some predictive power on our data.\n", | |
"\n", | |
"*** The golden rule of feature selection is that the predictive power should come from primarily from the features and not from the model. You will find that the choice of features has a far greater impact on performance than the choice of model. *\n", | |
"\n", | |
"We shouldn't randomly choose a very large set of features without exploring relationship with target variable, because little or no relationship with target variable will likely lead to overfitting.\n", | |
"The features might be highly correlated with each other, in that case a fewer number of features will explain the target just as well.\n", | |
"\n", | |
"For this first iteration, we create a large number of features, using a mix of parameters. Later we will try to see if can reduce the number of features\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"def difference(dataDf, period):\n", | |
" return dataDf.sub(dataDf.shift(period), fill_value=0)\n", | |
"\n", | |
"def ewm(dataDf, halflife):\n", | |
" return dataDf.ewm(halflife=halflife,ignore_na=False,min_periods=0,adjust=True).mean()\n", | |
"\n", | |
"def rsi(data, period):\n", | |
" data_upside = data.sub(data.shift(1), fill_value=0)\n", | |
" data_downside = data_upside.copy()\n", | |
" data_downside[data_upside > 0] = 0\n", | |
" data_upside[data_upside < 0] = 0\n", | |
" avg_upside = data_upside.rolling(period).mean()\n", | |
" avg_downside = - data_downside.rolling(period).mean()\n", | |
" rsi = 100 - (100 * avg_downside / (avg_downside + avg_upside))\n", | |
" rsi[avg_downside == 0] = 100\n", | |
" rsi[(avg_downside == 0) & (avg_upside == 0)] = 0\n", | |
"\n", | |
" return rsi" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"def create_features(data):\n", | |
" basis_X = pd.DataFrame(index = data.index, columns = [ 'emabasis3','emabasis5','emabasis2','emabasis7','emabasis10',\\\n", | |
" 'emabasis4','rsi15','rsi10','rsi5','mom1','mom10',\\\n", | |
" 'mom3','mom5'])\n", | |
" \n", | |
" basis_X['mom1'] = difference(data['basis'],2)\n", | |
" basis_X['mom3'] = difference(data['basis'],4)\n", | |
" basis_X['mom5'] = difference(data['basis'],6)\n", | |
" basis_X['mom10'] = difference(data['basis'],11)\n", | |
"\n", | |
" basis_X['rsi15'] = rsi(data['basis'],15)\n", | |
" basis_X['rsi10'] = rsi(data['basis'],10)\n", | |
" basis_X['rsi5'] = rsi(data['basis'],5)\n", | |
" \n", | |
" basis_X['emabasis2'] = ewm(data['basis'],2)\n", | |
" basis_X['emabasis3'] = ewm(data['basis'],3)\n", | |
" basis_X['emabasis4'] = ewm(data['basis'],4)\n", | |
" basis_X['emabasis5'] = ewm(data['basis'],5)\n", | |
" basis_X['emabasis7'] = ewm(data['basis'],7)\n", | |
" basis_X['emabasis10'] = ewm(data['basis'],10)\n", | |
"\n", | |
" basis_X['basis'] = data['basis']\n", | |
" basis_X['vwapbasis'] = data['stockVWAP']-data['futureVWAP']\n", | |
" \n", | |
" basis_X['swidth'] = data['stockTopAskPrice']-data['stockTopBidPrice']\n", | |
" basis_X['fwidth'] = data['futureTopAskPrice']-data['futureTopBidPrice']\n", | |
" \n", | |
" basis_X['btopask'] = data['stockTopAskPrice']-data['futureTopAskPrice']\n", | |
" basis_X['btopbid'] =data['stockTopBidPrice']-data['futureTopBidPrice']\n", | |
" basis_X['bavgask'] = data['stockAverageAskPrice']-data['futureAverageAskPrice']\n", | |
" basis_X['bavgbid'] = data['stockAverageBidPrice']-data['futureAverageBidPrice']\n", | |
" basis_X['bnextask'] = data['stockNextAskPrice']-data['futureNextAskPrice']\n", | |
" basis_X['bnextbid'] = data['stockNextBidPrice']-data['futureNextBidPrice']\n", | |
" basis_X['topaskvolratio'] = data['stockTopAskVol']/data['futureTopAskVol']\n", | |
" basis_X['topbidvolratio'] = data['stockTopBidVol']/data['futureTopBidVol']\n", | |
" basis_X['totalaskvolratio'] = data['stockTotalAskVol']/data['futureTotalAskVol']\n", | |
" basis_X['totalbidvolratio'] = data['stockTotalBidVol']/data['futureTotalBidVol']\n", | |
" basis_X['nextbidvolratio'] = data['stockNextBidVol']/data['futureNextBidVol']\n", | |
" basis_X['nextaskvolratio'] = data['stockNextAskVol']-data['futureNextAskVol']\n", | |
" \n", | |
" basis_X['emabasisdi4'] = basis_X['emabasis7'] - basis_X['emabasis5'] + basis_X['emabasis2']\n", | |
" basis_X['emabasisdi7'] = basis_X['emabasis7'] - basis_X['emabasis5']+ basis_X['emabasis3']\n", | |
" basis_X['emabasisdi1'] = basis_X['emabasis10'] - basis_X['emabasis5'] + basis_X['emabasis3']\n", | |
" basis_X['emabasisdi3'] = basis_X['emabasis10'] - basis_X['emabasis3']+ basis_X['emabasis5']\n", | |
" basis_X['emabasisdi5'] = basis_X['emabasis7']- basis_X['emabasis5'] + data['basis']\n", | |
" basis_X['emabasisdi'] = basis_X['emabasis5'] - basis_X['emabasis3'] + data['basis']\n", | |
" basis_X['emabasisdi6'] = basis_X['emabasis7'] - basis_X['emabasis3']+ data['basis']\n", | |
" basis_X['emabasisdi2'] = basis_X['emabasis10'] - basis_X['emabasis5']+ data['basis']\n", | |
" basis_X['emabasisdi3'] = basis_X['emabasis10'] - basis_X['emabasis3']+ basis_X['emabasis5']\n", | |
" \n", | |
" basis_X = basis_X.fillna(0)\n", | |
" \n", | |
" basis_y = data['Y(Target)']\n", | |
" basis_y.dropna(inplace=True)\n", | |
" \n", | |
" print(\"Any null data in y: %s, X: %s\"%(basis_y.isnull().values.any(), basis_X.isnull().values.any()))\n", | |
" print(\"Length y: %s, X: %s\"%(len(basis_y.index), len(basis_X.index)))\n", | |
" \n", | |
" return basis_X, basis_y" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Any null data in y: False, X: False\n", | |
"Length y: 8732, X: 8732\n", | |
"Any null data in y: False, X: False\n", | |
"Length y: 6499, X: 6499\n" | |
] | |
} | |
], | |
"source": [ | |
"basis_X_train, basis_y_train = create_features(training_data)\n", | |
"basis_X_test, basis_y_test = create_features(validation_data)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Step 5: Model Selection\n", | |
"\n", | |
"Let's start with a Linear Regression model with non-normalized features" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from sklearn import linear_model\n", | |
"from sklearn.metrics import mean_squared_error, r2_score\n", | |
"\n", | |
"def linear_regression(basis_X_train, basis_y_train, basis_X_test,basis_y_test):\n", | |
" regr = linear_model.LinearRegression()\n", | |
" # Train the model using the training sets\n", | |
" regr.fit(basis_X_train, basis_y_train)\n", | |
" # Make predictions using the testing set\n", | |
" basis_y_pred = regr.predict(basis_X_test)\n", | |
"\n", | |
" # The coefficients\n", | |
" print('Coefficients: \\n', regr.coef_)\n", | |
" # The mean squared error\n", | |
" print(\"Mean squared error: %.2f\"\n", | |
" % mean_squared_error(basis_y_test, basis_y_pred))\n", | |
" # Explained variance score: 1 is perfect prediction\n", | |
" print('Variance score: %.2f' % r2_score(basis_y_test, basis_y_pred))\n", | |
"\n", | |
" # Plot outputs\n", | |
" plt.scatter(basis_y_pred, basis_y_test, color='black')\n", | |
" plt.plot(basis_y_test, basis_y_test, color='blue', linewidth=3)\n", | |
"\n", | |
" plt.xlabel('Y(actual)')\n", | |
" plt.ylabel('Y(Predicted)')\n", | |
"\n", | |
" plt.show()\n", | |
" \n", | |
" return regr, basis_y_pred" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Step 6: Train, Validate and Optimize (repeat steps 4-6)\n", | |
"\n", | |
"Now we will try to itereate over various models, model parameters and feature space" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"('Coefficients: \\n', array([ -1.09294903e+08, 4.16216420e+07, 1.34329002e+07,\n", | |
" 1.47558380e+07, 5.69880767e+06, -5.65602376e+01,\n", | |
" -1.04223564e-03, -6.17999583e-04, -8.25412571e-05,\n", | |
" 4.36068904e-02, 1.15347933e-02, 5.75512702e-02,\n", | |
" -3.06475256e-02, 1.88264125e+07, 8.35613539e-02,\n", | |
" 3.72347486e-03, -6.26368728e-03, 1.88264125e+07,\n", | |
" 1.88264125e+07, 6.42770119e-02, 5.72541347e-02,\n", | |
" 3.34355514e-03, 1.63761205e-02, -7.35886791e-03,\n", | |
" -8.15309584e-04, -3.90949808e-02, 3.14178562e-02,\n", | |
" 3.33209056e-03, -1.32620335e-06, -1.34329038e+07,\n", | |
" 3.58210606e+07, 2.67640303e+07, -1.53664149e+07,\n", | |
" -8.03939144e+06, -2.23881006e+06, -2.91046140e+07,\n", | |
" -1.70964218e+07]))\n", | |
"Mean squared error: 0.02\n", | |
"Variance score: 0.96\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\nYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x137f77b8>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"_, basis_y_pred = linear_regression(basis_X_train, basis_y_train, basis_X_test,basis_y_test)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Look at the model coeffecients. We can't really compare them or tell which ones are important since they all belong to different scale. Let's try normalization to conform them to same scale and also enforce some stationarity.\n", | |
"\n", | |
"Normalization is generally tricky because future range of data is unknown. We overcome this by using rolling histrical mean and standard deviation over lookback period. However, this means the same normalized value of feature will mean different actual value at different times. This may be a cause of errors in your model; hence normalization is tricky and you have to figure what actually improves performance of your model(if at all)." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"def normalize(basis_X, basis_y, period):\n", | |
" basis_X_norm = (basis_X - basis_X.rolling(period).mean())/basis_X.rolling(period).std()\n", | |
" basis_X_norm.dropna(inplace=True)\n", | |
" basis_y_norm = (basis_y - basis_X['basis'].rolling(period).mean())/basis_X['basis'].rolling(period).std()\n", | |
" basis_y_norm = basis_y_norm[basis_X_norm.index]\n", | |
" \n", | |
" return basis_X_norm, basis_y_norm" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": { | |
"collapsed": false, | |
"scrolled": true | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"('Coefficients: \\n', array([ -3.70432958e+00, -9.20150761e+00, 1.50064905e+00,\n", | |
" 8.89812251e+00, -5.56922026e+00, 1.98726696e+01,\n", | |
" -3.57657130e-03, -1.46029485e-02, -2.29673714e-02,\n", | |
" 8.86610874e-03, 1.95610757e-02, -1.17103220e-03,\n", | |
" -3.46893540e-03, -7.91382906e+00, 4.97898295e-02,\n", | |
" 6.17485847e-03, 1.16678309e-02, 2.08831433e+00,\n", | |
" 2.03107758e+00, 9.73635367e-02, 6.10542498e-02,\n", | |
" -3.12275107e-02, 4.79404676e-02, 7.03055492e-04,\n", | |
" 1.12794013e-02, -2.20004218e-02, 2.30958491e-02,\n", | |
" 5.66055766e-03, -5.81445459e-03, 2.97538218e+00,\n", | |
" -2.44379340e+01, 1.00649919e+01, 2.34371949e-02,\n", | |
" 1.53379629e+01, -9.15142479e+00, 4.28810053e+00,\n", | |
" -6.34768897e+00]))\n", | |
"Mean squared error: 0.28\n", | |
"Variance score: 0.77\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x11989f98>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"norm_period = 375\n", | |
"basis_X_norm_test, basis_y_norm_test = normalize(basis_X_test,basis_y_test, norm_period)\n", | |
"basis_X_norm_train, basis_y_norm_train = normalize(basis_X_train, basis_y_train, norm_period)\n", | |
"\n", | |
"regr_norm, basis_y_pred = linear_regression(basis_X_norm_train, basis_y_norm_train, basis_X_norm_test, basis_y_norm_test)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The model doesn't seem to predict normalized $Y$ that well. We first convert prediction $Y$ back to unnormalized value to evaluate model" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Mean squared error: 0.05\n", | |
"Variance score: 0.90\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x138b8b38>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"basis_y_pred = basis_y_pred * basis_X_test['basis'].rolling(period).std()[basis_y_norm_test.index] + basis_X_test['basis'].rolling(period).mean()[basis_y_norm_test.index]\n", | |
"\n", | |
"print(\"Mean squared error: %.2f\"\n", | |
" % mean_squared_error(basis_y_test[basis_y_norm_test.index], basis_y_pred))\n", | |
"# Explained variance score: 1 is perfect prediction\n", | |
"print('Variance score: %.2f' % r2_score(basis_y_test[basis_y_norm_test.index], basis_y_pred))\n", | |
"\n", | |
"# Plot outputs\n", | |
"plt.scatter(basis_y_pred, basis_y_test[basis_y_norm_test.index], color='black')\n", | |
"plt.plot(basis_y_test, basis_y_test, color='blue', linewidth=3)\n", | |
"\n", | |
"plt.xlabel('Y(actual)')\n", | |
"plt.ylabel('Y(Predicted)')\n", | |
"\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The model doesn't improve on the previous model, but it's not much worse either.And now we can actually compare coeffecients to see which features are actually important.\n", | |
"\n", | |
"Let's look at the coeffecients" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"-3.7043, emabasis3\n", | |
"-9.2015, emabasis5\n", | |
"1.5006, emabasis2\n", | |
"8.8981, emabasis7\n", | |
"-5.5692, emabasis10\n", | |
"19.8727, emabasis4\n", | |
"-0.0036, rsi15\n", | |
"-0.0146, rsi10\n", | |
"-0.0230, rsi5\n", | |
"0.0089, mom1\n", | |
"0.0196, mom10\n", | |
"-0.0012, mom3\n", | |
"-0.0035, mom5\n", | |
"-7.9138, basis\n", | |
"0.0498, vwapbasis\n", | |
"0.0062, swidth\n", | |
"0.0117, fwidth\n", | |
"2.0883, btopask\n", | |
"2.0311, btopbid\n", | |
"0.0974, bavgask\n", | |
"0.0611, bavgbid\n", | |
"-0.0312, bnextask\n", | |
"0.0479, bnextbid\n", | |
"0.0007, topaskvolratio\n", | |
"0.0113, topbidvolratio\n", | |
"-0.0220, totalaskvolratio\n", | |
"0.0231, totalbidvolratio\n", | |
"0.0057, nextbidvolratio\n", | |
"-0.0058, nextaskvolratio\n", | |
"2.9754, emabasisdi4\n", | |
"-24.4379, emabasisdi7\n", | |
"10.0650, emabasisdi1\n", | |
"0.0234, emabasisdi3\n", | |
"15.3380, emabasisdi5\n", | |
"-9.1514, emabasisdi\n", | |
"4.2881, emabasisdi6\n", | |
"-6.3477, emabasisdi2\n" | |
] | |
} | |
], | |
"source": [ | |
"for i in range(len(basis_X_train.columns)):\n", | |
" print('%.4f, %s'%(regr_norm.coef_[i], basis_X_train.columns[i]))" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can clearly see that some features have a much higher coeffecient compared to others, and probably have more predictive power.\n", | |
"\n", | |
"Let's also look at correlation between different features." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 38, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"image/png": "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\nYt/WYSXdLsLQ5FptA26GyUEGhuH3h1dzxXoEYRzleb/d5najmc/7MJ8Z6OXr8/68X3V1ZGdnY7FY\nMDrzytoAACAASURBVBgMbN68mbfeeot77rmHqVOnUlFRwW9/+1vefvttVq5cyd///ne6d+/OmTNn\nbPun7dixg23bttHY2MiqVatwdnbmpZdeIicnhw8//JDk5GS6detGQ0ODrUC7iIiIiL04/OVOADc3\nN7Zv305KSgrx8fGcOnWKlJQUdu7cSWBgIH/5y18IDw/nnXculoz4wx/+wK9//WsOHDjAuXPn2Lt3\nL6tXr+af//ynrc+QkBAyMjJ45plnWLdune35hoYGfv/735Oens62bdu488477f5+RURERG6JIG3E\niBEYDAZ8fHzw8PDAxcWFqKgooqOjKS4uxmKxEBgYSGNjI2fOnGH//v089thjnDx5kuDgYAC6devW\nLCM2cuTFum8///nP+eabb2zPf//993h5eeHt7Y3BYODnP/+5fd+siIiIXMLaZLXbw1HcEkHasWPH\ngIuL+6uqqsjIyGDDhg0kJCRwxx138GON+GnTprFu3ToCAwPx9PRkwIABFBYWAvDDDz9w6tQpW59H\njx4FwGQyMWDAANvzPj4+nD9/nu+//77Z2CIiIiL2dEusSaurq2P27NnU1tayatUqdu3axW9+8xtc\nXFzw9PSkvLwcgNDQUFatWmVbd/bQQw9x8OBBZsyYQffu3bnzzjtxdXUF4IsvvmD27NkYDAZWr15t\nC/RcXFxYvnw5Tz31FF5eXri43BKnSERE5LbWEQusG5p+jE5uQydOnOCrr74iLCyMyspKpkyZwn/+\n53/SqVOnNh9rl/PANu/zRrR3KanWlLgZ/52p7SfSQX3Uc2SLjm/N96E9P6+Wzr81boeyUI+U63fm\nSg70bv/vUEu09N/z9fXtMw97MjYV23W8strtdhurV+cn7TbW1dzWaaI+ffqQlJRERkYGjY2NLF68\nuF0CNBEREWlf1g5YFuq2DtI6d+5su/QpIiIiciu5rYM0ERERuT10xDVpCtJuAa1Zy9JS7b2GTcTe\nHHGNmYhISyhIExEREYfnSPuX2YvyJyIiIiIOSJk0ERERcXhNHfDuTofKpOXm5pKUlNSmfRYXF3P4\n8OEWtTl9+jTTp09v03mIiIiItMRtn0nLy8uje/fujBo16mZPRURERFqpI65Jc7ggrbCwkDlz5lBd\n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\nAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x12e11ef0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"import seaborn\n", | |
"\n", | |
"c = basis_X_train.corr()\n", | |
"plt.figure(figsize=(10,10))\n", | |
"seaborn.heatmap(c, cmap='RdYlGn_r', mask = (np.abs(c) <= 0.8))\n", | |
"plt.show()\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The areas of dark red indicate highly correlated variables. Let's create/modify some features again and try to improve our model. \n", | |
"\n", | |
"For example, I can easily discard features line *emabasisdi7* that are just a linear combination of other features" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 43, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"def create_features_again(data):\n", | |
" basis_X = pd.DataFrame(index = data.index, columns = [])\n", | |
" \n", | |
"# basis_X['mom1'] = difference(data['basis'],2)\n", | |
"# basis_X['mom3'] = difference(data['basis'],4)\n", | |
"# basis_X['mom5'] = difference(data['basis'],6)\n", | |
" basis_X['mom10'] = difference(data['basis'],11)\n", | |
"\n", | |
"# basis_X['rsi15'] = rsi(data['basis'],15)\n", | |
"# basis_X['rsi10'] = rsi(data['basis'],10)\n", | |
"# basis_X['rsi5'] = rsi(data['basis'],5)\n", | |
" \n", | |
" basis_X['emabasis2'] = ewm(data['basis'],2)\n", | |
"# basis_X['emabasis3'] = ewm(data['basis'],3)\n", | |
"# basis_X['emabasis4'] = ewm(data['basis'],4)\n", | |
" basis_X['emabasis5'] = ewm(data['basis'],5)\n", | |
"# basis_X['emabasis8'] = ewm(data['basis'],8)\n", | |
" basis_X['emabasis10'] = ewm(data['basis'],10)\n", | |
"\n", | |
" basis_X['basis'] = data['basis']\n", | |
"# basis_X['vwapbasis'] = data['stockVWAP']-data['futureVWAP']\n", | |
" \n", | |
"# basis_X['swidth'] = data['stockTopAskPrice']-data['stockTopBidPrice'] + (data['futureTopAskPrice']-data['futureTopBidPrice'])\n", | |
" \n", | |
"# basis_X['btopask'] = data['stockTopAskPrice']-data['futureTopAskPrice']\n", | |
"# basis_X['btopbid'] =data['stockTopBidPrice']-data['futureTopBidPrice']\n", | |
"# basis_X['bavgask'] = data['stockAverageAskPrice']-data['futureAverageAskPrice']\n", | |
"# basis_X['bavgbid'] = data['stockAverageBidPrice']-data['futureAverageBidPrice']\n", | |
"# basis_X['bnextask'] = data['stockNextAskPrice']-data['futureNextAskPrice']\n", | |
"# basis_X['bnextbid'] = data['stockNextBidPrice']-data['futureNextBidPrice']\n", | |
"# basis_X['topaskvolratio'] = data['stockTopAskVol']-data['futureTopAskVol']\n", | |
"# basis_X['topbidvolratio'] = data['stockTopBidVol']-data['futureTopBidVol']\n", | |
" basis_X['totalaskvolratio'] = (data['stockTotalAskVol']-data['futureTotalAskVol'])/100000\n", | |
" basis_X['totalbidvolratio'] = (data['stockTotalBidVol']-data['futureTotalBidVol'])/100000\n", | |
"# basis_X['nextbidvolratio'] = data['stockNextBidVol']-data['futureNextBidVol']\n", | |
"# basis_X['nextaskvolratio'] = data['stockNextAskVol']-data['futureNextAskVol']\n", | |
" \n", | |
" basis_X = basis_X.fillna(0)\n", | |
" \n", | |
" basis_y = data['Y(Target)']\n", | |
" basis_y.dropna(inplace=True)\n", | |
" \n", | |
" print(\"Any null data in y: %s, X: %s\"%(basis_y.isnull().values.any(), basis_X.isnull().values.any()))\n", | |
" print(\"Length y: %s, X: %s\"%(len(basis_y.index), len(basis_X.index)))\n", | |
" \n", | |
" return basis_X, basis_y" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 44, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Any null data in y: False, X: False\n", | |
"Length y: 6499, X: 6499\n", | |
"Any null data in y: False, X: False\n", | |
"Length y: 8732, X: 8732\n", | |
"('Coefficients: \\n', array([-0.00687419, 0.52971029, -0.37929053, 0.23275197, 0.53051752,\n", | |
" -0.01872495, 0.02867496]))\n", | |
"Mean squared error: 0.28\n", | |
"Variance score: 0.77\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x14214ac8>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"basis_X_test, basis_y_test = create_features_again(validation_data)\n", | |
"basis_X_train, basis_y_train = create_features_again(training_data)\n", | |
"norm_period = 375\n", | |
"basis_X_norm_test, basis_y_norm_test = normalize(basis_X_test,basis_y_test, norm_period)\n", | |
"basis_X_norm_train, basis_y_norm_train = normalize(basis_X_train, basis_y_train, norm_period)\n", | |
"\n", | |
"regr_norm, basis_y_pred = linear_regression(basis_X_norm_train, basis_y_norm_train, basis_X_norm_test, basis_y_norm_test)\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 45, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Mean squared error: 0.05\n", | |
"Variance score: 0.90\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\ngqFOREQkiP8B7qyH2tuEOTMAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x1436bac8>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"(-0.0068741911336632202, 'mom10')\n", | |
"(0.52971029041034057, 'emabasis2')\n", | |
"(-0.37929052735905572, 'emabasis5')\n", | |
"(0.23275197119203139, 'emabasis10')\n", | |
"(0.5305175153088626, 'basis')\n", | |
"(-0.018724947287109384, 'totalaskvolratio')\n", | |
"(0.028674958111597856, 'totalbidvolratio')\n" | |
] | |
} | |
], | |
"source": [ | |
"basis_y_pred = basis_y_pred * basis_X_test['basis'].rolling(period).std()[basis_y_norm_test.index] + basis_X_test['basis'].rolling(period).mean()[basis_y_norm_test.index]\n", | |
"\n", | |
"print(\"Mean squared error: %.2f\"\n", | |
" % mean_squared_error(basis_y_test[basis_y_norm_test.index], basis_y_pred))\n", | |
"# Explained variance score: 1 is perfect prediction\n", | |
"print('Variance score: %.2f' % r2_score(basis_y_test[basis_y_norm_test.index], basis_y_pred))\n", | |
"\n", | |
"# Plot outputs\n", | |
"plt.scatter(basis_y_pred, basis_y_test[basis_y_norm_test.index], color='black')\n", | |
"plt.plot(basis_y_test, basis_y_test, color='blue', linewidth=3)\n", | |
"\n", | |
"plt.xlabel('Y(actual)')\n", | |
"plt.ylabel('Y(Predicted)')\n", | |
"\n", | |
"plt.show()\n", | |
"\n", | |
"for i in range(len(basis_X_train.columns)):\n", | |
" print(regr_norm.coef_[i], basis_X_train.columns[i])" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"See, our model performance does not change, and we only need a few features to explain our target variable. I recommend playing with more features above, trying new combinations etc to see what can improve our model.\n", | |
"\n", | |
"Let's go back to the non-normalized model, since normalization doesn't really help our model." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 67, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"('Coefficients: \\n', array([ 0.03246139, 0.49780982, -0.22367172, 0.20275786, 0.50758852,\n", | |
" -0.21510795, 0.17153884]))\n", | |
"Mean squared error: 0.02\n", | |
"Variance score: 0.96\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x114b3160>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"_, basis_y_pred = linear_regression(basis_X_train, basis_y_train, basis_X_test,basis_y_test)\n", | |
"\n", | |
"basis_y_regr = basis_y_pred.copy()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"You work more on the code above, try different combinations of features etc to see what can improve our model." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"We can also try more sophisticated models to see if change of model may improve performance" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### K Nearest Neighbours" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 68, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Mean squared error: 0.02\n", | |
"Variance score: 0.95\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\nAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x13455630>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"from sklearn import neighbors\n", | |
"n_neighbors = 5\n", | |
"\n", | |
"model = neighbors.KNeighborsRegressor(n_neighbors, weights='distance')\n", | |
"model.fit(basis_X_train, basis_y_train)\n", | |
"basis_y_pred = model.predict(basis_X_test)\n", | |
"\n", | |
"# The mean squared error\n", | |
"print(\"Mean squared error: %.2f\"\n", | |
" % mean_squared_error(basis_y_test, basis_y_pred))\n", | |
"# Explained variance score: 1 is perfect prediction\n", | |
"print('Variance score: %.2f' % r2_score(basis_y_test, basis_y_pred))\n", | |
"\n", | |
"# Plot outputs\n", | |
"plt.scatter(basis_y_pred, basis_y_test, color='black')\n", | |
"plt.plot(basis_y_test, basis_y_test, color='blue', linewidth=3)\n", | |
"\n", | |
"plt.xlabel('Y(actual)')\n", | |
"plt.ylabel('Y(Predicted)')\n", | |
"\n", | |
"plt.show()\n", | |
"\n", | |
"basis_y_knn = basis_y_pred.copy()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### SVR" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 71, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Mean squared error: 0.02\n", | |
"Variance score: 0.95\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x13893978>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"from sklearn.svm import SVR\n", | |
"\n", | |
"model = SVR(kernel='rbf', C=1e3, gamma=0.1)\n", | |
"\n", | |
"model.fit(basis_X_train, basis_y_train)\n", | |
"basis_y_pred = model.predict(basis_X_test)\n", | |
"\n", | |
"# The mean squared error\n", | |
"print(\"Mean squared error: %.2f\"\n", | |
" % mean_squared_error(basis_y_test, basis_y_pred))\n", | |
"# Explained variance score: 1 is perfect prediction\n", | |
"print('Variance score: %.2f' % r2_score(basis_y_test, basis_y_pred))\n", | |
"\n", | |
"# Plot outputs\n", | |
"plt.scatter(basis_y_pred, basis_y_test, color='black')\n", | |
"plt.plot(basis_y_test, basis_y_test, color='blue', linewidth=3)\n", | |
"\n", | |
"\n", | |
"plt.xlabel('Y(actual)')\n", | |
"plt.ylabel('Y(Predicted)')\n", | |
"\n", | |
"plt.show()\n", | |
"\n", | |
"basis_y_svr = basis_y_pred.copy()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Decision Trees" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 70, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Mean squared error: 0.02\n", | |
"Variance score: 0.95\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\nREREEvH/VSl77KXFaoQAAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x13898080>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"model=ensemble.ExtraTreesRegressor()\n", | |
"model.fit(basis_X_train, basis_y_train)\n", | |
"basis_y_pred = model.predict(basis_X_test)\n", | |
"\n", | |
"# The mean squared error\n", | |
"print(\"Mean squared error: %.2f\"\n", | |
" % mean_squared_error(basis_y_test, basis_y_pred))\n", | |
"# Explained variance score: 1 is perfect prediction\n", | |
"print('Variance score: %.2f' % r2_score(basis_y_test, basis_y_pred))\n", | |
"\n", | |
"# Plot outputs\n", | |
"plt.scatter(basis_y_pred, basis_y_test, color='black')\n", | |
"plt.plot(basis_y_test, basis_y_test, color='blue', linewidth=3)\n", | |
"\n", | |
"\n", | |
"plt.xlabel('Y(actual)')\n", | |
"plt.ylabel('Y(Predicted)')\n", | |
"\n", | |
"plt.show()\n", | |
"\n", | |
"basis_y_trees = basis_y_pred.copy()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Ensemble Method\n", | |
"\n", | |
"We could try averaging predictions from all of the above methods to make our final prediction. Some models may work well in prediction certain scenarios and other in prediction other scenarios. Or a model may be extremely overfitting in a certain scenario. Aggregating predictions from different models can reduce error and overfitting, with errors from different models likely getting cancelled out or reduced. \n", | |
"\n", | |
"One simple way is to simply average the predictions. Other common ensemble methods are Bagging and Boosting.\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 72, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"basis_y_pred_ensemble = (basis_y_trees + basis_y_svr + +basis_y_knn + basis_y_regr)/4" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 73, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Mean squared error: 0.02\n", | |
"Variance score: 0.95\n" | |
] | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x141678d0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"# The mean squared error\n", | |
"print(\"Mean squared error: %.2f\"\n", | |
" % mean_squared_error(basis_y_test, basis_y_pred))\n", | |
"# Explained variance score: 1 is perfect prediction\n", | |
"print('Variance score: %.2f' % r2_score(basis_y_test, basis_y_pred))\n", | |
"\n", | |
"# Plot outputs\n", | |
"plt.scatter(basis_y_pred, basis_y_test, color='black')\n", | |
"plt.plot(basis_y_test, basis_y_test, color='blue', linewidth=3)\n", | |
"\n", | |
"\n", | |
"plt.xlabel('Y(actual)')\n", | |
"plt.ylabel('Y(Predicted)')\n", | |
"\n", | |
"plt.show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Note thatI have only mentioned a few common models here. You should try feature egineering with each of them and also play with model parameters to further optimize.\n", | |
"\n", | |
"You loop over this stage multiple times till you finally have a model that you’re happy with. Only when you have a model who’s performance you like, proceed to the next step." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Step 7: Backtest on Test Data\n", | |
"\n", | |
"Finally I backtest performance of our final, optimized model from last step on that Test Data that we had kept aside at the start and did not touch yet.\n", | |
"This provides you with realistic expectation of how your model is expected to perform on new and unseen data when you start trading live. Hence, it is necessary to ensure you have a clean dataset that you haven’t used to train or validate your model.\n", | |
"\n", | |
"We're going to choose our linear regression model as our final model of choice. For this purpose, I'm going to use Auquan’s [python based free and open source toolbox](https://bitbucket.org/auquan/auquantoolbox). You can install it via pip: \n", | |
"\n", | |
"`pip install -U auquan_toolbox`" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 75, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"import backtester\n", | |
"from backtester.features.feature import Feature\n", | |
"from backtester.trading_system import TradingSystem\n", | |
"from backtester.sample_scripts.fair_value_params import FairValueTradingParams" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 77, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"class Problem1Solver():\n", | |
"\n", | |
" def getTrainingDataSet(self):\n", | |
" return \"trainingData1\"\n", | |
"\n", | |
" def getSymbolsToTrade(self):\n", | |
" return ['MQK']\n", | |
"\n", | |
" def getCustomFeatures(self):\n", | |
" return {'my_custom_feature': MyCustomFeature}\n", | |
"\n", | |
" def getFeatureConfigDicts(self):\n", | |
" \n", | |
" expma5dic = {'featureKey': 'emabasis5',\n", | |
" 'featureId': 'exponential_moving_average',\n", | |
" 'params': {'period': 5,\n", | |
" 'featureName': 'basis'}}\n", | |
" expma10dic = {'featureKey': 'emabasis10',\n", | |
" 'featureId': 'exponential_moving_average',\n", | |
" 'params': {'period': 10,\n", | |
" 'featureName': 'basis'}} \n", | |
" expma2dic = {'featureKey': 'emabasis3',\n", | |
" 'featureId': 'exponential_moving_average',\n", | |
" 'params': {'period': 3,\n", | |
" 'featureName': 'basis'}}\n", | |
" mom10dic = {'featureKey': 'mom10',\n", | |
" 'featureId': 'difference',\n", | |
" 'params': {'period': 11,\n", | |
" 'featureName': 'basis'}}\n", | |
" \n", | |
" return [expma5dic,expma2dic,expma10dic,mom10dic] \n", | |
" \n", | |
" def getFairValue(self, updateNum, time, instrumentManager):\n", | |
" # holder for all the instrument features\n", | |
" lbInstF = instrumentManager.getlookbackInstrumentFeatures()\n", | |
" mom10 = lbInstF.getFeatureDf('mom10').iloc[-1]\n", | |
" emabasis2 = lbInstF.getFeatureDf('emabasis2').iloc[-1]\n", | |
" emabasis5 = lbInstF.getFeatureDf('emabasis5').iloc[-1]\n", | |
" emabasis10 = lbInstF.getFeatureDf('emabasis10').iloc[-1] \n", | |
" basis = lbInstF.getFeatureDf('basis').iloc[-1]\n", | |
" totalaskvol = lbInstF.getFeatureDf('stockTotalAskVol').iloc[-1] - lbInstF.getFeatureDf('futureTotalAskVol').iloc[-1]\n", | |
" totalbidvol = lbInstF.getFeatureDf('stockTotalBidVol').iloc[-1] - lbInstF.getFeatureDf('futureTotalBidVol').iloc[-1]\n", | |
" \n", | |
" coeff = [ 0.03249183, 0.49675487, -0.22289464, 0.2025182, 0.5080227, -0.21557005, 0.17128488]\n", | |
" newdf['MQK'] = coeff[0] * mom10['MQK'] + coeff[1] * emabasis2['MQK'] +\\\n", | |
" coeff[2] * emabasis5['MQK'] + coeff[3] * emabasis10['MQK'] +\\\n", | |
" coeff[4] * basis['MQK'] + coeff[5] * totalaskvol['MQK']+\\\n", | |
" coeff[6] * totalbidvol['MQK']\n", | |
" \n", | |
" newdf.fillna(emabasis5,inplace=True)\n", | |
" return newdf \n", | |
"\n", | |
"class MyCustomFeature(Feature):\n", | |
" ''''\n", | |
" Custom Feature to implement for instrument. This function would return the value of the feature you want to implement.\n", | |
" '''\n", | |
" @classmethod\n", | |
" def computeForInstrument(cls, updateNum, time, featureParams, featureKey, instrumentManager):\n", | |
" # Custom parameter which can be used as input to computation of this feature\n", | |
" instrumentLookbackData = instrumentManager.getlbInstF()\n", | |
" data = instrumentLookbackData.getFeatureDf(featureKey)\n", | |
" if len(data.index) >= 1:\n", | |
" prev_ema = data.iloc[-1]\n", | |
" else:\n", | |
" prev_ema = instrumentLookbackData.getFeatureDf(featureParams['featureName']).iloc[-1]\n", | |
" halflife = featureParams['period']\n", | |
" alpha = 2/(halflife+1)\n", | |
" avg = instrumentLookbackData.getFeatureDf(featureParams['featureName']).iloc[-1] * alpha + prev_ema * (1 - alpha)\n", | |
" return avg\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"problem1Solver = Problem1Solver()\n", | |
"tsParams = FairValueTradingParams(problem1Solver)\n", | |
"tradingSystem = TradingSystem(tsParams)\n", | |
"tradingSystem.startTrading(onlyAnalyze=False, shouldPlot=True, makeInstrumentCsvs=False)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"It is important to remember that if you don’t like the results of your backtest on test data, discard the model and start again. DO NOT go back and re-optimize your model, this will lead to over fitting! (Also recommend to create a new test data set, since this one is now tainted; in discarding a model, we implicitly know something about the dataset)." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 2", | |
"language": "python", | |
"name": "python2" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 2 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython2", | |
"version": "2.7.13" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment