def oneStock(signalGenerator, stock): """ Get the signal, portfolioValue, stockValue of one stock. Returns a pandas dataframe. """ close = ysq.dfTwoYearClose(stock) result = backtest(close, signalGenerator, reporting = False) df = pd.DataFrame(result[0]) # the signal df['portfolioValue'] = result[1][0] df['stockValue'] = close return df
def picker(signalGenerator, startingIndex, endingIndex, pathToData): with open(pathToData, 'r') as f: stocks = f.readlines() for i in range(len(stocks)): stocks[i] = stocks[i].rstrip() results = {} for row in stocks[startingIndex:endingIndex]: close = ysq.dfTwoYearClose(row) results[row] = backtest(close, signalGenerator, reporting = False) maxSymbol = None maxSharpe = 0.0 for symbol in results: if results[symbol][2] > maxSharpe: maxSymbol = symbol maxSharpe = results[symbol][2] print maxSymbol report(results[maxSymbol][0], results[maxSymbol][1], results[maxSymbol][2]) p(ysq.dfTwoYearClose(maxSymbol), results[maxSymbol][0], results[maxSymbol][1][0])