Example #1
0
    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
Example #2
0
    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()
Example #4
0
    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()