2021.5
版本发布时间: 2021-05-27 21:53:10
freqtrade/freqtrade最新发布版本:2024.9(2024-09-30 17:26:39)
Highlighted changes
-
custom_sell
callback method, providing access to current trade info while determining the sell signal. - Store backtest-report for each hyperopt epoch.
- Show backtest-report with
hyperopt-show
for the selected epoch. - Show non-optimized hyperoptable parameters.
- Edge supporting informative-pairs.
- Dataprovider
get_analyzed_dataframe()
now supports backtesting. -
/performance
now sorts pairs based on absolute profit. - Add max_value option to
PriceFilter
. - Add unit to unfilledtimeout - to allow timeouts < 1 minute.
- Prevent partial fills with too low amount.
- Add backoff timer on FIAT converter (in case rate-limit is reached).
- Forcebuy can now ask you for a pair of your whitelist via inline-keyboard.
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
0c9b913ca Version bump 2021.5
f3d8e5c9e Improve hyperopt docs
42453333b Align coinbase download with ccxt limits
8e89d3e6e Fix sort error
cc5769e90 Convert np.int64 to proper int
a747312c1 Explicitly provide is_open to trade Object
7dcf94f80 Update Dockerfile
9465fd390 Fix devcontainer
c0d3a31dd Update strategy-advanced.md
ba3997185 Update wheels for ta-lib
af16614bf Fix formatting issue
20ccda169 Bump ccxt from 1.50.6 to 1.50.30
7757c476f Bump ta-lib from 0.4.19 to 0.4.20
2fddb4ae4 Bump jinja2 from 3.0.0 to 3.0.1
4c02e6667 Bump mkdocs-material from 7.1.4 to 7.1.5
6f990c597 Fix a rare error in save_result : ValueError: Out of range float values are not JSON compliant
77302ea17 Update documentation for forcebuy query
3f956441f Properly format % of zero_duration_trades
a39860e0d Add tests for rejected signals
7f125315b Track Rejected Trades
916ece6a2 More realistic testcase for results
db985cbc2 Fix hyperopt-show failing to display old results with missing new fields.
765c824bf isort
a7bd8b0aa Fix exception in plotting when no trades where generated
069345850 Update freqtrade/rpc/fiat_convert.py
08c707e0c Update docs with new format
25cc4eae9 Fix tests that broke after table formatting changed.
be1385617 Fix flake8 error in test_fiat_convert
f8cdd6475 Reduce warnings when waiting for coingecko backoff
21d986710 Fix missing `not` in `empty` check
e4ca94459 Add tests for coingecko backoff
6e05f856b Abort _find_price when cryptomap is empty after retry
ab6bfbad1 Handle RequestExceptions that are not 429s in _load_cryptomap
8842e0d16 Fix flake8 error in fiat_convert
a0921ec75 Add backoff timer for coingecko API
cc064f157 String columns should have a max-length defined
5285cd69b Add documentation for Postgres and Mysql
44bbc0718 CLosing bracket
a7216e627 SQLite does not know drop column
41e3233ba Fix failing test
6acb2eb2b Add average column to orders table
4e94d3d3e Add test for too small buy check
45e262150 Add minimum-filled protection for buy cancels
9537d9f4e Update strategy-customization.md
dfa412f0d Fix typo in filter
981b2df7c Include win:loss ratio in results tables.
debd98ad9 Make results table more compact by merging win/draw/loss columns and drawdown abs/% into single columns.
e1dc1357c Add drawdown column to strategy summary table.
edcfa9409 Include zero duration trades in backtesting report.
0e6c1d28f Fix cleanup CI by updating action
96ea10e56 Fix circular import in hyperopt
f39888886 Refactor preprocessed trimming to seperate method
1a30e3922 Move squeeze into if block
0045d3a72 fix wrong json key
6172e67fc Update hyperopt.py
c2b9da68e fix indent
1b3bfb2e7 found root cause.
48210170e wrap with is not empty
0358b5365 Add "unfilledtimeout-unit" to full config sample
082fb11bb Avoid having error `cannot set a frame with no defined index and a scalar`
75f88b466 add ability to choose unit in unfilled timeout
7a9853bfe Fix "Too many open Files" exception
2565f91bc Adjust tests to reflect new stoploss behaviour
16c22c7b6 Add pair name to stoploss
36eba0f11 Don't use "r+" memmap, but "r2
6aa574fa2 Convert ROI result to proper json object
6659a0707 Add tests for max-value filter
369f19df6 Add valuefilter to Pricefilters
300639639 Fix docstring typo
459fae6d8 Total row for telegram "/status table" command fixes
3ad8fa2f3 Total row for telegram "/status table" command moved sum calculation to API
cb50298bf Bump fastapi from 0.64.0 to 0.65.1
196fde44e Total row for telegram "/status table" command work around mypy warning
915ff7e1b Total row for telegram "/status table" command fix mypy warnings
d7479fda1 Total row for telegram "/status table" command fix compiler warnings
0abb9cfe2 Total row for telegram "/status table" command
860a4d239 update doc to reflect better empty dataframe check
10ef0f54a Total row for telegram "/status table" command
40ae21f3a Bump numpy from 1.20.2 to 1.20.3
c0b61282f Bump jinja2 from 2.11.3 to 3.0.0
8143e6385 Bump aiofiles from 0.6.0 to 0.7.0
976a026d3 Bump sqlalchemy from 1.4.14 to 1.4.15
439ef197b Bump flake8-tidy-imports from 4.2.1 to 4.3.0
78c77cca7 Bump pytest-cov from 2.11.1 to 2.12.0
b0f854af9 Bump ccxt from 1.49.73 to 1.50.6
37b71b8cf Fix PerformanceFilter failing in test-pairlist mode
0d50e9956 Fix Agefilter checking for > instead of >=
c9ac67e98 Fix some typos
8f8d5dbff Add tests for sl_order_with_result
6f3897647 Introduce cancel_stoploss_with_result
380754b8a Fix typos in docstrings
0b1dd0d20 Use correct order_id for ftx
2d7735ba0 Update telegram to sort performance by absolute performance
6b2a38ccf Add absolute Profit to apiserver
2ecb42a63 Improve rest-api doc config samples
8e9877849 Update installation.md
db17b1a85 fix indentation
88da1f109 fix #4412 download-data does not stop downloading at the specified TIMERANGE end date
2d5f465f1 Fix protections being loaded multiple times for first strategy when backtesting.
29fed37df Fix exception when few pairs with no data do not result in aborting backtest.
e1447f955 /locks should always respond, even if there's no locks
2eac23a15 if stoploss price is above the candle high, set it to candle open instead. this can occur if stoploss had previously been reached but the sell was prevented by `confirm_trade_exit`
0ace35bf3 Fix unreferenced error
5e73195b3 Use linux lineseperator at all times
330fb538a Couple tweaks for docs.
09b6923e5 Use "choose" link for new issues
4bc018a45 Change rate back to "open" for custom_sell
09756e300 Subplots should always be included in responses
ecee42f56 Read pickle file in mmap mode
1055862bc Extract data-load + dump from hyperopt
5e66d37d5 Slightly modify docker instructions for arm64
24a1d5a96 Change default hyperopt-name to be shorter
5f5597b93 Better test hyperopt writing and reading
9bb6ba086 Update docs/strategy-advanced.md
ad4c51b3c * Added "Dataframe access" section showcasing how to obtain dataframe and use it to get last-available and trade-open candles. * Fix custom_sell() example to use rsi from last-available instead of trade-open candle, add a pointer to "Dataframe access" section for more info. * Simplify "Custom stoploss using an indicator from dataframe example" greatly, add a pointer to "Dataframe access" section for more info.
3cbe40875 read hyperopt results from pickle or json
06bf1aa27 Store epochs as json per line
7398ea88e Change optimize_reports to convert dates to string earlier
e53bbec28 remove duplicate python3-pip
bcab44560 Fix doc typo
425d97719 Update strategy-advanced.md
3d6b3f1d6 Add Issue config.yml
8e6a95e11 Bump ccxt from 1.49.30 to 1.49.73
43c7382d2 Bump fastapi from 0.63.0 to 0.64.0
93268ba16 Bump pytest-mock from 3.6.0 to 3.6.1
5ecd86ed5 Bump pymdown-extensions from 8.1.1 to 8.2
6eb47b0ae Bump flake8 from 3.9.1 to 3.9.2
0a82e2b06 Bump pytest from 6.2.3 to 6.2.4
a7cd8fc57 Bump sqlalchemy from 1.4.12 to 1.4.14
a7bd051f6 Bump mkdocs-material from 7.1.3 to 7.1.4
d495ea369 Update docs about availability of get_analyzed
1c408c040 Add small tests for backtest mode
f2add4425 Update docs/docker_quickstart.md
0a0e7ce5f Documentation for running arm64 builds
00e93dad0 Fix mistake in the docs
92186d89a Add some changes to strategytemplate
2157923ae have edge send multiple messages if necessary
17b9e898d Update docs displaying how to get last available and trade-open candles.
8d8c782bd Slice dataframe in backtesting, preventing access to rows past current time.
70189b199 Move dockerfile and document M1 image existance
f1eb65354 Fix strategy protections not being loaded in backtesting.
1b01ad6f8 Make exchange parameter optional and do not use it as parameter in backtesting.
4b6cd69c8 Add test for no-exchange dataprovider
d344194b3 Fix dataprovider in hyperopt.
9b4f6b41a Use correct datetime.
6fb4d83ab Fix dataprovider in hyperopt.
6af4de8fe Remove dataframe parameter from docs.
cdfa6adbe Store pair datafrmes in dataprovider for backtesting.
dc6e702fe Pass current_time to confirm_trade_entry/confirm_trade_exit.
d34da3f98 Revert "Add dataframe parameter to custom_stoploss() and custom_sell() methods."
513be11fd Fix hyperopt output
554f5f14b Raise exception if no data is left
4f529fe42 Don't use Arrow to get min/max backtest dates
a710b7dc0 Update tests to match new behaviour
431cb5313 Support informative pairs in edge positioning
947ad856c Update Dockerfile.armhf
f55ce04fa Bump python from 3.9.4-slim-buster to 3.9.5-slim-buster
da47f4e1a Fix Kraken balance update error
860379bc5 Bump ccxt from 1.48.76 to 1.49.30
2d8982426 Bump cachetools from 4.2.1 to 4.2.2
82a08bd7d Bump python-telegram-bot from 13.4.1 to 13.5
f138cca79 Be explicit with space assignment in documentation
a63d9e951 Bump arrow from 1.0.3 to 1.1.0
cea207026 Bump technical from 1.2.2 to 1.3.0
37227170b Bump pyjwt from 2.0.1 to 2.1.0
8ed15fb7c Bump sqlalchemy from 1.4.11 to 1.4.12
8364343cd Bump scikit-learn from 0.24.1 to 0.24.2
da574e4e6 Small style fixes
6d7096dc6 Use both old and new fixtures for test
fc110ea41 Support csv export for new and old versions
303895b33 Add support for filters to new hyperopt-results
ef9dd0676 Rename hyperoptresult fixture to avoid naming collision
99e1ef9b4 Fix docs typo for CategoryParameter
b71d85059 Fixed anchor link for PriceFilter
4fc37f15d Fixed syntax error in the example
287b43e99 Output strategy results including non-optimized parameters
d069ad43d Small reformatting in hyperopt
8ee0b0d8e Store not optimized parameters (if applicable)
9049d6b77 Reformat hyper to cache parameters
6b6270db1 Add hint about "sell_profit_only" to docs
46f0f6603 Keep dimensions stored in hyperopt class
ced5cc7ce Don't recalculate min/max date - they won't change between epochs
ecdfb6e5e Fix output of % for new format
881cba336 Show backtesting result in hyperopt-show
420e75af6 Extract show_backtest_result for one strategy
97478abb9 Move format explanation string to HyperoptTools
4c00d4496 Update tests to reflect new backtest returns
f2e182002 Simplify calling backtesting by returning the proper result
e2e1d3482 Extract stake_currency param from hyperopt-explanationstring
852f12534 Fix tests
6aaaad29d Use backtesting output for hyperopt results
545cba7fd Refactor optimize_report
9994fce57 Extract generation of report for one strategy to it's own method
b125c975c Rename strategy_comparison method
c45204a2c Fix failing mocks
ac2e1eb3d Don't import joblib for regular strategies
bdd0184f0 Small stylistic fixes
0b280a59b Support per exchange params for OHLCV endpoint
ca0749dfd Update strategy-advanced.md
555262b6e Only calculate additional indicators if the space is selected
e381df909 extract has_space to Hyperopt-Tools
e050ea8df Don't load parameters for other space
42a52ff66 Docker support for arm64
856b65206 Reduce log-frequency of AgeFilter
f3388ed9a fix IStrategy: abstract methods still need to pass through return value
6763bd447 Fix link to poweredby image
3be7bc509 Telegram: send locks as chunks of 25.
4d1613a43 Add chunks function.
f2bd70dfc Add sentence about how it differs from custom_stoploss()
cf839e36f Add to custom_sell() documentation
83708ae04 Update strategy-advanced.md
7cf8c5d65 Docker Quick start grammatical error
5bc908870 Fix documentation comment missalignment
3285f6caa Improve wording in Note box
7c8a36744 Update docs to not promote stoploss / take-profit
6eb947ae0 Move static Trade functions to right class
cc916ab2e Add test for custom_sell
55faa6a84 safe_wrapper should use kwargs to call methods
2061162d7 Convert trade-opendate to python datetime
dbf33271b Small doc changes
31a2285ea Fix mypy complaints.
9c21c75cf Fix inaccuracy in docs.
98f6fce2e Use correct sell reason in case of custom sell reason.
e58fe7a8c Update custom_sell documentation.
004550529 Document dataframe parameter in custom_stoploss().
595b8735f Add dataframe parameter to custom_stoploss() and custom_sell() methods.
961b38636 Remove explicit sell_flag parameter from SellCheckTuple.
bfad4e82a Make execute_sell() use SellCheckTuple for sell reason.
a90e79569 Warn and trim custom sell reason if it is too long.
1aad128d8 Support returning a string from custom_sell() and have it recorded as custom sell reason.
a77337e42 Document IStrategy.custom_sell.
1292e08fe Use strategy_safe_wrapper() when calling custom_sell().
0fd68aee5 Add IStrategy.custom_sell method which allows per-trade sell signal evaluation.
b69a9134f fixing support for HitBTC #4778
7a98de10e telegram: Formatting typings
e3c5a4b3f telegram: Formatting imports
5fae4ea2f telegram: Formatting code
50bdae8eb telegram: Adding forcebuy inline keyboard
e2f28991e telegram: Wrapping long line
271e4500d telegram: Adding dynamic keyboard to /forcebuy response