Example #1
0
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
Example #2
0
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])