github freqtrade/freqtrade 2024.3

latest release: 2024.4
one month ago

Highlighted changes

  • Persist additional trade information in the database.
  • Partial exits now use a simplified logic (-trade.stake_amount now corresponds to the full trade amount, it’s no longer necessary to adjust the return value for price).
    ⚠️ This can be a breaking change if your strategy relies on precise calculations.
  • Update Docker image to 3.12.
  • VolatilityFilter can now be used to sort pairs based on recent volatility.
  • RangeStabilityFilter can now be sed to sort pairs based on recent “rate of change”.
  • Bot start and uptime added to telegram /health messages.
  • Simplified error messages in case of Configuration errors, pointing users to the documentation.
  • New command show-config - providing a way to visualize the configuration composed from multiple configuration files.
  • Provide a seperately installable package which provides the freqtrade-client command to control the bot from CLI (same functionality as the rest_client.py script).

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
a6bfe1a4a Bump version to 2024.3
2072a625b Align build job names
8792d5625 Update dockerhub-description workflow to new approach
556db08b0 Rename CI files
b651e13bd Schedule leverage tier updates
a534340cc chore: update pre-commit hooks
067a7315f Use proper secrets syntax
f405b7d1c Add CI step for leverage tier updates
178a0a5db Fix typo in update script
055c4396d De-dent pre-commit update workflow
9726c4ae2 don't use cum profit
7895eeb3b Fix tests after modified output
0a186eb8b Remove Cum Profit %
79719bbe8 Add freqtrade-client programmatic use sample
e100a0678 Use regex to match logs in rest-client tests
d606d6d08 Use a path that works on windows, too.
01f09ca5c Update command name and documentation
8ad037507 Update docstring
e8cea35f5 Have Pool parameters be kw only
411322357 Slightly enhance test cov
d047ac67a Remove unused import
e072522ed Improve tests
e971f043f Improve test cov
66422ce9a Add support for requests pool size configuration
0a0105c31 Re-add --cov args
a6ad36d08 Coverage for ft_client ...
7eb91c74a CI - always install ft_client
79b8363b7 Depend on freqtrade-client on install
ca9d792d2 License to link
fba028abd Fix version number
3f226c502 Also install ft-client in linux CI
afe3d3ebd Move Version check to the top
01bb7706e Fix messed up version-align script
772dbeaf7 Fix file permissions
0c026f950 Ensure versions are aligned between freqtrade and freqtrade_client
f0e095757 Don't set same parameters twice
7e3e65ecd Add tests for rest client
bef15b523 Add license for client file, exclude tests directory
127f61ccb Improve odering of things in ft-client
bd49ad642 Add CI step for ft_rest_client
46622f617 Add minimal readme
5888da5bc Re-add rest_client script
bfe739da3 Add pyproject.toml for ft_client installs
1036a890b Split rest client script
3401e3506 Move rest_client to it's own sub-structure
e75d46321 Exclude user_data
26311663e Add classifier for python 3.12
1ec04a8dc Add support for max_value in volume pair list
78442e36e Fix small grammar error
38e7b0e8a Update bot basics logs to align with reality
e49ab2593 Update / improve docs
c433f4908 Remove temporary gate workaround
553094c3c Assign 'status_stop' for gate stop orders
5b4d28663 chore: update pre-commit hooks
666f2fc10 Fix bug where amount becomes 0
50cd36acb Remove unused test method
dfd46a19b Update freqai-configuration.md
f60d6c8f6 remove duplicate call of order_filled callback
18e34632d Update PyTorchModelTrainer.py
f1f272b88 Bump pre-commit sqlalchemy
392598086 Bump the pytest group with 2 updates
16083b2f6 Bump sqlalchemy from 2.0.28 to 2.0.29
bbeba6ab3 Bump ccxt from 4.2.78 to 4.2.82
710a953c4 Bump mkdocs-material from 9.5.14 to 9.5.15
9d5cb103d Bump time-machine from 2.14.0 to 2.14.1
674ec6acb Bump pre-commit from 3.6.2 to 3.7.0
6e6a93f0c Bump nbconvert from 7.16.2 to 7.16.3
74641c565 Bump ruff from 0.3.3 to 0.3.4
ea634e5ce Add test for backtesting
f6a8cb469 update docs (fix typos)
2854186b1 Adjust test to work against usdt values
093fd48cf Update test to use default_conf_usdt
7f5c38fd5 Update environment variable config to clarify that config cannot be set via environment variable
b2a672268 remove order filled cb from handle_stoploss_on_exchange
e07f3d266 add test for order_filled callback sl on exchange filled case
6d3e3b5bf add test for order_filled for freqtradebot update_trade_state
72225daa6 add order_filled callback call for stoploss orders
6e88cbfca Update prebuilt pyarrow wheels
163d03ac6 Update CI schedule to run towards the middle of the night.
b4c9541fb Add hints about show-config to configuration docs
d0bda7c2c Add documentation for show-config utility command
d2a678137 Revert one error to OperationalException
cc7d341af Add overrides for Exchange Support
0d9775918 Bump ccxt from 4.2.67 to 4.2.78
150b7f85d Bump pyarrow from 15.0.1 to 15.0.2
40898f522 Bump uvicorn from 0.28.0 to 0.29.0
d6ff8ebbc Bump the pytest group with 1 update
65105f776 Don't modify original config
82ff4d587 Add explicit test for config sanitization
b1fe5b6d8 Add "sensitive information" warning output
6dc4fa9db Add test for show-sensitive
81d1a662a Add --show-sensitive CLI option
6b7935f1a Add initial test ...
38ae3ac03 Add "sanitize config" section
3059d66ec use original config for printing
7543b2681 Add show_config command
8e5097d9a Update setup-tools-config for non-dry mode
21dcb4a6a update setup_utils_configuration to not force-set dry-run mode
35253f9c8 Add overrides for Exchange Support
6219a2590 Add documentation link, re-align imports
669076a29 Add test to ensure configuration error is displayed as expected
abd096dcd Update exchange tests to config error in a few places
4a097bd64 More usages for ConfigurationError
64019e0e6 More configError usages
3621ba034 Use configError in more places
17d052df3 Configerror handling for bt api endpoint
ebd516cad Use combined exception handler at startup
b5548dbee Add proper handler for config-error
3a6474967 Raise ConfigurationError on config validation
ca94bbe99 Add configuration error to Exception hierarchy
02570e285 chore: update pre-commit hooks
996fcb6f5 fix current_time parameter of order_filled usage in backtest
6941953a8 update doc details about order_filled callback details
08c1866cd fix mypy artype error
d1e1b8410 add order parameter to order_filled callback
cd986ced4 moove order_filled callback position from update_trade_state to _update_trade_after_fill
18a3489a6 add order_filled callback to bot and backtest
d4ddcbc78 Bump types-dateutil in pre-commit config
8395192e9 Bump markdown from 3.5.2 to 3.6
28575a9ef Bump pydantic from 2.6.3 to 2.6.4
80be86533 Bump ruff from 0.3.2 to 0.3.3
2725ee577 Bump plotly from 5.19.0 to 5.20.0
405e0f02d Bump mkdocs-material from 9.5.13 to 9.5.14
9bb9f7453 Bump the types group with 1 update
409729f9d Temporarily support 'finish' in the order, too
838d9cd4d Improve stop fills order handling on gate
3ed53218a Fix rate display rounding problem on telegram messages
c06f89210 don't use :.8g formatting - it's unreliable
ca2d322eb chore: Split strip_trailing_zeros function in formatters
d07ec5054 Remove unused line
01c0fd042 If enable_protections are enabled, disable all - some work on all pairs, and we don't check protections either so ... just disable them completely - added info in the docs
45bb9ee9a Reduce stacktrace length for "no config" errors
60a62d933 Fix some failing mocks
4281642f5 Fix flake failure due to flake update
5e0aa9108 Update tests correspondlingy
dbcb07275 Refactor datahandlers into their own package
4aff24f6d Fix imports that import directly from file
3037cef4d Update freqtrade image to python 3.12
fcc6d0fea Don't run notify-complete for non-freqtrade repos
c284da404 Fully test freqAI against python 3.12
ec23fec3e fix typo
e958552bc Explain precision filter better
85c145c77 Don't close the test trade ...
28bdbbffc Patch torch logging on 3.12
e560f9963 Don't run Torch models on macos.
4e02d31cd Mock torch on mac ARM
0cf46d860 Revert "Remove conditional checks for python 3.12"
08cff9890 Remove conditional checks for python 3.12
2b5b518cc Bump rl requirements for 3.12
ce6dd466f fix typo
72015686b Update pyarrow wheels to 15.0.1
a4541fda2 Nitpicking documentation:
14c27f2cb fix test
c5201a647 fix precommit
8000f9429 changing the partial exit logic to be simpler and easier to understand
3c34126e9 chore: update pre-commit hooks
e336d870a Bump ccxt from 4.2.66 to 4.2.67
225ef6b8c Update to latest ruff format
76459f08a Update contributing with new ruff syntax
048cad04a remove unrelated old changes
bae4973da simplify full exit using adjust trade pos
6c81807b7 Bump sqlalchemy in pre-commit
b6fb1dc9e Bump sqlalchemy from 2.0.27 to 2.0.28
2a8c6a6d0 Bump uvicorn from 0.27.1 to 0.28.0
8d22fbf39 Bump ruff from 0.3.0 to 0.3.2
018d10b34 Bump ccxt from 4.2.58 to 4.2.66
33556f3c2 Bump mkdocs-material from 9.5.12 to 9.5.13
1c91675c5 Bump the pytest group with 2 updates
c78480c49 Bump types in pre-commit file
23d226d37 Bump pypa/gh-action-pypi-publish from 1.8.12 to 1.8.14
9b44d1d8c Bump packaging from 23.2 to 24.0
ab6a5d75b Bump python-telegram-bot from 20.8 to 21.0.1
e1fdb8dec Bump nbconvert from 7.16.1 to 7.16.2
6d2f454d8 Bump pymdown-extensions from 10.7 to 10.7.1
02dc895c4 Bump pyarrow from 15.0.0 to 15.0.1
80560a389 Bump mypy from 1.8.0 to 1.9.0
60b9d9448 Bump the types group with 2 updates
518b6eb56 use dt_ts to simplify exchange date math
4e9417816 exclude python 3.9 on Macos 14
0bd50a6e2 Don't disable tensorboard on mac ARM
cb1f49e81 Don't run torch models on 3.12 yet
edc74ae2e Split macos Installation into 2 separate actions
c5f2a69d9 Allow running catboost tests on 3.12
971a81e15 Bump catboost to 1.2.3, remove 3.12 restriction
cc3b2000e Avoid fully patching torch on M1 macs
86db88838 Install libomp from brew for macos
7cceddb3d Improve wording on /health message
29f90cbd0 Run CI on macos-14 (M1)
1b608a162 Add type-hint for result dictionary
f8cbf138e Add Initial bot start and current bot start to /health telegram msg
acbb48530 Add bot start and bot-startup to health endpoint
2cfe99395 Fix condition for min-stake in position-adjust mode
b690325f2 Remove typo in change-dir notebook
865ebc314 update status table to show total amounts in stake currency
3e6e534e7 fix some typos in docs
510863f93 chore: update pre-commit hooks
99c8be4c3 Bump pydantic from 2.6.2 to 2.6.3
9ad60643f Bump ruff from 0.2.2 to 0.3.0
8c0ba2a69 Bump ccxt from 4.2.51 to 4.2.58
d6ae63ac4 Bump python-rapidjson from 1.14 to 1.16
ec17b5523 Bump cachetools from 5.3.2 to 5.3.3
b8c16fb88 Bump python-dateutil from 2.8.2 to 2.9.0.post0
c3f9b16c8 Bump rich from 13.7.0 to 13.7.1
062376f57 Bump mkdocs-material from 9.5.11 to 9.5.12
21709204e Bump time-machine from 2.13.0 to 2.14.0
7ca3032d5 Bump the pytest group with 1 update
07bf19a99 Bump pypa/gh-action-pypi-publish from 1.8.11 to 1.8.12
a948796ef fix: manually add train eval since xgboost does not expose this information by default
255ea8863 Add to telegram documentation
ed8469f23 use trading_mode to determine trades file location
265a7123d Add explicit test for telegram functionality of list-custom-data
ceb461a25 Switch sequence of information documentation
c1ae11008 Improve documentation
30b4f2715 Cleanup some nitpicks
1176c16b9 REmove unnecessary assignment
093a093bd fix: use data metric_name directly
b8a108959 fix: try plotting as much info in xgboost tensorboard as possible
fcb16098d Reduce Error level when converting trades
7ed7ed408 Accept trading-mode for trades-to-ohlcv command
99da6f70c Fix failing test due to new approach for convert-trades
09d763b60 convert-trades should do proper pair expansion to support regex in pairlists
5e7868a28 Remove block from download-trades for futures
66e43f2fe Adjust tests for new arguments
43103f51e Update functions that use datahandler trade methods
b6040e270 Update data handlers to accept trading_mode
f8cc2a6e7 Fix typo in doc header
75c84bfe6 Only show a subset of list-exchanges output in the docs
bdd63aa1d FIx futures trades pair download directory
5dee60921 Fix test for convert_trades_to_ohlcv
46e616f99 Remove defaults for converter - they're always provided and necessary.
cdfeae9f9 Update merge to "left" to avoid creating non-existing mark candles
e988995d7 Handle NaN funding fees
b55105ec8 chore: adjust `timeframe_to_*` imports accordingly
4a8c8f296 chore: extract `timeframe_to_*` functions into `exchange_utils_timeframe.py`
883f27d99 Version bump to 2024.3-dev
c0e9726f4 don't use "1M" - but be explicit in the intend
0021e2c20 fillna needs explicit type.
ce2f4f89c update pandas deprecation to_hdf
5912d87b6 Pandas - update view to astype
b1015172c Update test for fixed pandas behavior
bd7edfba9 Bump pandas from 2.1.4 to 2.2.1
e80ad309f Improve type safety, refactor volatilityfilter
817ad6440 Add docs for rangeStability sorting
67152ad48 Improve and parametrize pairlist tests
e82d9e2f5 Test volatilityfilter with more pairs
b972ee78e Enhance rangeStability test
2704f6e75 Improve test
9dd596727 Add sorting capabilities to rangeStabilityFilter
6a313aa9e Improve help wording
81de29a1e Improve conditions for removal of pairs
3677953d9 Properly cache volatility-average
7af46628f Simplify rangeStability Filter
88a2995b4 Fix wrong typehint
866ff55d8 document sort_direction mode
91ba4f642 Add test for volatilityFilter sorting
31e254313 Enhance generate_test_data with parametrizable random seed
eaf70428c Improve volatility tests
38ca58c72 Add verification for volatilityfilter
0bf73cc64 Voliatilityfilter - sorting
7ddaa09a2 Refactor VolatilityFilter
6307e1630 Properly format notification date
c7fff45be Fix test leakage
4bbb3174b re-enable use_database after bt test
c511d65d2 Add backtesting test
e8ca9ce39 Add testconfirming correct functioning
ab062d7bb Add test to run in backtest mode
d5b21f2a3 Fix bug in backtest mode
9be7759e4 Add initial test for custom_data
304f52ab7 Fix some minor custom-data bugs
6a6e3aacf Fix broken deletion
67b910835 Simplify access to custom_data - users will usually only care about the value, not about the metadata.
8364a704d Fix a few sql gotchas
790c7e386 re-adjust logic for custom_data in rpc module
8dda28351 Simplify custom_data stuff
b7904b8e8 Combine custom_data classes to one file
7fd70b82f custom_data: Simplify and fix a few things
9699011cd Remove pointless wrapper
83b22dedd Fix non-reset of use_db
c67e451fe Remove unused imports
859309461 Ensure custom data access goes through the accessor functions
d49da7638 Slighlty improve docs
626c90410 Fix some issues with types
2393a9fec Fix some minor test failures
8f9f4b40c Update model to new sqlalchemy version
3b54e1e74 add Try block to catch the failure on using FullTradesFilter on non-dry/live run
c420304b3 Delete custom data before the trade.
8494bea64 Handle max message length.
c8ba8106e Update telegram reporting.
ce9d9d7e6 Finish renaming persistant storage infrastructure.
365527508 Rename files.
9fdb8b07a Rename persistant storage infrastructure.
24b6ce450 Further cleanup.
3ad8111d1 Remove stray debug messages.
4f799cc9d Add /list_kvals command for TG and underlying RPC.
c719860a1 get_kval() -> get_kvals(). Update docs also.
f3dee5ec4 Update handling for query_kv when no Key is supplied.
be169a23f Add a new session for KeyValues.
abda02572 Fix KeyValue __repr__.
de01aaf29 Add documentation details.
096e98a68 Remove stray debug message.
10917a280 Add initial structure and wrapping.

Don't miss a new freqtrade release

NewReleases is sending notifications on new releases.