github freqtrade/freqtrade 2022.1

latest releases: 2024.4, 2024.3, 2024.2...
2 years ago

Highlighted changes

  • New callback adjust_trade_position() - Which allows to increase position size on open trades (DCA trading).
  • Improved backesting logic for ROI (sell signal is now evaluated before ROI).
  • Backtest result caching (for repeated backtests via --strategy-list, or when no changes happened). This is enabled by default!
  • Improved memory-usage in backtesting and Hyperopt.
  • Updated Drawdown calculation to calculate drawdown of the account.
  • Improved VolumePairList Performance by excluding blacklisted pairs right away.
  • Improved freqUI mobile style.
  • check_*_timeout now also receives a current_time argument.
  • entry_tag is now a new optional argument for custom_entry_price, custom_stake_amount and confirm_trade_entry callbacks.
  • generate_estimator() implementations for hyperopt now requires an argument, dimensions. If you're implementing custom Estimators, please update your strategies.
  • Dropped python 3.7 support (aligns with pandas/numpy approach)

Please familiarize yourself with the relevant sections in the documentation before using any of the new features.

You can also sponsor my work on freqtrade via Github sponsors (link also includes Crypto addresses).


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
2d45163f8 Bump version to 2022.1
0058abcc2 Fix crash when no min-stake-amount could be determined
64d0c75bb Fix deprecation warnings
d96a354a3 Version bump ccxt to 1.71.73
479b56054 Add missing entry_tag argument to custom_entry_tag documentation
1a838680e docs: fix typo and fix markdown list rendering
f35c6545c Update strategy-callbacks.md
bc5adc018 Bump prompt-toolkit from 3.0.24 to 3.0.26
65526e980 Bump arrow from 1.2.1 to 1.2.2
8a9b70cc4 Bump pytest-mock from 3.6.1 to 3.7.0
ab5c1e6c1 Bump uvicorn from 0.17.0 to 0.17.1
15dbdfe13 Bump types-python-dateutil from 2.8.8 to 2.8.9
dbf222684 Bump nbconvert from 6.4.0 to 6.4.1
7d066d81c Bump mkdocs-material from 8.1.8 to 8.1.9
287e90af8 Bump ccxt from 1.70.45 to 1.71.46
7aae9565c Only look at buy orders when looking to recalculate trade value
da39ca665 fix new-config
aea84dc11 Limit should default to None when calling pair_candles
d1d520769 Improve status table for position adjust
e7409e74c Remove default from position_adjustment (otherwise strategy parameters won't work anymore)
fb3c67d86 Accept that keys sometimes are not provided
2ba2144df Add tests for ETH fiat_convert
660f474ab Fix ETH duplicate in CoinGecko
138e867a6 Filter tickers on stake-currency for kraken
9df7014de Skip kraken tests temporarily
b8f29802e another typo
cbd213bc0 fix typo
31211a33f Fix ETH duplicate in CoinGecko
002226f5f Update setting to max_entry_position_adjustment
4a2914d72 Update docs/docker_quickstart.md
4408f97a0 Added note to docker_quickstart.md
30b27ae73 explicit dtype
f7a5b2cb7 explicit dimensions, added **kwargs, updated docs
6e47d0673 Bump ccxt from 1.68.20 to 1.70.45
d9347e990 Update references to remove python 3.7 support
aacddf64c Add pandas 3.7 requirements workaround
45a229892 Re-add getting buy orders in docs
381bda1e4 Update test to add new argument
194a5ce3c Update advanced strategy template with missing methods
e25283022 Add entry_tag to "entry" callbacks
b8413410d Bump fastapi from 0.72.0 to 0.73.0
fd1828c28 Bump pandas from 1.3.5 to 1.4.0
cf79cef7b Bump types-filelock from 3.2.4 to 3.2.5
95c7d4868 Bump sqlalchemy from 1.4.29 to 1.4.31
12fabba78 Bump pytest-asyncio from 0.17.1 to 0.17.2
013262f7e Bump mkdocs-material from 8.1.7 to 8.1.8
138fd9440 Bump types-python-dateutil from 2.8.7 to 2.8.8
451eca51c Optimise the multiple usages of the same timestamp.
e67a54f7a Fix missing order time info in backtesting.
daee59f4f Reorder interface methods
57067ce88 Add tests for max_adjustment_buy handling
7429f535c Imrpove code by reusing available properties
6492e1cd7 Investigate random test failure
6613e3757 Additional fix
09db4bcad Don't use strings, use methods directly
51b94889b Just in case also check for closed to avoid counting in canceled orders.
8c79d5573 Fix issue #6268
821a9d9cd Add current_time to check_timeout functions for convenience
cc3852daf Add defaults to constants.py and update docs
56daafd6b Use realistic date for dry-run orders
7bef9a9b3 Extract timeout handling from freqtradebot class
82f0d4d05 set stoploss at trade creation
a35b0b519 Update forcebuy endpoint to support stake-amount
9ecd7400c Allow NaN when calculating digests
314a54488 Add Failing test for get_strategy_run_id
a43c08844 Allow @informative in webserver mode
bb1d8fb54 Improve message when no hyperopt fie is found
3249f9fb9 Add max buys on status table
d02acb21c Add simple test for #buy header
748381c5c Update based on flake8
e35a1e4a0 fix flake8
a9f14ac11 show buy_tag only if not None
8ce5536dd fix tests
4e9f0d89a add buy_tag to trade tooltip in plots
d54990585 Api-backtest to test new functionality
a6c7f4554 Update webserver backtseting to reuse prior results
e9baabce6 Store results when backtesting via API
f30580e5f Update freqtradebot.py
5fb951155 fix typo
62ea1a445 add lines to show_config message
2e537df35 Update strategy_resolver.py
afe46a55f Add documentation for --cache backtest option
d319204de Add note about legacy metadata format
7c010b305 Update strategy-callbacks.md
ac93eea58 update
5fffc5033 Rework backtesting --no-cahche to --cache=[none, day, week, month]. Fix an issue where config modification during runtime would prevent use of cached results.
5525fdae1 add max_buy_position_adjustment as attribute
3925e8a7e add "# Buys" column to status table
a4dbdb549 added type spec
a6a127f59 Update .gitignore
407c20412 Pass dimensions to generate_estimator
d918d24f0 Spreadfilter log % fix
d813fef95 Add asyncio_mode setting for pytest
9c9c9f017 Readd trailing white line
3de843ab2 Add eager-loading for orders. This allows access to trade.orders in all callbacks.
f9a935b9a Update rpc_manager.py
d0dc9e26b Bump uvicorn from 0.16.0 to 0.17.0
f2984e9d0 Bump time-machine from 2.5.0 to 2.6.0
da134d3ad Bump types-cachetools from 4.2.8 to 4.2.9
9092596a1 Bump pytest-asyncio from 0.16.0 to 0.17.1
81b800804 Bump types-python-dateutil from 2.8.6 to 2.8.7
d38418478 Bump ccxt from 1.66.66 to 1.68.20
9fbb9332f Bump types-requests from 2.27.5 to 2.27.7
c403464bb Bump flake8-tidy-imports from 4.5.0 to 4.6.0
3d9f34b06 Bump fastapi from 0.71.0 to 0.72.0
e4af162f3 Bump jsonschema from 4.3.3 to 4.4.0
5afa97583 Bump mkdocs-material from 8.1.5 to 8.1.7
6be6515ec Bump numpy from 1.22.0 to 1.22.1
edd2ea369 Update rpc_manager.py
3cdb672ac Improve test coverage
2bcfc0c90 Add warning about cache problems
d08885ed9 Fix empty "/log" endpoint in certain moments
69c00db7c Only show /balance % improvement if trades have been made
b96b0f89b improved unfilledtimeout defaults
acda9571d Revert "add position_adjustment_enable to config_full.example"
6c4b26146 Convert nan to None in get_signal.
eabeb87ce add position_adjustment_enable to config_full.example
39184e1f9 Fix random test-fail around midnight
270d7ebbf Simplify test strategy
062d00e8f Fix @informative decorator failing with edge.
2b7405470 Fix timerange check.
9becce989 Update failing test
526ed7fa9 Add test_backtest_start_multi_strat_caching test flexing backtest result caching.
16861db65 Implement previous backtest result reuse when config and strategy did not change.
6684bff96 Dry-run orders should have filled set correctly
66a479c26 Small doc improvements
6c0eef94b Fix typo.
9f9e2a872 Remove references to wallets.get_trade_stake_amount
93adb436f Fix flake8 intention issue.
320c9ccf9 Unify functions and make it easy to get a list of filled buy orders
08cae6f06 Fix horrible whitespace mistake.
7699fde38 Update documentation about trade.nr_of_successful_buys
ffe69535d These could be properties.
13bc5c5d8 Fine, this does look better.
678be0b77 Slightly move code.
faa35cb16 Small minor fixes
13651fd3b Downgrade docker-image to 3.9.9
a22e1b650 minor spelling correction
33cb9e900 Fix erroneous import in docs
7344f88ad Add a note about not being called when there's an open order.
7cd844865 Fix documentation example.
8643b20a0 Improve documentation about /stopbuy command
af3d220ff Update example method signature.
db3483c82 Our example should also set position_adjustment_enable
775b1201d psutil is always required now.
e50b07ecb Make code compatible.
94f2c9998 Temporary fix for lazy loading. Probably we can do it better.
438a08360 Update TA-lib binary files
fbf026ac4 Fix sorting of imports.
3b7167ab0  Fix backtesting missing filled amounts in orders.
26f2db477 Fix notify_enter attempting to fetch rate during testing.
30d293bfe Fix bug with None in backtesting.
0d00da8da Bump ta-lib from 0.4.23 to 0.4.24
e0b05c4df Bump progressbar2 from 3.55.0 to 4.0.0
fc1069cfe Bump urllib3 from 1.26.7 to 1.26.8
1e35f5470 Bump types-tabulate from 0.8.4 to 0.8.5
130275faf Bump mypy from 0.930 to 0.931
29457078e Bump requests from 2.26.0 to 2.27.1
8d554585f Bump types-filelock from 3.2.1 to 3.2.4
fe067994e Bump types-requests from 2.26.3 to 2.27.5
2d930d081 Bump types-python-dateutil from 2.8.4 to 2.8.6
af60b9db5 Bump ccxt from 1.66.32 to 1.66.66
bc95e1e15 Bump fastapi from 0.70.1 to 0.71.0
626970b32 Bump types-cachetools from 4.2.7 to 4.2.8
a0d378fb7 Bump nbconvert from 6.3.0 to 6.4.0
b8e8a31f8 Bump python-telegram-bot from 13.9 to 13.10
3fc44aa1b Bump mkdocs-material from 8.1.4 to 8.1.5
cbd449f71 Remove non-decimal numerical separators
91b89c8c4 Improve docs, fix telegram message to show current rate.
195d601b8 Fix notification message showing "Current rate" as the initial buy order desired rate.
c929d428b Remove blank line.
0bca07a32 Added min_stake, max_stake. Removed pair as its included in trade.
813a2cd23 Add useful helper methods for adjust_trade_position implementation
cf077b15c Fix random test failure
94631c7d6 Add performance warnings for backtesting and implementation.
43f8087f3 Bitvavo does not support USDT stake
827b8d3e4 Don't use test_datadir as userdata dir
04976658d Fix crash when using backtesting-show on a old backtestresult
11ace0f86 Instead of clearing `processed` dict, store `df_analyzed` (one with buy/sell signals) dataframe in it.
cd144cdfc Add bitvavo to compatibility tests
e540959c2 Remove btdata from generate_strategy_stats
1203d08d1 generate_pair_metrics does not need processed dict
d64f9030c Remove now unused codesegment
9a3d0528a Versionbump ccxt to 1.66.32
b3a4ecaf7 Remove old backtest format support
28011a390 Update bt_results filename to new.json
72f486289 Update Volumepairlist test
24ec78b11 Quote-volumelist fix for gateio
326e3d1f8 Selectively convert quote to base volume in volumepairlist
7451b6050 increase okex candle limit
a0f9c1bf7 Avoid failure when calculating max-drawdown
e88a1ab20 Improve VolumePairlist behaviour
545197245 Success-messages should use success coloring
2a2392fd7 Update parameter name in docstring
33d95d245 Fix unbounderror
a9a6cf13f Add exit_tag to detail-sells
4e2b9203d Remove no longer used BT_DATA_COLUMNS_MID
2ca90577a Update strategy-comparison test
2ecaf9f8b Update backtest-result test-files to latest format
6abd6bceb Avoid recalculating statistics for comparison line
67e4dda5b Fix missing DataFrame in advanced docs
8373a4e71 Small Adjustments to improve compatibility
4d9b4ddc2 Update hyperopt-tools to use account drawdown
09fae25c9 Fix some tests after drawdown calculation change
7a2b50ce8 Update drawdown calculation to account drawdown
42579c026 Drop hyperopt results legacy mode
7bf735dbf Update deprecated dynamic-whitelist docs with reference to new method
937f5e3d0 No longer use legacy mode for tests
7ea5b0e35 Simplify hyperopt test setup
5536410ed Update ta-lib wheels
079dbc799 Remove duplicate psutil dependency
8ed30fc9c Bump psutil from 5.8.0 to 5.9.0
2469dc042 Bump types-tabulate from 0.8.3 to 0.8.4
5407a0625 Bump ta-lib from 0.4.22 to 0.4.23
3f4c5a790 Bump types-cachetools from 4.2.6 to 4.2.7
0da31cff7 Bump mkdocs-material from 8.1.3 to 8.1.4
f7d3c5021 Bump types-requests from 2.26.2 to 2.26.3
6b0a7a81a Bump ccxt from 1.65.25 to 1.66.20
8c0f7321c Bump jsonschema from 4.3.2 to 4.3.3
fac6956ee Fix test failure after merge
2116b0729 Integration-test for DCA order
209ecc873 Fix typo in bt_progress
08ba5b045 Update docs to include underwaterplot
fb06a673e Add Underwater plot
78ba2d3fc Add underwaterplot calculation to btanalysis
a2d97eecf Add trade parallelism plot
8b49bec64 Use Version-dependent requirements
c29469dec Version bump numpy to 1.22.0
9becd20f2 Improve "Missing data" messages
713b884d9 Fix failing monthly test
670aed06b Remove loop for hyperopt.
0277d93a6 don't use deprecated `asyncio.get_event_loop()`
c9296dc9a Uvloop_helper should use "get_running_loop"
550a1eef9 Reduce "cleanup" slowdown in telegram
39f8c5719 Fix exception on exchange shutdown
a715083fc Reduce memory usage by not holding on to no longer needed data.
b1b2eebd1 Change sequence of ROI/sell signal to favor sell-signal
b63491fb9 Update ROI_if_buy_signal tests to not use sell signal
1bc2c7175 Update documentation with support for python 3.10
6b22f84d3 Add windows ta wheel
505d4bacd Update dockerfile to 3.10
5b2a1b9e7 Update CI to run on python 3.10
8edc84bf2 Exclude virtual environment from isort fixing
bd98637ae Fail gracefully from plot-profit when no data is provided
2b94fbfa7 Avoid using singleton where not necessary
3d336a736 Improve documentation.
f965e9177 Fix title
4b654b271 Reduce logging.
2a728c676 Improve documentation. Fix bug.
05a488a7a Further reduce log verbosity for kucoin 429000 exception
bb6562113 Simplify test, simplify "log_*" selection
ef2b32626 Reduce retrier message repetition
54858a0bb Simplify test to only initialize and mock once.
314e10596 Remove checking against logger_name in num_log_has
17f037cec Extract order_fee handling from update_trade_state
f77b8cbb7 Reduce KuCoin logs only for 429000 error
bc8fc3ab0 We can actually call recalc_open_trade_value less since it's being called eventually anyway.
bd5520bee Adjust comments, fix stoploss_on_exchange for slower closed orders.
099dc07ba No longer needed since recalc_trade_from_orders always calls it.
817a65b65 This is not needed since backtesting does not have open orders.
045225bee Slightly improve doc formatting
d3f3c49b1 Fix minor "gotchas"
6509c3871 Introduce new test functions to check logs
fbaf46901 Reduce more KuCoin logs on retrier decorator
96fbf63d0 Reduce KuCoin logs on DDosProtection error messages
ea79eb55e Remove this test change from DCA branch.
3cbb2ff31 Fix up documentation.
e3181748d Add ignore_buying_expired_candle to config_full example
f61aaa8c0 Improve documentation example
de79d25ca Refactoring to use strategy based configuration
ac690e921 Remove unnecessary returns.
0c4664e8f Lock file is not always left behind so handle it.
bc60139ae I really should make this flake8 / isort check automatic before commit.
8393c99b6 Whoops, missing a line.
8bf1001b3 Fix test failing when user_data already contains data...
ace0a83c0 Allow forcebuy to also buy more when trade is already open.
2e23e88fc Re-add back the log i accidentally removed.
d70ddeef9 Remove whitespace. Darn IntelliJ.
e439ae1fe Update wallet balance on every order close, not only trade close
da2e07b7f Unittest base_stake_amount_ratio
7df3e7ada Add base_stake_amount_ratio config param to support unlimited stakes.
fa01cbf54 iSort
4862cdb29 Improve documentation.
c9243fb4f Use buy side for price since mostly used for DCA.
f6d36ce56 Fix the dca order not being counted bug.
f28d95ffb Add test for position adjust
5da38f361 Fix typo. Make sure trade is market open.
3aca3a713 Use parentheses instead of backslash
1eb83f9a6 Fix documentation formatting.
db2f0660f Some more compatibility fixes.
b094430c2 Restructure for less complexity. Flake8
30673f84f Flake8 compatibility
cc28f73d7 Hopefully fix orders being left lingering and trade not updating once they are complete
d10fb95fc Fix typo
462270bc5 Fix a case where the amount was not recalculated. Added additional temporary logging.
9be29c6e9 Theoretically fix second order timeout/canceling deleting the whole order.
468076cf5 This has to be reset since otherwise it will not handle live limit orders after first buy.
d4b31263c Fix open rate being None formatting error.
6f6e7467f Fix potential problem.
1362bd962 Fix potential problem.
2c3e5fa08 Remove extra logging.
1017b68af Fix some unit-tests. Use common trade entry code.
c6256aba3 Improve documentation.
64558e60d Fix bug in example.
71147d289 Attempt to support limit orders for position adjustment.
f11a40f14 Improve documentation on adjust_trade_position and position_adjustment_enable
f97662e81 Add position_adjustment_enable config keyword to enable it.
b7bf3247b Only adjust stoploss if it's set.
1e3fc5e98 Slight code touchup
c179951cc Expect stake_amount, not actual amount of pair from strategy for DCA.
b2c2852f8 Initial backtesting support. This does make it rather slow.
00366c5c8 Additional unit-tests
28d0b5165 Add unit-test
fde677987 Some code improvements. Still some bugs.
fd875786f Initial very crude DCA implementation attempt. Very alpha.


Don't miss a new freqtrade release

NewReleases is sending notifications on new releases.