2020.12
版本发布时间: 2020-12-29 14:09:16
freqtrade/freqtrade最新发布版本:2024.10(2024-10-31 15:07:21)
Highlighted changes
- New
PerformanceFilter
, allowing sorting of the pairlist based on past trade performance. - Improved performance of
AgeFilter
andRangeStabilityFilter
. -
Changed backtesting behavior
- Sell-signal is now favored over stoploss.
- ROI is now favored over Trailing-stop - avoiding wins due to trailing stop higher than the current ROI
- Best familiarize yourself with all assumptions by reading through the backtesting assumptions again.
-
New feature: Protections
- Initial Protections:
-
CooldownPeriod
- don't rebuy Pair if it had a position X time ago -
LowProfitPairs
- don't buy pair forstop_duration
if the required profit withinlookback_period
is belowrequired_profit
-
StoplossGuard
- Stop trading if more thantrade_limit
stoplosses occured withinlookback_period
(either per pair, or without) -
MaxDrawdown
- stop trading if more thanmax_allowed_drawdown
is reached within lookback period.
-
- Backtesting support
- to keep performance impact for backtesting at a minimum support for protections has to be enabled explicitly via
--enable-protections
. - Locks are exported to the backtesting file, allowing for analysis later
- to keep performance impact for backtesting at a minimum support for protections has to be enabled explicitly via
- Initial Protections:
- Improved
setup.sh
script, which should work better for Raspberry's. - New
/stats
Telegram / Rest API endpoint, providing some performance statistics. - New Telegram keyboard configuration options, allowing you to define the telegram keys yourself.
- Reduced "locked pairs" log-spamming by reducing the message to once per candle.
- Plot now supports customized area plots. Check the documentation for more details.
Important note: This will be the last release with both master and stable branch, so please update your image / branch if not done so already.
How to update
As always, you can update your bot using one of the following commands:
docker-compose
Note: We're switching from master to stable for the release Images - please adjust your docker-file and replace freqtradeorg/freqtrade:master
with freqtradeorg/freqtrade:stable
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
f80ffe279 Version bump 2020.12
f49260911 Bump blosc from 1.9.2 to 1.10.1
87b896879 Bump ccxt from 1.39.52 to 1.39.79
10840ec17 Bump pymdown-extensions from 8.0.1 to 8.1
b3e929d14 Bump mkdocs-material from 6.1.7 to 6.2.3
7d2b9447d Update slack link
a87c27390 Refactor RPC modules so handlers don't inherit RPC directly
1508e08ea Move fiatconvert init to RPC class
5bf739b91 Simplify more telegram tests
be4a4be7a Further simplify test_telegram
4cbbb80bc Refactor test_telegram to simplify tests
516e56bfa Move init of _config to apiserver parent
f11fd2fee Sort imports
67193bca3 Move pairlists to be a plugin submodule
1713841d0 Initialize markets at startup for ccxt tests
721d0fb2a Improve wording of developer docs
74bcd82c3 Exception msg
65d91b7cb Add note on adding new exchange with compat tests
5599490aa Adjust ohlcv test after rebase
b39de171c Don't run longrun regularily
0981287c6 Improve test syntax for ccxt_compat tests
2016eea21 Fix some test-errors in ccxt_compat
a6e6ce16b Fix test failures
b7d4ff9c2 Add test for fetch_ohlcv (against exchange)
7833d9935 Add dummy test for fetch_ohlcv
79ed89e48 Add test for fee calculation
38af1b2a5 Improve compat tests
36d60fa8a First small compat test
b1fe5940f check for Exception and log msgs
cd1a8e2c4 better error msg
be28b42bf Exception for invalid keyboard config
4dadfd199 Documentation syntax
78dff3d51 docs: Note syntax
2787ba080 added /locks to command list
277f3ff47 tests: cleaup
d25fe5857 Bump sqlalchemy from 1.3.20 to 1.3.22
8eb013020 Bump pytest-mock from 3.3.1 to 3.4.0
3b6786391 Bump ccxt from 1.39.33 to 1.39.52
a2873096c Bump flake8-tidy-imports from 4.2.0 to 4.2.1
5716202e4 Bump joblib from 0.17.0 to 1.0.0
fe2720692 Bump questionary from 1.8.1 to 1.9.0
a1755364e Bump pytest from 6.2.0 to 6.2.1
e7e687c8e Bump requests from 2.25.0 to 2.25.1
5423c21be keyboard type
f39dde121 moved keyboard config validation to __inti__
18a24d75e cleanup
3cb559994 some more test
c1b8ad723 renaming, comments, cleanups
fabb31e1b imports order
f120c8d6c documentation
f24626e13 removed too many blank lines
43091a26c simple tests
8b2487802 plot_config documentation for fill_to, fill_label, fill_color
5b2902fcb cleanup
16baca5ee fixed: too complex warning
d901a8616 typo
75e475893 changed config params, added fill area in subplots
cc39cf97d revert to former create_plotconfig behaviour
4531c924d PEP8
fb3d82ccb cleanup
fdd4b40c3 fixed subplots, empty create plot_config if its not given by strategie
daa1727e2 Exeption for fill_area.traces
3fdfc06a1 label for fill_area added and documentation updated
ecadfdd98 fixed:advanced config. added. feature: fill area between traces by advanced configuration.
6b44545d3 sort order imports
799e6be2e fix tests
621105df9 renaming shortcut_btns to keyboard
bf9209948 test for custom keyboard
5b3ffd514 better log msg, comments
5e6897b27 documentation for custom keyboard
e92bcb00f telegram: specify custom shortcut bottons (keyboard) in config.json
8d3f096a9 AgeFilter does not require tickers
d7daa8643 Add bybit subclass
bd0af1b30 Fix test warning
7d2395ddb Add limit parameter to fetch_ohlcv
ca9fd0899 Update strategy-customization.md
4e7f914e9 Improve test for AgeFilter, fix bug in Agefilter
266031a6b Disallow PerformanceFilter for backtesting
d1fda28d2 Fix typehints
011ba1d9a Adapt tests to use async methods
3c85d5201 Use async to get candle data for pairlists
4c0edd046 Move dependencies to base image for RPI
c8dde6322 Allow test-pairlist to run with verbosity
69901c131 Provide pair to _validate_pairs in pairlists
39fec25ae add optional Cache arguments to refresh_pairs method
dc9280833 Change PI dockerfile to use staged build
9f5c4ead1 Remove support for 3.6
66d5271ad Don't build for 3.6 any longer
ba869a330 Build 3.6 on github actions too
8965b8a18 Bump pytest from 6.1.2 to 6.2.0
a9b586d33 Bump ccxt from 1.39.10 to 1.39.33
44f295110 Bump python-rapidjson from 0.9.4 to 1.0
bdd895b8d Bump pandas from 1.1.4 to 1.1.5
a3139dd9d Bump flake8-tidy-imports from 4.1.0 to 4.2.0
4cf16fa8d Bump plotly from 4.13.0 to 4.14.1
3bea9255e Bump cachetools from 4.1.1 to 4.2.0
dad427461 Downgrade dockerfile to 3.8.6 to avoid image bloat
a4bfd0b0a Split linux and OSX builds into 2 seperate, parallel jobs
657b002a8 Explicitly check for False in fetch_ticker
9cd1be8f9 Update usage of open_trade_price to open_trade_value
8a2fbf659 Small cleanup of protection stuff
14647fb5f Add tests for update fee
3ee7fe64b Clean up some tests
181b88dc7 Don't accept too high fees, assuming they are erroneous
b45c2fb1d Update backtesting.md
6107878f4 Bump ccxt to 1.39.10
95fd3824d Finish renamal of open_trade_price to open_value
201cc67e0 Rename open_trade_price to "open_trade_value"
ca99d484f Refactor to use list comprehension
33f330256 Reorder commands on telegram init
af53dfbfa Update backtesting.md
f5817063b Update backtesting.md
25f8e0cc5 Added git packages for future dependencies
570809825 Move ENV PATH to base image
f1af2972e Ensure non-defined attributes fail correctly
e6b3e6453 Update dockerfile to multistage
d9a86158f Add cmake to support raspberry 64bit installs
118a22d01 Update data-download.md
9725b8e17 Update Dockerfile
f897b683c Add seperate page describing plugins
82bc6973f Add last key to config_full
c37bc307e Small finetunings to documentation
b5289d5f0 Update full config with correct protection keys
de2cc9708 Fix test leakage
f04729799 Improve wording, fix bug
3ab551469 Add API endpoint for /stats
81410fb40 Document /stats for telegram
e873cafdc Beautify code a bit
effc96e92 Improve tests for backtest protections
5849d0749 Export locks as part of backtesting
57a4044eb Enhance test verifying that locks are not replaced
bb51da829 Fix slow backtest due to protections
75a516165 Support multis-strategy backtests with protections
a3f9cd2c2 Only load protections when necessary
946fb0945 Update help command output
e2d15f408 Add parameter to enable protections for backtesting
32189d27c Disable output from plugins in backtesting
9f34aebda Allow closing trades without message
b606936eb Make changes to backtesting to incorporate protections
98c88fa58 Prepare protections for backtesting
3426e99b8 Improve formatting of protection startup message
64d6c7bb6 Update developer docs
0e2a43ab4 Add duration_explanation functions
c993831a0 Add protections to startup messages
d4799e6aa Implement *candle definitions
a93bb6853 Document *candles settings, implement validations
eb952d77b Move lookback_period to parent __init__
f13e9ce5e Improve docs
b36f333b2 Add new protections to full sample, documentation
f06b58dc9 Test MaxDrawdown desc
089c463cf Introduce max_drawdown protection
9d6f3a89e Improve docs and fix typos
768d7fa19 Readd optional for get_pair_locks - it's necessary
9947dcd1d Beta feature warning
ad746627b Fix lock-loop
397a15cb6 Improve protection documentation
4351a26b4 Move stop_duration to parent class
12e84bda1 Add developer docs for Protections
6d0f16920 Get Longest lock logic
dce236467 Add stoploss per pair support
dcdf4a050 Improve tests
32cde1cb7 Improve test for lowprofitpairs
8f958ef72 Improve login-mixin structure
8d9c66a63 Add LogginMixin to freqtradebot class to avoid over-logging
be57ceb25 Remove confusing entry
5e3d2401f Only call stop methods when they actually support this method
2cd54a593 Allow disabling output from plugins
8ebd6ad20 Rename login-mixin log method
2e5b9fd4b format profit in low_profit_pairs
e29d918ea Avoid double-locks also in per pair locks
fc97266dd Add "now" to lock_pair method
59091ef2b Add helper method to calculate protection until
47cd856fe Include protection documentation
513367598 Apply all stops in the list, even if the first would apply already
9484ee669 Test for low_profit_pairs
bb06365c5 Improve protection documentation
1f703dc34 Improve protection documentation
00d4820bc Add low_profit_pairs
9f6c2a583 Better wording for config options
8dbef6bbe Add test for cooldown period
fe0afb988 Implement calling of per-pair protection
2a66c33a4 Add locks per pair
ff7ba2347 Simplify enter_positions and add global pairlock check
05be33ccd Simplify is_pair_locked
56975db2e Add more tests
2b85e7eac Add initial tests for StoplossGuard protection
816703b8e Improve protections work
f39a534fc Implement global stop (First try)
246b4a57a add small note to pairlist dev docs
04878c3ce Rename test directory for pairlist
3447f1ae5 Implement first stop method
a0bd2ce83 Add first version of protection manager
b6b9c8e5c Move "slow-log" to it's own mixin
647e6509a Bump ccxt from 1.38.55 to 1.38.87
0c0eb8236 Bump mkdocs-material from 6.1.6 to 6.1.7
51fbd0698 Move get_logs to be static method
245c19f5e Add simple test for /stats call
aa27c9ace Reorder methods in telegram
143423145 Refactor most of the logic to rpc.py
c556d1b37 Make /stats working
058d40a72 Fix telegram /daily command without arguments
71e46794b Add updating documentation
7f453033a Update edge.md
2fbbeb970 Gracefully handle cases where no buy price was found
9b4a81c0a Update faq.md
c09c23eab Make sure non-int telegram values don't crash the bot
d039ce1fb Update available columns for hyperopt
3c4fe66d8 Update faq.md
4bc24ece4 Update faq.md
c1fffb992 Update faq.md
d6cc3d737 Improve FAQ
5dfa1807a Fix tests after small updates
36b7edc34 Update typing errors
cec771b59 Ask for plotting dependency installation
5f70d1f9a Ask for hyperopt installation during setup
95b24ba8a Update setup.sh with some specifics
202ca88e2 Changes to pi steup
14d44b2cd Bump python-telegram-bot from 13.0 to 13.1
275cfb3a9 Bump ccxt from 1.38.13 to 1.38.55
f17c7f060 Bump plotly from 4.12.0 to 4.13.0
b7de18608 Trigger CI
99abe5204 Trigger CI
5f8e67d2b Update docs/includes/pairlists.md
90070f0dc Force test rerun
179149547 Trigger another run of tests
4b6f5b92b Remove non-pertinent test case
e7a035eef Lint
d6c939192 Restoring expectation
323c0657f Sort by profit after sort by count/pair
6a74c57c3 Pair name-based sorting.
e40d97e05 Small formatting improvements
5d3f59df9 Add best / worst trade
a00f852cf Add best / worst pair to summary statistics
03c571439 Use explicit merge without depending on library detail. Add no trades case.
e1d42ba78 Alphabetize
56529180e Further improve hyperopt docs
ff286bd80 Slightly clarify hyperopt docs
a47d8dbe5 Small refactor, avoiding duplicate calculation of profits
4cb331b5a Remove non-needed parameters from tests
37d2e476d isort imports
f44856407 Lint
ecce5265f Linting
fefa50096 More lint
966c6b308 Satisfy linter.
dbd50fdff Document filter.
662ec3207 Add test cases
26855800a Remove unused seed
4600bb807 Existing tests pass.
9538fa1d7 Tweak main parameterized block for PerformanceFilter
91b4c80d3 Remove unused parameters
afb795b6f Remove unnecessary test
380cca225 Remove unused imports
335735062 Revert unintended change
c34150552 Revert unrelated change
05686998b Add starter entry in documentation
7cbd89657 Initial step towards implementing proposed code
89573348b Fix link
af1b3721f remove duplicate settings check
95c3c45ec Remove long deprecated settings that moved from experimental to ask_strategy
46ec6f498 Correct link
c69ce28b7 Update backtest assumption documentation
fefb4b23d revise logic in should_sell
4aa6ebee0 Add more tests for #2422
57461a59f Update backtesting documentation with new logic
81d08c4de Add detailed backtest test verifying the ROI / trailing stop collision
312533fde Match current dev file
dd42d61d0 Run CI on 3.9
181d3a380 Bump python from 3.8.6-slim-buster to 3.9.0-slim-buster
8e03fee86 Update interface.py
1c27aaab7 Declare type of 'dur'.
355afc082 Add command 'stats' in expected test output.
7bce2cd29 Add trade duration by win/loss.
627e221b6 Use tabulate to create sell reason message.
44ad0f631 Summarize trade reason for telegram command /stats.
28411da83 Add the telegram command function template.
1b4b10f8c Update docs/installation.md