def get_pnl_trades(self): """Gets P&L of each individual trade per signal Returns ------- pandas.Dataframe """ if self._pnl_trades is None: calculations = Calculations() self._pnl_trades = calculations.calculate_individual_trade_gains(self._signal, self._pnl) return self._pnl_trades
def get_pnl_trades(self): """ get_pnl_trades - Gets P&L of each individual trade per signal Returns ------- pandas.Dataframe """ if self._pnl_trades is None: calculations = Calculations() self._pnl_trades = calculations.calculate_individual_trade_gains(self._signal, self._pnl) return self._pnl_trades
spot_df = asset_df logger.info("Running backtest...") # use technical indicator to create signals # (we could obviously create whatever function we wanted for generating the signal dataframe) tech_ind = TechIndicator() tech_ind.create_tech_ind(spot_df, indicator, tech_params); signal_df = tech_ind.get_signal() # use the same data for generating signals backtest.calculate_trading_PnL(br, asset_df, signal_df) port = backtest.get_cumportfolio() port.columns = [indicator + ' = ' + str(tech_params.sma_period) + ' ' + str(backtest.get_portfolio_pnl_desc()[0])] signals = backtest.get_porfolio_signal() # get final signals for each series returns = backtest.get_pnl() # get P&L for each series calculations = Calculations() trade_returns = calculations.calculate_individual_trade_gains(signals, returns) print(trade_returns) # print the last positions (we could also save as CSV etc.) print(signals.tail(1)) style = Style() style.title = "EUR/USD trend model" style.source = 'Quandl' style.scale_factor = 1 style.file_output = 'eurusd-trend-example.png' Chart(port, style = style).plot()
tech_ind = TechIndicator() tech_ind.create_tech_ind(spot_df, indicator, tech_params) signal_df = tech_ind.get_signal() # use the same data for generating signals backtest.calculate_trading_PnL(br, asset_df, signal_df) port = backtest.portfolio_cum() port.columns = [ indicator + ' = ' + str(tech_params.sma_period) + ' ' + str(backtest.portfolio_pnl_desc()[0]) ] signals = backtest.portfolio_signal() # get final signals for each series returns = backtest.pnl() # get P&L for each series calculations = Calculations() trade_returns = calculations.calculate_individual_trade_gains( signals, returns) print(trade_returns) # print the last positions (we could also save as CSV etc.) print(signals.tail(1)) style = Style() style.title = "EUR/USD trend model" style.source = 'Quandl' style.scale_factor = 1 style.file_output = 'eurusd-trend-example.png' Chart(port, style=style).plot()