Backtrader Community

    • 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/

    How to check the legality of parameters before running the test?

    Indicators/Strategies/Analyzers
    2
    2
    991
    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.
    • J
      junyiliu last edited by

      I backtest a double moving average strategy and want to optimize the two parameter, shortma and longma with the following code

      strategies = cerebro.optstrategy(DoubleMA,
                         shortma=range(5,30,5),longma=range(15, 50, 1)
      

      Obviously, shortma shall be small than longma, otherwise the strategy is meaningless. How should i add some code to check the legality of parameters in the __init__ , once the parameters is invalid, the strategy go the stop .

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

        This is covered by raising a exception during __init__. See Docs - Exceptions

        import backtrader as bt
        
        class Strategy(bt.Strategy):
        
            def __init__(self):
                if something_goes_wrong():
                    raise bt.StrategySkipError
        
        1 Reply Last reply Reply Quote 0
        • 1 / 1
        • First post
          Last post
        Copyright © 2016, 2017, 2018, 2019, 2020, 2021 NodeBB Forums | Contributors