Freqtrade Versions Save

Free, open source crypto trading bot

2024.3

4 weeks 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.

2024.2

1 month ago

Highlighted changes

  • Introduce a new pairlist, MarketCapPairList, which sorts pairs based on CoinGecko's market capitalization ranking.
  • Implement the storage of order tags within the order object, allowing for tagging on a per-order basis.
  • Enhance caching mechanisms for pairlists requiring candle data.
  • Implement active checks to prevent the creation of Unified accounts on Bybit, encouraging the use of standard subaccounts instead.
  • Address issues in Bybit resulting from recent API updates.
  • Enhance the formatting of Telegram messages, particularly when special characters are used in enter/exit tags.
  • Remove the stoploss_order_id field and utilize order objects to manage open stoploss orders.

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
0a8719c61 Bump Version to 2024.2
d6b01a6ff Assert for exact equality
01266ed7e Align test results ...
5402d276d Add header to warning box, reorder Boxes
d5c01f748 Bump ccxt from 4.2.47 to 4.2.51
d9f4c62f1 Add warning about excessive use of position_adjustment
080d9b55f Bump fastapi from 0.109.2 to 0.110.0
4ff888488 Bump cryptography from 42.0.4 to 42.0.5
e2a486f85 Bump nbconvert from 7.16.0 to 7.16.1
313de7b8a Bump mkdocs-material from 9.5.9 to 9.5.11
c2998f3d7 Bump pydantic from 2.6.1 to 2.6.2
9805cd768 Bump orjson from 3.9.14 to 3.9.15
c06e4ee89 Bump the pytest group with 1 update
d80ed7e33 Bump Docker Python version from 3.11.7 to 3.11.8
e2d3774b0 Clearer wallets variable/parameter wording
aad327b1f Update comment around funding fees
3e0755b8a Enhance funding-fee call test to account for different timezones
f164b8935 Ensure pytz is updated regularily by pinning it
c663016b4 Improve some type safety
9ac7149c4 Add check to verify that "since" is properly respected.
0acde2890 Remove pointless comment
f4ad1e802 chore: Remove wrong typehint
e30fa3a44 Remove duplicate pairlistmanager init
db83b0cdb Update typehint for candle_cache
4cfd5d004 Improve ohlcv pair cache with since_ms
3680e199c Fix range-stability filter downloading too little data
4e87169a0 Use set to reduce iterations
c013c76e6 Bump cryptography from 42.0.3 to 42.0.4
0199e7d3d Add type-hint to exchange_has dict
b3ba2cee1 Bump ccxt to 4.2.47
411f60647 Fix some tests due to new method
f53c019d2 Update "exchange_has" validation with new fallbacks
3497f7946 Add test for fetch_order_emulated
65af7750e Add fetch_order_emulated to support exchanges without proper fetch_order method
f6e2030bf chore: update pre-commit hooks
00bde70f7 Fix / improve styling in test class
434b8a423 bump types-requests pre-commit
82876570a Bump ruff from 0.2.1 to 0.2.2
a200b5524 Update sqlalchemy in pre-commit
39941a7ac Improve formatting in drawdown calc
66f483910 Further increase test coverate of max_drawdown
6aa1bbf57 Bump sqlalchemy from 2.0.26 to 2.0.27
381576b8f Bump pre-commit from 3.6.1 to 3.6.2
549b9f62f Bump tensorboard from 2.15.2 to 2.16.2
edb5431a7 Bump orjson from 3.9.13 to 3.9.14
4241db2fe Bump scikit-learn from 1.4.0 to 1.4.1.post1
c966f8314 Bump plotly from 5.18.0 to 5.19.0
f361824b1 Bump cryptography from 42.0.2 to 42.0.3
8675f86d1 Bump urllib3 from 2.2.0 to 2.2.1
0979d0b6e Bump the pytest group with 1 update
4c3879cb5 Bump the types group with 1 update
69a0f4c46 Fix bybit spot live tests
61e09ac71 Update telegram help with new wording
583b2fc69 Fail if unified account is detected.
e06b70eb0 Add log message for Bybit accout type
3250f4225 Improve validate_exchange
a5d1ae319 docs: Update sql_cheatsheet.md
ebd439cdd Remove unused import
78d8a4df2 Use "ohlcv_with_cache" for further pairlists
4bcf2c423 Don't tick on ttl cache
7b36a0fc4 Add explicit test for ohlcv_with_cache
bcfe7ef54 Refactor ohlcv caching to exchange class
8033faa2f Update pairlist cache behavior in VolumePairList
3f3760c0a Use Markdown V1 - update tests
4761bf242 Change enter_tag, exit_reason, mix_tag performance messages from HTML to Markdown to fix some string encoding issues.
c0da1b692 Fix edge-case when calculating cagr
a0b7df70d Added escaping to enter and exit tags on telegram performance messages.
60b12c1d9 Double newlines between functions ...
fd48991fb Fix duplicate parentheses
1696aa391 Adjust tests for new fields
fb54c9ffe Add open_fill_date stuff to json schema
0f85ef099 Simplify trade_model serializations
c6d1c1a98 Add dt_ts_none helper
c1d718484 Adjust for ccxt exception hierarchy change
a22181d72 Enable caching for "filter only" Volumepairlist
7f7e9ec87 Add additional test case for VolumePairlist in range mode
6c9b9e91e enhance volumpairlist range test
d01e9cf29 Improve log message
86da9cb65 Simplify some pairlist conditions
57fd0e379 Clarify processing_mode for RemotePairlist
280737447 Don't load empty dataframes - skip these
3d6079ae1 Add debug output showing the pair to be converted
f2a731201 Update sqlalchemy pre-commit
72290365d telegram: ensure msg update test uses the correct edit_message_text call
fd737af69 use query.edit_message_text to simplify telegram class
0740a1339 Bump sqlalchemy from 2.0.25 to 2.0.26
0ba27ddee Bump the pytest group with 2 updates
2c1ea2d25 Bump tensorboard from 2.15.1 to 2.15.2
8ca905b45 Bump python-telegram-bot from 20.7 to 20.8
903ae3367 Bump mkdocs-material from 9.5.8 to 9.5.9
7d74a4c19 Bump tqdm from 4.66.1 to 4.66.2
7e8e36c6b Bump ccxt from 4.2.39 to 4.2.42
d5aec91a4 Bump pre-commit from 3.6.0 to 3.6.1
f10c8f9c3 Bump uvicorn from 0.27.0.post1 to 0.27.1
3aa2d0c30 Slightly improve memory-usage of kraken-convert
a83b5abb5 Allow wildcards for pairs filter
f89147fd4 Allow limiting kraken pairs to `--pairs` selection
adf63a45c Align new-config  documentation examples
ce6b62f86 Bump numpy from 1.26.3 to 1.26.4
01a00ad04 Bump nbconvert from 7.14.2 to 7.16.0
9f449dd34 Bump ruff from 0.2.0 to 0.2.1
68fd7d7ff Bump mkdocs-material from 9.5.7 to 9.5.8
a0c246fa9 Bump ccxt from 4.2.35 to 4.2.39
7223a6c50 Bump pre-commit/action from 3.0.0 to 3.0.1
bf1f08cd2 chore: add dependency groups for regular updates,
3e5a572fc Allow int as trade-id parameter
43bab85b8 fix strategy-updater docs
d2e9d36de chore: Update ordering of requirements in setup.py
e50fac34a Bump technical to 1.4.3
8d0250407 chore: update pre-commit hooks
4aef5676d update tool.ruff configuration to match 2.0 version
73e2e034a Remove unused argument
b4f030fd5 Bump pydantic from 2.5.3 to 2.6.1
b9245aef2 Bump orjson from 3.9.12 to 3.9.13
646aca7a3 Bump fastapi from 0.109.0 to 0.109.2
a675d2b02 Bump cryptography from 42.0.1 to 42.0.2
667a8cc59 Bump peter-evans/create-pull-request from 5 to 6
e773276dd Bump ruff from 0.1.15 to 0.2.0
87e813a3d Bump mkdocs-material from 9.5.6 to 9.5.7
5114be42c Bump urllib3 from 2.1.0 to 2.2.0
440382ae6 Bump ccxt from 4.2.25 to 4.2.35
ab7364c62 Bump aiohttp from 3.9.2 to 3.9.3
696118268 Bump uvicorn from 0.27.0 to 0.27.0.post1
cb2aaa7bb Fix wording fully.
35e1421d5 Reduce whitespace
0f9e84658 Update Tests data to work with new cached levtiers
2989b4276 Update cached binance leverage tiers
3711fa509 Improve formatting of leverage
c5948693a enable sub-minute backtest detail timeframes
846948499 chore: Split stoploss tests from freqtradebot
57df7d9ec chore: convert test dir to package
80f6fbbae chore: Move bot-related tests to test subdir
0d14b7a80 perf: only create detail timedelta object once for detail backtests
ad121c19b Allow <1m timeframes for utility modes
67c3bad97 Fix misspelled comment
0bc5c876c Fix GITHUB_REF variable interpolation in ci.yml
13ee90725 Fix syntax error
7082a8073 add debugging for GITHUB_REF
cd484bd48 Update extract-branch-name to new syntax using GITHUB_OUTPUT
d1a96af5e Add ft_order_Tag to backtest test
6ba896609 chore: Add minified parameter docstring to to_json method
78a1c7247 keep ft_order_tag for backtest responses
0fa0f49b7 Add adjustment order tagging in strategy callbacks docs
6806fab1b Fix migration not triggering
79b8496f3 Fix backtesting not setting entry_tag out of position adjustments
d664e7683 Add some tests
398b93bee Fix rpc test
2d704a77b Improve formatting
830a004df Move response handling to interface wrappermethod
535ff387f add order_tag handlig to running bot
95e51bf81 allow adjust_trade_position to return tuples in backtesting
e8288a34c add ft_order_tag to backtesting
39ffee381 Improve type hint
ccd4c715c add order-tag to serialize / unserialize methods
d82bfc9fa Add order_tag to orders model
c59ae30e3 chore: Add minified parameter docs to to_json method
cfc6d3b32 Apply "Dependencies" label to pull requests
d219983f5 Bump ruff version
6c27b27d4 Bump version to 2024.2-dev
36d4f10a6 chore: update pre-commit hooks
470a239e8 Formatting ...
01baea8aa Test exceptions / errors
4a580fc72 Add test validating cache
d691ffe9d Test more diff. scenario
eb7fbb009 Improve doc wording
63aac1a2c update docs
17af69435 remove mode, add max_rank, modify test
b02e15b16 Bump lightgbm from 4.2.0 to 4.3.0
23ac9e145 Fix generator test
b72078e76 use get_pair_base_currency
076ca7520 Slightly refactor pairlist test
132e143b9 Minor comment fix
f8dc161ab add 2 more final tests
e0f7b62b5 fix initial tests
c854cef31 fix precommit
006639820 add simple test
bf17236e9 fix typo in the docs
60812983e fix error
bbec51685 remove can_filter, and use log_once
ad0f88796 fix: logical error
e76888882 Fix typehint
3ab226a09 Remove unused import
58058f019 Fix migration test
6eaf42fe3 Default order_date to dt_now if it's not set via ccxt and wasn't previously set.
88ba82d4f Fix more tests
acbea4e26 Fix some tests after update_stoploss_date removal
b9a43b8e2 Don't store 'stoploss_last_updated' explicitly
59b348657 Update migrations
9f3c6f2dc Fix some tests and comments
de91261f7 fix pre-commit
e8fcac491 use number_assets instead of limit
95af462e8 fix pre-commit
d3506c249 update docs
bc8c5e743 rename to PairList
ef8712f4d tidy up
fdf9cc1b7 tidy up codes
442ca86d1 add market check
d578c910b remove unused lines
5bb4824aa add log print to see the time
f29fcb31e debug
8055140e6 simplify code
96a6c00ac add mode
09cb6cb02 remove debug
1f0a2ab24 forgot ()
35467619c add logger
bb684dd61 empty pairlist
adf07dd3e remove cache for noe
ef528fa69 option B
e10ab8c54 test gen_pairlist
a5862dcc4 add log message
1cd08c96a filter the pairlist
2eb3b73a9 cut the list to top x
70cc2942d wrong arg name
1e4920059 early stage of marketcapfilter
dc9c4da95 Improve integration test stability
14660f54f Remove duplicate call to update_trade_state
e19908328 Fix test ...
206809d2e Update emergency sell test
501e256c5 Fix further stoploss test
f0073078e Fix stop order test
a39b329e3 Fix line-length
68f940238 Fix further test
600e311b3 Fix test test_handle_stoploss_on_exchange_custom_stop
33bd433c2 Don't run against all orders, only consider open sl orders.
1db473264 Fix some more tests
ae3f62cf9 Fix RPC tests
cbfebd397 Use a trade for test that actually has an open stop order
c6ffe82a7 Update more tests
642714493 Fix stoploss test
c35b308ad Fix some tests
28e2bfaf1 Fix types of "has" calls
15058d3ce Add type hints to manage_trade_orders,
8234879b5 stoploss_order_id removal tests
b33a9059a Fix some more tests
13780d596 Remove further usage
41e40e621 Update some initial tests
c2b32769a Remove further occurance in bot file
e8be011e2 update manage_trade_stoploss_orders: remove unrelevant TODO
aaa82e1fa remove all occurence of stoploss_order_id in trade_model, update api schemas, update rpc_delete
2bb68ca53 remove stoploss_order_id from LocalTrade class
df8f1b932 update manage_trade_stoploss_orders description
9d82de15d first updated proposition of handle_stoploss_on_exchange, add sl_orders helper
ea828ccb4 remove legacy sl management code from create_stoploss_order
2565d509a remove legacy sl management code from handle_insufficient_funds
d5a075905 add open_sl_orders helper, use it in cancel_stoploss_on_exchange
9214af690 update cancel_stoploss_on_exchange to cancel all sl orders of trade
cac777cb2 add property has_open_sl_orders to trade model

2024.1

2 months ago

