def execute(self, dateValuesDict): ''' processing input''' super(AvgDivProcessor, self).execute(dateValuesDict) for dateValues in dateValuesDict.values(): stockMeasurement = StockMeasurement(dateValues) data = {'days': len(dateValues), 'avg': stockMeasurement.mean(), 'standard deviation': stockMeasurement.std(), 'alpha': stockMeasurement.alpha(), 'beta': stockMeasurement.beta()} return data
def testMeasurement(self): dateValues = [StockDailyType('2011-01-03', '3190.04', '3239.03', '3190.04', '3235.77', '000', '3235.7'), StockDailyType('2011-01-04', '3235.77', '3260.08', '3235.77', '3250.29', '000', '3250.2'), StockDailyType('2011-01-05', '3250.29', '3263.05', '3242.98', '3254.25', '000', '3254.2'), StockDailyType('2011-01-06', '3254.25', '3280.43', '3254.25', '3279.70', '000', '3279.7'), StockDailyType('2011-01-07', '3279.70', '3280.77', '3253.14', '3261.35', '000', '3261.3'), StockDailyType('2011-01-10', '3261.35', '3270.21', '3229.27', '3229.27', '000', '3229.2')] stockMeasurement = StockMeasurement(dateValues, '^GSPC') stockMeasurement.linearRegression() assert stockMeasurement.alpha() assert stockMeasurement.beta() assert stockMeasurement.mean() assert stockMeasurement.std() assert stockMeasurement.relativeReturnRate() assert stockMeasurement.marketReturnRate() assert stockMeasurement.returnRate()
def execute(self, dateValuesDict): ''' processing input''' super(AvgDivProcessor, self).execute(dateValuesDict) for dateValues in dateValuesDict.values(): stockMeasurement = StockMeasurement(dateValues) data = { 'days': len(dateValues), 'avg': stockMeasurement.mean(), 'standard deviation': stockMeasurement.std(), 'alpha': stockMeasurement.alpha(), 'beta': stockMeasurement.beta() } return data
def analyze(self): ''' analyze ''' print 'Start analyzing' buildBenchmarkValues() returnRates = [[], [], [], [], [], [], []] alphas = [[], [], [], [], [], [], []] relativeReturnRates = [[], [], [], [], [], [], []] for fileName in filter(lambda f: f.endswith('.xls'), os.listdir(self.__workingDir)): excelFile = os.path.join(self.__workingDir, fileName) sheetNames = ExcelLib.getSheetNames(excelFile) for sheetName in sheetNames: with ExcelLib(excelFile) as excel: excel.openSheet(sheetName=sheetName) contry = sheetName.split('.')[-1] if len( sheetName.split('.')) != 1 else 'DEFAULT' benchmark = benchmarks[contry] print 'Processing %s with benchmark %s' % (sheetName, benchmark) for index, duration in enumerate(self.dayIntervals): data = [] broke = False for i in range(1, duration + 1): #print "row %d, duration %d" % (i, duration) if broke: break try: values = excel.readRow(i) for j in range(len(values)): values[j] = float( values[j]) if j != 0 else values[j] data.append(StockDailyType(*values)) except Exception: print 'Analyzing %s break at %d' % (sheetName, i) broke = True break if data: dateValues = sorted(data, key=itemgetter(0)) #print benchmarkValues[benchmark] stockMeasurement = StockMeasurement( dateValues, benchmark, benchmarkValues[benchmark]) stockMeasurement.linearRegression() returnRates[index].append( stockMeasurement.returnRate()) alphas[index].append(stockMeasurement.alpha()) relativeReturnRates[index].append( stockMeasurement.relativeReturnRate()) with open(os.path.join(self.__workingDir, 'output.txt'), 'w') as outputFile: outputReturnRates = map(lambda x: sum(x) / len(x), returnRates) outputAlphas = map(lambda x: sum(x) / len(x), alphas) outputRelativeReturnRates = map(lambda x: sum(x) / len(x), relativeReturnRates) print "Days since going public %s" % self.dayIntervals print "returnRates: %s" % outputReturnRates print "alphas: %s" % outputAlphas print "relativeReturnRates: %s" % outputRelativeReturnRates outputFile.write("outputReturnRates %s\n" % outputReturnRates) outputFile.write("outputAlphas %s\n" % outputAlphas) outputFile.write("outputRelativeReturnRates %s\n" % outputRelativeReturnRates) outputFile.write("returnRates %s\n" % returnRates) outputFile.write("alphas %s\n" % alphas) outputFile.write("relativeReturnRates %s\n" % relativeReturnRates)
def analyze(self): ''' analyze ''' print 'Start analyzing' buildBenchmarkValues() returnRates = [[], [], [], [], [], [], []] alphas = [[], [], [], [], [], [], []] relativeReturnRates = [[], [], [], [], [], [], []] for fileName in filter( lambda f: f.endswith('.xls'), os.listdir(self.__workingDir) ): excelFile = os.path.join(self.__workingDir, fileName) sheetNames = ExcelLib.getSheetNames(excelFile) for sheetName in sheetNames: with ExcelLib(excelFile) as excel: excel.openSheet(sheetName=sheetName) contry = sheetName.split('.')[-1] if len( sheetName.split('.') ) != 1 else 'DEFAULT' benchmark = benchmarks[contry] print 'Processing %s with benchmark %s' % (sheetName, benchmark) for index, duration in enumerate(self.dayIntervals): data = [] broke = False for i in range(1, duration + 1): #print "row %d, duration %d" % (i, duration) if broke: break try: values = excel.readRow(i) for j in range( len(values) ): values[j] = float(values[j]) if j != 0 else values[j] data.append( StockDailyType( *values ) ) except Exception: print 'Analyzing %s break at %d' % (sheetName, i) broke = True break if data: dateValues = sorted(data, key=itemgetter(0)) #print benchmarkValues[benchmark] stockMeasurement = StockMeasurement(dateValues, benchmark, benchmarkValues[benchmark]) stockMeasurement.linearRegression() returnRates[index].append( stockMeasurement.returnRate() ) alphas[index].append( stockMeasurement.alpha() ) relativeReturnRates[index].append( stockMeasurement.relativeReturnRate() ) with open(os.path.join(self.__workingDir, 'output.txt'), 'w') as outputFile: outputReturnRates = map(lambda x: sum(x)/len(x), returnRates) outputAlphas = map(lambda x: sum(x)/len(x), alphas) outputRelativeReturnRates = map(lambda x: sum(x)/len(x), relativeReturnRates) print "Days since going public %s" % self.dayIntervals print "returnRates: %s" % outputReturnRates print "alphas: %s" % outputAlphas print "relativeReturnRates: %s" % outputRelativeReturnRates outputFile.write("outputReturnRates %s\n" % outputReturnRates) outputFile.write("outputAlphas %s\n" % outputAlphas) outputFile.write("outputRelativeReturnRates %s\n" % outputRelativeReturnRates) outputFile.write("returnRates %s\n" % returnRates) outputFile.write("alphas %s\n" % alphas) outputFile.write("relativeReturnRates %s\n" % relativeReturnRates)