QTEASY 2.0 Migration Guide

This guide summarizes changes and improvements in QTEASY 2.0 and how to migrate existing code.

Major improvements in QTEASY 2.0

  • New Parameter class for strategy parameters; Operator accepts Parameter instances and supports flexible per-symbol parameter values.

  • New Group class for strategy groups; each group can have its own run frequency, timing, and blender for more flexible execution.

  • Improved Operator running schedule: finer-grained timing per group for more accurate backtests; groups can run at different frequencies and times.

  • Strategies can use multiple frequencies and window lengths in one run; data is fetched and assigned more efficiently.

  • Backtest and optimization are faster and use system resources better, especially with multiprocessing.

  • Operator tracing mode: define trace points in strategies; trace output is saved in trade logs.

  • Simpler realize() API for history data and parameters with user-defined names.

  • More optimization algorithms for different parameter spaces and faster optimization.

  • Richer evaluation metrics and clearer analysis for backtest/optimization results.

Removed or changed configuration parameters

The following keys were removed from built-in config in 2.0. Passing any of them with qt.configure(..., only_built_in_keys=True) raises KeyError.

Removed configuration keys

Config key

Notes and alternatives

maximize_cash_usage

Removed. Maximizing reuse of cash from the same batch is handled inside trade execution; no replacement key—remove it.

benchmark_asset_type

Removed. Benchmark asset type is inferred from benchmark_asset and the data source; set benchmark_asset only.

benchmark_dtype

Removed. Benchmark price type is inferred from the schedule and data source; set benchmark_asset only.

Changed configuration keys

This release only removes keys; no renames or merges.

Upgrade checklist

  1. Search qteasy.cfg or your config and remove the three keys above.

  2. Remove qt.configure(..., maximize_cash_usage=...), benchmark_asset_type, and benchmark_dtype from code.

  3. Confirm backtests/optimization work with benchmark_asset alone.

Breaking changes

In 2.0, qt.configure(..., only_built_in_keys=True) with any removed key raises KeyError. With only_built_in_keys=False, keys may be stored but are ignored at runtime.


Migration steps

Custom trading strategies