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. Let’s look into how we can use ML to create a trade signal by data mining.
import scipy
import sklearn
import numpy as np
import pandas as pd
from datetime import datetime, timedelta
import matplotlib.pyplot as plt
import os
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.
We're going to use a problem from QuantQuest for demo. We are going to create a prediction model that predicts future expected value of basis, where:
$basis$ = Price of Stock - Price of Future
$basis_t=S_t−F_t$
$Y$ = future expected value of basis = $Average(basis_{(t+1)}, basis_{(t+2)}, basis_{(t+3)},basis_{(t+4)},basis_{(t+5)})$
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)* *
Since this is a regression problem, we will evaluate the model on RMSE. We’ll also use Total Pnl as an evaluation criterion
$RMSE = \sqrt{\sum{(Y_{actual} - Y_{predicted})^2} / n} $
Our Objective: Create a model so that predicted value is as close as possible to Y
We are using the folliwing data for our stock at minute interval data for trading days over one months(~8000 data points): Stock Bid Price, Ask Price, Bid Volume, Ask Volume Future Bid Price, Ask Price, Bid Volume, Ask Volume $Stock VWAP = {Bid Price*Ask Volume + Ask Price*Bid Volume}/(Ask Volume + Bid Volume)$ Future VWAP
Data is already cleaned for Dividends, Splits, Rolls
from backtester.dataSource.csv_data_source import CsvDataSource
# Load the data
cachedFolderName = '/data/'
dataSetId = 'trainingData1'
startDate = '2017/01/06'
endDate = '2017/02/09'
instrumentIds = ['MQK']
downloadUrl = 'https://github.com/Auquan/auquan-historical-data/raw/master/qq2Data'
ds = CsvDataSource(cachedFolderName='historicalData/',
dataSetId=dataSetId,
instrumentIds=instrumentIds,
downloadUrl = downloadUrl,
timeKey = 'datetime',
timeStringFormat = '%Y-%m-%d %H:%M:%S',
startDateStr=startDate,
endDateStr=endDate,
liveUpdates=False,
pad=True)
Processing data for stock: MQK
Auquan's Toolbox has downloaded and loaded the data into a dictionary of dataframes for you. We now need to prepare the data in a format we like. Let's first check if the data has loaded properly and the columns in data.
ds.getInstrumentIds()
['MQK']
ds.getBookDataFeatures()
['stockVWAP', 'futureVWAP', 'basis', 'stockTopBidVol', 'stockTopAskVol', 'stockTopBidPrice', 'stockTopAskPrice', 'futureTopBidVol', 'futureTopAskVol', 'futureTopBidPrice', 'futureTopAskPrice', 'stockNextBidVol', 'stockNextAskVol', 'stockNextBidPrice', 'stockNextAskPrice', 'futureNextBidVol', 'futureNextAskVol', 'futureNextBidPrice', 'futureNextAskPrice', 'stockTotalBidVol', 'stockTotalAskVol', 'futureTotalBidVol', 'futureTotalAskVol', 'stockAverageBidPrice', 'stockAverageAskPrice', 'futureAverageBidPrice', 'futureAverageAskPrice', 'FairValue', 'benchmark_score']
Now we load data in a format we like
#Loading our data
def loadData(ds, id):
data = ds._bookDataByInstrument[id].getBookData()
data['Stock Price'] = data['stockTopBidPrice'] +\
data['stockTopAskPrice'] / 2.0
data['Future Price'] = data['futureTopBidPrice'] +\
data['futureTopAskPrice'] / 2.0
data['Y(Target)'] = data['basis'].shift(-5)
del data['benchmark_score']
del data['FairValue']
return data
data = loadData(ds,instrumentIds[0])
print(data.head(6))
stockVWAP futureVWAP basis stockTopBidVol \ 2017-01-06 09:17:00 517.773 512.492 5.425 79.0 2017-01-06 09:18:00 515.300 510.682 4.425 40.0 2017-01-06 09:19:00 516.225 511.342 4.950 81.0 2017-01-06 09:20:00 519.792 513.959 5.650 179.0 2017-01-06 09:21:00 520.270 513.819 6.400 68.0 2017-01-06 09:22:00 524.792 519.118 5.625 2299.0 stockTopAskVol stockTopBidPrice stockTopAskPrice \ 2017-01-06 09:17:00 79.0 518.00 518.30 2017-01-06 09:18:00 10.0 515.05 515.30 2017-01-06 09:19:00 1496.0 516.20 516.45 2017-01-06 09:20:00 1940.0 519.65 519.95 2017-01-06 09:21:00 93.0 520.45 520.60 2017-01-06 09:22:00 4924.0 524.60 525.00 futureTopBidVol futureTopAskVol futureTopBidPrice ... \ 2017-01-06 09:17:00 4000.0 2000.0 512.60 ... 2017-01-06 09:18:00 2000.0 4000.0 510.65 ... 2017-01-06 09:19:00 2000.0 2000.0 511.25 ... 2017-01-06 09:20:00 2000.0 2000.0 514.05 ... 2017-01-06 09:21:00 2000.0 6000.0 513.85 ... 2017-01-06 09:22:00 2000.0 2000.0 519.00 ... stockTotalAskVol futureTotalBidVol futureTotalAskVol \ 2017-01-06 09:17:00 2780.0 12000.0 12000.0 2017-01-06 09:18:00 1756.0 10000.0 24000.0 2017-01-06 09:19:00 3010.0 10000.0 14000.0 2017-01-06 09:20:00 3530.0 10000.0 12000.0 2017-01-06 09:21:00 2128.0 12000.0 24000.0 2017-01-06 09:22:00 5890.0 10000.0 12000.0 stockAverageBidPrice stockAverageAskPrice \ 2017-01-06 09:17:00 517.493 518.654 2017-01-06 09:18:00 514.919 515.708 2017-01-06 09:19:00 515.986 516.488 2017-01-06 09:20:00 519.549 520.079 2017-01-06 09:21:00 520.022 520.756 2017-01-06 09:22:00 524.558 525.054 futureAverageBidPrice futureAverageAskPrice \ 2017-01-06 09:17:00 512.000 513.142 2017-01-06 09:18:00 510.340 511.283 2017-01-06 09:19:00 511.050 511.650 2017-01-06 09:20:00 513.470 514.650 2017-01-06 09:21:00 513.392 514.775 2017-01-06 09:22:00 518.740 519.592 Stock Price Future Price Y(Target) 2017-01-06 09:17:00 777.150 769.025 5.625 2017-01-06 09:18:00 772.700 766.075 5.400 2017-01-06 09:19:00 774.425 767.000 5.450 2017-01-06 09:20:00 779.625 771.175 5.175 2017-01-06 09:21:00 780.750 771.050 5.050 2017-01-06 09:22:00 787.100 778.675 5.225 [6 rows x 30 columns]
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
# Training Data
dataSetId = 'trainingData1'
ds_training = CsvDataSource(cachedFolderName='historicalData/',
dataSetId=dataSetId,
instrumentIds=instrumentIds,
downloadUrl = downloadUrl,
timeKey = 'datetime',
timeStringFormat = '%Y-%m-%d %H:%M:%S',
liveUpdates=False,
pad=True)
training_data = loadData(ds_training, instrumentIds[0])
# Validation Data
dataSetId = 'trainingData2'
ds_validation = CsvDataSource(cachedFolderName='historicalData/',
dataSetId=dataSetId,
instrumentIds=instrumentIds,
downloadUrl = downloadUrl,
timeKey = 'datetime',
timeStringFormat = '%Y-%m-%d %H:%M:%S',
liveUpdates=False,
pad=True)
validation_data = loadData(ds_validation, instrumentIds[0])
# Test Data
dataSetId = 'trainingData3'
ds_test = CsvDataSource(cachedFolderName='historicalData/',
dataSetId=dataSetId,
instrumentIds=instrumentIds,
downloadUrl = downloadUrl,
timeKey = 'datetime',
timeStringFormat = '%Y-%m-%d %H:%M:%S',
liveUpdates=False,
pad=True)
out_of_sample_test_data = loadData(ds_test, instrumentIds[0])
Processing data for stock: MQK Processing data for stock: MQK Processing data for stock: MQK
We add the target variable $Y$, defined as average of next five values of basis
def prepareData(data, period):
data['Y(Target)'] = data['basis'].rolling(period).mean().shift(-period)
if 'FairValue' in data.columns:
del data['FairValue']
data.dropna(inplace=True)
period = 5
prepareData(training_data, period)
prepareData(validation_data, period)
prepareData(out_of_sample_test_data, period)
Let's try to create some features that may have some predictive power on our data.
*** 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. *
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. The features might be highly correlated with each other, in that case a fewer number of features will explain the target just as well.
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
def difference(dataDf, period):
return dataDf.sub(dataDf.shift(period), fill_value=0)
def ewm(dataDf, halflife):
return dataDf.ewm(halflife=halflife,ignore_na=False,min_periods=0,adjust=True).mean()
def rsi(data, period):
data_upside = data.sub(data.shift(1), fill_value=0)
data_downside = data_upside.copy()
data_downside[data_upside > 0] = 0
data_upside[data_upside < 0] = 0
avg_upside = data_upside.rolling(period).mean()
avg_downside = - data_downside.rolling(period).mean()
rsi = 100 - (100 * avg_downside / (avg_downside + avg_upside))
rsi[avg_downside == 0] = 100
rsi[(avg_downside == 0) & (avg_upside == 0)] = 0
return rsi
def create_features(data):
basis_X = pd.DataFrame(index = data.index, columns = [ 'emabasis3','emabasis5','emabasis2','emabasis7','emabasis10',\
'emabasis4','rsi15','rsi10','rsi5','mom1','mom10',\
'mom3','mom5'])
basis_X['mom1'] = difference(data['basis'],2)
basis_X['mom3'] = difference(data['basis'],4)
basis_X['mom5'] = difference(data['basis'],6)
basis_X['mom10'] = difference(data['basis'],11)
basis_X['rsi15'] = rsi(data['basis'],15)
basis_X['rsi10'] = rsi(data['basis'],10)
basis_X['rsi5'] = rsi(data['basis'],5)
basis_X['emabasis2'] = ewm(data['basis'],2)
basis_X['emabasis3'] = ewm(data['basis'],3)
basis_X['emabasis4'] = ewm(data['basis'],4)
basis_X['emabasis5'] = ewm(data['basis'],5)
basis_X['emabasis7'] = ewm(data['basis'],7)
basis_X['emabasis10'] = ewm(data['basis'],10)
basis_X['basis'] = data['basis']
basis_X['vwapbasis'] = data['stockVWAP']-data['futureVWAP']
basis_X['swidth'] = data['stockTopAskPrice']-data['stockTopBidPrice']
basis_X['fwidth'] = data['futureTopAskPrice']-data['futureTopBidPrice']
basis_X['btopask'] = data['stockTopAskPrice']-data['futureTopAskPrice']
basis_X['btopbid'] =data['stockTopBidPrice']-data['futureTopBidPrice']
basis_X['bavgask'] = data['stockAverageAskPrice']-data['futureAverageAskPrice']
basis_X['bavgbid'] = data['stockAverageBidPrice']-data['futureAverageBidPrice']
basis_X['bnextask'] = data['stockNextAskPrice']-data['futureNextAskPrice']
basis_X['bnextbid'] = data['stockNextBidPrice']-data['futureNextBidPrice']
basis_X['topaskvolratio'] = data['stockTopAskVol']/data['futureTopAskVol']
basis_X['topbidvolratio'] = data['stockTopBidVol']/data['futureTopBidVol']
basis_X['totalaskvolratio'] = data['stockTotalAskVol']/data['futureTotalAskVol']
basis_X['totalbidvolratio'] = data['stockTotalBidVol']/data['futureTotalBidVol']
basis_X['nextbidvolratio'] = data['stockNextBidVol']/data['futureNextBidVol']
basis_X['nextaskvolratio'] = data['stockNextAskVol']-data['futureNextAskVol']
basis_X['emabasisdi4'] = basis_X['emabasis7'] - basis_X['emabasis5'] + basis_X['emabasis2']
basis_X['emabasisdi7'] = basis_X['emabasis7'] - basis_X['emabasis5']+ basis_X['emabasis3']
basis_X['emabasisdi1'] = basis_X['emabasis10'] - basis_X['emabasis5'] + basis_X['emabasis3']
basis_X['emabasisdi3'] = basis_X['emabasis10'] - basis_X['emabasis3']+ basis_X['emabasis5']
basis_X['emabasisdi5'] = basis_X['emabasis7']- basis_X['emabasis5'] + data['basis']
basis_X['emabasisdi'] = basis_X['emabasis5'] - basis_X['emabasis3'] + data['basis']
basis_X['emabasisdi6'] = basis_X['emabasis7'] - basis_X['emabasis3']+ data['basis']
basis_X['emabasisdi2'] = basis_X['emabasis10'] - basis_X['emabasis5']+ data['basis']
basis_X['emabasisdi3'] = basis_X['emabasis10'] - basis_X['emabasis3']+ basis_X['emabasis5']
basis_X = basis_X.fillna(0)
basis_y = data['Y(Target)']
basis_y.dropna(inplace=True)
print("Any null data in y: %s, X: %s"%(basis_y.isnull().values.any(), basis_X.isnull().values.any()))
print("Length y: %s, X: %s"%(len(basis_y.index), len(basis_X.index)))
return basis_X, basis_y
basis_X_train, basis_y_train = create_features(training_data)
basis_X_test, basis_y_test = create_features(validation_data)
Any null data in y: False, X: False Length y: 8737, X: 8737 Any null data in y: False, X: False Length y: 6499, X: 6499
Let's start with a Linear Regression model with non-normalized features
from sklearn import linear_model
from sklearn.metrics import mean_squared_error, r2_score
def linear_regression(basis_X_train, basis_y_train, basis_X_test,basis_y_test):
regr = linear_model.LinearRegression()
# Train the model using the training sets
regr.fit(basis_X_train, basis_y_train)
# Make predictions using the testing set
basis_y_pred = regr.predict(basis_X_test)
# The coefficients
print('Coefficients: \n', regr.coef_)
# The mean squared error
print("Mean squared error: %.2f"
% mean_squared_error(basis_y_test, basis_y_pred))
# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % r2_score(basis_y_test, basis_y_pred))
# Plot outputs
plt.scatter(basis_y_pred, basis_y_test, color='black')
plt.plot(basis_y_test, basis_y_test, color='blue', linewidth=3)
plt.xlabel('Y(actual)')
plt.ylabel('Y(Predicted)')
plt.show()
return regr, basis_y_pred
Now we will try to itereate over various models, model parameters and feature space
_, basis_y_pred = linear_regression(basis_X_train, basis_y_train, basis_X_test,basis_y_test)
Coefficients: [ 1.38355593e+08 -5.26884630e+07 -1.70045909e+07 -1.86792848e+07 -7.21406734e+06 -5.64840998e+01 -1.04174206e-03 -6.17704226e-04 -8.06353650e-05 4.34496754e-02 1.16549870e-02 5.76276277e-02 -3.06277287e-02 -2.38321924e+07 8.39982870e-02 4.34917628e-03 -6.74806559e-03 -2.38321924e+07 -2.38321924e+07 6.47961994e-02 5.72135463e-02 2.83844718e-03 1.58542282e-02 -7.61685644e-03 -7.64534854e-04 -3.88286727e-02 3.12711966e-02 3.41591420e-03 -1.32251298e-06 1.70045873e+07 -4.53455823e+07 -3.38803649e+07 1.94522302e+07 1.01769858e+07 2.83410512e+06 3.68432833e+07 2.16422033e+07] Mean squared error: 0.02 Variance score: 0.96
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.
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).
def normalize(basis_X, basis_y, period):
basis_X_norm = (basis_X - basis_X.rolling(period).mean())/basis_X.rolling(period).std()
basis_X_norm.dropna(inplace=True)
basis_y_norm = (basis_y - basis_X['basis'].rolling(period).mean())/basis_X['basis'].rolling(period).std()
basis_y_norm = basis_y_norm[basis_X_norm.index]
return basis_X_norm, basis_y_norm
norm_period = 375
basis_X_norm_test, basis_y_norm_test = normalize(basis_X_test,basis_y_test, norm_period)
basis_X_norm_train, basis_y_norm_train = normalize(basis_X_train, basis_y_train, norm_period)
regr_norm, basis_y_pred = linear_regression(basis_X_norm_train, basis_y_norm_train, basis_X_norm_test, basis_y_norm_test)
Coefficients: [-3.62562336e+00 -9.15274240e+00 1.44465722e+00 8.87792905e+00 -5.55687316e+00 1.98323173e+01 -3.52677595e-03 -1.46185137e-02 -2.28603171e-02 8.89158364e-03 1.96775578e-02 -1.09431839e-03 -3.32224637e-03 -7.91656252e+00 4.98693313e-02 6.53834026e-03 1.12615956e-02 2.08691443e+00 2.03221946e+00 9.75083631e-02 6.10888994e-02 -3.13066921e-02 4.78554884e-02 5.84281791e-04 1.12986615e-02 -2.19490620e-02 2.31187541e-02 5.69928897e-03 -5.78663706e-03 3.02309761e+00 -2.45138755e+01 1.00726718e+01 2.00852825e-02 1.53648992e+01 -9.16940626e+00 4.29745408e+00 -6.36285008e+00] Mean squared error: 0.28 Variance score: 0.77
The model doesn't seem to predict normalized $Y$ that well. We first convert prediction $Y$ back to unnormalized value to evaluate model
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]
print("Mean squared error: %.2f"
% mean_squared_error(basis_y_test[basis_y_norm_test.index], basis_y_pred))
# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % r2_score(basis_y_test[basis_y_norm_test.index], basis_y_pred))
# Plot outputs
plt.scatter(basis_y_pred, basis_y_test[basis_y_norm_test.index], color='black')
plt.plot(basis_y_test, basis_y_test, color='blue', linewidth=3)
plt.xlabel('Y(actual)')
plt.ylabel('Y(Predicted)')
plt.show()
Mean squared error: 0.05 Variance score: 0.90
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.
Let's look at the coeffecients
for i in range(len(basis_X_train.columns)):
print('%.4f, %s'%(regr_norm.coef_[i], basis_X_train.columns[i]))
-3.6256, emabasis3 -9.1527, emabasis5 1.4447, emabasis2 8.8779, emabasis7 -5.5569, emabasis10 19.8323, emabasis4 -0.0035, rsi15 -0.0146, rsi10 -0.0229, rsi5 0.0089, mom1 0.0197, mom10 -0.0011, mom3 -0.0033, mom5 -7.9166, basis 0.0499, vwapbasis 0.0065, swidth 0.0113, fwidth 2.0869, btopask 2.0322, btopbid 0.0975, bavgask 0.0611, bavgbid -0.0313, bnextask 0.0479, bnextbid 0.0006, topaskvolratio 0.0113, topbidvolratio -0.0219, totalaskvolratio 0.0231, totalbidvolratio 0.0057, nextbidvolratio -0.0058, nextaskvolratio 3.0231, emabasisdi4 -24.5139, emabasisdi7 10.0727, emabasisdi1 0.0201, emabasisdi3 15.3649, emabasisdi5 -9.1694, emabasisdi 4.2975, emabasisdi6 -6.3629, emabasisdi2
We can clearly see that some features have a much higher coeffecient compared to others, and probably have more predictive power.
Let's also look at correlation between different features.
import seaborn
c = basis_X_train.corr()
plt.figure(figsize=(10,10))
seaborn.heatmap(c, cmap='RdYlGn_r', mask = (np.abs(c) <= 0.8))
plt.show()
The areas of dark red indicate highly correlated variables. Let's create/modify some features again and try to improve our model.
For example, I can easily discard features line emabasisdi7 that are just a linear combination of other features
def create_features_again(data):
basis_X = pd.DataFrame(index = data.index, columns = [])
basis_X['mom10'] = difference(data['basis'],11)
basis_X['emabasis2'] = ewm(data['basis'],2)
basis_X['emabasis5'] = ewm(data['basis'],5)
basis_X['emabasis10'] = ewm(data['basis'],10)
basis_X['basis'] = data['basis']
basis_X['totalaskvolratio'] = (data['stockTotalAskVol']-data['futureTotalAskVol'])/100000
basis_X['totalbidvolratio'] = (data['stockTotalBidVol']-data['futureTotalBidVol'])/100000
basis_X = basis_X.fillna(0)
basis_y = data['Y(Target)']
basis_y.dropna(inplace=True)
print("Any null data in y: %s, X: %s"%(basis_y.isnull().values.any(), basis_X.isnull().values.any()))
print("Length y: %s, X: %s"%(len(basis_y.index), len(basis_X.index)))
return basis_X, basis_y
basis_X_test, basis_y_test = create_features_again(validation_data)
basis_X_train, basis_y_train = create_features_again(training_data)
norm_period = 375
basis_X_norm_test, basis_y_norm_test = normalize(basis_X_test,basis_y_test, norm_period)
basis_X_norm_train, basis_y_norm_train = normalize(basis_X_train, basis_y_train, norm_period)
regr_norm, basis_y_pred = linear_regression(basis_X_norm_train, basis_y_norm_train, basis_X_norm_test, basis_y_norm_test)
Any null data in y: False, X: False Length y: 6499, X: 6499 Any null data in y: False, X: False Length y: 8737, X: 8737 Coefficients: [-0.0067528 0.52879292 -0.37816556 0.2323171 0.53062944 -0.01874965 0.028642 ] Mean squared error: 0.28 Variance score: 0.77
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]
print("Mean squared error: %.2f"
% mean_squared_error(basis_y_test[basis_y_norm_test.index], basis_y_pred))
# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % r2_score(basis_y_test[basis_y_norm_test.index], basis_y_pred))
# Plot outputs
plt.scatter(basis_y_pred, basis_y_test[basis_y_norm_test.index], color='black')
plt.plot(basis_y_test, basis_y_test, color='blue', linewidth=3)
plt.xlabel('Y(actual)')
plt.ylabel('Y(Predicted)')
plt.show()
for i in range(len(basis_X_train.columns)):
print(regr_norm.coef_[i], basis_X_train.columns[i])
Mean squared error: 0.05 Variance score: 0.90
-0.006752804064526624 mom10 0.5287929217358883 emabasis2 -0.37816555527187795 emabasis5 0.2323170952384799 emabasis10 0.5306294374732965 basis -0.01874964878360222 totalaskvolratio 0.028641995632552722 totalbidvolratio
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.
Let's go back to the non-normalized model, since normalization doesn't really help our model.
_, basis_y_pred = linear_regression(basis_X_train, basis_y_train, basis_X_test,basis_y_test)
basis_y_regr = basis_y_pred.copy()
Coefficients: [ 0.03249183 0.49675487 -0.22289464 0.2025182 0.5080227 -0.21557005 0.17128488] Mean squared error: 0.02 Variance score: 0.96
You work more on the code above, try different combinations of features etc to see what can improve our model.
We can also try more sophisticated models to see if change of model may improve performance
from sklearn import neighbors
n_neighbors = 5
model = neighbors.KNeighborsRegressor(n_neighbors, weights='distance')
model.fit(basis_X_train, basis_y_train)
basis_y_pred = model.predict(basis_X_test)
# The mean squared error
print("Mean squared error: %.2f"
% mean_squared_error(basis_y_test, basis_y_pred))
# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % r2_score(basis_y_test, basis_y_pred))
# Plot outputs
plt.scatter(basis_y_pred, basis_y_test, color='black')
plt.plot(basis_y_test, basis_y_test, color='blue', linewidth=3)
plt.xlabel('Y(actual)')
plt.ylabel('Y(Predicted)')
plt.show()
basis_y_knn = basis_y_pred.copy()
Mean squared error: 0.02 Variance score: 0.95
from sklearn.svm import SVR
model = SVR(kernel='rbf', C=1e3, gamma=0.1)
model.fit(basis_X_train, basis_y_train)
basis_y_pred = model.predict(basis_X_test)
# The mean squared error
print("Mean squared error: %.2f"
% mean_squared_error(basis_y_test, basis_y_pred))
# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % r2_score(basis_y_test, basis_y_pred))
# Plot outputs
plt.scatter(basis_y_pred, basis_y_test, color='black')
plt.plot(basis_y_test, basis_y_test, color='blue', linewidth=3)
plt.xlabel('Y(actual)')
plt.ylabel('Y(Predicted)')
plt.show()
basis_y_svr = basis_y_pred.copy()
Mean squared error: 0.02 Variance score: 0.95
from sklearn import ensemble
model=ensemble.ExtraTreesRegressor()
model.fit(basis_X_train, basis_y_train)
basis_y_pred = model.predict(basis_X_test)
# The mean squared error
print("Mean squared error: %.2f"
% mean_squared_error(basis_y_test, basis_y_pred))
# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % r2_score(basis_y_test, basis_y_pred))
# Plot outputs
plt.scatter(basis_y_pred, basis_y_test, color='black')
plt.plot(basis_y_test, basis_y_test, color='blue', linewidth=3)
plt.xlabel('Y(actual)')
plt.ylabel('Y(Predicted)')
plt.show()
basis_y_trees = basis_y_pred.copy()
Mean squared error: 0.02 Variance score: 0.95
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.
One simple way is to simply average the predictions. Other common ensemble methods are Bagging and Boosting.
basis_y_pred_ensemble = (basis_y_trees + basis_y_svr + +basis_y_knn + basis_y_regr)/4
# The mean squared error
print("Mean squared error: %.2f"
% mean_squared_error(basis_y_test, basis_y_pred))
# Explained variance score: 1 is perfect prediction
print('Variance score: %.2f' % r2_score(basis_y_test, basis_y_pred))
# Plot outputs
plt.scatter(basis_y_pred, basis_y_test, color='black')
plt.plot(basis_y_test, basis_y_test, color='blue', linewidth=3)
plt.xlabel('Y(actual)')
plt.ylabel('Y(Predicted)')
plt.show()
Mean squared error: 0.02 Variance score: 0.95
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.
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.
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. 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.
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. You can install it via pip:
pip install -U auquan_toolbox
The toolbox allows you to simulate and control every part of a trading system, however for now, we will only focus on testing the quality of our predictions and use out of the box implementations of everything else
The predictions are implemented in getPrediction()
function below. We are using the same features and coeffeceints as the linear regression model we trained above.
from backtester.trading_system import TradingSystem
from backtester.trading_system_parameters import TradingSystemParameters
from backtester.features.feature import Feature
from backtester.executionSystem.simple_execution_system_fairvalue import SimpleExecutionSystemWithFairValue
from backtester.orderPlacer.backtesting_order_placer import BacktestingOrderPlacer
from backtester.version import updateCheck
from backtester.constants import *
from backtester.timeRule.us_time_rule import USTimeRule
from backtester.logger import *
class MyTradingParams(TradingSystemParameters):
def __init__(self):
super(MyTradingParams, self).__init__()
self.count = 0
self.params = {}
self.start = '2017/01/06'
self.end = '2017/01/10'
self.instrumentIds = ['MQK']
'''
Returns an instance of class DataParser. Source of data for instruments
'''
def getDataParser(self):
dataSetId = 'trainingData3'
downloadUrl = 'https://github.com/Auquan/auquan-historical-data/raw/master/qq2Data'
z= CsvDataSource(cachedFolderName='historicalData/',
dataSetId=dataSetId,
instrumentIds=self.instrumentIds,
downloadUrl = downloadUrl,
timeKey = '',
timeStringFormat = '%Y-%m-%d %H:%M:%S',
startDateStr=self.start,
endDateStr=self.end,
liveUpdates=True,
pad=True)
return z
def getTimeRuleForUpdates(self):
return USTimeRule(startDate = self.start,
endDate = self.end,
startTime='9:30',
endTime='15:30',
frequency='M', sample='1')
'''
Return starting capital
'''
def getStartingCapital(self):
return 10000
'''
This is a way to use any custom features you might have made.
'''
def getCustomFeatures(self):
return {'prediction': TrainingPredictionFeature}
def getInstrumentFeatureConfigDicts(self):
predictionDict = {'featureKey': 'prediction',
'featureId': 'prediction',
'params': {}}
# ADD RELEVANT FEATURES HERE
expma5dic = {'featureKey': 'emabasis5',
'featureId': 'exponential_moving_average',
'params': {'period': 5,
'featureName': 'basis'}}
expma10dic = {'featureKey': 'emabasis10',
'featureId': 'exponential_moving_average',
'params': {'period': 10,
'featureName': 'basis'}}
expma2dic = {'featureKey': 'emabasis2',
'featureId': 'exponential_moving_average',
'params': {'period': 2,
'featureName': 'basis'}}
mom10dic = {'featureKey': 'mom10',
'featureId': 'difference',
'params': {'period': 10,
'featureName': 'basis'}}
scoreDict = {'featureKey': 'score',
'featureId': 'score_fv',
'params': {'predictionKey': 'prediction',
'price': 'basis'}}
return {INSTRUMENT_TYPE_STOCK: [expma5dic,expma2dic,expma10dic,mom10dic,
predictionDict, scoreDict]}
'''
Returns an array of market feature config dictionaries
'''
def getMarketFeatureConfigDicts(self):
# ADD RELEVANT FEATURES HERE
scoreDict = {'featureKey': 'score',
'featureId': 'score_fv',
'params': {'featureName': self.getPriceFeatureKey(),
'instrument_score_feature': 'score'}}
return [scoreDict]
'''
A function that returns your predicted value based on your heuristics.
'''
def getPrediction(self, time, updateNum, instrumentManager):
predictions = pd.Series(0.0, index = self.instrumentIds)
# holder for all the instrument features
lbInstF = instrumentManager.getLookbackInstrumentFeatures()
### TODO : FILL THIS FUNCTION TO RETURN A BUY (1) or SELL (0) prediction for each stock
### USE TEMPLATE BELOW AS EXAMPLE
# dataframe for a historical instrument feature (mom10 in this case). The index is the timestamps
# of upto lookback data points. The columns of this dataframe are the stock symbols/instrumentIds.
# Get the last row of the dataframe, the most recent datapoint
mom10 = lbInstF.getFeatureDf('mom10').iloc[-1]
emabasis2 = lbInstF.getFeatureDf('emabasis2').iloc[-1]
emabasis5 = lbInstF.getFeatureDf('emabasis5').iloc[-1]
emabasis10 = lbInstF.getFeatureDf('emabasis10').iloc[-1]
basis = lbInstF.getFeatureDf('basis').iloc[-1]
totalaskvol = (lbInstF.getFeatureDf('stockTotalAskVol').iloc[-1] - lbInstF.getFeatureDf('futureTotalAskVol').iloc[-1])/100000.0
totalbidvol = (lbInstF.getFeatureDf('stockTotalBidVol').iloc[-1] - lbInstF.getFeatureDf('futureTotalBidVol').iloc[-1])/100000.0
coeff = [ 0.03249183, 0.49675487, -0.22289464, 0.2025182, 0.5080227, -0.21557005, 0.17128488]
predictions['MQK'] = coeff[0] * mom10['MQK'] + coeff[1] * emabasis2['MQK'] +\
coeff[2] * emabasis5['MQK'] + coeff[3] * emabasis10['MQK'] +\
coeff[4] * basis['MQK'] + coeff[5] * totalaskvol['MQK']+\
coeff[6] * totalbidvol['MQK']
predictions.fillna(emabasis5,inplace=True)
print('Current basis: %.3f, predicted basis: %.3f'%(basis['MQK'], predictions['MQK']))
if updateNum>1:
print('Current position: %.0f'%lbInstF.getFeatureDf('position').iloc[-1]['MQK'])
return predictions
'''
Here we convert prediction to intended positions for different instruments.
'''
def getExecutionSystem(self):
return SimpleExecutionSystemWithFairValue(enter_threshold_deviation=0.5, exit_threshold_deviation=0.2,
longLimit=250, shortLimit=250, capitalUsageLimit=0.05,
enterlotSize=10, exitlotSize=10,
limitType='L', price=self.getPriceFeatureKey())
'''
For Backtesting, we use the BacktestingOrderPlacer, which places the order which we want,
and automatically confirms it too.
'''
def getOrderPlacer(self):
return BacktestingOrderPlacer()
'''
Returns the amount of lookback data you want for your calculations.
'''
def getLookbackSize(self):
return 90
def getPriceFeatureKey(self):
return 'basis'
def getMetricsToLogRealtime(self):
# Everything will be logged if left as is
return {
'market': None,
'instruments': None
}
class TrainingPredictionFeature(Feature):
@classmethod
def computeForInstrument(cls, updateNum, time, featureParams, featureKey, instrumentManager):
t = MyTradingParams()
return t.getPrediction(time, updateNum, instrumentManager)
if updateCheck():
print('Your version of the auquan toolbox package is old. Please update by running the following command:')
print('pip install -U auquan_toolbox')
else:
tsParams = MyTradingParams()
# import pdb;pdb.set_trace()
tradingSystem = TradingSystem(tsParams)
results = tradingSystem.startTrading(onlyAnalyze=False, shouldPlot=False, makeInstrumentCsvs=False)
# Set onlyAnalyze to True to quickly generate csv files with all the features
# Set onlyAnalyze to False to run a full backtest
# Set makeInstrumentCsvs to False to not make instrument specific csvs in runLogs.
# This improves the performance BY A LOT
Processing data for stock: MQK Logging all the available market metrics in tensorboard Logging all the available instrument metrics in tensorboard 2017-01-06 09:30:00 Current basis: 3.685, predicted basis: 3.651 2017-01-06 09:31:00 Current basis: 3.815, predicted basis: 3.724 Current position: 0 2017-01-06 09:32:00 Current basis: 3.812, predicted basis: 3.723 Current position: -10 2017-01-06 09:33:00 Current basis: 3.661, predicted basis: 3.641 Current position: -20 2017-01-06 09:34:00 Current basis: 3.811, predicted basis: 3.728 Current position: -30 2017-01-06 09:35:00 Current basis: 3.987, predicted basis: 3.836 Current position: -40 2017-01-06 09:36:00 Current basis: 4.011, predicted basis: 3.891 Current position: -50 2017-01-06 09:37:00 Current basis: 4.041, predicted basis: 3.928 Current position: -60 2017-01-06 09:38:00 Current basis: 4.397, predicted basis: 4.162 Current position: -70 2017-01-06 09:39:00 Current basis: 4.343, predicted basis: 4.187 Current position: -80 2017-01-06 09:40:00 Current basis: 4.269, predicted basis: 4.160 Current position: -90 2017-01-06 09:41:00 Current basis: 4.445, predicted basis: 4.292 Current position: -100 2017-01-06 09:42:00 Current basis: 4.418, predicted basis: 4.295 Current position: -110 2017-01-06 09:43:00 Current basis: 4.216, predicted basis: 4.161 Current position: -120 2017-01-06 09:44:00 Current basis: 4.438, predicted basis: 4.309 Current position: -130 2017-01-06 09:45:00 Current basis: 4.361, predicted basis: 4.267 Current position: -140 2017-01-06 09:46:00 Current basis: 4.391, predicted basis: 4.291 Current position: -150 2017-01-06 09:47:00 Current basis: 4.291, predicted basis: 4.220 Current position: -160 2017-01-06 09:48:00 Current basis: 4.516, predicted basis: 4.369 Current position: -170 2017-01-06 09:49:00 Current basis: 4.393, predicted basis: 4.301 Current position: -180 2017-01-06 09:50:00 Current basis: 4.270, predicted basis: 4.209 Current position: -190 2017-01-06 09:51:00 Current basis: 4.021, predicted basis: 4.047 Current position: -200 2017-01-06 09:52:00 Current basis: 4.096, predicted basis: 4.062 Current position: -210 2017-01-06 09:53:00 Current basis: 3.846, predicted basis: 3.883 Current position: -220 2017-01-06 09:54:00 Current basis: 3.845, predicted basis: 3.856 Current position: -230 2017-01-06 09:55:00 Current basis: 3.820, predicted basis: 3.818 Current position: -240 2017-01-06 09:56:00 Current basis: 3.770, predicted basis: 3.774 Current position: -250 2017-01-06 09:57:00 Current basis: 3.916, predicted basis: 3.836 Current position: -250 2017-01-06 09:58:00 Current basis: 4.111, predicted basis: 3.966 Current position: -250 2017-01-06 09:59:00 Current basis: 3.761, predicted basis: 3.772 Current position: -250 2017-01-06 10:00:00 Current basis: 4.008, predicted basis: 3.921 Current position: -250 2017-01-06 10:01:00 Current basis: 4.157, predicted basis: 4.031 Current position: -250 2017-01-06 10:02:00 Current basis: 4.006, predicted basis: 3.959 Current position: -250 2017-01-06 10:03:00 Current basis: 4.131, predicted basis: 4.045 Current position: -250 2017-01-06 10:04:00 Current basis: 4.081, predicted basis: 4.029 Current position: -250 2017-01-06 10:05:00 Current basis: 4.157, predicted basis: 4.080 Current position: -250 2017-01-06 10:06:00 Current basis: 3.934, predicted basis: 3.926 Current position: -250 2017-01-06 10:07:00 Current basis: 4.061, predicted basis: 3.989 Current position: -250 2017-01-06 10:08:00 Current basis: 4.060, predicted basis: 4.012 Current position: -250 2017-01-06 10:09:00 Current basis: 4.114, predicted basis: 4.033 Current position: -250 2017-01-06 10:10:00 Current basis: 4.160, predicted basis: 4.068 Current position: -250 2017-01-06 10:11:00 Current basis: 4.238, predicted basis: 4.129 Current position: -250 2017-01-06 10:12:00 Current basis: 4.336, predicted basis: 4.212 Current position: -250 2017-01-06 10:13:00 Current basis: 4.039, predicted basis: 4.035 Current position: -250 2017-01-06 10:14:00 Current basis: 4.137, predicted basis: 4.079 Current position: -250 2017-01-06 10:15:00 Current basis: 4.114, predicted basis: 4.065 Current position: -250 2017-01-06 10:16:00 Current basis: 4.040, predicted basis: 4.016 Current position: -250 2017-01-06 10:17:00 Current basis: 4.115, predicted basis: 4.055 Current position: -250 2017-01-06 10:18:00 Current basis: 4.165, predicted basis: 4.086 Current position: -250 2017-01-06 10:19:00 Current basis: 4.239, predicted basis: 4.116 Current position: -250 2017-01-06 10:20:00 Current basis: 3.964, predicted basis: 3.960 Current position: -250 2017-01-06 10:21:00 Current basis: 3.813, predicted basis: 3.854 Current position: -250 2017-01-06 10:22:00 Current basis: 3.888, predicted basis: 3.882 Current position: -250 2017-01-06 10:23:00 Current basis: 3.763, predicted basis: 3.781 Current position: -250 2017-01-06 10:24:00 Current basis: 3.712, predicted basis: 3.723 Current position: -250 2017-01-06 10:25:00 Current basis: 3.886, predicted basis: 3.829 Current position: -250 2017-01-06 10:26:00 Current basis: 3.861, predicted basis: 3.821 Current position: -250 2017-01-06 10:27:00 Current basis: 3.785, predicted basis: 3.766 Current position: -250 2017-01-06 10:28:00 Current basis: 3.811, predicted basis: 3.772 Current position: -250 2017-01-06 10:29:00 Current basis: 3.734, predicted basis: 3.720 Current position: -250 2017-01-06 10:30:00 Current basis: 3.832, predicted basis: 3.805 Current position: -250 2017-01-06 10:31:00 Current basis: 3.755, predicted basis: 3.667 Current position: -250 2017-01-06 10:32:00 Current basis: 4.051, predicted basis: 3.946 Current position: -250 2017-01-06 10:33:00 Current basis: 3.828, predicted basis: 3.810 Current position: -250 2017-01-06 10:34:00 Current basis: 4.053, predicted basis: 3.945 Current position: -250 2017-01-06 10:35:00 Current basis: 4.178, predicted basis: 4.034 Current position: -250 2017-01-06 10:36:00 Current basis: 4.916, predicted basis: 4.574 Current position: -250 2017-01-06 10:37:00 Current basis: 4.545, predicted basis: 4.406 Current position: -250 2017-01-06 10:38:00 Current basis: 4.595, predicted basis: 4.461 Current position: -250 2017-01-06 10:39:00 Current basis: 4.720, predicted basis: 4.561 Current position: -250 2017-01-06 10:40:00 Current basis: 4.645, predicted basis: 4.558 Current position: -250 2017-01-06 10:41:00 Current basis: 5.267, predicted basis: 4.942 Current position: -250 2017-01-06 10:42:00 Current basis: 5.117, predicted basis: 4.935 Current position: -250 2017-01-06 10:43:00 Current basis: 5.219, predicted basis: 5.008 Current position: -250 2017-01-06 10:44:00 Current basis: 5.194, predicted basis: 5.020 Current position: -250 2017-01-06 10:45:00 Current basis: 4.874, predicted basis: 4.808 Current position: -250 2017-01-06 10:46:00 Current basis: 4.928, predicted basis: 4.842 Current position: -250 2017-01-06 10:47:00 Current basis: 5.180, predicted basis: 5.005 Current position: -250 2017-01-06 10:48:00 Current basis: 5.231, predicted basis: 5.059 Current position: -250 2017-01-06 10:49:00 Current basis: 5.256, predicted basis: 5.092 Current position: -250 2017-01-06 10:50:00 Current basis: 5.330, predicted basis: 5.135 Current position: -250 2017-01-06 10:51:00 Current basis: 5.230, predicted basis: 5.088 Current position: -250 2017-01-06 10:52:00 Current basis: 5.281, predicted basis: 5.117 Current position: -250 2017-01-06 10:53:00 Current basis: 5.231, predicted basis: 5.107 Current position: -250 2017-01-06 10:54:00 Current basis: 5.206, predicted basis: 5.084 Current position: -250 2017-01-06 10:55:00 Current basis: 5.280, predicted basis: 5.155 Current position: -250 2017-01-06 10:56:00 Current basis: 5.104, predicted basis: 5.027 Current position: -250 2017-01-06 10:57:00 Current basis: 5.028, predicted basis: 4.960 Current position: -250 2017-01-06 10:58:00 Current basis: 5.102, predicted basis: 4.993 Current position: -250 2017-01-06 10:59:00 Current basis: 4.829, predicted basis: 4.814 Current position: -250 2017-01-06 11:00:00 Current basis: 5.005, predicted basis: 4.902 Current position: -250 2017-01-06 11:01:00 Current basis: 4.929, predicted basis: 4.852 Current position: -250 2017-01-06 11:02:00 Current basis: 5.029, predicted basis: 4.912 Current position: -250 2017-01-06 11:03:00 Current basis: 4.804, predicted basis: 4.781 Current position: -250 2017-01-06 11:04:00 Current basis: 4.956, predicted basis: 4.836 Current position: -250 2017-01-06 11:05:00 Current basis: 4.560, predicted basis: 4.589 Current position: -250 2017-01-06 11:06:00 Current basis: 4.833, predicted basis: 4.735 Current position: -250 2017-01-06 11:07:00 Current basis: 4.879, predicted basis: 4.777 Current position: -250 2017-01-06 11:08:00 Current basis: 4.755, predicted basis: 4.713 Current position: -250 2017-01-06 11:09:00 Current basis: 4.710, predicted basis: 4.654 Current position: -250 2017-01-06 11:10:00 Current basis: 4.685, predicted basis: 4.621 Current position: -250 2017-01-06 11:11:00 Current basis: 4.611, predicted basis: 4.570 Current position: -250 2017-01-06 11:12:00 Current basis: 4.657, predicted basis: 4.605 Current position: -250 2017-01-06 11:13:00 Current basis: 4.683, predicted basis: 4.612 Current position: -250 2017-01-06 11:14:00 Current basis: 4.582, predicted basis: 4.564 Current position: -250 2017-01-06 11:15:00 Current basis: 4.507, predicted basis: 4.494 Current position: -250 2017-01-06 11:16:00 Current basis: 4.507, predicted basis: 4.474 Current position: -250 2017-01-06 11:17:00 Current basis: 4.607, predicted basis: 4.534 Current position: -250 2017-01-06 11:18:00 Current basis: 4.582, predicted basis: 4.521 Current position: -250 2017-01-06 11:19:00 Current basis: 4.506, predicted basis: 4.473 Current position: -250 2017-01-06 11:20:00 Current basis: 4.481, predicted basis: 4.460 Current position: -250 2017-01-06 11:21:00 Current basis: 4.481, predicted basis: 4.456 Current position: -250 2017-01-06 11:22:00 Current basis: 4.382, predicted basis: 4.381 Current position: -250 2017-01-06 11:23:00 Current basis: 4.336, predicted basis: 4.326 Current position: -250 2017-01-06 11:24:00 Current basis: 4.310, predicted basis: 4.309 Current position: -250 2017-01-06 11:25:00 Current basis: 4.334, predicted basis: 4.307 Current position: -250 2017-01-06 11:26:00 Current basis: 4.333, predicted basis: 4.296 Current position: -250 2017-01-06 11:27:00 Current basis: 4.359, predicted basis: 4.308 Current position: -250 2017-01-06 11:28:00 Current basis: 4.307, predicted basis: 4.286 Current position: -250 2017-01-06 11:29:00 Current basis: 4.433, predicted basis: 4.350 Current position: -250 2017-01-06 11:30:00 Current basis: 4.384, predicted basis: 4.326 Current position: -250 2017-01-06 11:31:00 Current basis: 4.581, predicted basis: 4.465 Current position: -250 2017-01-06 11:32:00 Current basis: 4.581, predicted basis: 4.483 Current position: -250 2017-01-06 11:33:00 Current basis: 4.209, predicted basis: 4.256 Current position: -250 2017-01-06 11:34:00 Current basis: 4.286, predicted basis: 4.261 Current position: -250 2017-01-06 11:35:00 Current basis: 3.987, predicted basis: 4.038 Current position: -250 2017-01-06 11:36:00 Current basis: 3.690, predicted basis: 3.821 Current position: -250 2017-01-06 11:37:00 Current basis: 3.715, predicted basis: 3.802 Current position: -250 2017-01-06 11:38:00 Current basis: 3.646, predicted basis: 3.701 Current position: -250 2017-01-06 11:39:00 Current basis: 3.670, predicted basis: 3.682 Current position: -250 2017-01-06 11:40:00 Current basis: 3.593, predicted basis: 3.622 Current position: -250 2017-01-06 11:41:00 Current basis: 3.815, predicted basis: 3.746 Current position: -250 2017-01-06 11:42:00 Current basis: 3.616, predicted basis: 3.634 Current position: -250 2017-01-06 11:43:00 Current basis: 3.689, predicted basis: 3.671 Current position: -250 2017-01-06 11:44:00 Current basis: 3.739, predicted basis: 3.718 Current position: -250 2017-01-06 11:45:00 Current basis: 3.321, predicted basis: 3.435 Current position: -250 2017-01-06 11:46:00 Current basis: 3.494, predicted basis: 3.519 Current position: -250 2017-01-06 11:47:00 Current basis: 3.270, predicted basis: 3.360 Current position: -250 2017-01-06 11:48:00 Current basis: 2.899, predicted basis: 3.084 Current position: -250 2017-01-06 11:49:00 Current basis: 2.849, predicted basis: 3.013 Current position: -250 2017-01-06 11:50:00 Current basis: 2.826, predicted basis: 2.922 Current position: -250 2017-01-06 11:51:00 Current basis: 2.700, predicted basis: 2.831 Current position: -250 2017-01-06 11:52:00 Current basis: 2.551, predicted basis: 2.690 Current position: -250 2017-01-06 11:53:00 Current basis: 2.700, predicted basis: 2.744 Current position: -250 2017-01-06 11:54:00 Current basis: 2.674, predicted basis: 2.733 Current position: -250 2017-01-06 11:55:00 Current basis: 2.600, predicted basis: 2.656 Current position: -250 2017-01-06 11:56:00 Current basis: 2.769, predicted basis: 2.779 Current position: -250 2017-01-06 11:57:00 Current basis: 2.768, predicted basis: 2.787 Current position: -250 2017-01-06 11:58:00 Current basis: 2.721, predicted basis: 2.744 Current position: -250 2017-01-06 11:59:00 Current basis: 2.842, predicted basis: 2.838 Current position: -250 2017-01-06 12:00:00 Current basis: 2.842, predicted basis: 2.849 Current position: -250 2017-01-06 12:01:00 Current basis: 2.818, predicted basis: 2.835 Current position: -250 2017-01-06 12:02:00 Current basis: 2.646, predicted basis: 2.718 Current position: -250 2017-01-06 12:03:00 Current basis: 2.767, predicted basis: 2.783 Current position: -250 2017-01-06 12:04:00 Current basis: 2.838, predicted basis: 2.844 Current position: -250 2017-01-06 12:05:00 Current basis: 2.696, predicted basis: 2.741 Current position: -250 2017-01-06 12:06:00 Current basis: 2.716, predicted basis: 2.752 Current position: -250 2017-01-06 12:07:00 Current basis: 2.764, predicted basis: 2.786 Current position: -250 2017-01-06 12:08:00 Current basis: 2.739, predicted basis: 2.747 Current position: -250 2017-01-06 12:09:00 Current basis: 2.740, predicted basis: 2.737 Current position: -250 2017-01-06 12:10:00 Current basis: 2.842, predicted basis: 2.839 Current position: -250 2017-01-06 12:11:00 Current basis: 2.866, predicted basis: 2.873 Current position: -250 2017-01-06 12:12:00 Current basis: 2.943, predicted basis: 2.893 Current position: -250 2017-01-06 12:13:00 Current basis: 2.717, predicted basis: 2.764 Current position: -250 2017-01-06 12:14:00 Current basis: 2.717, predicted basis: 2.764 Current position: -250 2017-01-06 12:15:00 Current basis: 2.717, predicted basis: 2.745 Current position: -250 2017-01-06 12:16:00 Current basis: 2.717, predicted basis: 2.727 Current position: -250 2017-01-06 12:17:00 Current basis: 2.767, predicted basis: 2.764 Current position: -250 2017-01-06 12:18:00 Current basis: 2.743, predicted basis: 2.747 Current position: -250 2017-01-06 12:19:00 Current basis: 2.844, predicted basis: 2.796 Current position: -250 2017-01-06 12:20:00 Current basis: 2.770, predicted basis: 2.756 Current position: -250 2017-01-06 12:21:00 Current basis: 2.745, predicted basis: 2.735 Current position: -250 2017-01-06 12:22:00 Current basis: 2.695, predicted basis: 2.702 Current position: -250 2017-01-06 12:23:00 Current basis: 2.770, predicted basis: 2.745 Current position: -250 2017-01-06 12:24:00 Current basis: 2.721, predicted basis: 2.722 Current position: -250 2017-01-06 12:25:00 Current basis: 2.695, predicted basis: 2.702 Current position: -250 2017-01-06 12:26:00 Current basis: 2.840, predicted basis: 2.776 Current position: -250 2017-01-06 12:27:00 Current basis: 2.768, predicted basis: 2.738 Current position: -250 2017-01-06 12:28:00 Current basis: 2.470, predicted basis: 2.553 Current position: -250 2017-01-06 12:29:00 Current basis: 2.594, predicted basis: 2.609 Current position: -250 2017-01-06 12:30:00 Current basis: 2.643, predicted basis: 2.639 Current position: -250 2017-01-06 12:31:00 Current basis: 2.595, predicted basis: 2.599 Current position: -250 2017-01-06 12:32:00 Current basis: 2.720, predicted basis: 2.655 Current position: -250 2017-01-06 12:33:00 Current basis: 2.621, predicted basis: 2.609 Current position: -250 2017-01-06 12:34:00 Current basis: 2.745, predicted basis: 2.687 Current position: -250 2017-01-06 12:35:00 Current basis: 2.721, predicted basis: 2.678 Current position: -250 2017-01-06 12:36:00 Current basis: 2.721, predicted basis: 2.680 Current position: -250 2017-01-06 12:37:00 Current basis: 3.049, predicted basis: 2.899 Current position: -250 2017-01-06 12:38:00 Current basis: 3.152, predicted basis: 2.998 Current position: -250 2017-01-06 12:39:00 Current basis: 3.204, predicted basis: 3.052 Current position: -250 2017-01-06 12:40:00 Current basis: 3.029, predicted basis: 2.958 Current position: -250 2017-01-06 12:41:00 Current basis: 2.951, predicted basis: 2.927 Current position: -250 2017-01-06 12:42:00 Current basis: 2.730, predicted basis: 2.777 Current position: -250 2017-01-06 12:43:00 Current basis: 2.706, predicted basis: 2.724 Current position: -250 2017-01-06 12:44:00 Current basis: 2.532, predicted basis: 2.603 Current position: -250 2017-01-06 12:45:00 Current basis: 2.074, predicted basis: 2.259 Current position: -250 2017-01-06 12:46:00 Current basis: 2.193, predicted basis: 2.269 Current position: -250 2017-01-06 12:47:00 Current basis: 2.594, predicted basis: 2.512 Current position: -250 2017-01-06 12:48:00 Current basis: 2.494, predicted basis: 2.438 Current position: -250 2017-01-06 12:49:00 Current basis: 2.665, predicted basis: 2.568 Current position: -250 2017-01-06 12:50:00 Current basis: 2.761, predicted basis: 2.662 Current position: -250 2017-01-06 12:51:00 Current basis: 2.661, predicted basis: 2.613 Current position: -250 2017-01-06 12:52:00 Current basis: 2.862, predicted basis: 2.756 Current position: -250 2017-01-06 12:53:00 Current basis: 2.860, predicted basis: 2.771 Current position: -250 2017-01-06 12:54:00 Current basis: 2.661, predicted basis: 2.671 Current position: -250 2017-01-06 12:55:00 Current basis: 2.684, predicted basis: 2.669 Current position: -250 2017-01-06 12:56:00 Current basis: 2.685, predicted basis: 2.663 Current position: -250 2017-01-06 12:57:00 Current basis: 2.826, predicted basis: 2.755 Current position: -250 2017-01-06 12:58:00 Current basis: 2.751, predicted basis: 2.706 Current position: -250 2017-01-06 12:59:00 Current basis: 2.781, predicted basis: 2.724 Current position: -250 2017-01-06 13:00:00 Current basis: 2.581, predicted basis: 2.614 Current position: -250 2017-01-06 13:01:00 Current basis: 2.559, predicted basis: 2.434 Current position: -250 2017-01-06 13:02:00 Current basis: 2.586, predicted basis: 2.574 Current position: -250 2017-01-06 13:03:00 Current basis: 2.436, predicted basis: 2.476 Current position: -250 2017-01-06 13:04:00 Current basis: 2.507, predicted basis: 2.488 Current position: -250 2017-01-06 13:05:00 Current basis: 2.483, predicted basis: 2.477 Current position: -250 2017-01-06 13:06:00 Current basis: 2.408, predicted basis: 2.397 Current position: -250 2017-01-06 13:07:00 Current basis: 2.358, predicted basis: 2.375 Current position: -250 2017-01-06 13:08:00 Current basis: 2.258, predicted basis: 2.294 Current position: -250 2017-01-06 13:09:00 Current basis: 2.305, predicted basis: 2.319 Current position: -250 2017-01-06 13:10:00 Current basis: 2.354, predicted basis: 2.343 Current position: -250 2017-01-06 13:11:00 Current basis: 2.481, predicted basis: 2.417 Current position: -250 2017-01-06 13:12:00 Current basis: 2.335, predicted basis: 2.333 Current position: -250 2017-01-06 13:13:00 Current basis: 2.287, predicted basis: 2.288 Current position: -250 2017-01-06 13:14:00 Current basis: 1.989, predicted basis: 2.091 Current position: -250 2017-01-06 13:15:00 Current basis: 2.310, predicted basis: 2.272 Current position: -250 2017-01-06 13:16:00 Current basis: 2.336, predicted basis: 2.292 Current position: -250 2017-01-06 13:17:00 Current basis: 2.311, predicted basis: 2.287 Current position: -250 2017-01-06 13:18:00 Current basis: 2.583, predicted basis: 2.478 Current position: -250 2017-01-06 13:19:00 Current basis: 2.290, predicted basis: 2.271 Current position: -250 2017-01-06 13:20:00 Current basis: 2.433, predicted basis: 2.400 Current position: -250 2017-01-06 13:21:00 Current basis: 2.436, predicted basis: 2.392 Current position: -250 2017-01-06 13:22:00 Current basis: 2.311, predicted basis: 2.317 Current position: -250 2017-01-06 13:23:00 Current basis: 2.108, predicted basis: 2.190 Current position: -250 2017-01-06 13:24:00 Current basis: 2.179, predicted basis: 2.195 Current position: -250 2017-01-06 13:25:00 Current basis: 2.080, predicted basis: 2.109 Current position: -250 2017-01-06 13:26:00 Current basis: 1.857, predicted basis: 1.957 Current position: -250 2017-01-06 13:27:00 Current basis: 1.956, predicted basis: 1.968 Current position: -250 2017-01-06 13:28:00 Current basis: 1.980, predicted basis: 2.001 Current position: -250 2017-01-06 13:29:00 Current basis: 2.054, predicted basis: 2.027 Current position: -250 2017-01-06 13:30:00 Current basis: 2.154, predicted basis: 2.091 Current position: -250 2017-01-06 13:31:00 Current basis: 2.152, predicted basis: 2.117 Current position: -250 2017-01-06 13:32:00 Current basis: 2.155, predicted basis: 2.119 Current position: -250 2017-01-06 13:33:00 Current basis: 2.229, predicted basis: 2.179 Current position: -250 2017-01-06 13:34:00 Current basis: 2.154, predicted basis: 2.163 Current position: -250 2017-01-06 13:35:00 Current basis: 2.333, predicted basis: 2.268 Current position: -250 2017-01-06 13:36:00 Current basis: 2.436, predicted basis: 2.347 Current position: -250 2017-01-06 13:37:00 Current basis: 2.290, predicted basis: 2.266 Current position: -250 2017-01-06 13:38:00 Current basis: 2.341, predicted basis: 2.278 Current position: -250 2017-01-06 13:39:00 Current basis: 2.265, predicted basis: 2.260 Current position: -250 2017-01-06 13:40:00 Current basis: 2.215, predicted basis: 2.212 Current position: -250 2017-01-06 13:41:00 Current basis: 2.339, predicted basis: 2.283 Current position: -250 2017-01-06 13:42:00 Current basis: 2.189, predicted basis: 2.197 Current position: -250 2017-01-06 13:43:00 Current basis: 2.036, predicted basis: 2.101 Current position: -250 2017-01-06 13:44:00 Current basis: 2.258, predicted basis: 2.205 Current position: -250 2017-01-06 13:45:00 Current basis: 2.309, predicted basis: 2.236 Current position: -250 2017-01-06 13:46:00 Current basis: 2.257, predicted basis: 2.238 Current position: -250 2017-01-06 13:47:00 Current basis: 2.232, predicted basis: 2.213 Current position: -250 2017-01-06 13:48:00 Current basis: 2.301, predicted basis: 2.290 Current position: -250 2017-01-06 13:49:00 Current basis: 2.177, predicted basis: 2.203 Current position: -250 2017-01-06 13:50:00 Current basis: 2.203, predicted basis: 2.187 Current position: -250 2017-01-06 13:51:00 Current basis: 2.180, predicted basis: 2.166 Current position: -250 2017-01-06 13:52:00 Current basis: 2.230, predicted basis: 2.230 Current position: -250 2017-01-06 13:53:00 Current basis: 2.053, predicted basis: 2.107 Current position: -250 2017-01-06 13:54:00 Current basis: 2.100, predicted basis: 2.092 Current position: -250 2017-01-06 13:55:00 Current basis: 2.126, predicted basis: 2.115 Current position: -250 2017-01-06 13:56:00 Current basis: 1.998, predicted basis: 2.033 Current position: -250 2017-01-06 13:57:00 Current basis: 2.020, predicted basis: 2.019 Current position: -250 2017-01-06 13:58:00 Current basis: 2.071, predicted basis: 2.059 Current position: -250 2017-01-06 13:59:00 Current basis: 2.072, predicted basis: 2.055 Current position: -250 2017-01-06 14:00:00 Current basis: 1.899, predicted basis: 1.939 Current position: -250 2017-01-06 14:01:00 Current basis: 2.021, predicted basis: 2.010 Current position: -250 2017-01-06 14:02:00 Current basis: 1.898, predicted basis: 1.924 Current position: -250 2017-01-06 14:03:00 Current basis: 2.049, predicted basis: 2.025 Current position: -250 2017-01-06 14:04:00 Current basis: 1.974, predicted basis: 1.955 Current position: -250 2017-01-06 14:05:00 Current basis: 2.049, predicted basis: 2.019 Current position: -250 2017-01-06 14:06:00 Current basis: 2.104, predicted basis: 2.057 Current position: -250 2017-01-06 14:07:00 Current basis: 1.879, predicted basis: 1.917 Current position: -250 2017-01-06 14:08:00 Current basis: 2.004, predicted basis: 1.986 Current position: -250 2017-01-06 14:09:00 Current basis: 1.954, predicted basis: 1.958 Current position: -250 2017-01-06 14:10:00 Current basis: 2.028, predicted basis: 1.991 Current position: -250 2017-01-06 14:11:00 Current basis: 2.003, predicted basis: 1.982 Current position: -250 2017-01-06 14:12:00 Current basis: 2.003, predicted basis: 1.981 Current position: -250 2017-01-06 14:13:00 Current basis: 2.053, predicted basis: 2.014 Current position: -250 2017-01-06 14:14:00 Current basis: 1.778, predicted basis: 1.832 Current position: -250 2017-01-06 14:15:00 Current basis: 1.902, predicted basis: 1.907 Current position: -250 2017-01-06 14:16:00 Current basis: 1.901, predicted basis: 1.899 Current position: -250 2017-01-06 14:17:00 Current basis: 2.025, predicted basis: 1.977 Current position: -250 2017-01-06 14:18:00 Current basis: 1.975, predicted basis: 1.973 Current position: -250 2017-01-06 14:19:00 Current basis: 2.000, predicted basis: 1.987 Current position: -250 2017-01-06 14:20:00 Current basis: 2.225, predicted basis: 2.117 Current position: -250 2017-01-06 14:21:00 Current basis: 2.175, predicted basis: 2.118 Current position: -250 2017-01-06 14:22:00 Current basis: 2.125, predicted basis: 2.090 Current position: -250 2017-01-06 14:23:00 Current basis: 2.223, predicted basis: 2.165 Current position: -250 2017-01-06 14:24:00 Current basis: 2.197, predicted basis: 2.176 Current position: -250 2017-01-06 14:25:00 Current basis: 2.173, predicted basis: 2.138 Current position: -250 2017-01-06 14:26:00 Current basis: 2.177, predicted basis: 2.154 Current position: -250 2017-01-06 14:27:00 Current basis: 2.030, predicted basis: 2.056 Current position: -250 2017-01-06 14:28:00 Current basis: 1.936, predicted basis: 1.967 Current position: -250 2017-01-06 14:29:00 Current basis: 1.986, predicted basis: 1.973 Current position: -250 2017-01-06 14:30:00 Current basis: 1.886, predicted basis: 1.902 Current position: -250 2017-01-06 14:31:00 Current basis: 1.906, predicted basis: 1.917 Current position: -250 2017-01-06 14:32:00 Current basis: 1.806, predicted basis: 1.835 Current position: -250 2017-01-06 14:33:00 Current basis: 1.806, predicted basis: 1.832 Current position: -250 2017-01-06 14:34:00 Current basis: 1.906, predicted basis: 1.870 Current position: -250 2017-01-06 14:35:00 Current basis: 1.861, predicted basis: 1.849 Current position: -250 2017-01-06 14:36:00 Current basis: 1.857, predicted basis: 1.852 Current position: -250 2017-01-06 14:37:00 Current basis: 1.856, predicted basis: 1.844 Current position: -250 2017-01-06 14:38:00 Current basis: 1.756, predicted basis: 1.790 Current position: -250 2017-01-06 14:39:00 Current basis: 1.756, predicted basis: 1.774 Current position: -250 2017-01-06 14:40:00 Current basis: 1.757, predicted basis: 1.762 Current position: -250 2017-01-06 14:41:00 Current basis: 1.782, predicted basis: 1.780 Current position: -250 2017-01-06 14:42:00 Current basis: 1.732, predicted basis: 1.746 Current position: -250 2017-01-06 14:43:00 Current basis: 1.910, predicted basis: 1.851 Current position: -250 2017-01-06 14:44:00 Current basis: 1.910, predicted basis: 1.860 Current position: -250 2017-01-06 14:45:00 Current basis: 1.935, predicted basis: 1.895 Current position: -250 2017-01-06 14:46:00 Current basis: 1.886, predicted basis: 1.867 Current position: -250 2017-01-06 14:47:00 Current basis: 1.911, predicted basis: 1.892 Current position: -250 2017-01-06 14:48:00 Current basis: 1.913, predicted basis: 1.899 Current position: -250 2017-01-06 14:49:00 Current basis: 1.862, predicted basis: 1.844 Current position: -250 2017-01-06 14:50:00 Current basis: 1.762, predicted basis: 1.793 Current position: -250 2017-01-06 14:51:00 Current basis: 1.785, predicted basis: 1.797 Current position: -250 2017-01-06 14:52:00 Current basis: 1.684, predicted basis: 1.719 Current position: -250 2017-01-06 14:53:00 Current basis: 1.509, predicted basis: 1.600 Current position: -250 2017-01-06 14:54:00 Current basis: 1.614, predicted basis: 1.628 Current position: -250 2017-01-06 14:55:00 Current basis: 1.663, predicted basis: 1.658 Current position: -250 2017-01-06 14:56:00 Current basis: 1.538, predicted basis: 1.576 Current position: -250 2017-01-06 14:57:00 Current basis: 1.638, predicted basis: 1.633 Current position: -250 2017-01-06 14:58:00 Current basis: 1.636, predicted basis: 1.648 Current position: -250 2017-01-06 14:59:00 Current basis: 1.584, predicted basis: 1.602 Current position: -250 2017-01-06 15:00:00 Current basis: 1.507, predicted basis: 1.553 Current position: -250 2017-01-06 15:01:00 Current basis: 1.483, predicted basis: 1.516 Current position: -250 2017-01-06 15:02:00 Current basis: 1.606, predicted basis: 1.576 Current position: -250 2017-01-06 15:03:00 Current basis: 1.605, predicted basis: 1.593 Current position: -250 2017-01-06 15:04:00 Current basis: 1.605, predicted basis: 1.594 Current position: -250 2017-01-06 15:05:00 Current basis: 1.781, predicted basis: 1.716 Current position: -250 2017-01-06 15:06:00 Current basis: 1.782, predicted basis: 1.731 Current position: -250 2017-01-06 15:07:00 Current basis: 1.806, predicted basis: 1.760 Current position: -250 2017-01-06 15:08:00 Current basis: 1.781, predicted basis: 1.747 Current position: -250 2017-01-06 15:09:00 Current basis: 1.705, predicted basis: 1.709 Current position: -250 2017-01-06 15:10:00 Current basis: 1.953, predicted basis: 1.865 Current position: -250 2017-01-06 15:11:00 Current basis: 1.852, predicted basis: 1.817 Current position: -250 2017-01-06 15:12:00 Current basis: 1.802, predicted basis: 1.792 Current position: -250 2017-01-06 15:13:00 Current basis: 1.802, predicted basis: 1.794 Current position: -250 2017-01-06 15:14:00 Current basis: 1.876, predicted basis: 1.827 Current position: -250 2017-01-06 15:15:00 Current basis: 1.929, predicted basis: 1.858 Current position: -250 2017-01-06 15:16:00 Current basis: 1.755, predicted basis: 1.757 Current position: -250 2017-01-06 15:17:00 Current basis: 1.554, predicted basis: 1.620 Current position: -250 2017-01-06 15:18:00 Current basis: 1.654, predicted basis: 1.660 Current position: -250 2017-01-06 15:19:00 Current basis: 1.554, predicted basis: 1.580 Current position: -250 2017-01-06 15:20:00 Current basis: 1.629, predicted basis: 1.619 Current position: -250 2017-01-06 15:21:00 Current basis: 1.580, predicted basis: 1.576 Current position: -250 2017-01-06 15:22:00 Current basis: 1.505, predicted basis: 1.542 Current position: -250 2017-01-06 15:23:00 Current basis: 1.257, predicted basis: 1.359 Current position: -250 2017-01-06 15:24:00 Current basis: 1.680, predicted basis: 1.604 Current position: -250 2017-01-06 15:25:00 Current basis: 1.828, predicted basis: 1.741 Current position: -250 2017-01-06 15:26:00 Current basis: 2.078, predicted basis: 1.907 Current position: -250 2017-01-06 15:27:00 Current basis: 1.781, predicted basis: 1.772 Current position: -250 2017-01-06 15:28:00 Current basis: 1.482, predicted basis: 1.578 Current position: -250 2017-01-06 15:29:00 Current basis: 1.311, predicted basis: 1.414 Current position: -250 2017-01-06 15:30:00 Current basis: 1.311, predicted basis: 1.381 Current position: -250 2017-01-09 09:30:00 Current basis: 1.311, predicted basis: 1.360 Current position: -250 2017-01-09 09:31:00 Current basis: 1.311, predicted basis: 1.352 Current position: -250 2017-01-09 09:32:00 Current basis: 1.311, predicted basis: 1.327 Current position: -250 2017-01-09 09:33:00 Current basis: 1.311, predicted basis: 1.314 Current position: -250 2017-01-09 09:34:00 Current basis: 1.311, predicted basis: 1.300 Current position: -250 2017-01-09 09:35:00 Current basis: 1.311, predicted basis: 1.306 Current position: -250 2017-01-09 09:36:00 Current basis: 1.311, predicted basis: 1.313 Current position: -250 2017-01-09 09:37:00 Current basis: 1.311, predicted basis: 1.316 Current position: -250 2017-01-09 09:38:00 Current basis: 1.311, predicted basis: 1.315 Current position: -250 2017-01-09 09:39:00 Current basis: 1.311, predicted basis: 1.313 Current position: -250 2017-01-09 09:40:00 Current basis: 1.311, predicted basis: 1.312 Current position: -250 2017-01-09 09:41:00 Current basis: 1.311, predicted basis: 1.311 Current position: -250 2017-01-09 09:42:00 Current basis: 1.311, predicted basis: 1.310 Current position: -250 2017-01-09 09:43:00 Current basis: 1.311, predicted basis: 1.309 Current position: -250 2017-01-09 09:44:00 Current basis: 1.311, predicted basis: 1.309 Current position: -250 2017-01-09 09:45:00 Current basis: 1.311, predicted basis: 1.308 Current position: -250 2017-01-09 09:46:00 Current basis: 1.311, predicted basis: 1.307 Current position: -250 2017-01-09 09:47:00 Current basis: 1.311, predicted basis: 1.306 Current position: -250 2017-01-09 09:48:00 Current basis: 1.311, predicted basis: 1.306 Current position: -250 2017-01-09 09:49:00 Current basis: 1.311, predicted basis: 1.305 Current position: -250 2017-01-09 09:50:00 Current basis: 1.311, predicted basis: 1.304 Current position: -250 2017-01-09 09:51:00 Current basis: 1.311, predicted basis: 1.304 Current position: -250 2017-01-09 09:52:00 Current basis: 1.311, predicted basis: 1.303 Current position: -250 2017-01-09 09:53:00 Current basis: 1.311, predicted basis: 1.303 Current position: -250 2017-01-09 09:54:00 Current basis: 1.311, predicted basis: 1.302 Current position: -250 2017-01-09 09:55:00 Current basis: 1.311, predicted basis: 1.301 Current position: -250 2017-01-09 09:56:00 Current basis: 1.311, predicted basis: 1.301 Current position: -250 2017-01-09 09:57:00 Current basis: 1.311, predicted basis: 1.300 Current position: -250 2017-01-09 09:58:00 Current basis: 1.311, predicted basis: 1.300 Current position: -250 2017-01-09 09:59:00 Current basis: 1.311, predicted basis: 1.299 Current position: -250 2017-01-09 10:00:00 Current basis: 1.311, predicted basis: 1.299 Current position: -250 2017-01-09 10:01:00 Current basis: 1.311, predicted basis: 1.298 Current position: -250 2017-01-09 10:02:00 Current basis: 1.311, predicted basis: 1.298 Current position: -250 2017-01-09 10:03:00 Current basis: 1.311, predicted basis: 1.298 Current position: -250 2017-01-09 10:04:00 Current basis: 1.311, predicted basis: 1.297 Current position: -250 2017-01-09 10:05:00 Current basis: 1.311, predicted basis: 1.297 Current position: -250 2017-01-09 10:06:00 Current basis: 1.311, predicted basis: 1.297 Current position: -250 2017-01-09 10:07:00 Current basis: 1.311, predicted basis: 1.296 Current position: -250 2017-01-09 10:08:00 Current basis: 1.311, predicted basis: 1.296 Current position: -250 2017-01-09 10:09:00 Current basis: 1.311, predicted basis: 1.296 Current position: -250 2017-01-09 10:10:00 Current basis: 1.311, predicted basis: 1.295 Current position: -250 2017-01-09 10:11:00 Current basis: 1.311, predicted basis: 1.295 Current position: -250 2017-01-09 10:12:00 Current basis: 1.311, predicted basis: 1.295 Current position: -250 2017-01-09 10:13:00 Current basis: 1.311, predicted basis: 1.295 Current position: -250 2017-01-09 10:14:00 Current basis: 1.311, predicted basis: 1.295 Current position: -250 2017-01-09 10:15:00 Current basis: 1.311, predicted basis: 1.294 Current position: -250 2017-01-09 10:16:00 Current basis: 1.311, predicted basis: 1.294 Current position: -250 2017-01-09 10:17:00 Current basis: 1.311, predicted basis: 1.294 Current position: -250 2017-01-09 10:18:00 Current basis: 1.311, predicted basis: 1.294 Current position: -250 2017-01-09 10:19:00 Current basis: 1.311, predicted basis: 1.294 Current position: -250 2017-01-09 10:20:00 Current basis: 1.311, predicted basis: 1.294 Current position: -250 2017-01-09 10:21:00 Current basis: 1.311, predicted basis: 1.294 Current position: -250 2017-01-09 10:22:00 Current basis: 1.311, predicted basis: 1.293 Current position: -250 2017-01-09 10:23:00 Current basis: 1.311, predicted basis: 1.293 Current position: -250 2017-01-09 10:24:00 Current basis: 1.311, predicted basis: 1.293 Current position: -250 2017-01-09 10:25:00 Current basis: 1.311, predicted basis: 1.293 Current position: -250 2017-01-09 10:26:00 Current basis: 1.311, predicted basis: 1.293 Current position: -250 2017-01-09 10:27:00 Current basis: 1.311, predicted basis: 1.293 Current position: -250 2017-01-09 10:28:00 Current basis: 1.311, predicted basis: 1.293 Current position: -250 2017-01-09 10:29:00 Current basis: 1.311, predicted basis: 1.293 Current position: -250 2017-01-09 10:30:00 Current basis: 1.311, predicted basis: 1.293 Current position: -250 2017-01-09 10:31:00 Current basis: 1.311, predicted basis: 1.293 Current position: -250 2017-01-09 10:32:00 Current basis: 1.311, predicted basis: 1.293 Current position: -250 2017-01-09 10:33:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:34:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:35:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:36:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:37:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:38:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:39:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:40:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:41:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:42:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:43:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:44:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:45:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:46:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:47:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:48:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:49:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:50:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:51:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:52:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:53:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:54:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:55:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:56:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:57:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:58:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 10:59:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:00:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:01:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:02:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:03:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:04:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:05:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:06:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:07:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:08:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:09:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:10:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:11:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:12:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:13:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:14:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:15:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:16:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:17:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:18:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:19:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:20:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:21:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:22:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:23:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:24:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:25:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:26:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:27:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:28:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:29:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:30:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:31:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:32:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:33:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:34:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:35:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:36:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:37:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:38:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:39:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:40:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:41:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:42:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:43:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:44:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:45:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:46:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:47:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:48:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:49:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:50:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:51:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:52:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:53:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:54:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:55:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:56:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:57:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:58:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 11:59:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:00:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:01:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:02:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:03:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:04:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:05:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:06:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:07:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:08:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:09:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:10:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:11:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:12:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:13:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:14:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:15:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:16:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:17:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:18:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:19:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:20:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:21:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:22:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:23:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:24:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:25:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:26:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:27:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:28:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:29:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:30:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:31:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:32:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:33:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:34:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:35:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:36:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:37:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:38:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:39:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:40:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:41:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:42:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:43:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:44:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:45:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:46:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:47:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:48:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:49:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:50:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:51:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:52:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:53:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:54:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:55:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:56:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:57:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:58:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 12:59:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:00:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:01:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:02:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:03:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:04:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:05:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:06:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:07:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:08:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:09:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:10:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:11:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:12:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:13:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:14:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:15:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:16:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:17:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:18:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:19:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:20:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:21:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:22:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:23:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:24:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:25:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:26:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:27:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:28:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:29:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:30:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:31:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:32:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:33:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:34:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:35:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:36:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:37:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:38:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:39:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:40:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:41:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:42:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:43:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:44:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:45:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:46:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:47:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:48:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:49:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:50:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:51:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:52:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:53:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:54:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:55:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:56:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:57:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:58:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 13:59:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:00:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:01:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:02:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:03:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:04:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:05:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:06:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:07:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:08:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:09:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:10:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:11:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:12:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:13:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:14:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:15:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:16:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:17:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:18:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:19:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:20:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:21:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:22:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:23:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:24:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:25:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:26:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:27:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:28:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:29:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:30:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:31:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:32:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:33:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:34:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:35:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:36:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:37:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:38:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:39:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:40:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:41:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:42:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:43:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:44:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:45:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:46:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:47:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:48:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:49:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:50:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:51:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:52:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:53:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:54:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:55:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:56:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:57:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:58:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 14:59:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:00:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:01:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:02:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:03:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:04:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:05:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:06:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:07:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:08:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:09:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:10:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:11:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:12:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:13:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:14:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:15:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:16:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:17:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:18:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:19:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:20:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:21:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:22:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:23:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:24:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:25:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:26:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:27:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:28:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:29:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-09 15:30:00 Current basis: 1.311, predicted basis: 1.292 Current position: -250 2017-01-10 09:30:00 Current basis: 0.103, predicted basis: 0.503 Current position: -250 2017-01-10 09:31:00 Current basis: 0.566, predicted basis: 0.684 Current position: -250 2017-01-10 09:32:00 Current basis: 0.687, predicted basis: 0.745 Current position: -250 2017-01-10 09:33:00 Current basis: 0.243, predicted basis: 0.428 Current position: -250 2017-01-10 09:34:00 Current basis: 0.246, predicted basis: 0.362 Current position: -250 2017-01-10 09:35:00 Current basis: 0.377, predicted basis: 0.421 Current position: -250 2017-01-10 09:36:00 Current basis: 0.355, predicted basis: 0.396 Current position: -250 2017-01-10 09:37:00 Current basis: 0.453, predicted basis: 0.444 Current position: -250 2017-01-10 09:38:00 Current basis: 0.302, predicted basis: 0.365 Current position: -250 2017-01-10 09:39:00 Current basis: 0.273, predicted basis: 0.364 Current position: -250 2017-01-10 09:40:00 Current basis: 0.344, predicted basis: 0.366 Current position: -250 2017-01-10 09:41:00 Current basis: 0.589, predicted basis: 0.552 Current position: -250 2017-01-10 09:42:00 Current basis: 0.387, predicted basis: 0.451 Current position: -250 2017-01-10 09:43:00 Current basis: 0.313, predicted basis: 0.411 Current position: -250 2017-01-10 09:44:00 Current basis: 0.640, predicted basis: 0.601 Current position: -250 2017-01-10 09:45:00 Current basis: 0.717, predicted basis: 0.669 Current position: -250 2017-01-10 09:46:00 Current basis: 0.568, predicted basis: 0.587 Current position: -250 2017-01-10 09:47:00 Current basis: 0.495, predicted basis: 0.557 Current position: -250 2017-01-10 09:48:00 Current basis: 0.499, predicted basis: 0.560 Current position: -250 2017-01-10 09:49:00 Current basis: 0.500, predicted basis: 0.543 Current position: -250 2017-01-10 09:50:00 Current basis: 0.526, predicted basis: 0.550 Current position: -250 2017-01-10 09:51:00 Current basis: 0.424, predicted basis: 0.482 Current position: -250 2017-01-10 09:52:00 Current basis: 0.322, predicted basis: 0.411 Current position: -250 2017-01-10 09:53:00 Current basis: 0.522, predicted basis: 0.516 Current position: -250 2017-01-10 09:54:00 Current basis: 0.496, predicted basis: 0.507 Current position: -250 2017-01-10 09:55:00 Current basis: 0.446, predicted basis: 0.472 Current position: -250 2017-01-10 09:56:00 Current basis: 0.596, predicted basis: 0.559 Current position: -250 2017-01-10 09:57:00 Current basis: 0.722, predicted basis: 0.669 Current position: -250 2017-01-10 09:58:00 Current basis: 0.674, predicted basis: 0.665 Current position: -250 2017-01-10 09:59:00 Current basis: 0.799, predicted basis: 0.749 Current position: -250 2017-01-10 10:00:00 Current basis: 0.946, predicted basis: 0.869 Current position: -250 2017-01-10 10:01:00 Current basis: 0.620, predicted basis: 0.702 Current position: -250 2017-01-10 10:02:00 Current basis: 0.691, predicted basis: 0.706 Current position: -250 2017-01-10 10:03:00 Current basis: 0.665, predicted basis: 0.691 Current position: -250 2017-01-10 10:04:00 Current basis: 0.814, predicted basis: 0.767 Current position: -250 2017-01-10 10:05:00 Current basis: 0.864, predicted basis: 0.807 Current position: -250 2017-01-10 10:06:00 Current basis: 0.739, predicted basis: 0.736 Current position: -250 2017-01-10 10:07:00 Current basis: 0.765, predicted basis: 0.762 Current position: -250 2017-01-10 10:08:00 Current basis: 0.791, predicted basis: 0.769 Current position: -250 2017-01-10 10:09:00 Current basis: 0.767, predicted basis: 0.759 Current position: -250 2017-01-10 10:10:00 Current basis: 0.915, predicted basis: 0.866 Current position: -250 2017-01-10 10:11:00 Current basis: 0.989, predicted basis: 0.924 Current position: -250 2017-01-10 10:12:00 Current basis: 0.793, predicted basis: 0.806 Current position: -250 2017-01-10 10:13:00 Current basis: 0.740, predicted basis: 0.755 Current position: -250 2017-01-10 10:14:00 Current basis: 0.989, predicted basis: 0.909 Current position: -250 2017-01-10 10:15:00 Current basis: 0.716, predicted basis: 0.761 Current position: -250 2017-01-10 10:16:00 Current basis: 0.839, predicted basis: 0.870 Current position: -250 2017-01-10 10:17:00 Current basis: 1.154, predicted basis: 1.056 Current position: -250 2017-01-10 10:18:00 Current basis: 0.831, predicted basis: 0.883 Current position: -250 2017-01-10 10:19:00 Current basis: 0.702, predicted basis: 0.721 Current position: -250 2017-01-10 10:20:00 Current basis: 1.125, predicted basis: 0.982 Current position: -250 2017-01-10 10:21:00 Current basis: 1.196, predicted basis: 1.087 Current position: -250 2017-01-10 10:22:00 Current basis: 1.003, predicted basis: 0.965 Current position: -250 2017-01-10 10:23:00 Current basis: 1.230, predicted basis: 1.133 Current position: -250 2017-01-10 10:24:00 Current basis: 1.397, predicted basis: 1.258 Current position: -250 2017-01-10 10:25:00 Current basis: 1.148, predicted basis: 1.105 Current position: -250 2017-01-10 10:26:00 Current basis: 1.295, predicted basis: 1.169 Current position: -250 2017-01-10 10:27:00 Current basis: 1.246, predicted basis: 1.149 Current position: -250 2017-01-10 10:28:00 Current basis: 1.194, predicted basis: 1.119 Current position: -250 2017-01-10 10:29:00 Current basis: 1.144, predicted basis: 1.064 Current position: -250 2017-01-10 10:30:00 Current basis: 0.943, predicted basis: 0.942 Current position: -250 2017-01-10 10:31:00 Current basis: 0.743, predicted basis: 0.871 Current position: -250 2017-01-10 10:32:00 Current basis: 0.920, predicted basis: 0.838 Current position: -250 2017-01-10 10:33:00 Current basis: 1.044, predicted basis: 0.931 Current position: -250 2017-01-10 10:34:00 Current basis: 1.044, predicted basis: 0.930 Current position: -250 2017-01-10 10:35:00 Current basis: 0.945, predicted basis: 0.892 Current position: -250 2017-01-10 10:36:00 Current basis: 0.920, predicted basis: 0.864 Current position: -250 2017-01-10 10:37:00 Current basis: 1.218, predicted basis: 1.066 Current position: -250 2017-01-10 10:38:00 Current basis: 1.144, predicted basis: 1.044 Current position: -250 2017-01-10 10:39:00 Current basis: 1.044, predicted basis: 0.987 Current position: -250 2017-01-10 10:40:00 Current basis: 0.970, predicted basis: 0.920 Current position: -250 2017-01-10 10:41:00 Current basis: 0.871, predicted basis: 0.819 Current position: -250 2017-01-10 10:42:00 Current basis: 0.870, predicted basis: 0.821 Current position: -250 2017-01-10 10:43:00 Current basis: 1.069, predicted basis: 0.952 Current position: -250 2017-01-10 10:44:00 Current basis: 0.920, predicted basis: 0.869 Current position: -250 2017-01-10 10:45:00 Current basis: 0.995, predicted basis: 0.895 Current position: -250 2017-01-10 10:46:00 Current basis: 1.095, predicted basis: 0.963 Current position: -250 2017-01-10 10:47:00 Current basis: 1.020, predicted basis: 0.936 Current position: -250 2017-01-10 10:48:00 Current basis: 1.097, predicted basis: 1.035 Current position: -250 2017-01-10 10:49:00 Current basis: 1.175, predicted basis: 1.106 Current position: -250 2017-01-10 10:50:00 Current basis: 0.557, predicted basis: 0.711 Current position: -250 2017-01-10 10:51:00 Current basis: 0.680, predicted basis: 0.732 Current position: -250 2017-01-10 10:52:00 Current basis: 0.706, predicted basis: 0.723 Current position: -250 2017-01-10 10:53:00 Current basis: 0.853, predicted basis: 0.832 Current position: -250 2017-01-10 10:54:00 Current basis: 0.852, predicted basis: 0.832 Current position: -250 2017-01-10 10:55:00 Current basis: 0.827, predicted basis: 0.829 Current position: -250 2017-01-10 10:56:00 Current basis: 0.727, predicted basis: 0.773 Current position: -250 2017-01-10 10:57:00 Current basis: 0.702, predicted basis: 0.740 Current position: -250 2017-01-10 10:58:00 Current basis: 0.627, predicted basis: 0.664 Current position: -250 2017-01-10 10:59:00 Current basis: 0.926, predicted basis: 0.882 Current position: -250 2017-01-10 11:00:00 Current basis: 0.976, predicted basis: 0.920 Current position: -250 2017-01-10 11:01:00 Current basis: 1.150, predicted basis: 1.066 Current position: -250 2017-01-10 11:02:00 Current basis: 1.151, predicted basis: 1.075 Current position: -250 2017-01-10 11:03:00 Current basis: 1.222, predicted basis: 1.141 Current position: -250 2017-01-10 11:04:00 Current basis: 1.171, predicted basis: 1.123 Current position: -250 2017-01-10 11:05:00 Current basis: 1.198, predicted basis: 1.154 Current position: -250 2017-01-10 11:06:00 Current basis: 1.172, predicted basis: 1.156 Current position: -250 2017-01-10 11:07:00 Current basis: 1.072, predicted basis: 1.087 Current position: -250 2017-01-10 11:08:00 Current basis: 1.046, predicted basis: 1.049 Current position: -250 2017-01-10 11:09:00 Current basis: 1.096, predicted basis: 1.076 Current position: -250 2017-01-10 11:10:00 Current basis: 0.944, predicted basis: 1.003 Current position: -250 2017-01-10 11:11:00 Current basis: 1.029, predicted basis: 1.016 Current position: -250 2017-01-10 11:12:00 Current basis: 1.083, predicted basis: 1.044 Current position: -250 2017-01-10 11:13:00 Current basis: 1.006, predicted basis: 1.032 Current position: -250 2017-01-10 11:14:00 Current basis: 1.279, predicted basis: 1.211 Current position: -250 2017-01-10 11:15:00 Current basis: 1.230, predicted basis: 1.192 Current position: -250 2017-01-10 11:16:00 Current basis: 1.230, predicted basis: 1.197 Current position: -250 2017-01-10 11:17:00 Current basis: 0.912, predicted basis: 0.978 Current position: -250 2017-01-10 11:18:00 Current basis: 1.158, predicted basis: 1.125 Current position: -250 2017-01-10 11:19:00 Current basis: 1.032, predicted basis: 1.058 Current position: -250 2017-01-10 11:20:00 Current basis: 1.236, predicted basis: 1.169 Current position: -250 2017-01-10 11:21:00 Current basis: 1.088, predicted basis: 1.088 Current position: -250 2017-01-10 11:22:00 Current basis: 1.139, predicted basis: 1.112 Current position: -250 2017-01-10 11:23:00 Current basis: 0.865, predicted basis: 0.911 Current position: -250 2017-01-10 11:24:00 Current basis: 0.791, predicted basis: 0.846 Current position: -250 2017-01-10 11:25:00 Current basis: 0.415, predicted basis: 0.602 Current position: -250 2017-01-10 11:26:00 Current basis: 0.564, predicted basis: 0.658 Current position: -250 2017-01-10 11:27:00 Current basis: 0.615, predicted basis: 0.666 Current position: -250 2017-01-10 11:28:00 Current basis: 0.562, predicted basis: 0.614 Current position: -250 2017-01-10 11:29:00 Current basis: 0.737, predicted basis: 0.713 Current position: -250 2017-01-10 11:30:00 Current basis: 0.861, predicted basis: 0.820 Current position: -250 2017-01-10 11:31:00 Current basis: 0.858, predicted basis: 0.844 Current position: -250 2017-01-10 11:32:00 Current basis: 0.684, predicted basis: 0.734 Current position: -250 2017-01-10 11:33:00 Current basis: 0.808, predicted basis: 0.801 Current position: -250 2017-01-10 11:34:00 Current basis: 0.759, predicted basis: 0.802 Current position: -250 2017-01-10 11:35:00 Current basis: 0.983, predicted basis: 0.941 Current position: -250 2017-01-10 11:36:00 Current basis: 1.006, predicted basis: 0.992 Current position: -250 2017-01-10 11:37:00 Current basis: 1.257, predicted basis: 1.152 Current position: -250 2017-01-10 11:38:00 Current basis: 1.182, predicted basis: 1.124 Current position: -250 2017-01-10 11:39:00 Current basis: 1.107, predicted basis: 1.090 Current position: -250 2017-01-10 11:40:00 Current basis: 1.182, predicted basis: 1.139 Current position: -250 2017-01-10 11:41:00 Current basis: 0.932, predicted basis: 0.993 Current position: -250 2017-01-10 11:42:00 Current basis: 0.901, predicted basis: 0.970 Current position: -250 2017-01-10 11:43:00 Current basis: 0.529, predicted basis: 0.695 Current position: -250 2017-01-10 11:44:00 Current basis: 0.828, predicted basis: 0.851 Current position: -250 2017-01-10 11:45:00 Current basis: 1.422, predicted basis: 1.288 Current position: -250 2017-01-10 11:46:00 Current basis: 1.615, predicted basis: 1.410 Current position: -250 2017-01-10 11:47:00 Current basis: 1.036, predicted basis: 1.085 Current position: -250 2017-01-10 11:48:00 Current basis: 0.236, predicted basis: 0.535 Current position: -250 2017-01-10 11:49:00 Current basis: 0.590, predicted basis: 0.651 Current position: -250 2017-01-10 11:50:00 Current basis: 0.241, predicted basis: 0.403 Current position: -250 2017-01-10 11:51:00 Current basis: -0.305, predicted basis: -0.005 Current position: -250 2017-01-10 11:52:00 Current basis: -0.354, predicted basis: -0.096 Current position: -250 2017-01-10 11:53:00 Current basis: -0.500, predicted basis: -0.274 Current position: -240 2017-01-10 11:54:00 Current basis: -0.501, predicted basis: -0.355 Current position: -240 2017-01-10 11:55:00 Current basis: -0.552, predicted basis: -0.433 Current position: -250 2017-01-10 11:56:00 Current basis: -0.479, predicted basis: -0.367 Current position: -250 2017-01-10 11:57:00 Current basis: -0.430, predicted basis: -0.332 Current position: -250 2017-01-10 11:58:00 Current basis: -0.354, predicted basis: -0.305 Current position: -250 2017-01-10 11:59:00 Current basis: -0.402, predicted basis: -0.313 Current position: -250 2017-01-10 12:00:00 Current basis: -0.452, predicted basis: -0.354 Current position: -250 2017-01-10 12:01:00 Current basis: -0.476, predicted basis: -0.365 Current position: -250 2017-01-10 12:02:00 Current basis: -0.300, predicted basis: -0.279 Current position: -250 2017-01-10 12:03:00 Current basis: -0.273, predicted basis: -0.224 Current position: -250 2017-01-10 12:04:00 Current basis: -0.172, predicted basis: -0.153 Current position: -250 2017-01-10 12:05:00 Current basis: -0.222, predicted basis: -0.170 Current position: -250 2017-01-10 12:06:00 Current basis: -0.274, predicted basis: -0.209 Current position: -250 2017-01-10 12:07:00 Current basis: -0.572, predicted basis: -0.416 Current position: -250 2017-01-10 12:08:00 Current basis: -0.445, predicted basis: -0.350 Current position: -250 2017-01-10 12:09:00 Current basis: -0.296, predicted basis: -0.285 Current position: -250 2017-01-10 12:10:00 Current basis: -0.371, predicted basis: -0.334 Current position: -250 2017-01-10 12:11:00 Current basis: -0.398, predicted basis: -0.309 Current position: -250 2017-01-10 12:12:00 Current basis: -0.448, predicted basis: -0.357 Current position: -250 2017-01-10 12:13:00 Current basis: -0.325, predicted basis: -0.287 Current position: -250 2017-01-10 12:14:00 Current basis: -0.275, predicted basis: -0.268 Current position: -250 2017-01-10 12:15:00 Current basis: -0.125, predicted basis: -0.145 Current position: -250 2017-01-10 12:16:00 Current basis: -0.079, predicted basis: -0.084 Current position: -250 2017-01-10 12:17:00 Current basis: 0.047, predicted basis: 0.008 Current position: -250 2017-01-10 12:18:00 Current basis: 0.243, predicted basis: 0.145 Current position: -250 2017-01-10 12:19:00 Current basis: 0.195, predicted basis: 0.150 Current position: -240 2017-01-10 12:20:00 Current basis: 0.295, predicted basis: 0.244 Current position: -250 2017-01-10 12:21:00 Current basis: 0.272, predicted basis: 0.259 Current position: -250 2017-01-10 12:22:00 Current basis: 0.050, predicted basis: 0.127 Current position: -250 2017-01-10 12:23:00 Current basis: -0.100, predicted basis: -0.007 Current position: -250 2017-01-10 12:24:00 Current basis: -0.075, predicted basis: -0.032 Current position: -250 2017-01-10 12:25:00 Current basis: -0.148, predicted basis: -0.104 Current position: -240 2017-01-10 12:26:00 Current basis: -0.320, predicted basis: -0.245 Current position: -240 2017-01-10 12:27:00 Current basis: -0.171, predicted basis: -0.180 Current position: -250 2017-01-10 12:28:00 Current basis: -0.221, predicted basis: -0.200 Current position: -250 2017-01-10 12:29:00 Current basis: -0.071, predicted basis: -0.122 Current position: -250 2017-01-10 12:30:00 Current basis: -0.419, predicted basis: -0.333 Current position: -250 2017-01-10 12:31:00 Current basis: -0.369, predicted basis: -0.335 Current position: -250 2017-01-10 12:32:00 Current basis: -0.273, predicted basis: -0.253 Current position: -250 2017-01-10 12:33:00 Current basis: -0.074, predicted basis: -0.130 Current position: -250 2017-01-10 12:34:00 Current basis: -0.074, predicted basis: -0.109 Current position: -250 2017-01-10 12:35:00 Current basis: 0.026, predicted basis: -0.041 Current position: -250 2017-01-10 12:36:00 Current basis: -0.149, predicted basis: -0.118 Current position: -250 2017-01-10 12:37:00 Current basis: -0.124, predicted basis: -0.109 Current position: -250 2017-01-10 12:38:00 Current basis: 0.175, predicted basis: 0.067 Current position: -250 2017-01-10 12:39:00 Current basis: 0.347, predicted basis: 0.241 Current position: -250 2017-01-10 12:40:00 Current basis: 0.296, predicted basis: 0.240 Current position: -250 2017-01-10 12:41:00 Current basis: -0.075, predicted basis: 0.007 Current position: -250 2017-01-10 12:42:00 Current basis: -0.200, predicted basis: -0.095 Current position: -250 2017-01-10 12:43:00 Current basis: -0.124, predicted basis: -0.104 Current position: -240 2017-01-10 12:44:00 Current basis: -0.323, predicted basis: -0.229 Current position: -240 2017-01-10 12:45:00 Current basis: -0.274, predicted basis: -0.194 Current position: -250 2017-01-10 12:46:00 Current basis: -0.201, predicted basis: -0.167 Current position: -250 2017-01-10 12:47:00 Current basis: -0.178, predicted basis: -0.174 Current position: -250 2017-01-10 12:48:00 Current basis: -0.052, predicted basis: -0.093 Current position: -250 2017-01-10 12:49:00 Current basis: 0.022, predicted basis: -0.015 Current position: -250 2017-01-10 12:50:00 Current basis: 0.048, predicted basis: 0.012 Current position: -250 2017-01-10 12:51:00 Current basis: -0.075, predicted basis: -0.060 Current position: -250 2017-01-10 12:52:00 Current basis: -0.029, predicted basis: -0.034 Current position: -250 2017-01-10 12:53:00 Current basis: 0.222, predicted basis: 0.138 Current position: -250 2017-01-10 12:54:00 Current basis: 0.123, predicted basis: 0.093 Current position: -250 2017-01-10 12:55:00 Current basis: -0.351, predicted basis: -0.208 Current position: -250 2017-01-10 12:56:00 Current basis: -0.176, predicted basis: -0.136 Current position: -250 2017-01-10 12:57:00 Current basis: -0.275, predicted basis: -0.205 Current position: -250 2017-01-10 12:58:00 Current basis: -0.325, predicted basis: -0.251 Current position: -250 2017-01-10 12:59:00 Current basis: -0.300, predicted basis: -0.250 Current position: -250 2017-01-10 13:00:00 Current basis: -0.199, predicted basis: -0.191 Current position: -250 2017-01-10 13:01:00 Current basis: -0.074, predicted basis: -0.106 Current position: -250 2017-01-10 13:02:00 Current basis: -0.224, predicted basis: -0.205 Current position: -250 2017-01-10 13:03:00 Current basis: -0.244, predicted basis: -0.226 Current position: -250 2017-01-10 13:04:00 Current basis: -0.195, predicted basis: -0.190 Current position: -250 2017-01-10 13:05:00 Current basis: -0.019, predicted basis: -0.074 Current position: -250 2017-01-10 13:06:00 Current basis: 0.006, predicted basis: -0.033 Current position: -250 2017-01-10 13:07:00 Current basis: -0.070, predicted basis: -0.062 Current position: -250 2017-01-10 13:08:00 Current basis: -0.094, predicted basis: -0.082 Current position: -250 2017-01-10 13:09:00 Current basis: -0.020, predicted basis: -0.031 Current position: -250 2017-01-10 13:10:00 Current basis: 0.077, predicted basis: 0.029 Current position: -250 2017-01-10 13:11:00 Current basis: -0.076, predicted basis: -0.043 Current position: -250 2017-01-10 13:12:00 Current basis: 0.274, predicted basis: 0.183 Current position: -250 2017-01-10 13:13:00 Current basis: 0.275, predicted basis: 0.206 Current position: -250 2017-01-10 13:14:00 Current basis: 0.324, predicted basis: 0.243 Current position: -250 2017-01-10 13:15:00 Current basis: 0.250, predicted basis: 0.222 Current position: -250 2017-01-10 13:16:00 Current basis: 0.150, predicted basis: 0.161 Current position: -250 2017-01-10 13:17:00 Current basis: -0.025, predicted basis: 0.043 Current position: -250 2017-01-10 13:18:00 Current basis: -0.076, predicted basis: -0.016 Current position: -250 2017-01-10 13:19:00 Current basis: -0.126, predicted basis: -0.067 Current position: -250 2017-01-10 13:20:00 Current basis: -0.051, predicted basis: -0.031 Current position: -250 2017-01-10 13:21:00 Current basis: -0.125, predicted basis: -0.100 Current position: -250 2017-01-10 13:22:00 Current basis: -0.200, predicted basis: -0.156 Current position: -250 2017-01-10 13:23:00 Current basis: -0.150, predicted basis: -0.142 Current position: -250 2017-01-10 13:24:00 Current basis: -0.251, predicted basis: -0.207 Current position: -250 2017-01-10 13:25:00 Current basis: -0.351, predicted basis: -0.282 Current position: -250 2017-01-10 13:26:00 Current basis: -0.401, predicted basis: -0.327 Current position: -250 2017-01-10 13:27:00 Current basis: -0.226, predicted basis: -0.215 Current position: -250 2017-01-10 13:28:00 Current basis: -0.176, predicted basis: -0.190 Current position: -250 2017-01-10 13:29:00 Current basis: -0.351, predicted basis: -0.298 Current position: -250 2017-01-10 13:30:00 Current basis: -0.400, predicted basis: -0.341 Current position: -250 2017-01-10 13:31:00 Current basis: -0.375, predicted basis: -0.335 Current position: -250 2017-01-10 13:32:00 Current basis: -0.300, predicted basis: -0.293 Current position: -250 2017-01-10 13:33:00 Current basis: -0.300, predicted basis: -0.290 Current position: -250 2017-01-10 13:34:00 Current basis: -0.125, predicted basis: -0.160 Current position: -250 2017-01-10 13:35:00 Current basis: -0.201, predicted basis: -0.199 Current position: -250 2017-01-10 13:36:00 Current basis: -0.225, predicted basis: -0.220 Current position: -250 2017-01-10 13:37:00 Current basis: -0.300, predicted basis: -0.256 Current position: -250 2017-01-10 13:38:00 Current basis: -0.600, predicted basis: -0.460 Current position: -250 2017-01-10 13:39:00 Current basis: -0.450, predicted basis: -0.389 Current position: -250 2017-01-10 13:40:00 Current basis: -0.401, predicted basis: -0.366 Current position: -250 2017-01-10 13:41:00 Current basis: -0.127, predicted basis: -0.178 Current position: -250 2017-01-10 13:42:00 Current basis: 0.121, predicted basis: 0.009 Current position: -250 2017-01-10 13:43:00 Current basis: -0.156, predicted basis: -0.150 Current position: -250 2017-01-10 13:44:00 Current basis: -0.236, predicted basis: -0.188 Current position: -240 2017-01-10 13:45:00 Current basis: 0.038, predicted basis: -0.040 Current position: -250 2017-01-10 13:46:00 Current basis: -0.062, predicted basis: -0.051 Current position: -250 2017-01-10 13:47:00 Current basis: -0.388, predicted basis: -0.260 Current position: -250 2017-01-10 13:48:00 Current basis: 0.057, predicted basis: 0.023 Current position: -250 2017-01-10 13:49:00 Current basis: 0.260, predicted basis: 0.140 Current position: -250 2017-01-10 13:50:00 Current basis: -0.189, predicted basis: -0.119 Current position: -250 2017-01-10 13:51:00 Current basis: -0.163, predicted basis: -0.130 Current position: -250 2017-01-10 13:52:00 Current basis: -0.064, predicted basis: -0.072 Current position: -250 2017-01-10 13:53:00 Current basis: -0.138, predicted basis: -0.116 Current position: -250 2017-01-10 13:54:00 Current basis: -0.263, predicted basis: -0.219 Current position: -250 2017-01-10 13:55:00 Current basis: -0.238, predicted basis: -0.194 Current position: -250 2017-01-10 13:56:00 Current basis: -0.063, predicted basis: -0.087 Current position: -250 2017-01-10 13:57:00 Current basis: -0.163, predicted basis: -0.155 Current position: -250 2017-01-10 13:58:00 Current basis: -0.113, predicted basis: -0.122 Current position: -250 2017-01-10 13:59:00 Current basis: -0.366, predicted basis: -0.227 Current position: -250 2017-01-10 14:00:00 Current basis: -0.215, predicted basis: -0.206 Current position: -250 2017-01-10 14:01:00 Current basis: -0.218, predicted basis: -0.174 Current position: -250 2017-01-10 14:02:00 Current basis: 0.401, predicted basis: 0.196 Current position: -250 2017-01-10 14:03:00 Current basis: 0.397, predicted basis: 0.262 Current position: -250 2017-01-10 14:04:00 Current basis: 0.494, predicted basis: 0.395 Current position: -250 2017-01-10 14:05:00 Current basis: 0.737, predicted basis: 0.602 Current position: -250 2017-01-10 14:06:00 Current basis: 0.566, predicted basis: 0.485 Current position: -250 2017-01-10 14:07:00 Current basis: 0.569, predicted basis: 0.513 Current position: -250 2017-01-10 14:08:00 Current basis: 0.444, predicted basis: 0.435 Current position: -250 2017-01-10 14:09:00 Current basis: 0.469, predicted basis: 0.446 Current position: -250 2017-01-10 14:10:00 Current basis: 0.671, predicted basis: 0.601 Current position: -250 2017-01-10 14:11:00 Current basis: 0.618, predicted basis: 0.563 Current position: -250 2017-01-10 14:12:00 Current basis: 0.762, predicted basis: 0.690 Current position: -250 2017-01-10 14:13:00 Current basis: 0.767, predicted basis: 0.677 Current position: -250 2017-01-10 14:14:00 Current basis: 0.392, predicted basis: 0.423 Current position: -250 2017-01-10 14:15:00 Current basis: 0.566, predicted basis: 0.526 Current position: -250 2017-01-10 14:16:00 Current basis: 0.791, predicted basis: 0.685 Current position: -250 2017-01-10 14:17:00 Current basis: 0.641, predicted basis: 0.625 Current position: -250 2017-01-10 14:18:00 Current basis: 0.572, predicted basis: 0.536 Current position: -250 2017-01-10 14:19:00 Current basis: 0.324, predicted basis: 0.365 Current position: -250 2017-01-10 14:20:00 Current basis: 0.275, predicted basis: 0.314 Current position: -250 2017-01-10 14:21:00 Current basis: 0.548, predicted basis: 0.479 Current position: -250 2017-01-10 14:22:00 Current basis: 0.742, predicted basis: 0.615 Current position: -250 2017-01-10 14:23:00 Current basis: 0.393, predicted basis: 0.420 Current position: -250 2017-01-10 14:24:00 Current basis: 0.744, predicted basis: 0.627 Current position: -250 2017-01-10 14:25:00 Current basis: 0.473, predicted basis: 0.480 Current position: -250 2017-01-10 14:26:00 Current basis: 0.525, predicted basis: 0.500 Current position: -250 2017-01-10 14:27:00 Current basis: 0.901, predicted basis: 0.729 Current position: -250 2017-01-10 14:28:00 Current basis: 0.601, predicted basis: 0.608 Current position: -250 2017-01-10 14:29:00 Current basis: 0.697, predicted basis: 0.657 Current position: -250 2017-01-10 14:30:00 Current basis: 0.922, predicted basis: 0.804 Current position: -250 2017-01-10 14:31:00 Current basis: 0.747, predicted basis: 0.710 Current position: -250 2017-01-10 14:32:00 Current basis: 0.897, predicted basis: 0.818 Current position: -250 2017-01-10 14:33:00 Current basis: 1.069, predicted basis: 0.920 Current position: -250 2017-01-10 14:34:00 Current basis: 1.017, predicted basis: 0.915 Current position: -250 2017-01-10 14:35:00 Current basis: 1.018, predicted basis: 0.913 Current position: -250 2017-01-10 14:36:00 Current basis: 1.019, predicted basis: 0.907 Current position: -250 2017-01-10 14:37:00 Current basis: 0.821, predicted basis: 0.812 Current position: -250 2017-01-10 14:38:00 Current basis: 0.845, predicted basis: 0.822 Current position: -250 2017-01-10 14:39:00 Current basis: 0.646, predicted basis: 0.678 Current position: -250 2017-01-10 14:40:00 Current basis: 0.823, predicted basis: 0.787 Current position: -250 2017-01-10 14:41:00 Current basis: 0.846, predicted basis: 0.800 Current position: -250 2017-01-10 14:42:00 Current basis: 1.075, predicted basis: 0.945 Current position: -250 2017-01-10 14:43:00 Current basis: 0.851, predicted basis: 0.835 Current position: -250 2017-01-10 14:44:00 Current basis: 1.123, predicted basis: 1.015 Current position: -250 2017-01-10 14:45:00 Current basis: 1.421, predicted basis: 1.237 Current position: -250 2017-01-10 14:46:00 Current basis: 1.369, predicted basis: 1.249 Current position: -250 2017-01-10 14:47:00 Current basis: 1.668, predicted basis: 1.483 Current position: -250 2017-01-10 14:48:00 Current basis: 1.514, predicted basis: 1.413 Current position: -250 2017-01-10 14:49:00 Current basis: 0.010, predicted basis: 0.456 Current position: -250 2017-01-10 14:50:00 Current basis: 0.189, predicted basis: 0.405 Current position: -250 2017-01-10 14:51:00 Current basis: -0.417, predicted basis: -0.011 Current position: -250 2017-01-10 14:52:00 Current basis: -0.544, predicted basis: -0.258 Current position: -250 2017-01-10 14:53:00 Current basis: -0.372, predicted basis: -0.163 Current position: -240 2017-01-10 14:54:00 Current basis: -0.148, predicted basis: -0.120 Current position: -240 2017-01-10 14:55:00 Current basis: 0.093, predicted basis: 0.010 Current position: -240 2017-01-10 14:56:00 Current basis: 0.312, predicted basis: 0.213 Current position: -250 2017-01-10 14:57:00 Current basis: 0.414, predicted basis: 0.252 Current position: -240 2017-01-10 14:58:00 Current basis: 0.538, predicted basis: 0.464 Current position: -250 2017-01-10 14:59:00 Current basis: 0.765, predicted basis: 0.630 Current position: -250 2017-01-10 15:00:00 Current basis: 0.857, predicted basis: 0.767 Current position: -250 2017-01-10 15:01:00 Current basis: 0.808, predicted basis: 0.773 Current position: -250 2017-01-10 15:02:00 Current basis: 0.858, predicted basis: 0.849 Current position: -250 2017-01-10 15:03:00 Current basis: 0.907, predicted basis: 0.890 Current position: -250 2017-01-10 15:04:00 Current basis: 0.367, predicted basis: 0.504 Current position: -250 2017-01-10 15:05:00 Current basis: 0.538, predicted basis: 0.608 Current position: -250 2017-01-10 15:06:00 Current basis: 0.713, predicted basis: 0.682 Current position: -250 2017-01-10 15:07:00 Current basis: 1.058, predicted basis: 0.945 Current position: -250 2017-01-10 15:08:00 Current basis: 1.577, predicted basis: 1.325 Current position: -250 2017-01-10 15:09:00 Current basis: 1.424, predicted basis: 1.293 Current position: -250 2017-01-10 15:10:00 Current basis: 0.576, predicted basis: 0.744 Current position: -250 2017-01-10 15:11:00 Current basis: 0.131, predicted basis: 0.427 Current position: -250 2017-01-10 15:12:00 Current basis: -0.016, predicted basis: 0.239 Current position: -250 2017-01-10 15:13:00 Current basis: 0.504, predicted basis: 0.523 Current position: -250 2017-01-10 15:14:00 Current basis: 1.023, predicted basis: 0.899 Current position: -250 2017-01-10 15:15:00 Current basis: 1.222, predicted basis: 1.016 Current position: -250 2017-01-10 15:16:00 Current basis: 1.223, predicted basis: 1.086 Current position: -250 2017-01-10 15:17:00 Current basis: 1.300, predicted basis: 1.143 Current position: -250 2017-01-10 15:18:00 Current basis: 1.080, predicted basis: 1.069 Current position: -250 2017-01-10 15:19:00 Current basis: 0.829, predicted basis: 0.904 Current position: -250 2017-01-10 15:20:00 Current basis: 0.882, predicted basis: 0.904 Current position: -250 2017-01-10 15:21:00 Current basis: 0.683, predicted basis: 0.794 Current position: -250 2017-01-10 15:22:00 Current basis: 0.928, predicted basis: 0.917 Current position: -250 2017-01-10 15:23:00 Current basis: 1.500, predicted basis: 1.272 Current position: -250 2017-01-10 15:24:00 Current basis: 1.251, predicted basis: 1.224 Current position: -250 2017-01-10 15:25:00 Current basis: 1.276, predicted basis: 1.186 Current position: -250 2017-01-10 15:26:00 Current basis: 0.481, predicted basis: 0.681 Current position: -250 2017-01-10 15:27:00 Current basis: -0.387, predicted basis: 0.035 Current position: -250 2017-01-10 15:28:00 Current basis: -0.709, predicted basis: -0.339 Current position: -250 2017-01-10 15:29:00 Current basis: -0.464, predicted basis: -0.195 Current position: -240 2017-01-10 15:30:00 Current basis: -0.464, predicted basis: -0.244 Current position: -240 [Timestamp('2017-01-06 09:30:00'), datetime.datetime(2017, 1, 11, 9, 17)]
You can view the results of this backtest below. The toolbox shows you the Mean squared error (score
), the pnl from trading the strategy as well as other metrics below
results
{'instrument_names': ['MQK'], 'instrument_stats': [{'pnl': {'MQK': 0.10994934999999996}, 'score': {'MQK': 0.07316344660879642}}], 'pnl': 0.10994934999999996, 'trading_days': 3, 'score': 0.07316344660879642, 'total_profit': 12422.779500000002, 'capitalUsage': 1384.2569999999996, 'count_profit': 346, 'capital': 10060.683500000001, 'maxDrawdown': 569.5740000000005, 'maxPortfolioValue': 11158.2935, 'variance': 1582.480531330842, 'count_loss': 355, 'portfolio_value': 11099.4935, 'total_loss': 11323.286000000002}
As expected, there is a loss in performance on test data, the new Mean squared error is 0.07.
You can also view live plots of how the features/prediction/pnl evolves in realtime in tensorboard. Simply type this in your terminal (from the same folder where you have this notebook)
tensorboard --logdir=tb_logs/
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).