github freqtrade/freqtrade 2020.5

latest releases: 2024.5, 2024.4, 2024.3...
4 years ago

Highlighted changes

  • Complete rework of fee handling - which now detects "other currency" fees like BNB (Binance) and FEE (Kraken) percentages correctly (which are usually lower than the default).
    • This also "guesses" the close fee to be identical to the open fee - allowing for better calculation.
    • "eat dust" feature added (automatically done when fees are paid in base currency) - preventing dust from piling up (Dust = unsellable low amounts of currencies).
  • Addition of ShuffleFilter to randomly shuffle your pairs in the pairlist.
  • New cancel_open_orders_on_exit setting to allow cancelling open buy / sell orders when the bot exits.
  • Addition of ticker to dataprovider.
  • Addition of current_whitelist to dataprovider.
  • New subcommand, show-trades to quickly visualize one or more trades.
  • Hyperopt CSV export now exports found parameters in additional columns.
  • Fix anoying bug causing notifications to spam if a sell-order was partially filled.
  • Improved Fee handling in Edge - causing more precise results for win ratio and expectations.
  • Add CORS support to REST API (important for freqUI - warning - this is still in early alpha!)
  • Add JWT support to improve security of the API.
  • The freqtrade internal storage format for downloaded trades/ticks data (those that fetched with --dl-trades, for Kraken) has been changed. This solves problems with exhausting memory when downloading OHLCVs for highly active markets like BTC/USD from Kraken.
  • The version of pandas bumped to 1.0.4. This release of pandas resolves a memory leak in rolling().max()/rolling().min() you may experience in indicators built with the use of these methods (including indicators from third-party libraries).

How to update

As always, you can update your bot using one of the following commands:

docker-compose

