Ejemplo n.º 1
0
def generate_bars(pair,START = "2001-01-01"):
    """this function is used to get bars(adjclose) from pair"""    

    bars = pd.DataFrame([])
    bars[pair[0]] = get_price(pair[0], START)
    bars[pair[1]] = get_price(pair[1], START)
    return bars
Ejemplo n.º 2
0
def generate_bars(pair, START="2001-01-01"):
    """this function is used to get bars(adjclose) from pair"""

    bars = pd.DataFrame([])
    bars[pair[0]] = get_price(pair[0], START)
    bars[pair[1]] = get_price(pair[1], START)
    return bars
Ejemplo n.º 3
0
 def plot(self):
     ticker = str(self.lineEdit.text())
     data = gy.get_price(ticker, START)
     # create an axis
     ax = self.figure.add_subplot(111)
     # discards the old graph
     ax.hold(False)
     # plot data
     ax.plot(data.index, data)
     # refresh canvas
     self.canvas.draw()
Ejemplo n.º 4
0
 def plot_2(self):
     ticker = self.lineEdit_2.text()        
     data = get_price(ticker, START)
     # create an axis
     ax = self.figure_2.add_subplot(111)
     # discards the old graph
     ax.hold(False)
     # plot data
     ax.plot(data.index,data)
     # refresh canvas
     self.canvas_2.draw()   
Ejemplo n.º 5
0
    def backtest_portfolio(self):
        portfolio = pd.DataFrame(index=self.signals.index) 

        pos_diff = self.positions.diff().fillna(0.0)               
        #CaculationMatrix['pair']
        
        portfolio['holdings'] = (self.positions*self.bars).sum(axis=1)
        portfolio['cash'] = self.initial_capital - ((pos_diff*self.bars).sum(axis=1)).cumsum()

        portfolio['total'] = portfolio['cash'] + portfolio['holdings']
        portfolio['returns'] = portfolio['total'].pct_change()
        
        portfolio['SPY'] = get_price('SPY',self.signals.index[0])
        portfolio['SPY'] = self.initial_capital/portfolio['SPY'][0]*portfolio['SPY']
        
        return portfolio
Ejemplo n.º 6
0
    def backtest_portfolio(self):

        portfolio = pd.DataFrame(index=self.bars.index)

        pos_diff = self.positions.diff()
        #CaculationMatrix['pair']

        portfolio['holdings'] = (self.positions * self.bars).sum(axis=1)
        portfolio['cash'] = self.initial_capital - (pos_diff * self.bars).sum(
            axis=1).cumsum()
        portfolio['total'] = portfolio['cash'] + portfolio['holdings']
        portfolio['returns'] = portfolio['total'].pct_change().fillna(0.0)

        portfolio['SPY'] = get_price('SPY', self.bars.index[0])
        portfolio['SPY'] = self.initial_capital / portfolio['SPY'][
            0] * portfolio['SPY']

        return portfolio