Highlighted changes
- Add support for [OKX.us](http://OKX.us) - the US subsidiary of OKX.
- Add support for Bitget spot trading (including stoploss on exchange support).
- Update ta-lib to 0.6.5 - with a lot simpler installation.
- Improved
--backtest-directory
handling by splitting--export-filename
into 2 separate arguments to avoid ambiguity. - Improved
MarketCapPairList
to also support 1000PEPE (binance) and KPEPE like coins. - Support Post Only orders on Binance futures.
- FreqUI
- Fix a few backtesting layout issues
Sponsor
You can sponsor the work on freqtrade via the following links:
- froggleston (FTUI) https://github.com/sponsors/froggleston/
- robcaulk (freqAI) https://github.com/sponsors/robcaulk/
- xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/
How to update
As always, you can update your bot using one of the following commands:
docker-compose
docker-compose pull
docker-compose up -d
Installation via setup script
# Deactivate venv and run
./setup.sh --update
Plain native installation
git pull
pip install -U -r requirements.txt
Expand full changelog
cee8855dc chore: bump version to 2025.8
71e1c9114 docs: wider docs page
e9718e064 chore: remove outdated comment about ta-lib
3e8bb29c9 test: move test to usdt
2a84b00da docs: fix/improve developer docs
711ebfea2 docs: update backtest-result to reproducible result
8cd2ee95f feat: add developer documentation to generate backtest results
539937c0e refactor: move base_analysis to where it belongs
3512d788d chore: bump technical to 1.5.3 to align talib version
54c4dd1ce chore: run CI against 3.13 unconditionally again
daaff66ff chore: Bump joblib dependency to 1.5.2
8610f9883 feat: enable PostOnly orders for binance futures
e503d4a9c fix: downgrade pyarrow to 20 to work around pyarrow compilation error
1cf1d9e3d chore: remove unused ignore
6b250f9df feat: reduce log verbosity of recursive and lookahead bias commands
3d24ef66d refactor: have backtesting init use self.config instead of the passed in config
ef0fc1323 chore: reduce data-load verbosity
394ff1bbf chore: improve variable wording
5cdd08746 fix: type error
93051f4f9 test: update test for dynamic pairlist expansion in list-data
532f5ab08 Update backtesting documentation
e3ffe5654 feat: add dynamic PL expansion to list-data
7539b6ffd chore: update pre-commit hooks
8e623ee64 Some improvements to backtest summary metrics
128ea45fe chore: bump ccxt version to 4.5.2
2495f6875 chore: remove no-longer working badge
70ee652be fix: cut-off (too short) timeframe-detail bug
8f6d64f5e test: add test for 1000 / k logic
b40848373 docs: add line about 1000 / K testing logic
2824bcff4 chore(ci): prevent failure on PR's
12d617cf8 chore: update pre-commit hooks
48ab5ed99 Replace get_markets_cache() with get_markets_exchange()
f77eaa408 chore: bump pre-commit scipy-stubs
1c4bf67e2 chore(deps): bump jsonschema from 4.25.0 to 4.25.1
634ec3c85 chore(deps-dev): bump time-machine from 2.17.0 to 2.19.0
a50a15ebc chore(deps): Don't bump pandas for armv7 for now.
514452c4e chore: update date-util in pre-commit config
f091db3b0 chore(deps): bump astral-sh/setup-uv from 6.5.0 to 6.6.0
caf1d6e7f chore(deps): bump requests from 2.32.4 to 2.32.5
81f663780 chore(deps): bump optuna from 4.4.0 to 4.5.0
f764f1fc1 chore(deps): bump ccxt from 4.5.0 to 4.5.1
9a8ef17c7 chore(deps): bump mkdocs-material in the mkdocs group
8fe582a7a chore(deps): bump pandas from 2.2.3 to 2.3.2
5cf3a2256 chore(deps-dev): bump ruff from 0.12.9 to 0.12.10
caf4ffbc0 chore(deps-dev): bump scipy-stubs in the scipy group
d156f36f9 chore(deps-dev): bump types-python-dateutil in the types group
4390324d2 docs: improve exchange doc for time_in_force
8d7ef1929 docs: improve bybit documentation structure
08fb8e42f docs: improve time_in_force section
eaf6abecc fix: DecimalParameter shouldn't have floating point errors
b4796cbf7 test: improve decimal parameter test
e042b2e07 test: improve parameter naming
9f021cbee test: remove combined test
bf615e415 test: split parameter tests to one test per parameter
c72f5b79f refactor: extract hyperopt-params test to separate file
9fff38d0a chore: update Permission check action to supported version
ec4767acd chore: Simplify code slightly
78c805495 chore(ci): Split windows ci tests to 2022 and 2025 respectively
24f5096ec modify test_handle_trade to test several cases of calc_profit_ratio
c9403eb94 fix calc_profit_ratio to correctly fallback to available values when amount or open_rate is None
c0d404edb chore: try downgrading python on windows ci
a7a16d1e1 chore: update pre-commit hooks
a531f8644 update the docs to show the modified approach in comparing dataframes
765a0b52c fix: api-pairlist bug with candle-type-def
4919d6944 chore: use available attribute
ac20596f1 chore: remove unused property
2e8decbb6 chore: update pre-commit hooks
4ab6fba9e chore: bump sqlalchemy in pre-commit-config
3ef082e2d chore(deps): bump astral-sh/setup-uv from 6.4.3 to 6.5.0
cccf44cd6 chore(deps): bump zizmorcore/zizmor-action from 0.1.1 to 0.1.2
506d665a4 chore(deps): bump actions/checkout from 4 to 5
8514e35ad chore(deps): bump filelock from 3.18.0 to 3.19.1
af0a3f9a8 chore(deps): bump xgboost from 3.0.3 to 3.0.4
2df1a93df chore(deps): bump orjson from 3.11.1 to 3.11.2
75e39d315 chore(deps): bump plotly from 6.2.0 to 6.3.0
5d755e3ca chore(deps-dev): bump ruff from 0.12.8 to 0.12.9
fbeb2e478 chore(deps): bump sqlalchemy from 2.0.42 to 2.0.43
6b288d46a chore(deps): bump ccxt from 4.4.99 to 4.5.0
394cdfcc1 chore(deps): bump mkdocs-material in the mkdocs group
6617d3bb4 chore(deps): bump python
2453e344f docs: improve documentation
7f0e886cf chore: update config message naming
e34ea393d docs: improved help wording
a00a5e52c docs: update backtest-filename wording
6abc0a3fb docs: update wording in documentation
7e4b9d748 docs: update doc segments with new help text
e3f241acb chore: improve help text wording
eee233f89 fix: ensure exportfilename is always set
615095c78 feat: add exportdirectory to entry/exit analysis
b22bce3dd feat: Support split directory and filename for backteststats loading
9f1d9add1 chore: improve docstring
36f2bef6b test: update test for split backtest-show reality
07906d257 test: update api backtest test
5c977c212 test: drop test part using --export-filename to determine backtest result naming
09b084e85 chore: adjust backtest-optimize reports tests
aefc72554 chore: ensure filename is a path object
33c2cc806 refactor: extract bt file normalization to separate function
74aa17d53 feat: support both relative filenames, as well as just the filename
4de1501c6 fix: argument load stability
dc12b3e75 feat: improved support for split "export-directory" and export-filenames
dacd09db8 chore: improved code logic
c63d0e167 chore: switch to using exportdirectory
6ccd98d79 feat: introduce --export-directory
52b0e6495 revert back to use list instead of set
5e5137edc compare full dataframe instead of only last row
5d4edb5ec fix: list-strategies shouldn't fail when no strategy is found
6dccab9bf refactor: simplify backtest analysis data loading
653c160d7 chore: analyze-commands shouldn't identify as backtest
3f65ed452 chore: improve typesafety
09cdc7cec chore: improve docker job namings
e98e6d8ae chore: remove --no-build-isolation from docker builds
f10223bf1 chore: temporarily downgrade armhf dependencies
38b306265 chore: fix armhf build
06e249f56 chore: bump pre-built armhf ta-lib binary
d064bd4f3 chore: prefer --backtest-filename over --export-filename!
765d2c332 docs: update Documentation about export-filename
1ff4e4082 chore: remove ta-lib install scripts and helpers
09d59c79a chore(ci): cleanup CI ta-lib specials
dd6ac4b19 chore: remove ta-lib install from dockerfile
67fe3682b docs: remove ta-lib special steps
a07e6183b chore: simplify setup.sh
ac99537c2 chore: simplify setup.ps1 removing ta-lib install
734a6f044 chore: remove ta-lib install workaround for windows
c934535dc chore: remove now pointless ta-lib wheels
3e3f092f0 test: reduce ta-lib test accuracy to align with ta-lib 0.6.5
834aafb8f test: non-freqai tests should run without torch installed
df19c77bc better fallback
6edcda1e4 fallback if strat don't specify startup candle
a37edf8c6 remove unused import
09ef2c9de move strategy load after candle type has been defined
42b1d8ecf chore: update pre-commit hooks
32437a95f chore: remove unused import
2e29d3523 test: empty pairlist is now handled by config schema
530300a95 chore: clearer validation error handling
612a09634 test: use appropriate error handlers
fd6a2456d chore: improved validation error handling
1ad0e7e36 fix: force one pairlist handler via config
055ee5c88 fix: gracefully handle telegram startup error
ae676d8e0 chore: small code refactoring, simplifying the code
a1d0528ad chore: update pre-commit hooks
ecfa1fd5b Adjust expectation for get_markets calls in test_MarketCapPairList_timing
eaf76047e Correct syntax
761d3f216 Simplify resolve_marketcap_pair()
091d1c2d5 chore(deps): bump ta-lib from 0.5.5 to 0.6.5
47bf2d1f2 chore: bump types in pre-commit config
2e8707059 chore(deps): bump actions/download-artifact from 4 to 5
e0d9d0149 chore(deps-dev): bump pre-commit from 4.2.0 to 4.3.0
9f82738c9 chore(deps-dev): bump ruff from 0.12.7 to 0.12.8
f69f6ec8b chore(deps-dev): bump the types group with 2 updates
8b3fb11f1 chore(deps-dev): bump time-machine from 2.16.0 to 2.17.0
b0f4c57fa chore(deps): bump torch from 2.7.1 to 2.8.0
d759deae8 chore(deps): bump cryptography from 45.0.5 to 45.0.6
b8883b790 test: adjust stoploss order getting for bitget
423197cb2 chore(deps): bump python
38107664b feat(bitget): Add triggered stoploss detection logic
42d3f557b chore(ci): fix windows install
1a3c91317 feat(bitget): Align bitget candle limits
83de41ad0 test(bitget): add test for bitget ohlcv limit
8cc466482 chore: fix imports
aaecbc220 test(bitget): add test for stoploss emulation
e36df7eff feat(bitget): correctly cancel stop orders
95f58b2b8 feat(bitget): add stoploss support properly
8df0ce3fb docs: add stoploss on exchange bitget
4177809f7 feat(bitget): stoploss order fetching attempts
2bf3494cb chore: update pre-commit hooks
e3dd3478b chore: bump ccxt to 4.4.99
457af15b3 chore: safe basic freqAI infos to backtest result
89ef31b38 fix: Ensure pipelines that modify feature set are supported for fast backtesting
c0143b04c Refactor pair resolution logic for improved clarity and modularity
3e8e250a6 chore: update pre-commit hooks
a34b58044 chore(deps): bump docker/login-action from 3.4.0 to 3.5.0
e7ea9d09c chore: fix typo
e4e11be33 chore: temporarily disable htx due to certificate issues
87ff8dc7b chore(deps-dev): update scipy-stubs in pre-commit config
2434ae547 chore: make scipy it's own group to update scipy-stubs together
e474294d5 chore(deps-dev): bump scipy-stubs from 1.16.0.2 to 1.16.1.0
1ea6a99c4 Allow pairs with prefix in MarketCapPairList
93ae45dcb chore(deps): bump aiohttp from 3.12.14 to 3.12.15
824f555d4 chore(deps-dev): bump ruff from 0.12.5 to 0.12.7
be07879a1 chore: bump sqlalchemy in pre-commit-config
ab543c268 chore(deps): bump sqlalchemy from 2.0.41 to 2.0.42
79aa0bce5 chore(deps): bump pymdown-extensions from 10.16 to 10.16.1
05a76c029 chore(deps): bump certifi from 2025.7.14 to 2025.8.3
15eeac3c4 chore(deps): bump xgboost from 3.0.2 to 3.0.3
d8a84a7d6 chore(deps): bump ccxt from 4.4.96 to 4.4.98
863a5b7b8 chore(deps-dev): bump mypy from 1.17.0 to 1.17.1
4ad049aec test: add test-case for futures filter
03c16d034 test: add test for --dex filter
c1f8dce10 docs: re-extract list-exchanges command partial
887f51343 feat: filter list-exchanges by dex
12fbae720 chore: remove pointless dockerfile template
a05cb8f1c feat: support filtering exchanges by trade mode
cffee80b0 chore: remove binanceje mapping
0c0f2e43e feat: disable myOkx futures support
35456a1f3 feat: link okxus to the okx freqtrade base class
1ec45dcf1 test: improve kraken fetch trades compatibility test
f2fb1b791 docs(bitget): fix typo
78c5b1893 docs(bitget): add bitget documentation
86de1dee2 feat(bitget): add support for order time in force
7afd3cb73 feat(bitget): configure mark timeframe
b887e2ad2 test: cleanup conftest file
ea2350f1e test: add test for bitget ohlcv specifics
786c85845 test: enable testing bitget spot markets
a6b643a33 feat: add ohlcv candle limit specific for bitget
0e5235e6d chore: add basic bitget exchange
c93c97c2d fix: tick_size_over_time must not use scientific notion
271ba462b test: improved formatting for simplified digestion
690918f8d test: add test for historic_tick_size with small numbers
de5dd6651 fix: update decimal_to_precision usage to new interface
c8593b230 feat: add missing keys to config schema
b6d0cde29 temporary fix until better solution is found
f0dfc23a5 chore: bump dev version to 2025.8