docker pull freqtradeorg/freqtrade:master
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 ``` 95780cb Version bump to 2020.5 7df7869 Plotting should not fail if one pair didn't produce any trades cb40e85 Add question template ... 18a5787 Reorder typing imports b2125bd check for None to allow 0.0 profit f4af4cc Small formatting improvement 8c87fcd Rename PricingException to PricingError 16cd1f0 Rename get_order_book to fetch_l2_order_book (aligning to ccxt) d09a347 Add tests for pricingexception 7a7b26e Add exception handlers for orderbook logic 76e4e58 Introduce pricing exception bdf795b final cleanup - use different cache image for now 3e3cce4 Use pct instead of _perc 448546b Some cleanup in script 2f596f7 Use cache correctly 27e0c26 Add comment to ensure we're not accidentally removing this again 500ce50 Switch to docker experimental ... 7f5feab Fix notifications, build ... 571d61d Cancel previous automatically? 4fbd2de Use correct image a7c0e86 Test rpi using buildx and dockerfile.armhf 9f57348 Fix #3378 18d2587 Address feedback abf79e4 Use temporary variable to clean up code 6a9a8f9 Rename some methods, improve some testing 462c35c Move stats generation to the top 46f1470 Fix failing test 027ea64 Fix docstrings, extract strategy-list results db257e9 Rename method to be public 18a2dad Extract data generation from generate_text_table 0917b17 Refactor result_line to return dict 5c5dce5 Bump flake8 from 3.8.1 to 3.8.2 1c9103a Bump ccxt from 1.27.91 to 1.28.49 781de76 Bump mkdocs-material from 5.1.7 to 5.2.1 6eba718 Bump pytest-cov from 2.8.1 to 2.9.0 e136275 Add test for sell_reason_stats 876a9e4 finish refactor of sell_reason table d17300f Refactor sell reason stats to return a dict 9d1ad70 Split optimize generation from printing 8217d92 UPdate version question e138f9b Apply suggestions from code review aa004fa Fix typo in label c5480c2 Split issue-tempaltes bbd7579 Fix more tests 811e23e Have profit return time in timestamp 859b619 Align tests to new output 110b5a2 Add timestamp to trade output 7391416 Update issue template 046202f Fix typing circular dependency 073d9d3 Update readme.md with adjusted sequence 98db1d5 Reorder new commands 43e2bce Update readme with current command list 1663a67 Reorder list-arguments 33b270b reorder more arguments fcae48d Some reordering of subcommands cd0bf96 Improve pairlist tests 1f386c5 Don't start plotting profit without trades 1a984ac Explicitly raise ValueError if trades are empty 3b5ccf2 Fix documentation link a11651a Correctly test cors 4f0d928 Introduce self._enabled in pairlist handlers 7e43574 Refactor filter_pairlist() 2fbd31f CORS - allow authenticated responses 2498fa5 Bump scikit-learn from 0.22.2.post1 to 0.23.1 696c7e8 Use proper logging (using the Filter's logger) e96e28d Refactor verify_blacklist() a8b1dcf Minor: cleanup in get_signal() 4c4fb0c Cleanup in pairlistmanager d8352bd Fix tests for SpreadFilter 30d1a85 Adjust docs 2c6c287 Address comments made in review 115586a Introduce freqtrade.typing 6951b20 Do not throttle with DependencyException in retrier 8bdd5e7 Minor: correct import of retrier 0c8aff9 Make flake happy a0c9f7b Bump scikit-learn from 0.22.2.post1 to 0.23.0 627c505 Move create_pair_list to pairlistmanager f54dc7a Make flake happy cc28aae Fix the links again 5a9a313 Adjust empty f-strings to be non-fstrings d57ef6a Pairlist Section reworked 601cbd1 Bump ccxt from 1.27.49 to 1.27.91 ff8e85f Bump sqlalchemy from 1.3.16 to 1.3.17 7d80f8d Fix links in docs 37a10d1 Bump joblib from 0.14.1 to 0.15.1 a447efb Bump mkdocs-material from 5.1.6 to 5.1.7 37fd675 Bump flake8 from 3.7.9 to 3.8.1 51c0639 Update tests/pairlist/test_pairlist.py 503a8a8 Simplify sd_notify usage 287e8ba Add/adjust tests 4bfab5e Add ShuffleFilter 64b8d8c Use correct Return hint 943a2a0 Improve daily API format 16622bb Cosmetics in pair lists ae69d31 Cosmetics in IPairList 97c50f8 Cleanup pairlistmanager 285bc25 Improve testcov for default check_*_timeout methods 2074d98 Update test to verify we're not spamming messages dd55d2e Reduce spammyness of parcial cancel orders 1e76bff Add sell_order_status to keep track of cancellations ce185a3 Remove pairs with no ticker available when it's needed d457542 Fix PrecisionFilter baf5f4f Update freqtrade/constants.py 5f2a871 Add missing module fed75d8 remove --cancel_open_orders cli switch 7a11219 Reword some documentation strings 22a0876 Add test for cancel_open_order e7c11ed Fix fetching timeframe (failed in backtesting) facaaab Rename _refresh_whitelist() f8b01f5 Make flake happy 035a12c Move _create_pair_whitelist to dataprovider bf25746 Introduce datatype for informative pairs c3f3242 Add tests for cancel_open_orders_on_exit 1b3864e Make flake happy 61f6acb Add cors support - needed for UI ac076ee Update docs/strategy-customization.md d84cb3b Improve test 06b12c0 Add warning to docs for ticker data 323b491 Add description and example for dp.ticker() to the docs 33091f9 Bump python from 3.8.2-slim-buster to 3.8.3-slim-buster a7b469e Add test verifying correct price reduction on limit stoploss orders 92b6d3e Adjust test to reflect correct behaviour 143e6f5 Simplify SpreadFilter cbb2ce3 Simplify PriceFilter 2aa80f9 Cosmetics: improve readability 794ed30 Make stoploss an attribute afa7a58 Simplify PriceFilter f0c3a0d Simplify VolumePairList 2924b70 Cosmetics in tests/pairlist/ 481f9ba Use list comprehension instead of filter() fb92300 Update docs/docker.md 78b81ba Add test for dp.ticker() 38fd361 Add note about PI and docker aae096c Handle fetching ticker for non-existing pair safe way ced8126 Minor fix in the strategy docs 255ff6c Should return False if it's not been cancelled empty 60f26ba use update_trade_state also for closed stoploss orders b3dd0a6 minor: fix typo in configuration.md 6ff457e Update doc Ta_lib 6e86a47 updated docs fe3ea8e Fix stoploss on binance bug 0c3bdd6 Update sql cheatsheet iwth current table structure 63dfe36 Updated docs for #3267 f1367b3 Docs: Fix the fix 77c9334 Use available config object e2b9c24 Docs: Fix sample in strategy-advanced aa25461 Show forcebuy status so it's visible before calling forcebuy. e864db1 Update test for dp.current_whitelist 2580719 Correct log path in doc. c8f3ef8 Minor: Add filterwarning for DeprecationWarning in test 9fbe135 attached pairlist manager onto dataprovider init for unified access to dynamic whitelist a5bfa55 Fix flake8 mypy bc9efc3 Added Method for accessing current pair list on initialization for dynamic informative pairs a8f523a attached pairlist manager onto dataprovider init for unified access to dynamic whitelist a379e68 Add new ta-lib wheels 96710d4 Bump mkdocs-material from 5.1.5 to 5.1.6 e38581c Bump plotly from 4.6.0 to 4.7.1 43ab814 Bump ccxt from 1.27.20 to 1.27.49 3849b68 Bump ta-lib from 0.4.17 to 0.4.18 306eae6 Bump pytest from 5.4.1 to 5.4.2 9eca268 Fix test d291ca0 Simplify code section 21c2af2 Load jwt_key from config c3f0b5d Rename methods to match endpoints b163bb7 Apply suggestions from code review c2224ed Fix doc typos 73a1496 Catch exception on cancel_order 2406e20 Update docs/rest-api.md 80faa5f Add test to cancel sell order d9e4f41 Add documentation for JWt 570c51b Fix Typo in telegram Plugin 51d2b81 Use self.fee bc64619 Tests for JWT implementation 8139058 Implement token/login and token/refresh endpoints 0bd2fca Update tests/test_integration.py b6a2c38 Adjust tests 7e08fa2 Fix usage of fee value in Edge b72997f Add flask-jwt-extended dependency d4362ed Minor: improve exception handling in exchange 2307495 Update docs/configuration.md 80d367f Add test for keyboardinterrupt 5272ec8 Add additional test c560de4 Improve exception handling on critical errors 1ba2df7 Ause isclose for comparison, assign filled to variable a62d749 FIx typo in telegram method 593d13e Show new values also in Telegram e4023a6 Add some minor things to show_config ffef4bc Humanize show-trades error when no database is specified d3a0ab8 Change mock-status to be open when testing unfilled... 9819766 Use filled, it's the safer choice when determining the filled amount. b4aeb93 Add test testing the different ways exchanges may return data f040c20 Use filled in tests 648723f Use 30min rate cache 5dde6d3 Bump python-telegram-bot from 12.6.1 to 12.7 32eb1c5 Bump mkdocs-material from 5.1.3 to 5.1.5 611b9c8 Bump ccxt from 1.27.1 to 1.27.20 2c352e6 Bump progressbar2 from 3.51.0 to 3.51.3 68f0b10 Bump pytest-asyncio from 0.11.0 to 0.12.0 a14e027 Bump arrow from 0.15.5 to 0.15.6 f7a3bb8 Bump numpy from 1.18.3 to 1.18.4 b38f9ed Increase cache for rate limit to avoid delays 2a4c9bf Improve logmessage when falling back to wallet amount 889a153 fix PEP8 690bb76 hyperopt csv export - add params 1c9c729 Adjust trade-ids param e92d386 Fix failing test 8139787 Remove commented mock 72282a2 Add explicit test for fee_conditional 5816833 Add test for apply_fee_conditional 38c4949 Align applying of fee when comming from orders or trades 7dcef58 Add show-trades to documentation 1066a45 Add test for show_trades 56bb5f7 Add show-trades command 78b3d84 Add typehint 021e2b5 Support partially cancelled orders for fee calculation 737fc6d Fix bug when querying side 71c9042 Add explicit test for fee_updated 6d620ba Verify if fee for this side has been updated 6b33d5a Fix fee-calculation for dry-run orders bd51cd3 Cancel all open orders after receiving /stop or ctrl+c 509f38d Use non-deprectated parameter for progressbar 40d4949 Don't handle trades if they've just been closed. 7558e4b Split fee detection from trades from general logic 371100a Update fee handling a2ff632 Add update_fee method to persistence fdcc507 Fix integration tests b93d33a Fix mock order dicts db8fb39 don't use trade.update directly! 59bafc8 Implement fee rate calculation 45c97fd Use correct typehint for extract_cost_curr_rate f8f794a Simplify fee-related tests 63b5565 Add ticker to dataprovider e74ed0b Add tests for fee extraction methods 2e4dc6c Exchange should return fee dict for dry-run orders a867d40 Move fee_methods to exchange d3b9f4d Add extract_cost_curr_rate 6d7a3a0 Extract more logic into order-has_fee b125dd3 Extract order_has_fee method 7936120 Adapt tests to support new db fields dec1b10 Add fee_cost and currency columns 38c6ba6 Update setup.py 9152e76 Add skopt version check into setup.py 69b4423 Update docs/backtesting.md 74281a1 Move to the last point and clarify further 1a6ddfc Be clear on evaluation logic during backtesting 726e52a Use skopt model_queue_size instead of custom hack c6787d7 Do not use 'trials' in commands c268350 Hyperopt cleanup, do not use 'trials' a01ed17 Improve hyperopt-list logging 3754bf4 Change wording in deprecation messages fb8a85d Disallow VolumePairList from backtesting for now 9fa2162 Deprecate keys other than quoteVolume d1a24db Remove deprecated pairlist and binary e8530c3 Remove pairlists from hyperopt too (it holds a reference to exchange) 5734547 Document pairlists for backtesting 8987859 Enable pairlist parsing for backtesting and hyperopt 7aba9bc Update freqtrade/data/converter.py 46f1d1f Failing test might be incompatibility 9d7ad23 Fix test leakage eab6c9c Fix message 0d51383 Format logmessages correctly 5739ee6 Add test for trades data conversation 437d4cd Add test data for trades ba03d96 Test 5s offset on since ff9caf7 remove trade duplicates in datahandler 0506caf Implement trades_remove_dulicates 59f1a06 adapt exchange tests to use lists instead of dicts b95e9fe Fix mocks to return correct things bac0eaa fix convert to ohlcv d76bb1c Use List of Lists instead of list of Dicts for trades data 1659ddc Add conversion function from fetch_trades to list 8bfbbac Add default trades columns ```

Don't miss a new freqtrade release

NewReleases is sending notifications on new releases.