github freqtrade/freqtrade 2020.02

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

Highlighted changes

  • New new-config subcommand. This is the official method for populating new config files out of the config templates built into freqtrade and replaces creating the configuration via setup.sh.
    Usage sample: freqtrade new-config --config config.json
  • New storage subsystem, allowing storage of backtesting data in json or jsongz. More details.
  • SharpeHyperOptLossDaily added, which calculates Sharpe Ratio on daily trade returns.
  • Stoploss on exchange support for Kraken. Note that this stoploss is a stoploss-market, compared to stoploss-limit supported by binance.
  • New list-hyperopts subcommand added (complementary to list-strategies), which enumerates hyperopt classes available in your user_dir and helps find duplicated classes (classes with same name in different files).
  • list-hyperopts and list-strategies now color-code the status of each Strategy/Hyperopt class (LOAD FAILED in red, DUPLICATE NAME -- in yellow).
  • New options for hyperopt-list subcommand added to easier find epochs of interest.
    Available options are: --min-trades, --max-trades, --max-avg-profit, --max-total-profit, --min-avg-time, --max-avg-time, --min-avg-profit and --min-total-profit.
    Check out the hyperopt-list subcommand documentation for full details.
    Huge thanks to @Fredrik81 for implementing these new options!

Advanced usages

  • Strategies and custom hyperopt classes can now be derived.
    • For strategies, you can use it to override small parts of your main strategy, leaving the rest untouched. more details and examples
    • For hyperopt, you are now able to override how dimensions are defined in your optimization hyperspace and quickly select which variant of hyperopt dimension is used, running optimization process with hyperopt class you need in each particular case. more details and examples

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 8ae0f99 Remove duplicate section a29653b Wording changes to install docs 2f349e0 Improve install documentation by streamlining the process 23b47b6 Update install-script documentation and reorder installation steps d63aaf3 Bump ccxt from 1.22.61 to 1.22.95 ff69b51 Bump scikit-optimize from 0.7.2 to 0.7.4 4054dec Bump plotly from 4.5.0 to 4.5.1 353f722 Bump requests from 2.22.0 to 2.23.0 e545ef5 Wording adjusted in helpstring 0eeafcd matched commenting on previous sample_strategy.py f25d622 modified sample_strategy e04c2dd fixed typo d2181bd Adjust tests 5ac6244 added keltner channel and uo 2957756 final touches plus b49b9b5 final touches 259dc75 some order and added weighted BB indicator to list ca8e52d Show heartbeat message earlier after changing the state e2e6b94 copy=False does not make the changes inline anyway, so not needed c651e0a Fix #2948 3186add Use explicit column list for float parsing 7ecc56f Load ohlcv data as float 2fe7b68 Add tests for cached rates 77ef324 Implement log messages 97e6e5e Implement caching in the correct place f5b4a6d Remove fetch_ticker caching d9ecf3e Add version and state to heartbeat message d2e20d8 Align heartbeat to throttling logging 269a669 Move heartbeat to worker 881f602 Adjust methods params e0800b7 Make throttle start time an worker object attribute 04aa74e Better throttling 945ff09 Use correct strategy path for docker testing 78ee36a Use _throttle() in stopped state instead of sleep() 10668bb Update tests/strategy/test_strategy.py 56a06cb Update strings to f-strings bca5f80 Move divider log message 5adbe3c initial search path is optional ... a7342bd Fix non-existing strategy loading d22384c Full support for kraken stoploss 29b369c Rename cli argument 882d0a5 implement documentation feedback after review 09d89fb Fix last test d91b9d1 Fix some tests, don't default to freqtrade/strategy for imports 1634297 Move strategies to test subfolder e6dd463 Revert versioning 1172c95 Use different versioning scheme 0b33b79 Add pypi build step 582b590 Bump python-telegram-bot from 12.4.1 to 12.4.2 0fd3d74 Bump scikit-optimize from 0.7.1 to 0.7.2 9435950 Bump mkdocs-material from 4.6.2 to 4.6.3 500e1c7 Bump wrapt from 1.11.2 to 1.12.0 c6a3038 Bump coveralls from 1.10.0 to 1.11.1 212d20e Bump ccxt from 1.22.39 to 1.22.61 bec86b1 Add github actions badge 3787ac7 increment limit to adjust to FTX defaults (1500 candles) 180939a winner, readability, with brackets as fix 6e71f2f my fix 6139239 Address points stated in comments 87b5069 Fix edge documentation rendering fdd3622 Docs adjusted 42a5d78 Wording (duplicate, not duplicated) ddea4b9 Fix test e8c0a0b Make mypy happy 1cf1913 Added missing failing strategy 29d9b6a Add test for enum failed 93f9ff1 Fix existing test 06b84b4 Remove redundant code 47a91c9 Remove green color e598c76 Add colorization f024cc4 Fix windows test failure ecca716 Fix small issue d5a298b Add sentence from suggestion 5efbdd2 Properly default to user_data/config.json if it exists c92e1d9 Attempt to make mypy happy 1bc26fd Add printing statuses for list-hyperopts be4a9b5 Lowercase freqtrade 9dafc2f Load config.json from user_data first a2d7f8a Split tabular printing into sep. helper function 9cbf8c5 Add status for listed strategies 20c21b4 Move rpc send to be after db session add/flash 36ef5c6 Get rid of delete_trades method in Freqtradebot 749463e Adjust message in main.py a0a14a1 freqtrade/templates/subtemplates/exchange_bittrex.j2 02148a1 Fix datatype styling issues a93bc74 Update documentation ... ccc9239 Reduce indentation of help 86592c3 Fix /help from telegram 81f8498 Initcap Freqtrade 634bf2b Docs: Fix checking of runmode 007cc94 fixed tests to send refresh, since its no longer defaulted f09af88 modified get_buy/sell_rate refresh to true on notify_sell_cancel and notify_buy_cancel 2e3b8cd fixed flake8 issues on /help output f6db784 removed default to refresh argument in get_buy_rate and get_sell_rate 47874a4 added logic to differentiate sell orders with double asterisk 2efa1c1 Revert data-location section 483cba4 Fix last occurence of data_location d6b9397 Fix typo in datadir key 4f3376e Do not instantiate directly DefaultStrategy in tests 539343b Adding 2 more filter options for completeness 7be9f00 Update data-analysis documentation to properly initialize configuration c35fe2c Add link to quick-start-guide d1c3eab Changed commands to use "check_int_positive" 899de8b modified tests for double partial call cde1b2b readded rpc status message for partial buys 5f4c209 fixed one more occurence of executed buy, and test 4fedf1e default refresh TRUE on get_buy_rate and get_sell_Rate 5b4d8d6 Adding --min-trades and --max-trades for hyperopt-list fc29564 Fixed messages and readability 867b736 Fixed to Executing Buys & Sells 7f4b90c fixed actual open_rate in notify_buy_cancel f99d1c3 fixed open_rate instead of open_rate_requested 29f7c50 Fix usage of an item from BTContainer in tests 62bcb3d Fix tests in test_history.py f2520c1 Used wrong utils.md as base c924e4d Updated based on feedback: - Profit commands now use float - Compatible with --best - Corrected wrong information in docs 05128d2 Suggest to run flake for scripts faf19ed Break the old binary file so users are forced to reinstall d07c698 Fix tests for hyperopt_loss 0ac0ca7 return back hint for running mypy d69ddd2 Apply suggestions from code review 7bb02d0 Update docker-docs wording 83644ce Fix mypy type errors in tests 550f9fc Bump python-telegram-bot from 12.3.0 to 12.4.1 6b4094f Bump mkdocs-material from 4.6.0 to 4.6.2 88f2ad1 Bump pandas from 1.0.0 to 1.0.1 90ee82a Bump ccxt from 1.22.30 to 1.22.39 4af25ec Adjust mypy and flake commands f7c74e5 Fix wording 5bf4c58 Update hyperopt_commands.py cc3f65d Fix typo c83da7c Add section about order types into Bittrex Exchange-specific chapter 40abdd2 Suggest changing strategy c89a322 Fix SharpeHyperOptLossDaily eb3783d Fixed a blank line issue :-( c648ec7 Added test cases and fixed a minor bug c7ba85c Add tip on running order types for Bittrex b536d50 Address PR Review c96acd6 Fixed to pass PEP8 2796d3d added missing tests to increase coverage 636bd5a Added filter options to "hyperopt-list" in order to easier find epochs. 1a9787a Add validation for data-download relevant settings 879b513 enhanced method description 4fad7a4 fixes in webhook-config docs f3b1161 wide notifications fixes c403176 Don't validate exchange for data-download subcommand 34f0466 Add template for bittrex 52f4187 Allow exchange templates to configure outside-options too f508324 Update docker documentation to be easier to use a1fe385 Improve docker-compose file to be ready to use 61ced5e Fix typo 2818420 Align sample_hyperopt_advanced.py to hyperopt_interface.py a893f70 Replace NXT with XRP in config.json.example aa2cb93 flake8 :) ff81938 added draws to backtesting tables, reduced len of some labels to help fit this without increasing total width f57bd6b Keep the docs clean for unexperienced users 418e7ad Highlight syntax in advanced-hyperopt as well 2034527 Update docs/strategy-customization.md 412f5d6 Add description to hyperopt advanced doc chapter 2846f94 Add description in the docs 739acaa Wordings improved 5b00eaa Updated Strategy Summary table to match other backtesting tables (#2864) 9639ffb added daily sharpe ratio hyperopt loss method, ty @djacky (#2826) 586cbc7 Add considerations for dry-run 6866f63 Fix merge-error aa54fd2 - added spread filter - minimum value to volume pairlist a707aeb Fix implementation of rolling_max 91b4c96 More consistency changes... ffb53a6 get rid of typing.cast() cbabc29 Don't convert to datetime - but convert to datetime64 instead 684cb54 Add pair to exception msg f6c0916 make sure asyncio_loop is not initialized within ccxt code d5f7040 Bump pandas from 0.25.3 to 1.0.0 3938418 Bump scikit-optimize from 0.5.2 to 0.7.1 401748e Bump ccxt from 1.21.91 to 1.22.30 bc2ae3e Bump pytest from 5.3.4 to 5.3.5 7b8e665 Bump jinja2 from 2.10.3 to 2.11.1 df249c7 Remove unclear comment d0506a6 Use correct matrix variable c8960ab Only run coveralls once 5375960 Allow derived strategies 2b69e78 Fix failing CI test 8415687 Fix NO_CONF_REQUIRED for list-hyperopts d12e03e Fix test inconsistency in test_freqtradebot.py cd0534e Add test 505648f Adjust docs 857eb5f Add list-hyperopts command 3fe39a3 Rename constant a5e670b Add USERPATH_NOTEBOOKS aeabe18 modified two lines from logger.info to logger.debug cause they're too spammy d647516 Fix link and lowercase variable 3499f1b better readability and more consistent with daily sharpe loss method f3d5000 Add some type hints cbd2b26 Fix small error 321bc33 Run tests against 3.8 4459679 Update dockerfile to 3.8.1 628b069 Support python3.8 virtualenvs and remove config generation via SED 12317b1 Add some rudimentary tests for questions d1a3a2d Add tests for build_config cfa6a3e Don't overwrite files c224c66 Small edits to install.md 929bbe3 Link to docker installation from index.md 8796ecb Ad example for new-config with answered questions 54512a6 Update help-strings for list-utils c40a4d7 Use exchange_mapping to determine correct exchange-template d69ef43 Add basic documentation for new-config option d038bce fixed some more line alignments c396ad4 Align quotes in same area 907a611 added rounding to Tot Profit % on Sell Reasosn table to be consistent with other percentiles on table. e2b3907 more consistent backtesting tables and labels 4be3f05 Exclude trading against BNB bases on binance 83baa6e Add test stub cebf99b Implement validation acbf13e Fail gracefully if user interrupted question session 2f0775f Extract build-config tests to new file 940bfbe Move start_config out of build_commands file e250c56 Add Questionaire workflow 49c9258 enhance test dd83cb1 Extract selection generation to a seperate method 68771a7 Remove state attr from Worker c80d8f4 Add exchange templates 122c916 Add first version of config_deploy 9f29128 Fix small json formatting issue b384ca8 Create new-config command a0b92fe removed typo 328a9ff fixed typo in false statement 4c0e586 Advise to use https method for git clone i.o ssh f8db7f1 added ask price, bid price, immediate ask quantity, and immediate bid quantity to check_depth_of_market_buy. also added a line that mentions if delta condition was satisfied or not. 72c273a Add test for closed trade case 70b9bd9 Verify if trade is closed before acting on Stoploss_on_exchange ea5ac1e Don't handle stoploss if there is an open regular order a83de24 Check for closed stoploss-orders first f5a44e4 open_order_id should be None when handling stoploss orders 10d9db7 Adjust tests slightly cf93319 move exchange-specific order-parsing to exchange class 7a22aaa UPdate documentation to reflect that stoploss-on-exchange is also available for kraken f1629c9 Implement stoploss for kraken e6f1912 Use named arguments for stoploss create_order call 16b34e1 Complete rename of stoploss_limit to stoploss 256fc2e Rename stoploss_limit to stoploss da0af48 Adjust tests to pass in order_types instead of rate 8d2e0bf Move rate-calcuation for stoploss-limit order to exchange 4194513 Converting pairs from filename to pair corrected 4eaaec9 Implement pair_to_filename to datahandler bc6a103 Introduce pair_to_filename() f82c434 data conversion, not data conversation 814cc20 Remove potential circular import f4a532e Pass format to load_data 6b59833 Require dataformat entries in configuration ae1b28a Remove get_datahandlerclass from package exposes e2a00c0 Document convert options 66d1857 Implement abstract interface 9e4fc00 Add test for convert_ohlcv 70f3ff0 Add test for convert_trades_Format e7054ad Add tests for start_convert_data 28787a0 Move convert functions to convert module 525550e Fix typo in parameter transition 6860491 Rename datahandler module to history module b37b5c3 Remove Explicit datadir conversation 9c5b94a Pass data_format to methods 65f539e More tests for datahandler d65c1ee Add some tests for datahandler 8a030e7 Use exists instead of is_file a3144cb remove trim_tickerlist baa942f Don't use function to resolve pairname for test 32c2ce1 Remove last usage of load_tickerlist 4b277af Remove test for load_tickerdata 5479c67 Clean up some codes which use list-based tests 80dbba1 Remove unnecessary mocks aa39f21 Use load_data instead of a sequence of calls a2567be Remove unnecessary mock d1b5280 Cleanup history d06777b Remove old "load_cached_data" method 7a6476c Update tests e4f185f Remove 'line' from load_cached_data tests df085a6 Fix small bug and test c648d97 Implement new "load_data_for_updating" method based on dataframes ec8fb5f Make no-data warning optional b83487a Extract default dataframe columns to constant dbe8f72 Fix typehint 91c70a0 Change to use ohlcv_purge 37c5b68 Move dataframe validation to abstract class e861f05 Move dataframe trim to within jsondatahandler 552c93a Improve some docstrings b7c1d55 Modify tests to point to datahandlers 9876d12 Use handler for trades 9547d47 Initialize datahandlers 5fca17d Allow initializing handler-class just once 416517b Move trim_dataframe from history to converter 9d8ea2f Replace calls to load_tickerdata_file with DataHandler calls 88fa7fc Simplify validate dataframe method 53ee636 Check if file exists before loading 873f5db Revrite validate_pairdata to work with pandas db520a0 Trim dataframe, not tickerlist 866908d Load and save using pandas internal function 377d59a Be selective how to load ohclv data for conversation d9e7d64 Split parse_ticker_dataframe some logic to clean_ohlcv_dataframe. 1b90ec5 Use changed pair-handling for providers d923bab Remove abstract interface for now 48728e2 Change DataProvider interface to accept pair per method e529a4c Fix typehint for get_datahandlerclass eff5cc0 Add default to internals c6d6dbf Implement jsondatahandler file store 8f214ae Fix "dumping" message to work correctly for .gz files abc6b94 Add ohlcv_store call to convert_ohlcv d804372 Enhance ohlcv_convert method 018e270 Allow --pairs for convert arguments 2a728ee fix bug in find-files 3d4f620 Allow timeframes for convert-data ef0fcb0 Make data-finding safe f8b8b9a Convert to Path temporarily 2a6b542 Add second subcommand to allow conversation of ohlcv and trades data seprately c3064df Enhance validation constants cd4466a Add convert_* methods e5a6166 Implement first version of jsondatahandler 2496aa8 Add convert-data template subcommands

Don't miss a new freqtrade release

NewReleases is sending notifications on new releases.