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/

    Bayesian Optimization Framework

    General Discussion
    2
    2
    213
    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.
    • Euler Sousa
      Euler Sousa last edited by

      Hello all,

      First I would like to congratulate the authors, contributors, and all the community for the awesome library/content provided.

      Nowadays I'm a Sr. Data Scientist and a beginner in the field of trading investment strategies. After reading the documentation and going over some examples and discussions on the community, I wanted to contribute somehow. I noticed that there are a lot of similarities between Data Science experiments and backtesting trading strategies. One, in particular, is the parameters optimization of the strategy/machine learning model. The most simple approach is a grid search over a list of values for each parameter and their combination. In Data science this approach can be done by using GridsearchCV and I believe cerebro.optstrategy has a similar method.

      Another approach in Data Science that outsmarts grid search is Bayesian Optimization. With that in mind, I created a framework that is available in this repo for optimizing the possible parameters of a given trading strategy using Bayesian optimization.

      Besides backtrader, it was used mainly three libraries:

      • Hydra: The key feature used in this project is the ability to dynamically create a hierarchical configuration by composition and override it through config files and the command line.

      • Bayesian Optimization: This is a constrained global optimization package built upon bayesian inference and gaussian process, that attempts to find the maximum value of an unknown function in as few iterations as possible.

      • backtrader_plotting: Library to add extended plotting capabilities to backtrader. Currently the only available backend is Bokeh.

      This framework produces a series of metadata during the optimization process, which is saved in the directories created automatically by Hydra. This metadata includes a best_iteration.html file showing the Bokeh plot of backtrader_plotting, a main.log file describing step by step of the optimization process, and a STRATEGY_NAME.json file containing the best set of parameters found by Bayesian optimization. After an experiment is concluded the main results are compiled and added to a results.csv file to easily keep tracking of all possibilities that were tried.

      Take a look at the README.md and follow the steps to see these features running with a dummy example prepared.

      I hope this can help some of you!

      Regards,

      1 Reply Last reply Reply Quote 6
      • run-out
        run-out last edited by

        I think it's awesome you posted this and haven't forgotten, just haven't got to it yet.

        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(); }); }