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]