Moonshot trade() method params?

I’ve been using the “params” param when calling the quantrocket.moonshot.backtest() method to specifically set the SIDS strategy param for the backtest. This has been working great.

I’m now transitioning into live trading and immediately realized that the quantrocket.moonshot.trade() method doesn’t have a “params” param for passing in strategy params on the fly. Is there any reason for this? Or do you agree that it would make sense to be able to pass in strategy parmas on the fly during live trading?

P.S. I’m primarily passing in SIDS strategy param on the fly as a way to generate a coarse universe of trading candidates so that I’m not trying to backtest/trade the entire stock market. For example, I might pull out all SIDS that have gapped up over 40% over night, and only backtest/trade those specific SIDS.

Setting on-the-fly params is a convenience to avoid editing the strategy file itself. Such a convenience makes sense for exploratory backtesting but doesn’t really make sense for trading. Trading is what you do when you’ve settled on the parameters you want to use.

Thanks for the response Brian; that line of reasoning makes sense, but having the ability the set params on the fly for trading can be powerful.

For others that may have a similar need, I was able to work around this by overriding the trade() method of my strategy that does take a params parameter and then setting class params within that method.

If your only goal is to have a dynamic universe, another solution is to run a universe selection/generation script first that updates the universe that your strategy is configured for, and then running the trade script afterwards.