Highlighted changes

  • Enhanced telegram Entry / exit notifications.
  • Remove deprecated sell_reason (in favor of exit_reason)from rpc methods (mainly impacts webhook configurations).
  • FreqUI: Add timeframe / timerange to load backtest screen.
  • FreqUI: Improved log visualization.
  • FreqUI: fixed mobile height issues, resulting in odd behavior and missed functionality.
  • Kraken - support different order types (PO, IOC).
  • Kraken: Restore stoploss on exchange functionalities.
  • Huobi - Rename to HTX - as the exchange rebranded.
  • Improved list-data command output.
  • Allow full exits through adjust_trade_position() callback.

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
4342aa3bf Update version number to 2024.1
7af524ff9 Bump aiohttp from 3.9.1 to 3.9.2
effe2b536 Bump cryptography from 41.0.7 to 42.0.1
0fa7f9e47 Bump types-requests pre-commit
84913f2ea Bump peter-evans/dockerhub-description from 3 to 4
1450d9e9c Bump mkdocs-material from 9.5.4 to 9.5.6
4394fd134 Bump uvicorn from 0.26.0 to 0.27.0
3a6393e2d Bump types-requests from 2.31.0.20240106 to 2.31.0.20240125
990f9e03f Bump pytest-asyncio from 0.21.1 to 0.23.4
0b549fc7f Bump ccxt from 4.2.21 to 4.2.25
589066593 Add BTC/USDT to test markets
99b11c088 add available_parameters
f42fd2580 Improve function naming better reflecting what it aims to do
a20fe8cd0 Update docs example box
c398504f2 fix tests
dd3fbfcfd + return type
f0562c391 remove debug, reduce duplicate code -> init_check, add docs example for save_to_file
027ce4337 refresh_period not necessary for a local file
fd2165852 extend error except, add saving to a file of processed pairlist + docs
8f0dbc6be Improve common mistakes docs
8d72ee358 Improve code styles ...
0077f3c9a Code style improvements
6aa4de4d2 Tests for enhanced list-data functionality
817aaa164 Enhance list-data (detailed) view with "candles" column
ea9c51570 use resample_freq where possible
2fe6fe14a Simplify volumepairlist footprint slightly
85dd371ee use prepared timedelta object for backtesting
55fe379e1 Bump ccxt from 4.2.15 to 4.2.21
96a8263c5 trades_to_ohlcv_multi test adjustment
79ecca3e4 Add test for trades-conversation on different dates
267f2e352 Add trades-generator
1ae3b1e62 Fix weekly resamples to ensure they're on monday.
34ac2dc9a Further improve ohlcv test
efe332a39 Fix wrong test comment
8fd2dcd25 Impove tests for yearly resample
48ea43f95 Fix yearly resample timeframe
6b78dac6f Re-align naming for resample_freq generator
0a40a345f use timeframe_as_resample_freq for trade_parallel analysis
656b32814 Have trade_converter use timeframe_as_resample_freq
c9c44a471 Extract resample_interval generation
5167f6936 Prepare converter to work on 1s data.
fdf88a801 Improve test showing that 1m and 1s conversion is identical.
087c59cfb Fix data generation bug with 3m data
83480d90f Extend test range to more timeframes
67abfcf4d Add generic ohlcv_to_dataframe_multi test to ensure code works for diff. timeframe ranges
00e4c5174 Prep conftest for 1s data generation
a1b93dc91 Improve call sequence
f1d002a73 chore: update pre-commit hooks
991a279b2 Removed duplicated key
5b879df2b Improve indentation
d19113800 restored accidentally deleted lines
85658bb63 Update rpi wheels for pyarrow 15.0.0
3b5c2ea0d Bump scipy from 1.11.4 to 1.12.0
06630a599 Bump psutil from 5.9.7 to 5.9.8
0f1e7ed65 Bump actions/cache from 3 to 4
fbb91ca33 Bump mkdocs-material from 9.5.3 to 9.5.4
713d9fdc8 Bump ruff from 0.1.13 to 0.1.14
3681e3e75 Bump nbconvert from 7.14.1 to 7.14.2
32d77f808 Bump pytest-random-order from 1.1.0 to 1.1.1
d58b941bf Bump jsonschema from 4.20.0 to 4.21.1
34df71026 Bump pyarrow from 14.0.2 to 15.0.0
f324f8775 Bump scikit-learn from 1.3.2 to 1.4.0
00f8f0526 Bump orjson from 3.9.10 to 3.9.12
3d5620a42 Bump uvicorn from 0.25.0 to 0.26.0
e704c2def shorten configuration code
d534f2014 Account for kraken specialcase in tests
612ec38e5 Don't skip trades if the exchange doesn't do inclusive filtering
ac5b12cfd Improve kraken pagination behavior
f9b6830b7 update fetch_trades info data to kraken response format
8a64f0b88 Fix fetch_trades tests
15da4aa9b Update tests for added fetch_trades arg
c16757509 Move extracting trade pagination id to fetch_trades
b56c663be Add regular / fallback test.
501a9a8c9 Improve error message, add test for trade_pagination_id validation
c333c9c5a Improve kraken trades pagination logic
11dd349c2 Update ccxt online test name to htx
d355f011d Invert exchange_class mapping
ef80772fc Rename class and tests
ff95adb2e Update supported exchanges, add mapping
5b1cda923 Update Huboi brandin to htx
50864c731 chore: improve documentation for plotting custom features
5bfda534b feat: allow custom user features to be plotted in backtesting (freqai)
73b30cf3f Update ta-lib documentation links
8cbdcbd50 Bump ccxt min version
42ea4821f Bump kraken to 4.2.15
b7ab7dd25 Update tests for new kraken stoploss behavior
c2d6ab2fa Add unified kraken stoploss settings
6069670ce Remove kraken custom stoploss handling
c248bb27e use safe_price for adjust_entry_price callback
a4d078efd chore: update pre-commit hooks
e18fbbd97 Clarify points as per comments
78ca939ae pin prompt-toolkit to compatible version in jupyter dockerfile
dc5c1e130 Bump ccxt from 4.2.9 to 4.2.14
91ceb5c19 Bump markdown from 3.5.1 to 3.5.2
d073692ca Bump nbconvert from 7.14.0 to 7.14.1
e1b8742b1 Bump ruff from 0.1.11 to 0.1.13
d866bb6f0 Bump fastapi from 0.108.0 to 0.109.0
2737de1fd Remove extra EOF newline
a41b72ca1 Add backtesting vs hyperopt result difference explanations
ea1b3c38f remove last utcnow usage
291478a97 Bump docker images to 3.11.7
29d2fc2e1 Skip freqAI tests on py3.12
59cc60776 Don't force-patch torch if it ain't installed.
c79502cb4 Pin torch to <3.12
f124f2daa Exclude further dependencies
026f98962 Don't install catboost on 3.12 for now
9a2ed3503 Run CI against 3.12
d412a8fc1 Simplify emc test setup
fbed3fad7 Fix non-asserting test
393df83a9 Implement enter_tag initialization to avoid futures warning
e967dfa14 Adjust api test after column expansion
4aab57ce6 Add test for pandas deprecation warning
5841c6543 Remove unused test param
338ff6626 Only load environment variables when config is allowed
629a6be26 Rename methods to make exposure explicit
4896e04c4 Improve formatting
a53adb95e Remove container-name from ft-jupyter compose file
6fc1884e8 Update link
cd392fbbd Slightly update formatting in arguments
bcebb4d80 Bump jinja2 from 3.1.2 to 3.1.3
cb9fa734d Improve test resiliance
3f27c2792 Remove trailing newline
883f50854 Add NoDBContext to pairlist evaluation functions
3caf964c4 Add NoDbContext context manager
7fcbe9788 Extract database cleanup functions to persistence package
225c94c0f Reduce log level in rpc default handler
a9287359a chore: update pre-commit hooks
962417bde Update typing to account for correctly typed sqlalchemy responses
34c183856 Bump Sqlalchemy in pre-commit
3b7288eda Bump sqlalchemy from 2.0.23 to 2.0.25
72c41ec2c Bump types-tabulate pre-commit
5be32cd80 Bump types-tabulate from 0.9.0.3 to 0.9.0.20240106
37dacdff0 Bump pre-commit dateutil
671ce25a2 Bump types-python-dateutil from 2.8.19.14 to 2.8.19.20240106
a8228f0ea Bump types-requests pre-commit
0b3126a0f Bump ruff from 0.1.9 to 0.1.11
4686d2202 Bump nbconvert from 7.13.1 to 7.14.0
2304f852f Bump ccxt from 4.2.2 to 4.2.9
68d2d24f2 Bump numpy from 1.26.2 to 1.26.3
67f608fb5 Bump types-requests from 2.31.0.20231231 to 2.31.0.20240106
1b70e9b07 Point users to the pair naming docs when download-data yields no pairs.
7c7ddb3b1 Fix improt sorting
69e9ab90d Adjust tests for new messaging scheme
28b555223 Improve entry message
b27f99dbc Add note about removing fiat_display_currency.
6121c7ed8 Remove pointless condition (freqtradebot only ever exists in dry/live modes).
394c260eb Update runmode to 'backtest' in some test cases
582f51ccd Add runmode "dry_run" to default configuration
74bb1a29b Fix indentation
ddb42879e Fix type errors
53b24ea69 Update webhook documentation
80071dd2d Adjust tests for improved telegram output
545096cc4 feat: improve telegram message formatting
9f682b582 Improve Coin formatter naming
209e7033c Fix tests for newly added field
7f69a0681 Use Type-hinting for telegram messages
20b2f2506 Add quote currency to entry/exit msgs
88524db29 Remove leading whitespace
e1ad87a56 Extract number-formatters from misc
65009373e add round_value incl. tests
7f84996c1 Send correct Profit for both exit types
90df6bcd5 Remove pointless parenteses
3237cad8c Fix test naming from sell to exit
2a11597ad Improve exit message wording
59ec3fd86 Always send order-type to exit notifications
685fef1ee Improve buy message FIAT formatting
690a3599d Simplify exit msg method further
e4977d4cb Don't assign the original message dict for no reason
7b78e66e7 Ajust some leverage calls
8726d6392 Remove unnecessary calculations for exit msg
5e9a929e9 Further simplify msg formatting
c3ce11c22 Simplify enter_tag call
0ab54b88c Improve leverage formatting
934e72656 Simplify exit message fiat handling
b950128c4 Update freqai-running.md
86a9968bd Fix bug in exit message formatting
2bceb35b7 Circumvent edge-case in exit notifications
e7eb1c132 Improve startup sequence to avoid certain timing errors
fdc573f2f Add rudimentary test for funding_rate fix
02d124b85 Improve naming of funding-rate migration
3eade3e8d Move binance_mig test file to utils
6cce45583 Test migrate_data wrapper
f028bdf34 Improve funding fee migration logic
983764ad0 Add "migrate funding fee timeframe" logic
a12f36879 Move binance migration to behind migrations gate
c9dd99a4b Enhance test to properly capture correct downloading of different futures types
67d3dca49 Fix funding-fee downloading in the wrong timeframe
d5d3188b9 Load "correct" timeframes (mark vs. funding fees)...
50287ce55 ensure funding_fee_timeframe is always set
3c1bbd961 Improve funding_fee_calc method structure
ec1b2e1da Remove further deprecated metric report
73970d27b Remove deprecated bt-output option
0224c50c9 remove sell_reason from msg types
b0fdf6ac5 Update Tests for removed sell_reason field
682b462d8 Remove sell_reason from exit notification fields
22307913d Reduce caching to 5min to speed up UI refreshes in case of open orders.
b9786b979 Better test rate-caching logic
abda629a7 Use time-machine for get_entry_rate test
a4fca5b1f Enhance test naming
903062d47 Improve if formatting
b6a71f2d2 __repr__ should use utc datetime...
7a6888dfd Split stoploss test into 2 for easier testing
f3da2c6fd Simplify and fix handle_stoploss_on_exchange test
ce63eb30a Remove unused test param
a9380f0d5 Update freqai.md
316812f42 Help direct people to freqai support
fa368a9a4 Improve trailing stoploss test with time_machine
9030e1041 Remove USDT from documentation about "supported crypto currencies".
2c3cef5de don't assume 'type' to be present at all times
e722d8145 Fake order response should contain order_id
10dbf4783 Improve exchange_response formatting
a2160e450 add exchange_response logging to funding_fee endpoint
842727202 Fix identifier_typos
c07f2caa4 Update config_freqai.example.json
f0e82592c Bump types-requests pre-commit
501f629c0 Bump pytest from 7.4.3 to 7.4.4
80dbb0dd0 Bump ast-comments from 1.2.0 to 1.2.1
0552df2fe Bump fastapi from 0.105.0 to 0.108.0
e4b843405 Bump pymdown-extensions from 10.5 to 10.7
d2802ad49 Bump ccxt from 4.1.98 to 4.2.2
a9906f078 Bump types-requests from 2.31.0.10 to 2.31.0.20231231
b17c0cd4a Add Note about minimal_roi time used
0575e222b Fix random test failure due to missing backtesting cleanup
1c5a699ae Fix typo and missing type def
292ef85d9 Add additional, optional arguments to metadata files
b3c9be1cd Refactor get_bt_resutlist to reduce code complexity
13e329f17 Align methods
b9f4a2354 Add documentation for kraken time-in-force
9746d3806 Add post-only order test for kraken
ae68d0203 Simplify test for kraken order creation
9896ddf71 Add Kraken TimeInForce support
f6de7d952 Add "wraps" handler to telegram wrapper
3a8752207 Fix odd db caching problem in telegram
7ccddb5d5 Fix typo
e9c04debf Fix tests due to new exit behavior
79e15591e Improve condition for last exit
b62661d8c Improve final exit message
e5e3002d4 Simplify exit message
e664527da Align backtest and bot method
063b55d41 Fix doc typo
ce7061c93 Bump version to 2024.1-dev
d78a5798e Fix further warning message due to old Parallel import
16958eaef Update sklearn import
2c5cca4be Reinforcement learning does support 3.11 just fine.
39b2a096a Ignore adjust_trade values that would invert position
3f44f56f6 Remove  bool from get_required_startup because its unused.
cd28244cf Add and optimized test cases to verify consitent timerange behaviour within freqai.
94363061a Attempt fix timerange problem
4f2d7b858 Slightly enhance logging for clarity
663b1e11f Add timeframe info into 'increase startup_candle_count' log message
2d6a49013 Fix duplicated data loading and timerange for populate_features
9e2e60e7a Correct conditions for remaining stake checking
bb2024f78 Add "full partial exit" logic to backtesting
e96f4f0e5 Improve adjust_trade_position documentation
6218d732b Only download tradable pairs
9f1599b7f fix pre-commit
e541c95c4 fix partial exit test
90332128b allow trade to be closed via partial exit call if remaining amount is exactly 0

2023.12

3 months ago

