Skip to content

2023.8

Compare
Choose a tag to compare
@xmatthias xmatthias released this 28 Aug 16:47
· 2734 commits to stable since this release
dbf53ce

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