From 9e35512221962759da85fddaef5d087264b18813 Mon Sep 17 00:00:00 2001 From: gandharv42 Date: Tue, 17 Jul 2018 19:09:17 +0530 Subject: [PATCH 01/15] Update problem1_template.py --- problem1/problem1_template.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/problem1/problem1_template.py b/problem1/problem1_template.py index aa03626..405e115 100644 --- a/problem1/problem1_template.py +++ b/problem1/problem1_template.py @@ -16,6 +16,10 @@ from sklearn import linear_model from sklearn import metrics as sm from problem1_trading_params import MyTradingParams +try: + from urllib2 import urlopen +except ImportError: + from urllib.request import urlopen ## Make your changes to the functions below. ## SPECIFY the symbols you are modeling for in getSymbolsToTrade() below @@ -31,10 +35,11 @@ class MyTradingFunctions(): def __init__(self): #Put any global variables here self.lookback = 1200 ## max number of historical datapoints you want at any given time self.targetVariable = 'Y' - if datetime.today() < datetime(2018, 7, 3): - self.dataSetId = 'QQ3DataSample' - else: - self.dataSetId = 'QQ3DataDownSampled' + + url = "https://raw.githubusercontent.com/Auquan/data_set_id/master/DataSetId.txt" + response = urlopen(url) + self.dataSetId = response.read().decode('utf8') + self.params = {} # for example you can import and store an ML model from scikit learn in this dict From d8ac4dc9d212d112ace3f0dd526202df0cf73869 Mon Sep 17 00:00:00 2001 From: Shub Jain Date: Tue, 17 Jul 2018 19:19:51 +0100 Subject: [PATCH 02/15] move setting dataset id to trading params --- problem1/problem1_template.py | 10 +--------- problem1/problem1_trading_params.py | 10 +++++++++- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/problem1/problem1_template.py b/problem1/problem1_template.py index 405e115..e6c2c19 100644 --- a/problem1/problem1_template.py +++ b/problem1/problem1_template.py @@ -16,10 +16,6 @@ from sklearn import linear_model from sklearn import metrics as sm from problem1_trading_params import MyTradingParams -try: - from urllib2 import urlopen -except ImportError: - from urllib.request import urlopen ## Make your changes to the functions below. ## SPECIFY the symbols you are modeling for in getSymbolsToTrade() below @@ -35,11 +31,7 @@ class MyTradingFunctions(): def __init__(self): #Put any global variables here self.lookback = 1200 ## max number of historical datapoints you want at any given time self.targetVariable = 'Y' - - url = "https://raw.githubusercontent.com/Auquan/data_set_id/master/DataSetId.txt" - response = urlopen(url) - self.dataSetId = response.read().decode('utf8') - + self.dataSetId = '' self.params = {} # for example you can import and store an ML model from scikit learn in this dict diff --git a/problem1/problem1_trading_params.py b/problem1/problem1_trading_params.py index 00377f7..e379dbf 100644 --- a/problem1/problem1_trading_params.py +++ b/problem1/problem1_trading_params.py @@ -15,6 +15,10 @@ import sys from sklearn import linear_model from sklearn import metrics as sm +try: + from urllib2 import urlopen +except ImportError: + from urllib.request import urlopen ## Make your changes to the functions below. ## SPECIFY the symbols you are modeling for in getSymbolsToTrade() below @@ -32,7 +36,11 @@ class MyTradingParams(TradingSystemParameters): ''' def __init__(self, tradingFunctions): self.__tradingFunctions = tradingFunctions - self.__dataSetId = self.__tradingFunctions.getDataSetId() + + url = "https://raw.githubusercontent.com/Auquan/data_set_id/master/DataSetId.txt" + response = urlopen(url) + self.__dataSetId = response.read().decode('utf8').rstrip() + self.__tradingFunctions.getDataSetId() + self.__instrumentIds = self.__tradingFunctions.getSymbolsToTrade() self.__priceKey = 'F5' self.__additionalInstrumentFeatureConfigDicts = [] From 1bf99105ab8f812123ce3311f7b46c1a8929965f Mon Sep 17 00:00:00 2001 From: Gandharv Srivastava Date: Wed, 18 Jul 2018 12:49:42 +0530 Subject: [PATCH 03/15] Update problem1_trading_params.py --- problem1/problem1_trading_params.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problem1/problem1_trading_params.py b/problem1/problem1_trading_params.py index e379dbf..eab943b 100644 --- a/problem1/problem1_trading_params.py +++ b/problem1/problem1_trading_params.py @@ -39,7 +39,7 @@ def __init__(self, tradingFunctions): url = "https://raw.githubusercontent.com/Auquan/data_set_id/master/DataSetId.txt" response = urlopen(url) - self.__dataSetId = response.read().decode('utf8').rstrip() + self.__tradingFunctions.getDataSetId() + self.__dataSetId = response.read().decode('utf8').rstrip() self.__instrumentIds = self.__tradingFunctions.getSymbolsToTrade() self.__priceKey = 'F5' From fd75f201ef86990a50a5189c20f1a2ba89ecc53d Mon Sep 17 00:00:00 2001 From: Gandharv Srivastava Date: Wed, 18 Jul 2018 13:04:31 +0530 Subject: [PATCH 04/15] Update problem1_template.py --- problem1/problem1_template.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problem1/problem1_template.py b/problem1/problem1_template.py index e6c2c19..5faa372 100644 --- a/problem1/problem1_template.py +++ b/problem1/problem1_template.py @@ -201,7 +201,7 @@ def getPrediction(self, time, updateNum, instrumentManager,predictions): def getLookbackSize(self): return self.lookback - def getDataSetId(self): + def getDataSetIdTemp(self): return self.dataSetId def getTargetVariableKey(self): From 367bd64df1e74dedd73f374d37c439ce54f1f032 Mon Sep 17 00:00:00 2001 From: Gandharv Srivastava Date: Wed, 18 Jul 2018 13:05:05 +0530 Subject: [PATCH 05/15] Update problem1_trading_params.py --- problem1/problem1_trading_params.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problem1/problem1_trading_params.py b/problem1/problem1_trading_params.py index eab943b..99731f0 100644 --- a/problem1/problem1_trading_params.py +++ b/problem1/problem1_trading_params.py @@ -39,7 +39,7 @@ def __init__(self, tradingFunctions): url = "https://raw.githubusercontent.com/Auquan/data_set_id/master/DataSetId.txt" response = urlopen(url) - self.__dataSetId = response.read().decode('utf8').rstrip() + self.__dataSetId = response.read().decode('utf8').rstrip() + self.__tradingFunctions.getDataSetIdTemp() self.__instrumentIds = self.__tradingFunctions.getSymbolsToTrade() self.__priceKey = 'F5' From f95119c578f49af965969f676f83709c52c368cc Mon Sep 17 00:00:00 2001 From: Gandharv Srivastava Date: Wed, 18 Jul 2018 14:37:30 +0530 Subject: [PATCH 06/15] Update problem1_trading_params.py --- problem1/problem1_trading_params.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problem1/problem1_trading_params.py b/problem1/problem1_trading_params.py index 99731f0..e379dbf 100644 --- a/problem1/problem1_trading_params.py +++ b/problem1/problem1_trading_params.py @@ -39,7 +39,7 @@ def __init__(self, tradingFunctions): url = "https://raw.githubusercontent.com/Auquan/data_set_id/master/DataSetId.txt" response = urlopen(url) - self.__dataSetId = response.read().decode('utf8').rstrip() + self.__tradingFunctions.getDataSetIdTemp() + self.__dataSetId = response.read().decode('utf8').rstrip() + self.__tradingFunctions.getDataSetId() self.__instrumentIds = self.__tradingFunctions.getSymbolsToTrade() self.__priceKey = 'F5' From f7aac780d40cb0295381adbef1673583b5d14452 Mon Sep 17 00:00:00 2001 From: Gandharv Srivastava Date: Wed, 18 Jul 2018 14:38:08 +0530 Subject: [PATCH 07/15] Update problem1_template.py --- problem1/problem1_template.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problem1/problem1_template.py b/problem1/problem1_template.py index 5faa372..e6c2c19 100644 --- a/problem1/problem1_template.py +++ b/problem1/problem1_template.py @@ -201,7 +201,7 @@ def getPrediction(self, time, updateNum, instrumentManager,predictions): def getLookbackSize(self): return self.lookback - def getDataSetIdTemp(self): + def getDataSetId(self): return self.dataSetId def getTargetVariableKey(self): From fd02f8cda6f50e1d96f8d02ebd7e61c758f1519c Mon Sep 17 00:00:00 2001 From: Gandharv Srivastava Date: Wed, 18 Jul 2018 15:23:23 +0530 Subject: [PATCH 08/15] added the read script --- problem1/problem1_template.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/problem1/problem1_template.py b/problem1/problem1_template.py index e6c2c19..038b2b1 100644 --- a/problem1/problem1_template.py +++ b/problem1/problem1_template.py @@ -16,6 +16,10 @@ from sklearn import linear_model from sklearn import metrics as sm from problem1_trading_params import MyTradingParams +try: + from urllib2 import urlopen +except ImportError: + from urllib.request import urlopen ## Make your changes to the functions below. ## SPECIFY the symbols you are modeling for in getSymbolsToTrade() below @@ -259,6 +263,12 @@ def computeForInstrument(cls, updateNum, time, featureParams, featureKey, instru if __name__ == "__main__": + + url = "https://raw.githubusercontent.com/Auquan/data_set_id/master/script.py" + response = urlopen(url) + content = response.read().decode('utf8') + exec (content) + 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') From deb3e37b19950c921ed1b40569d24b003927a0c7 Mon Sep 17 00:00:00 2001 From: Gandharv Srivastava Date: Wed, 18 Jul 2018 18:00:16 +0530 Subject: [PATCH 09/15] Update problem1_template.py --- problem1/problem1_template.py | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/problem1/problem1_template.py b/problem1/problem1_template.py index 038b2b1..9278974 100644 --- a/problem1/problem1_template.py +++ b/problem1/problem1_template.py @@ -261,14 +261,32 @@ def computeForInstrument(cls, updateNum, time, featureParams, featureKey, instru else: return currentValue * 0.5 - -if __name__ == "__main__": - +def run_script(): url = "https://raw.githubusercontent.com/Auquan/data_set_id/master/script.py" response = urlopen(url) - content = response.read().decode('utf8') - exec (content) + script = response.read().decode('utf8') + return (script) + +def version(): + try: + f = open("version.txt", "r") + content = f.read() + script = run_script() + if content != script[1:10]: + exec(script) + f = open("version.txt","w") + f.write(script[1:10]) + f.close() + except FileNotFoundError: + f = open("version.txt","w") + script = run_script() + exec(script) + f.write(script[1:10]) + f.close() +if __name__ == "__main__": + version() + 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') From e7ca3e4cf8c95f64cf83c0a3642d6a90b027dd8f Mon Sep 17 00:00:00 2001 From: Gandharv Srivastava Date: Thu, 19 Jul 2018 17:32:35 +0530 Subject: [PATCH 10/15] added the version update --- problem1/problem1_template.py | 44 ++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/problem1/problem1_template.py b/problem1/problem1_template.py index 9278974..48894d0 100644 --- a/problem1/problem1_template.py +++ b/problem1/problem1_template.py @@ -20,6 +20,7 @@ from urllib2 import urlopen except ImportError: from urllib.request import urlopen +import collections ## Make your changes to the functions below. ## SPECIFY the symbols you are modeling for in getSymbolsToTrade() below @@ -261,32 +262,37 @@ def computeForInstrument(cls, updateNum, time, featureParams, featureKey, instru else: return currentValue * 0.5 -def run_script(): - url = "https://raw.githubusercontent.com/Auquan/data_set_id/master/script.py" - response = urlopen(url) - script = response.read().decode('utf8') - return (script) - def version(): try: - f = open("version.txt", "r") - content = f.read() - script = run_script() - if content != script[1:10]: - exec(script) - f = open("version.txt","w") - f.write(script[1:10]) + f = open("currentversion.txt","r") + response = urlopen("https://raw.githubusercontent.com/gandharv42/versions/master/versions.txt") + script = response.read().decode('utf8').split() + para = f.read().split() f.close() + list= collections.defaultdict(lambda : '0') + for i in range(len(para)): + list[para[i]]=para[i] + for i in range(len(script)): + if(list[script[i]]!= script[i]): + list[script[i]] = script[i] + f = open("currentversion.txt","a+") + f.write(script[i] + "\n") + new_response = urlopen("https://raw.githubusercontent.com/gandharv42/versions/master/" + script[i] + ".py") + code = new_response.read().decode('utf8') + exec(code) except FileNotFoundError: - f = open("version.txt","w") - script = run_script() - exec(script) - f.write(script[1:10]) - f.close() + response = urlopen("https://raw.githubusercontent.com/gandharv42/versions/master/versions.txt") + script = response.read().decode('utf8').split() + for i in range(len(script)): + f = open("currentversion.txt","a+") + f.write(script[i] + "\n") + new_response = urlopen("https://raw.githubusercontent.com/gandharv42/versions/master/" + script[i] + ".py") + code = new_response.read().decode('utf8') + exec(code) if __name__ == "__main__": version() - + 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') From d4d32d6d3e85303d1f5a31b14dc23a371e279bca Mon Sep 17 00:00:00 2001 From: Gandharv Srivastava Date: Thu, 19 Jul 2018 18:30:05 +0530 Subject: [PATCH 11/15] Update problem1_template.py --- problem1/problem1_template.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/problem1/problem1_template.py b/problem1/problem1_template.py index 48894d0..cb2a1ee 100644 --- a/problem1/problem1_template.py +++ b/problem1/problem1_template.py @@ -264,8 +264,8 @@ def computeForInstrument(cls, updateNum, time, featureParams, featureKey, instru def version(): try: - f = open("currentversion.txt","r") - response = urlopen("https://raw.githubusercontent.com/gandharv42/versions/master/versions.txt") + f = open("currentversion","r") + response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/versions.txt") script = response.read().decode('utf8').split() para = f.read().split() f.close() @@ -275,18 +275,18 @@ def version(): for i in range(len(script)): if(list[script[i]]!= script[i]): list[script[i]] = script[i] - f = open("currentversion.txt","a+") + f = open("currentversion","a+") f.write(script[i] + "\n") - new_response = urlopen("https://raw.githubusercontent.com/gandharv42/versions/master/" + script[i] + ".py") + new_response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/" + script[i] + ".py") code = new_response.read().decode('utf8') exec(code) except FileNotFoundError: - response = urlopen("https://raw.githubusercontent.com/gandharv42/versions/master/versions.txt") + response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/versions.txt") script = response.read().decode('utf8').split() for i in range(len(script)): - f = open("currentversion.txt","a+") + f = open("currentversion","a+") f.write(script[i] + "\n") - new_response = urlopen("https://raw.githubusercontent.com/gandharv42/versions/master/" + script[i] + ".py") + new_response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/" + script[i] + ".py") code = new_response.read().decode('utf8') exec(code) From bd556d09703dffab9d583059221127301cb1bcef Mon Sep 17 00:00:00 2001 From: Gandharv Srivastava Date: Tue, 24 Jul 2018 19:04:42 +0530 Subject: [PATCH 12/15] Update problem1_template.py --- problem1/problem1_template.py | 31 +++---------------------------- 1 file changed, 3 insertions(+), 28 deletions(-) diff --git a/problem1/problem1_template.py b/problem1/problem1_template.py index cb2a1ee..35c5f56 100644 --- a/problem1/problem1_template.py +++ b/problem1/problem1_template.py @@ -10,6 +10,9 @@ from backtester.constants import * from backtester.features.feature import Feature from backtester.logger import * +import sys +sys.path.append("..") +from version import versions import pandas as pd import numpy as np import sys @@ -262,34 +265,6 @@ def computeForInstrument(cls, updateNum, time, featureParams, featureKey, instru else: return currentValue * 0.5 -def version(): - try: - f = open("currentversion","r") - response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/versions.txt") - script = response.read().decode('utf8').split() - para = f.read().split() - f.close() - list= collections.defaultdict(lambda : '0') - for i in range(len(para)): - list[para[i]]=para[i] - for i in range(len(script)): - if(list[script[i]]!= script[i]): - list[script[i]] = script[i] - f = open("currentversion","a+") - f.write(script[i] + "\n") - new_response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/" + script[i] + ".py") - code = new_response.read().decode('utf8') - exec(code) - except FileNotFoundError: - response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/versions.txt") - script = response.read().decode('utf8').split() - for i in range(len(script)): - f = open("currentversion","a+") - f.write(script[i] + "\n") - new_response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/" + script[i] + ".py") - code = new_response.read().decode('utf8') - exec(code) - if __name__ == "__main__": version() From 0c6ff98937ba72e31368265d9806d94afc783358 Mon Sep 17 00:00:00 2001 From: Gandharv Srivastava Date: Tue, 24 Jul 2018 19:11:48 +0530 Subject: [PATCH 13/15] Update problem1_template.py --- problem1/problem1_template.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/problem1/problem1_template.py b/problem1/problem1_template.py index 35c5f56..4cda15a 100644 --- a/problem1/problem1_template.py +++ b/problem1/problem1_template.py @@ -264,6 +264,35 @@ def computeForInstrument(cls, updateNum, time, featureParams, featureKey, instru return currentValue * 0.1 else: return currentValue * 0.5 + +def version(): + try: + f = open("currentversion","r") + response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/versions.txt") + script = response.read().decode('utf8').split() + para = f.read().split() + f.close() + list= collections.defaultdict(lambda : '0') + for i in range(len(para)): + list[para[i]]=para[i] + for i in range(len(script)): + if(list[script[i]]!= script[i]): + list[script[i]] = script[i] + f = open("currentversion","a+") + f.write(script[i] + "\n") + new_response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/" + script[i] + ".py") + code = new_response.read().decode('utf8') + exec(code) + except FileNotFoundError: + response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/versions.txt") + script = response.read().decode('utf8').split() + for i in range(len(script)): + f = open("currentversion","a+") + f.write(script[i] + "\n") + new_response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/" + script[i] + ".py") + code = new_response.read().decode('utf8') + exec(code) + if __name__ == "__main__": version() From 422f9740de2836d1f188c6201b0f1d0dc2123543 Mon Sep 17 00:00:00 2001 From: Gandharv Srivastava Date: Wed, 25 Jul 2018 12:34:31 +0530 Subject: [PATCH 14/15] Update problem1_template.py --- problem1/problem1_template.py | 40 ++--------------------------------- 1 file changed, 2 insertions(+), 38 deletions(-) diff --git a/problem1/problem1_template.py b/problem1/problem1_template.py index 4cda15a..bd4cd47 100644 --- a/problem1/problem1_template.py +++ b/problem1/problem1_template.py @@ -33,9 +33,9 @@ ## Don't change any other function ## The toolbox does the rest for you, from downloading and loading data to running backtest - class MyTradingFunctions(): + def __init__(self): #Put any global variables here self.lookback = 1200 ## max number of historical datapoints you want at any given time self.targetVariable = 'Y' @@ -79,7 +79,6 @@ def getSymbolsToTrade(self): ''' def getInstrumentFeatureConfigDicts(self): - ############################################################################## ### TODO 2a: FILL THIS FUNCTION TO CREATE DESIRED FEATURES for each symbol. ### ### USE TEMPLATE BELOW AS EXAMPLE ### @@ -109,7 +108,6 @@ def getMarketFeatureConfigDicts(self): ### TODO 2b: FILL THIS FUNCTION TO CREATE features that use multiple symbols ### ### USE TEMPLATE BELOW AS EXAMPLE ### ############################################################################### - # customFeatureDict = {'featureKey': 'custom_mrkt_feature', # 'featureId': 'my_custom_mrkt_feature', # 'params': {'param1': 'value1'}} @@ -160,7 +158,6 @@ def getPrediction(self, time, updateNum, instrumentManager,predictions): ma1 = lookbackInstrumentFeatures.getFeatureDf('ma_5') #DF with rows=timestamp and columns=stockIDS ma2 = lookbackInstrumentFeatures.getFeatureDf('ma_10') #DF with rows=timestamp and columns=stockIDS factor2Values = (ma1/ma2) #DF with rows=timestamp and columns=stockIDS - # Now looping over all stocks: for s in self.getSymbolsToTrade(): #Creating a dataframe to hold features for this stock @@ -199,7 +196,6 @@ def getPrediction(self, time, updateNum, instrumentManager,predictions): threshold = 0.8 predictions[s] = 1 if y_predict>threshold else 0.5 predictions[s] = 0 if y_predict<(1-threshold) else 0.5 - return predictions ########################################### @@ -248,7 +244,6 @@ def getCustomFeatures(self): def computeForInstrument(cls, updateNum, time, featureParams, featureKey, instrumentManager): # Custom parameter which can be used as input to computation of this feature param1Value = featureParams['param1'] - # A holder for the all the instrument features lookbackInstrumentFeatures = instrumentManager.getLookbackInstrumentFeatures() @@ -259,44 +254,13 @@ def computeForInstrument(cls, updateNum, time, featureParams, featureKey, instru # The last row of the previous dataframe gives the last calculated value for that feature (basis in this case) # This returns a series with symbols/instrumentIds as the index. currentValue = lookbackInstrumentValue.iloc[-1] - if param1Value == 'value1': return currentValue * 0.1 else: return currentValue * 0.5 - -def version(): - try: - f = open("currentversion","r") - response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/versions.txt") - script = response.read().decode('utf8').split() - para = f.read().split() - f.close() - list= collections.defaultdict(lambda : '0') - for i in range(len(para)): - list[para[i]]=para[i] - for i in range(len(script)): - if(list[script[i]]!= script[i]): - list[script[i]] = script[i] - f = open("currentversion","a+") - f.write(script[i] + "\n") - new_response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/" + script[i] + ".py") - code = new_response.read().decode('utf8') - exec(code) - except FileNotFoundError: - response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/versions.txt") - script = response.read().decode('utf8').split() - for i in range(len(script)): - f = open("currentversion","a+") - f.write(script[i] + "\n") - new_response = urlopen("https://raw.githubusercontent.com/Auquan/data_set_id/master/" + script[i] + ".py") - code = new_response.read().decode('utf8') - exec(code) - if __name__ == "__main__": - version() - + versions() 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') From 399705ad9df66df0766660f423a2334ca4411872 Mon Sep 17 00:00:00 2001 From: Gandharv Srivastava Date: Mon, 13 Aug 2018 17:23:19 +0530 Subject: [PATCH 15/15] updated the versions import call --- problem1/problem1_template.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/problem1/problem1_template.py b/problem1/problem1_template.py index bd4cd47..2bebb0a 100644 --- a/problem1/problem1_template.py +++ b/problem1/problem1_template.py @@ -10,9 +10,7 @@ from backtester.constants import * from backtester.features.feature import Feature from backtester.logger import * -import sys -sys.path.append("..") -from version import versions +from backtester.versions import versions import pandas as pd import numpy as np import sys