Highlighted changes

  • Added bot_name as possibility to discord messages.
  • FreqUI: Add “fast” mode, optionally surpressing exit confirmation dialogs.
  • Bybit: Add support for time in force FOK, IOC, PO (Post only).
  • Improved behavior for backtesting when max_open_trades is loaded from the strategy in multi-strategy mode.
  • FreqUI: Add new “Measure” tool, allowing for quick chart measurements.
  • FreqAI: Add new classification Model SKLearnRandomForestClassifier.

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
846b7734e Bump version to 2023.12
02836368f add default --dist loadscope arg to pytest options
d28202785 Bump CI python version to 3.11
97780ee5b Revert build-online to 3.9 for now
e162f98cf Update pre-built wheels for pyarrow
c6967b11b Align spelling of "cancelling"
1e5d353cf use safe_value_fallback when parsing orders
58432c1cf Bump lightgbm from 4.1.0 to 4.2.0
8cc2c5010 Bump pydantic from 2.5.2 to 2.5.3
5cbcf7250 Bump pyarrow from 14.0.1 to 14.0.2
35876cf8e Bump ccxt from 4.1.91 to 4.1.98
ac60871ff Bump ruff from 0.1.8 to 0.1.9
866e34a98 Bump mkdocs-material from 9.5.2 to 9.5.3
710797182 Bump nbconvert from 7.12.0 to 7.13.1
348459064 Bump xgboost from 2.0.2 to 2.0.3
971b7d074 Bump uvicorn from 0.24.0.post1 to 0.25.0
ec89aad10 fix typo in stoploss_from_absolute code example
fc13a99b3 Use intelligent scheduling to improve online test performance
03fb20440 use Loadscope to improve parallel test performance
0a96aa69b Only run parallel on online tests
ddbfce01b Show slowest tests
12e75e849 Don't do coverge on --longrun tests
916a84763 add pytest-xdist to speed up tests
4769b5070 Fix RPC tests
18dd9cf80 Use a trade for test that actually has an open stop order
63e652619 Bump mypy to 1.8.0
3cb4b1065 Specify python version for pre-commit update
23c3757c7 chore: update pre-commit hooks
a5c914951 chore: update pre-commit hooks
9ab08d513 Update committer in pre-commit workflow
87ce7dc02 Reduce permissions
3c7c4bc02 Use repo scoped token
0484b891f Add tech maintenance label
71689d9d6 Allow write access to action to allow creating the branch
881247a82 use isinstance for type checks
d26154f99 Import logging ...
0e14dd619 Set proper log-level for test
3676514ba Add pre-commit auto-update workflow
9ec23a029 Improve rpc typing
1272a15c3 Properly name Entry / exit types
a3a175e33 Reduce logging verbosity message in webhooks
71b777ef3 Fix missing rm line
b4e8122fd Attempt to properly remove 3.12 symlinks
b1393f1bd (configuration.md) fixed value USDT value  in example for clarity
34c5c68a9 Add macos-13 to ci matrix
c9a018cf0 Improve output if a strategy wasn't found in the backtest result
2f2467256 feat: add SKLearnRandomForestClassifier
26f0fe238 make example strat *even* simpler and make sure it buys and sells a lot ;)
5e3da30ab Fix remaining bittrex instances
651d2c06b Update tests to use new file
b37159308 Move previous test config to tests
3096cddbc further remove bittrex from docs
5bbe6aacf Remove Bittrex subclass
fe4bf271b Remove futher bittrex tests
0d3d1e6d9 Remove bittrex from more tests
57e01329c Bump ccxt from 4.1.84 to 4.1.91
a70ca6f61 Bump actions/download-artifact from 3 to 4
e5c783d2d Bump actions/upload-artifact from 3 to 4
e1b652d89 Bump mkdocs-material from 9.5.1 to 9.5.2
4e98b5f71 Bump psutil from 5.9.6 to 5.9.7
901b3f6fe Bump fastapi from 0.104.1 to 0.105.0
d0a9d927d Bump isort from 5.13.0 to 5.13.2
16eb95c71 Bump technical from 1.4.1 to 1.4.2
054ed0a7b Bump ruff from 0.1.7 to 0.1.8
82853e37a Bump python-rapidjson from 1.13 to 1.14
81c6336e1 Bump torch from 2.1.1 to 2.1.2
9a9a6eaa6 Revert "Merge pull request #9450 from freqtrade/fix/startup-candle-count"
67cdab6ee Provide strategy timeframe via API
58470ba9d Fix missing files in wheels
c580e8783 fixup
bc1ad3acb Improve logging
d2e328b8b Update artifact name
93e9c4fa6 Update job names in ci.yml
8d231dbf3 Update build-system to use "build"  insead of "setup.py"
b178cc5f3 Migrate from setup.cfg to pyproject.toml
6ee0f16e4 Migrate flake8 config to pyproject.toml
1d701967b exclude tests from build
d6b43c5ee re-work deploy CI
3670699ea Add trusted publishing for next release
58dfffe87 Add FIAT mapping for BTC
e57340992 Add windows ta-lib 3.12 wheels
e3fda16d1 Don't overpopulate points at the first iteration
71d3572c2 Support webserver strategy without max_open_trades
cfd5af67c Add max-open-trades param to get_trade_stake_amount
47a952e41 Don't use config['stake_amount'] in wallets
c9f43587e Bump binance leverage tiers
e79a58e1c Add test case to verify behavior in #9432
c62e52c75 Add test for dp_get_required_startup
5ab61d9da Improve missing data output
c5c2c8c18 Enforce kwargs for preliminary
755ce3a85 Prevent config modification during webserver startup
105cd9939 use max_open_trades from straetgy instead of config
db7799d2f Use variable instead of config for startup_candle_count
30f94ef5b Use LocalTrade for typehint
eac5d53a6 Add mock to backtest adjust position
4b43ccae1 Bump ccxt from 4.1.76 to 4.1.84
4b3230689 Bump pre-commit from 3.5.0 to 3.6.0
a0e92f5a4 Bump pandas from 2.1.3 to 2.1.4
17f0697c4 Bump mkdocs-material from 9.4.14 to 9.5.1
199e3f91f Bump ruff from 0.1.6 to 0.1.7
cc14cf23b Bump isort from 5.12.0 to 5.13.0
327f750ea Bump technical from 1.4.0 to 1.4.1
a304080c0 Bump actions/setup-python from 4 to 5
78cb1e608 fix: ensure we have a row of zeros appended (not the function)
0bd513012 enhance further test for funding-fee checking
3f6cd9ee5 Patch funding_fee calculation for unrelated test
8964c138f Call funding fee calculation whenever a trade is closed
ef23f0fcb Fix test to account for new funding_fee count
074343f0f Don't calculate funding_fees on every iteration
966eb59fd Extract funding fee calculation to separate method
778bd7b3b enhance further test for funding-fee checking
b4cd46d6d Further improve funding_Fee test
1d73b57e8 Extract some assert values from bt test
476703bf7 Update data_kitchen.py
cd09d3567 Add spy test on funding_fees in backtesting
dd08c134b Remove macos 13 ci again
d428d4839 Ease install dependencies for scikit-learn
3bdfa8523 Update scikit-optimize to ft-scikit-optimize
bb85efd6a Add test for informative weekly merging
7321a14c3 Fix generate-test-data for 1w data
2745a5d33 Rename informative_pair test
d123d3bb8 Completely mock Torch on macos
b14873400 Fix odd import in freqai tests
71178ff1d Remove "activate" activator
d3d9f3281 Fix torch logging setup mess
3b4b833dd Remove unused mock
3739a1073 Bump nbconvert from 7.11.0 to 7.12.0
9a425af76 Remove unnecessary conditions in Ci run
3c48208b3 Fix cache keys
68db8d020 install libomp
220777367 Attempt more granular cache for macos
cbe6d52a7 Try macos-13 CI
4061eaf88 Remove online tests for bittrex
ef042ae5e Remove exchange tests on bittrex
6ee792069 Remove bitrex-specific section
46c81d701 Revert "Bump tables from 3.9.1 to 3.9.2"
caac77c90 Update data_drawer.py
59a287106 Bump ccxt from 4.1.75 to 4.1.76
8b5e6bf9b chore: fix pandas warning about merging on datetime. fix pandas warning about inconsistent key lists in concat
04f2b7bad Add support for different timeInForce for bybit
e0f780f10 Bump python-telegram-bot from 20.6 to 20.7
44689d058 Bump ccxt from 4.1.66 to 4.1.75
1431b2b44 Bump tables from 3.9.1 to 3.9.2
106bda51d Bump pypa/gh-action-pypi-publish from 1.8.10 to 1.8.11
90e4eb59b Improve multi-strategy backtest docs
701f6fc05 Update outdated docs
0235db48a Prevent merge artifacts in "informative" pair
e9e7bf3ca Slight cleanup of unused comment
4464b0271 Add handling to properly merge 1M data to
4ed9ffbf3 Add test for behavior in #9490.
c01736608 Ensure testdata generation works for 1M data
6754072bc chore: fix future warning on pandas
5daafaabc Add explicit test for "now_is_time_to_refresh
d85518ccb Improve release documentation
c34cb9eb1 Bump version to 2023.12-dev
36836ea80 add bot_name to discord rpc field
d050beb62 Bump torch from 2.0.1 to 2.1.1
72eeb6561 use Cloudpickle also for reading
eeb460e55 Use cloudpickle throughout
48317c230 Bump scikit-learn from 1.1.3 to 1.3.2
d52936fd4 chore: try to keep startup_candle_count behaving the same as a normal FT strat
21a5abf25 fix: make sure that get_required_startup is timeframe independent

2023.11

4 months ago

Highlighted changes

  • @informative enhancements, supporting patterns like "{base}/USDT" to generate a parallel pairlist looking at a different quote currency for the full pairlist.
  • Allow disabling of default discord messages.
  • FreqUI: New backtest-comparison view, visible when multiple backtest results are loaded.
  • Removal support for bittrex due to bittrex winding down operations.
  • Addition of Bitmart to list of supported exchanges.
  • Remove individual order info from /status, instead introduce new /order command in telegram.
  • Updated Raspberry image to use python 3.11.
  • Updated Docker images to use Bookworm (debian 12).

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
cb01a4608 Version bump to 2023.11
cf078f809 Bump to 41.0.7 to avoid install problems
5ddca4e9f Bump cryptography from 41.0.5 to 41.0.6
6db66b1e5 Add bitmart to "official supported" exchanges
0a903e45f Add Bitmart to list of supported exchnanges for spot
d0a2b9403 Fix typo
a18c85ec6 Explicitly disable stoploss on exchange for bitmart
0914b8b5f Add note about verification on Bitmart
cb2a87153 Bitmart: add section in exchange docs
ef877b5fc Add bitmart to ccxt compat tested exchanges
2738f3e43 Add minimal Exchange class for bitmart
7c00a4ed1 Remove no longer existing exchange aliases from tests
793cc1acc Bump mkdocs-material from 9.4.10 to 9.4.14
35871d7b4 Bump pydantic from 2.5.1 to 2.5.2
786d4e03f Bump aiohttp from 3.9.0 to 3.9.1
5e5b56e44 Bump mypy from 1.7.0 to 1.7.1
384ebc5b3 Bump pymdown-extensions from 10.4 to 10.5
8567af8d2 Bump ccxt from 4.1.57 to 4.1.66
88e818926 fix typo on API docs
12ea1cde8 Bump dockerfile to use bookworm (debian12)
df73b8288 Bump armhf image to bookworm
a50291cd9 RPI dockerfile - 3.11
be8ea685d Remove unused function in freqAI example
e8d0b0199 Correctly import time
94020a664 Add slight sleep to avoid random test failure on windows
8c5194d5e force-reload markets when BadSymbol appears
67e81c901 Fix wrong/faulty docstring
25ebdb4cb use strategy_wrapper for bot_loop_start in plotting
63e702a3b remove unused comments
e9f21d020 Improve logging for #9460
a044649ee Also have "badrequest" act as InvalidOrderException
5003c2af2 training_env is a property, also, so types can't be overridden
6963a9233 Improve hyperopt Tests
e2863e162 fix: logger has been converted to a property
203890844 Remove non-existing pairs
fbab18b08 Add missing config file
f7178ecd6 Update test config name and exchange
fbc70a60f Update test with no bittrex ...
b45365d38 Update tests to run for binance
9990780e6 Update binance config to be for usdt pairs
65df2f30c Update some more docs with bittrex removal
e7aa706f7 Update samples with binance
361924712 Remove bittrex from code for suppored exchanges
047dac7b7 Remove bittrex from supported exchanges
764684940 Removed redundant 'cpu_count'
10ae0ed9c Removed redudant negative from sentence
d81bbba4c Remove dependency on blosc
0e9169e1e update docs
8680b5faa fix some tests, add new tests
b97ff3a78 Bump ccxt from 4.1.52 to 4.1.57
806af7d79 Bump urllib3 from 2.0.7 to 2.1.0
202b72fd8 Bump stable-baselines3 from 2.1.0 to 2.2.1
6f6011731 Bump pydantic from 2.4.2 to 2.5.1
7070ec30e Bump jsonschema from 4.19.2 to 4.20.0
bf77019d1 Bump ruff from 0.1.5 to 0.1.6
b776e5a8e Bump rich from 13.6.0 to 13.7.0
ca208305a Bump aiohttp from 3.8.6 to 3.9.0
972c5c327 Bump mkdocs-material from 9.4.8 to 9.4.10
80edfd153 Bump scipy from 1.11.3 to 1.11.4
58cd45564 fix unused vars
caf59d25e forgot comma
7df32a34a remove order list from /status and add new /order
48097f4a7 Update tests according to calculation update
ca3f349d8 Update intermediate close_profit calculation
0815bb624 Improve trade close profit assertions
f9202c3f6 Clarify hyperopt docs for parameter options
eb186e22d Fix backtesting-analysis when no trades for a pair
cbc323875 Improve contribution wording
757ec5387 Bump ccxt from 4.1.40 to 4.1.52
5f8ff373a Update mypy to v1.7.0 in pre-commit-config.yaml
f286cb0a9 Use BaseException in exception check
e6663c030 Update strategy-customization.md
ced92300e Bump tables from 3.8.0 to 3.9.1
d2afe281b Add cancel order to new exchange docs
c237aa00b Remove non-used imports
23efa4c9c Remove deprecated json_encoders key from model_config
8b028734c Bump pandas from 2.1.2 to 2.1.3
51feeddc5 Bump mypy from 1.6.1 to 1.7.0
84b3f9924 Bump ruff from 0.1.4 to 0.1.5
50b264c6f Bump pymdown-extensions from 10.3.1 to 10.4
88e8a9fe2 Bump numpy from 1.26.1 to 1.26.2
d65aef72e Bump xgboost from 2.0.1 to 2.0.2
8273c0c2c Skip exchange validation in API server dependencies
c7624b1ed Simplify LiveStats models
54536a1c8 use profit_ratio for mix_tag_performance
7daa06a20 Align mixtag response with other statistic models
7d0ecfde9 Add tests to ensure responses are as expected
2ef716e94 Add response_models for new endpoints
de68850d2 Don't tag informative endpoints as "trading"
59cefda28 Update strategy-callbacks.md with new information on max_entry_position_adjustment
c9a5e5a98 Fix another (identical) typo
51dc5811c Update freqai-feature-engineering.md
05e36f7b2 increase API version
0738cae4a fix pre-commit
da3c42bbb add entries, exits, and mix_tags API endpoints
315783441 Update pyarrow wheels
62f1421cf Bump pyarrow from 14.0.0 to 14.0.1
52f12b704 Avoid time colision when creating orders in test
3729b3d79 Bump ruff from 0.1.3 to 0.1.4
39fc78205 Bump uvicorn from 0.23.2 to 0.24.0.post1
46a67e8d4 Bump nbconvert from 7.10.0 to 7.11.0
69017805c Bump ccxt from 4.1.39 to 4.1.40
bcec61197 Add pre-built wheels for pyarrow 14
fbb11a394 Bump sqlalchemy pre-commit
921e03426 Bump sqlalchemy from 2.0.22 to 2.0.23
264ab2c47 Bump pyarrow from 13.0.0 to 14.0.0
31af1d5dc Bump markdown from 3.5 to 3.5.1
588bbb45b Bump cachetools from 5.3.1 to 5.3.2
7ed037bad Bump tensorboard from 2.15.0 to 2.15.1
77b00b2a1 Bump mkdocs-material from 9.4.7 to 9.4.8
773bc386f Bump filelock from 3.12.4 to 3.13.1
90dacaca0 Bump jsonschema from 4.19.1 to 4.19.2
3689ad16b Bump nbconvert from 7.9.2 to 7.10.0
ab9954350 Bump ccxt from 4.1.31 to 4.1.39
533f11d9e Bump py-find-1st from 1.1.5 to 1.1.6
551033a7c Bump fastapi from 0.104.0 to 0.104.1
2efef72ec Reduce wait for ws test
751db2be7 fix: test typo mishap
6ea353447 use tmp_path instead of tmpdir
5a3839320 Remove further usages of Path(tmpdir)
555f4b51e Further improvements to test setup
be82248e0 Remove futher usages of Path(tmpdir)
7bed7801c Further test simplifications
eb409de91 use tmp_path instead of Path(tmpdir)
72dc65cb6 fix: swap tensor dimension to play nicely with pandas
2a0175f62 Add "empty" config to disable default discord messages
cd6817344 Update Dockerfile.armhf to use prebuilt wheels
c920e3a03 Bump Dockerfile to 3.11.6
83afc4ac7 Add pyarrow 3.11 wheel
19f62649e use "noindex" to install pyarrow on armhf
61ed6aee6 Add test for new formatting
051b6e945 Update documentation
44a24685a Add support for {base} and {quote} in informative decorator
1cde980c0 Extract pair_formating options
05ef4f9b6 Fix forceenter - cancel dialog not working
26aa14dbf update binance leverage tiers
04cd931cc Pass explicit stringIO type to pandas read_json
b8a6330c3 Improve pandas handling
949c3c660 Ignore "nan" enter and exit tags
9297a90d7 Use proper indexing to avoid deprecation warnings
b19f17fdf Improve handling of bt results in optimize_reports
bbdc6c0f5 improve pandas syntax to avoid deprecation error
528c65c19 Bump pandas from 2.0.3 to 2.1.2
bf24c3b27 BUmp cachetools types in pre-commit ocnfig
5182045cd Bump pytest from 7.4.2 to 7.4.3
b36907133 Bump ccxt from 4.1.22 to 4.1.31
0ab9eb7b0 Bump orjson from 3.9.9 to 3.9.10
d3d446498 Bump types-cachetools from 5.3.0.6 to 5.3.0.7
1d0934074 Bump ast-comments from 1.1.2 to 1.2.0
9382fb3be Bump ruff from 0.1.1 to 0.1.3
223af95da Bump mkdocs-material from 9.4.6 to 9.4.7
8b68b55de Bump xgboost from 2.0.0 to 2.0.1
99592d1a1 Bump python-rapidjson from 1.12 to 1.13
b69f5aaac Bump plotly from 5.17.0 to 5.18.0
0c1fefe6e Bump cryptography from 41.0.4 to 41.0.5
a049ff937 Improve special testcase
0c51e2637 Fix calculation issue for #9346
7492b75e1 Bump version to 2023.11-dev
24dfd9b93 Add test for #9346, showing current behavior
7d65b3e1b install libopenblas-base to base image
cf43427be armhf: Move pip install to base image
7ae41be97 Remove numpy armv7l lock since wheels are now available

