Navigation

    Backtrader Community

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    For code/output blocks: Use ``` (aka backtick or grave accent) in a single line before and after the block. See: http://commonmark.org/help/

    Benchmark observer bug?

    General Code/Help
    2
    4
    887
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      te last edited by

      Hi everyone,

      I am a novice regarding backtrader and also python but it is great fun to learn and use the platform. Great work by all involved!

      Today I tried the Benchmark observer and noticed that the return from the strategy is different than when using the TimeReturn observer. Is this a bug (missing negative sign for return of strategy in benchmark observer) or is it possible that I am missing something. See attached plot image.

      Thanks in advance!

      Best regards,
      Torbjörn
      0_1502737916178_benchmark_test.png

      1 Reply Last reply Reply Quote 0
      • B
        backtrader administrators last edited by

        The Benchmark observer simply is an extension of the TimeReturn observer and as such there is no difference when it comes to sign, because the same code is responsible.

        Would you mind sharing how you actually invoke the observers? Even if a chart seems to show something it actually shows nothing.

        1 Reply Last reply Reply Quote 0
        • T
          te last edited by

          Sorry, here is the code.

          self.cerebro.addobserver(bt.observers.BuySell)
          self.cerebro.addobserver(bt.observers.Value)
          self.cerebro.addobserver(bt.observers.TimeReturn, timeframe=bt.TimeFrame.NoTimeFrame)
          self.cerebro.addobserver(bt.observers.Benchmark, data=self.data_benchmark, timeframe=bt.TimeFrame.NoTimeFrame)
          

          If I activate cheat-on-close the difference is even bigger.
          self.cerebro.broker.set_coc(coc=True)

          0_1502818908977_benchmark_test_coc.png

          1 Reply Last reply Reply Quote 0
          • T
            te last edited by

            Hm, I found another issue in my code. I'll try to sort that out first to see if it's related somehow.

            1 Reply Last reply Reply Quote 0
            • 1 / 1
            • First post
              Last post
            Copyright © 2016, 2017, 2018 NodeBB Forums | Contributors
            $(document).ready(function () { app.coldLoad(); }); }