For code/output blocks: Use ``` (aka backtick or grave accent) in a single line before and after the block. See:

Interactive input strategy

  • Hello there,
    I have just started to learn bt which is awesome.
    I was just reading the documentation and examples, however I cannot find anything relating to using input to control a strategy.
    What I usually do when I deploy a trading bot is to monitor it and if something is going to be wrong make a few adjustments via keyboard commands in real time.
    Is this possible with bt?


  • administrators

    No such thing is implemented. That's a huge use case. For starters some quick questions:

    • Which commands?
    • You are resampling live data to 15 seconds and you spend 31 seconds in the interactive mode, should the strategy skip the 2 15-seconds bars from the resampler? See them later and what happens if any of them generates a signal for trading?

    A possible approach:

    • Create a thread during the initialization of your strategy and use a method of the strategy as the target
    • This method, now running in parallel (as much as allowed by the GIL) can implement keyboard processing

  • is it possible to create a strategy like this one to get the period outside of strategy?

    class secondstrategy(bt.Strategy):
      def __init__(self, period):
        self.period = period
        self.rsi = bt.indicators.RSI_SMA(, period=self.period)
      def next(self):
        if not self.position:
          if self.rsi < 30:
          if self.rsi > 70:

  • Checkout section Parameters of the Docs - Platform Concepts

    Docs - Quickstart Guide gives extensive explanation of bt features, introduces to parameters use as well.

Log in to reply