Skip to content

Dynamic strategy parameters in Backtesting UI #2791

Description

@khoren93

First of all, thank you for all the hard work on FreqUI! It's an amazing tool that makes managing Freqtrade bots so much easier.

Is your feature request related to a problem? Please describe.
I'm frustrated when I need to test different strategy parameters (like DecimalParameter, IntParameter, etc.) in the UI. Currently, the Backtest window only allows changing global settings (timerange, timeframe, stake). To tweak a specific strategy value (e.g., changing an indicator threshold), a user has to manually edit the Python strategy file or the JSON configuration. This is a significant barrier for traders who are not developers or don't want to touch the code for every test run.

Describe the solution you'd like
I'd like the Backtest window to dynamically fetch the available parameters for the selected strategy (using the existing /strategy/<name> endpoint) and display them as editable fields.

  • The UI should automatically generate input fields based on the parameter type (e.g., sliders for ranges, numeric inputs for decimals).
  • It should ideally focus on parameters where optimize=True is set in the strategy.
  • When clicking "Start Backtest", these overridden values should be included in the BacktestPayload sent to the API, allowing the backend to apply them for that specific run without modifying the source files.

Describe alternatives you've considered

  • Manually editing the .py strategy file (slow and prone to errors for non-coders).
  • Maintaining multiple JSON configuration files for different parameter sets (hard to manage).
  • Using the CLI for backtesting with --strategy-list (defeats the purpose of using a GUI).

Additional context
The codebase already has definitions for these parameters in strategy.ts (AllStrategyParameter) and a way to view them in StrategyParameters.vue. Extending this logic to BacktestRun.vue would make the UI a much more powerful tool for strategy fine-tuning.

Metadata

Metadata

Assignees

Labels

Low prioIssues with low priorityenhancementNew feature or request

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions