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]
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