Backtesting

Latest version: v0.6.4

Safety actively analyzes 723158 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 5

0.6.4

(2025-03-30)

* Bug fixes:
* Fix optimization hanging on MS Windows under some conditions,
primarily missing a `if __name__ == '__main__'` guard.
* Restore original scale in FractionalBacktest plot (1247)
* Fix "'CAGR [%]' must match a key in pd.Series result of bt.run()" error
* Fix grid optimization on data with timezone-aware datetime index

0.6.3

(2025-03-11)

* Enhancements:
* `backtesting.lib.TrailingStrategy` supports setting trailing stop-loss by percentage.
* [`backtesting.lib.MultiBacktest`](https://kernc.github.io/backtesting.py/doc/backtesting/lib.html#backtesting.lib.MultiBacktest)
multi-dataset backtesting wrapper.
* `Backtest.run()` wrapped in `tqdm()`
* Rename parameter `lib.FractionalBacktest(fractional_unit=)`.
* Add market alpha & market beta stats (1221)
* Plot improvements:
* Plot trade duration lines in the P&L plot section.
* Simplify PL section, use circular markers.
* Only plot trades when some trades are present.
* Set `fig.yaxis.ticker.desired_num_ticks=3` for indicator subplots.
* Single legend item for indicators with singular/default names.
* Make "OHLC" itself a togglable legend item.
* Add xwheel_pan tool, conditioned on activation for now
(upvote [Bokeh issue](https://github.com/bokeh/bokeh/issues/14363)).
* Reduce height of indicator charts, introduce an overridable private
global `backtesting._plotting._INDICATOR_HEIGHT`.
* Bug fixes:
* Fixed `Position.pl` occasionally not matching `Position.pl_pct` in sign.
* SL _always_ executes before TP when hit in the same bar.
* Fix `functools.partial` objects do not always have a `__module__` attr in Python 3.9 (1233)
* Fix stop-market and TP hit within the same bar.
* Documentation improvements (warnings, links, ...)

0.6.2

(2025-02-19)

* Enhancements:
* Grid optimization with mp.Pool & mp.shm.SharedMemory (1222)
* [`backtesting.lib.FractionalBacktest`](https://kernc.github.io/backtesting.py/doc/backtesting/lib.html#backtesting.lib.FractionalBacktest)
that supports fractional trading
* `backtesting.__all__` for better `from backtesting import *` and suggestions
* Bugs fixed:
* Fix remaining issues with `trade_on_close=True`
* Fix trades reported in reverse chronological order when `finalize_trades=True`
* Fix crosshair not linked across subplots
* Cast `datetime_arr.astype(np.int64)` to avoid Windos error

0.6.1

(2025-02-04)

Enhancement: Use `joblib.Parallel` for optimization.
This should vastly improve performance on Windows while not
affecting other platforms too much.

0.6.0

(2025-02-04)

* Enhancements:
* Add `Backtest(spread=)`; change `Backtest(commission=)` to apply twice per trade
* Show paid "Commissions [$]" key in trade stats
* Allow multiple names for vector indicators (980)
* Add columns SL and TP to `stats['trades']` (1039)
* Add entry/exit indicator values to `stats['trades']` (1116)
* Optionally finalize trades at the end of backtest run (393)
* Bug fixes, including for some long-standing bugs:
* Fix bug in Sharpe ratio with non-zero risk-free rate (904)
* Change price comparisons to lte/gte to align with TradingView
* Reduce optimization memory footprint (884)
* Fix annualized stats with weekly/monthly data
* Fix `AssertionError` on `for o in self.orders: o.cancel()`
* Fix plot not shown in VSCode Jupyter
* Buy&Hold duration now matches trading duration
* Fix `bt.plot(resample=True)` with categorical indicators
* Several other small bug fixes, deprecations and docs updates.

0.5.0

(2025-01-21)

* Enhancements:
* New `Backtest.optimize(method="sambo")`;
uses [SAMBO](https://sambo-optimization.github.io):
to replace `method="skopt"`.
* New 'CAGR [%]' (compound annual growth rate) statistic.
* Bug fixes:
* "stop-loss executed at a higher than market price".
* Bug with buy/sell size=0.
* `Order.__repr__` issue with non-numeric `Order.tag`.
* Other small fixes, deprecations and docs updates.

Page 1 of 5

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.