2023.10

5 months ago

Highlighted changes

  • Improved handling of order cancel messages if the order doesn’t cancel immediately.
  • Improved handling of funding fees in order-adjustment scenarios.
  • Special kraken data import (details: https://www.freqtrade.io/en/latest/exchanges/#historic-kraken-data).
  • FreqUI: New setting to invert Colors from Green/Red to Red/Green.
  • FreqUI: Improvements to backtesting Chart view.

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
9a73f7a7b Bump version to 2023.10
2c2046498 Reinit orders list on "local" objects to instance variable
e97d9013d Avoid having orders leak after multiple "from_json" calls
1e18b35f2 Change box type to tip
bb7828566 Add hint about helper commands to common mistakes section
1dccdf059 bump ruff in pre-commit
5da48d8ff chore: fix tests
4f4b7c562 fix: bug in startup candle offset
9dcf23638 Align flake and ruff configs further
494fd734b Bump ruff from 0.0.292 to 0.1.1
c2905a452 use --output-format in ruff CI
fe5f085ec types-requests pre-commit
748ac50d8 Bump ccxt from 4.1.13 to 4.1.22
d2069c172 Bump pytest-mock from 3.11.1 to 3.12.0
38cf50830 Bump fastapi from 0.103.2 to 0.104.0
bf96a43ef Bump types-requests from 2.31.0.9 to 2.31.0.10
22b455592 Bump tensorboard from 2.14.1 to 2.15.0
7fb3632e7 Bump mypy from 1.6.0 to 1.6.1
e5f0fe288 Bump pymdown-extensions from 10.3 to 10.3.1
58aaaffe2 Bump websockets from 11.0.3 to 12.0
16dfde22f Add FIAT mapping for USDC
bbbc8a760 Fix stop evaluation sequence to have stop before liquidation
e69c21c9f Revert "Bump torch from 2.0.1 to 2.1.0"
0a5cee6a7 Ensure we're not erroring on invalid custom_entry / exit prices
a80c97948 Improve behavior when downloading trades data on time-based pagination
a8c246ce0 Bump urllib3 from 2.0.6 to 2.0.7
1a78346cf Add further ebug log message for stopping clarity for --dl-data
e6d0d53e4 Add further ebug log message for stopping clarity
7de415a6a Don't bump numpy for armhf just yet
f46fa440f Bump numpy from 1.25.2 to 1.26.1
3264e2c31 pre-commit requests bump
fadc7a205 Bump types-requests from 2.31.0.8 to 2.31.0.9
5940279f7 Bump mypy from 1.5.1 to 1.6.0
35f6333b6 Bump ccxt from 4.1.8 to 4.1.13
5d9b69cbf sqlalchemy - precommit
1e0ce7d47 Bump pre-commit from 3.4.0 to 3.5.0
27cd54b42 Bump ast-comments from 1.1.0 to 1.1.2
ec64a182f Bump mkdocs-material from 9.4.4 to 9.4.6
dd30df705 Bump sqlalchemy from 2.0.21 to 2.0.22
4c6e33aa8 Bump psutil from 5.9.5 to 5.9.6
8cb934849 Bump orjson from 3.9.7 to 3.9.9
9d552d45c have to use bitwise operator, otherwise ambiguous error is thrown
1e1b8dbe5 Handle multiproc calls for now
2d9d8dc97 Improve logic for progressbarcallback handling
ba674fc79 Type-ignore training-envs
58550515a Fix deprecation warning from tensorboard-callback
27bae60b6 Fix typo
646dd63fa Properly close out progressbarCallback
8d2b389e2 Fix wording in log msg
042e35e8d Improve funding fee startup behavior
b76513ce3 Fix typo in trade_model
368bfcf47 Add comment for funding fees running
fee3c598d Move schedule to 1 minute after the hour
69264cc16 Reduce funding fee update calls
e81929bc5 Have test use funding_fee_running
0843b19b6 Implement logic around funding_fees runnign
813b472c6 Add funding_fee_running column
2f079711e Add explicit test for get_funding_fees logic
97e9d2dc4 Remove get_funding_fee error handling - it's no longer raising this error.
7344f2080 Handle funding_fee error in exchange class
bfe04464b Handle funding fee errors for regular trades per trade
2225f5661 Additional funding fee update after additional entry orders
9e77c93a5 Tighten funding-fee variance for backtest
b65fa98ce Simplify backtesting by using current_time more consequently
b57821b27 Add set_funding_fees to backtesting
db7f9598b add set_funding_fees method
e547da10d Move funding fee assignment to update_trade
5a0c15f37 Update Idem test
0f5b69b4f Move from_json to LocalTrade class
86d4497aa Add additional test for from_json
1bfecb031 Revert "Bump tables from 3.8.0 to 3.9.1"
74f678a26 Bump markdown from 3.4.4 to 3.5
1bba0cf7f Bump pre-commit types-requests
b1fd0c73c Add additional test case for funding-fee calculation
29eb6d938 Update test for fixed funding_fee logic
19620470b Improve funding fee cutof logic
7a69b01b9 avoid edge-case in test
bc531cf84 Improve variable naming
14908e52e Improv variable naming
a86bf8d6d Bump aiohttp from 3.8.5 to 3.8.6
5fae03f7b Bump nbconvert from 7.8.0 to 7.9.2
f7f0f3beb Bump ruff from 0.0.291 to 0.0.292
ccbab6ee6 Bump tables from 3.8.0 to 3.9.1
ef12dafea Bump python-rapidjson from 1.11 to 1.12
08a65b50a Bump types-requests from 2.31.0.7 to 2.31.0.8
d28d6cbdb Bump python-telegram-bot from 20.5 to 20.6
41a6709ec Bump torch from 2.0.1 to 2.1.0
756f5d540 Bump mkdocs-material from 9.4.2 to 9.4.4
422b9c8fb Bump ccxt from 4.0.112 to 4.1.8
40ec2c492 Improve messaging in case of delayed exchange cancel
5cf7ad85a Adjust tests for new interface to handle_cancel_* methods
f02c9f043 Pass order object to handle_cancel* methods
c59b5e778 Improve type hinting
e525c6694 Add ft_cancel_reason column to order object
897c14e2e Don't check for "open orders" in handle_cancel_enter
6c00bf423 Fix comment
094984eb2 Fix wrong typehint
081411fba Improve bot typehints
178c0972f Read funding_fee on order objects in "from_json"
910e317a4 Fix unhandled exception
1ef5adbb0 Test for #9270
f5db856a7 re-align adjust_entry_price between backtest and live
b2ad40253 Hide most non-freqtrade logs in `-v` mode
1e0d622d8 Don't run "recovery" when stop-orders are open
1d941249e Revert "Remove numpy armv7l lock since wheels are now available"
5bfd3fdc3 Add openblas to armhf image
04409602a Remove numpy armv7l lock since wheels are now available
b2796b850 Add funding_fee export to order object
f14b4133c fix wording
3c2e043e8 Bump urllib3 from 2.0.5 to 2.0.6
609ed2d7b fix return values
183166b3f fix output if no variance, and fix docs
cd071c3bd Bump cryptography from 41.0.3 to 41.0.4
60c2b1d6c Revert "Bump ast-comments from 1.1.0 to 1.1.1"
79e59bdda Bump types-requests pre-commit
b409ab5ea Bump pydantic from 2.3.0 to 2.4.2
5feb7fe65 Bump ast-comments from 1.1.0 to 1.1.1
980960bc6 Bump arrow from 1.2.3 to 1.3.0
84335d58b Greatly speed up recursive by caching exchange
9edd7e6bc Bump fastapi from 0.103.1 to 0.103.2
7478c56ca Bump rich from 13.5.3 to 13.6.0
1f36f4802 Bump tensorboard from 2.14.0 to 2.14.1
4d920d786 Bump packaging from 23.1 to 23.2
19fb3f9b5 Bump types-requests from 2.31.0.4 to 2.31.0.7
fafc10257 Bump mkdocs-material from 9.4.1 to 9.4.2
3868f9c69 Bump scipy from 1.11.2 to 1.11.3
0204f666b Bump ccxt from 4.0.105 to 4.0.112
f32a13bfb Bump schedule from 1.2.0 to 1.2.1
4809c9f07 Adjust tests for new naming
19af144b3 Improve of analysis files further
4db796204 Update tests to new structure
7e6f2cba5 Move analysis command into their own subspace
f7ff1dc61 Bump develop version to 2023.10-dev
8ad6eb989 Update parameter value to be clearer
74709461e Improve exception wording
9e6cc5ebb Improve comment on special handling
a2d8f92e0 Add rudimentary test for test_trade_converter
a7d90e2a2 Minor adjustments to conversions
83b37e2f7 Add documentation for kraken data mode
488629096 Improve logging in kraken-converter
a3f167f6d Split format-from for trades to allow for trades special case
1e8814b43 Improve handling of kraken dataconvert
2e430519e Call kraken-convert in special cases
2164b02c6 Add initial code for trade_kraken import

2023.9

6 months ago

Highlighted changes 2023.9

  • New subcommand recursive-analysis to check for startup bias in your indicators. Please refer to the [docs].(https://www.freqtrade.io/en/stable/recursive-analysis/#how-does-the-command-work) for an explanation.
  • New argument after_fill to custom_stoploss() - which will allow the strategy to adjust the stoploss in any direction.
  • New argument leverage for stoploss_from_absolute() helper, for proper leverage adjustment.
  • New Pairlist FullTradesFilter - which empties the pairlist when all trade-slots are filled.
  • Add /weekly and /monthly API endpoints (and show corresponding metrics in freqUI).
  • Improvements to /reload_trade on Bybit and OKX, improving reliability for these exchanges when using this functionality.
  • Improve output of /profit, adding drawdown metrics.
  • Add trade argument to custom_entry_price() callback (only filled for additional entry orders, otherwise None).
  • Bybit - updated to api v5 after deprecation of old API’s.
  • Improve behavior when replacing orders where the initial cancellation fails.
  • Officially deprecate edge in the docs.
  • FreqAI: Improve behavior after downtime of more than 1 candle.
  • Drop support for python 3.8. If you’re still using python 3.8, please upgrade to python 3.9+ (we recommend 3.11).

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
96c5db3e3 Bump version to 2023.9
2d56b1bc8 Fix whitespace
aff5372a8 chore: protect users against process_only_new_candles=False
7971cb29b fix error message
154149ff0 Slightly updated docs
92d7f2798 Further update test a bit
20ea679b2 Add "bias2" test with full lookahead bias
39ede449a Rename test to avoid naming collision
37550d3bd Fix typo in --strategy_list
b68852662 Improve sorting in docs
d52d30cfb invert setting-location for stopLossPrice
56a85690b Update cached leverage tiers
90475e52d Change strat to strategy in freqai-feature-engineering.md
504f51fab Fix liquidation price setting in backtesting
a905d1bd6 Assert backtesting liquidation price
a27baf1a5 Improve backtest test
3f60b2c14 Update bybit stoploss parameter/prop for new ccxt version
927d1d268 Split stop_price parameter from property
ed45dcdf8 Update .gitignore to exclude memray stuff
e518e741a update bybit live order to v5
56b9c250b Update order_parse online test
a009816ac Bump ccxt from 4.0.88 to 4.0.105
551d1b096 Bump sqlalchemy pre-commit
5e696f4ea Bump sqlalchemy from 2.0.20 to 2.0.21
c39290d7d bump types-requests in pre-commit
4849b23fd Bump urllib3 from 2.0.4 to 2.0.5
d032aaaba Bump mkdocs-material from 9.3.1 to 9.4.1
0099381dd Bump jsonschema from 4.19.0 to 4.19.1
7bcb3d558 Bump types-requests from 2.31.0.2 to 2.31.0.4
c15c13a36 Bump ruff from 0.0.290 to 0.0.291
53a727306 Bump catboost from 1.2.1 to 1.2.2
da9a8b616 Bump mkdocs from 1.5.2 to 1.5.3
e6277222c Bump time-machine from 2.12.0 to 2.13.0
8002b476f Update recommendation for kraken
d9b5d05e2 Align sample configs with the "no ratelimit" recommendation
f5d7a4417 Split trades methods into seperate converter file
04b3b1d4d Update data-download.md
38a3ce616 Convert "converter" to package
123e51774 Move trades-to-ohlcv tests
2322d0f3f Move trades-to-ohlcv to converter file
8a5287581 Move some convert-trades-to-ohlcv logic into convert function
41cdd28f5 Improve log output for convert-trades
b387c315d fix pre-commit
3c647a379 change wordings on the doc from backtest to "calculate indicators" since we never do full backtest process
aac9ee0d5 move lookahead and recursive docs under Advanced Topics
966247baa Make sure use_db is set as early as possible.
589b9858f Disable build isolation (fix no docker builds)
c0b2b0b96 fix args description
6cfc1836a fix wrong startup candle
35800f3ad remove hardcoded docs link
9fa365e76 Fix docs rendering (lists need a newline before the first item)
a4a3b1956 Fix typo in docs
dda5a5901 Revert "Bump ccxt to 4.0.101"
30e8466ca Update recursive-analysis.md
3881c5189 add example of the result of the analysis
4959d124a Update recursive-analysis.md
f133ee3cc add more explanation in the docs about startup candle and its relation to API limit
ef6afaa2c Add test for replace_fail
0e406c4d7 Update some more test wordings
b21775142 Improve variable naming in test
8ccc66cd9 Add tests for cancel order retries
b4e732617 Add handling for order replacement cancel failing
450219c83 Extract replace_order_faild message and behavior
eb7df3006 add test
961f50e33 fix broken link
478e6f1e6 fix test
a0e115ebd fix another test
ce4f1b070 fix test after adding new test strategy
aba576f79 pre-commit fix
d92a6d7b7 all tests done
89d47ffd8 4 more tests
b9e9f8250 first test done
08b94a207 1 test
9f445cb05 Don't rely on status when determining open order count
1d23ba6e3 Improve wording after order-replacement
28e43a486 initial test
1b2852187 Improve execute_entry interface
4ba3363bc Use matching numpy version in docker armhf image
d465fcffd change startup cande in sample strat
32b0098ec fix example in the docs, increasing startup to 400 on ema100
e77b9de89 fix docs
aec67cda6 update bybit live order to v5
f3fb801b3 Update order_parse online test
fe3308824 Bump ccxt to 4.0.101
4bca8b97f Don't allow empty order-type from exchange
f62f4f771 Fix deployment (no arm numpy wheels just yet).
896e2b628 piwheels finally has wheels for cryptography
ddb0ae10b Ensure no None status is passed from "create_order"
37fa186c5 remove 1 column
979e485f2 initial doc
830f2219c Update exchanges.md
d21f0f408 chore: add guardrails for users who neglect docs
8f883f231 chore: fix set_initial_hist_preds test
2f63b0199 Bump xgboost from 1.7.6 to 2.0.0
cfdd9d6be Bump lightgbm from 4.0.0 to 4.1.0
fd4877759 Update hard min-requirement for python
3f85f3cce Exclude UP036 for now
c7106a680 Bump plotly from 5.16.1 to 5.17.0
6e1f457fb Bump python-rapidjson from 1.10 to 1.11
533a16658 Bump rich from 13.5.2 to 13.5.3
9b35dae46 Bump mkdocs-material from 9.2.8 to 9.3.1
e6d01b04e Bump numpy from 1.25.2 to 1.26.0
d185b2020 Bump filelock from 3.12.3 to 3.12.4
74ed0e0b1 Bump ruff from 0.0.287 to 0.0.290
f6fce2162 Add new parameter to strategy template
158bf0977 Fix type checking error
1f1abfe79 fix: avoid duplicate date columns interfering with fit_live_predictions()
29a5e049b edit note wording for custom_entry_price
2bc0c4ecd update docstring
224213840 update trade object as optional parameter
d81fdeb3e Update docs/strategy-callbacks.md
14c5f435a okx: Use proper history endpoint for fetch_orders
5745722a3 Increase time for fetch_orders in test
a7cd9d77f ignore custom_entry_price trade object type test, remove LocalTrade as type
5b857aeaf fix custom_entry_price trade object type test
afb1b787c add okx to  fully tested exchanges
659168d34 Improve cancel_stop test
3f4715ba4 update custom_entry_price docstring
1d0f1bd1e update doc
220bc3c23 Rename fetch_orders_emulate to make it non-protected
c90be601f Add offset to "fetch_orders" to avoid missing the initial order
5d8e0573f Run handle_onexchange_order test without dry-run
3d858f659 Fix bug closing trades while recalculating
6d2d5f93d Add exit order test
d01bc0fb9 Enforce kwargs for update_trade_state
394d758d3 Add missing fields to json (and json parse)
91c710408 fix flake8, set trade object param as Optional
3a7f39051 Cancel based forceexits shouldn't trigger a full exit.
a7d6efdcd Fix order amounts in test
fed24c130 Improve test for get_canceled_exit_order
ae4021da1 Rename get_canceled exit orders ...
8378a0234 Filter exit_order_count on canceled orders only
cf96ad1d1 add trade param to custom entry price in interface, bot, backtesting, exemples
3919bf374 Adjust sequence of trade json output
9814cf536 flake8 fix
c19fe95d3 add the filter to docs, tyding up the py file
383bdb7d5 flake8 fix
33bf7f9f3 Ensure test doesn't fail based on daytime
454c2343a More clarity for adjust_trade_position callback docstring
310c9f603 Update test_freqai_datadrawer.py
c0a600858 Change the cache of rangestability to 1 day
5b0738541 simplify the filter
844ab4aef chore: add tests for set_initial_return_values
44ca6f1c4 remove unused vars and change wording
552f94724 remove unnecessary check
7655bf6ea turn off logger for now
25ae25248 add logger
dd01ae880 fix error
e0a06ca45 add fulltradesfilter
a93592c46 add fulltradespairlist
08dffc95d fix wording
5019fb5bf fix flake8
a0e0d7fe2 more fixes
6377fd268 flake8 fix
bd9ea9bd8 precommit fix
cfeefa875 remove prepare data from baseanalysis
475d8486b fix mutable Backtest
628963c20 chore: fix bug associated with leaving FreqAI offline for more than 1 candle.
4d1810c2b update lookahead analysis
05f0dccb8 add missing args to config
6360e7fb1 debug
40695a39d add missing var
008f62121 create BaseAnalysis class
a52cf4221 use last order date to fill order.
a866b0a35 Improve test correctness
af1054fa7 Avoid re-implementing existing feature
ee9d2c637 Improve "order refind" mechanics
f0819d9df Improve "filled" date assignment for order updates
96e5615d1 Update safe_value_fallback to allow empty 2nd keys
82baa3f93 Improve and clarify wording around use_exit_signal
45c90c201 Bump pytest from 7.4.1 to 7.4.2
3a1057e1f Bump questionary from 2.0.0 to 2.0.1
e45d5d359 Bump orjson from 3.9.5 to 3.9.7
14ee5a207 Bump mkdocs-material from 9.2.7 to 9.2.8
da83243eb Bump ccxt from 4.0.81 to 4.0.88
46ec7d5ea Bump actions/checkout from 3 to 4
29fbac9f9 Add "catch-all" exceptionhandler for handle_onexchange_order
421a6c02a Improve enum imports
bef27467b Further improve test
52f971cbb Improve existing test
563e68e89 Don't hard-fail merge if there's no informative data
49b4ab6d3 Simplify some things in tests
7455e56a2 Add docstrings, simplify some code
245a67e37 Avoid tons of commits when cancelling all orders
e76d4241a Remove further unnecessary method
01ff054a0 fix open orders telegram reporting
9e1f7dc6f have force-enter also include has_open_orders
067c9219b replace 'open_orders' with "has_open_orders" in api
f4e5ce892 use has_open_orders in persistence
830fc7580 Cleanup unused property
cb5cd5cd8 Temporarily downgrade padnas to <2.1.0
f8b97b6aa Fix dtype mismatch error
7b6e2eac4 use ffill instead of fillna(method='ffill')
f13e134e9 Update actual notebook (not just the docs)
97a37198b Update test
43bb4114d Update test for no open_order_id usage
ffaa121bc Simplify code by removing unnecessary (and non-working) method
227b194a8 Partial exits should consider leveraged trades.
95d8c4548 test_handle_cancel_exit_limit - partially fill by half
bae4abace Test test_handle_cancel_exit_limit short
44461bd1a Add leverage to test_handle_cancel_exit_limit test
2c095c07f Improve variable naming
97275f5a4 Update strategy_analysis_example.md
7ccff1843 remove old codes when we only can do partial entries
f09c0a5bb Remove 3.8 talib Wheel
aba945009 Simplify requirements for 3.9+
4ef164713 Setup.sh should require 3.9
6e93bff37 Update documentation for 3.8 removal
4d20e37f4 Remove 3.8 from CI
20cca01d1 Fix bug in volumepairlist if lookback is bigger than the available candles (new pairs)
8cbb5d2a9 Adjust test for "nan" data
fbae2142d Remove misleading "cd freqtrade" command
e854667eb Add max_drawdown_start and end to /profit API endpoints
7bf20d906 Show drawdown from/to on /profit calls
7c5a11623 Use dt_ts_def in profit endpoints
783a2d945 add dt_ts_def helper
2073c7181 use format_date in rpc methods
d8122962d Add "date to string" helper
1ea626fb5 Pin pandas for <3.9 versions to old version
574744348 Bump pandas from 2.0.3 to 2.1.0
efb9975e3 Bump pytest from 7.4.0 to 7.4.1
5954e7796 Bump mkdocs-material from 9.2.5 to 9.2.7
39b6a0022 Improve naming of calculate_profit method
07e07bd66 Improve test, ensuring we calculate profits correctly
fac8e0fde Remove calc_profit content
ffb1cf52b Convert further usages to calc_profit_combined
399f144c2 more calc_profit_combined usage
459b9d80d use calc_profit_combined
28e685ee2 Switch combined profit response to dataclass
c58a1649c add calc_profit_combined call
ac6cdb76c Bump catboost from 1.2 to 1.2.1
8ac3e8ad5 Bump ruff from 0.0.286 to 0.0.287
e0f52696a Bump pre-commit from 3.3.3 to 3.4.0
f75f0ccf2 Bump pymdown-extensions from 10.1 to 10.3
440f6ab8e Bump nbconvert from 7.7.4 to 7.8.0
e7daf3177 Bump ccxt from 4.0.76 to 4.0.81
8ffc0ad9f Bump fastapi from 0.103.0 to 0.103.1
df83bdea8 Bump python-telegram-bot from 20.4 to 20.5
420f6fb9a Bump filelock from 3.12.2 to 3.12.3
cea3f7d3f fix flake8
a9f63c6a9 fix mypy
0ada2d939 fix mypy
e1b6b9b5a ruff fix
3fea2a35a pre-commit fixes
821a598ff fix ruff
feab5f82c add missing arg
607c604a4 add mising const
b77f926cd add recursive analysis
a4fc7ce0c "fix" bybit invalid order responses for canceled orders
d1984945d Improve tests for /weekly and /monthly
3c20ab683 Have /monthly return proper dates, move formatting to telegram
f838bc760 Implment weekly/monthly RPC endpoints
25f5dbfcb Delete trade if replacing the first order failed
be044fbac Improve log output
7a4276f6c Include pair in dry-run order names
925e18368 Fix linting a.k.a. Maybe one day, flake8 will like me
250e00e6c Fix dropna subset
81672da57 Fix nulls in indicator list output and add expectancy ratio per entry tag in analysis group 0 output
d68c22b21 Move merge-informative_pairs helper to informative section
e806e4a79 Move stop helper functions to callbacks section
6f86e30c7 Add leverage adjustment to "stoploss_from_absolute"
a87404b5a Reduce limit order cross threshold
0357d373a add QRDQN to SB3_CONTRIB_MODELS
28c62724d Add explicit test and message for "Order could not be replaced" scenario
d13357bb0 Update setup.sh
65fe1a671 Add explicit test for bybit fetch_orders behavior
6429282f0 add iterating emulation to fetch_orders for bybit
b5fa01360 Add pairs argument to fetch_orders
02bd052e4 Improve naming of variable
4ed46ef6b Add significant digits Round_Up / round_down
65c7607e3 Add Tests for "Significant" digits
bfc2c70b4 Fix and improve Tick size ROUND_DOWN logic
3a6c00dba Improve price_to_precision test depth
133660ff4 Fall back "price_to_precision" to ccxt where possible
994b2a0f2 Update sorting of price precision logic
d4c042c52 Add amount precision test to test for significant digits
b48fe4ce5 Properly use Precision-mode Variable
78f356c0d amount to contract precision to test_utils
7263d321f move timeframe_to* tests to test_exchange_utils
1ccbe87f9 Move precision tests to exchange_utils test file
e7d2a4876 Move date_minus test to exchange_utils testmethod
c894843d0 Exclude .venv and .env from flake8
23aa8dcd5 Simplify profit calculation (removes unnecessary fallback)
5eb446f1c Don't remove elements from list we're iterating over
5efa40215 Allow invalid futures pairs (`:` separated)
99b01a39d Add note about Edge deprecation
2bae4c98b Add rpi wheel for pyarrow 13.0.0
f717928ae Bump mypy pre-commit
3643ad005 Bump pydantic from 2.2.1 to 2.3.0
46b8708ff Bump fastapi from 0.101.1 to 0.103.0
9136c13cd Bump pyarrow from 12.0.1 to 13.0.0
0df9436d0 Bump mkdocs-material from 9.2.1 to 9.2.5
d32aabecd Bump ruff from 0.0.285 to 0.0.286
f2a3dd641 Bump ccxt from 4.0.71 to 4.0.76
fc23b47c4 Bump python from 3.11.4-slim-bullseye to 3.11.5-slim-bullseye
f25670167 Bump version to 2023.9-dev
c1df94b50 Bump version to 2023.8
f19f3ed4e Fix rpc forceexit logic, fix remaining test
2f97b00d3 Fix test
911e23849 Revert false removal of Exception from test
5659ca2ec Fix migrations
0181abc62 Fix migration SQL statement
acda2ff90 Remove open_order_id from test_ftbot
43c73c75c Remove more open_order_id references
95daff182 Update backtesting to not use open_order_id
b82b77d03 Fix some rpc tests
193dcf578 Fix logic error in force_exit if no order is open
4c0a6611c remove open_order_id from test mock trades
5ed590780 Add explicit example for "after_fill" handling
a78d70499 Fix strategy template typng
cb85a5304 Improve "uses_after_fill" detection
7f1a81eee Fix stop switching to trailing if order is replaced in backtesting
106dffe2c split update_trade
070a1990e Improve handling of None values from custom_stoploss
ddf79088f Update custom stop documenttaion
3ed682a9c Allow None from custom_stop
6e32f172b Update samples in the documentation
bef5e191a Don't surprise people with "after_fill" calls
fc60c0df1 Add call to stoploss-adjust for backtesting
62d83b8db Use is_stop_trailing for actual trailing detection
e1eeaa24d Implement "adjust lower" correctly
624939252 Add test for "allow adjustment in other direction"
4da8c9116 Improve stop adjustment tests
ec8ba821e Simplify stop adjustment code
6b9547a9a Improve migrations
ae9f73062 Add explicit "is_trailing_stop" field to database
147cc4f0b Initial version of stop "after_fill"
e2274e813 Rename adjust_stoploss parameter to allow_refresh
d09193127 Ease meaning of "refresh" param for adjust_stoploss
2893f0544 fix test_apply_fee_conditional_multibuy
f224f743d Add explicit test for open_orders property
be062c5fb Fix frequent notification bug due to stop order
5c0d89feb fix test_handle_insufficient_funds with comments
4e6068a92 wip fix test_rpc_force_exit / __exec_force_exit
07c629922 fiw wip test_api_status
3f506bb47 fix test_api_performance
1c4c2272f fix test_api_delete_open_order
1ed6f1875 wip fix test_rpc_force_exit
ca4ef22d0 fix test_rpc_status_table
db5383927 fix test_rpc_trade_status
29d77a17e Fix more tests
e34bfa976 Fix exception test
d08bad728 Fix trade_from_json
ac4e3028d Clean up some code
f1bed9515 Fix some initial tests
f3f5b63b7 Remove duplicate attributes
a98e8ef20 retreive open orders from orders list, not from db
b03147097 WIP with comment on test test_adjust_entry_maintain_replace
171c4f182 update test_adjust_entry_maintain_replace test case, fix first RPC test
32c919cfa replace open_orders_count by has_open_orders in freqtradebot
bf60f38a2 fix tests test_handle_trade, test_handle_cancel_exit_limit, WIP on test_adjust_entry_maintain_replace
93994756e fix multiple tests, including test_check_handle_cancelled_buy
7c55a2c6e fix tests: test_manage_open_orders_entry, test_manage_open_orders_partial_except, test_adjust_entry_cancel, test_manage_open_orders_partial_fee
ee4379256 fix tests: test_handle_cancel_exit_cancel_exception, test_update_trade_state_sell, test_manage_open_orders_entry_usercustom
f14b42f20 add use has_open_orders property in freqtradebot tests
6e8c765ec add has_open_orders to Trade model property
5f7040688 fix more tests
069759c7c fix more tests
ebd5fac91 update cancel_all_open_orders, wip on fixing test_cancel_all_open_orders
156c20288 fix more tests including process_open_trade_positions
8e0faf4aa fix more tests, remove legacy conditions from update_trade function
20a2b2749 update LocalTrade model orders related property type
73d1201ed start fixing test_handle_stoploss_on_exchange_trailing, add temp logs
fcbacae6f remove unuseful function call in manage_open_orders
60a50a2ea fix test_handle_stoploss_on_exchange, add more orders related hybrid_properties to Trade classes
defa6f45b fix more freqtradebot tests, update params of handle_cancel_enter, handle_cancel_exit
9cdff0b0a fix first important tests in test_freqtradebot, update and fix on order related Trade class hybrid_properties
450fc5763 fix test test_freqtradebot.py::test_execute_entry
249566155 remove unrequired appends from test_update_limit_order
ae92557dd remove commented legacy open_order_id property references
057f852e0 fix localTrade and trade classe miroring, fix persistence tests
4874d1045 Replace open_order_id property by open_orders in Trade model, first test update

2023.8

8 months ago

Highlighted changes

  • Switch default dataformat from json to feather to provide the best possible performance (please use convert-data to convert your existing data. in most cases, freqtrade convert-data --format-from json --format-to feather should work fine.
  • Add “notes” capability to backtest UI, to keep notes about that specific backtest run.
  • Removed explicit support for exchange sandboxes.
  • Simplified minimal new-strategy template.
  • Prevent lookahead bias in informative data within callbacks during backtesting.
  • Move virtual environment from .env to .venv (:warning: Make sure to update your scripts if necessary).
  • Added support for parquet format for trades data.

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
c1df94b50 Bump version to 2023.8
3388bc501 update conda docs to use 3.11 by default
981cf1f6e Update cached binance leverage tiers
04122abd1 chore: protect users who dont read log warnings
e5a88fded Fix stylistic issues
9c4aca2b9 Improve download data debug output
67e3ce308 Remove now unused import
a740b9458 Fix remaining test after conftest_trade rework
ffdb5fb79 Fix further tests after conftest_trades rework
0cc703923 Fix mock trade 1 status
0f73e38f9 Improve docstring for "select_filled_orders".
cfe1187cd Fix missed Test
a36e13183 Fix more conftest trades
94864a6ab Fix bad open_order_id assignment in test
e1e90112b conftest_usdt trades - align open orders
c303d47f2 Ensure stop_duration is converted to int
36d99876c Add mkdocs to rtd config
2a192b19c Fix path typo
9eaff301e Attempt update RTD config
62ce96fd4 Add documentation explanation on pair naming conventions
0c7cb29ea Don't use type() is comparisons
8ac4f4ac4 Bump ruff from 0.0.284 to 0.0.285
329b35fc5 Update sqlalchemy pre-commit
e3d17b98b Bump gymnasium from 0.28.1 to 0.29.1
1c55432bd Bump sqlalchemy from 2.0.19 to 2.0.20
a6a1b0e84 Bump orjson from 3.9.4 to 3.9.5
57c23fd9b Bump plotly from 5.16.0 to 5.16.1
d18dea076 Bump mkdocs-material from 9.2.0 to 9.2.1
4b7948116 Bump pydantic from 2.2.0 to 2.2.1
9d31566a2 Update dependabot pip limit
ec2f51dcc Bump mypy from 1.5.0 to 1.5.1
5a0f62431 Bump time-machine from 2.11.0 to 2.12.0
99f7e3bce Bump scipy from 1.11.1 to 1.11.2
e93832117 Bump nbconvert from 7.7.3 to 7.7.4
6d90ceca5 Bump mkdocs-material from 9.1.21 to 9.2.0
22f1c7251 Bump fastapi from 0.101.0 to 0.101.1
0f1e66b22 Bump ccxt from 4.0.59 to 4.0.71
b088154c0 Bump stable-baselines3 from 2.0.0 to 2.1.0
4c5f99267 Ensure signals don't break on windows
f92b8c50d Update config echo block to store config in user_data
2d800a142 Fix bug in config-builder
fb790b2d4 Update path of config for new-config documentation
b71a44f27 Enhance Keyboard interrupt handling for dl-trades (stores data it already downloaded).
4fefae6f0 Improve download-trades test
3167938d4 move "since" fallback to be the last check
7da017493 Allow slightly different ta-lib installation locations in setup.sh script
4feafb25c Update ta-lib windows wheels
08532e1df Bump ta-lib to 0.4.28
8fa31b35f use prefer-binary to avoid hardcoding ta-lib outside of requirements.txt
f5e054311 Fix windows CI failure
399e308e0 Fix bug in --dl-trades downloading
277cc0a52 Fix import sort order
185c5a779 use model_validate instead of parse_obj
352f0fdfc Bump pydantic to 2.2.0
3d8dcd164 Improve and parametrize trades_data tests
30064b410 Add support for trades data in Parquet format
8caadc4c5 Fix feather handler storing
3eb359655 Simplify trades_data storing
5de3b9d7a Clean up no longer used method
fae742de5 Fix imports
fa5f7d290 Update download-trades method to work with dataframes
757761388 Extract trades df type conversion
0fab65df0 Set explicit dtypes
f69a77630 Ensure only relevant columns are stored
26c89d89e Keep original timestamp in dataframe
d97d0e442 Extract trades DF creation to converter function
357b04202 Datahandlers should store data from dataframes
6fc1ee983 trades_append should use dataframe, not lists
780f23890 Fix trades duplicates if trade id is different
5d5cc7194 Fix pandas duplication detection, improve test
0be2250cf Keep existing trades_remove_duplicates for now
53db254cb don't cascade calls, that creates an additional call
02ee7f8b5 Update further tests
a59507475 Update test for new trades handling
7ac9d33c3 Default should return a dataframe, not an empty list.
ac80a6914 Update converters for trades dataframe handling
46882406b Update Datahandlers to work with trades data as dataframes
ba34318f7 Update converter test to use fixture
3bc49330c webserver mode should properly validate config
b93c6235c Fix Case of gym.Env in documentation
aa756221f Improve behavior of ta-lib install
688018d9f Update setup.sh script to use `.venv` instead of `.env`
ea181645b setup.sh: Extract environment recration to function
f607b8abf Silence pip download
d43993601 Update docs about suing `.venv` instead of `.env`
91fd47271 Extend ruff excludes to .venv
6134807c6 Remove wrong image link
7651f1b1d Add more samples for correct debug configurations
d9fb40ca3 Update cached binance leverage tiers
77c7dd8a1 Add FIAT mapping for true usdt
452e1ab01 get_analyzed_dataframe should provide dataframe with startup candles
bea678222 Ensure cutoffs in backtesting are properly tested
045d8c6fc Add test for informative pair filtering
161ab14ed Avoid lookahead bias through informative pairs in callbacks
6f347b839 Remove optionality from timeframe parameter
09ec00888 Don't use global variable in test
3f5903bad Split tests for jinja utils
afcaeafd9 Move rendering commands to utils
6b11f3063 "minimal" strategy templates shouldn't render all attributes
a4842113c Split strategy template to have conditional attributes
d768afed3 price_to_precision should only run once
db9247e78 prevent errors in custom stop from crashing the bot
d53b6871e Bump pre-commit mypy
08bc61582 Further simplify backtest order handling
bcc2dd980 Simplify backtest order closing
d7e9f87b3 Improve comment indent
d7556cd66 Remove duplicate call in backtesting
f4844c122 Downgrade prompt-toolkid to 3.0.36
21cf5fc67 Fix use of string.format()
9b6654e81 Fix ruff E721 (type comparison)
bb5277812 Bump joblib from 1.3.1 to 1.3.2
7224bdf82 Bump ccxt from 4.0.50 to 4.0.59
0abfad558 Bump tqdm from 4.65.0 to 4.66.1
9a95011b5 Bump ruff from 0.0.282 to 0.0.284
987a7ddac Bump aiofiles from 23.1.0 to 23.2.1
ceee57c39 Bump plotly from 5.15.0 to 5.16.0
6e79c19fe Bump tensorboard from 2.13.0 to 2.14.0
f0a50b1f2 Bump jsonschema from 4.18.6 to 4.19.0
4942d0157 Bump mypy from 1.4.1 to 1.5.0
4664cc23e Bump questionary from 1.10.0 to 2.0.0
6768641ba Bump orjson from 3.9.3 to 3.9.4
90e41274e Bump pypa/gh-action-pypi-publish from 1.8.8 to 1.8.10
2c5a7ceab Improve typing of stoploss reinit
3ecaedb7d use FormatStrings in trade_model
1ca3cd086 Fix missing . in interface docs
72bd4e816 Simplify code, no longer log "could not find rate"
716b1cd00 Improve ccxt tests
6ce08548f Further update ccxt test fixtures
ea257e3cb Refactor online test fixtures into separate conftest module
20763daa7 Simplify online tess by skipping non-available futures exchanges
7e9389421 Move ccxt_compat tests to their own subfolder
05e182861 Improve Fee check
328a6f791 Improve stoploss mock
b93464403 Fix tests, explicitly test for missing timerange
4a62ebbf9 Don't hardcode fee, but use fee from the very first iteration.
2069abe31 Remove custom fetch_funding_fees from bybit
78cf8a1c0 Fix exchange bybit test
565e2699b Re-set funding-fee history limit for bybit to 200
62ad2cca1 Add active test for alternative futures rates (ensures history is loaded correctly).
ab156b6ad Increase bybit ohlcv_candle_limit to 1000 in tests
1f23727ff Increase bybit ohlcv_candle_limit to 1000
c88f71c63 add timeout to discord
05bbc8e7a Remove last sandbox occurance
5e3e443d2 Remove Sandbox docs
88d6f70ab Remove sandbox related code
9c73e52dd Remove sandbox configuration options
33d3c4f7d Improve backtestResponse in preparation for future update
03150ee09 Ensure backpopulated "trade" attribute is immediately loaded.
4b07720d0 Update test strategy to ensure we're using stake_amount
ae3c3d81c Bump jsonschema from 4.18.5 to 4.18.6
8deedc31c Bump fastapi from 0.100.1 to 0.101.0
8c3a0cf61 Bump orjson from 3.9.2 to 3.9.3
67ea6512e Bump ccxt from 4.0.48 to 4.0.50
813ace12c Explain behavior in case of deposits
cd6fc1652 Add rate-limited wallets call before adjust_trade-Position calls
7d18261f5 Improve FAQ wording
72d9e8a09 Fix indentation of strategy-updater in utils
e174f9640 Improve docker docs with some hints about windows usage
25602ceac Added a fixed fee to 0.02 (any fixed value would suffice) since kucoin dynamically decides which pair gets which amount of fees and thereby producing false-positives upon verifying the entries/exits.
bdf89efd1 pytorch - improve docs
23d2bad2a pytorch - set n_steps type as optional
9f69a45af pytorch - documentation update
a3c6904fb pytorch - naming refactor - max_iters to n_steps
d17bf6350 pytorch - trainer - revert load changes
777d25192 pytorch - bugfix - explicitly assign tensor to var as .to() is not inplace operation
836d7b885 pytorch - trainer - set default usage of n_epochs instead of max_iters
81cd24195 Update API backtest to return proper metadata
6d6111864 Test also backtest result list
23a2b9599 Add test for updating metadata
36b84241b Don't allow null as notes
51879ffd2 move Notes to be a "API only" type
0d71a74d8 Bump api version to 2.32
78972604d Allow metadata file updating
2f95c4477 Add "notes" to backtest result output
53c0d30f3 Update test for new kucoin behavior
0e63335d2 Remove bitvavo temp. workaround
494d58e79 Update tests for new output format (string-formatted dates are not relevant).
3b416223e Bump pydantic to 2.1.1
d78eb834c Convert to pydantic - jsonencoders (no longer exists)
47850ce1b Don''t use deprecated pydantic methods
bb18e1b45 Fix part of the backtest type error
4b2a6a84f Remove more deprecated options
505584dc4 pydantic 2 - update deprecated methods
e36c54525 pydantic - root model
cfdd01d29 Update most of Api schema to pydantic 2.0
53c76160a Force pydantic > 2.0
9b924f1f8 Convert ws_schemas to pydantic 2.0
261a593ba Update tests for new output format (string-formatted dates are not relevant).
02ec945a9 Bump pydantic from 1.10.11 to 2.1.1
2b7deb147 Bump jsonschema from 4.18.4 to 4.18.5
ac85c3527 Bump ccxt from 4.0.47 to 4.0.48
adbb131dc Bump mkdocs from 1.5.1 to 1.5.2
482cc615c Fix empty Path inits in tests
b91d7debe Bump rich from 13.5.1 to 13.5.2
1778a6add Bump ccxt from 4.0.45 to 4.0.47
2a0a270f1 Bump ruff from 0.0.280 to 0.0.282
e1fd3a6dc Fix formatting of bullet points
66adeb0a5 Only bump non-arm cryptography
1be1efbc4 Bump cryptography from 40.0.1 to 41.0.3
acd005b72 Don't show 0.0.0.0 security warning when running in docker.
c4d41659f add second alternatives instead of using .range
3612956b7 Allow unbound stoploss
78670602d Update binance leverage tiers
33eecfa9e Fix test typo
30f6f470d Add filename to backtest result metadata
c836bd8fa Add Get_backtest_resultlist typing
5c68b0d38 Add BacktestMetadataType
f546ee656 Use list comprehension to get backtest-history
730ae781a Add explicit test for get_backtest_metadata
4fd425260 Bump ccxt from 4.0.44 to 4.0.45
f1fb118d7 Bump numpy from 1.25.1 to 1.25.2
61da1877a Bump rich from 13.5.0 to 13.5.1
6b163af99 Bump uvicorn from 0.23.1 to 0.23.2
ce574af7c Bump mkdocs-material from 9.1.19 to 9.1.21
ddd92a90b Bump markdown from 3.3.7 to 3.4.4
370ea273c Bump ccxt from 4.0.36 to 4.0.44
bc86f1261 Bump nbconvert from 7.7.2 to 7.7.3
e5d5c4c50 Bump rich from 13.4.2 to 13.5.0
a147f7a04 Bump fastapi from 0.100.0 to 0.100.1
b666adced Bump mkdocs from 1.4.3 to 1.5.1
1926e642c Improve backtest_stats storing test
1a1103c23 Add backtest-result typing
3148cd39c Don't drop metadata from original dict when storing backtest results
71737d879 Remove half-commented test part
15dd8bec1 Bump dev version to 2023.8-dev
5b8800ee1 didnt intend to change the timerange itself, but the logger-output of the timerange
e4b488cb8 added stake_amount to a fixed 10k value. In a combination with a wallet size of 1 billion it should never be able to run out of money avoiding false-positives of some users who just wanted to test a strategy without actually checking how the stake_amount-variable should be used in combination with the strategy-function custom_stake_amount.
ad428aa9b added stake_amount to a fixed 10k value. In a combination with a wallet size of 1 billion it should never be able to run out of money avoiding false-positives of some users who just wanted to test a strategy without actually checking how the stake_amount-variable should be used in combination with the strategy-function custom_stake_amount
1ab357dc3 added mentioning which pair + timerange + idx is biased for visibility and debugging purposes
a33be8a34 added dummy-varholders in case a not-last-trade is force-exit and else the indexes would shift ruining the analysis and making debugging easier (since the same ID will always be the same ID again)
a5f5293bc added logger-output when something is skipped or aborted
d61f512e2 pytorch - trainer - clean code
77f158471 pytorch - trainer - bugfix step tensorboard step usage
ffcba45b1 pytorch - mypy fixes
9fb0ce664 pytorch - ruff fixes
5734358d9 pytorch - trainer - add assertion that either n_epochs or max_iters is been set.
7d28dad20 pytorch - add n_epochs param to trainer
588ffeedc pytorch - trainer - reomve max_n_eval_batches arg from estimate loss method
49a7de4eb pytorch - trainer - add device arg to load method
0c9aa8688 pytorch - data convertor - create tensor directly on device, simplify code
9cb45a381 pytorch - bugfix - explicitly assign tensor to var as .to() is not inplace operation
b593205ad No need to use .get() for properties with default values
539925378 Update documentation in regards to data-format
2babb36fc Update final tests
ec2960a16 Fix dtype ...
1c5d20e9a Fix some tests, restore 1m json data
a1efd6b78 Update further tests to use feather
1d77497f6 Fix test
586692b73 TMP: remove full json data
4d3740d4c Update default datahandler class
15aa1fd87 Add new feather data
578110488 Update cli-options default
08fdb3a47 Update documentation
cca8c4e5b Update default dataformat to feather

2023.7

8 months ago

Highlighted changes

  • Community showcase section in the documentation.
  • Updated proxy configuration for ccxt (make sure to read the corresponding documentation section if you think you’re impacted).
  • Improved convert-data command, converting data a lot more efficiently.
  • Improved “/profit” command by adding winrate and expectancy.
  • Improtant fix to freqUI historic plotting (backtesting, …), which will not correctly respect the startup_candle_count of the strategy.
  • Backtesting now shows max-consecutive wins/losses.
  • Improved new-config logic for api server setup within docker.
  • Allow deletion of Backtest results through UI.
  • Fixed faulty resampling of monthly (1M) candles.

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
5a7a9d48f Bump version to 2023.7
79910870a Fix bug resampling monthly candles
e7e7a1718 Add test confirming #8972
3fa31bfe2 Better explain ROI assumption on level change
b2abdab7c Fix bug where adjust_entry_price was called for exit orders
fd7dfc95e Enhance dca integration test for adjust_entry checks
797617aba Fix test comment
9a400d0e6 Allow comments and trailing commas in remotepairlist files
8f18a52cd Fix Typo in remote pairlist docs
d638a4a0f Raise proper error on strategy search
bbf472e69 Improve errorhandling on webserver endpoint
83f45d0e6 Call static method as static method, not as if it were an instance method
d6122585f Prevent pandas exception on Date assignment
2fcff7875 Move comment to actually relevant line
f56f5179d Update showcase.md
c2b40da76 Bump Api Version
05e4b6309 Extract backtest_result deletion logic to separate function
8b2abf442 Remove .json from backtesting output
997b80fd7 Allow deleting of backtest files
5a7e82234 Improve security of get_backtest_history_result
1d39cc18b Add is_file_in_dir helper function
e39af1720 Improve typing for is_relative_to
47fca02ba Improve docstring
ed2485dd5 Move generate_wins_draw_losses to bt_output (it's an output function, not a calculation)
5a057e4b9 per-commit bump types-requests
b90e7d75c Bump ruff from 0.0.278 to 0.0.280
1c26a6600 Bump types-requests from 2.31.0.1 to 2.31.0.2
161446393 Bump ccxt from 4.0.35 to 4.0.36
9df302f2f Bump uvicorn from 0.23.0 to 0.23.1
ce7f7d828 pre-commit bump dateuti
7a69bdff6 Bump types-python-dateutil from 2.8.19.13 to 2.8.19.14
bb36c9500 Bump pre-commit types tabulate
235067c79 Bump nbconvert from 7.7.0 to 7.7.2
11e604d61 Bump types-tabulate from 0.9.0.2 to 0.9.0.3
b41b96644 pre-commit bump cachetools
327b05546 Add consecutive wins/losses to backtest output
221f242a4 Bump ccxt from 4.0.34 to 4.0.35
a9d310ca0 Disable bitvavo candle test temporarily after downtime
f26b49ee0 Ensure return value is an int, not a np.int
380244f8b Improve calc_streak, rename method
0f046ceaf Implement calc_consecutive_losses
a7bd6725f Add test to verify consecutive wins / losses calculation
c61b72e5c Bump urllib3 from 2.0.3 to 2.0.4
d909fde4b Bump types-cachetools from 5.3.0.5 to 5.3.0.6
2bb4af911 Bump pyjwt from 2.7.0 to 2.8.0
00a392b26 Bump mkdocs-material from 9.1.18 to 9.1.19
6f5ba2725 Bump jsonschema from 4.18.3 to 4.18.4
6ddbc8c00 Move generate_wins_draw_losses to bt_output (it's an output function, not a calculation)
a00fcd68f Default to 0.0.0.0 if on API listen address for configs generated through docker
fb7fb7f59 Add helper function detecting (prebuilt) docker environment
d7916366b Adjust webhook tests to include timeout
ad82ad440 webhook docs improvements
8dfe43f37 Add timeout for webhooks
4549fb349 Add security notice about IP whitelisting on bybit docs
889a732e0 Enhance bybit documentation
8f0422528 another test fix
4c23771d3 fix expectancy test
0eddc6b7a update expectancy test
787e94924 Update default expectancy ratio to 100
955a63725 Improve resiliance when showing older backtest results
27a36bfb4 Bump lightgbm from 3.3.5 to 4.0.0 (#8923)
e5f01ab2e pre-commit fix
40d7d05e4 merge 2 expectancy functions
c6ee8fcf5 remove unused check
3552fa431 fix test
3dd33cde0 fix test
ee3b69ea6 fix test
b0639ab31 flake8
cfd8b068e add test for expectancy
8621dc96e fix tests
11f24aff9 flake8
dcc3ef130 flake8 fix
4812bcc28 flake8 fiz
c048e7229 modify expectancy and expectancy ratio
4ea3f41d4 Map BUSD to correct coingecko id
687412397 Bump ccxt to 4.0.34
8d332fb99 Ensure /pair_history endpoint correctly respects startup_candle_count
f4933a9cf Improve test for pair_history
4369e3cde trim_dataframe should enforce kwargs for non-required arguments
9bfe96d4d Simplify advise calls by extracting that part into a method.
91bf8abf3 Add comment to clarify usage of trim_dataframes
9c1fea0e7 Add winrate to several bt metrics
ac2147727 Update test for updated cost logic
ea4534923 Completely remove "fee_cost_in_contracts" functionality
e734ab52d okx fees are not in contracts.
75628403b Invert order_props_in_contracts logic - cost is almost never in contracts
f735973bf Bump aiohttp from 3.8.4 to 3.8.5
ab5b27286 Fix double-%%
bb5a12dc1 Add built-in trade fields in indicator list docs
f95f954df Convert winrate to ratio instead of % in calculations
5ee458698 use find-links for windows install
9c39fd6e9 Update cached binance lev-tiers file
c8ee48bc9 Update comment on install script
ef52a7a32 Simplify windows install sscript
635ab7370 Update path for install_windows helper script
c4d38e6de Add new ta-lib windows wheel
8fd96118a Bump pydantic to latest 1.10 version
db0cad04a Pin pydantic to <2.0 for now
d64d0e9f9 Update docker-compose-freqai.yml
c64c10e76 Use Fstrings in hyperopt-tools
d8ba2b5df Bump ccxt from 4.0.28 to 4.0.29
6ccc12f33 Fix calcs, rename ratio, add docs
8738b8d55 Update freqai-feature-engineering.md
f2ff85421 Bump nbconvert from 7.6.0 to 7.7.0
cb5a67e9e Bump sqlalchemy pre-commit
6f0204fcd chore: remove inlier metric
78de61491 Bump ta-lib from 0.4.26 to 0.4.27
e5221932e Bump ruff from 0.0.277 to 0.0.278
c23ff9d7c Bump pypa/gh-action-pypi-publish from 1.8.7 to 1.8.8
5f82108aa Bump jsonschema from 4.18.0 to 4.18.3
454baa7b5 Bump sqlalchemy from 2.0.18 to 2.0.19
69e969173 Bump ccxt from 4.0.17 to 4.0.28
8c8b31599 Bump pytest-asyncio from 0.21.0 to 0.21.1
e8ff5cb78 Bump pymdown-extensions from 10.0.1 to 10.1
256a8c686 Bump uvicorn from 0.22.0 to 0.23.0
79f7f82c5 Fix telegram output
35714c469 Add explicit dry_wallet test
cf9ba527b Include realized_profit in update_dry
d0e0e156b Update tests to account for realized profit/loss
8a55423ac Add asserts for wallet size
66131d510 Improve integration test assertions
1fd2a2532 Reduce trade stats function complexity
9d36dc7ac Fix line length
59cb9e39d Fix another trailing whitespace
d4b282d6f Fix expectancy calc and tests
e57bb6bc9 Add api schema entries
3ce17b740 Fix flake8 problems
768a7b47e Fix some futures symbol naming in tests
096cb0d1e Add tests, fix winrate calc
4235ab0c7 Add expectancy and winrate to telegram
6e56f84fe Add expectancy and winrate to rpc trade statistics
ff1420810 Improve logic for from_json special case
626ea6b11 Add backtesting support for order.stake_amount
d8c062188 Add stake amount property to order object
17296fdf9 Use proper cost for order
e4cd29d88 Add test for trade.cost
eeec1b0b3 Don't bump armhv crypto dependency
e043fdba5 Bump cryptography from 40.0.1 to 41.0.2
7f0e1c27c Fix realized_profit for trade from_json
240606c5a Only run once for an order
6134764d5 Don't wrongly eat into dust on rebuys
45a9c304b Add test for new conditional behavior
c970ae8ad Add pyarrow pi wheel
3cf419cbc Fix ill-used type on order backpopulate mapping
722b5569b Add Freqtrade backtest project
e8fe5a4f1 bybit provides up to 2years of historic ohlcv data on any timefame.
127ca83de Bump orjson from 3.9.1 to 3.9.2
a0fff4364 Add fee_base to json output
b7bd1eba6 Bump time-machine from 2.10.0 to 2.11.0
6d63b9400 Bump fastapi from 0.99.1 to 0.100.0
e0ba2f3a1 Bump pyarrow from 12.0.0 to 12.0.1
7d16012f6 Bump ccxt from 4.0.15 to 4.0.17
4a422cac5 Bump jsonschema from 4.17.3 to 4.18.0
884594a96 Bump sqlalchemy pre-commit
12d89a906 Bump sqlalchemy from 2.0.17 to 2.0.18
1dbc294b8 Improve order __REPR__ with date
5bc84dca5 Fix from_json with new attributes
8c0e66008 Remove wrong/faulty "default" comment from cli options
4a1a19794 Bump python-telegram-bot from 20.3 to 20.4
43f6a7e3c Bump ccxt from 4.0.14 to 4.0.15
1bece11eb Bump numpy from 1.25.0 to 1.25.1
3c1cd7243 Bump mkdocs-material from 9.1.17 to 9.1.18
1ca2a8d63 Bump prompt-toolkit from 3.0.38 to 3.0.39
7359a76b7 Bump ruff from 0.0.275 to 0.0.277
75e6315aa Bump joblib from 1.2.0 to 1.3.1
b4957a2e3 Update converter test
448f02960 Improve behavior for convert-data
5a43dd476 don't hard-default `--timeframes` via argparse
10f34563f Improve default for --candle-types
4c6eee8df Update proxy documentation to correspond to new ccxt mode
a598b8554 Bump ccxt and ccxt min requirement
511023ee1 Fix typo in comment
af5fc76dc Add test for different processing modes
e6ee55a69 Improve some test coverage
4dda9c6da Add explicit test for short-desc
5da5369ca Update parameter sequence to make more sense
e64327f35 Update my link
4d4ec11a8 - print
0b68ca6cb use pairlist_pos remove unused check, fixed Test
b2106ef4a Update frequenthippo link description
ee1fa34df Add 'processing_mode' , blacklist checks
c4b0f24cd Use USD for kraken tests, as it has more volume.
a1d50dbfa Add community showcase
5c0f5588a Simplify sort_values in PerformanceFilter
1c5ea317e Add mode as parameter for the UI
a9e239ca7 Don't use future date for downloading new trade data
65550335e Add explicit online test for get_trade_history
01db789d4 Improve release documentation
c93a27af7 Bump ccxt from 3.1.44 to 4.0.12
9b447cdf1 Bump pandas to 2.0.3
98ba0042d Bump datasieve 0.1.7
f64b9503f scipy 1.11 doesn't support python 3.8 any longer
e734a664b bump develop-version to 2023.7.dev
942f0b4fb Move format_ms_time to datetime_helpers
e6db5bd19 Pin numpy for python < 3.8
9d3dda4e1 Bump stable-baselines3 from 2.0.0a13 to 2.0.0
b204da331 Bump scipy from 1.10.1 to 1.11.1
ce1b90885 support wildcards
d534f88d1 unnecessary lines removed.
caca070c1 added tests
36b33fb40 add mode to set the pairlist to blacklist additional to whitelist adhere to _number_pairs
b2c87c359 Bump numpy from 1.24.3 to 1.25.0

2023.6

9 months ago

Highlighted changes

  • New command freqtrade lookahead-analysis - Detect if your strategy has a lookahead bias, tainting backtesting results!
  • minimal_roi can now be empty, allowing to fully disable ROI functionality.
  • Fixed some odd behavior with OKX stoploss on exchange orders.
  • Add Pairlist generator (including live evaluation) in webserver mode.
  • Update docker images to Python 3.11.
  • FreqAI
    • Convert data preparation into a pipeline, allowing for easy customizations.

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
7ba459db8 Version bump to 2023.6
092e30a15 Attempt CI without brew update
977bfa08b Bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7
ba6cba31b Bump fastapi from 0.98.0 to 0.99.1
1880f9ffa Bump ast-comments from 1.0.1 to 1.1.0
0310a26b8 Fix documentation typo
29725440c Simplify RPCMessageType schema definition
accc1b509 Simplify class setups without inheritance
4b06b4772 sqlalchemy - pre-commit
b12dbd2be Bump ruff from 0.0.272 to 0.0.275
be07ea5d4 Bump mypy from 1.3.0 to 1.4.1
6b201d525 make sure default PCA behavior reduces parameter space size
8c2098c26 Bump fastapi from 0.97.0 to 0.98.0
6274197f8 Bump sqlalchemy from 2.0.16 to 2.0.17
ae42d57a2 Bump pytest from 7.3.2 to 7.4.0
2d2699b0a Bump mkdocs-material from 9.1.16 to 9.1.17
fec4cb3cf Bump nbconvert from 7.5.0 to 7.6.0
1717f8670 Extract edge output to proper module
72504e62a Extract btstorage methods
65e835990 Improve naming of new file
794bca137 Split optimize report generation from visualization
5e084ad2e convert optimize_reports to a package
fca73531c fix: use .shape instead of index for outliers
9da28e532 bump datasieve
fd420738c ensure outlier-check is returning as a numpy array from datasieve
48e896532 Don't add header if it's not needed
5f98530ef Catch and send exceptions from websockets
69087c30e Don't overwrite "type" with a variable
757c6dc5c Use Self typing
01dfca80a Improve stop test behavior
2f7b29ed3 Fix test_tsl_on_exchange_compatible_with_edge
b49a11876 Fix exit_timeout test
c7683a7b6 Improve docs wording
5d60c6264 align list blocks
96c2ca67e Add usage note for pairs.json file
b0e5fb394 Improve structure of download-data documentation
8c54036fa Move Downloading tip from pairs file section
859f7ff3d be explicit when loading pairs file.
6bc3439cb Bump pytest-mock from 3.10.0 to 3.11.1
e965b2e45 Bump rich from 13.4.1 to 13.4.2
d82a0ad7b Bump ccxt from 3.1.34 to 3.1.44
f04598c5e Bump pre-commit from 3.3.2 to 3.3.3
f82d52c6d Bump xgboost from 1.7.5 to 1.7.6
fc0548ce0 Bump filelock from 3.12.1 to 3.12.2
8cc763b66 Bump time-machine from 2.9.0 to 2.10.0
ed90e77ea Bump nbconvert from 7.4.0 to 7.5.0
1eb691d46 Bump mkdocs-material from 9.1.15 to 9.1.16
571dea6e9 Fix wrong final status on bg-tasks
cca4fa117 Update BaseClassifierModel.py
7e2f857aa Update BasePyTorchClassifier.py
52db6ac7d Use proper log level
d94f3e767 Add explicit tests for download-data
7af14d198 Fix random test failure
44a38e836 Update download data tests
0be4084ea Don't allow downloading wrong pairs
937734365 Improve typehint for markets
66b34edc0 Clarify variable name
6f0f95468 Adjust mocks for new import location
7453ff2fb Migrate download-data out of commands section
b8ab6fe42 Improve wording of check command
e0d5242a4 Reduce download-data verbosity
886b86f7c chore: bump datasieve
b0ab400ff fix: ensure test_size=0 is still accommodated
bf872e8ed Simplify comparison depth
11ff454b3 fix: ensure that a user setting up their own pipeline wont have conflicts with DI_values
6bb75f0dd Simplify import if only one element is used
1567cd284 Use DOCS_LINK throughout
34e7e3efe Simplify imports
2c7aa9f72 Update doc wording
24e806f08 Improve resiliance by using non-exchange controlled order attributes.
7939716a5 Improve formatting of telegram /status messages
4f834c896 Remove old version pin for catboost
ffd7394ad Update freqai.md
2107dce2c Update freqai-feature-engineering.md
72101f059 feat: ensure full backwards compatibility
75ec19062 chore: make DOCS_LINK in constants.py, ensure datasieve is added to setup.py
64fcb1ed1 Better pin scikit-learn
dec3c0f37 Remove environment.yml completely
1b86bf8a1 Don't include non-used parameters in command structure
2cd9043c5 Make documentation discoverable / linked
b3ef024e9 Don't use PurePosixPath
964bf7646 Invert parameters for initialize_single_lookahead_analysis
ad74e6567 Simplify configuration setup
ac36ba659 Improve arguments file formatting
ca88cac08 Remove unused code file
11d7e7925 Fix random test failures
9a7794c52 Improve behavior for when stoploss cancels without content
1a4d94a6f OKX stop should convert contracts to amount
1e44cfe2f Improve stoploss test
e763e2ad3 Bump ccxt from 3.1.23 to 3.1.34
1beaf6f05 Bump plotly from 5.14.1 to 5.15.0
21949c044 bump sqlalchemy pre-commit
2e087750e Bump fastapi from 0.96.0 to 0.97.0
7172bc0af Bump orjson from 3.9.0 to 3.9.1
feb6e5c46 Bump urllib3 from 2.0.2 to 2.0.3
8b27b408c Bump ruff from 0.0.270 to 0.0.272
a9515dee8 Bump pytest from 7.3.1 to 7.3.2
71064c02e Bump sqlalchemy from 2.0.15 to 2.0.16
66dc1fd33 Bump filelock from 3.12.0 to 3.12.1
7542909e1 Bump stable-baselines3 from 2.0.0a10 to 2.0.0a13
a39f23a5c Bump pydantic from 1.10.8 to 1.10.9
663cfc621 fixing tests
bdb535d0e add maskable eval callback multiproc
5dee86eda fix action_masks typing list
c36547a56 add maskable eval callback
afd54d39a add action_masks
5844756ba Add test and fix for stop-price == limit price
4a800fe46 Add explicit test for get_stop_limit_rate
320b3e20a Use correct variable for candle-type when loading data
fc11c79b7 Fix not working date format output
87e144a95 Update webserver tags
9ef814689 Update endpoint in rest-client
1da1972c1 added test for config overrides
e332fbfb4 Add explicit test for okx get_stop_params
280611086 Add explicit test for okx cancel_stop
cfe88f06d Improve behavior of okx rebuys when using stop on exchange
ad8a4897c remove unnecessary example in feature_engineering.md
229ee643c revert change to deal with FT pinning old scikit-learn version
41e37f9d3 improve docs, update doc strings
d9bdd879a improve migration doc
f8d7c2e21 add migration guide, add protections and migration assistance
4cdd6bc6c avoid using ram for unnecessary train_df, fix some deprecation warnings
e24625979 avoid manual pipeline validation
3523f564b Improve Log reduction and corresponding test
265d782af Implement the requested changes.
94ca2988a updated docs
6656740f2 Moved config overrides to its' own function Added config overrides to dry_run_wallet and max_open_trades to avoid false positives.
99842402f Further reduce unnecessary output
16b336397 Fix type problem
b89390c06 Reduce log verbosity during bias tester runs
fc8c6b06a Extract set-log-levels from main logging module
e3056b141 Move logging tests to dedicated test file
05ea36f03 Fix performance when running tons of backtests
6b736c49d Dont persist Backtesting to avoid memory leak
33b028b10 ensure data kitchen thread count is propagated to pipeline
88337b6c5 convert to using constants in data_drawer. Remove unneeded check_if_pred_in_spaces function
e39e40dc6 improve documentation of pipeline building/customization
317e0b5f2 Avoid nested loops in telegram for force* scenarios
f81139b97 Bump python from 3.10.11-slim-bullseye to 3.11.4-slim-bullseye
14557f2d3 merge develop into outsource-data-pipeline
c066f014e fix docs
6d39adc73 bump datasieve version
135aaa2be update docs, improve the interaction with `define_data_pipeline`
dc577d2a1 update to new datasieve interface, add noise to pipeline
4d4589bec fix isort in tests
f7f88aa14 fix pickle file name
5ac141f72 convert to new datasieve api
0b8ef1b88 Fix devcontainer invalid key
c269eef77 Remove unnecessary calc_profit_ratio call
21172802d Devcontainer image should contain as many dependencies as possible
6ec91d11a Bump ccxt from 3.1.13 to 3.1.23
4dcb6395e Bump pre-commit requests types
e61659a2b Bump mkdocs-material from 9.1.14 to 9.1.15
c2125698a Bump types-requests from 2.31.0.0 to 2.31.0.1
093181e8f Bump pandas from 2.0.1 to 2.0.2
bdaf230bd Bump orjson from 3.8.14 to 3.9.0
9dcab313b Bump rich from 13.3.5 to 13.4.1
c9bbeedd8 Bump fastapi from 0.95.2 to 0.96.0
94bc91ef5 Update tests/freqai/test_freqai_datakitchen.py
7a726da69 Update cached binance leverage tiers
71b81ee7c Add margin_mode to pairlists callback
12e31208e Update typedDict type used with pydantic
ac7419e97 Split trademode response value into trade_mode and margin-mode
72f4e1475 Bump api version
74254bb89 Add /exchanges endpoint to list available exchanges
54bf1634c Refactor validExchangesType to separate types package
6f928b826 Update types for build_exchange_list_entry
cc04f3279 bump pre-commit mypy version
fcb960185 Clarify function naming
250ae2d00 Enhance list-exchanges with more information
b5d101777 Update list_exchanges to use a dict internally
e890bc071 Don't bump pi version, but bump regular version
10ea2b44c Update test line length
d9d173533 Extract ExchangePayload updating
48328fb29 reset candle_type_def
49c0fdf36 Bump cryptography from 40.0.1 to 41.0.0
ac046d6a2 Allow setting the exchange explicitly
af16ce874 Allow webserver mode to cache multiple exchanges
e2594e749 Align tests to use webserver mode
77e3e9e89 Move pairlists and background tasks API's to separate file
565c0496d Bump httpx min requirement
d0f900f56 set HTTPX level to warning
30dd63fcb Update freqai.md
8aee368f6 auto-inject webserver mode dependency
e0d9603e9 Raise correct httperrorcode for webserver-only endpoitns
88ecb935b Add "failed" state to bgjob task response
9c6fee384 Enable gate futures for spread-filter again
5fc8426b9 Improve handling of order cancelation failures with force_exit
430cd24bb Invert order (exit trade 3 before trade 4)
08d040db1 Slightly update force_exit test
5311614d5 Update force exit wording
193d88c9c Double-check cancelling stop order didn't close the trade
1f543666f Improve test for reload-markets timings, fix bug
fd955028a Update tests for new background method
7bccf2129 Introduce background_job endpoints
f6a32f4ff bump version
b666c418b Don't use variables for simple debug values
af1dbf7df Extract get_rate_from_ticker from get_rate method
f074383d6 Extract orderbook logic into separate method
785f0d396 bump datasieve version
6315516d5 Improve volumepairlist defaults
623780681 bump datasieve to 0.0.8
e57265361 bring classifier/rl up to new paradigm. ensure tests pass. remove old code. add documentation, add new example transform
9f1bdc19a Bump ruff pre-commit version
35836479d Bump requests pre-commit dependency
cb7a0f9bf Bump orjson from 3.8.12 to 3.8.14
90808683e Bump ruff from 0.0.269 to 0.0.270
8fdec5f3a Bump ccxt from 3.1.5 to 3.1.13
4e9a43ebf Bump cachetools from 5.3.0 to 5.3.1
3bc390cb2 Bump types-requests from 2.30.0.0 to 2.31.0.0
12af6ea76 Bump pytest-cov from 4.0.0 to 4.1.0
51ba4d14e Bump pydantic from 1.10.7 to 1.10.8
6b3b5f201 export_to_csv: Added forced conversion of float64 to int to remove the .0 values once and for all ...
eec783716 - modified help-string for the cli-option lookahead_analysis_exportfilename - moved doc from utils.md to lookahead-analysis.md and modified it (unfinished) - added a check to automatically edit the config['backtest_cache'] to be 'none' - adjusted test_lookahead_helper_export_to_csv to catch the new catching of errors - adjusted test_lookahead_helper_text_table_lookahead_analysis_instances to catch the new catching of errors - changed lookahead_analysis.start result-reporting to show that not enough trades were caught including x of y
1317de8c1 Add rudimentary description per pairlist
8a8616925 Better handling of shift
8ec0469b1 Fix volatilityfilter behavior
9bb25be88 modified help-string for the cli-option lookahead_analysis_exportfilename moved doc from utils.md to lookahead-analysis.md and modified it (unfinished) added a check to automatically edit the config['backtest_cache'] to be 'none'
0ed84fbcc added test_initialize_single_lookahead_analysis
a7426755b added a check for bias1. Looking at has_bias should be enough to statisfy the test. The tests could be extended with thecking the buy/sell signals and the dataframe itself - but this should be sufficient for now.
df5e6409a Bump develop version to 2023.6-dev
5649d1d4d Convert minimal_roi to list comprehension
36c82ad67 Update documentation for min_roi
35a388bf9 Don't force min_roi to have content
636298bb7 added test_lookahead_helper_export_to_csv
31e19add2 start transition toward outsourcing the data pipeline with objective of improving pipeline flexibility
eb31b574c added returns to text_table_lookahead_analysis_instances filled in test_lookahead_helper_text_table_lookahead_analysis_instances
af7afa80a remove gone-wrong import
9e75c768c Improve responses for evaluate get endpoints
4c52109fa Handle pairlist evaluation errors gracefully
33e25434b Change statuscode to 202
756e1f5d5 Test pairlist evaluation
01984a06a Extract pairlist evaluation from sub-method
7cc8da23c Update test for available pairlist
818a3342b move pairlist evaluation to the background
680e7ba98 Get exchange through DI
70a0c2e62 Fix test mishap
3e6a2bf9b Add parameters for analysis tests ...
104fa9e32 Use logger, not the logging module
e73cd1487 Add somewhat sensible assert
9869a2195 Move strategy to it's own directory to avoid having other
3f5c18a03 Add some tests as todo
e18370797 Further test lookahead_helpers
ceddcd924 Move most of the logic to lookahead_analysis helper
d8af0dc9c Slightly improve testcase
1c4a7c7a0 Split Lookahead helper to separate file
7b9f82c71 Remove needless check for "None" list
209eb63ed Add startup test case
2e675efa1 Initial fix - test
073dac8d5 Move lookahead analysis tests to optimize subdir
a0edbe479 Switch to using config instead of args.
2e79aaae0 Remove usage of args.
5488789bc Arguments should be in the configuration.
7d871faf0 added exportfilename to args_to_config introduced strategy_test_v3_with_lookahead_bias.py for checking lookahead_bias# introduced test_lookahead_analysis which currently is broken
91ce1cb2a removed overwrite_existing_exportfilename_content (won't use it myself, wouldn't make sense for others to not overwrite something they re-calculated) switched from args to config (args still work) renamed exportfilename to lookahead_analysis_exportfilename so if users decide to put something into it then it won't compete with other configurations
b252bdd3c made purging of config.freqai.identifier variable
2306c74dc adjusted code to matthias' specifications
5abd616ae Fix disrepancy in freqai doc code example
877d53f43 Add airlists test endpoint (so pairlist configurations can be tested)
3d4be92cc Add option pairlist parameter type
c5bf02970 Better type response
9e4f9798e Add pairlist "is-generator" to api
3ef2a57bc Add "is_pairlist_generator" field to pairlists
e20b94d83 Add more filter param descriptions
4636de30c Improve pairlistparam types
2ea157d9d Add some more pairlist parameter definitions
987da010c Start pairlist parameter listing
5ad352fdf add /pairlists to rest client
2df80fc49 Add /pairlists endpoint to api
2b416d3b6 - Added a first version of docs (needs checking) - optimized pairs for entry_varholder and exit_varholder to only check a single pair instead of all pairs. - bias-check of freqai strategies now possible - added condition to not crash when compared_df is empty (meaning no differences have been found)
767442198 saving and updating the csv file now works open ended timeranges now work if a file fails then it will not report as non-bias, but report in the table as error and the csv file will not have it listed.
a9ef4c3ab partial progress commit: added terminal tabulate-output added yet non-working csv output using pandas
7bd55971d strategy_updater: removed args_common_optimize for strategy-updater
d12a7ff18 freqtrades' merge broke my side, fixed it by porting it over to my develop branch, no changes with this commit logic-wise.