Esempio n. 1
0
    def test_ewma_strat():
        
        #prepare data
        import DataHandler.DBReader as dbr
        from strategy_tester.trade import TradeEquity
        from strategy_tester.Portfolio import Portfolio
        
        dbpath = "/home/phcostello/Documents/Data/FinanceData.sqlite"
        dbreader = dbr.DBReader(dbpath)
        SP500 = dbreader.readSeries("SP500")
        dim = 'Adj_Close'
        data = SP500
        
        
        startDate_train = datetime.date(2012,12,30)
        endDate_train = datetime.date(2013,6,30)
        dataReduced = data.loc[startDate_train:endDate_train]
        
       
        #Initialise strategy parameters
        strat = EWMA_Trend( MA_win_len=50.0,
                            std_win_len=50.0,
                            entryScale= 0,
                            exitScale= 1)
        
        
        
        #Initialize Portfolio
        
        #Generate Signals on Market data
        
        #Run strategy
        
        
        
        #Setup portfolio
        trade_equity_spread = TradeEquity('Equity', 
                                          notional=0, 
                                          price_series_label='Adj_Close')
        
        port = Portfolio("portfolio", cashAmt=100)
        port.add_trade(trade_equity_spread)
        #No more trade types
        port.fixed_toggle()
       
        strat.plot_flag=True
        strat.run_strategy(market_data = data,
                            portfolio = port)
       
        
        
#         plt.show()
        plt.figure()
        strat.result['Value'].plot()
#         plt.show()
 #       strat.result.to_csv('Results/pairsmd.csv')
        
        from strategy_tester.ResultsAnalyser import ResultsAnalyser
        
        
        ra = ResultsAnalyser(data= strat.result) #Sharpe for strat
        print ra.sharpe_ratio(), ra.get_cumulative_return().iloc[-1,0]
        
        ra2 = ResultsAnalyser(data = SP500,valueIndex='Adj_Close') #Sharpe for SP500
        print ra2.sharpe_ratio(), ra2.get_cumulative_return().iloc[-1,0]
    
        combresdata = pd.merge(strat.result,SP500, how='inner', left_index=True, right_index=True)
        
        ra3 = ResultsAnalyser(data = combresdata,valueIndex='Value',referenceIndex='Adj_Close')
        print ra3.sharpe_ratio(useMarketRef=True), ra3.get_cumulative_return(useReference=True).iloc[-1,0]
Esempio n. 2
0
 dbreader = DBReader()
 AAPL = dbreader.readSeries('AAPL')
 SP500 = dbreader.readSeries('SP500')
 print AAPL.info()
 print SP500.info()
 data = pd.merge(pd.DataFrame(AAPL['Adj_Close']),pd.DataFrame(SP500['Adj_Close']), how='inner', left_index=True, right_index=True)
 data_dict = {'AAPL':AAPL , 'SP500':SP500}
 panel_series = pd.Panel.from_dict(data_dict, 
                                       intersect=True, 
                                       orient = 'minor')
 print 'panel items', panel_series.items
 dim = 'Adj_Close'
 df_allseries_dim = panel_series[dim]
 
 
 dataRed = df_allseries_dim.loc['2011-1-1':'2012-1-1']
 
 rets = dataRed['SP500'].pct_change()
 
 print 'rets std', rets.std()
 print rets.head()
 
 #dataRed['SP500'].plot()
 plt.show()
 
 ra = ResultsAnalyser(dataRed,valueIndex = 'SP500')#, referenceIndex='SP500')
 print "vol", ra.get_volatility(annualising_scalar=1, returns=True)
 
 sharpe = ra.sharpe_ratio(useMarketRef=False)
 print sharpe