2024.12
版本发布时间: 2024-12-30 14:01:59
freqtrade/freqtrade最新发布版本:2024.12(2024-12-30 14:01:59)
Highlighted changes
- Improved download data performance for binance.
- Support for more complex dry-run wallets, simulating additional balances (these will not be tradable).
- Allow passing config lists via environment variables.
- Improved Rest API documentation.
- Telegram: support for Group chat threads / topics.
- New
/tg_info
command to simplify getting chatid / groupid and topicId. - Deprecation of hdf5 as dataformat (will be removed with the next release).
- FreqUI:
- Enhanced dashboard TimePeriod charts, adding aggregated weekly and monthly lookbacks across bots.
- TimePeriod charts now show relative profits.
- Backtesting view → new MarketChange view.
Sponsors
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/
New Contributors
Includes the ones from 2024.11
- @14790897 made their first contribution in https://github.com/freqtrade/freqtrade/pull/10902
- @gaardiolor made their first contribution in https://github.com/freqtrade/freqtrade/pull/10839
- @emmanuel-ferdman made their first contribution in https://github.com/freqtrade/freqtrade/pull/10943
- @smith558 made their first contribution in https://github.com/freqtrade/freqtrade/pull/10944
- @andrasmining made their first contribution in https://github.com/freqtrade/freqtrade/pull/11141
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
9e0b9962c chore: bump version to 2024.12
0032f9a96 chore: bump ccxt to 4.4.43
5ca31508f chore: remove "former huobi" terminology
a58fde367 chore: remove "former OKEX" terminology
3f41910eb docs: add myokx special case documentation
9a201566f chore: fix typo in telegram help message
a180cb95d chore: Improve list-exchanges output
fbb757fa2 chore: may myokx to okx - it's just an alias for european users
6ee38adbb fix: round open_rate to tradable precisionThis prevents odd display issues with 16 decimals in case of multiple entries.
6f3dca44a fix: apply hyperliquid market rate fix to fetch_orders
a4ae5b74a chore: add log_response after average modification
fc970a1af chore: Remove pin of matplotlib
b5748fee6 docs: add FAQ about resetting a bot's database
2ad1fbd77 chore: update pre-commit hooks
1ca594bbc chore: show "total" profit if necessary
e66611c96 chore: fix 2 minor potential bugs
c5a95dc68 refactor: reuse logic from get-status for get status-table
d7ccbfef2 test: improve test accuracy
79f35bb55 chore: add docstring to rpc_status_table
4963a9668 chore: fix typo
5750d0589 feat: deprecate hdf5 as data storage
1810a911d chore: update chatID to be identical throughout docs.
51ae0f037 chore: check for update.message being present
d73f01701 chore: reduce verbosity for topic_id wrong check
010b28267 docs: document `/tg_info` command
6ef8291b2 test: add test for tg_info, update chat_id to be not 0
b820810af hyperopt-list --export-csv command stake currency fix
cef21860e feat: add _tg_info endpoint for easier information gathering
59b1460e3 Adding drawdown information for hyperopt-list --export-csv command
b75ac1243 docs: document group-topic-id
7092edfe4 chore: update pre-commit hooks
066333501 chore: update config_schema with topic_id attribute
6cc0c2be9 feat: add support for "topic_id" in telegram notifications
4a256ed7c chore: failed messages shouldn't return the wrapper but None
2a526a815 fix: don't over-state stake-amount on first entry
0a8165888 test: add test to confirm behavior in #11135
5ac95a050 test: close mock order for funding-fee test
cf4c29a57 chore(deps): bump technical from 1.4.4 to 1.5.0
9405f415d chore(deps-dev): bump mypy from 1.13.0 to 1.14.0
9d022180e chore(deps): bump jinja2 from 3.1.4 to 3.1.5
ed3367244 chore(deps-dev): bump ruff from 0.8.3 to 0.8.4
b8b69eecb chore(deps): bump ccxt from 4.4.40 to 4.4.42
65acd5d82 chore(deps): bump urllib3 from 2.2.3 to 2.3.0
4d6732cd1 chore(deps): bump psutil from 6.1.0 to 6.1.1
dc5942115 chore(deps): bump pydantic from 2.10.3 to 2.10.4
c14492a6c chore(deps): bump mkdocs-material in the mkdocs group
07682c396 chore(deps): bump astral-sh/setup-uv from 4 to 5
503305cbd fix: properly pass timerange to data-download
04813e452 Change unavailable "max_drawdown" key
b50d9f5c5 Fix KeyError: 'max_drawdown' in jupyter notebook
40cb70fca fix: one-side pairlocks not showing in UI
0b0bbd4c4 chore: improve comment wording
4704f2b08 chore: fix blosc version selectors
f9bd11f6f chore: blosc2 only supports python 3.11+
0d73e961a chore: pin blosc2 for raspberry builds
66380566c Update docs/stylesheets/ft.extra.css
8cb69e4d5 test: Update test for new liquidation price precision rounding
8ee2c849b fix: round liquidation price to precision in a different spot
564d87486 chore: improve typing
d38fcd2db Fix missing EOL
06e20b38b Add params to REST API table description, fix first column width
c4b39a4fb docs: add suggestion to prefix all urls with base url.
cdcca3da1 chore: update pre-commit hooks
44d1f169c chore: type rpc._freqtradebot for improved DX
d805ee6f3 chore: improve type safety
ed2427852 test: adapt starting capital tests for tradable_balance_ratio
5af894047 fix: starting balance should include tradable_balance_ratio
609893f7e chore: update pre-commit hooks
3f795a891 chore: improve logic for live wallet update
a5907db5d chore: update pip-install command for windows ci
ad7b70a35 Add more detail to the REST API endpoint docs
c8649a77d chore(deps-dev): bump ruff from 0.8.2 to 0.8.3
d780d56b9 chore(deps): bump janus from 1.1.0 to 2.0.0
2587b549a chore(deps): bump uvicorn from 0.32.1 to 0.34.0
dd805c4c2 chore(deps): bump scikit-learn from 1.5.2 to 1.6.0
5cd1892de chore(deps): bump matplotlib from 3.9.3 to 3.10.0
f575e56e4 chore(deps-dev): bump pytest-asyncio in the pytest group
af7974add chore(deps): bump pypa/gh-action-pypi-publish from 1.12.2 to 1.12.3
685811ef6 feat: update backtest_api with new storage interface
12ae36e99 test: use tmp_path instead of testdatadir for writing
abfe68376 test: fix tests data pollution
a1ab8de59 test: Update tests for new bt storage method
b04c5aec8 refactor: move backtest "storage" logic to storage file
b862927c8 chore: don't exclude tests from pyright
5744e16a0 refactor: use 1 structure to save analysis signals
11f0a5903 docs: slightly improve position adjust doc wording
5f947a86c docs: improve ordering in adjust trade position callback docs
d0c5d614f docs: add note about incompatibility between orderflow and freqAI
1e74aa308 chore: bump ccxt to 4.4.40
f54a14191 fix typo
b54d8c53a add warning about loose logic
016cabb7b chore: simplify imports
9129266f5 feat: greatly improve performance of orderflow by not using apply
e8376d5b7 feat: add timeframe_to_DateOffset
cc7b1a564 chore: clean up install_windows call
f11fe14cd chore: remove system mode, set path globally
219e6b420 chore: Try using uv venv creation
3a6ef8c34 chore: use link mode for UV installs
4f318a598 chore: uv - different caching
f978a5c75 chore: uv - different caching
f378e1075 chore: link mode copy
30909d13b chore: uv: glob
8cd03c962 chore: uv - enable cache
8f617d01d chore: further uv tests
569ac2bc5 chore: move uv work
c1be01449 chore: package name lowercase ??
7d1ac0248 chore: only binary ...
aa8e504ef chore: remove non-existing UV argument
6963141eb chore: fix aliasing
3295b1c8d chore: try using UV for windows runs
0159d25e4 chore: add missing dev-deps to pyproject.toml
8cf3c7b82 chore: use FtPrecise for stake_amount_filled calculation
c00b248d1 Add initial_state option to FAQ
d2b4d1e18 add more explanation regarding reducing position partially
467c0dfff chore: update pre-commit hooks
34835752f chore: improve typing in percentChange Pairlist
b9aa78b98 fix: crash in PercentChange pairlist
d8fa782f1 test: Add test with faulty behavior
f3d7b249b test: Improve wallet tests
097836d19 feat: improve logic for liquidation price calc
e9cf0a71d chore: update pre-commit hooks
fe9d1a053 chore: bump pre-commit dependencies
6b1ac499b tests: more tests for cross wallet
0fc0b2a1b test: add test for cross balance logic
6887ed4bf feat: add cross margin balance logic
8cb82df05 chore: simplify dry_wallets call
678821467 chore(deps): bump pydantic from 2.10.2 to 2.10.3
f1fabb07b chore(deps): bump fastapi from 0.115.5 to 0.115.6
8aea01545 chore(deps): bump ccxt from 4.4.35 to 4.4.37
83471228e chore(deps): bump python-telegram-bot from 21.8 to 21.9
e97a647b5 chore(deps-dev): bump ruff from 0.8.1 to 0.8.2
f5dceb0b0 chore(deps): bump mkdocs-material in the mkdocs group
d4fbdeee9 chore(deps-dev): bump the types group with 2 updates
f529cfe8c chore: fix wrong return typing
4d36aaff3 feat: convert get_valid_pair_combination to generator
f07aec457 chore: remove unnecessary imports
d898c80e6 test: Add test for get_conversion_rate
2ff0abc6e refactor: conversation rate retrieval to exchange class
0276e65f3 test: update rpc test for new behavior
4cd8e6b44 chore: simplify rpc_balance method by relying on exchange cache
58357a074 chore: calculate total_stake only once
d0223e6f4 chore: simplify dry-run wallet update
142ea68dc chore: fix oddity of price_to_precision
654d2ab63 fix: Round stoploss_dist to price_precision
ae1baf578 test: mock price_to_precision for liquidation calculations
3c88bdc60 fix: round liquidation price to price precision
6d698e584 chore: return 0 total balances
193b98934 chore: Be more precise with binance account limitation
8dc322d7f chore: don't allow negative stake amounts
eee5d710e chore: patch torch all the time -
10b5d5e56 docs: add "list parsing" logic to documentation
934bcf253 test: add tests for list parsing
0683ba3a5 feat: limit environment-variable json parsing to lists
98e0a5f10 chore: remove unused arguments in loss functions
fb9e11b7b chore: improve type safety
e77ca024d chore: improve naming, don't duplicate column list
63f8217cd chore: ensure exif-data is removed from images
9f5cb3a07 chore: add exif-stripper to ensure exif data is removed
e09d1b42f chore: eliminate duplicate trades data grouping
267d9333a chore: remove pointless, very noisy log message.
ab39ac29e fix: ensure data type is maintained when data comes from cache.
6c25feabf tests: assert type of orderflow object
171157c10 chore: further simplify orderflow code
3137d7cf2 chore: remove unnecessary config alias
6ab528748 tests: Update orderflow tests
621dfc136 fix: Improved caching
9d07f5dc2 chore: reduce orderflow code duplication
48dd86bd9 chore: use `.at` for assignments
487958289 feat: use dataframe.at directly to avoid intermediate series
6584f86bc test: add Spy to improve test
82d517fcb test: improve orderflow test
ff371c43e tests: add test to ensure caching works
0bf0e1808 chore: add todo for future cleanup
6be5947f6 chore: Move local Import out of the loop
1d0702e14 chore: update pre-commit hooks
298ce335b chore: eliminate duplicate trades data grouping
e04f630f4 chore: further improve typing in orderflow
7dfee16e2 chore: improved logic ordering in orderflow method
d6c21e2af chore: orderflow: better typing
ebae0a724 chore: improve typing of new functionality
fe834f00a fix: import causing long startup time
ad8f62128 tests: Improve hyperopt loss tests
18305a5bf docs: update hyperopt docs to include new argument
b0b73bf16 feat: add starting_balance as argument to hyperopt_loss_function
7a8971b9b feat: use get_dry_run_wallet helper
c082e5f6a feat: add dry_run_wallet helper
ef0703f20 fix: Set timeframe for api calls
57d5a55ca chore: update pre-commit hooks
2f4bd6a0c chore: split pypi and pypi test jobs to enable proper attestation
73f00d2bc fix: check if days is None before conversion
cf896bbb5 chore: add the missing space in log
ba162e35c fix: invert logic and to or
00e9178d5 chore: bump pyarrow wheel
c84114696 chore: Remove non-suppored callback from XGBRFRegressor
6c9e6cc19 chore(deps): bump xgboost from 2.0.3 to 2.1.3
980bfddd8 chore(deps-dev): bump ruff from 0.8.0 to 0.8.1
06327e8f0 chore(deps): bump cryptography from 42.0.8 to 44.0.0
cffcb2b98 chore(deps): bump pyjwt from 2.10.0 to 2.10.1
1da8b6890 chore(deps): bump matplotlib from 3.9.2 to 3.9.3
d53f4fb81 chore(deps): bump pyarrow from 18.0.0 to 18.1.0
02fcd3b48 chore(deps): bump pydantic from 2.10.1 to 2.10.2
7b70a7a68 chore(deps): bump python-telegram-bot from 21.7 to 21.8
5060725ef chore(deps): bump mkdocs-material in the mkdocs group
6bf321866 chore(deps-dev): bump pytest from 8.3.3 to 8.3.4 in the pytest group
d7d73364e chore: version bump 2024.12-dev
1510c5517 chore: update ta-lib wheels for 0.4.34
f6e2fcbf1 chore: bump ta-lib to 0.4.34
162c79029 chore: slightly reorganize test file layout
5f363f5c9 chore: properly remove ccxt reference
bd5877ad4 chore: add space in log message
71cf7aedb chore: remove unnecessary test-file
fa1e0af19 chore: remove direct exchange connection
a6199680c fix: freqAI bug causing failures on 2nd backtest
d1710826e chore: improved naming
675b996f5 chore: improved naming in test case
21777a580 chore: do more pinpointed imports
b1ca00b03 chore: don't shadow pandas builtin methods
e2a09f272 chore: Improve naming, remove unnecessary method
0e77c89d7 chore: simplify code structure by moving conditional to parent method
69c1de7e4 chore: move fallback param to config directly
09308e568 fix: increase code reliability by not relying on stake-currency to be in the dict
671821aeb docs: Add documentation for dry-run-wallet as dict
7369331e2 tests: add test for multi-pair dry-run wallets
e6e193f25 test: assert tickers is called a 2nd time if necessary
2bb111605 feat: update rpc_balance to fetch spot tickers
37aba6f7d feat: Allow fetch_tickers from different marketsegment
3fc259bb9 feat: add non-trading balance to wallet
15c1a8ee0 chore: reduce dict lookups, reuse attribute
b4b6de4e0 test: update test ...
5b0be7e1a feat: support dict like dry_run_wallet
92e64927b feat: allow object as dry-run balance
c3032feaf * allow json in env variables
0f53dc1b7 chore: improve log level to warning when falling back to API
19f96d60e refactor: streamline error handling by raising instead of returning
bfdbf0248 refactor: rename asset_type to asset_type_url_segment
660863392 refactor: rename fetch_ohlcv to download_archive_ohlcv
8baa0f731 chore: add user friendly warnings
6b18c4f24 feat: cancel uncompleted tasks before return
40f70a1cc chore: warning when fall back to rest API
c869dfea3 chore: add more docstrings
39b4263b8 chore: improve comments
cf7016b36 chore: remove unused code
1893ac7ed tests: patch thirty party libs from imported location
a748d105e chore: remove performance compare script
fc307bcf5 tests: fix
03033a068 refactor: use exchange.markets to avoid loading ccxt markets
d7555e1f2 feat: support proxy from environment variables
37726fba5 refactor: use CCXT for pair to symbol conversion
c4cf582c9 refacotr: default to stop on 404
acc53065e refactor: strip fast download logic into a method
cf0f23263 refactor: move download klines count message
e2ee7f7b2 feat: fall back to rest API by catching all exceptions
76187d31c feat: more binance fast download timeframes
c3bbedbc5 refactor: create coroutines on demand
3c76af9da tests: fix windows
ad12a9eb9 tests: setup windows asyncio loop
45bf04664 tests: add performance comparison
2ceda2987 feat: add binance 1s ohlcv fast download
1aa863a92 tests: fix
a417698fc tests: fix test and improve coverage
e49b5b03d feat: stop on 404 to prevent missing data
b5f503dbb tests: binance compare data.binance.vision to rest API
04d363354 feat: implement fetch data from data.binance.vision
4e585c5c3 feat: implement Binance.get_historic_ohlcv detail
867aae868 refactor: move is_new_pair logic to Binance.get_historic_ohlcv