Recent Releases of FreqAI

FreqAI - 2025.7

Highlighted changes

  • ⚠️Drop support for python 3.10.
  • FreqUI
    • Display Enter / exit tags on signals independent of executions (can be disabled via plot-config)
    • Allow configuration of initially displayed number candle for charts.
  • Added current drawdown in telegram /profit message.
  • New /profit_long and /profit_short commands limiting the output to long/short trades respectively.
  • Enabled websocket support for hyperliquid.
  • Add support (via configuration) to hyperliquid vaults and subaccounts.
  • Add support for USDC futures on bybit.
  • Technical indicators - Fixed “chaikin money flow” calculation to correspond to the official formula.

Sponsor

You can sponsor the work on freqtrade via the following links:

  • froggleston (FTUI) https://github.com/sponsors/froggleston/
  • robcaulk (freqAI) https://github.com/sponsors/robcaulk/
  • xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

New Contributors

  • @jorenham made their first contribution in https://github.com/freqtrade/freqtrade/pull/11948
  • @qqqqqf-q made their first contribution in https://github.com/freqtrade/freqtrade/pull/11974

How to update

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

docker-compose

bash 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 ``` 45804e1be chore: bump version to 2025.7 4c4bc2be9 chore: update pre-commit hooks e9cc9bb38 test: add explaining comment about mark price test 3b6395ddb test: improve ccxt compat test teardown fdcbb3c0d chore: enable test checking funding-fee returned is not 0. b07ffbf72 test: remove unused argument a7b7e10c0 docs: update and simplify webhook docs f18472479 chore: align rpc message fields to use order_rate d28abc18e chore: update pre-commit hooks 4237d9fd1 chore(deps): bump astral-sh/setup-uv from 6.4.1 to 6.4.3 b98a91ba4 chore(deps): bump ccxt from 4.4.95 to 4.4.96 e74db3e02 chore(deps-dev): bump ruff from 0.12.4 to 0.12.5 ead328222 chore(deps): bump scipy from 1.16.0 to 1.16.1 dfd9e7e77 chore(deps): bump cmaes from 0.11.1 to 0.12.0 71362c914 chore(deps): bump numpy from 2.3.1 to 2.3.2 68114691c chore(deps): bump mkdocs-material in the mkdocs group 37a3bdd50 chore(deps): bump orjson from 3.11.0 to 3.11.1 50389cbbf chore(deps): bump rich from 14.0.0 to 14.1.0 a7e5d3e42 chore(deps): bump stable-baselines3 from 2.6.0 to 2.7.0 48d110654 fix: undefined candle_type_def in lookahead-analysis 52374b39f adds numpy.NaN => np.nan conversion to the strategy updater since numpy2.0 changed that, now it throws errors. 300a866aa test: update test for new logic 9873a862e fix: improve startup_candle_count assignment 1c8bbc14b fix: initialize exchange before strategy afa1311ff chore: fix odd comment formatting a85bb040f chore: update pre-commit hooks 841e480ff test: add test for get_dry_run_wallet a0e9b77f7 fix: fix problem in for dict based wallets 954950c8c chore: update pyarrow pre-compiled wheel 2520b7cd5 chore: add missing fields f9d7f05d3 chore: sort conf_required alphabetically 46d4ff3d3 chore: update pre-commit hooks 9347d823f chore: re-word variable to match it's purpose 56c672b6d chore(deps-dev): bump mypy from 1.16.1 to 1.17.0 31891b25a chore(deps-dev): bump ruff from 0.12.3 to 0.12.4 e55d8512e chore(deps): bump pyarrow from 20.0.0 to 21.0.0 a130122cc chore: bump pre-commit types for cachetools 3a58297a8 docs: improve hyperliquid doc clarity further ec5df8731 chore(deps-dev): bump types-cachetools in the types group cf1533c47 chore(deps-dev): bump pytest-asyncio in the pytest group fc34f8cad chore(deps): bump jsonschema from 4.24.0 to 4.25.0 3fbb38730 chore(deps): bump python-telegram-bot from 22.2 to 22.3 6a327440e chore(deps): bump technical from 1.5.1 to 1.5.2 f1c8d8325 chore(deps): bump orjson from 3.10.18 to 3.11.0 d2557a70d chore(deps): bump scikit-learn from 1.7.0 to 1.7.1 bf7634775 chore(deps): bump tensorboard from 2.19.0 to 2.20.0 a99a49e2a chore(deps): bump astral-sh/setup-uv from 6.3.1 to 6.4.1 b7fc924e8 docs: update backtest docs to explain missing metrics ef55bf680 fix: use absolute daily profit instead of relative 25ffc7665 docs(hyperliquid): documentation for hyperliquid vault / subaccount 15b1cff9c docs: hyperliquid - clarify walletAddress further ... c1ba2936e test: update ccxt_config test to set defaultSettle for bybit f08c0c987 feat: bybit - set defaultSettle to allow fetchPositions to work in usdc markets 3b5b8bd00 feat: enable USDC futures for bybit 74067d454 feat: Update bybit liquidation price docstring 16359d617 chore: disable ws tests for hyperliquid for now ae9f83ed3 refactor: simplify ws_test 884f543fb chore: bump ccxt to 4.4.95 29df7499c chore: improve error output 5e64416df test: add test for profit_all 1118032c1 feat: add /profit_all endpoint 277828b1d chore(tests): reduce hyperliquid timeframe 47dcf7bc9 chore(ci): Switch hyperliquid tests to a more active pair 75081ab04 docs: add /profit_long and short to telegram docs d710c85cd chore: simplify profit-callback logic 978f9c804 chore: improved code structure and types 31522c681 feat: update get_best_pair to allow better filtering a5ac8a95a feat: update get_trading_volume interface to allow filtering for more props 35dab9b56 test: fix typo in test name 2b05a4967 test: Update telegram /profit tests b79b5b6c3 refactor: move profit test next to each other 78124cd02 feat: support `/profit long`, too 7c4c78971 chore: fix message formatting issue 30b32a0d2 fix: don't call stoploss-adjust after trade has closed ccf20b2fe chore: update pre-commit hooks 23bbbddcd chore: improve backtest doc clarity c6ed64746 chore: sort pairs by absolute profit 8f4dfbf55 chore: remove long-deprecated and pointless metric 5296a3be2 fix: order_filled errors must be ignored c92c64bac Modify the duplicate functions. aaca90445 chore: improved pull request template wording 19b57ad87 Add /profit long and /profit short commands#2 6e38b7260 chore: Improve pull request template to be clear against AI e721a741c chore: update pre-commit hooks 6fdc0f1b2 chore(deps): bump aiohttp from 3.12.13 to 3.12.14 7c9fe22b9 chore(deps): bump pandas from 2.3.0 to 2.3.1 0eed655e7 chore: bump types-dateutil in pre-commit config d2d283a4b chore(deps): bump ccxt from 4.4.92 to 4.4.94 85492c108 chore(deps): bump python-rapidjson from 1.20 to 1.21 f07134bf6 chore(deps): bump fastapi from 0.115.14 to 0.116.1 7678a59b1 chore(deps): bump certifi from 2025.6.15 to 2025.7.14 daced63d0 chore(deps-dev): bump ruff from 0.12.2 to 0.12.3 002d8c402 chore(deps-dev): bump types-python-dateutil in the types group 8c85448ed chore: remove unused import 2236b08fc refactor: improved exchange init sequence 24f904efc test: fix failing test 3eaa862ca chore: remove modetrade wrong imports 469587e65 feat: add modetrade exchange base config b24064d70 refactor: move default trading mode determination to exchange c4a29a017 test: ensure candle_type_def is set properly aedbe0d1d chore: add spot to available trading modes c5e3f7d0b chore: default trading-mode to first in supported list bc019d6b6 chore: Explicitly type variable f889061b9 refactor: don't assume all exchanges support spot markets 1f52ff3f9 feat: enable websocket support for hyperliquid d0c3b3028 docs: add explanation message about "couldn't reuse" e77feafee fix: avoid unnecessary log message when filling ws message 1889a315a chore: fix comment location cc998afb4 chore: explicitly disable hyperliquid websockets 97f30cf13 feat(telegram): Add /profit long and /profit short commands ccbc48b59 refactor: improve method ordering aae3ab23a chore: update pre-commit hooks 2ecadabd9 chore: align API endpoints fe92df784 chore: revert unnecessary edits e6dd93243 Expand calculate_max_drawdown() to return the current drawdown data and use it instead of calculate_current_drawdown() 8acc05bb2 chore: update wording in exception message f13b51cf9 chore: update pre-commit hooks e90c60c94 chore: improved response on delete order 60029c2a8 fix: improved message when nonexisting trade is deleted 9de9cac23 chore: bump scipy-stubs in pre-commit config d1fd7c3f6 chore(deps): bump cryptography from 45.0.4 to 45.0.5 60094c658 chore(deps): bump ccxt from 4.4.91 to 4.4.92 dd32e228c chore(deps-dev): bump scipy-stubs from 1.15.3.0 to 1.16.0.2 81639c61a chore(deps-dev): bump ruff from 0.12.1 to 0.12.2 ae1fcbcff chore(deps): bump mkdocs-material in the mkdocs group 263d03518 chore(deps-dev): bump pytest-xdist in the pytest group f7d42ba60 chore: add TODO to eventually remove warning 701cf47c4 fix: implement fall-through for leverage tier finding 315009a7f chore: move comment to correct location 6e98a369d test: add test case for #11923 fa69b7017 test: add TIA/USDT:USDT test leverage tier e98f3cfed docs: Update "tag" examples with advanced examples 5f4184536 docs: update max enter_tag length ac904c60c fix: powershell syntax error 16defdbfd chore: autoformat actual code d010a050d chore: autoformat tests 7b541ff95 test: refactor test to use asyncio.timeout 78a47920e chore: Update dockerfile syntax e5a2011a8 ci: don't switch docker to experimental 640cab2ca refactor: tests - update timezone.utc to UTC deb8bde07 refactor: tests - update timezone.utc to UTC 79f027172 refactor: Asyncio timeoutError update 5b8b80cf5 refactor: Update timezone.utc to UTC a7ee45a0b refactor: Update timezone.utc to UTC 37cc949d9 refactor: Update utc to UTC 5f59e1435 chore: bump known 3.11+ dependencies e1f26aeb4 chore!: drop support for python 3.10 b49dafc41 docs: update to 3.11+ version requirement 7c84059b3 chore: drop support for pytohn 3.10 in setup scripts 10a0bf386 ci: Don't test against 3.10 e5a9c65e6 ci: improve pre-commit-update check 81fdff103 chore: simplify exchangews_ohlcv further 5101b1767 test: slightly cleanup ws_ohlcv test e90aa6abd test: Increased asyncio.sleep for ws_ohlcv test 1dd56df5d chore: improve sorting in mypy deps 9bd8b7acf test: use event based init for telegram 2a5a42207 test: attempt to fix test_exchangews_ohlcv flakyness e92afb74c test: improve event-loop mocking 4421e54cd fix: don't disable existing loggers when reinitializing logging b5938985f fix: don't log at "root" level. 0601f15bd Add `scipy-stubs` as dev dependency 66020d250 test: update test trades pagination handling to use _ft_has 909286c0f chore: luno - remove unnecessary config 5efad94d3 chore: add zizmor github action 1e24653e7 feat: add luno basic exchange configuration c9bc2b880 feat: add always_require_api_keys to ft_has 545cd3a99 chore: ft_has should be before remove_credentials 51a09585d refactor: extract final ft_has construction to it's own method b98816635 chore: simplify exchange class setup aec2dc5bb chore: update pre-commit hooks 15c836c56 chore: bump version to 2025.7-dev 2ebc5374f Add current drawdown in telegram profit command ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias 10 months ago

FreqAI - 2025.6

Highlighted changes

  • Update numpy to 2.0, talib-python to 0.5.x.
  • Add support for python 3.13.
  • Added --notes to backtest command. Notes are used in freqUI to label backtest results.
  • edge module and functionality removed.

Sponsor

You can sponsor the work on freqtrade via the following links:

  • froggleston (FTUI) https://github.com/sponsors/froggleston/
  • robcaulk (freqAI) https://github.com/sponsors/robcaulk/
  • xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

New Contributors

  • @racequite made their first contribution in https://github.com/freqtrade/freqtrade/pull/11889

How to update

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

docker-compose

bash 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 ``` 5f907a4b1 chore: bump version to 2025.6 ba8778b18 chore: revert max_open_trades in sample config for now 6421f767c chore: remove github buttons js code f18c7f0ca docs: make sure github buttons render e63017a2b docs: enable "edit" functionality for docs 049cc1016 docs: improved github icon for docs bfa9c818e chore: update margin/trading mode exception to be a configuration error 30afedd4f chore: use value instead of string to avoid "none" output in "marginmode" 6049ac156 docs: update wording of developer docs 25c24ddc9 chore: improve error message 0f67d32b7 chore: update pre-commit hooks fae30c6ff chore(deps): bump ccxt from 4.4.90 to 4.4.91 b7f158a79 chore(deps): bump uvicorn from 0.34.3 to 0.35.0 021fdcab4 chore(deps): bump astral-sh/setup-uv from 6.3.0 to 6.3.1 d206b601b chore(deps-dev): bump ruff from 0.12.0 to 0.12.1 949c7318f chore(deps): bump rjstone/discord-webhook-notify from 2.1.1 to 2.2.1 366636247 chore(deps): bump fastapi from 0.115.13 to 0.115.14 f27540d22 chore(deps): bump python-telegram-bot from 22.1 to 22.2 31dc0fe32 chore(deps): bump plotly from 6.1.2 to 6.2.0 1125c60f0 chore(deps): bump ast-comments from 1.2.2 to 1.2.3 74eb0d9f8 chore: update pre-commit hooks 52c78966e Fix example config 1641f5695 Add short explanation of where exchange files are 6031ccaba chore: update pre-commit hooks 420369342 chore: Ruf ignore extension 102c33d68 chore(deps-dev): bump ruff from 0.11.13 to 0.12.0 3a5b555f1 chore(deps): bump markdown from 3.8 to 3.8.2 24a3a2936 chore(deps): bump fastapi from 0.115.12 to 0.115.13 6a279043f chore(deps): bump astral-sh/setup-uv from 6.1.0 to 6.3.0 60764500d chore(deps-dev): bump mypy from 1.16.0 to 1.16.1 ba5a64aa3 chore(deps-dev): bump the pytest group with 2 updates f40576091 chore(deps): bump ccxt from 4.4.89 to 4.4.90 de3eedb39 chore(deps): bump optuna from 4.3.0 to 4.4.0 fded8bf43 chore(deps): bump pymdown-extensions from 10.15 to 10.16 5a45b4a3e chore(deps): bump docker/setup-buildx-action from 3.10.0 to 3.11.1 0b3ea4d0e chore(deps): bump cachetools from 6.0.0 to 6.1.0 822dce09b tests: keys are no longer added to the dict 3465f35d7 feat: reuse exchange secrets for exchange credential removal 2165c3e54 tests: update tests to ues new module 5e059660d chore: move remove_exchange_credentials to config module 5ca69687d chore: minor refactor of config cleanup d042085b2 chore: remove macos-13 from CI d46cc552b chore: update pre-commit hooks 1dc2bcb47 chore(deps): bump urllib3 from 2.4.0 to 2.5.0 76d5423ee chore: update pre-commit hooks 489b7e6d1 docs: Fix comment b54d231b7 chore(deps): bump numexpr from 2.10.2 to 2.11.0 db50d2b85 chore(deps): bump aiohttp from 3.12.11 to 3.12.13 0ecb3e45f chore: bump types-requests in pre-commit config 74f870c43 chore(deps): bump bottleneck from 1.4.2 to 1.5.0 8f62462e1 chore(deps): bump scikit-learn from 1.6.1 to 1.7.0 38183fe95 chore(deps): bump stable-baselines3 from 2.5.0 to 2.6.0 215b111cf chore(deps): bump cryptography from 45.0.3 to 45.0.4 4ea9d7074 chore(deps): bump certifi from 2025.4.26 to 2025.6.15 089335028 chore(deps): bump pydantic from 2.11.5 to 2.11.7 27bd34c3b chore(deps-dev): bump the pytest group with 2 updates ebf6ca1a5 chore(deps-dev): bump types-requests in the types group a91ed0b4d chore(deps): bump rjstone/discord-webhook-notify from 1.1.1 to 2.1.1 097b27208 chore: remove pointless TODO 02648e29c chore: bump ccxt to 4.4.89 beb6d4136 chore: remove py_find_1st from requirements 1a247a103 chore(deps): bump python 332518c1a chore: update pre-commit hooks 15353f44f fix: improve "missing fee" recovery 093cdae39 chore: add explaining comments to some columns 20e0b542e docs: update command partials f2c37e257 test: remove missed test 95fbe0422 test: add tests for edge startup errors 43c5b8d0e test: remove final edge test occurance 301d85ef4 test: remove edge tests 48f3d612e Fix Telegram balance command when fiat_display_currency is not set c53c70d59 tests: further test cleanup aa89ce80a test: remove edge from tests (initial round) 971dfef0e chore: remove edge from RPC modules 5d8a3cdb3 feat: fail if edge is in config 5246eecaf chore: remove edge runmode 18b6f374d chore: remove edge_cli module 95c699720 chore: remove edge as RunMode ca79b84e4 docs: reword section around edge in utility subcommands 3670df877 chore: remove edge from ft_rest_client ff06d58ac chore: remove edge module and config options 1b4592a2f chore: remove edge from full_config 5138e97b7 docs: remove edge from FAQ 340cad370 chore: remove edge from freqtradebot ca32cb9e6 docs: remove further edge usages c911b7fa7 chore: remove edge from config schema 9323b6b94 chore: fail to start edge command. 92ef1ef76 docs: deprecated: removal of Edge module e38504b9d chore: remove edge from docs df507e233 chore: update pre-commit hooks 2f1f60a8f chore(deps): bump requests from 2.32.3 to 2.32.4 1c1a165ba chore(ci): improve docker-build action 00fe02c85 feat(ci): extract docker container building 6ff26b075 fix: error during logging shutdown 03a46ec78 chore: reorder requirements logically ec31764ae chore: update technical to 1.5.1 1ba411ccc tests: Update empty error match 6b88c49e0 chore: revert ta-lib install workarounds 4fe99e033 chore: update binary files for ta-lib 3ecbfeb1d chore: bump ta-lib to 0.5.5 c415dab84 chore(deps-dev): bump pytest from 8.3.5 to 8.4.0 in the pytest group 5b4796056 chore(deps): bump aiohttp from 3.12.6 to 3.12.11 3f9749b03 chore(deps): bump pandas from 2.2.3 to 2.3.0 e1ee56663 chore(deps-dev): bump ruff from 0.11.12 to 0.11.13 1cff4d13d chore(deps): bump ccxt from 4.4.87 to 4.4.88 c997f0208 removed %1 = 0 since it was not truly necessary 985c15bdd checking kraken data for any rows not having a timestamp in the timestamp column, purging those (there was a text in the 1st row of USDGEUR.csv, making the conversion fail previously) 7fb7c43e4 chore: pip_constraint fix for dockerfile 0e68de0c6 feat: document --notes usage ba5f771e6 chore: update documentation command e0f147e07 feat: add "--notes" to backtest command b874ceaf2 chore: improved "pins" for numpy 11f339f80 chore(ci): UV workaround for build-online 9d46fd21d chore(ci): clean up after pip install 286f385f9 chore(ci): use proper directory 69cca13d1 chore: use UV_BUILD_CONSTRAINT 37d03a5b4 chore: proper naming for environment var 0e1d3e279 chore: attempt CI workaround for ta-lib build failure ae671c736 feat: don't lowercase ccxt_config keys 28064d013 feat: add ccxt_sync_config to json schema 5b9c03e7e fix: don't filter min duration on > 0 f2569e36e chore: develop doesn't need to depend on coveralls bf2092977 chore: add docstring 613e31a9a chore: simplify handle_order_fee code 326a4f17d chore: update missleading comment a8d617d74 chore: load ft_fee_base when loading from_json ba9f795df fix: Order is not bound to a Session 5698793dc chore(deps): bump torch from 2.7.0 to 2.7.1 bf96be2b7 chore: bump ccxt to 4.4.87 2af454333 chore(deps): bump python cb869a2e4 chore: bump armhf dockerfile to 3.11.13 842f3a2a3 chore: update pre-commit hooks c6c293474 chore(ci): fix 3.13 tests and incompatibilities d3b5be6cb chore: update docs and ft_client taxonomy 473a15c4e chore: scripts should support 3.13 2c4452453 chore: update pyproject for python 3.13 da6affcd6 chore: run CI against 3.13 3ebbe2b56 chore: pin ta-lib<0.6 to avoid false installs cc30e71ab chore: update pre-commit hooks aefa7e401 chore: bump mypy in pre-commit config dc06510d4 chore: adjust type-ignores for new mypy version 7740b61f0 chore: remove unused #type-ignore settings 950f5a722 chore(deps-dev): bump mypy from 1.15.0 to 1.16.0 b05fb57fb chore: huobijp rename to bittrade 1a4db7713 chore: types-requests update 71920cefb chore(deps): bump ccxt from 4.4.85 to 4.4.86 2b70ec896 chore(deps-dev): bump ruff from 0.11.11 to 0.11.12 470dbb606 chore(deps): bump aiohttp from 3.11.18 to 3.12.6 afc61ca78 chore(deps-dev): bump types-requests in the types group ba62e5e00 chore(deps): bump plotly from 6.1.1 to 6.1.2 9af401b09 chore(deps): bump jsonschema from 4.23.0 to 4.24.0 1fdbace02 chore(deps): bump uvicorn from 0.34.2 to 0.34.3 cfeda4493 chore(deps-dev): bump the pytest group with 2 updates c4eb26be9 Fix telegram profit stats when fiat_display_currency is not set d600461a8 fix: order_by_id always true eb5d5e0d3 chore: bump dev version to 2025.6-dev 77dcc5354 test: update hyperliquid test for new load_markets behavior b8b94d58c test: update tests for new reload_markets behavior 33b548206 fix: memory leak on binance in combination with aiohttp>3.10 43fea4336 chore: bump aiohttp to 3.11.18 168593d7a chore(deps): bump ccxt from 4.4.82 to 4.4.85 29ae71333 fix: improved session handling for custom_data sessions 7a84d1ecb chore: bump numpy to 2.2.6 bc78e2e1b feat: update to ft-pandas-ta 3fb6bc888 chore: Mypy-exclusions to account for ta-lib import problem 0228ec796 chore: bump datasieve to 0.1.9 69de7b404 chore: bump datasieve to 0.1.8 825c059c2 chore: update ta-lib binaries 8e8f4dbdd chore: drop stable-baselines install from mac x64 865c25392 chore: bump dockerfile and windows install numpy cd6e06c86 chore: bump ta-lib to 0.5.4 422f225e8 chore: update numpy pyproject lock range 9921c5488 chore: bump nunmpy to 2.2.4 ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias 11 months ago

FreqAI - 2025.5

Highlighted changes

  • New callback plot_annotations() - to draw areas on your freqUI charts.
  • New callback custom_roi() for more control for individual ROI entries.
  • Switch hyperopt from scikit-optimize to optuna (Except for advanced usecases, users should not notice much difference).
  • Added early-stopping functionality to hyperopt.
  • Improved backtesting precision by simulating historic rate precision levels.
  • Backtesting now applies dataframe validations after populate_indicators()` aligned with dry/live modes.
  • Added "min/max duration" to backtesting metrics.
  • Fixed binance futures trades download.

Sponsor

You can sponsor the work on freqtrade via the following links:

  • froggleston (FTUI) https://github.com/sponsors/froggleston/
  • robcaulk (freqAI) https://github.com/sponsors/robcaulk/
  • xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

New Contributors

  • @JamesLinxun made their first contribution in https://github.com/freqtrade/freqtrade/pull/11681
  • @viotemp1 made their first contribution in https://github.com/freqtrade/freqtrade/pull/11558
  • @nisuhw made their first contribution in https://github.com/freqtrade/freqtrade/pull/11747
  • @snussik made their first contribution in https://github.com/freqtrade/freqtrade/pull/11738
  • @skyoo2003 made their first contribution in https://github.com/freqtrade/freqtrade/pull/11588

How to update

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

docker-compose

bash 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 ``` 560085ab9 chore: bump version to 2025.5 ae9073885 chore: Update log wording, only log "duplicate parameters" once 61886942c chore: fix log message missing space 12d31c4ac keep INITIAL_POINTS only in hyperopt_optimizer.py 14cfdb13c add back INITIAL_POINTS (default 30) for Samplers which support this e58ab7852 docs: add operatorId to bitvavo docs dfae7ca2e fix duplicate params in same batch also da7f35db8 chore: update pre-commit hooks 53383f318 add up to 5 retries for ask in case of duplicate params b51c937e8 fix hyperopt repeated parameters between batches 87001d080 chore: update pre-commit hooks e00b74c0e fix: capture ws edge-case on reconnect 538c7b3c9 chore(deps): bump joblib from 1.5.0 to 1.5.1 dfec3f16a chore: Bump pre-commit types-cachetools e67499e6c chore(deps): bump astral-sh/setup-uv from 6.0.1 to 6.1.0 a1b5e7899 chore(deps-dev): bump ruff from 0.11.10 to 0.11.11 a88a14999 chore(deps): bump cryptography from 45.0.2 to 45.0.3 c646abc05 chore(deps): bump pydantic from 2.11.4 to 2.11.5 f2a1561d3 chore(deps): bump cachetools from 5.5.2 to 6.0.0 d7a3aeaa1 chore(deps): bump plotly from 6.0.1 to 6.1.1 4b9a63de1 chore(deps): bump xgboost from 3.0.1 to 3.0.2 07985c2ca chore(deps-dev): bump types-cachetools in the types group 0c13414f1 Slight rewording for clarity 1021c7a7a Minor typo 5306fb370 Add clarification to the exit table 1afddf9db docs: no dots on exit comparison 929538dd5 docs: refactor exit logic comparisons to includes file f432e65a1 docs: add "exit logic comparisons" table 25077a100 feat: write empty "custom_roi" with advanced strategy template b3b3bf6c1 feat: allow break-even (0.0) as valid return from custom_roi a7ebbd89c feat: add strategy-ResultValidator to backtesting ee25635c7 test: update tests for new StrategyValidator b8e19ae78 refactor: move dataframe assertion to it's own class 937bd892f fix: workaround for ccxt bybit stop_order bug adce6e4f6 fix: don't try to place stoploss orders with blocking assets f3d03dd26 feat: ensure uniqueness among fetched orders ecdd84efd fix: "until" shouldn't be in the future. 0ad6a6a95 docs: fix broken links dc97f709d docs: exclude "import only" links 34ccf141d test: enhance now_is_time_to_refresh test f0b16c277 docs: add "sold the bots capital" FAQ entry 68061444d chore: remove unused imports 93356286d fix: Activate fetch-orders pagination for binance 84e816fc5 refactor: fetch_orders pagination to base class a26a40d00 chore: update pre-commit hooks d1ebdf5df chore: remove polyfill.io from mkdocs 496c4947b chore: Fix lint error 82f98746b test: update test for new behavior 65418c7c0 changed the text a bit bbf6bade7 Fixed a bug where the pairlist was just .*/USDT (with a length of 1.) b6cde05f0 chore: remove unused import 0a3a1d7ec fix: remove unnecessary kraken workaround 947cbdd85 test: add format_duration test 8c999cd60 chore: treat webhook.url as secret ad5d2a36b feat: Further ENV recommendations to config schema 166674669 feat: recommend setting secrets via environment variable 3a74fc85b chore: update schema.json 92a1c304a feat: add additional supported keys to config schema 44c06f6d2 chore: update pre-commit hooks 83c92f3ac chore: Bump sqlalchemy in pre-commit b4a3eccfa chore(deps): bump sqlalchemy from 2.0.40 to 2.0.41 c1f163980 chore(deps): bump ccxt from 4.4.80 to 4.4.82 22fdf157e chore(deps): bump cryptography from 44.0.3 to 45.0.2 5a2b3d9d8 chore: show the actually used value 8641796d0 test: Add test for early-stop config adjustment c74033d7f chore: bump types for pre-commit b0cc2a2a1 chore: slightly improve comment wording 1abf72855 chore(deps): bump xgboost from 2.1.4 to 3.0.1 b044410e4 chore(deps-dev): bump ruff from 0.11.9 to 0.11.10 b64052850 chore(deps): bump python-telegram-bot from 22.0 to 22.1 8868b1004 chore(deps): bump mkdocs-material in the mkdocs group b18190891 chore(deps-dev): bump the types group with 2 updates 5b001eec3 docs: trades space not included in default spaces 882ca4481 Fix test_optimize_reports 60157606f Format only winner/loser durations cbb0294cd Format duration to make results more readable 1b4802ab7 chore: Improved wording in issue templates 6b7f210ef chore: Improve bug report template about AI 9a2b5a121 Display pair information in message fe9de41d5 docs: fix Note boxes not rendering correctly daff50e79 test: improve admotion test by skipping empty lines 09b687d66 test: add test checking proper admotion logic 665ff9f14 test: extend test_docs for collapsed info boxes bd1a12cea fix formatting d33e931a0 early stop - replace values lower than 20 with 20 and display a warning. fbe38c362 Fix typo 718efc828 Also add min trade duration and display the info horizontally 6d3ed8480 Add max trade duration to backtest results 28e5efc90 fix docs 510c47bd7 docs: update doc wording in custom_exit callback ce024c74e fix binance futures candle type hardcoding 90e2935ab Add trade_duration parameter to custom_roi c901f6d1d test: add test for custom_roi behavior a2b7620b6 chore: update pre-commit hooks 9d91a4a29 fix: default max_open_trades to inf instead of -1 3b6dbaccf test: add failing test for #11752 3fe9e6b82 fix: don't use exchange.precision_mode_price cbf27f0bd docs: Simplify doc examples 1f63eca1a chore: update pre-commit hooks ca9403f98 Update installation.md for older Raspberry Pi 2 ba019ad14 chore(deps): bump optuna from 4.2.1 to 4.3.0 7d5035369 chore(deps): bump datasieve from 0.1.7 to 0.1.9 d742f8b88 chore(deps-dev): bump ruff from 0.11.8 to 0.11.9 22bf036a6 chore(deps): bump ccxt from 4.4.78 to 4.4.80 c45351bef chore(deps): bump scipy from 1.15.2 to 1.15.3 6d1d0751e chore(deps): bump mkdocs-material in the mkdocs group 15012ec58 chore(deps-dev): bump pytest-timeout in the pytest group fed91ff5a Update strategy-callbacks.md 5b92af6a9 fix some spelling errors 442a1ba50 add early stopping for hyperopt 8dc278f1a refactor: simplify ws exchange handling 5f907d421 chore: move candletype check to can_use_websocket. c39c5f254 Extract "can use websocket" method 0dfc4ed69 refactor: extract websocket builder logic to it's own function 950a0df8b docs: improved documentation of order object 575c381e6 chore: fix mypy error 87061bcce docs: adopt autosampler example as advanced hyperopt approach a6d399501 feat: Improved typing, exception if neither step nor decimals is set d0d40f4fc test: Improve skdecimal test ce7d81325 chore: improved docstring for skdecimal 8f8da5180 feat: round hyperopt results to 13 digits (this removes floating point errors) f94fd7d5f chore: minor formatting 02092926a chore(deps): bump certifi from 2025.01.31 to 2025.4.26 bd7549bc8 chore: update pre-commit hooks 47e1d209d round to decimals low and high 5d2f5ec12 change SKDecimal low/high to be rounded by decimals 43bd2a060 fix optuna userwarning the range is not divisible by `step` b518d66aa chore: improve docstring for get_Trades_proxy. f165c85e6 chore: update pre-commit hooks 3dc1adfad docs: slight formatting tweaks 38754e059 Small tweaks to lookahead docs 69de9687d chore(deps): bump cryptography from 44.0.2 to 44.0.3 ef5fcad8c chore(deps): bump astral-sh/setup-uv from 6.0.0 to 6.0.1 d8de6c8f7 chore(deps): bump humanize from 4.12.2 to 4.12.3 c3239da26 chore(deps): bump orjson from 3.10.16 to 3.10.18 1edf948e4 chore(deps): bump pydantic from 2.11.3 to 2.11.4 224c4a717 chore(deps-dev): bump ruff from 0.11.7 to 0.11.8 6202436bf chore(deps): bump ccxt from 4.4.77 to 4.4.78 122144857 chore(deps): bump joblib from 1.4.2 to 1.5.0 92bcf672f docs: document consumer's `initial_candle_limit` 6f4ffa075 chore: minor cleanup 82186c8a7 docs: fix typo in docs causing note-box to not render 50596e1a6 fixed typo 9edcbbb9a Changed formatting to be more readable in source Added - How to find and remove bias? How can I salvage the strategy? - Examples of lookahead-bias a59805d73 docs: small formatting b96c06ffd Update lookahead-analysis.md 8abe358c1 docs: improved rendering 2142b2aea chore: fix type-check 53ba3ced0 test: add test for backtest "get price precision" logic a0f336c31 changed lookahead-analysis.md to better explain the output of the command 081fa2209 refactor: correct naming of new function ca67d3fb2 chore: improve price_precision logic resiliancy 5a6b43da4 feat: use hsitoric price precision for improved accuracy 7d3fa4191 test: add tests for get_significant_digits_over_time b8f3f5e8d fix: use month-start for the resample 4849d5413 feat: add function to count "significant digits over time". 8b8bf6f97 refactor: automatically load detailed bt data 9eea958e1 remove unwrap f8a151c2a feat: Add funding_fee to backtest results 1013c3231 fix: duplicate generate_optimizer to have a non-delayed alternative d9ed7e1fb remove backtest from assign_params 87d954a32 refactor: fix variable typo 74f601b35 docs: Improved plot annotations sample a3359b62d feat: validate annotation-type before returning 064708a35 feat: validate annotations and only return valid ones to avoid breaking the whole chart 066a46d7a Switch annotationType to Pydantic 333660e62 feat: improved doc-string for plot-annotations 81f80a6b2 docs: add visual documentation for plot annotations dd613ac86 fix formatting 73c28890d move @delayed and @wrap_non_picklable_objects in hyperopt_optimizer.py one test with analyze_per_epoch is failing 61dd94ceb test: add tests for annotations feature 9c4abcc92 refactor: improve variable naming b74e38ef6 refactor: improve variable naming e27568a9d chore: pin certifi until upstream issue is fixed 149133cc4 refactor: remove _get_params_dict method 1b2d5a357 test: change level of test mock ecc637173 test: reduce amount of mocking 0c66180cf chore: add optuna to hyperopt optional dependencies 5954c64cc chore: use ubuntu 24.04 for online tests c18085d17 chore: update pre-commit hooks 14353afa7 chore: bump develop version to 2025.5-dev a77618cc6 fix ced1ce340 fix some formatting issues 1d99b7d0f move ORDERFLOW_ADDED_COLUMNS to constant 5c47a75f6 move back delayed and wrap_non_picklable_objects from hyperopt_optimizer to hyperopt. There are tests failing when using delayed and wrap_non_picklable_objects as decorator. until I'll find a solution to run generate_optimizer standalone for analyze_per_epoch=True 1ef2eeb45 chore(ci): reenable htx online tests through proxy c32f8e972 move delayed and wrap_non_picklable_objects from hyperopt to hyperopt_optimizer 04492e75b remove # Suppress optuna ExperimentalWarning from skopt with warnings.catch_warnings(): from optuna.exceptions import ExperimentalWarning warnings.filterwarnings("ignore", category=FutureWarning) this should be when importing sampler 8d0ca7f5c remove backtesting from generate_optimizer 0a4f82bc2 update columns from ORDERFLOW_ADDED_COLUMNS 5ee7f8037 fix 12728c0fc fix 362f0895f skip trade-related columns fb64ac942 chore: raise freqtrade exception so upstream handling is in place 3fc40f45b chore: simplify diff in hyperopt-tinterface ca5ccc879 chore: cleanup some code 057cc2538 chore: use optuna distribution aliases in parameters ed22789a1 chore: cleanup unused import 2abf22e37 chore: simplify usage of data_pickle_file 9b08b51ad chore: cleanup dead code 83cdf7663 chore: simplify import/exports f54511384 chore: improve EstimatorType type f86bc71c4 chore: cleanup some test code 8af9875d4 docs: remove scikit-optimize references from docs 8a9b31ecc chore: remove scikit-optimize dependency b4a5f66f2 Return the trade duration along with the profit threshold returned by custom_roi e105ea660 Improve documentation 114939378 Fix LocalTrade compatibility correctly d4655660f Fix LocalTrade compatibility in custom_roi and min_roi_reached_entry e65606377 Add custom_roi strategy callback 20fca07d8 fixed mypy errors freqtrade/optimize/space/optunaspaces.py:39: error: Argument 1 to "__init__" of "IntDistribution" has incompatible type "int | float"; expected "int" [arg-type] freqtrade/optimize/space/optunaspaces.py:39: error: Argument 2 to "__init__" of "IntDistribution" has incompatible type "int | float"; expected "int" [arg-type] remove all references for ExtraTreesRegressor and skopt.space 8ee40ade4 update docs/advanced-hyperopt.md 30ead79e1 fixed freqtrade/optimize/space/__init__.py:1:66: RUF100 [*] Unused `noqa` directive (unused: `F401`) 5c859d929 add optunaspaces.py c89058788 remove decimal module 35c3868c5 change for SKDecimal and othercomments 85689ebc1 test: update skdecimal test to use optuna 4fcc9dd58 feat: use floatDistribution for SKDecimal 05f19d574 chore: remove commented skopt usages 1a2455972 chore: cleanup old usages 7a51c9d54 types: slightly improved typing 1d22377ca chore: remove some skopt usages 90aaaa50f fix increasing memory usage. bffb3120c fix: remove space in rename_dict/rename_dict_old 3fcf6559a change from skopt.space.Real to optuna.distributions.FloatDistribution 85f4a8dae fix formatting 2595479e4 change CategoricalParameter and IntParameter in parameters.py to use optuna.distributions CategoricalDistribution and IntDistribution instead of skopt 9c1183bc5 fix formatting requirements-hyperopt.txt 6b78b1c88 fix formatting ee3d46c8f change default optimizer to NSGAIIISampler - best results so far 59e52bb60 fix type-errors by declaring the type of o_dimensions in convert_dimensions_to_optuna_space 553dbccec simplify get_optimizer 2e06eb0e7 update docs for optuna sampler 31c4d3593 update docs for optuna sampler eb03382b2 remove SKOPT_MODEL_QUEUE_SIZE comments fcd0c1d60 formatting fix c5088e6b6 fix formatting 62f05964b change optimizer to optuna b6a65ce12 fix: pickle error due to Lock object 4ff200d31 docs: clarify docs about plot annotation callback 5700f789e chore: improve type-safety 689767e3c chore: rename response model attribute 66efc9a46 docs: add documentation for plot_annotations 4c3e47766 chore: rename Annotation type 8cdae5f56 feat: add plot_annotations interface 347295eca feat: Expand pair_candles with plot_annotations call 7272204d5 feat: add MarkArea type ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias 12 months ago

FreqAI - 2025.4

Highlighted changes

  • Dropped support for pytorch for intel MacOS.
  • FreqUI: Updated to new UI framework, fixing a few rendering bugs.
  • FreqUI: Backtest summary now has a Trade durations boxplot.
  • Add new /pause state. This replaces /stopbuy and puts the bot in a proper “paused” state.
  • install-ui can now also install UI pre-release versions via --prerelease flag.
  • New Hyperopt Loss function MaxDrawDownPerPairHyperOptLoss - optimizing against the worst profit/loss ratio - which avoids result-inflation from exceptional pairs.
  • Improved “max allowed stake” logic / accuracy for futures trading.

Sponsors

You can sponsor the work on freqtrade via the following links:

  • froggleston (FTUI) https://github.com/sponsors/froggleston/
  • robcaulk (freqAI) https://github.com/sponsors/robcaulk/
  • xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

New Contributors

  • @Code0x58 made their first contribution in https://github.com/freqtrade/freqtrade/pull/11598

How to update

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

docker-compose

bash 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 ``` cefc833ab chore: bump version to 2025.4 14e2e160a chore: reformat utility script 000eb875a chore: bump binance leverage tiers d90666d2e docs: minor link refactor 78943bf88 Add link to FAQ 1b8a42d47 Improve logging docs in 101 and advanced setup faa398053 chore: update pre-commit hooks b3ec69fa8 chore: update pyarrow prebuilt wheel c9256e0d9 chore(deps): bump torch from 2.6.0 to 2.7.0 c7e02b9a7 chore(deps): bump ccxt from 4.4.75 to 4.4.77 1ad0e423c chore(ci): add new mandatory parameter to setup-uv 2ef1e203c chore(deps): bump pymdown-extensions from 10.14.3 to 10.15 959f81f4a chore(deps): bump rjstone/discord-webhook-notify from 1.0.4 to 1.1.1 3090e47a1 chore(deps-dev): bump ruff from 0.11.6 to 0.11.7 02ab0eb13 test: temporarily disable HTX tests 5d8759de7 chore(deps): bump pyarrow from 19.0.1 to 20.0.0 b13b00df1 chore(deps): bump astral-sh/setup-uv from 5.4.2 to 6.0.0 d8b51875b test: update tests for new file structure 7f12f3a0e refactor: rename btanalysis file to be clearer 6afcc8093 refactor: move some utils to a separate file efdb72636 refactor: btanalysis -> package 3ca7407b0 refactor: improve variable naming 22ba0e61e chore: add docstring to explain what the migration method does 6e83890a1 chore: reduce log-level of binance migration 8a8cc5e56 chore: don't rerun binance futures migration e1bf3bb82 chore: improve type-safety for migrations 875216cdc refactor: improved variable naming 903b58002 fix: new_pair logic for binance won't work on funding rates 073b62535 test: update test for calculate_market_change b3b21e6b9 fix: market_change deviation between backtesting and hyperopt 0cf1f6dc8 Fix 2 for passing CI 502d50c98 Fix for passing CI ed8b8fbf6 Fix mixed tag stats in backtest output f3154423b chore: update pre-commit hooks 124c05143 docs: add "realized_profit" field to trade object docs a98dd0eea chore: Pin docker github action versions 103f64227 chore: Pin more github action versions 5b481009d chore(ci): pin github actions 3da6a8146 chore: update pre-commit hooks 574419f3a test: freeze time to avoid random test failure 0c46afaee chore(deps-dev): bump ruff from 0.11.5 to 0.11.6 b6e960903 chore(deps): bump prompt-toolkit from 3.0.50 to 3.0.51 1b6dadbc8 chore(deps): bump uvicorn from 0.34.1 to 0.34.2 1b18856d0 chore(deps): bump packaging from 24.2 to 25.0 35e9805ef chore(deps): bump mkdocs-material in the mkdocs group dcf38557e chore: add segment about AI 54d78fd1c chore: update documentation link in template 6040c391d chore: improved bug-report wording 10d79f623 feat: update --datadir description 1e1c9a28f chore: simplify types in exchange class 6a01985fd test: add test case to ensure max_stake considers leverage tiers be572ba04 fix: include leverage tiers in max_stake calculation f711afd84 chore: slight reordering within stake_amount_limit method d6f58cd6c test: fix leverage test 9dd1ce71c fix: improve get_max_leverage logic 0a0a8428d chore: simplify method fdc248a1b fix: entry_stakes should be leverage adjusted ed23dc0f7 chore: update pre-commit hooks 27e3ae8c2 added list-data comment for --datadir to have the user not specify [exchange]/futures/ by themselves. They should use --trading-mode. They will get a timerange of 1970-1970 in conjunction with --show-timerange otherwise. f6cb446bf added list-data comment for --datadir to have the user not specify [exchange]/futures/ by themselves. They should use --trading-mode. They will get a timerange of 1970-1970 in conjunction with --show-timerange otherwise. 72786ca70 chore: drop pandas_ta from default template 3e2a799d9 Fix config["log_config"] use so it doesn't break in backtesting 5b6ea5ca9 chore: update pre-commit hooks f8bf85067 chore(deps): bump uvicorn from 0.34.0 to 0.34.1 b341bc5a8 chore(deps): bump markdown from 3.7 to 3.8 5ac1cf929 chore(deps): bump urllib3 from 2.3.0 to 2.4.0 eca2ca3dc chore(deps-dev): bump ruff from 0.11.4 to 0.11.5 1d8fd059c chore(deps): bump ccxt from 4.4.73 to 4.4.75 a95972ae3 chore(deps): bump catboost from 1.2.7 to 1.2.8 37985dfee chore(deps): bump pydantic from 2.11.2 to 2.11.3 e6b5233d2 Add space after docstring 6fa1133c6 Remove space at the end of logging_mixin.py 16378d32d Show only selected warnings using the force_show parameter 33105a996 Show only whitelist warnings a6d76cad3 test: improve api test to ensure the default is what we expect 3d1568783 Allow warning messages when starting backtesting 194d53acf fix: adding checks for trades and order_by_id 751d98495 fix: tests/formatting 49b119f1d Feat: option for order_by_id 87f07d5f9 fixed description a24f5d64a removed legacy port 3000 at frequenthippo.ddns.net 30eb32862 docs: update title in parameter table 16379bbcc test: small adjustment to test 6e9863534 chore: bump armhf dockerfile to 3.11.12 de8dd8334 chore: docker should stay at 3.12 for now. b3296b75e chore(deps): bump python 2f9ec970a chore: update pre-commit hooks 568c579ca Improve documentation e116b7140 feat: Improve ruff config (use RUF rules) a85dc6972 chore: Fix errors through S404 noqa's feab28de9 chore: unpack instead of list concat 0aa05855d chore: unpack instead of list concat 44591053b refactor: simplify some checks c11de3ac3 chore: remove pointless ambiguous unicode characters b797a5bf2 chore: remove some unused noqa's 1d9d2fce7 chore: add noQA for S404 0e92372b0 chore: don't use list[0] - but next 68fbab5c3 test: fix type-problem in tests 596f6711f chore: don't use deprecated logger.warn method c2296d83c Fix for passing CI 9a3ada65f Complete the integration on freqtrade df50e0323 Complete the integration on freqtrade 9d0f5df54 docs: update docs about reduce_df_footprint 6b41594c5 refactor: _if_enabled_populate_trades may mutate the dataframe 2d194995b feat: add reduce_df_footprint to backtest/hyperopt modes 904580b91 Fix 2 for passing CI 9373779fb Fix for passing CI 692bb36c8 Add new loss function based on profit/drawodown ratio per pair 618576172 chore: add note about multiTarget being a copy 9b9ef6ae6 docs: Minor adjustment to doc wording 807510628 chore: update pre-commit hooks 6b033c211 chore: ensure trades are committed after the exit loop 8be31275d chore: use "pass" for empty type a3d3a4de5 test: Update test to reflect new total_profit calculation f1b890954 test: enable total_profit_ratio asserts 0f2ff70bd test: adjust test to reflect reality 4c42bd710 fix: correct relative total_profit calculation 9acf8943e Don't recalculate profit_abs twice 4986f356e refactor: Type backtest results ca390eea6 refactor: move import to list_exchanges function cd9c45e87 doc: slight order change in pause telegram command description c90ac3007 doc: combine /pause and /stopentry /stopbuy sections in telegram usage doc d8bbd4054 chore(deps): bump pydantic from 2.11.1 to 2.11.2 baefaeb31 chore(deps-dev): bump ruff from 0.11.2 to 0.11.4 288db1619 chore(deps): bump ccxt from 4.4.71 to 4.4.73 eb4199fe8 chore(deps): bump mkdocs-material in the mkdocs group 9a151b1ec chore(deps-dev): bump pytest-cov from 6.0.0 to 6.1.1 in the pytest group 7dddab18c doc: update telegram usage doc to match paused state feature and usage a85afd9af feat: add "indicator_periods_candles" to config schema f817b21d1 chore: fix ruff fae7198bb fix: Make XgboostMulti an alias of Xgboost since it supports multiple targets implicitly now 55be04693 Add test for coupling of AVAILABLE_CLI_OPTIONS and Arguments 38fa7068c Add test for coupling of AVAILABLE_CLI_OPTIONS and ARGS_* e5389be20 chore: import sys only when necessary 19a997a2d chore: add comment for custom pre-commit hook eac440649 refactor: move config_schema to it's own package 21a47bb1a chore: add config-schema extract to pre-commit b839e159a chore: Support config schema extract without installation 91df1257e chore: update install-ui command partial 88f8e831d test: Update ui test to also test for pre-release filtering 627eee5fc feat: allow explicit download of pre-release UI versions 26c7752b7 feat: don't install pre-releases 2e2f40ca1 chore: update pre-commit hooks 1f09b90db chore: improved docstring 9c39b99ec test: add test case for new next_limit_in_list usecase 2e343b9fb fix: add l2 upper-limit (for gate) 087fb31f2 Fix for passing CI 3edc442f4 Fix drawdown calculation when maximum drawdown occurs on the first trade a3f23fd4f Also fix the expected result in the test 68f32d76a Fix drawdown calculation when there are no winning trades ca573a828 chore: update _rpc_pause return wording e9cd840f5 chore: update pre-commit hooks 296c14afc chore: bump pre-commit types-requests b2b151870 chore(deps-dev): bump types-requests in the types group 795a0b81e chore: remove workaround for Kraken ".F" workaround e5268a044 chore: bump sqlalchemy in pre-commit config 937aa5c70 chore(deps): bump pytz from 2025.1 to 2025.2 db647ab4d chore(deps): bump orjson from 3.10.15 to 3.10.16 98652bfd8 chore(deps): bump rich from 13.9.4 to 14.0.0 63010bc5e chore(deps): bump ccxt from 4.4.69 to 4.4.71 dd388a51e chore(deps): bump sqlalchemy from 2.0.39 to 2.0.40 22f109bab chore(deps): bump humanize from 4.12.1 to 4.12.2 67e2d9c73 chore(deps): bump pydantic from 2.10.6 to 2.11.1 07fb94175 chore(deps): bump mkdocs-material in the mkdocs group 6fca35ada chore(deps-dev): bump pytest-asyncio in the pytest group ac9b26cc5 fix: allow backtesting for specific exchanges b77739b5c docs: add exchange docs about hyperliquid historic data 722d5b231 test: update test of _rpc_pause after removal of specific fallback if bot already paused 91ace759c chore: update _rpc_pause remove specific fallback if bot alreadu paused 3d8d2fc0c test: update tests related to paused state status message wording 58154d76a chore: update paused state status message wording 38feb90f9 chore: update function naming 4632839fc chore(ci): run coveralls on ubuntu 24.04 runner 26ea4fdcc chore(ci): simplified syntax 3637d7a54 chore(ci): run mypy only on the latest OS each 583e20dc9 chore: bump dev version to 2025.4-dev bb08880c4 test: simplify test_worker_lifecycle 948487518 test: improve test_worker_lifecycle be5d15876 Calculate and save all metrics per pair (fix 5) 4f2681500 Calculate and save all metrics per pair (fix 4) 00237d68e Calculate and save all metrics per pair (fix 3) 20325a2b5 Calculate and save all metrics per pair (fix 2) be40e828a Calculate and save all metrics per pair (fix) 916ef43f7 Calculate and save all metrics per pair 2b01d2e06 feat: display current status in notification after reload config 0553486e5 feat: prevent raising position size using adjustment position in paused state 4fa8c3f9a fix: worker startup condition 543c77fe0 chore: slight refactor on rpc stop handler e77ce8d48 chore: cosmetic worker condition refactoring 285867f8c test: add test_worker_lifecycle b2898cf74 feat: add stop state change from pause state 31625befd feat: trigger startup function only when the bot leave the stopped state 394535c2e chore: update telegram _stopentry handling function description 16576d37b feat: allow force_exit, rpc_cancel_open_order and _rpc_count in paused state 53bd2d71a test: update test_worker_paused df4b44d09 feat: update worker to make paused state capable of bot startup and running process b6b3429b6 chore: remove _pause handler to use already existing _stopentry handler 0adb264c9 test: update test_telegram_init with pause 445c3a67d add pause in telegram commandHandler init 06c4b661f test: fix test__send_msg_keyboard after pause key removal b8dffe0eb chore: revert telegram keyboard list, remove paused button 85772ac7f test: update stopentry related tests for rpc api and telegram 3ec72f88e test: update test_rpc_stopentry, small wording change on _rpc_stopentry status 4f4f927b9 chore: wording alignement update between schema.json and .py 46fab5537 feat: /pause telegram command now use _rpc_stopentry function 1d44f7565 feat: update api, change /pause from individual route to alias with /stopentry and /stopbuy a4416b885 feat: _rpc_stopentry to handle paused state, remove _rpc_pause 209c2e0ce doc: paused state small wording fix 324aada2b feat: add paused state to config schema, restore it in generated shema.json 6f58e01f8 chore: drop support for macos x64 PyTorch 50d60fad8 chore: remove paused state from schema.json enum 728656844 chore: change order of initial_states schema enum 3116fd34c chore: update wording on initial_state description field of schema f70815dd8 test: update test_rpc_telegram with new paused state telegram commands 47151e77e feat: add paused state to telegram commands 5a1f96d35 doc: update the doc with newly added paused state fe03bf7ce test: add test_worker_paused d09160fff feat: allow entry only if state is running f46c8cdc4 feat: add paused state path to api db57f8392 feat: add paused state handler to rpc bbf0ac83a feat: add paused state to State class a9714727b feat: add paused state to initial state in schema ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 1 year ago

FreqAI - 2025.3

Highlighted changes

  • New logging system allowing for advanced logging configuration.
  • New backtesting metric “System Quality Number (SQN)”.
  • Backtesting - now includes year over year breakdowns.
  • Backtesting now keeps a copy of the strategy and configuration as part of it’s output file.
  • Introduction of advanced logging configuration through the "log_config" key in your config file.
  • New API endpoints to retrieve custom data for individual trades, or for open trades.
  • Use data.binance.vision for historic binance trades downloads to speed up downloading.

Sponsors

You can sponsor the work on freqtrade via the following links:

  • froggleston (FTUI) https://github.com/sponsors/froggleston/
  • robcaulk (freqAI) https://github.com/sponsors/robcaulk/
  • xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

New contributors

  • @mrpabloyeah made their first contribution in https://github.com/freqtrade/freqtrade/pull/11481
  • @kowhi made their first contribution in https://github.com/freqtrade/freqtrade/pull/11508

How to update

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

docker-compose

bash 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 ``` b3296a06d chore: bump version to 2025.3 f24211095 chore: update pre-commit hooks 8cf3f3826 chore: update pre-commit hooks 799ce4e1f test: Enhance test to also cover params file saving 1fdce8980 chore: Implement safeguard against non-existing strategy files f3101e8a7 chore(deps-dev): bump pre-commit from 4.1.0 to 4.2.0 43dd90f6d chore(deps): bump plotly from 6.0.0 to 6.0.1 7ef52365f chore(deps): bump ccxt from 4.4.68 to 4.4.69 00bdf13fa chore(deps-dev): bump ruff from 0.11.0 to 0.11.2 5f8608d3b chore(deps): bump fastapi from 0.115.11 to 0.115.12 d19498667 chore(deps): bump mkdocs-material in the mkdocs group 286371c1e docs: add documentation for output zip file format 3ffc69ad0 chore: fix typing errors 7b44dd17a feat: strategy-file saving for api backtest 5b0b44069 test: Ensure strategy file is added to the test file. 85fc93643 feat: add Strategy and parameter file to backtest zip file 04a28b255 fix: backtestResulttype - simplify 9fa3a15e2 feat: store (sanitized) configuration 23b10161d test: improve test resiliance 31e450176 docs: improve static pairlist documentation c6e64bad4 chore: backtesting will always be "true" for dry-run. 8e2de9ef7 docs: improve adjust_trade_position formatting 5ea7ba6b9 docs: improve adjust_trade_position docs further e3e924d88 docs: minor update to realign summary metric docs 02b0f0abd refactor: extract replace_order handling 7735ea91b fix: adjust_order_price return type 7178ce855 chore: Add descriptions to api parameters 425701ddc test: simplify assert message 42e45a0a6 chore: simplify import and docstring dfc77945c chore: update pre-commit hooks 6d8011e07 chore: use Trade id for _rpc_list_custom_data output ordering 1b4f8dfa5 chore: use open_date for _rpc_list_custom_data output ordering 48b7a85c9 chore: update schema after removal of cd_value field from list custom-data response 0d7854ff1 test: update tests after removal of cd_value field from list custom-data response d3464ac2d chore: remove cd_value from rpc custom data output 95f5db9dc fix: implement ordering for rpc_list_custom_data 61b29962c test: update test after trade id removal from telegram response for list_custom_data b83754c5a chore: remove trade id from telegram response for list_custom_data 9a1f2d42a fix: list_custom_data trade id variable value bd511c215 fix: rest client custom-data path 7bc6a2279 chore: only round to 2 for output, not for the saved file 06406b710 test: update test_telegram_list_custom_data 17e4f5ed1 chore: update telegram _list_custom_data 578ba9ea4 test: update custom-data api related tests according rpc_list_custom_data output 83a8651d4 chore: update api schema according rpc_list_custom_data output ba0c22b6f chore: enhance update rpc_list_custom_data output 90219f040 chore: enhance list custom-data output format fef234d80 chore: update pre-commit hooks 68ad68866 test: update test_telegram_list_custom_data wording 0c7a2747d chore: revert unnecessary get_custom_data changes 23187f0c4 chore: simplify error handling in _rpc_list_custom_data f66d81c4b chore: wording update in _rpc_list_custom_data 87a64cbe6 chore: small refactor in _rpc_list_custom_data ef58aaf9e chore: update rest client custom-data related functions inline comment and help content 4a432760e feat: add list_open_trades_custom_data to ft rest client 484943a64 feat: set trade_id as required param in list_custom_data, add key as optional eec16cfc8 chore: move list_custom_data closer to trades related functions fddceb257 chore: pin ccxt version to more recent number 33164ec04 chore: bump sqlalchemy in pre-commit config 0e6cd72ed chore(deps): bump ccxt from 4.4.65 to 4.4.68 4f218e4fb chore(deps): bump sqlalchemy from 2.0.38 to 2.0.39 ba38f8120 chore(deps-dev): bump ruff from 0.9.10 to 0.11.0 7de9e2c4b chore(deps): bump python-telegram-bot from 21.11.1 to 22.0 331c6beaf chore(deps): bump filelock from 3.17.0 to 3.18.0 93cbbbbe3 chore(deps): bump mkdocs-material in the mkdocs group ddd2e2cc3 Add relevant metrics to backtest breakdowns (fix 5) 55301b8d0 Add relevant metrics to backtest breakdowns (fix 4) a47ed1dbd Add relevant metrics to backtest breakdowns (fix 3) 17b161cb0 chore: improve types in telegram 5d3c764e2 test for authorized_users telegram functionality f3aac3d66 feat: add authorized-users key to config schema 39903d521 docs: add authorized_users to documentation 7255bedde chore: improved null check a95c3ace9 feat: add authorized_users support for telegram d543feb03 tests: simplify telegram test setup 623f27341 chore: simplify telegram safety wrapper 55dc2d4bf chore: update watch reuse log message 24e94cfaa feat: Improved default fmt_dict for json formatter 7db62689c test: add test for json formatter da53b5d11 docs: document logging JSON format 03dfe4ec4 feat: add jsonFormatter 39288d2e5 test: Add fixture to prevent having disabled loggers 596484526 chore: Export json schema 9911d2aa3 fix the type of the fit_live_predictions_candles field in the config schema bfd2c3f94 chore: pin freqtrade CI badge to develop branch 74c837519 chore: don't use deprecated pandas timeperiod 415e361c6 docs: fix note syntax 7e154c6fb chore: fix too long comment 385b39ff6 docs: enhance logging documentation with links 9d232c494 docs: add log_config to supported log options 85ccc31a6 docs: document basic log_config setup 65d19c38b docs: document deprecation of --logfile syslog 5b8752e64 chore: deprecate syslog from configuration 8832bae37 docs: document syslog logging via log_config a85e044e9 docs: improve log formatting 7b1ee84b3 chore: deprecate --logfile=journald 79ebc943a docs: Document journald logging via configuration file eabcaa38e feat: try improved config schema e930221b7 test: update logging tests 08c4f24bd test: add log setup workaround for tests 56c23f9dd tests: remove unnecessary log-config 6edee269d chore: deepcopy log config f9d978f16 chore: migrate set_log_levels to log_config 1eac77fe0 chore: don't shadow built-in functions a98121ea2 chore: update json schema cc9c373a7 feat: update config_schema for logging 390b11377 feat: Ensure freqtrade-logger is always configured bf33f8b63 chore: clean up log-levels 030dcfdd8 chore: extract log formatter addition cd7775885 chore: remove some unnecessary comments 1aa6c2ad5 feat: Improve filehandler config 55d71cecd refactor: move root-handler adding to separate function 70a81c86b feat: dynamically assign error console 1c6c71069 chore: rename log_config naming 4ca2a043b refactor: extract log_config creation 41418784e feat: add log_config generator 9afd57294 chore: add "log init from config" ... 51a99f2a6 Add relevant metrics to backtest breakdowns (fix 2) 969b0570c Add relevant metrics to backtest breakdowns (fix) e94ccece9 Add relevant metrics to backtest breakdowns 33659ee27 chore: update pre-commit hooks 429505b13 test: add test_api_custom_data_multiple_open_trades to validate api route behaviour 2c2cc086c test: add test_api_custom_data_single_trade to validate api route behaviour fe1665473 test: slight change on expected string in test_telegram_list_custom_data f85891941 chore: update telegram _list_custom_data according to _rpc_list_custom_data output format change 493b6f659 chore: update api custom-data related routes with better not found error handling 97faa7fc5 feat: update api schema custom data related classes 5402b1433 chore: enhance _rpc_list_custom_data error handling, output format and docstring 4c7ff7ab0 feat: add retrieval_mode in get_custom_data function to chose between value or full custom_data object 442b29e0e chore: run schema export 743422ccf feat: implement pagination for open trades custom-data rpc endpoint d69b1566b chore: auto-build schema.json 5c01023d5 feat: add missing freqAI parameters to config schema 97d303579 feat: add continual_learning to config schema 265a798f7 docs: auto-generate command snippets e62a0f76e chore: update pre-commit hooks 673447794 chore: implement pagination for _rpc_list_custom_data 76aefccd0 fix: on custom-data endpoints key is now an optional parameter b0b9e398e fix: assume 200char terminal if no terminal size is available fac049165 fix: _rpc_list_custom_data send custom-data for all trades if a key is provided 7770f082c chore: relocate custom-data endpoints of api server near trade related endpoint, replace info tag by trading 328104926 Add year also in cli_options 661336634 chore: bump types-requests for pre-commit config 6d84b9371 chore(deps): bump ccxt from 4.4.64 to 4.4.65 5b1011668 chore(deps-dev): bump ruff from 0.9.9 to 0.9.10 30d2298d5 chore(deps): bump websockets from 15.0 to 15.0.1 98b6f58eb chore(deps-dev): bump types-requests in the types group a0cbdc913 Add year to backtest breakdowns 805e03b83 test: update test for new bt cache behavior 35cc7da9b fix: keep pair index per pair 6efe6bbfc fix: restore previous startup time ac29ef67f chore: fall back to 0.0 if min-pair returns None 4a7140c05 chore: Update bybit dry-liquidation calculation cd971cff4 test: improve liquidation-calculation test 538139ef3 chore: fix incorrect docstrings 8bd4926c2 feat: add Min Stake to list-pairs command a9195c8ff chore: remove pointless else 93c8a1182 fix: update _rpc_list_custom_data to add all custom data only if key is not provided aec496a73 fix: update _rpc_list_custom_data with proper typing and custom_data collection loop 3371bad50 test: initialize exception for mock 64e27637d test: adjust test for raise-exception behavior ee4f05a5b fix: have download-data hard-fail if it times out 6636a2fda docs: improved adjust_trade_position sample 754936d25 chore: improved backtest method wording 4a3c45af2 chore(deps): fix dependabot missing the bump of 2nd jinja2 reference 29fdbc8f7 chore(deps): bump jinja2 from 3.1.5 to 3.1.6 in /docs 466c21e9f chore: update pre-commit hooks d461d6f8e fix: spot data is in microseconds 53f68a383 chore: let BaseException pass in binance 76d43782d chore: fix typo in exception f785f9ff0 chore: use log_has_re for test log assertion 912801120 chore: update pre-commit hooks 3dd7f7f17 chore: improved log messages for partial filled entries 7665d3d1f docs: add has_open_orders to trade object documentation e055feb1d chore: update test_process_trade_creation test dfe698209 chore: change log level of get_valid_price log from warning to info ad2aef09c chore: fix format facfdfd85 chore: add price in execute_entry logs 1bba2a5f2 chore: add a warning log if custom_price_max_distance_ratio change the price ef239b8d0 fix: update datadir when exchange is changed for an endpoint 055c56edf chore(deps): bump ccxt from 4.4.62 to 4.4.64 243a91a14 chore: bump types-requests in pre-commit 281bd69fa chore(deps): bump cryptography from 44.0.1 to 44.0.2 e21aedfb7 chore(deps-dev): bump ruff from 0.9.7 to 0.9.9 bd5f02a8d chore(deps-dev): bump isort from 6.0.0 to 6.0.1 91438affc chore(deps): bump fastapi from 0.115.8 to 0.115.11 1548fdfca chore(deps): bump python-telegram-bot from 21.10 to 21.11.1 4bebb2047 chore(deps): bump mkdocs-material in the mkdocs group 3fb4524c5 chore(deps-dev): bump pytest from 8.3.4 to 8.3.5 in the pytest group cdd1273ed chore(deps-dev): bump types-requests in the types group 717f17a9b chore: fix mutable defaults bug 11763e8cd chore: improve clarity ccfc69028 feat: add SQN to backtest result e1f670293 feat: add SQN calculation as backtest metric 13e9f8a98 fix: use initialMargin over collateral for position wallet 3070e3733 docs: add plain merge to known common mistakes c50edafac feat: add record_version to trades table 7ccac492b fix: max_stake_amount should not include leverage 5b9102f9a tests: Use higher limit on x86 macos to avoid random fails f447de484 chore: bump version to 2025.3-dev 36eeac365 chore: fix merge mistake 9fbc413d4 chore: start downloads in 1m batches ad96fa0f5 chore: improve download-trades-fast structure f2283410c chore: improved logging, don't ignore end date ceff757bc fix: formating a1a5cab04 fix E501 8182947f2 fix 2231ba3f0 fixes: ruff 552575c7e fix: key in _rpc_list_custom_data d0979d560 fix: endpoints 6931b81da test: add test for binance specific history_id 92405f94e test: further add tests for public trades dl 3e1daf50b test: add test for download_archive_trades 0caeb6b5f chore: improve types 008f87528 chore: improve edge-case bug 8b42c2558 feat: the "minimum" date limit applies to trades, too 40f56e43c test: add test for get_daily_trades e9c961802 test: add test for trades zip url 948b6e041 test: add initial test for download-trades 80d776af5 test: ensure tests use old method e62d84e35 refactor: pass candle_type 098a6551f chore: add documentation link for binance.vision 6e15fd0da feat: trades-fast download - improvements 1f2dadc33 fix: edge-case problem c3b7a2b38 feat: use download-data fast if necessary 3746305b5 feat: further work on download-trades-archive af3f9d5a7 feat: rough draft of public trades data 9207cf501 fix: returned object fc1c3a8f9 fix 83e56a09c fix: api url and rm key 47613b1cf fix: no tradeID only returns open trades ef3a7d5c9 feat: api_server and client supporting list_custom_data 705d1e4cc chore: remove freqAI per-line-ignores 5b3f348bb chore: Don't use method call in function header aa81c75be chore: Further reduce mutable default usage 6b889814a chore: Fix further "mutable arguments" call 1ade11f00 chore: Fix a few freqAI mutable defaults ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 1 year ago

FreqAI - 2025.2

Highlighted changes

  • Add support for “live” charts (without previously downloaded data) in webserver mode.
  • Rest client now supports custom timeouts.
  • New callbacks adjust_exit_price() and adjust_order_price() to complete adjust_entry_price() behavior for exit orders.
  • Implement workaround for memory leak when using binance.

Sponsors

You can sponsor the work on freqtrade via the following links:

  • froggleston (FTUI) https://github.com/sponsors/froggleston/
  • robcaulk (freqAI) https://github.com/sponsors/robcaulk/
  • xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

New Contributors

  • @arenstar made their first contribution in https://github.com/freqtrade/freqtrade/pull/11117
  • @Vaadasch made their first contribution in https://github.com/freqtrade/freqtrade/pull/11306
  • @Cygra made their first contribution in https://github.com/freqtrade/freqtrade/pull/11418

How to update

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

docker-compose

bash 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 ``` 186bc4d27 chore: bump version to 2025.2 efe0275ae chore: update pre-commit hooks ba98f1a9b chore: update pre-commit author to freqtradeBot 5380b2272 chore: update leverage tiers author to use the bot email 338bc7c67 chore: Bump docker image to 3.12.9 0f5cb87c6 chore: update pre-commit hooks 86a524017 chore: update pre-commit hooks 7b7c8d937 chore(deps): bump ccxt from 4.4.61 to 4.4.62 fde3547db docs: add warning about duplicate symbols in coingecko 8085d8cd0 chore: update prebuilt pyarrow binary f78f52f78 chore(deps): bump humanize from 4.12.0 to 4.12.1 ac70d559a chore(deps): bump pyarrow from 19.0.0 to 19.0.1 685e575f6 chore(deps): bump cachetools from 5.5.1 to 5.5.2 164026779 chore(deps-dev): bump ruff from 0.9.6 to 0.9.7 d5585dd5e chore(deps): bump ccxt from 4.4.59 to 4.4.61 90e2db708 chore(deps): bump mkdocs-material in the mkdocs group 64303e90d feat: Be more verbose on startup regarding what the bot is doing 5e7d88373 fix: typo in strategy-customization.md 840f074c6 chore: simplify rpc imports 0408ad109 fix: exception when rounded price is nan e262110c3 test: add test case for #11414 09b9ff2c6 fix: provide default for exit reason e76574b79 docs: update documentation for `adjust_order_price()` 08587d826 test: Long adjust-exit-price test 584b84a94 test: extend backtest-detail tests for exit_adjust 44182783c feat: don't limit backtest calls to entry orders 90f52ba8a test: add integration test for adjust_exit_price f8f10f27e chore: improved variable naming 7f393252e docs: update bot-basics with new callback dd8938ced test: add test for adjust_order_price and adjust_entry_price collision 67ce9a41f feat: implement load error when colliding methods are decected 756bada57 feat: Add "replace-exit_order" to backtesting 25c003601 feat: Update strategy template 3b03fae93 chore: improve variable naming 0f9e61371 feat: Implement live "replace_exit_order" functionality 1970cc65c feat: add "is_entry" attribute for order_replacement 8d74e8b8d feat: add adjust_order_price callback a45d941b1 chore: update pre-commit hooks 6fc81fa9c chore: update pre-commit hooks 89cd46d2e test: adapt test for "evaluate exit signal once once" behavior f287d0ad2 chore: improve variable naming 93e3bbea5 fix: only evaluate the same exit-reason once 6be25bd86 chore: simplify IF condition 63ca07aea chore: bump cryptography for armv7 f54b7d56d chore(deps): bump lightgbm from 4.5.0 to 4.6.0 382befb05 chore(deps): bump cryptography from 42.0.8 to 44.0.1 d4900c28e chore(deps): bump psutil from 6.1.1 to 7.0.0 f12964f54 chore(deps): bump humanize from 4.11.0 to 4.12.0 c339853ec chore(deps-dev): bump ruff from 0.9.5 to 0.9.6 3924514d2 chore(deps): bump ccxt from 4.4.58 to 4.4.59 aae92c29d chore(deps): bump tensorboard from 2.18.0 to 2.19.0 568306337 chore(deps): bump scipy from 1.15.1 to 1.15.2 5ab993b6d chore(deps): bump websockets from 14.2 to 15.0 9584f6c54 chore(deps): bump mkdocs-material in the mkdocs group 4a190bd13 chore(ci): Move permissions into job cf6a89e16 chore: use zizmor to scan actions for security problems a29c5322a chore(ci): Improve CI security 4e2d2639a fix: dockerfile.armhf should pin numpy<2 a54f895ea chore(ci): don't persist credentials ad55615ec chore(ci): Improve structure in devcontainer build c8aff5687 chore(ci): don't persist credentials 02c2e451b chore(ci): don't persist credentials 84d49a0f5 chore: disable all permissions on dockerhub permission update ci 22b096be2 chore: Improve security of workflows b285cdd49 doc: add timeframe to 101 strategy so it's "auto-runnable" b2881affc fix: accidental modification b3e0b4215 test: add test for backtest-from_json 314c017dd feat: enable trade.from_json to import backtested trades f14c4ebcc chore: improve code structure in logging module 7d19e0e69 chore: update pre-commit hooks 7caa22c7a chore(deps): bump ccxt from 4.4.52 to 4.4.58 967ad2f8f chore(deps): bump cryptography from 42.0.8 to 44.0.1 d00f82a64 chore: remove deprecated image form CI matrix 2f83f07fd fix: use constant for metadata number mode 78d213a8a test: add test coverage for unwatch_ohlcv 44d798239 feat: unwatch_ohlcv - improved error handling 08e1a616a feat: use unwatch to stop watching a websocket ae068bd6f chore: fix formatting 8394826d6 docs: improve wording in trailing stop docs a0d805591 chore: update pre-commit hooks 3deffb57c chore: update ta-lib pre-built binaries 0b4a6e7e1 chore(deps-dev): bump mypy from 1.14.1 to 1.15.0 d795af592 chore: bump sqlalchemy in pre-commit config 21b8982e5 chore: ta-lib bump to 0.4.38 428ca972e chore(deps-dev): bump ruff from 0.9.4 to 0.9.5 3913e4fa9 chore(deps): bump sqlalchemy from 2.0.37 to 2.0.38 e29624207 chore(deps): bump xgboost from 2.1.3 to 2.1.4 82001d1e8 chore(deps): bump ta-lib from 0.4.34 to 0.6.2 137bfc2b5 chore(deps): bump mkdocs-material in the mkdocs group a8ae76757 fix: Hyperopt-magic - allow parent classes within the same file b9c77124f chore: add typing for hyperopt-pickle-magic f06054813 chore: remove unused method 18ce8af08 fix: validate config when calling pair_history 7f7cff85c chore: use dt_now in backtesting 9a22e5c77 chore: try downgrade aiohttp 2cfb8834b chore: rework docstring of MultiOutputRegressor 013006050 chore: add comment to clarify usage of retrier 2e5715855 chore: update pre-commit hooks b75eb85e6 fix: Calculate liquidation price only once the initial order filled dbb9f225d fix: Runtime error on ohlcv deepcopy 85753be7c chore: Bump armhf dockerversion to 3.11.11 18b35b065 chore: bump dockerfile base from 3.12.7 to 3.12.8 857aeaa9e chore: fix init sequence to avoid risk of "unbound error" 323b9f869 fix(api): only write export when backtest happened a412ff76b chore: update pre-commit hooks 2bfd66d27 chore: use loop_lock for all run_until_complete usages 8cad9c843 chore: add improved exception logging 350407342 fix: random fail on parallel webserver requests 37031ba83 chore: pin sb3 for macos x86 0c35f3a47 chore(deps): bump pymdown-extensions from 10.14.1 to 10.14.3 78bf9bf60 chore(deps-dev): bump isort from 5.13.2 to 6.0.0 3a8c594ae chore(deps): bump fastapi from 0.115.7 to 0.115.8 5f72ed9b3 chore(deps): bump plotly from 5.24.1 to 6.0.0 bee897f5b chore(deps): bump stable-baselines3 from 2.4.1 to 2.5.0 75542cdd9 chore(deps-dev): bump nbconvert from 7.16.5 to 7.16.6 97da78c49 chore(deps): bump torch from 2.2.2 to 2.6.0 d8d35ec23 chore(deps): bump pytz from 2024.2 to 2025.1 86d65f842 chore(deps-dev): bump ruff from 0.9.3 to 0.9.4 973aa6a0c chore(deps): bump ccxt from 4.4.50 to 4.4.52 aaab2a1c8 chore(deps): bump mkdocs-material in the mkdocs group 16924525f chore(deps-dev): bump pytest-asyncio in the pytest group f1f355330 chore: re-add candle-limit for funding fee candles 4c5c054bc fix: since_ms is mandatory 0181e00c1 test: add test for /markets endpoint ecf013dd1 feat: include exchangeID in /markets response 59837ef6a feat: add "/markets" endpoint b42a91d78 test: remove unused parameter 187c8b807 test: add test for "live" mode of /pair_history a807d2d6c test: Add test for /pair_history without strategy fda7b0f1e chore: increment api_version ae42f8d51 feat: api /pair_history - make Strategy optional 6fb74fa16 feat: add "live_mode" flag to pair_history 7dd0f2174 feat: Add "exchange" fields to pair_history e1cc7dcfd feat: allow pair-history from "live" candles 6b3fff6b7 refactor: pair_history should only be available in webserver mode 5d4324dd5 test: update percentChange pairlist test fc0cae21e fix: improve reliability when fetching from "features" 89b6cc89a test: update test for removed manual limits 26af62e4d feat: remove manual ohlcv limit definitions where possible f90cd44a9 feat: default ohlcv_limit to ccxt's features definition 35f7c97c7 test: add "ohlcv_limit" live test d530527f1 test: add test for exchange.features 8af8260b7 feat: initial "features" support 7a17cd781 chore: remove coinbasepro exchange ba244cd2f chore: bump develop version to 2025.2 7d3c8b48d Add some distinction on the trailing_only_offset_is_reached 7d5f02171 feat: add timeout to FtRestClient ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 1 year ago

FreqAI - 2025.1

Highlighted changes

  • Binance BNFCR futures support. BNFCR futures docs
  • Zip backtest results for reduced space consumption and a cleaner results directory.
  • ⚠️Behavior change: Process exit signals even if adjustment or exit orders are already open.
  • Improved calculation of relative “/performance” result.
  • Improved Backtesting logic in combination with --timeframe-detail .
  • Colored Terminal log output.
  • Improved --version output, containing all info necessary to report an issue.

Sponsors

You can sponsor the work on freqtrade via the following links:

  • froggleston (FTUI) https://github.com/sponsors/froggleston/
  • robcaulk (freqAI) https://github.com/sponsors/robcaulk/
  • xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

New Contributors

  • @jerome-benoit made their first contribution in https://github.com/freqtrade/freqtrade/pull/11184
  • @koistya made their first contribution in https://github.com/freqtrade/freqtrade/pull/11237

How to update

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

docker-compose

bash 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 ``` 10eef02e5 chore: bump version to 2025.1 24ebe1a20 chore: update pre-commit hooks 63ca884db chore: remove unused import a6005fde2 feat: simplify traceback display 486a4ed5c chore: remove unused fixture fd4cd11de test: simplify api_ws_test 0e807d4a1 chore: fix typo as identified by codespell de8b3a89f chore: update pre-commit hooks 62e3f408a chore: make some internal fetch-trades methods require since b91deaa0c chore(deps): bump pydantic from 2.10.5 to 2.10.6 152705bc6 chore(deps-dev): bump pre-commit from 4.0.1 to 4.1.0 4a582e5ce chore(deps): bump pypa/gh-action-pypi-publish from 1.12.3 to 1.12.4 5b06db252 chore(deps): bump prompt-toolkit from 3.0.36 to 3.0.50 8e357934e chore(deps): bump cachetools from 5.5.0 to 5.5.1 223ea8ace chore(deps): bump ccxt from 4.4.49 to 4.4.50 567a4f9aa chore(deps): bump filelock from 3.16.1 to 3.17.0 997f914d5 chore(deps): bump pymdown-extensions from 10.14 to 10.14.1 4a9483c66 chore(deps): bump fastapi from 0.115.6 to 0.115.7 319ea1072 chore(deps-dev): bump ruff from 0.9.2 to 0.9.3 33eaa4b53 chore: add bt note to _generic_performance_query cf563c1a5 test: update tests for new best-pair logic 99b2857d3 fix: align profit calculations between best pair and /performance eb24d1125 chore: improve method docstring f9d4d3852 fix: only consider filled orders b01de10ab test: adjust further tests fa4a540f9 test: adjust tests for new performance calculation 4ee875ce2 fix: use properly calculated relative ratio for /entries and /exits 78c71cdf8 refactor: make performance_query work in a dynamic way 1aac8dfa5 chore: align interface of get_overall_performance 33549a6ce fix: add small offset to allow since to be slightly different a0bc3d968 refactor: simplify binance_public_data 8aab8bc52 refactor: improve binance_vision method naming aa595ae8c refactor: extract binance candle url_segment b657e349a chore: remove obsolete comment 77e6b2a10 fix: remove potentially problematic call d3f6227d3 chore: improve ohlcvs interface 2a370aecd chore: ws: make ccxt_object internal 0cfb73b74 chore: add wrapper for ws ohlcvs 867020606 feat: simplify wallet by extracting log 222da034d chore: fix wrong config property in api_server verbosity 63b72fb4e chore: add help-text to --version 7e0882853 chore: Remove unused import d84321634 test: update tests for new --version handling 120194ff1 chore: improved formatting 27a9cbf5e feat: print version info on "-V" calls 08b18b7ff feat: add print_version_info function 3d2876523 chore: update pre-commit hooks 9efa48f2a chore: ensure that logged message actually make sense 4a7a51035 docs: improve doc formatting 7f2e6966a fix: update total_volume calculation to actually reflect volume 1d22cf98c feat: add cost to minimized order json output 03a22186b chore: have backtest exit orders account for fee f4bc956b1 chore: fix type declaration f8f21cfc9 fix: Improve error message for download-data edgecase eb41cc3b0 chore: update pre-commit hooks 952a647c6 chore: add pre-built pyarrow wheels dff308062 chore(deps): bump pyarrow from 18.1.0 to 19.0.0 81b4285d1 test: avoid potential odd timing issues in test 822521136 docs: improve location of "many position adjustment" warning 6f307e1e3 test: add more sleep 588bf357a test: add more sleep 9158a3d7d test: add small wait to reduce test flakyness ffef87f7d docs: improve FAQ entry fc1feb9ab chore: try fix random test failure 0358a4d23 chore(deps-dev): bump ruff from 0.9.1 to 0.9.2 df71670e6 chore(deps): bump ccxt from 4.4.48 to 4.4.49 0a09c6cbd chore(deps): bump websockets from 14.1 to 14.2 152358ee1 chore(deps): bump orjson from 3.10.14 to 3.10.15 d710ea448 chore(deps): bump mkdocs-material in the mkdocs group 36e4842fe chore: remove unnecessary commented line 141286a88 feat: have performance account for leverage correctly 1e2450d5b docs: improved telegram performance docs f773905d8 test: adjust rpc tests for new calculation 2044af24a feat: improve performance query reliability 6bca604bf feat: Add more comprehensive Relative % to performance list 5d3a056ae test: update api_performance test to USDT e9eee11b2 test: simplify api_performance test setup cf5b6e5e2 test: improve test resiliance 5e0ea4801 test: improve test_exit_positions slightly 6b1af9b9a chore: move docstring to the right place e350dbd55 refactor: simplify backtesting class f7f78ad2a test: fix test comment 26983c637 docs: document timeframe-detail potential difference 733cd22de chore: remove bt_open_open_trade_count_candle 1e61aea23 feat: allow in-candle entries 419d5d994 feat: add backtesting support for ignore_buying_expired_candle_after d02b4d4c3 test: Fix detail futures test 5f89708be test: fix long_short switch test 12e0dcd52 chore: update pre-commit hooks 4a6027b43 test: update pair_detail_simplified test e81489807 fix: prevent multiple intra-candle trades a6601ba7d refactor: mark time_generators private 2b4d3b3f1 refactor: extract detail/pair loop to separate generator a326af830 chore: simplify backtest loop interface cbe38c6f4 fix: don't detail-loop pairs if a trade closed within the current candle. 1e1b4239e chore: improve a few typings f5be8fc70 fix: switch backtest loop to have linear timing 807fcffda chore: move more logic to generator 96cea99d4 refactor: move index-handling into generator 14acc6609 chore: remove unused statement 8029729ab refactor: move more stuff into generator b525ba85c refactor: extract backtest detail_data_spread to function 6db42f5fb chore(deps): upgrade CCXT from 4.4.47 to 4.4.48 1f0b23c5f chore: fix typo in dataprovider a13feaf49 test: Update tests for short-circuit behavior 2697ac358 chore: stop detail processing once a trade closed be2907acc chore: bump ruff pre-commit version f1c5d4a97 chore: ruff format updates 16ef34822 chore: improve docstring 01ce4e42c chore: update type file name 6addab2ea chore: update sqlalchemy in pre-commit f428e8146 chore(deps): bump scipy from 1.15.0 to 1.15.1 76ab88871 chore(deps-dev): bump ruff from 0.8.6 to 0.9.1 e98785810 chore(deps): bump pymdown-extensions from 10.13 to 10.14 a8dc5339a chore(deps): bump scikit-learn from 1.6.0 to 1.6.1 fb09d4c53 chore(deps): bump ccxt from 4.4.46 to 4.4.47 538c8c980 chore(deps): bump orjson from 3.10.13 to 3.10.14 0e5f072f6 chore(deps): bump pydantic from 2.10.4 to 2.10.5 ca6153715 chore(deps): bump sqlalchemy from 2.0.36 to 2.0.37 2a1144c82 chore(deps): bump stable-baselines3 from 2.4.0 to 2.4.1 ffaf648d5 chore(deps-dev): bump pytest-asyncio in the pytest group b1c5e0458 chore: use uv pip for CI runs cf1e8934a chore: Update CI to use uv 153e2f962 chore: use UV action venv setup 1b28be974 test: update tests for new behavior 5bfd503cd fix: allow setting verbosity via Environment variable c90cfa896 test: never have more than 1 open order at a time. 1a59ecf98 docs: update callback docs for new behavior 711e68019 chore: improve log on adjust_entry_price cancels e5d508a50 docs: update adjust-entry docs about partial fills 75fb2a0c8 fix: catch error when getting the last candle fails 092a9ff5d chore: fix error if precision.price is None dc7246413 chore: add futures only exchange variants to "bad exchanges" a6e44c9e4 chore: update pre-commit hooks cb0fc9c1a fix: don't show "**" for /status table 09c272515 chore: update pre-commit hooks c266490ee fix: Try fix api_log test error in unfortunate timing scenarios ecd2d013d chore: remove hdf5 from data comparison fa306b090 feat: Add create-command-partials to CI to ensure we remain aligned 6ca5d42c8 chore: add Script to auto-export create_command_partials 353e3da2f docs: add "main" commands section 054bccf24 docs: update Readme.md command output 96490b7b7 docs: use includes for command help output fc9ea6d15 docs: improve hdf5 deprecation message 817707711 Remove binary hdf5 dependencies e2bdf2a97 tests: fix remaining hdf5 occurance 5bb109884 test: remove hdf5 testdata 6760d4476 tests: Update tests with removed hdf5 handler 1f0d30419 chore: remove hdf5 from supported data handlers de2b8dcfd feat: remove hdf5 dependencies and install logic 0e5a88bf9 feat: remove hdf5 datahandler, raise exception when still configured a19872d64 chore: clean up running event loops after test ee63e51cc chore: remove deprecated sklearn function call 489440fbc chore(deps-dev): bump ruff from 0.8.4 to 0.8.6 af673f568 chore(deps-dev): bump pytest-asyncio in the pytest group 22905baf5 chore(deps-dev): bump mypy from 1.14.0 to 1.14.1 999fc2208 chore(deps): bump python-telegram-bot from 21.9 to 21.10 767a14537 chore(deps): bump scipy from 1.14.1 to 1.15.0 4ef5a878d chore(deps): bump ccxt from 4.4.43 to 4.4.46 70a53d68a chore(deps-dev): bump nbconvert from 7.16.4 to 7.16.5 4297c5830 docs(freqai): point link anchor to right section c100009b0 docs: reference stable freqai docker images 93c2d6a7a tests: Add test for get_ohlcv to ensure behavior is and stays correct 649739b8e test: fix test failure due to missing commonCurrencies attr f109d08bd tests: add test for exchange_ws cleanup error 6b96d4d14 test: improve exchange_ws tests 98e49ab18 fix: add workaround for missing kraken balance mapping b70d02e46 test: add test for kraken balance problem 4f1bf6a1f test: add test for kraken balance response parsing 5f0df2c1d chore: Improve websocket behavior with unsynched time ece7b0d9f feat: add format_ms_time_detailed view e620f55cd chore: improve variable naming in exchange_ws 08fa82dc5 test: adjust test for new value unit a9483edaa chore: convert _pairs_last_refresh_time to milliseconds 2fe9ceab8 chore: improve variable naming f6bf6c52c chore: use dt_ts to convert timestamp 5f5e51326 chore: modify orderflow docs re. stacked imbalance changes 7c148a012 fix: remove superfluous territory return statement 452358541 refactor: simplify some date calculations 3682fcba4 fix: link error in strategy-customization 046e1534f chore: Improve exchange_ws debug logging fd7272ba6 chore: fix unterminated string literal in test runner 12adbeb7f fix: don't sort stacked imbalances, return empty list if no found... 11976f11b fix: Improve stacked imbalance detection in orderflow converter ea96abecd test: Add comprehensive test for stacked_imbalances with multiple price entries 558957887 test: Update tests for stacked imbalances returning lists fb4aae080 refactor: Modify stacked_imbalance to return list of prices instead of max price 471df70f6 test: add test for improved safe_wrapper behavior 90b1e15eb feat: Skip trade deepcopy if the callback isn't implemented 9c825fb15 chore: remove unnecessary verbosity of offset filter 676cdab9a docs: improve adjust_entry_price documentation c4b34ea60 fix: Improve MultiMetricHyperoptLoss af0d719b2 chore: prevent error exiting when an order is already open and due for cancelation 0866b8fdc chore: bump py_find_1st to 1.1.7 b6f6afa15 chore: update pre-commit hooks d23c3120e Clarify trade.stake_amount as combined stake for all adjusted orders 9beae3d16 fix: download-data progressbars should work properly 0919d4c27 test: improve integration test case f4c004347 chore: backtesting should avoid unnecessary logging 0f5ef03dc chore(deps): bump orjson from 3.10.12 to 3.10.13 c1e032a4f chore(deps): bump pymdown-extensions from 10.12 to 10.13 c46051157 chore(deps): bump questionary from 2.0.1 to 2.1.0 8624a9c30 Revert "chore: windows CI -> -n logical" 1f6a0dccd chore: windows CI -> -n logical 99ba48987 chore(CI): run windows tests in parallel ea00260e7 chore: bump version to 2025.1-dev 10969b713 chore: improved error handling a4f3fe70c feat: add "no-color" argument to general arguments 3903e4455 chore: remove unused variable in hyperopt 0f2d3f263 test: Update tests to use rich Handler 3ed145416 chore: reduce traceback verbosity b6867d956 feat: improve Rich traceback rendering 392486bc1 feat: Add rich traceback output dfcf4ba7f chore: Improved types for rich_handler 0f4330a6b feat: properly set color_system e5da4d4be chore: move print_colorized to transfer to config before logging setup 44d9cb85a chore: don't change time color for improved readability 59f3d88c5 feat: allow disabling color output 3e5ab8549 feat: add ftRichColorHandler af2865613 Add rich as loghandler instead of stdout 10063b205 chore: refresh liquidation prices at regular intervals 6c94b7517 chore: improve zip loading errorhandling 7a619594f chore: improve zip file loading interface 0682d12fe feat: get_backtest_market_change should support zip files 1119ee1cd chore: load zip reusability 8fe1f3cb9 feat: load backtest data via API from both zip and json 6121fb30a chore: improved error-message when exportfilename wasn't found a40b2816a chore: greatly simplify analyze_commands bb372e380 test: clean up optimize_report tests aa99baf26 test: update a few tests 606013a69 chore: import ZipFile directly a88675b69 test: improve test_metadata_filename test b08a93a28 feat: Detect both .json and .zip backtest results 2768155e7 fix: use .json metadata file 9f2142135 refactor: move load-analysis-data logic to btanalysis file 258b85a86 feat: load backtest-analysis-data files from zipfile b1bf56cfa chore: use exception logging for exceptions d2d6c6fa8 feat: load backtest-results from either file or zip file b1fc271a7 chore: Update storage to store backtest results as zip file 37bbb0e0e refactor: move joblib_writer to use file interface 2a9a3e020 chore: move joblib export to bt_storage function cd2520603 refactor: move json file dumping to separate method cefacf4a6 chore: fix typo causing double negation c9aa202be test: add additional Test case 84e5a9521 chore: improve left open trades handling 48b0ffac0 chore: fix using non-existing attribute d37e23f68 feat: implement order replacement for backtesting 995390319 test: close mock order for funding-fee test 48506f294 fix: always cancel al open orders if the order ain't identical 0a27a7ad3 docs: fix typo daf655cd2 docs: add documentation for BNFCR futures 44c29aa99 test: update tests for new calculate_fee_rate logic 2a45ff08e fix: update "calculate_fee_rate" to use get_conversation_rate 7b1ea81a2 chore: use safe_value_fallback to get currency rate d55957271 fix: exclude balances matching trades in futures mode 2c1400a9f test: update trading mode test for binance cross support 85af1c91a feat: enable cross futures on binance dcc8c8800 feat: conversion_rate should map both sides 5a24292d3 chore: update config_schema c492dcc7b feat: make proxy_coin dynamic (config setting) c5f89f34f tests: improve rpc_handle test 1ef4b063e test: adjust test to reflect that futures uses "free", not "total" d05cae10f test: remove duplicate test assertion 478387531 feat: Updates for proxy coin functionalities 0b9cca27e feat: add "get_proxy_coin" method ca9589b2e chore: reduce pointless verbosity of cross liquidation update e7b1a7e49 test: add test for proxy coin conversion c112b84d0 feat: support dynamic proxy coin conversion 23d6c362c feat: cancel orders of both sides in one go 41a548d62 chore: move logging to "handle_similar_open_order" 16d2dbc9d on backtesting try to create exit orders also if there is open order without position yet, to allow entry order adjustment 73d53579d remove Optinal property of replacing param in cancel_open_orders_of_trade 4717f716d fix test_dca_exiting 02a089cb6 fix test_dca_order_adjust_entry_replace_fails 8f15bce68 fix test_check_and_call_adjust_trade_position 0a51006da update process_open_trade_positions to handle position adjustment for initial entry order (before filling) 4c365f6af update test_dca_handle_similar_open_order a49b0a922 enhance check_and_call_adjust_trade_position logging 0c79c32b0 add test_dca_handle_similar_open_order (wip) 12424aef6 improve handle_similar_open_order description 091fe6be8 improve handle_similar_open_order log message 9432865bc updated test_dca_order_adjust: if an exit order is open, a new one with same price, amount and side can't be created. c0754587b add handle_similar_open_order for execute_trade_exit 7ecf1b18c consider price in handle_similar_open_order 9b8e485f0 fix handle_similar_open_order operator 5c9ec3760 abort execute_entry if similar_open_order found 4dc20effb fix codespell 084d951ff mypy fix for handle_similar_open_order 092fbe25b enhancement on cancel_open_orders_of_trade 7d5d84763 add handling of simital open order 95f709ae1 fix formating 43b2ec1e3 replace existing entry order before placing new one in execute_entry acb394177 fix typo for list type c01996d1d fix tests related to position adjustment 3d6e186b3 allow position ajustment if position open 584bbd93e tests: fix test to expected call count a194ef0b7 tests: revert accidental removal of leverage test case 476960b5b tests: have apply different fix to exit_positions test 69f0ea519 remove unused import 3fea958fa test cleanup 5efc2a09e restore not having open order check before trying to retreive an exchange order 9dd887f2f update exit_positions, add trade.has_open_position check before trade handling, update comment bfaf9e690 add trade.has_open_position check to stoploss on exchange handling, remove deprecated comment beebc1743 simplify has_open_position property, restore process_open_trades_positions comment bb4db022f remove unused properties 418356f38 fix codespell c6d7ae9d2 fix ruff format 0d3ab37eb fix test_trade_custom_data and test_backtest_results 6b8ca7217 flake8 fix and cleanup 2811a470a handle pre existing open order cancelation on trade exit 1fccdd8cd fix test_exit_positions 33b421014 remove irrelevant trade.has_open_orders conditions 730bef292 add comments and logs for failing test, create untied_assets propertyto Trade 79ce1ddae rollback on process_open_trade_positions. Adjust position only if there is no open order, change will be made on other PR 714822c93 add ETC/BTC pair to conftest get_markets fb3787173 fix test_exit_positions_exception 910b3ad53 allow adjust trade position, even if there is an open order 05cf4cab8 add has_open_entry_orders property to trade 6752c3e28 add has_untied_assets, replace one has_open_orders condition by has_untied_assets in exit_positions faeda2a16 fix mypy error on has_open_position function 3d67e0893 edit backtest_loop to check exit if trade has open position ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 1 year ago

FreqAI - 2024.12.1

Highlighted changes

  • Fixed critical bybit API connection issue

Sponsors

You can sponsor the work on freqtrade via the following links:

  • froggleston (FTUI) https://github.com/sponsors/froggleston/
  • robcaulk (freqAI) https://github.com/sponsors/robcaulk/
  • xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

How to update

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

docker-compose

bash 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 ``` 13050f0d6 chore: bump version to 2024.12.1 61e5b4755 chore: Bump ccxt to 4.4.48 ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 1 year ago

FreqAI - 2024.12

Highlighted changes

  • Improved download data performance for binance.
  • Support for more complex dry-run wallets, simulating additional balances (these will not be tradable).
  • Allow passing config lists via environment variables.
  • Improved Rest API documentation.
  • Telegram: support for Group chat threads / topics.
  • New /tg_info command to simplify getting chatid / groupid and topicId.
  • Deprecation of hdf5 as dataformat (will be removed with the next release).
  • FreqUI:
    • Enhanced dashboard TimePeriod charts, adding aggregated weekly and monthly lookbacks across bots.
    • TimePeriod charts now show relative profits.
    • Backtesting view → new MarketChange view.

Sponsors

You can sponsor the work on freqtrade via the following links:

  • froggleston (FTUI) https://github.com/sponsors/froggleston/
  • robcaulk (freqAI) https://github.com/sponsors/robcaulk/
  • xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

New Contributors

Includes the ones from 2024.11

  • @14790897 made their first contribution in https://github.com/freqtrade/freqtrade/pull/10902
  • @gaardiolor made their first contribution in https://github.com/freqtrade/freqtrade/pull/10839
  • @emmanuel-ferdman made their first contribution in https://github.com/freqtrade/freqtrade/pull/10943
  • @smith558 made their first contribution in https://github.com/freqtrade/freqtrade/pull/10944
  • @andrasmining made their first contribution in https://github.com/freqtrade/freqtrade/pull/11141

How to update

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

docker-compose

bash 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 ``` 9e0b9962c chore: bump version to 2024.12 0032f9a96 chore: bump ccxt to 4.4.43 5ca31508f chore: remove "former huobi" terminology a58fde367 chore: remove "former OKEX" terminology 3f41910eb docs: add myokx special case documentation 9a201566f chore: fix typo in telegram help message a180cb95d chore: Improve list-exchanges output fbb757fa2 chore: may myokx to okx - it's just an alias for european users 6ee38adbb fix: round open_rate to tradable precisionThis prevents odd display issues with 16 decimals in case of multiple entries. 6f3dca44a fix: apply hyperliquid market rate fix to fetch_orders a4ae5b74a chore: add log_response after average modification fc970a1af chore: Remove pin of matplotlib b5748fee6 docs: add FAQ about resetting a bot's database 2ad1fbd77 chore: update pre-commit hooks 1ca594bbc chore: show "total" profit if necessary e66611c96 chore: fix 2 minor potential bugs c5a95dc68 refactor: reuse logic from get-status for get status-table d7ccbfef2 test: improve test accuracy 79f35bb55 chore: add docstring to rpc_status_table 4963a9668 chore: fix typo 5750d0589 feat: deprecate hdf5 as data storage 1810a911d chore: update chatID to be identical throughout docs. 51ae0f037 chore: check for update.message being present d73f01701 chore: reduce verbosity for topic_id wrong check 010b28267 docs: document `/tg_info` command 6ef8291b2 test: add test for tg_info, update chat_id to be not 0 b820810af hyperopt-list --export-csv command stake currency fix cef21860e feat: add _tg_info endpoint for easier information gathering 59b1460e3 Adding drawdown information for hyperopt-list --export-csv command b75ac1243 docs: document group-topic-id 7092edfe4 chore: update pre-commit hooks 066333501 chore: update config_schema with topic_id attribute 6cc0c2be9 feat: add support for "topic_id" in telegram notifications 4a256ed7c chore: failed messages shouldn't return the wrapper but None 2a526a815 fix: don't over-state stake-amount on first entry 0a8165888 test: add test to confirm behavior in #11135 5ac95a050 test: close mock order for funding-fee test cf4c29a57 chore(deps): bump technical from 1.4.4 to 1.5.0 9405f415d chore(deps-dev): bump mypy from 1.13.0 to 1.14.0 9d022180e chore(deps): bump jinja2 from 3.1.4 to 3.1.5 ed3367244 chore(deps-dev): bump ruff from 0.8.3 to 0.8.4 b8b69eecb chore(deps): bump ccxt from 4.4.40 to 4.4.42 65acd5d82 chore(deps): bump urllib3 from 2.2.3 to 2.3.0 4d6732cd1 chore(deps): bump psutil from 6.1.0 to 6.1.1 dc5942115 chore(deps): bump pydantic from 2.10.3 to 2.10.4 c14492a6c chore(deps): bump mkdocs-material in the mkdocs group 07682c396 chore(deps): bump astral-sh/setup-uv from 4 to 5 503305cbd fix: properly pass timerange to data-download 04813e452 Change unavailable "max_drawdown" key b50d9f5c5 Fix KeyError: 'max_drawdown' in jupyter notebook 40cb70fca fix: one-side pairlocks not showing in UI 0b0bbd4c4 chore: improve comment wording 4704f2b08 chore: fix blosc version selectors f9bd11f6f chore: blosc2 only supports python 3.11+ 0d73e961a chore: pin blosc2 for raspberry builds 66380566c Update docs/stylesheets/ft.extra.css 8cb69e4d5 test: Update test for new liquidation price precision rounding 8ee2c849b fix: round liquidation price to precision in a different spot 564d87486 chore: improve typing d38fcd2db Fix missing EOL 06e20b38b Add params to REST API table description, fix first column width c4b39a4fb docs: add suggestion to prefix all urls with base url. cdcca3da1 chore: update pre-commit hooks 44d1f169c chore: type rpc._freqtradebot for improved DX d805ee6f3 chore: improve type safety ed2427852 test: adapt starting capital tests for tradable_balance_ratio 5af894047 fix: starting balance should include tradable_balance_ratio 609893f7e chore: update pre-commit hooks 3f795a891 chore: improve logic for live wallet update a5907db5d chore: update pip-install command for windows ci ad7b70a35 Add more detail to the REST API endpoint docs c8649a77d chore(deps-dev): bump ruff from 0.8.2 to 0.8.3 d780d56b9 chore(deps): bump janus from 1.1.0 to 2.0.0 2587b549a chore(deps): bump uvicorn from 0.32.1 to 0.34.0 dd805c4c2 chore(deps): bump scikit-learn from 1.5.2 to 1.6.0 5cd1892de chore(deps): bump matplotlib from 3.9.3 to 3.10.0 f575e56e4 chore(deps-dev): bump pytest-asyncio in the pytest group af7974add chore(deps): bump pypa/gh-action-pypi-publish from 1.12.2 to 1.12.3 685811ef6 feat: update backtest_api with new storage interface 12ae36e99 test: use tmp_path instead of testdatadir for writing abfe68376 test: fix tests data pollution a1ab8de59 test: Update tests for new bt storage method b04c5aec8 refactor: move backtest "storage" logic to storage file b862927c8 chore: don't exclude tests from pyright 5744e16a0 refactor: use 1 structure to save analysis signals 11f0a5903 docs: slightly improve position adjust doc wording 5f947a86c docs: improve ordering in adjust trade position callback docs d0c5d614f docs: add note about incompatibility between orderflow and freqAI 1e74aa308 chore: bump ccxt to 4.4.40 f54a14191 fix typo b54d8c53a add warning about loose logic 016cabb7b chore: simplify imports 9129266f5 feat: greatly improve performance of orderflow by not using apply e8376d5b7 feat: add timeframe_to_DateOffset cc7b1a564 chore: clean up install_windows call f11fe14cd chore: remove system mode, set path globally 219e6b420 chore: Try using uv venv creation 3a6ef8c34 chore: use link mode for UV installs 4f318a598 chore: uv - different caching f978a5c75 chore: uv - different caching f378e1075 chore: link mode copy 30909d13b chore: uv: glob 8cd03c962 chore: uv - enable cache 8f617d01d chore: further uv tests 569ac2bc5 chore: move uv work c1be01449 chore: package name lowercase ?? 7d1ac0248 chore: only binary ... aa8e504ef chore: remove non-existing UV argument 6963141eb chore: fix aliasing 3295b1c8d chore: try using UV for windows runs 0159d25e4 chore: add missing dev-deps to pyproject.toml 8cf3c7b82 chore: use FtPrecise for stake_amount_filled calculation c00b248d1 Add initial_state option to FAQ d2b4d1e18 add more explanation regarding reducing position partially 467c0dfff chore: update pre-commit hooks 34835752f chore: improve typing in percentChange Pairlist b9aa78b98 fix: crash in PercentChange pairlist d8fa782f1 test: Add test with faulty behavior f3d7b249b test: Improve wallet tests 097836d19 feat: improve logic for liquidation price calc e9cf0a71d chore: update pre-commit hooks fe9d1a053 chore: bump pre-commit dependencies 6b1ac499b tests: more tests for cross wallet 0fc0b2a1b test: add test for cross balance logic 6887ed4bf feat: add cross margin balance logic 8cb82df05 chore: simplify dry_wallets call 678821467 chore(deps): bump pydantic from 2.10.2 to 2.10.3 f1fabb07b chore(deps): bump fastapi from 0.115.5 to 0.115.6 8aea01545 chore(deps): bump ccxt from 4.4.35 to 4.4.37 83471228e chore(deps): bump python-telegram-bot from 21.8 to 21.9 e97a647b5 chore(deps-dev): bump ruff from 0.8.1 to 0.8.2 f5dceb0b0 chore(deps): bump mkdocs-material in the mkdocs group d4fbdeee9 chore(deps-dev): bump the types group with 2 updates f529cfe8c chore: fix wrong return typing 4d36aaff3 feat: convert get_valid_pair_combination to generator f07aec457 chore: remove unnecessary imports d898c80e6 test: Add test for get_conversion_rate 2ff0abc6e refactor: conversation rate retrieval to exchange class 0276e65f3 test: update rpc test for new behavior 4cd8e6b44 chore: simplify rpc_balance method by relying on exchange cache 58357a074 chore: calculate total_stake only once d0223e6f4 chore: simplify dry-run wallet update 142ea68dc chore: fix oddity of price_to_precision 654d2ab63 fix: Round stoploss_dist to price_precision ae1baf578 test: mock price_to_precision for liquidation calculations 3c88bdc60 fix: round liquidation price to price precision 6d698e584 chore: return 0 total balances 193b98934 chore: Be more precise with binance account limitation 8dc322d7f chore: don't allow negative stake amounts eee5d710e chore: patch torch all the time - 10b5d5e56 docs: add "list parsing" logic to documentation 934bcf253 test: add tests for list parsing 0683ba3a5 feat: limit environment-variable json parsing to lists 98e0a5f10 chore: remove unused arguments in loss functions fb9e11b7b chore: improve type safety e77ca024d chore: improve naming, don't duplicate column list 63f8217cd chore: ensure exif-data is removed from images 9f5cb3a07 chore: add exif-stripper to ensure exif data is removed e09d1b42f chore: eliminate duplicate trades data grouping 267d9333a chore: remove pointless, very noisy log message. ab39ac29e fix: ensure data type is maintained when data comes from cache. 6c25feabf tests: assert type of orderflow object 171157c10 chore: further simplify orderflow code 3137d7cf2 chore: remove unnecessary config alias 6ab528748 tests: Update orderflow tests 621dfc136 fix: Improved caching 9d07f5dc2 chore: reduce orderflow code duplication 48dd86bd9 chore: use `.at` for assignments 487958289 feat: use dataframe.at directly to avoid intermediate series 6584f86bc test: add Spy to improve test 82d517fcb test: improve orderflow test ff371c43e tests: add test to ensure caching works 0bf0e1808 chore: add todo for future cleanup 6be5947f6 chore: Move local Import out of the loop 1d0702e14 chore: update pre-commit hooks 298ce335b chore: eliminate duplicate trades data grouping e04f630f4 chore: further improve typing in orderflow 7dfee16e2 chore: improved logic ordering in orderflow method d6c21e2af chore: orderflow: better typing ebae0a724 chore: improve typing of new functionality fe834f00a fix: import causing long startup time ad8f62128 tests: Improve hyperopt loss tests 18305a5bf docs: update hyperopt docs to include new argument b0b73bf16 feat: add starting_balance as argument to hyperopt_loss_function 7a8971b9b feat: use get_dry_run_wallet helper c082e5f6a feat: add dry_run_wallet helper ef0703f20 fix: Set timeframe for api calls 57d5a55ca chore: update pre-commit hooks 2f4bd6a0c chore: split pypi and pypi test jobs to enable proper attestation 73f00d2bc fix: check if days is None before conversion cf896bbb5 chore: add the missing space in log ba162e35c fix: invert logic and to or 00e9178d5 chore: bump pyarrow wheel c84114696 chore: Remove non-suppored callback from XGBRFRegressor 6c9e6cc19 chore(deps): bump xgboost from 2.0.3 to 2.1.3 980bfddd8 chore(deps-dev): bump ruff from 0.8.0 to 0.8.1 06327e8f0 chore(deps): bump cryptography from 42.0.8 to 44.0.0 cffcb2b98 chore(deps): bump pyjwt from 2.10.0 to 2.10.1 1da8b6890 chore(deps): bump matplotlib from 3.9.2 to 3.9.3 d53f4fb81 chore(deps): bump pyarrow from 18.0.0 to 18.1.0 02fcd3b48 chore(deps): bump pydantic from 2.10.1 to 2.10.2 7b70a7a68 chore(deps): bump python-telegram-bot from 21.7 to 21.8 5060725ef chore(deps): bump mkdocs-material in the mkdocs group 6bf321866 chore(deps-dev): bump pytest from 8.3.3 to 8.3.4 in the pytest group d7d73364e chore: version bump 2024.12-dev 1510c5517 chore: update ta-lib wheels for 0.4.34 f6e2fcbf1 chore: bump ta-lib to 0.4.34 162c79029 chore: slightly reorganize test file layout 5f363f5c9 chore: properly remove ccxt reference bd5877ad4 chore: add space in log message 71cf7aedb chore: remove unnecessary test-file fa1e0af19 chore: remove direct exchange connection a6199680c fix: freqAI bug causing failures on 2nd backtest d1710826e chore: improved naming 675b996f5 chore: improved naming in test case 21777a580 chore: do more pinpointed imports b1ca00b03 chore: don't shadow pandas builtin methods e2a09f272 chore: Improve naming, remove unnecessary method 0e77c89d7 chore: simplify code structure by moving conditional to parent method 69c1de7e4 chore: move fallback param to config directly 09308e568 fix: increase code reliability by not relying on stake-currency to be in the dict 671821aeb docs: Add documentation for dry-run-wallet as dict 7369331e2 tests: add test for multi-pair dry-run wallets e6e193f25 test: assert tickers is called a 2nd time if necessary 2bb111605 feat: update rpc_balance to fetch spot tickers 37aba6f7d feat: Allow fetch_tickers from different marketsegment 3fc259bb9 feat: add non-trading balance to wallet 15c1a8ee0 chore: reduce dict lookups, reuse attribute b4b6de4e0 test: update test ... 5b0be7e1a feat: support dict like dry_run_wallet 92e64927b feat: allow object as dry-run balance c3032feaf * allow json in env variables 0f53dc1b7 chore: improve log level to warning when falling back to API 19f96d60e refactor: streamline error handling by raising instead of returning bfdbf0248 refactor: rename asset_type to asset_type_url_segment 660863392 refactor: rename fetch_ohlcv to download_archive_ohlcv 8baa0f731 chore: add user friendly warnings 6b18c4f24 feat: cancel uncompleted tasks before return 40f70a1cc chore: warning when fall back to rest API c869dfea3 chore: add more docstrings 39b4263b8 chore: improve comments cf7016b36 chore: remove unused code 1893ac7ed tests: patch thirty party libs from imported location a748d105e chore: remove performance compare script fc307bcf5 tests: fix 03033a068 refactor: use exchange.markets to avoid loading ccxt markets d7555e1f2 feat: support proxy from environment variables 37726fba5 refactor: use CCXT for pair to symbol conversion c4cf582c9 refacotr: default to stop on 404 acc53065e refactor: strip fast download logic into a method cf0f23263 refactor: move download klines count message e2ee7f7b2 feat: fall back to rest API by catching all exceptions 76187d31c feat: more binance fast download timeframes c3bbedbc5 refactor: create coroutines on demand 3c76af9da tests: fix windows ad12a9eb9 tests: setup windows asyncio loop 45bf04664 tests: add performance comparison 2ceda2987 feat: add binance 1s ohlcv fast download 1aa863a92 tests: fix a417698fc tests: fix test and improve coverage e49b5b03d feat: stop on 404 to prevent missing data b5f503dbb tests: binance compare data.binance.vision to rest API 04d363354 feat: implement fetch data from data.binance.vision 4e585c5c3 feat: implement Binance.get_historic_ohlcv detail 867aae868 refactor: move is_new_pair logic to Binance.get_historic_ohlcv ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 1 year ago

FreqAI - 2024.11

Highlighted changes

  • First DEX exchange hyperliquid added to supported exchanges.
  • Position Reversal is now possible if an entry signal in the other direction falls to the closing candle of a trade.
  • New Order property stake_amount_filled - containing the stake amount that filled (might be different from stake_amount ) - and corresponds to what actually was bought.
  • Improved control over Telegram exit messages.
  • Removed MarketCapList Rank limit.
  • Added support --strategy-path with new-strategy subcommand.
  • Improved download-data behavior avoiding forced re-downloads of all data unless explicitly asked for with (--erase).
  • Added Download Data UI, allowing visual control of downloading data (bot must be in webserver mode).

Sponsors

You can sponsor the work on freqtrade via the following links:

  • froggleston (FTUI) https://github.com/sponsors/froggleston/
  • robcaulk (freqAI) https://github.com/sponsors/robcaulk/
  • xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

How to update

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

docker-compose

bash 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 ``` f83a57ae5 chore: version bump to 2024.11 64b50d13f chore: Add typehint for consolidated method 0ada6fbd4 test: Add test case for kraken balance rewards 2c8840b7e fix(kraken): consolidate balances from "rewards" 55247b4e1 chore: bump ccxt to 4.4.35 f31b26b1a tests: Improve sample_order online testing 2b350eb87 tests: improve assert accuracy 88d77658f tests: extract strategy_safe_wrapper tests cbbc38617 docs: update Hyperliquid docs to guide users to use API Wallets 7f9226861 docs: slight formatting improvement 9ff429847 docs: update documentation for expanding pairs 5793216d5 properly account for fee when assigning order.cost in backtesting 7571ae19a chore: update pre-commit hooks 58cde3253 docs: Fix rendering of $ signs 47262b935 docs: align character used for lists 183909f47 chore: kwonly for cached arguments 06bb43b13 chore: add missing docstring 2ed8e1639 chore: move comment to where it belongs e78d5b778 chore: improved typing of rpc class e0c6cc156 feat: add log_responses to /balance endpoint 472132c23 tests: update test for renamed prop 1262aa19e chore: make start_cap in wallets private d9d4c478c chore: update pre-commit hooks db56fc158 test: update test market af8d2490e feat: improve is_futures market check 748233ca7 chore: update imports to prevent shadowing internal exceptions f76108c5b chore(deps): bump pydantic from 2.9.2 to 2.10.1 09f94f7b5 chore(deps): bump stable-baselines3 from 2.3.2 to 2.4.0 98422f847 chore(deps): bump numexpr from 2.10.1 to 2.10.2 8c6283a68 chore(deps-dev): bump ruff from 0.7.4 to 0.8.0 1fd492d83 chore(deps): bump uvicorn from 0.32.0 to 0.32.1 fc63a713f chore(deps): bump orjson from 3.10.11 to 3.10.12 e97b9820a chore(deps): bump tqdm from 4.67.0 to 4.67.1 52f24af70 chore(deps): bump mkdocs-material in the mkdocs group b30c1523e chore: don't use e if not used 6e1c4c2ef test: add test-case for improved error-handling 3b542ea00 fix: add better error-handling for dataloading 5841b56f2 chore: NotRequired from typing_extensions 85ea29c93 fix: pydantic - typing_extensions type-dict f7e979141 chore: simplify imports e0bdc68a9 feat: support all parameters e6cfde211 feat: enhance api_download capabilities 978aaa5c4 chore: improve API server cleanup b67beaa35 chore: simplify progress-tracker typing 19f23106e tests: add test for download_data api method d8a2c59b0 chore: Add proper typing to jobContainer response dea785f56 feat: add progress_tasks to /background endpoint ca42f8690 feat: set progressTasks in Callback correctly de9294d1f feat: return progressTasks in API 91b83519f feat: update types to support multiple progressbars 3eb7f296a fix: callback must be called after parent call f3b0e404f chore: update to new syntax 3ba3d7ffc feat: increment api_version 832fa88f0 feat: api-download-data shouldn't require stake-currency 6e9d349ce feat: api progressbar handling 8bd1524ab feat: pass progressbar into download-data functions 72f563306 feat: add ProgressLike protocol 3b25bdc1c feat(data-dl): Simplify download-data calls 369060951 feat: simplify api_download_data code duplication 43c9d14ac refactor: extract exchangeInit from download-data main 83122fa58 feat: add initial download-data api endpoints f23da7ea7 feat: Add initial data-download api schema 7ef93e92e feat: Log if user has a Gate unified account 945f9f8c4 docs: update unfilledtimeout.entry comment to remove false statement 29b40d27e fix: hyperliquid doesn't provide "average" in fetch_order cd83ed699 chore: add rejected to canceled order states 02fcded36 chore: bump ccxt to 4.4.33 18b0dfe28 fix: add stop_price_prop for hyperliquid 7136c5b41 chore: update pre-commit hooks b637e7dde docs: add "impossible to load" FAQ entry f545274a0 test: add test for bybit classic account behavior e8c122d5e fix: bybit classic market buy orders require price a698ee8bc chore: update pre-commit hooks 1228ffe10 chore(deps): bump aiohttp from 3.10.10 to 3.10.11 fc3db2d29 chore: force pycoingecko to be > 3.2.0 971cdbb91 chore: Simplify coingecko wrapper after update 73adbe9e0 chore(deps): bump pycoingecko from 3.1.0 to 3.2.0 836360963 chore: fix typo in comment d9c7790e8 chore(deps): bump fastapi from 0.115.4 to 0.115.5 aa03b7d9a chore(deps): bump websockets from 14.0 to 14.1 8f9d0019e chore(deps-dev): bump ruff from 0.7.3 to 0.7.4 9e3fae199 chore(deps): bump pyjwt from 2.9.0 to 2.10.0 9fcdea14d Fix typo ee48da2a0 docs: slightly reword data message f47738915 docs: update `VolumePairList` reference 3bb7f7825 chore: fix import sorting 25aecfa9b docs: slightly update download-data docs f821e504c tests: update test for new behavior d66381863 feat: don't force-redownload all data 68712c884 chore: fix line length db9b31cb8 chore: don't use unsupported syntax 7090d4e5b fix: override gate funding fee limit to 90 b2423fa39 chore: remove explicit ohlcv_candle_limit in favor of config option 83b87cb81 feat: add explicit funding_fee_candle_limit for simplified overriding 64803a735 tests: update commands tests to early fail approach 20e77bb5d test: update tests to recognize early failing f11e5128a tests: update tests for new dl-trades behavior bbe13cafc tests: Remove pointless test 1acca87fb chore: early-exit when no pairs are available 2012bb7c5 chore: improve logging sequence 14d384a30 feat: don't auto-delete trades data due to invalid timerange 927f5e2c8 tests: enhanced test for get_trade_history on binance d59bedf97 feat: download-trades-data on binance has limited history c61a71a36 fix: percent_change from candle must provide percentage, not ratio 46f2e693b chore: bump ccxt to 4.4.31 cbc4bb542 chore: use __all__ for hyperopt main export 49e85e068 docs: update migration docs to new syntax e8d724680 chore: improved log msg wording 6d9ab5e9f docs: update more typing wordings a6d513a0e docs: update callback docs to new syntax d565c40f4 docs: Updated syntax 52b4ae5ea Docs: Align to 3.10 syntax 5c4b9e59d chore: add Hyperliquid as supported exchange to docs a02f63dcc chore: add hyperliquid to supported exchange list a3a94e6ea chore: reorder hyperliquid docs, add note about order types c039a45de fix: hyperliquid market orders don't exist and always require price de306de78 chore: update pre-commit hooks 9360c109a docs: fix spelling 5d9af5a7d test: update tests with new formatting 88e0fed4c fix: Consistently format pair rate between entry and exit messages 98dcc08c6 feat: add fmt_coin2 702b50e7e Update exchanges.md - less details on the private key conversion 8f946ea1b Update exchanges.md - further clarify private key best practices ca0087136 chore: adopt hyperopt class to new ruff formatting 31814e8bf Update docs/stoploss.md - clarify that stoploss_on_exchange is only supported for hyperliquid futures 0028df256 feat(hyperliquid): fix a few settings to make spot work properly 9b3764212 chore: fix bad import d7c88a38f chore: update pre-commit hooks 0b0b221c0 chore: update advanced template to new formatting d9b8f4628 docs: update doc samples to use lowercased tuple and dict fbb64db3a define log_queue globally 33d8e67a8 docs: add note about logging f05f173d2 chore: improved docstring for logging_mp_handle 81a622a9f chore: remove unnecessary log messages 67415dd7e chore: improved module docstring 7e96e7af8 feat: add hyperopt log handlers to allow for multiprocessing logging 119b73ead chore: improtve method sorting 365c454da chore: Improve import comments b6d1f9f75 test: update hyperopt tests for new structure 6719d9670 feat: split hyperopt class 62234878a test: update mocks for new layout 851a9a762 refactor: move hyperopt-auto 61d9002cb refactor: move hyperopt-output 84fc5dfcf refactor: move hyperopt-loss interface e1b3ae208 chore: move hyperopt to it's own module 60ec9739c chore: update websocket implementation to new asyncio api c9fb3dfb1 chore: Update websocket imports to use "legacy" client 838b4f4e5 chore(deps): bump websockets from 13.1 to 14.0 13cf6a100 chore(deps): bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.2 4c59bcc1b chore(deps): bump python-telegram-bot from 21.6 to 21.7 057bb31d9 chore(deps-dev): bump ruff from 0.7.2 to 0.7.3 6258c0671 chore(deps): bump ccxt from 4.4.26 to 4.4.29 b3b45458f chore(deps): bump tqdm from 4.66.6 to 4.67.0 54047a98b chore(deps): bump packaging from 24.1 to 24.2 6411dcbf7 chore(deps): bump mkdocs-material in the mkdocs group 1818215fe feat: add MultiMetricLoss to "builtin hyperopt loss" list 1ffceef9f tests: Improve test further be1426a5f feat: create strategy-dir if it doesn't exist 3ebb819ba tests: update new-strategy test to use tmpdir 5f16e534e feat: add support for --strategy-path to new-strategy 8f8e6f16b chore: remove unused mock imports ba06269ed chore: update commented type 3a81b6a08 chore: improve warning wording b7a2efcd6 docs: update docs with new marketcaplist behavior a605d50d6 chore: revert minimum python version check 27d894b8e chore: remove warnings 7b471d59c chore: add warning when max_rank exceeds 250 in MarketCapPairList 0e04f79b6 docs: add macos libomp to docs c141b873c docs: Update install docs 3cc97690a tests: add hyperliquid lev_prep test 5b7f08137 tests: improve hyperliquid tests 00318be59 chore: Convert page number to string to ensure type compatibility 37c00d4ee chore: keep libomp brew install 3300d25e5 feat: enhance data fetching logic with pagination to increase market cap rank limit f443b1426 chore: try removing all brew install steps 96354ee1d docs: fix hyperliquid docs formatting 41b725714 chore: bump ruff target-version to 3.10 12560e983 docs: Add note about custom-stoploss exit reasons 44ff6d50e docs: further clarify telegram docs 29c1cca99 chore: don't modify original dict when initializing ccxt 979f7ba78 docs: improved wording on telegram docs b6dfe0162 chore: improve loudness call structure d4cd5ba23 chore: Add loudness docstring e7cf1e34c docs: update docs to better explain options for telegram settings c9718de24 feat: Update config_schema with support for exit_fill c58b1f0fd feat: add "*" to define custom default for non-defined exit reasons b720ae5d7 feat: Support individual exits for both exit-fill and exit messages 3cea1a99b tests: add explicit notification enablement test 03eb079a5 chore: slightly refactor telegram loudness control 899db2de7 docs: improve formatting of telegram docs page db6d7714a chore: update pre-commit hooks 2de4f425f Update stoploss.md - add hyperliquid a71ab6e2a Update exchanges.md - add hyperliquid stoploss_on_exchange note 0b6bf701e Update exchanges.md - typo 38eb4eed9 Reverted changes related to create_order_has_all_data bdb54f56d Update exchanges.md - add Hyperliquid 3eb2981fb chore: add explaining comment for "not fill" branch 835269825 fix: improve stake-amount in order "created" message 12ab1cb2c tests: add explicit test for stake_amount_filled 07f0e3803 docs: add stake_amount_filled documentation 3d307fe8f feat: add stake_amount_filled order attribute 5cb4a65cb fix: use order.safe_amount for "order created" entry message 6398d7ff2 chore: update pre-commit hooks 7e3f8ad01 tests: update test to not test for non-existing property 8703c8788 chore: improve a few more types 7e010c88b chore: Improve type safety dad921bf5 chore: use CcxtOrder in more places e020bafc3 chore: simplify calculation by reducing dict lookups ecf5e1ce6 chore: first step to improved ccxtOrder Typing 6245127ce chore: update pyarrow armhf prebuilt wheel 78de0f316 chore(deps): bump pyarrow from 17.0.0 to 18.0.0 7859fadf6 chore(deps): bump pymdown-extensions from 10.11.2 to 10.12 821243ce7 chore(deps): bump ccxt from 4.4.24 to 4.4.26 44d0abb11 chore(deps): bump torch from 2.2.2 to 2.5.1 10fd2b291 chore(deps): bump orjson from 3.10.10 to 3.10.11 5034c7c31 chore(deps-dev): bump ruff from 0.7.1 to 0.7.2 ff36ba774 chore(deps): bump janus from 1.0.0 to 1.1.0 9b2fabfb3 chore(deps): bump rich from 13.9.3 to 13.9.4 4008eb20a chore(deps): bump tqdm from 4.66.5 to 4.66.6 e224ee827 chore(deps): bump mkdocs-material in the mkdocs group d236f9760 chore(deps-dev): bump pytest-cov from 5.0.0 to 6.0.0 in the pytest group 0efb966b6 chore(deps): bump pypa/gh-action-pypi-publish from 1.10.3 to 1.11.0 63dfa52ea chore: Fix missing space in log message 74507e998 docs: remove more --dmmp docs d24bef788 tests: remove --dmmp from tests 59bf0c080 docs: update docs about removed --dmmp option e8553cfac docs: Update documentation about dmmp baadf62fc chore: remove --dmmp option c4312fbb3 _lev_prep: fixed typo. dry_run_liquidation_price: use wallet_balance instead of stake_amount 1bf71b47d docs: add gate documentation about new permissions 878adfb0c tests: expand tests to cover several times and timezones 47e4599fe docs: fix strategy 101 link 81b432dc0 chore: bump dev-version to 2024.11-dev a8516ff0f tests: fix failure when local timezone is not utc e99adc339 chore: re-use 3.12 cache for online tests 04e8c3cee chore: try improve caching 22318eb80 chore: fix bad usage of variables c03f8afca docs: document new behavior 88f8e0b8b test: improve test for long/short switch 8f6b83151 tests: adjust test_locked_pairs for new auto-lock 85a2c1276 feat: Lock pairs in direction of the trade only 1b8fd6385 tests: BT Detail tests should cover position switch ae325ff12 tests: fix test based on changed behavior 1698d9688 feat: Allow Backtesting to reverse position cfa527e9a added tests for hyperliquid 67a004073 added hyperliquid to conftest 3913b450b check for tickers_have_bid_ask fd619de1d typo 493fa8541 fixes related to ruff and mypy a7681fc71 revert ccxt version bump 7d1976ad0 fix ohlcv_candle_limit funding_rate candles 4c78b8c6d updated dry_run_liquidation_price to match new signature fixed comment b88db55db Initial implementation of hyperliquid. - Spot - Swap (long, short, leverage, stoploss_on_exchange) - dry_run_liquidation_price() ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 1 year ago

FreqAI - 2024.10

Highlighted changes

  • New “Strategy 101” Documentation page
  • Improved startup time for certain subcommands (most noticable with --help).
  • New hyperopt function MultiMetricHyperOptLoss, which combines several metrics into one balanced hyperopt loss function.
  • New subcommand list-hyperoptloss to get an overview of all available loss functions.
  • Auto-create log-directory if --log-file is given but the directory doesn't exist.
  • Allow strategies without “enter_long” column.
  • Dropped support for python 3.9.
  • Setting protections from the configuration will now raise a configuration error.

Sponsors

You can sponsor the work on freqtrade via the following links:

  • froggleston (FTUI) https://github.com/sponsors/froggleston/
  • robcaulk (freqAI) https://github.com/sponsors/robcaulk/
  • xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

New Contributors

  • @xzmeng made their first contribution in https://github.com/freqtrade/freqtrade/pull/10737
  • @bearvar made their first contribution in https://github.com/freqtrade/freqtrade/pull/10805

How to update

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

docker-compose

bash 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 ``` 84da133e9 chore: bump version to 2024.10 0d430be1f chore: update pre-commit hooks 592848ad0 test: re-add excluded assert e35f5c9fd tests: update test to account for newly added prop 26a59e2cc fix: Don't allow backtesting to exceed max_open_trades in odd edge-cases 56df7ad9f chore: remove unnecessary commented log statement c9e56ab04 chore: update pre-commit hooks 6cb17caf9 tests: Add test showing behavior from #10853 b5a52129f chore(deps-dev): bump ruff from 0.7.0 to 0.7.1 beaf5215b chore(deps): bump rich from 13.9.2 to 13.9.3 b3fa997be chore(deps): bump fastapi from 0.115.2 to 0.115.4 eab5bfb47 chore(deps-dev): bump mypy from 1.12.1 to 1.13.0 9f5d4dd67 chore(deps): bump ccxt from 4.4.20 to 4.4.24 fc757f6cf chore(deps): bump orjson from 3.10.9 to 3.10.10 a3bcc9d91 chore: schema.json updated d215e3ca6 chore: add documentation and add wait_for_training to config schema 930b5e07f tests: adapt tests for improved createMarketBuyOrderRequiresPrice validation 5174717ca fix: ensure createMarketBuyOrderRequiresPrice is only applied to buys d317f33f4 chore: improve potentially erroneous comparison 9e53b0742 docs: update documentation code to align with comment c4cbf6de3 tests: reset permissions on tmp-path e7b0e3293 feat: Exit with exception, not with exit1 87c8e8506 feat: add user friendly message on permission error 3d9514d26 chore: update pre-commit hooks 3d9cbf52b chore: improve import sorting 5b4043db8 chore: use Class for parse_timerange 11cef55c0 test: update mock to new pairlist location 667d08d00 refactor: extract pairlist_api from background_tasks file ba780276a feat: auto-create logs dir if it's absent 46db0bc08 feat: rename endpoint to be better aligned 0de3c6945 test: add test for api/hyperopt-loss 0bf30aaa6 feat: add hyperopt-loss api endpoint faac20546 tests: add test for list-hyperoptloss 1d5d7048d chore: improve test imports 033643c4c docs: add documentation for list-hyperoptloss 8b8b5cfac feat: add list-hyperoptloss subcommand 9ad32fd84 fix: improved defaultHyperoptLoss alias 186f2a839 chore: update pre-commit hooks a1513b7c7 fix: allow user to break training 6571ef4e4 fix: guarantee crash resiliency, as long as users reload bot gracefully 336111fbd chore: update sqlalchemy pre-commit f100ad12e chore: fix whitespace error after merge d9ea89857 chore(deps): bump sqlalchemy from 2.0.35 to 2.0.36 a29a69701 chore(deps): bump ccxt from 4.4.17 to 4.4.20 1761d0e65 chore(deps): bump psutil from 6.0.0 to 6.1.0 41a4c7c39 chore: improve type safety e3bdf89ca chore: bump pre-commit types-requests 0843f09c8 chore(deps): bump orjson from 3.10.7 to 3.10.9 93afe0020 chore(deps): bump torch from 2.2.2 to 2.5.0 0f978bbcc chore(deps): bump cryptography from 42.0.8 to 43.0.3 88c49a9f7 chore(deps-dev): bump ruff from 0.6.9 to 0.7.0 83f285c91 chore(deps-dev): bump mypy from 1.11.2 to 1.12.1 24499c5ea chore(deps): bump bottleneck from 1.4.1 to 1.4.2 d02b1f04e chore(deps): bump uvicorn from 0.31.1 to 0.32.0 c81800339 chore(deps): bump mkdocs-material in the mkdocs group 306db6d02 chore(deps-dev): bump types-requests in the types group b75ff4bdf Adjust docs based on review 60439c7d8 chore: enhanced pyright configuration 3518a4167 chore: minor typing fix 51dd7fa58 chore: ensure empty leverage tiers files don't cause an exception 0a5549ebc docs: add canonical_version 607167ebe fix: improve resilience of ft_rest_client 1183517c3 chore: remove non-needed type_checking import 6d169784e chore: remove mypy override for telegram module 6a5feacd3 tests: Skip binanceus websocket tests 0a91189e6 chore: remove unused kwargs e9d9ebf15 docs: Update documentation for MultiMetricHyperOptLoss 1a85dc9b9 chore: Update to new code standard 660af7ec7 chore: Fix test failure, sort imports 102d44a7b chore: improve lbank comment message 549b0f8ef feat: delete all files when deleting a backtest result c6fe8ae70 feat: add lbank candle limit parameters 9e1af0db6 delete market change when deleting backtest result 43b6cb9bf docs: Update 101 docs 9b7acf33c docs: rename file to strategy-101 a40a2f96b chore: attempt to speed up CI efc689a93 chore: update macos version to new images 78bf40eaa Edit EXPECTANCY_CONST to show it can be decimal. 578604619 Edit PF_CONST to show it can be decimal. 6eac798d9 Rename ComplexHyperOptLoss to MultiMetricHyperOptLoss. Add it to test_loss_functions_better_profits. 121bdbad8 Update and rename hyperopt_loss_complex.py to hyperopt_loss_multi_metric.py 5b2b2d1a5 chore: update pre-commit hooks 9209d1108 Add new hyperopt loss function 60f54f1bc Improve 101 docs 8b1de5d9b Update docs/freqtrade-101.md a8e851736 Minor typo c9b31c62c docs: improved wording for developer docs c72cf64c8 Americanize *sigh* 8c2f84197 Update 101 and customisation docs 0c1c75000 Add and dependency groups cdbfbb550 chore(deps): bump ccxt from 4.4.14 to 4.4.17 3a190a1c3 chore(deps): bump fastapi from 0.115.0 to 0.115.2 2098e69fb chore(deps): bump aiohttp from 3.10.9 to 3.10.10 2415275e9 chore(deps): bump bottleneck from 1.4.0 to 1.4.1 83fcc92f7 chore(deps-dev): bump pre-commit from 4.0.0 to 4.0.1 64a7ab6e2 chore(deps-dev): bump time-machine from 2.15.0 to 2.16.0 a772e1f9c chore(deps): bump uvicorn from 0.31.0 to 0.31.1 7bbed1705 chore(deps): bump mkdocs-material in the mkdocs group 4cd466035 Remove setup.py d503724bd chore: improve backtest comment 2756a1f1a chore: improve statement sequence for improved short circuiting 883122a98 refactor: Simplify backtest code slightly bd7f0383d chore: improve clarity of argument name aa8cefc11 fix: minor missing statement in detail backtest fallback 48740f503 docs: add new document to index 35b81a2f3 Initial work on strategy dev docs 4b582b9d7 fix(bybit): Override fetchOrder to false for spot markets a71ed3ec5 chore: update pre-commit hooks 92b2a6fa2 fix: Support mps device where available b2d6c5b6a chore: update pre-commit hooks 5693039f0 tests: Add test-column to ensure string columns won't regress 52304b37a feat: Allow strategies to not define enter_long eeed65b35 chore: Bump pre-commit types-python-dateutil 6993a650b chore(deps): bump pypa/gh-action-pypi-publish from 1.10.2 to 1.10.3 4000794af chore(deps): bump pymdown-extensions from 10.11.1 to 10.11.2 7c9e6779c chore(deps): bump rich from 13.8.1 to 13.9.2 ec6d9ec7d chore(deps): bump humanize from 4.10.0 to 4.11.0 58fccadf0 chore(deps): bump aiohttp from 3.10.8 to 3.10.9 34e736213 chore(deps-dev): bump pre-commit from 3.8.0 to 4.0.0 fca39a780 chore(deps): bump ccxt from 4.4.9 to 4.4.14 278404f47 chore(deps-dev): bump ruff from 0.6.8 to 0.6.9 64612712a chore(deps-dev): bump types-python-dateutil in the types group 9ffd0ad98 add is_number check 78e9eac64 chore: Fix remaining violations after merge aa2c1501d chore: fix missed dependencies for deploy_ui ed5c929b2 chore: remove rapidjson from "default" imports 672a23dbc chore: revert changes to btanalysis - they have no impact 24c09d031 refactor: move ui deployment to it's own file 092275a98 refactor: move config deployment to it's own file 3fe97e170 chore: Remove __futures__ import and corresponding ruff skips 1ad4f0c9b chore: re-export from system module 27a327402 chore: improve behavior by validating earlier 67690c9e8 Fix setup.py 4c3c2eaa3 chore: update ruff target version to 3.9 cf6c41f9d chore: remove no longer required imports 2e0a597ee chore: update tests to modern typing syntax 628983d12 chore: update ft_client to modern typing syntax 8ec5dd6de chore: update to modern typing syntax acc40c73f chore: update strategy to modern typing syntax 1d4658e97 chore: update rpc to modern typing syntax b8bbf3b69 chore: update resolvers to modern typing syntax d8e41fa8b chore: update plugins to modern typing syntax e9a6ba03f chore: update persistence to modern typing syntax 2e69e38ad chore: update optimize to modern typing syntax c5ed876c0 chore: update types config to modern typing syntax 96f737f13 chore: update freqai to modern typing syntax f369151e8 chore: update exchange config to modern typing syntax d1b9990e4 chore: update edge config to modern typing syntax ed7eb01d1 chore: update data to modern typing syntax 660112769 chore: update config to modern typing syntax 43236c1cc chore: update config to modern typing syntax 65bbf7b2a chore: update commands to modern typing syntax 74b8dca63 chore: update to modern typing syntax 7db0e3ac3 chore: remove obsolete version check f889c2449 Fix test 852a1900b Fix test 30a273c94 Revert lazy import requests 903614140 Eliminate unnecessary lazy import 0fe772efa Eliminate unnecessary TYPE_CHECKING e6dedee56 Split freqtrade.system into a package 9c28a6ff4 Add test 48a8d7de1 Postpone imports on demand 5fa96c944 chore: update pre-commit hooks a0912ad6b tests: update ccxt compat test 9ba0c5429 chore: cleanup test code 86721b88c chore: improve import logic 9bdee1b82 feat: improve typing of fetch_funding_rates abe01f8f4 feat: implement liquidation price update on all order fills c5525d356 feat: support backtesting with cross configuration 36ae564d2 feat: update liquidation price on startup cba6bd6ef fix: use t.leverage, not trade.leverage for cross liq calculations 4d40ffedf fix: allow setting 0 as liquidation price 319e8d746 feat: use proper trade objects for liquidation calc fe7a88362 feat: add method to fetch binance funding fees 8bf314202 chore: simplify call to liquidation price for cross futures ac8bc7dec fix: use "other trades" logic for binance cross calc 0d5919392 test: update binance test 1473abf19 refactor: rename dry-liquidation parameter 45e75f3d0 chore: improve arguments to get_liquidation_price 5358f2fb9 feat: allow liquidation-price update without trades for cross mode c316d2744 refactor: move exception handler into helper function 0c0bb29f8 chore: add other_trades param to liquidation_price calls 82bc3270e test: Update binance test for new approach ec79b0b17 feat: update dry-run calculation params to be more generic 056056705 test: add test for liquidation_price update function 3de740b35 feat: create shared method for liquidation price update b69f598e5 refactor: move more code into cross conditional 1ad177fca feat: add liquidation_price update support for cross mode 9538c49ac chore(deps): bump python 84d43db50 Correct admonition indent bf2d0468f tests: fix test-data setup for btc test trades d2bc47cfe tests: fix test-data setup for usdt trades 98f4bf2f6 chore: remove Ta-lib binaries for 3.9 f9c8b7f4a chore: fix ps syntax error a92532c0c chore: Remove now pointless helper function bede81632 chore: remove conditional requirements e975062e0 chore: don't run CI on 3.9 0cd051cee chore: update conditional check for python version 682980be4 chore: drop 3.9 support from setup.ps1 878043ea3 chore: drop 3.9 support from setup.sh 757ae6518 chore: remove pointless conditional (we can't hit this point) cd63abba5 chore: update documentation to mention 3.10+ compat 915591c6d chore: update pre-commit hooks a740883c8 chore(deps): bump aiohttp from 3.10.5 to 3.10.8 1fb0f2f04 chore(deps): bump pymdown-extensions from 10.10.1 to 10.11.1 773bf765a feat(hyperliquid): Remove precision override 8cc928c84 chore(deps-dev): bump ruff from 0.6.7 to 0.6.8 418042076 chore(deps): bump ccxt from 4.4.6 to 4.4.9 30945dc24 chore(deps): bump uvicorn from 0.30.6 to 0.31.0 4ef87e341 chore(deps): bump tensorboard from 2.17.1 to 2.18.0 478519452 chore(deps): bump mkdocs-material in the mkdocs group 8a742ce3e chore: bump version to 2024.10-dev f77fedbea chore: move available_protections constant to test file (it's only used there) 39c582dac tests: move protection-validation test to protection test file 873672847 chore: remove unused import 23cf9f47b chore: move protection validation to protectionManager b8feefc54 tests: update protection tests e3a6c7108 chore: Remove protections from config logic d6cc88fa9 chore: remove schema syntax highlighting for protections 428d451e5 chore: remove long-deprecated setting aa67abad9 docs: simplify protections intro ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 1 year ago

FreqAI - 2024.9

Highlighted changes

  • Add Bybit to official exchanges (it’s already been there, but didn’t show up that way).
  • Bybit: Support Unified subaccounts.
  • Added support to analyze exit signals with backtesting-analysis.
  • Removed “hard” startup pair validation. Invalid pairs are now raising a warning, no longer an exception.
  • Improved Dry-run wallets accuracy by correctly reporting used amounts (for open, unfilled orders).
  • Added Coingecko category selection in MarketCapPairList.

:warning: This will be the last version supporting python 3.9. If you haven't done so yet, please update your python version to a more recent version (we recommend 3.12 for performance reasons).

Sponsors

You can sponsor the work on freqtrade via the following links:

  • froggleston (FTUI) https://github.com/sponsors/froggleston/
  • robcaulk (freqAI) https://github.com/sponsors/robcaulk/
  • xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

How to update

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

docker-compose

bash 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 ``` 27af9455f chore: bump version to 2024.9 415b8354f fix: if coingecko when no pair returned 51c596a21 chore: add test for "no pair from coingecko" case f4d76aa36 chore: improved wording 56835f5f0 chore: manually check for symlink 255ad7cac tests: test invalid category in list 8c097a81e tests: enhance test for marketcappairlist 3dc92b42f fix: Check if sub-directories are actually directories and fail otherwise. 1ed5a3728 Update freqtrade/plugins/pairlist/IPairList.py cb36f2844 chore: Improve "wrong category" error. 7b93b55b7 docs: rephrase categories docs and add performance warning 6837196e4 fix: treat marketcap as optional parameter 31680f3b5 chore: Improve UI wording d18d8cf0e freqai_info -> ft_params 123909cda fix: Update BasePyTorchRegressor.py 1d66ef2f2 chore: update pre-commit hooks 8aefae3af format 514558796 double quotes b00ca5470 adding docu 0dbe507b2 making list of categories available 4b70bea21 chore: reset params for emulated call 096a051b9 test: update test a3ca1ff1e fix: send acknoledged to bybit fetch_order calls 28eabfe47 tests: update test for retryable okx behavior 0a68b0515 chore: reduce retry count for stop orders 566c0c8f7 refactor: split okx fetch stop fallback 333f2cb47 fix: Improve error handling for OKX stop orders 3d1acc65a tests: add test for #10704 b44e8199b chore: update pre-commit hooks b228f177f chore(deps): bump ccxt from 4.4.5 to 4.4.6 1cdf8b29a chore(deps): bump fastapi from 0.114.2 to 0.115.0 04abc4d12 chore(deps): bump pymdown-extensions from 10.9 to 10.10.1 9f5e4b581 chore: update sqlalchemy in pre-commit config 06eb5abf1 chore(deps): bump filelock from 3.16.0 to 3.16.1 29e6e3b37 chore(deps): bump python-telegram-bot from 21.5 to 21.6 2fc97f83f chore(deps-dev): bump ruff from 0.6.5 to 0.6.7 1e761b4c7 chore(deps): bump sqlalchemy from 2.0.34 to 2.0.35 a2ca136f1 chore(deps): bump pandas from 2.2.2 to 2.2.3 94322664f chore(deps): bump websockets from 13.0.1 to 13.1 cbd5c6d3e chore(deps): bump pydantic from 2.9.1 to 2.9.2 0428dc838 chore(deps): bump mkdocs-material in the mkdocs group 01e7b0da4 chore(deps): bump pypa/gh-action-pypi-publish from 1.10.1 to 1.10.2 b37dadcc0 tests: dry-wallets test update 8e6151fe6 fix: properly consider open order values as "tied up" stake. 9b346c093 docs: add hint about amount being 0 b09f80ca3 tests: improve create_trade test 0e0af8229 fix: odd calculation in calc_profit_ratio c69b09cbf tests: fix amount=0 test b8ba6cd97 tests: update rpc_status 004e30d6b tests: update force_sell test to not use empty amount column b084efdd0 feat: initialize trade objects with 0 amount d377d8462 fix: improve resiliance of order parsing 2bbec9f9b tests: fix random test failure by reading time only once b32690848 tests: Improve test resiliance b21156a88 tests: improve stoploss test 85138b0bc tests: Have exchange test get_historic_ohlcv properly e0df0257d tests: Update history tests for new response d23c1e8f9 refactor: Move dataframe parsing into get_historic_ohlcv 670a40e67 chore: remove no longer valid todo 3bbc6cbab chore: bump ccxt to 4.4.5 15de53a22 chore: bump ccxt to 4.4.5 756169235 chore: update pre-commit hooks f50a633f8 docs: order table formatting 50f07e7b1 only doing this if the category is set 660623181 adding category list if the category is not from the category 03ee3aaf4 adding category list if the category is not from the category ad295946c fix: use precise calculation for decrease adjustment calculations ff9d1f272 chore: update pre-commit hooks 0b7cb2a1a cleanup 92af01b0c adding category for MarketCapPairList.py dc26d0d7b adding category for MarketCapPairList.py 2fe67edab chore: update link to okx liquidation formula 65e6c737c chore(deps): bump pydantic from 2.9.0 to 2.9.1 09c145941 chore(deps-dev): bump ruff from 0.6.4 to 0.6.5 a7f46500e chore: bump types-requests in pre-commit c73fa2b0e chore(deps): bump rich from 13.8.0 to 13.8.1 db4c4b971 chore(deps): bump ccxt from 4.3.98 to 4.4.3 e9ccc98ad chore(deps): bump fastapi from 0.114.0 to 0.114.2 11d6ec33b chore(deps): bump scikit-learn from 1.5.1 to 1.5.2 c3b6f4ca8 chore(deps): bump pytz from 2024.1 to 2024.2 d37405a30 chore(deps): bump urllib3 from 2.2.2 to 2.2.3 d7a984132 chore(deps): bump plotly from 5.24.0 to 5.24.1 cf3af4247 chore(deps-dev): bump pytest from 8.3.2 to 8.3.3 in the pytest group ad8e6e7d6 chore(deps-dev): bump types-requests in the types group ae41ab101 docs: remove skip_pair_validation - it's no longer used. f4881e7c6 tests: Adjust tests for removed validate_pairlist functionality 94ef4380d chore: remove validate_pairs from exchange class 7ebe1b8c1 chore: remove pointless validation 79020bba2 chore: Remove "prohibitedIn" check 95c250ebc chore: add explaining comment bfb14614c chore: enhance change with comment 12299d481 feat: staticPairlist to warn for invalid pairs c67a9d4e8 docs: update pairlist creation docs 51bdecea5 Improve check to cover more potential api oddities 0f505c6d7 Improve check to cover more potential api oddities 9f34153c8 chore: update typing for reload function c04cf6c5c test: Improve test coverage of retry/fail logic 511273638 feat: Simplify reload_markets logic 11eaa6d77 test: Add tests for new behavior 6024903bd feat: conditionally apply retrier to market-reload d15921b3f chore: update pre-commit hooks 439658fcf fix: remove tests for orderflow data missing of other runmodes c9acb1466 fix: orderflow data missing for plotting and other runmodes addd27faf Update tests and docs f1df7e9bd chore: remove redundant method 4765656f8 Add filter for entry and exit only parameter 8c1b119e8 chore: rpi image should remain on 3.11 series 95fa7083a chore(deps): bump python in /docker 98e08df80 chore(deps): bump python 01da36f98 chore: update pre-commit hooks ae155c78c added check 974221647 chore: run ruff-format on pre-commit 2c17551b2 chore: bump sqlalchemy in mypy additional deps 7aa7027a3 chore(deps): bump fastapi from 0.112.2 to 0.114.0 9b97be4aa Bump pre-commit dependencies 621be1139 chore(deps): bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1 05af6df53 chore(deps): bump peter-evans/create-pull-request from 6 to 7 b7bda2355 chore(deps): bump sqlalchemy from 2.0.32 to 2.0.34 b0976031a chore(deps): bump ccxt from 4.3.93 to 4.3.98 d099f30a3 chore(deps-dev): bump ruff from 0.6.3 to 0.6.4 699be03bb chore(deps): bump filelock from 3.15.4 to 3.16.0 ccf93cfdc chore(deps): bump torch from 2.2.2 to 2.4.1 47358a822 chore(deps): bump catboost from 1.2.5 to 1.2.7 9856c2cfc chore(deps): bump pydantic from 2.8.2 to 2.9.0 df9669ba2 chore(deps-dev): bump the types group with 2 updates f970454cb chore: ruff format 69678574d fix: support python 3.9 union type hinting 53cab5074 chore: refactor and cleanup tests c6c65b179 chore: flake8 bb9f64027 chore: improve language in docs 5f52fc433 feat: update lookahead-analysis doc caveats to include info regarding the false positive on FreqAI targets 82e30c851 feat: if a biased_indicator starting with & appears in a lookahead-analysis, caption the table with a note that freqai targets appearing here can be ignored 6e2aa6b4b tests: remove unused imports a1681cdd6 chore: improve typing 396d933e3 feat(bybit): add support for unified Accounts 0858e0a21 Minor update to docs 704e32b0d feat: properly parse marginmode on startup f95cc960e test: tests should consider additional ff-update call 1b00f512c fix: call order_filled callback for left open trades d9ec66695 docs: update backtesting docs with new row 1a2578a4b feat: Add margin/Trading mode output to bt-output f714e306d test: add margin and trading mode to test config 6a4b64125 feat: implement __str__ for marign and tradingmode enums 8d9684431 use BT_DATA_COLUMNS for trade wide indicators b7145debf handle trade wide indicators c6a66a8fa chore: update pre-commit hooks 65ba67ded chore: re-add analytics. 824db7823 chore: update site_url again 2fdf10819 chore: update site_url to work correctly 63092d7d1 chore: re-add analytics to docs page 964d437c7 chore: type _ft_has d49c55629 chore: rename ft_has setting from ws.enabled to ws_enabled d6b274829 chore: rename types to ft_types e3a5831d6 refactor: rename exchange.types 08d5174d0 update documentation and add default values c0e9173c9 chore(deps): bump cryptography from 42.0.8 to 43.0.1 331db99a4 chore: update pre-commit hooks bc4c69352 chore(deps): bump ccxt from 4.3.88 to 4.3.93 d4ba83764 chore: mark Bybit as supported exchange 4a1592dd9 feat: initialize hyperliquid in spot mode by default 904f5303a chore(deps): bump pypa/gh-action-pypi-publish from 1.9.0 to 1.10.0 585761e93 chore(deps): bump python-telegram-bot from 21.4 to 21.5 4d53797cb chore(deps): bump websockets from 13.0 to 13.0.1 803677e88 chore(deps): bump plotly from 5.23.0 to 5.24.0 17617c58d chore(deps): bump rich from 13.7.1 to 13.8.0 96d03ec13 chore(deps-dev): bump ruff from 0.6.2 to 0.6.3 4726afbeb chore(deps): bump the mkdocs group with 2 updates 97c937e55 chore: add Bugbear Ruff checking b25520cf1 chore: improve rhci_progress typing, remove mutable arguments c6b46d75c chore: fix B018 violation a554352ae test: remove unused mutable argument a7fd03f1b chore: improve ccxt test ef96116c3 docs: add note about freqUI support of dp.current_whitelist 7edc50865 docs: improve release documentation a881d3fd8 chore: bump version to 2024.9-dev 268683f8e update documentation b6702d1d3 simplify merging logic c3679910a remove additional argument 19a2e06c0 #000 | Anuj | Merge Dfs for entry and exit in one table 8085e24dc update tests d351ed017 refactor: change analyse_on variable name to date_col 3ebc5b136 review comments and update test for exit signals 103991746 chore: type safety and refactoring 7f0e5dd33 Refactor and add documentation ecf9c173c Add test for backtesitng-analysis b0e863dbb Introduce --exit-signals flag to backtesting-analysis command 8f8859a5f Initial commit - create a different file for signals ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 1 year ago

FreqAI - 2024.8

Highlighted changes

  • Add $schema support to have improved editor support in configuration files.
  • Add PercentChangePairList - a pairlist to sort and filter based on pair movements.
  • Protections can now als use unlock_at to unlock at a precise time of the day.
  • Add --trades argument to list-data to allow visualizing downloaded trades data.
  • Backtesting - allow re-filling the last trade slot (when max-open-trades had been reached) on the trade exit candle.
  • Improved performance for orderflow’s download-trade functionality (dry/live only).
  • Websocket Support for OKX (spot and futures).
  • Improved and aligned import defaults in strategies and documentation.
  • Enhance list-data to show available trades data (via the --trades cli option).

Sponsors

You can sponsor the work on freqtrade via the following links: * froggleston (FTUI) https://github.com/sponsors/froggleston/ * robcaulk (freqAI) https://github.com/sponsors/robcaulk/ * xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

How to update

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

docker-compose

bash 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 ``` 5e9d2323e chore: bump version to 2024.8 a250cf7eb test: Remove unnecessary asyncio decorators 1c5ca0f02 chore: improved fix for terminal error ca3dee7b3 chore: add setting to avoid deprecation warning from pytest-asyncio 59d47955a chore: fix test failure due to terminal error d05ca3db0 fix: handle small terminal width 87678eff9 fix: avoid hyperopt-results not showing past terminal height 4c487d666 chore: update pre-commit hooks 655a300ac docs: re-establish search box on develop documentation 660a5d910 chore: bump pre-commit type deps ec55fdb8d chore: update pre-commit hooks eaf68fe10 chore(deps): bump aiohttp from 3.10.4 to 3.10.5 a9451a541 chore(deps-dev): bump mypy from 1.11.1 to 1.11.2 6d280be08 chore(deps): bump fastapi from 0.112.1 to 0.112.2 877c6635e chore(deps): bump scipy from 1.14.0 to 1.14.1 ca0be181b chore(deps): bump ccxt from 4.3.85 to 4.3.88 ba2cf8015 chore(deps): bump websockets from 12.0 to 13.0 f1f4ed97c chore(deps-dev): bump ruff from 0.6.1 to 0.6.2 24785d28e chore(deps): bump mkdocs-material in the mkdocs group 0076205da chore(deps-dev): bump pytest-asyncio in the pytest group 6235b50c9 chore(deps-dev): bump the types group with 2 updates 5cca19bb8 refactor: simplify binance liquidation test setup 1b7056853 refactor: move test_liquidation_price_binance to binance test file d1bc51959 docs: Show version alias on versions bcae1dce7 docs: reduce font-weight of version_list e87927564 chore: Improve typing 01b7ad4a3 feat: prevent freqAI startup on exchanges without history fd30edf2b chore: update pre-commit hooks 33614d8ff docs: Improve wording for untradeable pairs 4a6219968 Add clarification for untradeable pairs vs markets 68be56240 chore: fix test param 19ccb27db chore: deploy through github internal pipeline a7e2bf071 chore: Move deployment to gh native actions e05a6e976 chore: add Ci for gha deployment c7485e3fd chore: add mike to mkdocs config f4440d43d chore: increase wait time on ws to avoid flukes 6bd21b899 chore: pin tables for python 3.9 ce66fbb59 chore: ruff format notebook d2c908b1a chore: bump ruff pre-commit version 976f9b259 chore: re-format ipynb notebook 4d175a466 chore(deps): bump ccxt from 4.3.84 to 4.3.85 986ff7d1b chore: rename parameter to avoid naming collision bc719feb5 chore(deps): bump mkdocs-material in the mkdocs group a70116ed4 chore(deps): bump fastapi from 0.112.0 to 0.112.1 b859d7f3a chore(deps): bump ccxt from 4.3.79 to 4.3.84 75714ae84 chore(deps): bump matplotlib from 3.9.1.post1 to 3.9.2 8321425e6 chore(deps): bump uvicorn from 0.30.5 to 0.30.6 ba3223a9a chore(deps): bump tables from 3.9.1 to 3.10.1 a266997b6 chore(deps-dev): bump ruff from 0.5.7 to 0.6.1 314983b13 chore(deps): bump tensorboard from 2.17.0 to 2.17.1 8896b0ae7 chore(deps): bump aiohttp from 3.10.3 to 3.10.4 b6aa922c0 chore(deps): bump markdown from 3.6 to 3.7 95732f417 chore(deps): bump cachetools from 5.4.0 to 5.5.0 83e0cf75c add startup count from strategy to the analysis 7fe23ad8c chore: add alias_for to tests fd9ec438d feat: show name, class name and eventually the replacement alias 7cab973cb feat: get new name for aliased ccxt exchanges 7952712c5 chore: update samples to use doublequotes d754a2e29 feat: improve default imports 768b4e5e2 chore: Update formatting of default export sequence b1ae09c00 docs: remove callback examples imports 9408e858c chore: use aligned quoting strategy for templtae 099516411 feat: improve formatting of generated strategy b3a042a63 feat: don't use commented typehints c2ac70ff1 feat: update base_strategy to include all imports e7b57d8de chore: Update import for qtpylib to technical 5bc8b02b0 feat: Update imports for sample strategy d6f96b2c5 chore: remove typing imports 6c131b564 chore: add comment to better explain imports 27a4a502d docs: Add section explaining strategy imports f0a25ea48 feat: Add __all__ export to strategy's init file 4ca6e6172 fix: use dynamic trading_mode for trades loading e26ac6ed0 test: speed up detail test f341edb97 feat: Enable websocket support for okx fdad24aaa feat: add leverage to telegram's /status table 3a676f98d test: improve telegram balance test 8498cb17e test: add explicit test for telegram's short behavior 36098f6b7 test: update tests for removal of leverage 34667c69d chore: remove leverage from /balance endpoint 756fef53f refactor: improve live positions update 2ffe93820 test: update test behavior - wallets has 0, never none d52169930 refactor: type fetch_positions response 5ad23405b chore: align safevalue_fallback types 04cdd807b chore: improved type ordering 646ed50f3 chore: improve typing for balance endpoint 1b0ba0fa6 fix: typo in armhf dockerfile causing build to fail 21c5c919e chore: Improve typehinting for hyperopt d9f6f0847 docs: improve readability of hyperopt-loss sample 77b32e94f chore: update pre-commit hooks 331159a3d fix: ensure handle_onexchange_order works without false warnings 23510c80b fix: don't auto-populate non-existing secret entries 6ea450a4e chore: bitvavo uses DECIMAL_PLACES for amount rounding f64786543 feat: hyperliquid requires different precision modes aa6c30ade chore: fix line too long issue 0b8dfa687 chore: improved docstring for precision_mode_price d7bee0c9e test: update further tests for precision_mode_price 350c2241c test: adjust test mocks for precision_mode_price cfa591838 feat: use "precision_mode_price" where applicable ac1ac0deb feat: set precision_mode_price when creating trade objects 54bc60b08 test: Update test for new to-json field f8de46cea feat: Add precision_mode_price column 1e410feed test: fix missing test arg 948e67a2b docs: improved wording 0f820e449 chore: Fix 3.9 syntax error c7bc1b10e docs: fix messed up formatting ef04324f9 docs: update --help output docs 2b86865b9 chore: improve wording in subcommand helptext f009625c1 docs: update list-data documentation a991c7684 feat: add test for test_list_data command d02ea3244 feat: add "trades" switch to list-data command 5a9f87ac6 feat: add start_list_trades_data command to output trades data 9bfd0cb63 feat: add test for trades_data_minmax 3f4c19abb chore: add test for trades_get_available_data cf26635e3 feat: add trades helper functions 263be72c1 chore: update pre-commit hooks b63c04df4 chore: update help wording 784208dd8 chore: improve variable naming for ohlcv 5cb6c234c chore: improve naming for refresh_latest_trades 7972a023e fix: oddly wrong fee_cost calculation 6cf92c2a9 chore: enhanced aggregation syntax 50835c878 chore: add more test coverage b727e5ca1 chore: simplify update code 5773d1fd8 docs: Update documentation for new flow 530226dbe chore: Add "use_detail" to detail test 4882a18bf chore: add pair_detail test 70f3018e6 feat: remove "open_trade_count_start" workaround 08c10c1f9 chore: exclude right boundary from parallelism test 7945eba38 feat: Evaluate pairs with open trades first b6f4e124c chore: improve backtesting test details f01e10144 feat: extract backtest iteration into generator 980b81f00 chore: Simplify futures backtest 10f0522a6 chore: update attribute wording to bt_profit 2bc9cdafb chore: update attribute wording to bt_trades e643a2ea3 chore: update attribute wording to bt_trades_open b456afa2a chore: improve backtesting test 88b754e38 chore: update test to reflect a fix in ccxt 16d5d7b31 chore(deps): bump ccxt from 4.3.76 to 4.3.79 fa0ee035e chore(deps): bump orjson from 3.10.6 to 3.10.7 010dbf82f chore(deps-dev): bump ruff from 0.5.6 to 0.5.7 9a9d27b86 chore(deps): bump aiohttp from 3.10.2 to 3.10.3 0afd3fc5e fix: improved handling for corrupt trades files f5ebfcca5 chore: accept that trades dataframes may be empty for some reason 42294ff69 chore(deps): bump aiohttp from 3.10.1 to 3.10.2 ed59f74cb chore: move asyncio import to only import when necessary 2b4438720 chore: call selectorPolicy 758e532a6 chore: add todo to uvicorn workaround d4ca6617d chore: set asyncio-policy for windows f6040c5f0 chore(deps): bump aiohttp from 3.9.5 to 3.10.1 de70ee117 chore(deps): bump matplotlib from 3.9.0 to 3.9.1.post1 85844c8ed chore(deps): bump ccxt from 4.3.73 to 4.3.76 101dc850a Update pre-commit sqlalchemy types 5650de062 chore: dependabot shouldn't update major versions 999ee981f chore(deps-dev): bump time-machine from 2.14.2 to 2.15.0 ee6e78927 chore(deps): bump python-rapidjson from 1.19 to 1.20 9dd9ae7a2 chore(deps): bump sqlalchemy from 2.0.31 to 2.0.32 cbd178dab chore: bump armhf dockerfile to 3.11 e34a28ee5 chore: dependabot should monitor /docker, too d453aa849 chore(deps): bump python 9d0cd961b chore: update pre-commit hooks 900922760 feat: add json schema validation docs 95546e0a7 chore: update pre-commit hooks 3d439c8c0 chore(deps): bump pyjwt from 2.8.0 to 2.9.0 477448114 chore(deps-dev): bump mypy from 1.11.0 to 1.11.1 91da1c3f8 chore(deps): bump uvicorn from 0.30.3 to 0.30.5 0bee3c9db chore(deps): bump tqdm from 4.66.4 to 4.66.5 e3ba28d76 chore(deps): bump ccxt from 4.3.68 to 4.3.73 1f9c2cd18 chore(deps): bump technical from 1.4.3 to 1.4.4 ea2b12a54 chore(deps-dev): bump ruff from 0.5.5 to 0.5.6 c9f4db2a4 chore(deps): bump fastapi from 0.111.1 to 0.112.0 1e5154c90 chore(deps): bump mkdocs-material in the mkdocs group 17dc41279 Ruff formatting cb4747aed Add rich table width if jupyter in modules ce8d03ddc chore: improve comment as to why matplotlib is pinned in the first place 366c7e2b9 fix: pin matplotlib to 3.9.0 to fix windows wheels 6c5fb5e22 chore: add_config_files to config_schema 4854bdd02 chore: Add log_responses to config schema d7ecdc9b0 chore: Downgrade cryptography for RPI c8d30ae80 chore: fix oneline exchange-list output 9eebe82b3 chore: fix api-server tests b3915ff8f chore: use classname to show exchanges 805c946b3 feat: improve structure of list_exchange endpoints 8bc194946 docs: update link to technical documentation a6689b103 chore: Remove unnecessary, duplicate mkdocs install f63910d35 chore: improve wording for cooldown_period 98c852105 chore: fix minor gotcha 57139295b tests: Add unlock_at test 176062495 test: Test "invalid date format" 9429657a2 chore: make Hyperliquid class actually usable 2b0b1e23e chore: enhance error message on ohlcv error dd55baf14 chore: support snake_case for api keys 9e47172d6 chore: Reduce test flakyness of ws test a84096951 feat: move trades-refresh to async 67fdfdf58 chore: Update schema file abef8e376 feat: add $schema to config examples 8a85077e7 chore: add download_trades config key, reorder some keys b3ac296ca chore: Improve schema wording af554fc3f chore: update pre-commit hooks 02621eee7 chore: remove pip version lock from instal scripts 8105f5160 chore: remove pip lock from Dockerfiles c40ac27d7 chore: Remove pip pin from ci eb0fc0fc8 docs: Fix minor typo 40b20c559 chore: update pre-commit hooks 1ebbfffd2 chore: hyperliquid doesn't have historic ohlcv c8b758083 chore(deps-dev): bump pre-commit from 3.7.1 to 3.8.0 3789e1339 chore(deps): bump pymdown-extensions from 10.8.1 to 10.9 a1490d07b chore(deps-dev): bump ruff from 0.5.4 to 0.5.5 5e1038dc6 chore: Fix torch version bump 5e852ebb5 chore(deps): bump lightgbm from 4.4.0 to 4.5.0 097786c62 chore(deps): bump plotly from 5.22.0 to 5.23.0 baeced32c chore(deps): bump python-rapidjson from 1.18 to 1.19 2f4e4343c chore(deps): bump torch from 2.2.2 to 2.4.0 9fd6d7318 chore(deps): bump ccxt from 4.3.65 to 4.3.68 fd2be958b chore(deps): bump mkdocs-material in the mkdocs group 719889b27 chore(deps-dev): bump pytest from 8.3.1 to 8.3.2 in the pytest group faaa1050d chore: Bump dev version to 2024.8 27aed5cd7 Update schema.json ac1e405c3 Update documentation and fix doc test 4932473b3 Add documentation 206baf7d8 chore: add a bit of typehinting 4ac7a4fda Allow empty min_Value setting... 283e8045d PercentChangePairlist should partecipate in regular tests 8637f4a70 Remove SortKey dynamics and setting 4a768682e Remove unnecessary logs and up description dad4f3059 Correct calculation for percent calculation and use tickers 1b81de01b 10348 | run ruff formatter b09f9e8c1 10348 | Update tests and add pairlist constants 4b1177e07 10348 | Create new pair list to dynamically fetch pairs based on percent volume change f714d1ab2 Added unlock_at field to protections document dcc9d20cc Remove unnecessary statement d590ab003 Add unlock_at config test, simplify validation a3c52445e Simplify validation be3fcd90e Remove unneeded property 26aa33645 Combine "until" logic into calculate_lock_end 65972d9c0 Add cooldown with timeperiod test d13f47ec0 align wording to simplify "locking for" element 1e36bc98b chore: Remove unused method 16dd86e73 _unlock_at should be private be894664e Fixed building of wrong reason texts Removed unnecessary method set_unlock_at_as_stop_duration() af505b346 Fixed an access on the config by a wrong config key 77b4689ac Fixed implementation of unlock_at and updated unit tests 57118691d Removed entry in gitignore 2b456cbde Added unlock_at field for protection config ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 1 year ago

FreqAI - 2024.7.1

Same as 2024.7 - Fix issue with raspberry pi dockerfile build

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 2 years ago

FreqAI - 2024.7

Highlighted changes

  • Improved pairlist backtest support check (provide more accurate information if a pairlist is supported in backtesting or not).
  • Move terminal output tables to Rich for improved formatting.
  • Enhance list-exchanges output with “DEX” information.
  • New Possibility get Orderflow data in your strategies. Read the Documentation for more information!
  • ccxt.pro - use websockets to get uptodate ohlcv data (currently available for binance spot and Bybit).
  • Add progress bar to download-data (and --dl-trades mode).
  • FreqUI:
    • Add option to configure scale side (left, right).
    • Show Entry and exit direction (long / short) in tooltip.
    • Add Indicator Templates functionality
    • Show stake-currency amount for partial exits.

Sponsors

You can sponsor the work on freqtrade via the following links: * froggleston (FTUI) https://github.com/sponsors/froggleston/ * robcaulk (freqAI) https://github.com/sponsors/robcaulk/ * xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

How to update

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

docker-compose

bash 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 ``` ## Highlighted changes - ... ### How to update As always, you can update your bot using one of the following commands: #### docker-compose ```bash 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 ``` b117f085c chore: Bump version to 2024.7 2d90cf48b run a check for uptodate json schema 2fd6c962d chore: improve extract json script 1226593f3 chore: Add initial version of json schema 25569686a chore: Update Path to write json schema to 61b573bb8 feat: Add "strategy override" hints a368c0030 feat: add freqAI remaining parameters 06bbcf4c9 feat: add some freqAI parameter descriptions edf66deb9 feat: add RL parameter descriptions 075f6b941 feat: more config schema descriptions - emc 05b202caa feat: more config schema descriptions (exchange) aaac080df feat: more config schema descriptions 14a20c703 feat: more config schema descriptions 6cfba2c22 feat: more config schema descriptions (api_server) 29e9dd44e feat: more config schema descriptions (telegram) 00729a87f chore: remove validation for deprecated settings ca47e3489 feat: more config schema descriptions abde1a1c3 feat: more config schema descriptions d42b5b773 feat: Add more descriptions to config schema 4e5114050 feat: Add initial descriptions for config schema 08ed99d20 feat: Add build-helpers json schema extract script 6454a7a45 chore: Remove Phemex from blocklist. 6645fd5d8 chore: fix flake8 error b88b1cbbd fix: Update `/trades` to include L/S indicator 818e4d86b docs: explain that the strategy may be called with dataframe of length 1 bf9aa2c38 chore: Extract config validation schema a3e6e34bd chore: update pre-commit hooks 152b2c6a0 chore: Bump pre-commit a96488407 chore: Remove now unused type ignore comment 97a374909 chore(deps-dev): bump mypy from 1.10.1 to 1.11.0 0d7400fff chore: fix pre-commit error 509334973 chore: remove potential flakyness from test b3e3dff56 Improve log message uppon pair watchlist removal dfe1a42b7 docs: Migrate "different db system" to advanced setup a1e73ffe9 docs: update sql cheatsheet with a few warnings 72f6ee8e8 feat: Add Orderflow -> exchange support validation cb1539463 Typo in docs 7b459336a chore(deps): bump cryptography from 42.0.8 to 43.0.0 1e23f7442 chore(deps-dev): bump the pytest group with 2 updates 4a5780586 chore: bump pyarrow pre-built wheels ac17bfbf4 types-cachetools - pre-commit 328cb5e9c chore(deps): bump ccxt from 4.3.61 to 4.3.65 2598895d7 chore(deps): bump pyarrow from 16.1.0 to 17.0.0 f0e1ac6e4 chore(deps): bump uvicorn from 0.30.1 to 0.30.3 86b497386 chore(deps): bump cachetools from 5.3.3 to 5.4.0 6fc2be25b chore(deps-dev): bump ruff from 0.5.2 to 0.5.4 fdeb9355a chore(deps-dev): bump types-cachetools in the types group faf7b830c fix: Fix WS restart bug after network outage 8cd20f191 chore: update pre-commit hooks b5e7c6406 chore: remove redundant raise 00724fdff chore: renames orderflow tests file 9eb599383 chore: drop `candle_start` and `candle_end` from trades and add test asserting trades columns 2560090a6 chore: Remove "version" field from compose file f5a92fcfc Support accountId as exchange secret 5c371133a chore: Improve wording c52e6d1cc chore: update pre-commit hooks 4cd75c975 docs: replace orderflow dataframe with dict in code comment 5930813df docs: Updated orderflow documentation 353dc79aa chore: invert some asserts e043797a8 chore: Tests should use dict format 8922f0cdf feat: use dicts instead of nested dataframes ad23ba6a1 chore(deps): bump humanize from 4.9.0 to 4.10.0 eba0aaf3c chore: remove contextmanager 663d9daef chore: types-requests - bump version 2d3e741f0 chore(deps): bump fastapi from 0.111.0 to 0.111.1 af5eef3e5 chore(deps): bump python-telegram-bot from 21.3 to 21.4 b704545ab chore(deps): bump ccxt from 4.3.58 to 4.3.61 2b082f180 chore(deps-dev): bump ruff from 0.5.1 to 0.5.2 ddab71844 chore(deps): bump jsonschema from 4.22.0 to 4.23.0 2b36a7e31 chore(deps): bump mkdocs-material in the mkdocs group aa8165cfb chore(deps-dev): bump types-requests in the types group 5cabd49be Fix comment 103db9a02 Add hyperliquid exchange overrides 9736e0d13 Update docstring alignment 1c46b287d chore: add support for "walletAddress" and "privateKey" 5b2b5285e chore: Support apiKey as config value b163f8fcf Improve test ba352522d Implement progress tracker to trades download b41cdfb68 Simplify by extracting progressbar definition 04c9626c8 feat: Implement rich Progress to download-data 87b78b5ec Add default to customProgress cust_objs 8a166b04f Align test directory with working directory d3ffdbf30 chore: Add small todo 79e603465 docs: Improve orderflow documentation 646ca5e3b Docs wording 50dcd0481 chore: Add cryptocom base exchange class 2dfa9ac13 applymap -> map c0d729bcd chore: remove deprecated read_csv options d25c76698 chore: update pre-commit hooks 9975788f5 Add workaround to drop orderflow columns before sending to plotting e5f6ce972 Fix "needed_candle_for*" logic a7fcd1263 chore: Fix typing 9c41ab10f chore: remove tabulate output f9af65915 feat: edge-cli output to rich 2d31314eb feat: bt-result to tabulate 06a0264f2 feat: period breakdown -> rich table 315351b57 feat: Tag table -> rich a605ae20a feat: initial backtest table to rich 5765bb4a4 feat: Update initial bt table c679a6aab chore: update pre-commit hooks 0e870ab47 chore: don't use pipe operator, not supported on 3.9 64d22bbd8 chore: Fix fstring incompatibility with older python versions 76a34efe3 chore: improve backtest test resiliance ae92807b5 chore: Update more test reliability 453ea0dbc update test for bt-output stability b208f978d Remove dependency on colorama 49a60fa67 Properly support "--no-color" for hyperopt 28f4e1c06 Colorama is not necessary for hyperopt commands anymore 4d2b6d6d6 chore(deps-dev): bump ruff from 0.5.0 to 0.5.1 ddb4cb853 chore(deps): bump pydantic from 2.7.4 to 2.8.2 91fe16344 chore(deps): bump orjson from 3.10.5 to 3.10.6 7e52124d8 chore(deps): bump ccxt from 4.3.54 to 4.3.58 71c29aa36 chore(deps): bump scikit-learn from 1.5.0 to 1.5.1 c0b20f88a chore(deps): bump mkdocs-material in the mkdocs group 94565d0d3 "best" should be shown in gold 004e1101e Improve resiliance, drop compatibility test 62320a361 chore: fix now failing test 879797e7c chore: remove no longer used result formatting methods f51b63fc3 Fix wrong type for live running 4d6f39913 Implement colors for hyperopt-output 8f0ac0aae Remove old output from hyperopt-list f05c01975 feat: Update output for hyperopt to Rich befefd449 Add a generic Progressbar which allows printing additional objects 69628736b feat: add hyperopt output functionality 483a829d0 Revert "chore: pre-commit now needs rich types" 8c807f00b Extract row before exploding for better typing bc60855b9 chore: pre-commit now needs rich types 4d5b330b7 Improve rich generic 296bf9dc1 chore: Fix unused import dba7f9968 chore: fix minor type gotcha 7adc3c2ef Improve rich_tables generic 8e2f28955 feat: rich table for recursive analysis 5e88bd231 feat: lookahead-heplpers -> rich table e70547194 chore: don't return what ain't being needed cdae61e15 feat: use rich tables for entryexitanalysis ffb0cf1a2 chore: Improve typing 9f628309e feat: Update list-pairs command to use rich tables c296a8cf8 Improve rich tables interface c9b3987d3 chore: update rich-table print helper 768a51cb9 Extract rich_table print to utils 2d8470b25 Remove unused imports 8d00e1d92 feat: Use Rich for list-strategies command 2e0372d24 extract print_rich_table bafb6507c Use Rich table for pair list output b6b589b1f Update list-exchanges to use rich tables 95097d1f5 chore: don't overwrite exchanges variable 6b98bfe9b Simplify output 7a67771e4 feat: include orderbook / fetchTicker to exchange_has bfe18573f Improve wording for list-exchanges command f3e2dcd34 chore: update get_patched_exchange argument 8b5097341 chore: Fix misuse of asyncio.sleep in test 36a44575c chore: update patch_exchange to not override builtins 1e287de58 chore: fix mote A violations in tests and scripts 4a4e6bc95 chore: fix flake8-builtins overrides deeabbca1 chore: Don't override builtins 8296e7010 chore: enable NPY ruff rules 059fb16a3 docs: improve dev setup docs 8d9825ac9 chore: noqa S404 0eadd51ff chore: Highlight non-used variable in test ab0fd461e chore: Replace np.NAN with np.nan 53043d197 Pin numpy install to <2.0 in setup.py aa86e9565 refresh_latest_trades: use `max_candles` to determine trades download count cd8bd9038 fix: Reassign "options" on market reload 72c7f118a Improve test naming to be clearer 3486327e7 Extract global `cached_grouped_trades_per_pair` into `IStrategy` e5221bded Align constant defaults for `cache_size` with `max_candles` 7c697d4de fix: Validate trades for fee d1a0f5a4e Add test with invalid trade object 6b9903316 Improve trades-cached handling 0e51baeb1 Better structure for config docs b3bcbfa80 Add extended Websocket documentation 57316e187 Don't evaluate comment in waves exchange 7ab4eecb1 Fix header indentation 8a246b831 Update non-working ccxt doc links db8d4dc99 Add exchange.enable_ws setting to doc 01506a2ad chore: update pre-commit hooks 04b65eae3 docs: Fix format used for backtesting-predictions d95322645 use correct sleep method in tests 3348283b0 Test api with new dex attribute b58e41298 feat: Add "DEX" output for `list- exchanges` subcommand d8eb6e59f Fix missing import e5a453a1f Improve clarity on argument definition 44c9358ac Simplify argparse imports 0f1894037 Increased Args typehint dcb442f1d Fix / Improve supported options for lookahead-analysis 027cd4494 Clarify dry-run market order slippage logic 1482a5c78 Scipy 1.14 dropped support for python 3.9. a800152a4 Update gzip open mode to text mode 68b62e6d9 Bump TA-Lib binary packages c4bc5356d Add Ruff Async checks fa8e95819 chore: update pre-commit hooks a26176a9d Bump ruff from 0.4.10 to 0.5.0 33aea106d Bump python-rapidjson from 1.17 to 1.18 5aceea728 Bump mypy from 1.10.0 to 1.10.1 7fe7e1da4 Bump scipy from 1.13.1 to 1.14.0 958abecb2 Bump aiofiles from 23.2.1 to 24.1.0 870a3ea5c Bump ta-lib from 0.4.31 to 0.4.32 dd060f104 Bump ccxt from 4.3.50 to 4.3.54 a882e9e47 Bump time-machine from 2.14.1 to 2.14.2 11798ae01 chore: update version to 2024.7-dev 0e0c585ae orderflow tests: removes unused import 7de102320 orderflow: use cache per pair dad2cad52 orderflow: fixing typing 323274ece orderflow: clean code 4735835aa orderflow tests: reset orderflow cache between tests 54df6f5b9 orderflow: adds `cache_size` to config 390373cb9 orderflow: ruff format ecd211894 fix: copying orderflow dataframe from cache doesn't work 605f53a60 Add test for new warning modes 282198a81 update enum value to Biased 08a27abbd orderflow: clean up populate_dataframe_with_trades code d23c33a47 feat: add caching to populate_dataframe_with_trades dd42a7923 Remove most explicit "supports backtesting" checks 23256466e Update pairlist tests accordingly ea58be270 Classify individual pairlists for backtestability c1e938ccd Add "BacktestnigSupport" method to pairlists 2bc575632 Update proxy documentation 094dc18e8 set wsProxy for exchange calls 2d6408a36 feat: adds `max_candles` to orderflow config 0eeaee21f Avoid "restart" failure - reset ccxt cache 84e8a19bd Remove duplicate log message 31219299d Don't fail trades loop if one pair fails 4e319765e Slightly update docs with warnings 9da0437e3 Improve exchange_ws shutdown f075d728c constants: make "orderflow" fields required d4ccc7909 Control pytest log formatting 0993d1295 Add timeout to some tests d5361d84f use np.where instead of apply bfb29d3c1 orderflow: fix ask/bid & buy/sell mixup 87eda5fc2 Properly mock ccxt_async init 122896f9a Improved "task done" message 8b90643f3 Don't show "exchange closed by user" exceptions 12852438a Call connection at intervals 33e61b130 Extract connection reset from exchange_ws 7e736a34d Reduce ccxt.pro verbosity f33c4db57 Apply ruff formatting to ws branch cabd36253 Reduce level of "reuse watch result" . . . 212ac2073 Don't multiply klines_last_refresh 627154cb6 improve ws "removing" condition 7ec8b28be Re-adjust ts handling to not use time.time() 765fa06da Deepcopy ccxt ws result d5d818be8 Remove unused import ed8b9018c Properly handle shutdown (canceled coroutines) 68c36ce07 Fix typo b5239f06a Improve log formatting 7bc4fdca2 remove pairs from _pairs_schedules when their coroutine stops 93cdf1bb5 Simplify logging 554d4134f Add humanized date to debug log 45c17f244 Reduce excessive log again ce33b031f Show pair for task finished fc66a12c1 Improve "stopped" messages 85725b547 Improved exception message c482b7e40 Add log for "removal" tracking 80c7d4eb5 Improve debug logging d3962a7c0 Remove websocket init for non-trade modes 2ade5191e Ensure shutdown of async exchange, fix test d42e012ec ws - Improve cleanup behavior 4e75e5947 Skip futures tests on exchnages not supporting futures ... 9f2708247 Enable ws for bybit f324af938 Improve WS logic to assume a candle is complete if time rolled over b5dc54072 Ensure exchange objects are not undefined c61d9e0de Reduce verbosity c0c775114 Slightly improved loggign 0ec751826 Opt in binance to websocket support 137ddb2ec Require opt-in for ws enablement to allow slow rollout e31d8313f Improve ccxt_ws test setup e3887a33b Add Helping comment to ws_compat_tests bd9ebe4a7 Improve ccxt.ws live test f9ce0bb9a Improve exchange formatting 35e2e58a5 Improve formatting a83517759 Initial swat at online WS test 8375209a8 Add fixtures for exchange_ws 55bd7db02 Don't forget to close WS session c18b6cdb7 Improve stop behavior 4832c1097 Only import ccxt.async when necessary e0b4e16d1 Remove ob_test stuff 67a6c11f6 No longer import ccxt.async_support 55ed505f9 Update exchange_ws get_ohlcv logic f90574abe use OHLCVResponse in ws 0b620817a Don't append fake candle fcaee3370 Improve log msg 3d6cef355 ccxt.pro - first attempt at test ec6c54367 Add exchange_ws test case f22331990 Improve typehint for ohlcv endpoint e8b4bcc65 use default argument dadc96306 Better define what interface is external 8a00bf318 Use proper typehint aef0324aa set markets for ws exchange on reload f4f8b910f Improve exchange_ws terminology 60cfda5d5 Add very basic exception handling f9524aebe Improve temporary log output for exchange_ws eda8a767c Improve ws exchange 18dabd519 ccxt.pro - move get_klines to ws_exchange e2b567165 remove double log 972b932e5 Implement ws cleanup 2fd5b4a6e Use websocket results 1d12985b7 Update exchange_ws with cleanup function bd494ed67 Cleanup exchange changes 3468edddf Add enable_ws config setting 51890f80c Add parameter for ws enablin 34ccada90 Tests with seperate thread e985c1890 Implement basic ccxt.pro to test ad7b78ec9 Update exchange init to use .pro if available c9b1071ba Use api_async for exchange_has feeccfeda Update list-exchanges with watchOHLCV 41def8b28 orderflow: removes unnecessary code 5dcf75f64 exchange: replace `OperationalException` with `logger.error` message 82e8901db orderflow: remove unused function `orderflow_to_volume_profile` 07034ed7a orderflow: add comment with insight about imbalances 24707ab7b orderflow: raise DependencyException instead of raising generic exception 4629362a6 Fixing merge error bf3eeeb0f Use `.exception` instead of `.error` for trace logging 32f931ca2 Revert "`refresh_latest_trades`: remove "-cached" from trades pair files" 0673f3ec6 Remove unused function d0eb55a0b Small type fixes 1167917cf `constants`: add ranges for orderflow config properties 8afcaeeed `trades()`: add lookahead warning to docstring ab7f8b3a0 `imbalance_ratio`: use ratio instead of percentage 0460ce45f ruff format: exchange/trades_load f99e8f18b `refresh_latest_trades`: removes TODO 839827c0d `refresh_latest_trades`: remove "-cached" from trades pair files d33a14aab `test_refresh_latest_trades`: removes TODO a56faf503 ruff format: orderflow / public trades 6c696e14f `test_refresh_latest_trades`: mock `datadir` with `tmp_path` f87cd5dac Enables `use_public_trades` only in `test_refresh_latest_trades` ec9d1812c add `test_refresh_latest_trades` to test_exchange dd432ffbd cleanup ruff and isort errors 10cbc7648 use `timeframe_to_next_date` and `date` to calculate `candle_start`/`candle_end` 56b07386a fix `_now_is_time_to_refresh_trades` so it checks for latest fetched trades 69d098e26 Dataprovider test f32154f38 Exchange assert is only relevant for live mode. 28e4711ee Enhance test for dataprovider e0f1b1e48 Attempt to reduce diff as much as possible 34d3389b2 Avoid some unnecessary linebreaks 843c68b07 Don't use noqa. 59dee5f6d Update config test exception due to changes on dev 53702bfdf fix: make `until` non-optional d226e7054 fix: remove unused stop_on_from_id f663b53ac Add basic config validation 1d5f2b64a Add simple verification that orderflow is configured correctly 7e387f96a Fix comments in config sample b5307f828 Fix bug caused by any typing 21bca95b6 Group things logically in exchange class 86fe76518 Improved naming on max_trades 9020c3290 Fix imports after dev merge 0f3d538f6 Avoid duplicate pandas imports bce5dc4a4 Simplify formatting 6827e17d1 raise error if populate_dataframe_with_trades fails 174c830b2 formatting changes 1f6046df9 work through open TODOs baf2cf696 Fix import error in one test case 9c0c578b0 Bump fastapi from 0.109.2 to 0.110.0 2b6a38bff Bump cryptography from 42.0.4 to 42.0.5 c66d7bc43 Add warning about excessive use of position_adjustment 36fede76d Bump nbconvert from 7.16.0 to 7.16.1 4b6eab263 Bump pydantic from 2.6.1 to 2.6.2 8944615c0 Bump orjson from 3.9.14 to 3.9.15 27e005460 Bump mkdocs-material from 9.5.9 to 9.5.11 cb00cd71b Bump the pytest group with 1 update 1620c1edd Bump Docker Python version from 3.11.7 to 3.11.8 74f01c437 Clearer wallets variable/parameter wording 0649fe355 Update comment around funding fees b8117759d Enhance funding-fee call test to account for different timezones 21eecb217 Ensure pytz is updated regularily by pinning it f3f4a659e Improve some type safety 7d9ecb7be Add check to verify that "since" is properly respected. cfa8fd825 Remove pointless comment f16d1a707 chore: Remove wrong typehint 983aefeab Remove duplicate pairlistmanager init 426e7c48e Update typehint for candle_cache 7db2367de Improve ohlcv pair cache with since_ms 0b9e7be8f Fix range-stability filter downloading too little data 392d5ae09 Use set to reduce iterations b9f361b33 Bump cryptography from 42.0.3 to 42.0.4 eb175eeeb Add type-hint to exchange_has dict acb34c582 Bump ccxt to 4.2.47 fc343984f Fix some tests due to new method b18733831 Update "exchange_has" validation with new fallbacks 35be790f5 Add test for fetch_order_emulated 322a3a3bb Add fetch_order_emulated to support exchanges without proper fetch_order method 871fa255f Bump tensorboard from 2.15.2 to 2.16.2 0eb16023b chore: update pre-commit hooks 80e9e200e Fix / improve styling in test class 2de303e2b bump types-requests pre-commit 45bf3c8d4 Bump the types group with 1 update fca914743 Bump ruff from 0.2.1 to 0.2.2 c38c3c719 Update sqlalchemy in pre-commit 96efaca83 Bump sqlalchemy from 2.0.26 to 2.0.27 82791bbb0 Bump pre-commit from 3.6.1 to 3.6.2 77e0dfd46 Bump scikit-learn from 1.4.0 to 1.4.1.post1 e3a128f3c Bump orjson from 3.9.13 to 3.9.14 bb6c31c55 Improve formatting in drawdown calc b6c19252c Further increase test coverate of max_drawdown 1b00f4ad4 Bump plotly from 5.18.0 to 5.19.0 9aa01c020 Bump cryptography from 42.0.2 to 42.0.3 e65199d5f Bump urllib3 from 2.2.0 to 2.2.1 d5543302e Bump the pytest group with 1 update 9792e447e Fix bybit spot live tests b67f2ddb4 Update telegram help with new wording 165003e17 Fail if unified account is detected. 24735945f Add log message for Bybit accout type 0f4bffca9 Remove unused import 440a843d0 Use "ohlcv_with_cache" for further pairlists 6a68ced6e Add explicit test for ohlcv_with_cache 671426540 Refactor ohlcv caching to exchange class a19dafe8f Update pairlist cache behavior in VolumePairList a0dc21e17 Enable caching for "filter only" Volumepairlist 099996ced Add additional test case for VolumePairlist in range mode 6da684258 enhance volumpairlist range test 4c07d2fb8 Improve validate_exchange 0a04cacc9 docs: Update sql_cheatsheet.md 25ee332dc Don't tick on ttl cache 103af46e7 Use Markdown V1 - update tests 51d799828 Change enter_tag, exit_reason, mix_tag performance messages from HTML to Markdown to fix some string encoding issues. c99184af2 Added escaping to enter and exit tags on telegram performance messages. ec1b676ab Fix edge-case when calculating cagr aa1d54993 Double newlines between functions ... ff5364ae5 Fix duplicate parentheses 90c0b554a Adjust tests for new fields f7eb14ae0 Add open_fill_date stuff to json schema d00450917 Simplify trade_model serializations cb9529893 Add dt_ts_none helper c491c2a8e Adjust for ccxt exception hierarchy change 731fbe6f1 Improve log message e63da230d Simplify some pairlist conditions e696c92a0 Clarify processing_mode for RemotePairlist 27556f934 Don't load empty dataframes - skip these 9a8ae99fc Add debug output showing the pair to be converted 0a3b27622 Bump the pytest group with 2 updates 7c33c8210 Bump tensorboard from 2.15.1 to 2.15.2 0796f4976 telegram: ensure msg update test uses the correct edit_message_text call 334196441 use query.edit_message_text to simplify telegram class 541b7a280 Bump python-telegram-bot from 20.7 to 20.8 aeb5e9067 Bump mkdocs-material from 9.5.8 to 9.5.9 f15b931d4 Update sqlalchemy pre-commit cf4f57182 Bump sqlalchemy from 2.0.25 to 2.0.26 a51f7a31d Bump tqdm from 4.66.1 to 4.66.2 7f584966a Bump ccxt from 4.2.39 to 4.2.42 ee4ff45c1 Bump pre-commit from 3.6.0 to 3.6.1 329039d09 Bump uvicorn from 0.27.0.post1 to 0.27.1 82771cf85 Slightly improve memory-usage of kraken-convert 34b046355 Allow wildcards for pairs filter 4351d93f2 Allow limiting kraken pairs to `--pairs` selection bbd68a5d0 Align new-config documentation examples 2d7efca7c Bump nbconvert from 7.14.2 to 7.16.0 df1f07397 Bump mkdocs-material from 9.5.7 to 9.5.8 9c72eedb7 Bump ruff from 0.2.0 to 0.2.1 9a3955dc0 Bump numpy from 1.26.3 to 1.26.4 992faad4d Bump ccxt from 4.2.35 to 4.2.39 3ca0130a8 Bump pre-commit/action from 3.0.0 to 3.0.1 705ee7d2f chore: add dependency groups for regular updates, 5dd856af6 Allow int as trade-id parameter 5b13540bc fix strategy-updater docs e84bc1494 Fix wording fully. caf169cab fix: logical error 51a4d25ae chore: Update ordering of requirements in setup.py 52c710555 Bump technical to 1.4.3 cc9d4d3f0 chore: update pre-commit hooks 1255517c5 update tool.ruff configuration to match 2.0 version 3e89343b4 Remove unused argument 5b988784d Bump ruff from 0.1.15 to 0.2.0 a11aacc13 Bump pydantic from 2.5.3 to 2.6.1 470a05130 Bump orjson from 3.9.12 to 3.9.13 43e23d252 Bump fastapi from 0.109.0 to 0.109.2 1a79dc16f Bump cryptography from 42.0.1 to 42.0.2 ef5b71dc1 Bump peter-evans/create-pull-request from 5 to 6 d4e1b22c8 Bump mkdocs-material from 9.5.6 to 9.5.7 693ca56fb Bump aiohttp from 3.9.2 to 3.9.3 9c70c65e0 Bump ccxt from 4.2.25 to 4.2.35 4a8553beb Bump urllib3 from 2.1.0 to 2.2.0 0a97d03a7 Bump uvicorn from 0.27.0 to 0.27.0.post1 c1eadb17d Update Tests data to work with new cached levtiers 7bfb6a0c6 Update cached binance leverage tiers d530dd590 Improve formatting of leverage 79066c3d3 enable sub-minute backtest detail timeframes d15f17a03 chore: remove unused parameter `pairs` from `populate_dataframe_with_trades` 6bdf6bed7 fix tests: add comments 5b637bc9f tests: use orderflow row that actually has stacked imbalances 3df04008d fix tests: move orderflow tests into own dir b15e47ded fix tests: use testdatadir c4a024e62 Improve docs 7248f2093 Direct import to avoid circular import error 3a1bb83f9 EOF fix 7296ce72c Adds more infos to docs b68afb406 Fix markdown bff93e31c Moves orderflow logic to it's own file 64e9784d1 Remove formatting changes d7b88194e Resolve various issues and comments 6e7a536c7 Replaces public_trades_to_dataframe with trades_list_to_df c610c44a4 Removes unrequired `drop_incomplete` a7e4a5e2d Removes `clean_duplicate_trades` c85ded14d Extract `_if_enabled_populate_trades` 71e36be34 Use `get_historic_trades` directly aab3c07b8 Use `_max_trades_candle_limit` directly 50070bc2c Removes unused import e60b997fd Pass on missed argument `stop_on_from_id` e8714d52c Removes nonsensical if gate 0a4da26f2 Resolve using trades directly from `trades_load` when backtesting eaa85e865 Removes `do_plot` and old comments 0fd2aca47 Remove `if since` e8c911e7b Remove since/until superfluous arguments d23079f83 improve tests slighly fc15f98b8 Reduce unnecessary newlines 4b0383f19 Fix overly long lines a216a08f0 Formatting ... 7ae69a9cd update imports cfcc8f9fd Ensure docs are rendered in the navigation pane 849413c5e Changes scale from type int to float 4ae63d7ec Fix superfluous formatting 9ec45ce04 Ruff fix 3d92b40ad Ruff fix: E303 too many blank lines 5b264d66e Ruff and flake fixes c40f3d91d Ruff fix 1a0610f3e mypy fixes 14fb29516 Removes unused code path 0647ce59e Fix error if until is undefined 2925a2a2f Fix regression BaseException d6e346497 Flake8 fix ca8cb73ef Ruff fixes 69eb35def Ruff fixes b8f92ecc5 Ruff fixes 118ca784e Adds TRADESResponse 634e81c7e Fix ruff 79074ea4b Fix untrue ruff error by adding line ignore 39ba6fe56 Ruff --fix 72a20e992 Ruff changes for clean_duplicate_trades, populate_dataframe_with_trades, public_trades_to_dataframe b117f1b47 Fix superfluous changes e6c1c3d60 Fix immediate rename of argument 9c070431e Fix isort after ruff changes f61c75ffc Fix isort imports 3ae566768 Fix merge regression regarding _pairs_last_refresh_time c04cce52e Fix unnecessary deep intend aa663b926 Fix tests for use public trades 1f783b299 Start writing orderflow documentation 8337bf3c4 Fix typo 0153fd8d7 Update constants.py f6a8e03b5 Remove invoke self code for test_converter_public_trades 43645729a Don't fetch trades for informatitve pairs 6aaf5d606 Explain why not using IDataHandler e405c4209 Copy `trades` dataframe directly instead of using deepcopy 62cec9f04 Revert "Add .envrc to .gitignore" b79aeb0a0 Shrink public trades testdata by using BCH 1f0077b1b Add .envrc to .gitignore 1a4eabc0b converter: use new trades_df_remove_duplicates 6243c0e4b exchange: fix import of clean_ohlcv_dataframe, raise exception when no trades received bb8ced525 exchange: re-add hardcoded required candle call count max 8adf77621 fix imports for orderflow 2c995977e exchange: fix last arrow use 0c9df2ed6 exchange: removes duplicate _now_is_time_to_refresh_trades method 4ef901e5e add back DEFAULT_ORDERFLOW_COLUMNS d514d3aec fix docstring back d4890eade exchange: re-remove arrow use a81a3be8d Fix imports and handling of trade regarding changes from PR#9065 9f507e014 Update converter.py, revert random formatting changes a9bd9b506 use fetch_trades' public trades to populate dataframe 4478f7249 Update converter.py, revert random formatting changes 1530bb6a4 fix: unfinished trades data for last candle 2e1c66144 fix: remove obsolete infer_datetime 387a36e73 fix: fetches only every second OHLCV candle 4abac1364 refactor(move function): refresh_latest_trades into dataprovider 64a072e20 Converter: fix wrong return type b0074cbf8 Converter: log exception instead of error 33af45003 tests: replace load config from file with static dict bdca2ac96 tests: removes cached and stratgey specific tests 0796bfadd optimize and fix issues with refresh_latest_trades d96f314f1 converter: revert cache for public trades because of memleak 1bc206ea8 adds tests for public trades branch (no data, too big) 070d28b6d Exchange: make required_candle_call_count configurable 0f4e14703 use fetch_trades' public trades to populate dataframe ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 2 years ago

FreqAI - 2024.6

Highlighted changes

  • Simplified windows setup script (./setup.ps1 ).
  • Improved Bot startup time.
  • Improved wording on backtest output tables.
  • Added keyword argument support to the rest API script to simplify usage (and provide all available arguments for non-cli usages).
  • Workaround for broken install due to pip bug.
  • Add mixed tags view to backtesting.
  • FreqUI:
    • Fix popover not showing fully.
    • Add mixed tags view to backtesting.
    • Filter pairs in pair summary view.

Sponsors

You can sponsor the work on freqtrade via the following links: * froggleston (FTUI) https://github.com/sponsors/froggleston/ * robcaulk (freqAI) https://github.com/sponsors/robcaulk/ * xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

How to update

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

docker-compose

bash 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 ``` d9b588fe5 Version bump 2024.6 1c4e809f8 Update telegram.py 5fa24163f chore: update pre-commit hooks 5effd6259 Fix setup.sh pip version 58d6abe15 Update .pre-commit-config.yaml 488d149b1 Update precommit config 7644c097b chore: update pre-commit hooks 9ac7f90cd update precommit ead057d6c Bump sqlalchemy from 2.0.30 to 2.0.31 5d13a2249 Bump numexpr from 2.10.0 to 2.10.1 6b84a2907 Bump filelock from 3.15.1 to 3.15.4 b2376c41d Bump ruff from 0.4.9 to 0.4.10 7de5e88df Bump ccxt from 4.3.46 to 4.3.50 9f892e2e4 Bump psutil from 5.9.8 to 6.0.0 56f2a77c7 Bump bottleneck from 1.3.8 to 1.4.0 40068dfed Bump types-requests in the types group b3cc761d8 Update pairlists.md b7f180ab3 fix: Improve safety of custom_stop return validation 4f43e5964 Add test showing behavior of #10349 93ed61a62 Improve stoploss test accuracy f117e66f5 Pin pip from updating 9e9aacc10 Pin pip to 24.0 for the moment 02c38f739 Prevent data-downloads for exchanges that don't support this. 776a8e43c Add trades_has_history attribute 8ac5fce06 Improve note wording 226f90772 Add deprecation note to plot modules d5bad0ed4 chore: update pre-commit hooks 8867f8ddc chore: update pre-commit hooks fd9814df3 Bump lightgbm from 4.3.0 to 4.4.0 42c1d9a2e Bump pydantic from 2.7.3 to 2.7.4 b072a5343 Bump orjson from 3.10.3 to 3.10.5 9804443a8 Bump urllib3 from 2.2.1 to 2.2.2 bcf01bd9a Update TA-lib binaries 0b4ce6e16 Bump ta-lib from 0.4.30 to 0.4.31 d3baade44 Bump filelock from 3.14.0 to 3.15.1 35e476c47 Bump ccxt from 4.3.42 to 4.3.46 f4f6dad06 Bump ruff from 0.4.8 to 0.4.9 d7c0ae225 Bump mkdocs-material from 9.5.26 to 9.5.27 in the mkdocs group c1c4a3844 Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0 a9ebefdc3 Prevent warning on __del__ during tests 2223c16d0 Load hyperparameters when calling plot_config df47d154f Mock config loading for ft-client test 3979801a8 Update documentation about keyword arguments 6ec490727 Improve docstring c5b4d6bce Add teset for kwarg splitting 5a8838aec Additional test-cases 1b491e9e1 Update tests to support kwargs a03528406 Split client arguments to accept kwarguments 9d3e43516 Improve error for rest client 61971f394 chore: ftclient - Update naming of argument in main method 619484a4f feat: Make the new arguments kwargs only eac7d7119 Run CI against ubuntu 24.04 03d2d5dc5 Update bt_output types dd469944c Extract per-tag subresults from main backtest_result method 156eeb90b Output mixed tags table 68b8b2908 Calculated mixed tags results af6e7f5ec Skip publisher check for pester 7106ff692 chore: update pre-commit hooks 1b2cfc985 Simplify generate_tag_metrics logic b8a475263 Use proper type for exit_reason in tests 2ec444955 Use better column header for backtest output 9e3be765d Fix table style 12d7fbb37 Update docs for new wording 09b1b1ab9 Use "trades" wording in backtest tables 90efd0461 Improve typing in backtesting 21710aeca use kwargs in example for clarity 6aba413aa chore: update pre-commit hooks 1b66ad460 Keep torch at 2.2.2 for macos x86 versions 33a4d5596 Revert "Workaround macos CI fails" 03e7151c3 Bump tensorboard from 2.16.2 to 2.17.0 ac5e687c8 Bump torch from 2.2.2 to 2.3.1 0972c213e Bump cryptography from 42.0.7 to 42.0.8 d2da23f5d Workaround macos CI fails afdb1f66b Bump ruff from 0.4.7 to 0.4.8 77038011c Bump python from 3.12.3-slim-bookworm to 3.12.4-slim-bookworm 1340412c9 Bump python-telegram-bot from 21.2 to 21.3 db18f8ce6 Bump pydantic from 2.7.2 to 2.7.3 40cea6d28 Bump ccxt from 4.3.38 to 4.3.42 48ae99283 Bump packaging from 24.0 to 24.1 0c6d3fd67 Bump mkdocs-material from 9.5.25 to 9.5.26 in the mkdocs group b56ea4f63 Bump pytest from 8.2.1 to 8.2.2 in the pytest group f314607bb Update pairlists to use *args **kwargs init 29e23dfdb Use self._ for pairlist inits 2cb89996d Remove unused imports 3b86e3e66 Fix deprecated "abstractproperty" 598e46189 Remove unused __init__ method 0d6109211 Fix further windows tests 35700d145 Fix some windows tests 36ad3bff6 Fix /tmp usage in tests 208797452 Fix some direct usages of "/tmp" e3b8e21b7 chore: Enable ruff "S" rule (bandit) de5a5d096 Don't use assert in non-test code. cef9c45f6 don't use plain eval 2f83ff73e Further bandid noqa's 50e4d273f noqa empty passes on version detection 6b932133e Log during cleanup bd8b8e8b8 Add a few bandid noqa's on acceptable use a5d641743 chore: use nan instead of NaN (numpy 2.x compat) 779905a8f chore: update pre-commit hooks 133dc1d34 api_async is mandatory ... 269135c2c Fix trading_fees test b294318d0 Update tests for simplified init 7c6a5a34f Move async_mock into conditional a2251d045 Only load markets once fbee48a10 Minor test comment fix d79fb8663 Update exchange tests b516a0827 Update hyperopt test mocks ab4c9ccfb Update bot test 5a08d1acf combine _load_markets and reload_markets d5fdaf26c chore: update pre-commit hooks 0f080a871 Control pytest log formatting cd3f083cd Update ta-lib pre-built binaries c40834eda Bump pydantic from 2.7.1 to 2.7.2 a0a869e8f Bump ta-lib from 0.4.29 to 0.4.30 eb7047c68 Add site_description to docs for better SEO 0115a7f29 pre-commit types-requests update 5144925b8 Bump ccxt from 4.3.35 to 4.3.38 a7e980817 Bump ruff from 0.4.5 to 0.4.7 a2b746f2a Bump uvicorn from 0.29.0 to 0.30.1 d97b19db1 Bump requests from 2.32.2 to 2.32.3 23b5298f0 Bump mkdocs-material from 9.5.24 to 9.5.25 in the mkdocs group 4cdfd6a02 Bump types-requests in the types group 5ea7008b2 Bump docker/setup-qemu-action from 1 to 3 7f70035c6 Bump docker/setup-buildx-action from 1 to 3 8eda43f68 Pin numexpr - it's installed as floating dependency anyway a05450c54 Add bottleneck dependency e9fb645b9 Exit-1 if invoke-pester created error entries c324981a1 Simplify setup.tests, avoid error log 49a6a1888 Fix setup.ps1 syntax error f6649314a use pwsh, not powershell shell e7559cc62 Update pester command 7b6864b99 Pester should fail "automatically" ... a2d5b4b2f include 3.12 in all methods d116952fe Don't use overly long lines 86e50b176 Don't take assumptions about the install location of git a306f5a24 Improve wording in setup script 93b64e7db Update documentation wording 69faabb3b freqai tests mostly assume backtest runmode 0e44cd91d StrEnum was only introduced in 3.11 . . . 5a0e0263d use StrEnum for RunMode e6a562f74 Ensure pairlist tests use proper mode 2ff6e9625 Hopefully, fixed the failing GitHub action 39bae749b Changed freqUI installation behaviour to auto installing 9c7bc374b Fixed the doc 055293db7 Updated Windows installation doc c9d67999e Updated Windows installation doc, refined logging 074434e83 Renamed freqtrade UI to freqUI a02ef7dce Bump dev version to 2024.6-dev 8dc70d15d ruff formetting 3da18c344 Add force_enter optional args and tests bad1d83ce Fixed some bugs, added unit tests 6174a49aa Implemented the changes to pass the review, implemented consistent variable naming, adjusted unit tests b9fd8d2ee Fixed log level of one log statement e29fcb45a Removed admin permissions, because it seems not necessary. Improved error messages. Increase speed of requirements installation by introducing new merging strategy. 670c5d006 Added powershell unit tests to CI config 1352240ec Formatted setup.ps1 6d261b828 Applied fixed from last PR review d12471619 Added unit tests 12b5376cb Revert "Updated gitignore file" ccb158804 Added setup.ps1 for installation/updates on Windows 5110c14d3 Updated gitignore file ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 2 years ago

FreqAI - 2024.5

Highlighted changes

  • Add BingX to supported exchanges.
  • Add BingX Stoploss on exchange support.
  • Ensure backtesting is using worst-case fees.
  • Fixed bug in backtesting where trades closed through adjust_trade_position() would not properly close.
  • Don’t auto-convert trades data to OHLCV if the exchange supports ohlcv downloads. (adds --convert argument to download-data).
  • Add Auto-format codebase to simplify contributions (this elliminates opinions about code styling and enforces a simple, generic style).
  • Support IPv6 addresses for webserver listen address.
  • Allow API’s for coingecko (both Demo and PRO). If provided, applies to both Fiat conversion and MarketCapPairList.
  • Allow empty string for fiat_display_currency - to simplify disabling fiat conversion.

Sponsors

You can sponsor the work on freqtrade via the following links: * froggleston (FTUI) https://github.com/sponsors/froggleston/ * robcaulk (freqAI) https://github.com/sponsors/robcaulk/ * xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

How to update

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

docker-compose

bash 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 ``` 8fc705608 Bump version to 2024.5 d98357235 chore: update pre-commit hooks 7ca96beca Amend rate to amount b27e52b27 Update rest-api.md efe610108 Remove bitmart online test skip d9f48f2ca Bump ccxt from 4.3.30 to 4.3.35 9d432baf3 Don't hard-pin ta-lib in armhf image 0e253cb07 Update buildx CI setup to supported action combination 89d8f27d2 Add fix for bitmart failing test 6952bac91 fix: codespell skip's to also work correctly on pre-commit hooks 6f7c82c9a chore: update pre-commit hooks 72d33070d Fix a few codespell typos 9705f40cb Exclude leverage tier cache from codespell 5e0f64ef5 Pre-commit action should not run pre-commit 49f580ce2 Upgrade ta-lib wheels 20d7ccf86 Bump scipy from 1.13.0 to 1.13.1 b12d5b4cb Update pre-commit types-requests ce4211d22 Bump schedule from 1.2.1 to 1.2.2 a7adb6721 Bump ta-lib from 0.4.28 to 0.4.29 b2f204855 Bump python-telegram-bot from 21.1.1 to 21.2 5c2a1dce7 Bump ruff from 0.4.4 to 0.4.5 1bfa40a2c Bump scikit-learn from 1.4.2 to 1.5.0 2cc9fe604 Bump mkdocs-material from 9.5.23 to 9.5.24 in the mkdocs group 3b8aa4677 Bump types-requests in the types group 83bb65132 Bump ccxt to the required version for bingx 30ad4ca9a Add bingx to list of supported exchanges 34d7d530a chore(tests): Filled orders should have an average. c6d132376 Add Binance filled order 89e3fc1c6 Test bingx order parsing 64c7f6b06 Improve bingx file formatting 71cb2ded7 Add Bingx stoploss documentation 7f990e7df Enable bingx stoploss 46e97e580 fix htx: Reduce amount of data downloaded on higher timeframes 32ff3ebb9 Improve handling for immediately canceled orders 9d3073d93 Add test for new "fully cancel" logic edd92194b have handle_onexchange_order delete trades if no order filled. ec0f6cb24 Add Properties for canceled orders to trade_model dc92787f1 Fix gone-wrong hyperopt fix d59422159 chore: update pre-commit hooks c3fa8a4c4 feat: Allow empty fiat_display_currency 23aef6e05 Bump requests to 2.32.2 d52431c58 --- updated-dependencies: - dependency-name: requests dependency-type: direct:production ... 531843ebc Improve message for fiat_display_currency 1588a4253 Update tests for coinGecko updates 468d0f8cf use FtCoinGeckoApi for marketCapPairlist, too 2cd3089b3 Update fiat-convert test cases 94e0a808b Add test, invert logic 9e0ccb1cf Rename coingecko wrapper file 8d1285bb2 Set session params instead of headers 5fd76a79f Add coingecko API documentation 3729daf08 Add type check for coingecko settings 1ff162cf1 Use coingecko api keys 773940e05 Update mocks to FtCoinGeckoApi 62166e23f Improve singleton pattern cb1600d7b Update fiat_convert to use FtCoinGeckoApi c1f780794 Add CoinGeckoApi Wrapper 7a309d692 Add explicit "fiat convert singleton" code 95077f475 Remove unused "mocker" fixtures in fiat_convert 0c16a4599 Fix odd bug related to singleton usage 4d2db3344 Add support for ipv6 f47272162 Update pyarrow wheels for 16.1.0 1a86d8120 Initial config for Bingx stop orders 1ae134e94 Bump pyarrow from 16.0.0 to 16.1.0 02a131821 Bump coveralls from 4.0.0 to 4.0.1 0d1917690 Bump ccxt from 4.3.24 to 4.3.27 70f847b0a Bump python-rapidjson from 1.16 to 1.17 79e522162 Bump mkdocs-material from 9.5.22 to 9.5.23 in the mkdocs group 6174817bc Bump the pytest group with 2 updates e49fec553 Simplify conftest setup (1000 fewer lines!) cdf42604c Update conftest hyperopt result c1d26d033 Don't calculate the "legacy" version of drawdown anymore. 3bf02c8a6 Simplify hyperopt drawdown logic a9f13d29f Fix test type errors 480477d17 Improve profitdrawdownhyperopt balancing 2a1ff7f9b Try improve profit-drawdown hyperopt acae6e75f Improve drawdown test case e35ad64d6 Move SQL Cheat-sheet into Advanced section b2cce5ccd update download data docs c6a513481 Improve wording of log message c0d43f6d0 Improve line formatting 223741015 Upadate test for new download-data functionality aa0f90bb6 Don't convert trades to OHLCV unless explicitly specified e6d5aa134 add --convert-trades argument to download-data 9b031490c Update all CI build stuff to 3.12 9ebdbed21 Update CI workflows to use 3.12 968f74edb Update docs for full 3.12 support 1e0782b62 Add support for python 3.12 in setup.sh 8d93f2718 Add simple test for "fetch_my_trades" parsing quality 34b06cd9a Bump ccxt min-version 1e04140ff Partially revert bybit leverage-tiers workaround a92178dd6 load_cached_leverage_tiers should allow a remote cache period e17afb255 Bump ccxt to 4.3.24 1e2662b62 Greatly simplify leverage tier loading for binance c06ae41fe Remove catboost stdout workaround 19d6ce544 Remove custom build process c955aa02d No extra styling ... 2a8cfd2e9 Add extra rtd rules ... 5fba44abe use dynamic build process for RTD fb73e23e6 chore: update pre-commit hooks d318c20d8 Bump ccxt.pro to 4.3.23 702ac14f2 Fix using wrong type a6b07ec96 Remove compatibility layer for calculate_max_drawdown c79b75ff9 Update remaining tests a6050cb77 Update tests for new interface bcb59265b Use default parameters for DrawdownResult 94786454b Use calc_drawdown method throughout the bot 0aa3ec284 Have hyperopt-loss function use calc_max_drawdown c8eb22dcb Add typed max_drawdown function 75965cd50 modify MeasureTime log message to include time limit and 's' suffix b1fd79d72 Schedule devcontainer pre-built to Sunday morning b36428c2e chore: update pre-commit hooks 929169856 A few more formatting updates 6a802f562 Add vscode extensions recommendation file 33b95e27d Update documentation to reflect ruff e848c6494 Add ruff format check to github CI 58edb0a54 Update misspellings that are being detected now 18e03f398 Partially revert odd formatting decisions ccb395c6c Ruff rule (commented for now) 5d4a93018 ruff format: Update setup b97ff77d6 Update a few missed ruff format updates 9d6e4ae67 A few more minor fixes a9732c619 Fix odd formatting by ruff format 876a8f9e3 ruff format: remaining files fea1653e3 ruff format: freqtrade.data 801ab4acc ruff format: optimize 2c60985e2 ruff format: optimize analysis da7addcd9 ruff format: hyperopt f1ef537df ruff format: hyperopt-loss ab3dbb7fb Allow flake E203 - d1db43dee ruff format: freqai e4e8c3967 ruff format: exchange class 53eefb944 ruff format: exchange classes 7ea5e4091 ruff format: util 5f64cc8e7 ruff format: rpc modules cebbe0121 ruff format: update persistence 5783a44c8 ruff format: template directory 439b8a032 ruff format: freqtrade/strategies 6bfe7aa72 ruff format: plugins/protections 700b7acb6 ruff format: pairlist plugins c9d301e4f Ruff format: more random files 73e182260 ruff format: more files f8f9ac38b ruff format: loggers 9303ae29d ruff format: freqtrade/configuration 8ffc48e4f ruff format: constants 3c9be4723 ruff format: commands 5eb4ad220 Ruff format edge 794e30fed ruff format: update enums 1a4bff7fb ruff format freqtrade/resolvers 9121d3af6 ruff format: update scripts dc3a3d1cf ruff format: udpate build_helpers 15f32be17 ruff format: update ft_client 4f5bf632f ruff format: remaining tests d761bd8ce ruff format: tests/freqtradebot 644f120ab ruff format: tests/hyperopt 02075b15e ruff format: update more tests 40e161a5b ruff format: freqai tests ffd49e0e5 ruff format: tests/data d8a8b5c12 ruff format: Update more test files ca1fe0603 ruff format: tests/plugins 5a9481772 ruff format: tests/exchange c8626d941 ruff format: Update tests/exchange e4796fd85 ruff format: update testcommands adeb93dc9 ruff format: update strategy tests 1cbd49fd4 ruff format: rpc tests 8c7d80b78 ruff format: Update test strategies 099b1fc8c ruff format: More updates to tests 23427bec0 ruff format: Update tests/ base directory 53947732a ruff format: Update conftest_trades files 7090950db ruff format: Update a few test files baa15f6ed Setup known first party modules a8eabd0b2 Update remaining files with new import sorting 7767ad9d6 Update imports in test directory 38c69e925 Update isort configuration c8ebaef93 Update isort config 462dff67d Bump ccxt from 4.3.16 to 4.3.21 0b64eca9d Bump pre-commit from 3.7.0 to 3.7.1 feb398ecf Bump cryptography from 42.0.5 to 42.0.7 891b436b0 Bump ruff from 0.4.3 to 0.4.4 01b00ba37 Bump mkdocs-material from 9.5.21 to 9.5.22 in the mkdocs group 63c8eae4a Remove unused fixtures eb8ce5b30 Split too long strings in test f52c3677c Move test comment out of the test data e4881580f Slightly extend background jobs api 0279cf5fe Improved API endpoint ordering 2d069d615 fix: allow classifiers to work 4c2586b3a remove duplicate stat from BT table 15c56e55c Fix test directory pollution 15bcba9c7 Skip load_leverage_tiers test from bybit e86a0736f Add workaround for bybit's changed markets endpoint ce6445f6b chore: update pre-commit hooks 6d668d52f chore: update pre-commit hooks 9bc3049af Bump SQLAlchemy pre-commit bd5bf255e Bump sqlalchemy from 2.0.29 to 2.0.30 72e53eee5 Bump jinja2 from 3.1.3 to 3.1.4 d4755bd7c Bump coveralls from 3.3.1 to 4.0.0 aaa190e7d Bump nbconvert from 7.16.3 to 7.16.4 beffebcbb Bump tqdm from 4.66.3 to 4.66.4 a65a601b1 Bump ccxt from 4.3.11 to 4.3.16 b81bf5999 Bump fastapi from 0.110.2 to 0.111.0 2e2949555 Bump filelock from 3.13.4 to 3.14.0 43c327148 Bump jsonschema from 4.21.1 to 4.22.0 a9a04ba3b Bump orjson from 3.10.1 to 3.10.3 96fbe160d Bump ruff from 0.4.2 to 0.4.3 955f5792c Bump plotly from 5.21.0 to 5.22.0 a1c4be1e3 Bump joblib from 1.4.0 to 1.4.2 187397540 Bump mkdocs-material from 9.5.19 to 9.5.21 in the mkdocs group 39613c078 no suspect function calls in function headers . . . 3f9019a1a Don't use coro directly c3516dbba Simplify trade_statistics function fa79c48c8 Exclude unfilled Trades from "all" /profit 28449f551 Don't show "0" when fiat_currency is empty 566add7a8 Rename variable to show it's just a temporary variable 7ba285fbb Fix bad link 93e65a583 Update freqai-feature-engineering.md 643bfa065 Add documentation for freqUI backtest mode 8309d92ce Improve freqUI docs acb6dacf2 Add light and dark Screenshots of freqUI ccb1d59a2 Add main header about UI 4e5a62036 Add a few screenshots of freqUI 9f1ebf0c5 Extract section about CORS to it's own icnlude section 8dd6b52be Make sure freqUI is visible in the menu 74732537b Add explicit documentation page for freqUI 866f059d6 Use FtPrecise to avoid rounding errors ab93fd3be Enhance trade to verify #10166 ee7be1cd5 move "add_bt_trade" call for entries into enter_trade function c81c07c24 Add docstring for process_exit_order 67636abb3 Fix #10166 with fewer side-effects e5b79eee5 Extract _process_exit_order to separate function 62a3ed6f8 partial exit order should not close immediately dd42fba7d Bump tqdm from 4.66.2 to 4.66.3 569e8a74b chore: update pre-commit hooks 7bb4b5003 Bump version to 2024.5-dev 997db6c70 Type-ignore f259270e9 Update tests to properly mock fee 3a2e3215b Ensure get_fee returns something in tests 3f2f2a1db Use worst case of maker / taker fee for backtest 935e8f49d Type-check fee from configuration ... ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 2 years ago

FreqAI - 2024.4

Highlighted changes

  • Improved backtesting output (exit-reasons aligned with tag summary).
  • Visualize market change in freqUI’s backtesting view.
  • Warn users if the strategy analysis (for all pairs) takes more than 25% of a candle duration.
  • Create pre-built devcontainer image - improving devcontainer initial startup time.
  • Reduced UI traffic due to new “reduced” dataframe endpoint (only retrieve columns that are actually displayed).
  • New API Endpoint for manual pairlocks.
  • Switch to humanize for human readable distance outputs.

Sponsors

You can sponsor the work on freqtrade via the following links: * froggleston (FTUI) https://github.com/sponsors/froggleston/ * robcaulk (freqAI) https://github.com/sponsors/robcaulk/ * xmatthias (freqtrade and freqUI): https://github.com/sponsors/xmatthias/

How to update

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

docker-compose

bash 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 ``` 39eda1b1d Bump version to 2024.4 cb06dd893 chore: update pre-commit hooks 9bd5aff87 Add new column selection to ft_rest_client pair_candles 1805fcac3 Bump the pytest group with 2 updates cccc4b5b8 Bump docker/login-action from 2 to 3 81ae8ac83 Bump ruff from 0.4.1 to 0.4.2 df183c9cc Bump the mkdocs group with 2 updates 6934088a5 Fix some non-working links 70396fc34 Fix some non-working links a544fb1eb Update mkdocs as group 6f1d99372 Bump devcontainers/ci from 0.2 to 0.3 18e3673a1 Bump actions/checkout from 1 to 4 e452a2389 Bump pydantic from 2.7.0 to 2.7.1 784636106 Bump mypy from 1.9.0 to 1.10.0 d6738da6e Bump pymdown-extensions from 10.8 to 10.8.1 e5fadb180 Bump ccxt from 4.3.4 to 4.3.11 31fb00999 Bump stable-baselines3 from 2.3.0 to 2.3.2 43aee2147 Update backtest assumption wording 1649aca41 Support empty array to return only the base columns 71ef6f70e Improve test coverage of strategy test 9d57e3930 Extend error testing to post call ab1037983 Add pair_history post endpoint, too ccd788e2c Improve naming of the schema 8c3974010 Test Post pair_candles endpoint eeaa9061e Adapt test for to also test post endpoint 3e2077044 Slightly change returned column scheme 54d467d2b Add Post endpoint for to filter dataframe by columns cabdfabf0 Eliminate duplicate word in wallets docstring 38b35ec52 chore: remove repetitive words 21b1f5aab Update wording 37da71461 Don't set zsh as default shell bd608bedf Use devcontainer features for most setup work ad370cbbc Add github action to pre-build containers 6d46d17e3 Add pre-built devcontainer bc5ded440 Improve devcontainer Dockerfile 19284e1e9 Update vscode debug config for new mode e17258940 Add isort to devcontainer proposals 52403ceac add GHA extension to devcontainer 3b41c7e7f Fix devcontainer config (use vscode submenu) 73905b33a Ensure consistent program naming dd04c51c4 Use time() instead of creating a temporary time object 9bc866e6b Loader should be passed as kwarg for clarity 8e5c57422 Don't handle case where base_currency is not set a3e6abef8 Add test for "trade amount adjust" behavior adbf1b5e6 Adjust trade amount by 2% if trade recovery remains above the trade amount 0a89efd00 Only cancel stoploss if really necessary 35408966f Fix remaining user_data leaks ad12c98d1 Avoid having test-result influence from user_data/ 96bb4db68 Fix remaining coingecko spellings 2d9be6c81 Fix some coingecko spellings 3ca0be754 Fix misspelled coingecko variable d6dcd8adc use explicit macos version 5f1ab7508 Add idex subclass defining the applicable ohlcv limit 652819309 chore: update pre-commit hooks 365b9c9cf kwargs for re.sub count fa6c17c06 Remove mutable default-args from generate-candlestick 86f3b649b Update security warning in docker section 115cb4bf4 Don't use datetime.utcnow ... 226eaf0d0 Filter deprecation warning - it's a dependency ... 914d630a2 chore: update pre-commit hooks 73c9b04dc Update pyarrow prebuilt wheels 7e78a103c Bump aiohttp from 3.9.4 to 3.9.5 3842b4697 Bump pymdown-extensions from 10.7.1 to 10.8 472d5d870 Improve format_ms_time logic by reusing dt_from_ts 6f3bb7f2f Bump plotly from 5.20.0 to 5.21.0 ac5cd778c Bump fastapi from 0.110.1 to 0.110.2 938259ffd Bump python-telegram-bot from 21.1 to 21.1.1 8f26793b7 Bump catboost from 1.2.3 to 1.2.5 8888fd190 Bump orjson from 3.10.0 to 3.10.1 4fee0eae6 Bump ruff from 0.3.7 to 0.4.1 8932aab20 Bump ccxt from 4.2.97 to 4.3.4 12ae190fe Bump pyarrow from 15.0.2 to 16.0.0 98807b100 Bump mkdocs-material from 9.5.17 to 9.5.18 03835350c Remove arrow as dependency 54c2febe1 Remove dt_humanize d48cff3b9 Update to dt_humanize_delta for all usages cc534c500 switch from arrow to humanize 4320c7a3c Add humanize as dependency 6b15ebd4c docs: update freqai-parameter-table.md 608088bc0 Simplify trade_statistics b9b044585 Add but comment a few ruff rules d4ce77453 Add requests timeout to deploy commands a375e686d Add some ruff configurations 08f2eebd6 Extract httpBasic from function header 927c54094 Improve some bugbear findings 6dfc34d22 Fix test due to missing assert 6a1c33e16 Don't use setattr e0aefb9b5 Fix faulty asserts in freqai tests df712c016 Fix some faulty assertions 53c548f7b Fix test to actually work 1abd8fb8f Fix wallets test 7c3feeddc Fix faulty assert statements 0c99ff7f6 Fix more default arg usages a078088ea Fix some more default argument usage in exchange classes 31f6030c6 Reduce some mutable default argument usage 800482969 Further reduce problematic default args 448b74840 Don't use mutable default arguments to functions 9b1def604 Fix mutable arg in freqtradebot 3d4250ca9 Fix type error 6a1ca75a6 Add codespell to pre-commit hooks 22c61458a Fix codespell in ci.yml be1e1453d Further mutable-default fix to template-renderer 87d50243e Update tests a451b9438 Remove mutable default from template-rendere a41b38e94 Add configuration for codespell 40aa0800d Additional fix to eliminate some word-ignores 862d4c885 Revert relationship to "selectin" 37feede6a Fix some codespell introduced syntax errors 99b4767bf Fix typos discovered by codespell 0a7ed55ad Reduce duplicate warning 298f9b225 Fix broken sample of @informative decorator bc8535209 Split timeframe_to_secs from loggingmixin init 6a570bd82 Fix excessive whitespace 77682808e chore: update pre-commit hooks 82482ec15 Fix / improve types 5eeb96fa9 Add test for measure_time c6a50b3c0 Use MeasureTime to warn if a strategy takes too long 3c8366e60 Add measure_time module to measure time taken by functions 2297b3ed5 Split timeframe_to_secs from loggingmixin init 393d4b8eb Add test for market_change endpoint 3dd7c1e49 Add test for market_change writing 0b1f702ef Improve testcase 54d9dbaea Formatting ba27c41c9 Support market-change for "online" backtesting d7920c4b6 Simplify backtest storage 3338fdece Relative profit should be relative cumulative profit 523054e8e Add endpoint to fetch market_change data c8a590495 Store and load backtest-market-change data 7f386874a Trim dataframes accordingly ... 18a4d6972 generate_filename should be private a0a22f62e Update typehint for backtesting 7fc1d38ff chore: remove repetitive words 3f8078618 add Combine dataframes with pct_change e7b907a17 Enhance / simplify bt-storage logic 264669df1 chore: update pre-commit hooks 39ef97a2a Bump pandas from 2.2.1 to 2.2.2 409a6236d Bump scikit-learn from 1.4.1.post1 to 1.4.2 4df847fa0 Bump aiohttp from 3.9.3 to 3.9.4 abfed990d Bump joblib from 1.3.2 to 1.4.0 183c82903 Bump pydantic from 2.6.4 to 2.7.0 3225c051a Bump ruff from 0.3.5 to 0.3.7 a4f2ea810 Bump ccxt from 4.2.91 to 4.2.97 caf50c0bd Bump filelock from 3.13.3 to 3.13.4 76814250e Bump python-telegram-bot from 21.0.1 to 21.1 7a401415e fix: for some reason we werent including high_price 65654a4a4 Update ccxt exception handlers 0c7e89aed Update tests for OperationFailed error 094bbb3a5 Remove pointless docstring comment df2432bc1 Re-align adjust_trade_position bt with live. e09abfdc7 Split enter and exit rows to use different values eaec5065a Define liquidation price only once in adjustment test 9e55690ab Bump python from 3.12.2-slim-bookworm to 3.12.3-slim-bookworm 78535bc7e chore: update pre-commit hooks e5f3d0443 Add some imports 081e50ec4 fix: ensure full hist-preds is kept c924399e9 chore: update pre-commit hooks 3073e8810 Slightly update developer docs d5bb2e4eb types-requests pre-commit update 16045870a Bump scipy from 1.12.0 to 1.13.0 f741f95c3 Bump ccxt from 4.2.87 to 4.2.91 564d77f23 Bump fastapi from 0.110.0 to 0.110.1 095150f6b Bump mkdocs-material from 9.5.16 to 9.5.17 c935bd057 Bump types-requests in the types group d8aaaa34d fix: pandas. 08d0e7618 fix: pandas. 6a8abd5d4 fix: astype handling b19b4d001 fix: ensure future pandas will be happy 8c12a1fd8 Rename TRADING_MODES constant to avoid naming collision a584854d4 Update docs to align with actual workings. 1df21d3cd Pin pandas version to < 3.0 d4872eae1 chore: update pre-commit hooks 4affb1ead Fix wrong site url string 15cbca51e Test with dev url 298050349 use "/en/stable" as mkdocs site url 1cbd3f52f Run online-tests against bingx b284abf9e Add bingx exchange subclass 55c0cfefe Add missing typehint to telegram class 9de473158 Bump ruff to 0.3.5 2ef854741 chore: update pre-commit hooks 62a15580c Bump torch from 2.2.1 to 2.2.2 41db2aec7 Bump ast-comments from 1.2.1 to 1.2.2 04a25e0f3 Bump orjson from 3.9.15 to 3.10.0 1d8ebc7ec Bump ccxt from 4.2.82 to 4.2.87 66a05ee67 Bump stable-baselines3 from 2.2.1 to 2.3.0 b076ec6c8 Bump mkdocs-material from 9.5.15 to 9.5.16 b277372da Bump filelock from 3.13.1 to 3.13.3 7b6e72ab5 Update download-artifact to pattern. d112a8c0e Bump version to 2024.4-dev dcb9d5d61 Ft Rest client - fix typing b1c83ce18 Exclude build dir from mypy 8fae64f37 Update typehints 747266fe4 Remove unused imports ad06f9350 Add locks_add to rest api client f4074d296 Add tests for lock endpoints 05f8bb357 Add Lock post endpoint 7b5e44433 Improve code stability 0906f050e Fix remaining tests 1551f9283 Fix a few tests be26e3123 Remove obsolete code, improve resilience 36f1111d9 Remove custom handling for exit reason stats. 0bc84c6a0 Use SafeLoader in `yaml.load()` Calls ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 2 years ago

FreqAI - 2024.3

Highlighted changes

  • Persist additional trade information in the database.
  • Partial exits now use a simplified logic (-trade.stake_amount now corresponds to the full trade amount, it’s no longer necessary to adjust the return value for price). ⚠️ This can be a breaking change if your strategy relies on precise calculations.
  • Update Docker image to 3.12.
  • VolatilityFilter can now be used to sort pairs based on recent volatility.
  • RangeStabilityFilter can now be sed to sort pairs based on recent “rate of change”.
  • Bot start and uptime added to telegram /health messages.
  • Simplified error messages in case of Configuration errors, pointing users to the documentation.
  • New command show-config - providing a way to visualize the configuration composed from multiple configuration files.
  • Provide a seperately installable package which provides the freqtrade-client command to control the bot from CLI (same functionality as the rest_client.py script).

How to update

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

docker-compose

bash 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 ``` a6bfe1a4a Bump version to 2024.3 2072a625b Align build job names 8792d5625 Update dockerhub-description workflow to new approach 556db08b0 Rename CI files b651e13bd Schedule leverage tier updates a534340cc chore: update pre-commit hooks 067a7315f Use proper secrets syntax f405b7d1c Add CI step for leverage tier updates 178a0a5db Fix typo in update script 055c4396d De-dent pre-commit update workflow 9726c4ae2 don't use cum profit 7895eeb3b Fix tests after modified output 0a186eb8b Remove Cum Profit % 79719bbe8 Add freqtrade-client programmatic use sample e100a0678 Use regex to match logs in rest-client tests d606d6d08 Use a path that works on windows, too. 01f09ca5c Update command name and documentation 8ad037507 Update docstring e8cea35f5 Have Pool parameters be kw only 411322357 Slightly enhance test cov d047ac67a Remove unused import e072522ed Improve tests e971f043f Improve test cov 66422ce9a Add support for requests pool size configuration 0a0105c31 Re-add --cov args a6ad36d08 Coverage for ft_client ... 7eb91c74a CI - always install ft_client 79b8363b7 Depend on freqtrade-client on install ca9d792d2 License to link fba028abd Fix version number 3f226c502 Also install ft-client in linux CI afe3d3ebd Move Version check to the top 01bb7706e Fix messed up version-align script 772dbeaf7 Fix file permissions 0c026f950 Ensure versions are aligned between freqtrade and freqtrade_client f0e095757 Don't set same parameters twice 7e3e65ecd Add tests for rest client bef15b523 Add license for client file, exclude tests directory 127f61ccb Improve odering of things in ft-client bd49ad642 Add CI step for ft_rest_client 46622f617 Add minimal readme 5888da5bc Re-add rest_client script bfe739da3 Add pyproject.toml for ft_client installs 1036a890b Split rest client script 3401e3506 Move rest_client to it's own sub-structure e75d46321 Exclude user_data 26311663e Add classifier for python 3.12 1ec04a8dc Add support for max_value in volume pair list 78442e36e Fix small grammar error 38e7b0e8a Update bot basics logs to align with reality e49ab2593 Update / improve docs c433f4908 Remove temporary gate workaround 553094c3c Assign 'status_stop' for gate stop orders 5b4d28663 chore: update pre-commit hooks 666f2fc10 Fix bug where amount becomes 0 50cd36acb Remove unused test method dfd46a19b Update freqai-configuration.md f60d6c8f6 remove duplicate call of order_filled callback 18e34632d Update PyTorchModelTrainer.py f1f272b88 Bump pre-commit sqlalchemy 392598086 Bump the pytest group with 2 updates 16083b2f6 Bump sqlalchemy from 2.0.28 to 2.0.29 bbeba6ab3 Bump ccxt from 4.2.78 to 4.2.82 710a953c4 Bump mkdocs-material from 9.5.14 to 9.5.15 9d5cb103d Bump time-machine from 2.14.0 to 2.14.1 674ec6acb Bump pre-commit from 3.6.2 to 3.7.0 6e6a93f0c Bump nbconvert from 7.16.2 to 7.16.3 74641c565 Bump ruff from 0.3.3 to 0.3.4 ea634e5ce Add test for backtesting f6a8cb469 update docs (fix typos) 2854186b1 Adjust test to work against usdt values 093fd48cf Update test to use default_conf_usdt 7f5c38fd5 Update environment variable config to clarify that config cannot be set via environment variable b2a672268 remove order filled cb from handle_stoploss_on_exchange e07f3d266 add test for order_filled callback sl on exchange filled case 6d3e3b5bf add test for order_filled for freqtradebot update_trade_state 72225daa6 add order_filled callback call for stoploss orders 6e88cbfca Update prebuilt pyarrow wheels 163d03ac6 Update CI schedule to run towards the middle of the night. b4c9541fb Add hints about show-config to configuration docs d0bda7c2c Add documentation for show-config utility command d2a678137 Revert one error to OperationalException cc7d341af Add overrides for Exchange Support 0d9775918 Bump ccxt from 4.2.67 to 4.2.78 150b7f85d Bump pyarrow from 15.0.1 to 15.0.2 40898f522 Bump uvicorn from 0.28.0 to 0.29.0 d6ff8ebbc Bump the pytest group with 1 update 65105f776 Don't modify original config 82ff4d587 Add explicit test for config sanitization b1fe5b6d8 Add "sensitive information" warning output 6dc4fa9db Add test for show-sensitive 81d1a662a Add --show-sensitive CLI option 6b7935f1a Add initial test ... 38ae3ac03 Add "sanitize config" section 3059d66ec use original config for printing 7543b2681 Add show_config command 8e5097d9a Update setup-tools-config for non-dry mode 21dcb4a6a update setup_utils_configuration to not force-set dry-run mode 35253f9c8 Add overrides for Exchange Support 6219a2590 Add documentation link, re-align imports 669076a29 Add test to ensure configuration error is displayed as expected abd096dcd Update exchange tests to config error in a few places 4a097bd64 More usages for ConfigurationError 64019e0e6 More configError usages 3621ba034 Use configError in more places 17d052df3 Configerror handling for bt api endpoint ebd516cad Use combined exception handler at startup b5548dbee Add proper handler for config-error 3a6474967 Raise ConfigurationError on config validation ca94bbe99 Add configuration error to Exception hierarchy 02570e285 chore: update pre-commit hooks 996fcb6f5 fix current_time parameter of order_filled usage in backtest 6941953a8 update doc details about order_filled callback details 08c1866cd fix mypy artype error d1e1b8410 add order parameter to order_filled callback cd986ced4 moove order_filled callback position from update_trade_state to _update_trade_after_fill 18a3489a6 add order_filled callback to bot and backtest d4ddcbc78 Bump types-dateutil in pre-commit config 8395192e9 Bump markdown from 3.5.2 to 3.6 28575a9ef Bump pydantic from 2.6.3 to 2.6.4 80be86533 Bump ruff from 0.3.2 to 0.3.3 2725ee577 Bump plotly from 5.19.0 to 5.20.0 405e0f02d Bump mkdocs-material from 9.5.13 to 9.5.14 9bb9f7453 Bump the types group with 1 update 409729f9d Temporarily support 'finish' in the order, too 838d9cd4d Improve stop fills order handling on gate 3ed53218a Fix rate display rounding problem on telegram messages c06f89210 don't use :.8g formatting - it's unreliable ca2d322eb chore: Split strip_trailing_zeros function in formatters d07ec5054 Remove unused line 01c0fd042 If enable_protections are enabled, disable all - some work on all pairs, and we don't check protections either so ... just disable them completely - added info in the docs 45bb9ee9a Reduce stacktrace length for "no config" errors 60a62d933 Fix some failing mocks 4281642f5 Fix flake failure due to flake update 5e0aa9108 Update tests correspondlingy dbcb07275 Refactor datahandlers into their own package 4aff24f6d Fix imports that import directly from file 3037cef4d Update freqtrade image to python 3.12 fcc6d0fea Don't run notify-complete for non-freqtrade repos c284da404 Fully test freqAI against python 3.12 ec23fec3e fix typo e958552bc Explain precision filter better 85c145c77 Don't close the test trade ... 28bdbbffc Patch torch logging on 3.12 e560f9963 Don't run Torch models on macos. 4e02d31cd Mock torch on mac ARM 0cf46d860 Revert "Remove conditional checks for python 3.12" 08cff9890 Remove conditional checks for python 3.12 2b5b518cc Bump rl requirements for 3.12 ce6dd466f fix typo 72015686b Update pyarrow wheels to 15.0.1 a4541fda2 Nitpicking documentation: 14c27f2cb fix test c5201a647 fix precommit 8000f9429 changing the partial exit logic to be simpler and easier to understand 3c34126e9 chore: update pre-commit hooks e336d870a Bump ccxt from 4.2.66 to 4.2.67 225ef6b8c Update to latest ruff format 76459f08a Update contributing with new ruff syntax 048cad04a remove unrelated old changes bae4973da simplify full exit using adjust trade pos 6c81807b7 Bump sqlalchemy in pre-commit b6fb1dc9e Bump sqlalchemy from 2.0.27 to 2.0.28 2a8c6a6d0 Bump uvicorn from 0.27.1 to 0.28.0 8d22fbf39 Bump ruff from 0.3.0 to 0.3.2 018d10b34 Bump ccxt from 4.2.58 to 4.2.66 33556f3c2 Bump mkdocs-material from 9.5.12 to 9.5.13 1c91675c5 Bump the pytest group with 2 updates c78480c49 Bump types in pre-commit file 23d226d37 Bump pypa/gh-action-pypi-publish from 1.8.12 to 1.8.14 9b44d1d8c Bump packaging from 23.2 to 24.0 ab6a5d75b Bump python-telegram-bot from 20.8 to 21.0.1 e1fdb8dec Bump nbconvert from 7.16.1 to 7.16.2 6d2f454d8 Bump pymdown-extensions from 10.7 to 10.7.1 02dc895c4 Bump pyarrow from 15.0.0 to 15.0.1 80560a389 Bump mypy from 1.8.0 to 1.9.0 60b9d9448 Bump the types group with 2 updates 518b6eb56 use dt_ts to simplify exchange date math 4e9417816 exclude python 3.9 on Macos 14 0bd50a6e2 Don't disable tensorboard on mac ARM cb1f49e81 Don't run torch models on 3.12 yet edc74ae2e Split macos Installation into 2 separate actions c5f2a69d9 Allow running catboost tests on 3.12 971a81e15 Bump catboost to 1.2.3, remove 3.12 restriction cc3b2000e Avoid fully patching torch on M1 macs 86db88838 Install libomp from brew for macos 7cceddb3d Improve wording on /health message 29f90cbd0 Run CI on macos-14 (M1) 1b608a162 Add type-hint for result dictionary f8cbf138e Add Initial bot start and current bot start to /health telegram msg acbb48530 Add bot start and bot-startup to health endpoint 2cfe99395 Fix condition for min-stake in position-adjust mode b690325f2 Remove typo in change-dir notebook 865ebc314 update status table to show total amounts in stake currency 3e6e534e7 fix some typos in docs 510863f93 chore: update pre-commit hooks 99c8be4c3 Bump pydantic from 2.6.2 to 2.6.3 9ad60643f Bump ruff from 0.2.2 to 0.3.0 8c0ba2a69 Bump ccxt from 4.2.51 to 4.2.58 d6ae63ac4 Bump python-rapidjson from 1.14 to 1.16 ec17b5523 Bump cachetools from 5.3.2 to 5.3.3 b8c16fb88 Bump python-dateutil from 2.8.2 to 2.9.0.post0 c3f9b16c8 Bump rich from 13.7.0 to 13.7.1 062376f57 Bump mkdocs-material from 9.5.11 to 9.5.12 21709204e Bump time-machine from 2.13.0 to 2.14.0 7ca3032d5 Bump the pytest group with 1 update 07bf19a99 Bump pypa/gh-action-pypi-publish from 1.8.11 to 1.8.12 a948796ef fix: manually add train eval since xgboost does not expose this information by default 255ea8863 Add to telegram documentation ed8469f23 use trading_mode to determine trades file location 265a7123d Add explicit test for telegram functionality of list-custom-data ceb461a25 Switch sequence of information documentation c1ae11008 Improve documentation 30b4f2715 Cleanup some nitpicks 1176c16b9 REmove unnecessary assignment 093a093bd fix: use data metric_name directly b8a108959 fix: try plotting as much info in xgboost tensorboard as possible fcb16098d Reduce Error level when converting trades 7ed7ed408 Accept trading-mode for trades-to-ohlcv command 99da6f70c Fix failing test due to new approach for convert-trades 09d763b60 convert-trades should do proper pair expansion to support regex in pairlists 5e7868a28 Remove block from download-trades for futures 66e43f2fe Adjust tests for new arguments 43103f51e Update functions that use datahandler trade methods b6040e270 Update data handlers to accept trading_mode f8cc2a6e7 Fix typo in doc header 75c84bfe6 Only show a subset of list-exchanges output in the docs bdd63aa1d FIx futures trades pair download directory 5dee60921 Fix test for convert_trades_to_ohlcv 46e616f99 Remove defaults for converter - they're always provided and necessary. cdfeae9f9 Update merge to "left" to avoid creating non-existing mark candles e988995d7 Handle NaN funding fees b55105ec8 chore: adjust `timeframe_to_*` imports accordingly 4a8c8f296 chore: extract `timeframe_to_*` functions into `exchange_utils_timeframe.py` 883f27d99 Version bump to 2024.3-dev c0e9726f4 don't use "1M" - but be explicit in the intend 0021e2c20 fillna needs explicit type. ce2f4f89c update pandas deprecation to_hdf 5912d87b6 Pandas - update view to astype b1015172c Update test for fixed pandas behavior bd7edfba9 Bump pandas from 2.1.4 to 2.2.1 e80ad309f Improve type safety, refactor volatilityfilter 817ad6440 Add docs for rangeStability sorting 67152ad48 Improve and parametrize pairlist tests e82d9e2f5 Test volatilityfilter with more pairs b972ee78e Enhance rangeStability test 2704f6e75 Improve test 9dd596727 Add sorting capabilities to rangeStabilityFilter 6a313aa9e Improve help wording 81de29a1e Improve conditions for removal of pairs 3677953d9 Properly cache volatility-average 7af46628f Simplify rangeStability Filter 88a2995b4 Fix wrong typehint 866ff55d8 document sort_direction mode 91ba4f642 Add test for volatilityFilter sorting 31e254313 Enhance generate_test_data with parametrizable random seed eaf70428c Improve volatility tests 38ca58c72 Add verification for volatilityfilter 0bf73cc64 Voliatilityfilter - sorting 7ddaa09a2 Refactor VolatilityFilter 6307e1630 Properly format notification date c7fff45be Fix test leakage 4bbb3174b re-enable use_database after bt test c511d65d2 Add backtesting test e8ca9ce39 Add testconfirming correct functioning ab062d7bb Add test to run in backtest mode d5b21f2a3 Fix bug in backtest mode 9be7759e4 Add initial test for custom_data 304f52ab7 Fix some minor custom-data bugs 6a6e3aacf Fix broken deletion 67b910835 Simplify access to custom_data - users will usually only care about the value, not about the metadata. 8364a704d Fix a few sql gotchas 790c7e386 re-adjust logic for custom_data in rpc module 8dda28351 Simplify custom_data stuff b7904b8e8 Combine custom_data classes to one file 7fd70b82f custom_data: Simplify and fix a few things 9699011cd Remove pointless wrapper 83b22dedd Fix non-reset of use_db c67e451fe Remove unused imports 859309461 Ensure custom data access goes through the accessor functions d49da7638 Slighlty improve docs 626c90410 Fix some issues with types 2393a9fec Fix some minor test failures 8f9f4b40c Update model to new sqlalchemy version 3b54e1e74 add Try block to catch the failure on using FullTradesFilter on non-dry/live run c420304b3 Delete custom data before the trade. 8494bea64 Handle max message length. c8ba8106e Update telegram reporting. ce9d9d7e6 Finish renaming persistant storage infrastructure. 365527508 Rename files. 9fdb8b07a Rename persistant storage infrastructure. 24b6ce450 Further cleanup. 3ad8111d1 Remove stray debug messages. 4f799cc9d Add /list_kvals command for TG and underlying RPC. c719860a1 get_kval() -> get_kvals(). Update docs also. f3dee5ec4 Update handling for query_kv when no Key is supplied. be169a23f Add a new session for KeyValues. abda02572 Fix KeyValue __repr__. de01aaf29 Add documentation details. 096e98a68 Remove stray debug message. 10917a280 Add initial structure and wrapping. ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 2 years ago

FreqAI - 2024.2

Highlighted changes

  • Introduce a new pairlist, MarketCapPairList, which sorts pairs based on CoinGecko's market capitalization ranking.
  • Implement the storage of order tags within the order object, allowing for tagging on a per-order basis.
  • Enhance caching mechanisms for pairlists requiring candle data.
  • Implement active checks to prevent the creation of Unified accounts on Bybit, encouraging the use of standard subaccounts instead.
  • Address issues in Bybit resulting from recent API updates.
  • Enhance the formatting of Telegram messages, particularly when special characters are used in enter/exit tags.
  • Remove the stoploss_order_id field and utilize order objects to manage open stoploss orders.

How to update

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

docker-compose

bash 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 ``` 0a8719c61 Bump Version to 2024.2 d6b01a6ff Assert for exact equality 01266ed7e Align test results ... 5402d276d Add header to warning box, reorder Boxes d5c01f748 Bump ccxt from 4.2.47 to 4.2.51 d9f4c62f1 Add warning about excessive use of position_adjustment 080d9b55f Bump fastapi from 0.109.2 to 0.110.0 4ff888488 Bump cryptography from 42.0.4 to 42.0.5 e2a486f85 Bump nbconvert from 7.16.0 to 7.16.1 313de7b8a Bump mkdocs-material from 9.5.9 to 9.5.11 c2998f3d7 Bump pydantic from 2.6.1 to 2.6.2 9805cd768 Bump orjson from 3.9.14 to 3.9.15 c06e4ee89 Bump the pytest group with 1 update d80ed7e33 Bump Docker Python version from 3.11.7 to 3.11.8 e2d3774b0 Clearer wallets variable/parameter wording aad327b1f Update comment around funding fees 3e0755b8a Enhance funding-fee call test to account for different timezones f164b8935 Ensure pytz is updated regularily by pinning it c663016b4 Improve some type safety 9ac7149c4 Add check to verify that "since" is properly respected. 0acde2890 Remove pointless comment f4ad1e802 chore: Remove wrong typehint e30fa3a44 Remove duplicate pairlistmanager init db83b0cdb Update typehint for candle_cache 4cfd5d004 Improve ohlcv pair cache with since_ms 3680e199c Fix range-stability filter downloading too little data 4e87169a0 Use set to reduce iterations c013c76e6 Bump cryptography from 42.0.3 to 42.0.4 0199e7d3d Add type-hint to exchange_has dict b3ba2cee1 Bump ccxt to 4.2.47 411f60647 Fix some tests due to new method f53c019d2 Update "exchange_has" validation with new fallbacks 3497f7946 Add test for fetch_order_emulated 65af7750e Add fetch_order_emulated to support exchanges without proper fetch_order method f6e2030bf chore: update pre-commit hooks 00bde70f7 Fix / improve styling in test class 434b8a423 bump types-requests pre-commit 82876570a Bump ruff from 0.2.1 to 0.2.2 a200b5524 Update sqlalchemy in pre-commit 39941a7ac Improve formatting in drawdown calc 66f483910 Further increase test coverate of max_drawdown 6aa1bbf57 Bump sqlalchemy from 2.0.26 to 2.0.27 381576b8f Bump pre-commit from 3.6.1 to 3.6.2 549b9f62f Bump tensorboard from 2.15.2 to 2.16.2 edb5431a7 Bump orjson from 3.9.13 to 3.9.14 4241db2fe Bump scikit-learn from 1.4.0 to 1.4.1.post1 c966f8314 Bump plotly from 5.18.0 to 5.19.0 f361824b1 Bump cryptography from 42.0.2 to 42.0.3 8675f86d1 Bump urllib3 from 2.2.0 to 2.2.1 0979d0b6e Bump the pytest group with 1 update 4c3879cb5 Bump the types group with 1 update 69a0f4c46 Fix bybit spot live tests 61e09ac71 Update telegram help with new wording 583b2fc69 Fail if unified account is detected. e06b70eb0 Add log message for Bybit accout type 3250f4225 Improve validate_exchange a5d1ae319 docs: Update sql_cheatsheet.md ebd439cdd Remove unused import 78d8a4df2 Use "ohlcv_with_cache" for further pairlists 4bcf2c423 Don't tick on ttl cache 7b36a0fc4 Add explicit test for ohlcv_with_cache bcfe7ef54 Refactor ohlcv caching to exchange class 8033faa2f Update pairlist cache behavior in VolumePairList 3f3760c0a Use Markdown V1 - update tests 4761bf242 Change enter_tag, exit_reason, mix_tag performance messages from HTML to Markdown to fix some string encoding issues. c0da1b692 Fix edge-case when calculating cagr a0b7df70d Added escaping to enter and exit tags on telegram performance messages. 60b12c1d9 Double newlines between functions ... fd48991fb Fix duplicate parentheses 1696aa391 Adjust tests for new fields fb54c9ffe Add open_fill_date stuff to json schema 0f85ef099 Simplify trade_model serializations c6d1c1a98 Add dt_ts_none helper c1d718484 Adjust for ccxt exception hierarchy change a22181d72 Enable caching for "filter only" Volumepairlist 7f7e9ec87 Add additional test case for VolumePairlist in range mode 6c9b9e91e enhance volumpairlist range test d01e9cf29 Improve log message 86da9cb65 Simplify some pairlist conditions 57fd0e379 Clarify processing_mode for RemotePairlist 280737447 Don't load empty dataframes - skip these 3d6079ae1 Add debug output showing the pair to be converted f2a731201 Update sqlalchemy pre-commit 72290365d telegram: ensure msg update test uses the correct edit_message_text call fd737af69 use query.edit_message_text to simplify telegram class 0740a1339 Bump sqlalchemy from 2.0.25 to 2.0.26 0ba27ddee Bump the pytest group with 2 updates 2c1ea2d25 Bump tensorboard from 2.15.1 to 2.15.2 8ca905b45 Bump python-telegram-bot from 20.7 to 20.8 903ae3367 Bump mkdocs-material from 9.5.8 to 9.5.9 7d74a4c19 Bump tqdm from 4.66.1 to 4.66.2 7e8e36c6b Bump ccxt from 4.2.39 to 4.2.42 d5aec91a4 Bump pre-commit from 3.6.0 to 3.6.1 f10c8f9c3 Bump uvicorn from 0.27.0.post1 to 0.27.1 3aa2d0c30 Slightly improve memory-usage of kraken-convert a83b5abb5 Allow wildcards for pairs filter f89147fd4 Allow limiting kraken pairs to `--pairs` selection adf63a45c Align new-config documentation examples ce6b62f86 Bump numpy from 1.26.3 to 1.26.4 01a00ad04 Bump nbconvert from 7.14.2 to 7.16.0 9f449dd34 Bump ruff from 0.2.0 to 0.2.1 68fd7d7ff Bump mkdocs-material from 9.5.7 to 9.5.8 a0c246fa9 Bump ccxt from 4.2.35 to 4.2.39 7223a6c50 Bump pre-commit/action from 3.0.0 to 3.0.1 bf1f08cd2 chore: add dependency groups for regular updates, 3e5a572fc Allow int as trade-id parameter 43bab85b8 fix strategy-updater docs d2e9d36de chore: Update ordering of requirements in setup.py e50fac34a Bump technical to 1.4.3 8d0250407 chore: update pre-commit hooks 4aef5676d update tool.ruff configuration to match 2.0 version 73e2e034a Remove unused argument b4f030fd5 Bump pydantic from 2.5.3 to 2.6.1 b9245aef2 Bump orjson from 3.9.12 to 3.9.13 646aca7a3 Bump fastapi from 0.109.0 to 0.109.2 a675d2b02 Bump cryptography from 42.0.1 to 42.0.2 667a8cc59 Bump peter-evans/create-pull-request from 5 to 6 e773276dd Bump ruff from 0.1.15 to 0.2.0 87e813a3d Bump mkdocs-material from 9.5.6 to 9.5.7 5114be42c Bump urllib3 from 2.1.0 to 2.2.0 440382ae6 Bump ccxt from 4.2.25 to 4.2.35 ab7364c62 Bump aiohttp from 3.9.2 to 3.9.3 696118268 Bump uvicorn from 0.27.0 to 0.27.0.post1 cb2aaa7bb Fix wording fully. 35e1421d5 Reduce whitespace 0f9e84658 Update Tests data to work with new cached levtiers 2989b4276 Update cached binance leverage tiers 3711fa509 Improve formatting of leverage c5948693a enable sub-minute backtest detail timeframes 846948499 chore: Split stoploss tests from freqtradebot 57df7d9ec chore: convert test dir to package 80f6fbbae chore: Move bot-related tests to test subdir 0d14b7a80 perf: only create detail timedelta object once for detail backtests ad121c19b Allow <1m timeframes for utility modes 67c3bad97 Fix misspelled comment 0bc5c876c Fix GITHUB_REF variable interpolation in ci.yml 13ee90725 Fix syntax error 7082a8073 add debugging for GITHUB_REF cd484bd48 Update extract-branch-name to new syntax using GITHUB_OUTPUT d1a96af5e Add ft_order_Tag to backtest test 6ba896609 chore: Add minified parameter docstring to to_json method 78a1c7247 keep ft_order_tag for backtest responses 0fa0f49b7 Add adjustment order tagging in strategy callbacks docs 6806fab1b Fix migration not triggering 79b8496f3 Fix backtesting not setting entry_tag out of position adjustments d664e7683 Add some tests 398b93bee Fix rpc test 2d704a77b Improve formatting 830a004df Move response handling to interface wrappermethod 535ff387f add order_tag handlig to running bot 95e51bf81 allow adjust_trade_position to return tuples in backtesting e8288a34c add ft_order_tag to backtesting 39ffee381 Improve type hint ccd4c715c add order-tag to serialize / unserialize methods d82bfc9fa Add order_tag to orders model c59ae30e3 chore: Add minified parameter docs to to_json method cfc6d3b32 Apply "Dependencies" label to pull requests d219983f5 Bump ruff version 6c27b27d4 Bump version to 2024.2-dev 36d4f10a6 chore: update pre-commit hooks 470a239e8 Formatting ... 01baea8aa Test exceptions / errors 4a580fc72 Add test validating cache d691ffe9d Test more diff. scenario eb7fbb009 Improve doc wording 63aac1a2c update docs 17af69435 remove mode, add max_rank, modify test b02e15b16 Bump lightgbm from 4.2.0 to 4.3.0 23ac9e145 Fix generator test b72078e76 use get_pair_base_currency 076ca7520 Slightly refactor pairlist test 132e143b9 Minor comment fix f8dc161ab add 2 more final tests e0f7b62b5 fix initial tests c854cef31 fix precommit 006639820 add simple test bf17236e9 fix typo in the docs 60812983e fix error bbec51685 remove can_filter, and use log_once ad0f88796 fix: logical error e76888882 Fix typehint 3ab226a09 Remove unused import 58058f019 Fix migration test 6eaf42fe3 Default order_date to dt_now if it's not set via ccxt and wasn't previously set. 88ba82d4f Fix more tests acbea4e26 Fix some tests after update_stoploss_date removal b9a43b8e2 Don't store 'stoploss_last_updated' explicitly 59b348657 Update migrations 9f3c6f2dc Fix some tests and comments de91261f7 fix pre-commit e8fcac491 use number_assets instead of limit 95af462e8 fix pre-commit d3506c249 update docs bc8c5e743 rename to PairList ef8712f4d tidy up fdf9cc1b7 tidy up codes 442ca86d1 add market check d578c910b remove unused lines 5bb4824aa add log print to see the time f29fcb31e debug 8055140e6 simplify code 96a6c00ac add mode 09cb6cb02 remove debug 1f0a2ab24 forgot () 35467619c add logger bb684dd61 empty pairlist adf07dd3e remove cache for noe ef528fa69 option B e10ab8c54 test gen_pairlist a5862dcc4 add log message 1cd08c96a filter the pairlist 2eb3b73a9 cut the list to top x 70cc2942d wrong arg name 1e4920059 early stage of marketcapfilter dc9c4da95 Improve integration test stability 14660f54f Remove duplicate call to update_trade_state e19908328 Fix test ... 206809d2e Update emergency sell test 501e256c5 Fix further stoploss test f0073078e Fix stop order test a39b329e3 Fix line-length 68f940238 Fix further test 600e311b3 Fix test test_handle_stoploss_on_exchange_custom_stop 33bd433c2 Don't run against all orders, only consider open sl orders. 1db473264 Fix some more tests ae3f62cf9 Fix RPC tests cbfebd397 Use a trade for test that actually has an open stop order c6ffe82a7 Update more tests 642714493 Fix stoploss test c35b308ad Fix some tests 28e2bfaf1 Fix types of "has" calls 15058d3ce Add type hints to manage_trade_orders, 8234879b5 stoploss_order_id removal tests b33a9059a Fix some more tests 13780d596 Remove further usage 41e40e621 Update some initial tests c2b32769a Remove further occurance in bot file e8be011e2 update manage_trade_stoploss_orders: remove unrelevant TODO aaa82e1fa remove all occurence of stoploss_order_id in trade_model, update api schemas, update rpc_delete 2bb68ca53 remove stoploss_order_id from LocalTrade class df8f1b932 update manage_trade_stoploss_orders description 9d82de15d first updated proposition of handle_stoploss_on_exchange, add sl_orders helper ea828ccb4 remove legacy sl management code from create_stoploss_order 2565d509a remove legacy sl management code from handle_insufficient_funds d5a075905 add open_sl_orders helper, use it in cancel_stoploss_on_exchange 9214af690 update cancel_stoploss_on_exchange to cancel all sl orders of trade cac777cb2 add property has_open_sl_orders to trade model ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 2 years ago

FreqAI - 2024.1

Highlighted changes

  • Enhanced telegram Entry / exit notifications.
  • Remove deprecated sell_reason (in favor of exit_reason)from rpc methods (mainly impacts webhook configurations).
  • FreqUI: Add timeframe / timerange to load backtest screen.
  • FreqUI: Improved log visualization.
  • FreqUI: fixed mobile height issues, resulting in odd behavior and missed functionality.
  • Kraken - support different order types (PO, IOC).
  • Kraken: Restore stoploss on exchange functionalities.
  • Huobi - Rename to HTX - as the exchange rebranded.
  • Improved list-data command output.
  • Allow full exits through adjust_trade_position() callback.

How to update

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

docker-compose

bash 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 ``` 4342aa3bf Update version number to 2024.1 7af524ff9 Bump aiohttp from 3.9.1 to 3.9.2 effe2b536 Bump cryptography from 41.0.7 to 42.0.1 0fa7f9e47 Bump types-requests pre-commit 84913f2ea Bump peter-evans/dockerhub-description from 3 to 4 1450d9e9c Bump mkdocs-material from 9.5.4 to 9.5.6 4394fd134 Bump uvicorn from 0.26.0 to 0.27.0 3a6393e2d Bump types-requests from 2.31.0.20240106 to 2.31.0.20240125 990f9e03f Bump pytest-asyncio from 0.21.1 to 0.23.4 0b549fc7f Bump ccxt from 4.2.21 to 4.2.25 589066593 Add BTC/USDT to test markets 99b11c088 add available_parameters f42fd2580 Improve function naming better reflecting what it aims to do a20fe8cd0 Update docs example box c398504f2 fix tests dd3fbfcfd + return type f0562c391 remove debug, reduce duplicate code -> init_check, add docs example for save_to_file 027ce4337 refresh_period not necessary for a local file fd2165852 extend error except, add saving to a file of processed pairlist + docs 8f0dbc6be Improve common mistakes docs 8d72ee358 Improve code styles ... 0077f3c9a Code style improvements 6aa4de4d2 Tests for enhanced list-data functionality 817aaa164 Enhance list-data (detailed) view with "candles" column ea9c51570 use resample_freq where possible 2fe6fe14a Simplify volumepairlist footprint slightly 85dd371ee use prepared timedelta object for backtesting 55fe379e1 Bump ccxt from 4.2.15 to 4.2.21 96a8263c5 trades_to_ohlcv_multi test adjustment 79ecca3e4 Add test for trades-conversation on different dates 267f2e352 Add trades-generator 1ae3b1e62 Fix weekly resamples to ensure they're on monday. 34ac2dc9a Further improve ohlcv test efe332a39 Fix wrong test comment 8fd2dcd25 Impove tests for yearly resample 48ea43f95 Fix yearly resample timeframe 6b78dac6f Re-align naming for resample_freq generator 0a40a345f use timeframe_as_resample_freq for trade_parallel analysis 656b32814 Have trade_converter use timeframe_as_resample_freq c9c44a471 Extract resample_interval generation 5167f6936 Prepare converter to work on 1s data. fdf88a801 Improve test showing that 1m and 1s conversion is identical. 087c59cfb Fix data generation bug with 3m data 83480d90f Extend test range to more timeframes 67abfcf4d Add generic ohlcv_to_dataframe_multi test to ensure code works for diff. timeframe ranges 00e4c5174 Prep conftest for 1s data generation a1b93dc91 Improve call sequence f1d002a73 chore: update pre-commit hooks 991a279b2 Removed duplicated key 5b879df2b Improve indentation d19113800 restored accidentally deleted lines 85658bb63 Update rpi wheels for pyarrow 15.0.0 3b5c2ea0d Bump scipy from 1.11.4 to 1.12.0 06630a599 Bump psutil from 5.9.7 to 5.9.8 0f1e7ed65 Bump actions/cache from 3 to 4 fbb91ca33 Bump mkdocs-material from 9.5.3 to 9.5.4 713d9fdc8 Bump ruff from 0.1.13 to 0.1.14 3681e3e75 Bump nbconvert from 7.14.1 to 7.14.2 32d77f808 Bump pytest-random-order from 1.1.0 to 1.1.1 d58b941bf Bump jsonschema from 4.20.0 to 4.21.1 34df71026 Bump pyarrow from 14.0.2 to 15.0.0 f324f8775 Bump scikit-learn from 1.3.2 to 1.4.0 00f8f0526 Bump orjson from 3.9.10 to 3.9.12 3d5620a42 Bump uvicorn from 0.25.0 to 0.26.0 e704c2def shorten configuration code d534f2014 Account for kraken specialcase in tests 612ec38e5 Don't skip trades if the exchange doesn't do inclusive filtering ac5b12cfd Improve kraken pagination behavior f9b6830b7 update fetch_trades info data to kraken response format 8a64f0b88 Fix fetch_trades tests 15da4aa9b Update tests for added fetch_trades arg c16757509 Move extracting trade pagination id to fetch_trades b56c663be Add regular / fallback test. 501a9a8c9 Improve error message, add test for trade_pagination_id validation c333c9c5a Improve kraken trades pagination logic 11dd349c2 Update ccxt online test name to htx d355f011d Invert exchange_class mapping ef80772fc Rename class and tests ff95adb2e Update supported exchanges, add mapping 5b1cda923 Update Huboi brandin to htx 50864c731 chore: improve documentation for plotting custom features 5bfda534b feat: allow custom user features to be plotted in backtesting (freqai) 73b30cf3f Update ta-lib documentation links 8cbdcbd50 Bump ccxt min version 42ea4821f Bump kraken to 4.2.15 b7ab7dd25 Update tests for new kraken stoploss behavior c2d6ab2fa Add unified kraken stoploss settings 6069670ce Remove kraken custom stoploss handling c248bb27e use safe_price for adjust_entry_price callback a4d078efd chore: update pre-commit hooks e18fbbd97 Clarify points as per comments 78ca939ae pin prompt-toolkit to compatible version in jupyter dockerfile dc5c1e130 Bump ccxt from 4.2.9 to 4.2.14 91ceb5c19 Bump markdown from 3.5.1 to 3.5.2 d073692ca Bump nbconvert from 7.14.0 to 7.14.1 e1b8742b1 Bump ruff from 0.1.11 to 0.1.13 d866bb6f0 Bump fastapi from 0.108.0 to 0.109.0 2737de1fd Remove extra EOF newline a41b72ca1 Add backtesting vs hyperopt result difference explanations ea1b3c38f remove last utcnow usage 291478a97 Bump docker images to 3.11.7 29d2fc2e1 Skip freqAI tests on py3.12 59cc60776 Don't force-patch torch if it ain't installed. c79502cb4 Pin torch to <3.12 f124f2daa Exclude further dependencies 026f98962 Don't install catboost on 3.12 for now 9a2ed3503 Run CI against 3.12 d412a8fc1 Simplify emc test setup fbed3fad7 Fix non-asserting test 393df83a9 Implement enter_tag initialization to avoid futures warning e967dfa14 Adjust api test after column expansion 4aab57ce6 Add test for pandas deprecation warning 5841c6543 Remove unused test param 338ff6626 Only load environment variables when config is allowed 629a6be26 Rename methods to make exposure explicit 4896e04c4 Improve formatting a53adb95e Remove container-name from ft-jupyter compose file 6fc1884e8 Update link cd392fbbd Slightly update formatting in arguments bcebb4d80 Bump jinja2 from 3.1.2 to 3.1.3 cb9fa734d Improve test resiliance 3f27c2792 Remove trailing newline 883f50854 Add NoDBContext to pairlist evaluation functions 3caf964c4 Add NoDbContext context manager 7fcbe9788 Extract database cleanup functions to persistence package 225c94c0f Reduce log level in rpc default handler a9287359a chore: update pre-commit hooks 962417bde Update typing to account for correctly typed sqlalchemy responses 34c183856 Bump Sqlalchemy in pre-commit 3b7288eda Bump sqlalchemy from 2.0.23 to 2.0.25 72c41ec2c Bump types-tabulate pre-commit 5be32cd80 Bump types-tabulate from 0.9.0.3 to 0.9.0.20240106 37dacdff0 Bump pre-commit dateutil 671ce25a2 Bump types-python-dateutil from 2.8.19.14 to 2.8.19.20240106 a8228f0ea Bump types-requests pre-commit 0b3126a0f Bump ruff from 0.1.9 to 0.1.11 4686d2202 Bump nbconvert from 7.13.1 to 7.14.0 2304f852f Bump ccxt from 4.2.2 to 4.2.9 68d2d24f2 Bump numpy from 1.26.2 to 1.26.3 67f608fb5 Bump types-requests from 2.31.0.20231231 to 2.31.0.20240106 1b70e9b07 Point users to the pair naming docs when download-data yields no pairs. 7c7ddb3b1 Fix improt sorting 69e9ab90d Adjust tests for new messaging scheme 28b555223 Improve entry message b27f99dbc Add note about removing fiat_display_currency. 6121c7ed8 Remove pointless condition (freqtradebot only ever exists in dry/live modes). 394c260eb Update runmode to 'backtest' in some test cases 582f51ccd Add runmode "dry_run" to default configuration 74bb1a29b Fix indentation ddb42879e Fix type errors 53b24ea69 Update webhook documentation 80071dd2d Adjust tests for improved telegram output 545096cc4 feat: improve telegram message formatting 9f682b582 Improve Coin formatter naming 209e7033c Fix tests for newly added field 7f69a0681 Use Type-hinting for telegram messages 20b2f2506 Add quote currency to entry/exit msgs 88524db29 Remove leading whitespace e1ad87a56 Extract number-formatters from misc 65009373e add round_value incl. tests 7f84996c1 Send correct Profit for both exit types 90df6bcd5 Remove pointless parenteses 3237cad8c Fix test naming from sell to exit 2a11597ad Improve exit message wording 59ec3fd86 Always send order-type to exit notifications 685fef1ee Improve buy message FIAT formatting 690a3599d Simplify exit msg method further e4977d4cb Don't assign the original message dict for no reason 7b78e66e7 Ajust some leverage calls 8726d6392 Remove unnecessary calculations for exit msg 5e9a929e9 Further simplify msg formatting c3ce11c22 Simplify enter_tag call 0ab54b88c Improve leverage formatting 934e72656 Simplify exit message fiat handling b950128c4 Update freqai-running.md 86a9968bd Fix bug in exit message formatting 2bceb35b7 Circumvent edge-case in exit notifications e7eb1c132 Improve startup sequence to avoid certain timing errors fdc573f2f Add rudimentary test for funding_rate fix 02d124b85 Improve naming of funding-rate migration 3eade3e8d Move binance_mig test file to utils 6cce45583 Test migrate_data wrapper f028bdf34 Improve funding fee migration logic 983764ad0 Add "migrate funding fee timeframe" logic a12f36879 Move binance migration to behind migrations gate c9dd99a4b Enhance test to properly capture correct downloading of different futures types 67d3dca49 Fix funding-fee downloading in the wrong timeframe d5d3188b9 Load "correct" timeframes (mark vs. funding fees)... 50287ce55 ensure funding_fee_timeframe is always set 3c1bbd961 Improve funding_fee_calc method structure ec1b2e1da Remove further deprecated metric report 73970d27b Remove deprecated bt-output option 0224c50c9 remove sell_reason from msg types b0fdf6ac5 Update Tests for removed sell_reason field 682b462d8 Remove sell_reason from exit notification fields 22307913d Reduce caching to 5min to speed up UI refreshes in case of open orders. b9786b979 Better test rate-caching logic abda629a7 Use time-machine for get_entry_rate test a4fca5b1f Enhance test naming 903062d47 Improve if formatting b6a71f2d2 __repr__ should use utc datetime... 7a6888dfd Split stoploss test into 2 for easier testing f3da2c6fd Simplify and fix handle_stoploss_on_exchange test ce63eb30a Remove unused test param a9380f0d5 Update freqai.md 316812f42 Help direct people to freqai support fa368a9a4 Improve trailing stoploss test with time_machine 9030e1041 Remove USDT from documentation about "supported crypto currencies". 2c3cef5de don't assume 'type' to be present at all times e722d8145 Fake order response should contain order_id 10dbf4783 Improve exchange_response formatting a2160e450 add exchange_response logging to funding_fee endpoint 842727202 Fix identifier_typos c07f2caa4 Update config_freqai.example.json f0e82592c Bump types-requests pre-commit 501f629c0 Bump pytest from 7.4.3 to 7.4.4 80dbb0dd0 Bump ast-comments from 1.2.0 to 1.2.1 0552df2fe Bump fastapi from 0.105.0 to 0.108.0 e4b843405 Bump pymdown-extensions from 10.5 to 10.7 d2802ad49 Bump ccxt from 4.1.98 to 4.2.2 a9906f078 Bump types-requests from 2.31.0.10 to 2.31.0.20231231 b17c0cd4a Add Note about minimal_roi time used 0575e222b Fix random test failure due to missing backtesting cleanup 1c5a699ae Fix typo and missing type def 292ef85d9 Add additional, optional arguments to metadata files b3c9be1cd Refactor get_bt_resutlist to reduce code complexity 13e329f17 Align methods b9f4a2354 Add documentation for kraken time-in-force 9746d3806 Add post-only order test for kraken ae68d0203 Simplify test for kraken order creation 9896ddf71 Add Kraken TimeInForce support f6de7d952 Add "wraps" handler to telegram wrapper 3a8752207 Fix odd db caching problem in telegram 7ccddb5d5 Fix typo e9c04debf Fix tests due to new exit behavior 79e15591e Improve condition for last exit b62661d8c Improve final exit message e5e3002d4 Simplify exit message e664527da Align backtest and bot method 063b55d41 Fix doc typo ce7061c93 Bump version to 2024.1-dev d78a5798e Fix further warning message due to old Parallel import 16958eaef Update sklearn import 2c5cca4be Reinforcement learning does support 3.11 just fine. 39b2a096a Ignore adjust_trade values that would invert position 3f44f56f6 Remove bool from get_required_startup because its unused. cd28244cf Add and optimized test cases to verify consitent timerange behaviour within freqai. 94363061a Attempt fix timerange problem 4f2d7b858 Slightly enhance logging for clarity 663b1e11f Add timeframe info into 'increase startup_candle_count' log message 2d6a49013 Fix duplicated data loading and timerange for populate_features 9e2e60e7a Correct conditions for remaining stake checking bb2024f78 Add "full partial exit" logic to backtesting e96f4f0e5 Improve adjust_trade_position documentation 6218d732b Only download tradable pairs 9f1599b7f fix pre-commit e541c95c4 fix partial exit test 90332128b allow trade to be closed via partial exit call if remaining amount is exactly 0 ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 2 years ago

FreqAI - 2023.12

Highlighted changes

  • Added bot_name as possibility to discord messages.
  • FreqUI: Add “fast” mode, optionally surpressing exit confirmation dialogs.
  • Bybit: Add support for time in force FOK, IOC, PO (Post only).
  • Improved behavior for backtesting when maxopentrades is loaded from the strategy in multi-strategy mode.
  • FreqUI: Add new “Measure” tool, allowing for quick chart measurements.
  • FreqAI: Add new classification Model SKLearnRandomForestClassifier.

How to update

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

docker-compose

bash 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 ``` 846b7734e Bump version to 2023.12 02836368f add default --dist loadscope arg to pytest options d28202785 Bump CI python version to 3.11 97780ee5b Revert build-online to 3.9 for now e162f98cf Update pre-built wheels for pyarrow c6967b11b Align spelling of "cancelling" 1e5d353cf use safe_value_fallback when parsing orders 58432c1cf Bump lightgbm from 4.1.0 to 4.2.0 8cc2c5010 Bump pydantic from 2.5.2 to 2.5.3 5cbcf7250 Bump pyarrow from 14.0.1 to 14.0.2 35876cf8e Bump ccxt from 4.1.91 to 4.1.98 ac60871ff Bump ruff from 0.1.8 to 0.1.9 866e34a98 Bump mkdocs-material from 9.5.2 to 9.5.3 710797182 Bump nbconvert from 7.12.0 to 7.13.1 348459064 Bump xgboost from 2.0.2 to 2.0.3 971b7d074 Bump uvicorn from 0.24.0.post1 to 0.25.0 ec89aad10 fix typo in stoploss_from_absolute code example fc13a99b3 Use intelligent scheduling to improve online test performance 03fb20440 use Loadscope to improve parallel test performance 0a96aa69b Only run parallel on online tests ddbfce01b Show slowest tests 12e75e849 Don't do coverge on --longrun tests 916a84763 add pytest-xdist to speed up tests 4769b5070 Fix RPC tests 18dd9cf80 Use a trade for test that actually has an open stop order 63e652619 Bump mypy to 1.8.0 3cb4b1065 Specify python version for pre-commit update 23c3757c7 chore: update pre-commit hooks a5c914951 chore: update pre-commit hooks 9ab08d513 Update committer in pre-commit workflow 87ce7dc02 Reduce permissions 3c7c4bc02 Use repo scoped token 0484b891f Add tech maintenance label 71689d9d6 Allow write access to action to allow creating the branch 881247a82 use isinstance for type checks d26154f99 Import logging ... 0e14dd619 Set proper log-level for test 3676514ba Add pre-commit auto-update workflow 9ec23a029 Improve rpc typing 1272a15c3 Properly name Entry / exit types a3a175e33 Reduce logging verbosity message in webhooks 71b777ef3 Fix missing rm line b4e8122fd Attempt to properly remove 3.12 symlinks b1393f1bd (configuration.md) fixed value USDT value in example for clarity 34c5c68a9 Add macos-13 to ci matrix c9a018cf0 Improve output if a strategy wasn't found in the backtest result 2f2467256 feat: add SKLearnRandomForestClassifier 26f0fe238 make example strat *even* simpler and make sure it buys and sells a lot ;) 5e3da30ab Fix remaining bittrex instances 651d2c06b Update tests to use new file b37159308 Move previous test config to tests 3096cddbc further remove bittrex from docs 5bbe6aacf Remove Bittrex subclass fe4bf271b Remove futher bittrex tests 0d3d1e6d9 Remove bittrex from more tests 57e01329c Bump ccxt from 4.1.84 to 4.1.91 a70ca6f61 Bump actions/download-artifact from 3 to 4 e5c783d2d Bump actions/upload-artifact from 3 to 4 e1b652d89 Bump mkdocs-material from 9.5.1 to 9.5.2 4e98b5f71 Bump psutil from 5.9.6 to 5.9.7 901b3f6fe Bump fastapi from 0.104.1 to 0.105.0 d0a9d927d Bump isort from 5.13.0 to 5.13.2 16eb95c71 Bump technical from 1.4.1 to 1.4.2 054ed0a7b Bump ruff from 0.1.7 to 0.1.8 82853e37a Bump python-rapidjson from 1.13 to 1.14 81c6336e1 Bump torch from 2.1.1 to 2.1.2 9a9a6eaa6 Revert "Merge pull request #9450 from freqtrade/fix/startup-candle-count" 67cdab6ee Provide strategy timeframe via API 58470ba9d Fix missing files in wheels c580e8783 fixup bc1ad3acb Improve logging d2e328b8b Update artifact name 93e9c4fa6 Update job names in ci.yml 8d231dbf3 Update build-system to use "build" insead of "setup.py" b178cc5f3 Migrate from setup.cfg to pyproject.toml 6ee0f16e4 Migrate flake8 config to pyproject.toml 1d701967b exclude tests from build d6b43c5ee re-work deploy CI 3670699ea Add trusted publishing for next release 58dfffe87 Add FIAT mapping for BTC e57340992 Add windows ta-lib 3.12 wheels e3fda16d1 Don't overpopulate points at the first iteration 71d3572c2 Support webserver strategy without max_open_trades cfd5af67c Add max-open-trades param to get_trade_stake_amount 47a952e41 Don't use config['stake_amount'] in wallets c9f43587e Bump binance leverage tiers e79a58e1c Add test case to verify behavior in #9432 c62e52c75 Add test for dp_get_required_startup 5ab61d9da Improve missing data output c5c2c8c18 Enforce kwargs for preliminary 755ce3a85 Prevent config modification during webserver startup 105cd9939 use max_open_trades from straetgy instead of config db7799d2f Use variable instead of config for startup_candle_count 30f94ef5b Use LocalTrade for typehint eac5d53a6 Add mock to backtest adjust position 4b43ccae1 Bump ccxt from 4.1.76 to 4.1.84 4b3230689 Bump pre-commit from 3.5.0 to 3.6.0 a0e92f5a4 Bump pandas from 2.1.3 to 2.1.4 17f0697c4 Bump mkdocs-material from 9.4.14 to 9.5.1 199e3f91f Bump ruff from 0.1.6 to 0.1.7 cc14cf23b Bump isort from 5.12.0 to 5.13.0 327f750ea Bump technical from 1.4.0 to 1.4.1 a304080c0 Bump actions/setup-python from 4 to 5 78cb1e608 fix: ensure we have a row of zeros appended (not the function) 0bd513012 enhance further test for funding-fee checking 3f6cd9ee5 Patch funding_fee calculation for unrelated test 8964c138f Call funding fee calculation whenever a trade is closed ef23f0fcb Fix test to account for new funding_fee count 074343f0f Don't calculate funding_fees on every iteration 966eb59fd Extract funding fee calculation to separate method 778bd7b3b enhance further test for funding-fee checking b4cd46d6d Further improve funding_Fee test 1d73b57e8 Extract some assert values from bt test 476703bf7 Update data_kitchen.py cd09d3567 Add spy test on funding_fees in backtesting dd08c134b Remove macos 13 ci again d428d4839 Ease install dependencies for scikit-learn 3bdfa8523 Update scikit-optimize to ft-scikit-optimize bb85efd6a Add test for informative weekly merging 7321a14c3 Fix generate-test-data for 1w data 2745a5d33 Rename informative_pair test d123d3bb8 Completely mock Torch on macos b14873400 Fix odd import in freqai tests 71178ff1d Remove "activate" activator d3d9f3281 Fix torch logging setup mess 3b4b833dd Remove unused mock 3739a1073 Bump nbconvert from 7.11.0 to 7.12.0 9a425af76 Remove unnecessary conditions in Ci run 3c48208b3 Fix cache keys 68db8d020 install libomp 220777367 Attempt more granular cache for macos cbe6d52a7 Try macos-13 CI 4061eaf88 Remove online tests for bittrex ef042ae5e Remove exchange tests on bittrex 6ee792069 Remove bitrex-specific section 46c81d701 Revert "Bump tables from 3.9.1 to 3.9.2" caac77c90 Update data_drawer.py 59a287106 Bump ccxt from 4.1.75 to 4.1.76 8b5e6bf9b chore: fix pandas warning about merging on datetime. fix pandas warning about inconsistent key lists in concat 04f2b7bad Add support for different timeInForce for bybit e0f780f10 Bump python-telegram-bot from 20.6 to 20.7 44689d058 Bump ccxt from 4.1.66 to 4.1.75 1431b2b44 Bump tables from 3.9.1 to 3.9.2 106bda51d Bump pypa/gh-action-pypi-publish from 1.8.10 to 1.8.11 90e4eb59b Improve multi-strategy backtest docs 701f6fc05 Update outdated docs 0235db48a Prevent merge artifacts in "informative" pair e9e7bf3ca Slight cleanup of unused comment 4464b0271 Add handling to properly merge 1M data to 4ed9ffbf3 Add test for behavior in #9490. c01736608 Ensure testdata generation works for 1M data 6754072bc chore: fix future warning on pandas 5daafaabc Add explicit test for "now_is_time_to_refresh d85518ccb Improve release documentation c34cb9eb1 Bump version to 2023.12-dev 36836ea80 add bot_name to discord rpc field d050beb62 Bump torch from 2.0.1 to 2.1.1 72eeb6561 use Cloudpickle also for reading eeb460e55 Use cloudpickle throughout 48317c230 Bump scikit-learn from 1.1.3 to 1.3.2 d52936fd4 chore: try to keep startup_candle_count behaving the same as a normal FT strat 21a5abf25 fix: make sure that get_required_startup is timeframe independent ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 2 years ago

FreqAI - 2023.11

Highlighted changes

  • @informative enhancements, supporting patterns like "{base}/USDT" to generate a parallel pairlist looking at a different quote currency for the full pairlist.
  • Allow disabling of default discord messages.
  • FreqUI: New backtest-comparison view, visible when multiple backtest results are loaded.
  • Removal support for bittrex due to bittrex winding down operations.
  • Addition of Bitmart to list of supported exchanges.
  • Remove individual order info from /status, instead introduce new /order command in telegram.
  • Updated Raspberry image to use python 3.11.
  • Updated Docker images to use Bookworm (debian 12).

How to update

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

docker-compose

bash 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 ``` cb01a4608 Version bump to 2023.11 cf078f809 Bump to 41.0.7 to avoid install problems 5ddca4e9f Bump cryptography from 41.0.5 to 41.0.6 6db66b1e5 Add bitmart to "official supported" exchanges 0a903e45f Add Bitmart to list of supported exchnanges for spot d0a2b9403 Fix typo a18c85ec6 Explicitly disable stoploss on exchange for bitmart 0914b8b5f Add note about verification on Bitmart cb2a87153 Bitmart: add section in exchange docs ef877b5fc Add bitmart to ccxt compat tested exchanges 2738f3e43 Add minimal Exchange class for bitmart 7c00a4ed1 Remove no longer existing exchange aliases from tests 793cc1acc Bump mkdocs-material from 9.4.10 to 9.4.14 35871d7b4 Bump pydantic from 2.5.1 to 2.5.2 786d4e03f Bump aiohttp from 3.9.0 to 3.9.1 5e5b56e44 Bump mypy from 1.7.0 to 1.7.1 384ebc5b3 Bump pymdown-extensions from 10.4 to 10.5 8567af8d2 Bump ccxt from 4.1.57 to 4.1.66 88e818926 fix typo on API docs 12ea1cde8 Bump dockerfile to use bookworm (debian12) df73b8288 Bump armhf image to bookworm a50291cd9 RPI dockerfile - 3.11 be8ea685d Remove unused function in freqAI example e8d0b0199 Correctly import time 94020a664 Add slight sleep to avoid random test failure on windows 8c5194d5e force-reload markets when BadSymbol appears 67e81c901 Fix wrong/faulty docstring 25ebdb4cb use strategy_wrapper for bot_loop_start in plotting 63e702a3b remove unused comments e9f21d020 Improve logging for #9460 a044649ee Also have "badrequest" act as InvalidOrderException 5003c2af2 training_env is a property, also, so types can't be overridden 6963a9233 Improve hyperopt Tests e2863e162 fix: logger has been converted to a property 203890844 Remove non-existing pairs fbab18b08 Add missing config file f7178ecd6 Update test config name and exchange fbc70a60f Update test with no bittrex ... b45365d38 Update tests to run for binance 9990780e6 Update binance config to be for usdt pairs 65df2f30c Update some more docs with bittrex removal e7aa706f7 Update samples with binance 361924712 Remove bittrex from code for suppored exchanges 047dac7b7 Remove bittrex from supported exchanges 764684940 Removed redundant 'cpu_count' 10ae0ed9c Removed redudant negative from sentence d81bbba4c Remove dependency on blosc 0e9169e1e update docs 8680b5faa fix some tests, add new tests b97ff3a78 Bump ccxt from 4.1.52 to 4.1.57 806af7d79 Bump urllib3 from 2.0.7 to 2.1.0 202b72fd8 Bump stable-baselines3 from 2.1.0 to 2.2.1 6f6011731 Bump pydantic from 2.4.2 to 2.5.1 7070ec30e Bump jsonschema from 4.19.2 to 4.20.0 bf77019d1 Bump ruff from 0.1.5 to 0.1.6 b776e5a8e Bump rich from 13.6.0 to 13.7.0 ca208305a Bump aiohttp from 3.8.6 to 3.9.0 972c5c327 Bump mkdocs-material from 9.4.8 to 9.4.10 80edfd153 Bump scipy from 1.11.3 to 1.11.4 58cd45564 fix unused vars caf59d25e forgot comma 7df32a34a remove order list from /status and add new /order 48097f4a7 Update tests according to calculation update ca3f349d8 Update intermediate close_profit calculation 0815bb624 Improve trade close profit assertions f9202c3f6 Clarify hyperopt docs for parameter options eb186e22d Fix backtesting-analysis when no trades for a pair cbc323875 Improve contribution wording 757ec5387 Bump ccxt from 4.1.40 to 4.1.52 5f8ff373a Update mypy to v1.7.0 in pre-commit-config.yaml f286cb0a9 Use BaseException in exception check e6663c030 Update strategy-customization.md ced92300e Bump tables from 3.8.0 to 3.9.1 d2afe281b Add cancel order to new exchange docs c237aa00b Remove non-used imports 23efa4c9c Remove deprecated json_encoders key from model_config 8b028734c Bump pandas from 2.1.2 to 2.1.3 51feeddc5 Bump mypy from 1.6.1 to 1.7.0 84b3f9924 Bump ruff from 0.1.4 to 0.1.5 50b264c6f Bump pymdown-extensions from 10.3.1 to 10.4 88e8a9fe2 Bump numpy from 1.26.1 to 1.26.2 d65aef72e Bump xgboost from 2.0.1 to 2.0.2 8273c0c2c Skip exchange validation in API server dependencies c7624b1ed Simplify LiveStats models 54536a1c8 use profit_ratio for mix_tag_performance 7daa06a20 Align mixtag response with other statistic models 7d0ecfde9 Add tests to ensure responses are as expected 2ef716e94 Add response_models for new endpoints de68850d2 Don't tag informative endpoints as "trading" 59cefda28 Update strategy-callbacks.md with new information on max_entry_position_adjustment c9a5e5a98 Fix another (identical) typo 51dc5811c Update freqai-feature-engineering.md 05e36f7b2 increase API version 0738cae4a fix pre-commit da3c42bbb add entries, exits, and mix_tags API endpoints 315783441 Update pyarrow wheels 62f1421cf Bump pyarrow from 14.0.0 to 14.0.1 52f12b704 Avoid time colision when creating orders in test 3729b3d79 Bump ruff from 0.1.3 to 0.1.4 39fc78205 Bump uvicorn from 0.23.2 to 0.24.0.post1 46a67e8d4 Bump nbconvert from 7.10.0 to 7.11.0 69017805c Bump ccxt from 4.1.39 to 4.1.40 bcec61197 Add pre-built wheels for pyarrow 14 fbb11a394 Bump sqlalchemy pre-commit 921e03426 Bump sqlalchemy from 2.0.22 to 2.0.23 264ab2c47 Bump pyarrow from 13.0.0 to 14.0.0 31af1d5dc Bump markdown from 3.5 to 3.5.1 588bbb45b Bump cachetools from 5.3.1 to 5.3.2 7ed037bad Bump tensorboard from 2.15.0 to 2.15.1 77b00b2a1 Bump mkdocs-material from 9.4.7 to 9.4.8 773bc386f Bump filelock from 3.12.4 to 3.13.1 90dacaca0 Bump jsonschema from 4.19.1 to 4.19.2 3689ad16b Bump nbconvert from 7.9.2 to 7.10.0 ab9954350 Bump ccxt from 4.1.31 to 4.1.39 533f11d9e Bump py-find-1st from 1.1.5 to 1.1.6 551033a7c Bump fastapi from 0.104.0 to 0.104.1 2efef72ec Reduce wait for ws test 751db2be7 fix: test typo mishap 6ea353447 use tmp_path instead of tmpdir 5a3839320 Remove further usages of Path(tmpdir) 555f4b51e Further improvements to test setup be82248e0 Remove futher usages of Path(tmpdir) 7bed7801c Further test simplifications eb409de91 use tmp_path instead of Path(tmpdir) 72dc65cb6 fix: swap tensor dimension to play nicely with pandas 2a0175f62 Add "empty" config to disable default discord messages cd6817344 Update Dockerfile.armhf to use prebuilt wheels c920e3a03 Bump Dockerfile to 3.11.6 83afc4ac7 Add pyarrow 3.11 wheel 19f62649e use "noindex" to install pyarrow on armhf 61ed6aee6 Add test for new formatting 051b6e945 Update documentation 44a24685a Add support for {base} and {quote} in informative decorator 1cde980c0 Extract pair_formating options 05ef4f9b6 Fix forceenter - cancel dialog not working 26aa14dbf update binance leverage tiers 04cd931cc Pass explicit stringIO type to pandas read_json b8a6330c3 Improve pandas handling 949c3c660 Ignore "nan" enter and exit tags 9297a90d7 Use proper indexing to avoid deprecation warnings b19f17fdf Improve handling of bt results in optimize_reports bbdc6c0f5 improve pandas syntax to avoid deprecation error 528c65c19 Bump pandas from 2.0.3 to 2.1.2 bf24c3b27 BUmp cachetools types in pre-commit ocnfig 5182045cd Bump pytest from 7.4.2 to 7.4.3 b36907133 Bump ccxt from 4.1.22 to 4.1.31 0ab9eb7b0 Bump orjson from 3.9.9 to 3.9.10 d3d446498 Bump types-cachetools from 5.3.0.6 to 5.3.0.7 1d0934074 Bump ast-comments from 1.1.2 to 1.2.0 9382fb3be Bump ruff from 0.1.1 to 0.1.3 223af95da Bump mkdocs-material from 9.4.6 to 9.4.7 8b68b55de Bump xgboost from 2.0.0 to 2.0.1 99592d1a1 Bump python-rapidjson from 1.12 to 1.13 b69f5aaac Bump plotly from 5.17.0 to 5.18.0 0c1fefe6e Bump cryptography from 41.0.4 to 41.0.5 a049ff937 Improve special testcase 0c51e2637 Fix calculation issue for #9346 7492b75e1 Bump version to 2023.11-dev 24dfd9b93 Add test for #9346, showing current behavior 7d65b3e1b install libopenblas-base to base image cf43427be armhf: Move pip install to base image 7ae41be97 Remove numpy armv7l lock since wheels are now available ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 2 years ago

FreqAI - 2023.10

Highlighted changes

  • Improved handling of order cancel messages if the order doesn’t cancel immediately.
  • Improved handling of funding fees in order-adjustment scenarios.
  • Special kraken data import (details: https://www.freqtrade.io/en/latest/exchanges/#historic-kraken-data).
  • FreqUI: New setting to invert Colors from Green/Red to Red/Green.
  • FreqUI: Improvements to backtesting Chart view.

How to update

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

docker-compose

bash 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 ``` 9a73f7a7b Bump version to 2023.10 2c2046498 Reinit orders list on "local" objects to instance variable e97d9013d Avoid having orders leak after multiple "from_json" calls 1e18b35f2 Change box type to tip bb7828566 Add hint about helper commands to common mistakes section 1dccdf059 bump ruff in pre-commit 5da48d8ff chore: fix tests 4f4b7c562 fix: bug in startup candle offset 9dcf23638 Align flake and ruff configs further 494fd734b Bump ruff from 0.0.292 to 0.1.1 c2905a452 use --output-format in ruff CI fe5f085ec types-requests pre-commit 748ac50d8 Bump ccxt from 4.1.13 to 4.1.22 d2069c172 Bump pytest-mock from 3.11.1 to 3.12.0 38cf50830 Bump fastapi from 0.103.2 to 0.104.0 bf96a43ef Bump types-requests from 2.31.0.9 to 2.31.0.10 22b455592 Bump tensorboard from 2.14.1 to 2.15.0 7fb3632e7 Bump mypy from 1.6.0 to 1.6.1 e5f0fe288 Bump pymdown-extensions from 10.3 to 10.3.1 58aaaffe2 Bump websockets from 11.0.3 to 12.0 16dfde22f Add FIAT mapping for USDC bbbc8a760 Fix stop evaluation sequence to have stop before liquidation e69c21c9f Revert "Bump torch from 2.0.1 to 2.1.0" 0a5cee6a7 Ensure we're not erroring on invalid custom_entry / exit prices a80c97948 Improve behavior when downloading trades data on time-based pagination a8c246ce0 Bump urllib3 from 2.0.6 to 2.0.7 1a78346cf Add further ebug log message for stopping clarity for --dl-data e6d0d53e4 Add further ebug log message for stopping clarity 7de415a6a Don't bump numpy for armhf just yet f46fa440f Bump numpy from 1.25.2 to 1.26.1 3264e2c31 pre-commit requests bump fadc7a205 Bump types-requests from 2.31.0.8 to 2.31.0.9 5940279f7 Bump mypy from 1.5.1 to 1.6.0 35f6333b6 Bump ccxt from 4.1.8 to 4.1.13 5d9b69cbf sqlalchemy - precommit 1e0ce7d47 Bump pre-commit from 3.4.0 to 3.5.0 27cd54b42 Bump ast-comments from 1.1.0 to 1.1.2 ec64a182f Bump mkdocs-material from 9.4.4 to 9.4.6 dd30df705 Bump sqlalchemy from 2.0.21 to 2.0.22 4c6e33aa8 Bump psutil from 5.9.5 to 5.9.6 8cb934849 Bump orjson from 3.9.7 to 3.9.9 9d552d45c have to use bitwise operator, otherwise ambiguous error is thrown 1e1b8dbe5 Handle multiproc calls for now 2d9d8dc97 Improve logic for progressbarcallback handling ba674fc79 Type-ignore training-envs 58550515a Fix deprecation warning from tensorboard-callback 27bae60b6 Fix typo 646dd63fa Properly close out progressbarCallback 8d2b389e2 Fix wording in log msg 042e35e8d Improve funding fee startup behavior b76513ce3 Fix typo in trade_model 368bfcf47 Add comment for funding fees running fee3c598d Move schedule to 1 minute after the hour 69264cc16 Reduce funding fee update calls e81929bc5 Have test use funding_fee_running 0843b19b6 Implement logic around funding_fees runnign 813b472c6 Add funding_fee_running column 2f079711e Add explicit test for get_funding_fees logic 97e9d2dc4 Remove get_funding_fee error handling - it's no longer raising this error. 7344f2080 Handle funding_fee error in exchange class bfe04464b Handle funding fee errors for regular trades per trade 2225f5661 Additional funding fee update after additional entry orders 9e77c93a5 Tighten funding-fee variance for backtest b65fa98ce Simplify backtesting by using current_time more consequently b57821b27 Add set_funding_fees to backtesting db7f9598b add set_funding_fees method e547da10d Move funding fee assignment to update_trade 5a0c15f37 Update Idem test 0f5b69b4f Move from_json to LocalTrade class 86d4497aa Add additional test for from_json 1bfecb031 Revert "Bump tables from 3.8.0 to 3.9.1" 74f678a26 Bump markdown from 3.4.4 to 3.5 1bba0cf7f Bump pre-commit types-requests b1fd0c73c Add additional test case for funding-fee calculation 29eb6d938 Update test for fixed funding_fee logic 19620470b Improve funding fee cutof logic 7a69b01b9 avoid edge-case in test bc531cf84 Improve variable naming 14908e52e Improv variable naming a86bf8d6d Bump aiohttp from 3.8.5 to 3.8.6 5fae03f7b Bump nbconvert from 7.8.0 to 7.9.2 f7f0f3beb Bump ruff from 0.0.291 to 0.0.292 ccbab6ee6 Bump tables from 3.8.0 to 3.9.1 ef12dafea Bump python-rapidjson from 1.11 to 1.12 08a65b50a Bump types-requests from 2.31.0.7 to 2.31.0.8 d28d6cbdb Bump python-telegram-bot from 20.5 to 20.6 41a6709ec Bump torch from 2.0.1 to 2.1.0 756f5d540 Bump mkdocs-material from 9.4.2 to 9.4.4 422b9c8fb Bump ccxt from 4.0.112 to 4.1.8 40ec2c492 Improve messaging in case of delayed exchange cancel 5cf7ad85a Adjust tests for new interface to handle_cancel_* methods f02c9f043 Pass order object to handle_cancel* methods c59b5e778 Improve type hinting e525c6694 Add ft_cancel_reason column to order object 897c14e2e Don't check for "open orders" in handle_cancel_enter 6c00bf423 Fix comment 094984eb2 Fix wrong typehint 081411fba Improve bot typehints 178c0972f Read funding_fee on order objects in "from_json" 910e317a4 Fix unhandled exception 1ef5adbb0 Test for #9270 f5db856a7 re-align adjust_entry_price between backtest and live b2ad40253 Hide most non-freqtrade logs in `-v` mode 1e0d622d8 Don't run "recovery" when stop-orders are open 1d941249e Revert "Remove numpy armv7l lock since wheels are now available" 5bfd3fdc3 Add openblas to armhf image 04409602a Remove numpy armv7l lock since wheels are now available b2796b850 Add funding_fee export to order object f14b4133c fix wording 3c2e043e8 Bump urllib3 from 2.0.5 to 2.0.6 609ed2d7b fix return values 183166b3f fix output if no variance, and fix docs cd071c3bd Bump cryptography from 41.0.3 to 41.0.4 60c2b1d6c Revert "Bump ast-comments from 1.1.0 to 1.1.1" 79e59bdda Bump types-requests pre-commit b409ab5ea Bump pydantic from 2.3.0 to 2.4.2 5feb7fe65 Bump ast-comments from 1.1.0 to 1.1.1 980960bc6 Bump arrow from 1.2.3 to 1.3.0 84335d58b Greatly speed up recursive by caching exchange 9edd7e6bc Bump fastapi from 0.103.1 to 0.103.2 7478c56ca Bump rich from 13.5.3 to 13.6.0 1f36f4802 Bump tensorboard from 2.14.0 to 2.14.1 4d920d786 Bump packaging from 23.1 to 23.2 19fb3f9b5 Bump types-requests from 2.31.0.4 to 2.31.0.7 fafc10257 Bump mkdocs-material from 9.4.1 to 9.4.2 3868f9c69 Bump scipy from 1.11.2 to 1.11.3 0204f666b Bump ccxt from 4.0.105 to 4.0.112 f32a13bfb Bump schedule from 1.2.0 to 1.2.1 4809c9f07 Adjust tests for new naming 19af144b3 Improve of analysis files further 4db796204 Update tests to new structure 7e6f2cba5 Move analysis command into their own subspace f7ff1dc61 Bump develop version to 2023.10-dev 8ad6eb989 Update parameter value to be clearer 74709461e Improve exception wording 9e6cc5ebb Improve comment on special handling a2d8f92e0 Add rudimentary test for test_trade_converter a7d90e2a2 Minor adjustments to conversions 83b37e2f7 Add documentation for kraken data mode 488629096 Improve logging in kraken-converter a3f167f6d Split format-from for trades to allow for trades special case 1e8814b43 Improve handling of kraken dataconvert 2e430519e Call kraken-convert in special cases 2164b02c6 Add initial code for trade_kraken import ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 2 years ago

FreqAI - 2023.9

Highlighted changes 2023.9

  • New subcommand recursive-analysis to check for startup bias in your indicators. Please refer to the [docs].(https://www.freqtrade.io/en/stable/recursive-analysis/#how-does-the-command-work) for an explanation.
  • New argument after_fill to custom_stoploss() - which will allow the strategy to adjust the stoploss in any direction.
  • New argument leverage for stoploss_from_absolute() helper, for proper leverage adjustment.
  • New Pairlist FullTradesFilter - which empties the pairlist when all trade-slots are filled.
  • Add /weekly and /monthly API endpoints (and show corresponding metrics in freqUI).
  • Improvements to /reload_trade on Bybit and OKX, improving reliability for these exchanges when using this functionality.
  • Improve output of /profit, adding drawdown metrics.
  • Add trade argument to custom_entry_price() callback (only filled for additional entry orders, otherwise None).
  • Bybit - updated to api v5 after deprecation of old API’s.
  • Improve behavior when replacing orders where the initial cancellation fails.
  • Officially deprecate edge in the docs.
  • FreqAI: Improve behavior after downtime of more than 1 candle.
  • Drop support for python 3.8. If you’re still using python 3.8, please upgrade to python 3.9+ (we recommend 3.11).

How to update

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

docker-compose

bash 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 ``` 96c5db3e3 Bump version to 2023.9 2d56b1bc8 Fix whitespace aff5372a8 chore: protect users against process_only_new_candles=False 7971cb29b fix error message 154149ff0 Slightly updated docs 92d7f2798 Further update test a bit 20ea679b2 Add "bias2" test with full lookahead bias 39ede449a Rename test to avoid naming collision 37550d3bd Fix typo in --strategy_list b68852662 Improve sorting in docs d52d30cfb invert setting-location for stopLossPrice 56a85690b Update cached leverage tiers 90475e52d Change strat to strategy in freqai-feature-engineering.md 504f51fab Fix liquidation price setting in backtesting a905d1bd6 Assert backtesting liquidation price a27baf1a5 Improve backtest test 3f60b2c14 Update bybit stoploss parameter/prop for new ccxt version 927d1d268 Split stop_price parameter from property ed45dcdf8 Update .gitignore to exclude memray stuff e518e741a update bybit live order to v5 56b9c250b Update order_parse online test a009816ac Bump ccxt from 4.0.88 to 4.0.105 551d1b096 Bump sqlalchemy pre-commit 5e696f4ea Bump sqlalchemy from 2.0.20 to 2.0.21 c39290d7d bump types-requests in pre-commit 4849b23fd Bump urllib3 from 2.0.4 to 2.0.5 d032aaaba Bump mkdocs-material from 9.3.1 to 9.4.1 0099381dd Bump jsonschema from 4.19.0 to 4.19.1 7bcb3d558 Bump types-requests from 2.31.0.2 to 2.31.0.4 c15c13a36 Bump ruff from 0.0.290 to 0.0.291 53a727306 Bump catboost from 1.2.1 to 1.2.2 da9a8b616 Bump mkdocs from 1.5.2 to 1.5.3 e6277222c Bump time-machine from 2.12.0 to 2.13.0 8002b476f Update recommendation for kraken d9b5d05e2 Align sample configs with the "no ratelimit" recommendation f5d7a4417 Split trades methods into seperate converter file 04b3b1d4d Update data-download.md 38a3ce616 Convert "converter" to package 123e51774 Move trades-to-ohlcv tests 2322d0f3f Move trades-to-ohlcv to converter file 8a5287581 Move some convert-trades-to-ohlcv logic into convert function 41cdd28f5 Improve log output for convert-trades b387c315d fix pre-commit 3c647a379 change wordings on the doc from backtest to "calculate indicators" since we never do full backtest process aac9ee0d5 move lookahead and recursive docs under Advanced Topics 966247baa Make sure use_db is set as early as possible. 589b9858f Disable build isolation (fix no docker builds) c0b2b0b96 fix args description 6cfc1836a fix wrong startup candle 35800f3ad remove hardcoded docs link 9fa365e76 Fix docs rendering (lists need a newline before the first item) a4a3b1956 Fix typo in docs dda5a5901 Revert "Bump ccxt to 4.0.101" 30e8466ca Update recursive-analysis.md 3881c5189 add example of the result of the analysis 4959d124a Update recursive-analysis.md f133ee3cc add more explanation in the docs about startup candle and its relation to API limit ef6afaa2c Add test for replace_fail 0e406c4d7 Update some more test wordings b21775142 Improve variable naming in test 8ccc66cd9 Add tests for cancel order retries b4e732617 Add handling for order replacement cancel failing 450219c83 Extract replace_order_faild message and behavior eb7df3006 add test 961f50e33 fix broken link 478e6f1e6 fix test a0e115ebd fix another test ce4f1b070 fix test after adding new test strategy aba576f79 pre-commit fix d92a6d7b7 all tests done 89d47ffd8 4 more tests b9e9f8250 first test done 08b94a207 1 test 9f445cb05 Don't rely on status when determining open order count 1d23ba6e3 Improve wording after order-replacement 28e43a486 initial test 1b2852187 Improve execute_entry interface 4ba3363bc Use matching numpy version in docker armhf image d465fcffd change startup cande in sample strat 32b0098ec fix example in the docs, increasing startup to 400 on ema100 e77b9de89 fix docs aec67cda6 update bybit live order to v5 f3fb801b3 Update order_parse online test fe3308824 Bump ccxt to 4.0.101 4bca8b97f Don't allow empty order-type from exchange f62f4f771 Fix deployment (no arm numpy wheels just yet). 896e2b628 piwheels finally has wheels for cryptography ddb0ae10b Ensure no None status is passed from "create_order" 37fa186c5 remove 1 column 979e485f2 initial doc 830f2219c Update exchanges.md d21f0f408 chore: add guardrails for users who neglect docs 8f883f231 chore: fix set_initial_hist_preds test 2f63b0199 Bump xgboost from 1.7.6 to 2.0.0 cfdd9d6be Bump lightgbm from 4.0.0 to 4.1.0 fd4877759 Update hard min-requirement for python 3f85f3cce Exclude UP036 for now c7106a680 Bump plotly from 5.16.1 to 5.17.0 6e1f457fb Bump python-rapidjson from 1.10 to 1.11 533a16658 Bump rich from 13.5.2 to 13.5.3 9b35dae46 Bump mkdocs-material from 9.2.8 to 9.3.1 e6d01b04e Bump numpy from 1.25.2 to 1.26.0 d185b2020 Bump filelock from 3.12.3 to 3.12.4 74ed0e0b1 Bump ruff from 0.0.287 to 0.0.290 f6fce2162 Add new parameter to strategy template 158bf0977 Fix type checking error 1f1abfe79 fix: avoid duplicate date columns interfering with fit_live_predictions() 29a5e049b edit note wording for custom_entry_price 2bc0c4ecd update docstring 224213840 update trade object as optional parameter d81fdeb3e Update docs/strategy-callbacks.md 14c5f435a okx: Use proper history endpoint for fetch_orders 5745722a3 Increase time for fetch_orders in test a7cd9d77f ignore custom_entry_price trade object type test, remove LocalTrade as type 5b857aeaf fix custom_entry_price trade object type test afb1b787c add okx to fully tested exchanges 659168d34 Improve cancel_stop test 3f4715ba4 update custom_entry_price docstring 1d0f1bd1e update doc 220bc3c23 Rename fetch_orders_emulate to make it non-protected c90be601f Add offset to "fetch_orders" to avoid missing the initial order 5d8e0573f Run handle_onexchange_order test without dry-run 3d858f659 Fix bug closing trades while recalculating 6d2d5f93d Add exit order test d01bc0fb9 Enforce kwargs for update_trade_state 394d758d3 Add missing fields to json (and json parse) 91c710408 fix flake8, set trade object param as Optional 3a7f39051 Cancel based forceexits shouldn't trigger a full exit. a7d6efdcd Fix order amounts in test fed24c130 Improve test for get_canceled_exit_order ae4021da1 Rename get_canceled exit orders ... 8378a0234 Filter exit_order_count on canceled orders only cf96ad1d1 add trade param to custom entry price in interface, bot, backtesting, exemples 3919bf374 Adjust sequence of trade json output 9814cf536 flake8 fix c19fe95d3 add the filter to docs, tyding up the py file 383bdb7d5 flake8 fix 33bf7f9f3 Ensure test doesn't fail based on daytime 454c2343a More clarity for adjust_trade_position callback docstring 310c9f603 Update test_freqai_datadrawer.py c0a600858 Change the cache of rangestability to 1 day 5b0738541 simplify the filter 844ab4aef chore: add tests for set_initial_return_values 44ca6f1c4 remove unused vars and change wording 552f94724 remove unnecessary check 7655bf6ea turn off logger for now 25ae25248 add logger dd01ae880 fix error e0a06ca45 add fulltradesfilter a93592c46 add fulltradespairlist 08dffc95d fix wording 5019fb5bf fix flake8 a0e0d7fe2 more fixes 6377fd268 flake8 fix bd9ea9bd8 precommit fix cfeefa875 remove prepare data from baseanalysis 475d8486b fix mutable Backtest 628963c20 chore: fix bug associated with leaving FreqAI offline for more than 1 candle. 4d1810c2b update lookahead analysis 05f0dccb8 add missing args to config 6360e7fb1 debug 40695a39d add missing var 008f62121 create BaseAnalysis class a52cf4221 use last order date to fill order. a866b0a35 Improve test correctness af1054fa7 Avoid re-implementing existing feature ee9d2c637 Improve "order refind" mechanics f0819d9df Improve "filled" date assignment for order updates 96e5615d1 Update safe_value_fallback to allow empty 2nd keys 82baa3f93 Improve and clarify wording around use_exit_signal 45c90c201 Bump pytest from 7.4.1 to 7.4.2 3a1057e1f Bump questionary from 2.0.0 to 2.0.1 e45d5d359 Bump orjson from 3.9.5 to 3.9.7 14ee5a207 Bump mkdocs-material from 9.2.7 to 9.2.8 da83243eb Bump ccxt from 4.0.81 to 4.0.88 46ec7d5ea Bump actions/checkout from 3 to 4 29fbac9f9 Add "catch-all" exceptionhandler for handle_onexchange_order 421a6c02a Improve enum imports bef27467b Further improve test 52f971cbb Improve existing test 563e68e89 Don't hard-fail merge if there's no informative data 49b4ab6d3 Simplify some things in tests 7455e56a2 Add docstrings, simplify some code 245a67e37 Avoid tons of commits when cancelling all orders e76d4241a Remove further unnecessary method 01ff054a0 fix open orders telegram reporting 9e1f7dc6f have force-enter also include has_open_orders 067c9219b replace 'open_orders' with "has_open_orders" in api f4e5ce892 use has_open_orders in persistence 830fc7580 Cleanup unused property cb5cd5cd8 Temporarily downgrade padnas to <2.1.0 f8b97b6aa Fix dtype mismatch error 7b6e2eac4 use ffill instead of fillna(method='ffill') f13e134e9 Update actual notebook (not just the docs) 97a37198b Update test 43bb4114d Update test for no open_order_id usage ffaa121bc Simplify code by removing unnecessary (and non-working) method 227b194a8 Partial exits should consider leveraged trades. 95d8c4548 test_handle_cancel_exit_limit - partially fill by half bae4abace Test test_handle_cancel_exit_limit short 44461bd1a Add leverage to test_handle_cancel_exit_limit test 2c095c07f Improve variable naming 97275f5a4 Update strategy_analysis_example.md 7ccff1843 remove old codes when we only can do partial entries f09c0a5bb Remove 3.8 talib Wheel aba945009 Simplify requirements for 3.9+ 4ef164713 Setup.sh should require 3.9 6e93bff37 Update documentation for 3.8 removal 4d20e37f4 Remove 3.8 from CI 20cca01d1 Fix bug in volumepairlist if lookback is bigger than the available candles (new pairs) 8cbb5d2a9 Adjust test for "nan" data fbae2142d Remove misleading "cd freqtrade" command e854667eb Add max_drawdown_start and end to /profit API endpoints 7bf20d906 Show drawdown from/to on /profit calls 7c5a11623 Use dt_ts_def in profit endpoints 783a2d945 add dt_ts_def helper 2073c7181 use format_date in rpc methods d8122962d Add "date to string" helper 1ea626fb5 Pin pandas for <3.9 versions to old version 574744348 Bump pandas from 2.0.3 to 2.1.0 efb9975e3 Bump pytest from 7.4.0 to 7.4.1 5954e7796 Bump mkdocs-material from 9.2.5 to 9.2.7 39b6a0022 Improve naming of calculate_profit method 07e07bd66 Improve test, ensuring we calculate profits correctly fac8e0fde Remove calc_profit content ffb1cf52b Convert further usages to calc_profit_combined 399f144c2 more calc_profit_combined usage 459b9d80d use calc_profit_combined 28e685ee2 Switch combined profit response to dataclass c58a1649c add calc_profit_combined call ac6cdb76c Bump catboost from 1.2 to 1.2.1 8ac3e8ad5 Bump ruff from 0.0.286 to 0.0.287 e0f52696a Bump pre-commit from 3.3.3 to 3.4.0 f75f0ccf2 Bump pymdown-extensions from 10.1 to 10.3 440f6ab8e Bump nbconvert from 7.7.4 to 7.8.0 e7daf3177 Bump ccxt from 4.0.76 to 4.0.81 8ffc0ad9f Bump fastapi from 0.103.0 to 0.103.1 df83bdea8 Bump python-telegram-bot from 20.4 to 20.5 420f6fb9a Bump filelock from 3.12.2 to 3.12.3 cea3f7d3f fix flake8 a9f63c6a9 fix mypy 0ada2d939 fix mypy e1b6b9b5a ruff fix 3fea2a35a pre-commit fixes 821a598ff fix ruff feab5f82c add missing arg 607c604a4 add mising const b77f926cd add recursive analysis a4fc7ce0c "fix" bybit invalid order responses for canceled orders d1984945d Improve tests for /weekly and /monthly 3c20ab683 Have /monthly return proper dates, move formatting to telegram f838bc760 Implment weekly/monthly RPC endpoints 25f5dbfcb Delete trade if replacing the first order failed be044fbac Improve log output 7a4276f6c Include pair in dry-run order names 925e18368 Fix linting a.k.a. Maybe one day, flake8 will like me 250e00e6c Fix dropna subset 81672da57 Fix nulls in indicator list output and add expectancy ratio per entry tag in analysis group 0 output d68c22b21 Move merge-informative_pairs helper to informative section e806e4a79 Move stop helper functions to callbacks section 6f86e30c7 Add leverage adjustment to "stoploss_from_absolute" a87404b5a Reduce limit order cross threshold 0357d373a add QRDQN to SB3_CONTRIB_MODELS 28c62724d Add explicit test and message for "Order could not be replaced" scenario d13357bb0 Update setup.sh 65fe1a671 Add explicit test for bybit fetch_orders behavior 6429282f0 add iterating emulation to fetch_orders for bybit b5fa01360 Add pairs argument to fetch_orders 02bd052e4 Improve naming of variable 4ed46ef6b Add significant digits Round_Up / round_down 65c7607e3 Add Tests for "Significant" digits bfc2c70b4 Fix and improve Tick size ROUND_DOWN logic 3a6c00dba Improve price_to_precision test depth 133660ff4 Fall back "price_to_precision" to ccxt where possible 994b2a0f2 Update sorting of price precision logic d4c042c52 Add amount precision test to test for significant digits b48fe4ce5 Properly use Precision-mode Variable 78f356c0d amount to contract precision to test_utils 7263d321f move timeframe_to* tests to test_exchange_utils 1ccbe87f9 Move precision tests to exchange_utils test file e7d2a4876 Move date_minus test to exchange_utils testmethod c894843d0 Exclude .venv and .env from flake8 23aa8dcd5 Simplify profit calculation (removes unnecessary fallback) 5eb446f1c Don't remove elements from list we're iterating over 5efa40215 Allow invalid futures pairs (`:` separated) 99b01a39d Add note about Edge deprecation 2bae4c98b Add rpi wheel for pyarrow 13.0.0 f717928ae Bump mypy pre-commit 3643ad005 Bump pydantic from 2.2.1 to 2.3.0 46b8708ff Bump fastapi from 0.101.1 to 0.103.0 9136c13cd Bump pyarrow from 12.0.1 to 13.0.0 0df9436d0 Bump mkdocs-material from 9.2.1 to 9.2.5 d32aabecd Bump ruff from 0.0.285 to 0.0.286 f2a3dd641 Bump ccxt from 4.0.71 to 4.0.76 fc23b47c4 Bump python from 3.11.4-slim-bullseye to 3.11.5-slim-bullseye f25670167 Bump version to 2023.9-dev c1df94b50 Bump version to 2023.8 f19f3ed4e Fix rpc forceexit logic, fix remaining test 2f97b00d3 Fix test 911e23849 Revert false removal of Exception from test 5659ca2ec Fix migrations 0181abc62 Fix migration SQL statement acda2ff90 Remove open_order_id from test_ftbot 43c73c75c Remove more open_order_id references 95daff182 Update backtesting to not use open_order_id b82b77d03 Fix some rpc tests 193dcf578 Fix logic error in force_exit if no order is open 4c0a6611c remove open_order_id from test mock trades 5ed590780 Add explicit example for "after_fill" handling a78d70499 Fix strategy template typng cb85a5304 Improve "uses_after_fill" detection 7f1a81eee Fix stop switching to trailing if order is replaced in backtesting 106dffe2c split update_trade 070a1990e Improve handling of None values from custom_stoploss ddf79088f Update custom stop documenttaion 3ed682a9c Allow None from custom_stop 6e32f172b Update samples in the documentation bef5e191a Don't surprise people with "after_fill" calls fc60c0df1 Add call to stoploss-adjust for backtesting 62d83b8db Use is_stop_trailing for actual trailing detection e1eeaa24d Implement "adjust lower" correctly 624939252 Add test for "allow adjustment in other direction" 4da8c9116 Improve stop adjustment tests ec8ba821e Simplify stop adjustment code 6b9547a9a Improve migrations ae9f73062 Add explicit "is_trailing_stop" field to database 147cc4f0b Initial version of stop "after_fill" e2274e813 Rename adjust_stoploss parameter to allow_refresh d09193127 Ease meaning of "refresh" param for adjust_stoploss 2893f0544 fix test_apply_fee_conditional_multibuy f224f743d Add explicit test for open_orders property be062c5fb Fix frequent notification bug due to stop order 5c0d89feb fix test_handle_insufficient_funds with comments 4e6068a92 wip fix test_rpc_force_exit / __exec_force_exit 07c629922 fiw wip test_api_status 3f506bb47 fix test_api_performance 1c4c2272f fix test_api_delete_open_order 1ed6f1875 wip fix test_rpc_force_exit ca4ef22d0 fix test_rpc_status_table db5383927 fix test_rpc_trade_status 29d77a17e Fix more tests e34bfa976 Fix exception test d08bad728 Fix trade_from_json ac4e3028d Clean up some code f1bed9515 Fix some initial tests f3f5b63b7 Remove duplicate attributes a98e8ef20 retreive open orders from orders list, not from db b03147097 WIP with comment on test test_adjust_entry_maintain_replace 171c4f182 update test_adjust_entry_maintain_replace test case, fix first RPC test 32c919cfa replace open_orders_count by has_open_orders in freqtradebot bf60f38a2 fix tests test_handle_trade, test_handle_cancel_exit_limit, WIP on test_adjust_entry_maintain_replace 93994756e fix multiple tests, including test_check_handle_cancelled_buy 7c55a2c6e fix tests: test_manage_open_orders_entry, test_manage_open_orders_partial_except, test_adjust_entry_cancel, test_manage_open_orders_partial_fee ee4379256 fix tests: test_handle_cancel_exit_cancel_exception, test_update_trade_state_sell, test_manage_open_orders_entry_usercustom f14b42f20 add use has_open_orders property in freqtradebot tests 6e8c765ec add has_open_orders to Trade model property 5f7040688 fix more tests 069759c7c fix more tests ebd5fac91 update cancel_all_open_orders, wip on fixing test_cancel_all_open_orders 156c20288 fix more tests including process_open_trade_positions 8e0faf4aa fix more tests, remove legacy conditions from update_trade function 20a2b2749 update LocalTrade model orders related property type 73d1201ed start fixing test_handle_stoploss_on_exchange_trailing, add temp logs fcbacae6f remove unuseful function call in manage_open_orders 60a50a2ea fix test_handle_stoploss_on_exchange, add more orders related hybrid_properties to Trade classes defa6f45b fix more freqtradebot tests, update params of handle_cancel_enter, handle_cancel_exit 9cdff0b0a fix first important tests in test_freqtradebot, update and fix on order related Trade class hybrid_properties 450fc5763 fix test test_freqtradebot.py::test_execute_entry 249566155 remove unrequired appends from test_update_limit_order ae92557dd remove commented legacy open_order_id property references 057f852e0 fix localTrade and trade classe miroring, fix persistence tests 4874d1045 Replace open_order_id property by open_orders in Trade model, first test update ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 2 years ago

FreqAI - 2023.8

Highlighted changes

  • Switch default dataformat from json to feather to provide the best possible performance (please use convert-data to convert your existing data. in most cases, freqtrade convert-data --format-from json --format-to feather should work fine.
  • Add “notes” capability to backtest UI, to keep notes about that specific backtest run.
  • Removed explicit support for exchange sandboxes.
  • Simplified minimal new-strategy template.
  • Prevent lookahead bias in informative data within callbacks during backtesting.
  • Move virtual environment from .env to .venv (:warning: Make sure to update your scripts if necessary).
  • Added support for parquet format for trades data.

How to update

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

docker-compose

bash 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 ``` c1df94b50 Bump version to 2023.8 3388bc501 update conda docs to use 3.11 by default 981cf1f6e Update cached binance leverage tiers 04122abd1 chore: protect users who dont read log warnings e5a88fded Fix stylistic issues 9c4aca2b9 Improve download data debug output 67e3ce308 Remove now unused import a740b9458 Fix remaining test after conftest_trade rework ffdb5fb79 Fix further tests after conftest_trades rework 0cc703923 Fix mock trade 1 status 0f73e38f9 Improve docstring for "select_filled_orders". cfe1187cd Fix missed Test a36e13183 Fix more conftest trades 94864a6ab Fix bad open_order_id assignment in test e1e90112b conftest_usdt trades - align open orders c303d47f2 Ensure stop_duration is converted to int 36d99876c Add mkdocs to rtd config 2a192b19c Fix path typo 9eaff301e Attempt update RTD config 62ce96fd4 Add documentation explanation on pair naming conventions 0c7cb29ea Don't use type() is comparisons 8ac4f4ac4 Bump ruff from 0.0.284 to 0.0.285 329b35fc5 Update sqlalchemy pre-commit e3d17b98b Bump gymnasium from 0.28.1 to 0.29.1 1c55432bd Bump sqlalchemy from 2.0.19 to 2.0.20 a6a1b0e84 Bump orjson from 3.9.4 to 3.9.5 57c23fd9b Bump plotly from 5.16.0 to 5.16.1 d18dea076 Bump mkdocs-material from 9.2.0 to 9.2.1 4b7948116 Bump pydantic from 2.2.0 to 2.2.1 9d31566a2 Update dependabot pip limit ec2f51dcc Bump mypy from 1.5.0 to 1.5.1 5a0f62431 Bump time-machine from 2.11.0 to 2.12.0 99f7e3bce Bump scipy from 1.11.1 to 1.11.2 e93832117 Bump nbconvert from 7.7.3 to 7.7.4 6d90ceca5 Bump mkdocs-material from 9.1.21 to 9.2.0 22f1c7251 Bump fastapi from 0.101.0 to 0.101.1 0f1e66b22 Bump ccxt from 4.0.59 to 4.0.71 b088154c0 Bump stable-baselines3 from 2.0.0 to 2.1.0 4c5f99267 Ensure signals don't break on windows f92b8c50d Update config echo block to store config in user_data 2d800a142 Fix bug in config-builder fb790b2d4 Update path of config for new-config documentation b71a44f27 Enhance Keyboard interrupt handling for dl-trades (stores data it already downloaded). 4fefae6f0 Improve download-trades test 3167938d4 move "since" fallback to be the last check 7da017493 Allow slightly different ta-lib installation locations in setup.sh script 4feafb25c Update ta-lib windows wheels 08532e1df Bump ta-lib to 0.4.28 8fa31b35f use prefer-binary to avoid hardcoding ta-lib outside of requirements.txt f5e054311 Fix windows CI failure 399e308e0 Fix bug in --dl-trades downloading 277cc0a52 Fix import sort order 185c5a779 use model_validate instead of parse_obj 352f0fdfc Bump pydantic to 2.2.0 3d8dcd164 Improve and parametrize trades_data tests 30064b410 Add support for trades data in Parquet format 8caadc4c5 Fix feather handler storing 3eb359655 Simplify trades_data storing 5de3b9d7a Clean up no longer used method fae742de5 Fix imports fa5f7d290 Update download-trades method to work with dataframes 757761388 Extract trades df type conversion 0fab65df0 Set explicit dtypes f69a77630 Ensure only relevant columns are stored 26c89d89e Keep original timestamp in dataframe d97d0e442 Extract trades DF creation to converter function 357b04202 Datahandlers should store data from dataframes 6fc1ee983 trades_append should use dataframe, not lists 780f23890 Fix trades duplicates if trade id is different 5d5cc7194 Fix pandas duplication detection, improve test 0be2250cf Keep existing trades_remove_duplicates for now 53db254cb don't cascade calls, that creates an additional call 02ee7f8b5 Update further tests a59507475 Update test for new trades handling 7ac9d33c3 Default should return a dataframe, not an empty list. ac80a6914 Update converters for trades dataframe handling 46882406b Update Datahandlers to work with trades data as dataframes ba34318f7 Update converter test to use fixture 3bc49330c webserver mode should properly validate config b93c6235c Fix Case of gym.Env in documentation aa756221f Improve behavior of ta-lib install 688018d9f Update setup.sh script to use `.venv` instead of `.env` ea181645b setup.sh: Extract environment recration to function f607b8abf Silence pip download d43993601 Update docs about suing `.venv` instead of `.env` 91fd47271 Extend ruff excludes to .venv 6134807c6 Remove wrong image link 7651f1b1d Add more samples for correct debug configurations d9fb40ca3 Update cached binance leverage tiers 77c7dd8a1 Add FIAT mapping for true usdt 452e1ab01 get_analyzed_dataframe should provide dataframe with startup candles bea678222 Ensure cutoffs in backtesting are properly tested 045d8c6fc Add test for informative pair filtering 161ab14ed Avoid lookahead bias through informative pairs in callbacks 6f347b839 Remove optionality from timeframe parameter 09ec00888 Don't use global variable in test 3f5903bad Split tests for jinja utils afcaeafd9 Move rendering commands to utils 6b11f3063 "minimal" strategy templates shouldn't render all attributes a4842113c Split strategy template to have conditional attributes d768afed3 price_to_precision should only run once db9247e78 prevent errors in custom stop from crashing the bot d53b6871e Bump pre-commit mypy 08bc61582 Further simplify backtest order handling bcc2dd980 Simplify backtest order closing d7e9f87b3 Improve comment indent d7556cd66 Remove duplicate call in backtesting f4844c122 Downgrade prompt-toolkid to 3.0.36 21cf5fc67 Fix use of string.format() 9b6654e81 Fix ruff E721 (type comparison) bb5277812 Bump joblib from 1.3.1 to 1.3.2 7224bdf82 Bump ccxt from 4.0.50 to 4.0.59 0abfad558 Bump tqdm from 4.65.0 to 4.66.1 9a95011b5 Bump ruff from 0.0.282 to 0.0.284 987a7ddac Bump aiofiles from 23.1.0 to 23.2.1 ceee57c39 Bump plotly from 5.15.0 to 5.16.0 6e79c19fe Bump tensorboard from 2.13.0 to 2.14.0 f0a50b1f2 Bump jsonschema from 4.18.6 to 4.19.0 4942d0157 Bump mypy from 1.4.1 to 1.5.0 4664cc23e Bump questionary from 1.10.0 to 2.0.0 6768641ba Bump orjson from 3.9.3 to 3.9.4 90e41274e Bump pypa/gh-action-pypi-publish from 1.8.8 to 1.8.10 2c5a7ceab Improve typing of stoploss reinit 3ecaedb7d use FormatStrings in trade_model 1ca3cd086 Fix missing . in interface docs 72bd4e816 Simplify code, no longer log "could not find rate" 716b1cd00 Improve ccxt tests 6ce08548f Further update ccxt test fixtures ea257e3cb Refactor online test fixtures into separate conftest module 20763daa7 Simplify online tess by skipping non-available futures exchanges 7e9389421 Move ccxt_compat tests to their own subfolder 05e182861 Improve Fee check 328a6f791 Improve stoploss mock b93464403 Fix tests, explicitly test for missing timerange 4a62ebbf9 Don't hardcode fee, but use fee from the very first iteration. 2069abe31 Remove custom fetch_funding_fees from bybit 78cf8a1c0 Fix exchange bybit test 565e2699b Re-set funding-fee history limit for bybit to 200 62ad2cca1 Add active test for alternative futures rates (ensures history is loaded correctly). ab156b6ad Increase bybit ohlcv_candle_limit to 1000 in tests 1f23727ff Increase bybit ohlcv_candle_limit to 1000 c88f71c63 add timeout to discord 05bbc8e7a Remove last sandbox occurance 5e3e443d2 Remove Sandbox docs 88d6f70ab Remove sandbox related code 9c73e52dd Remove sandbox configuration options 33d3c4f7d Improve backtestResponse in preparation for future update 03150ee09 Ensure backpopulated "trade" attribute is immediately loaded. 4b07720d0 Update test strategy to ensure we're using stake_amount ae3c3d81c Bump jsonschema from 4.18.5 to 4.18.6 8deedc31c Bump fastapi from 0.100.1 to 0.101.0 8c3a0cf61 Bump orjson from 3.9.2 to 3.9.3 67ea6512e Bump ccxt from 4.0.48 to 4.0.50 813ace12c Explain behavior in case of deposits cd6fc1652 Add rate-limited wallets call before adjust_trade-Position calls 7d18261f5 Improve FAQ wording 72d9e8a09 Fix indentation of strategy-updater in utils e174f9640 Improve docker docs with some hints about windows usage 25602ceac Added a fixed fee to 0.02 (any fixed value would suffice) since kucoin dynamically decides which pair gets which amount of fees and thereby producing false-positives upon verifying the entries/exits. bdf89efd1 pytorch - improve docs 23d2bad2a pytorch - set n_steps type as optional 9f69a45af pytorch - documentation update a3c6904fb pytorch - naming refactor - max_iters to n_steps d17bf6350 pytorch - trainer - revert load changes 777d25192 pytorch - bugfix - explicitly assign tensor to var as .to() is not inplace operation 836d7b885 pytorch - trainer - set default usage of n_epochs instead of max_iters 81cd24195 Update API backtest to return proper metadata 6d6111864 Test also backtest result list 23a2b9599 Add test for updating metadata 36b84241b Don't allow null as notes 51879ffd2 move Notes to be a "API only" type 0d71a74d8 Bump api version to 2.32 78972604d Allow metadata file updating 2f95c4477 Add "notes" to backtest result output 53c0d30f3 Update test for new kucoin behavior 0e63335d2 Remove bitvavo temp. workaround 494d58e79 Update tests for new output format (string-formatted dates are not relevant). 3b416223e Bump pydantic to 2.1.1 d78eb834c Convert to pydantic - jsonencoders (no longer exists) 47850ce1b Don''t use deprecated pydantic methods bb18e1b45 Fix part of the backtest type error 4b2a6a84f Remove more deprecated options 505584dc4 pydantic 2 - update deprecated methods e36c54525 pydantic - root model cfdd01d29 Update most of Api schema to pydantic 2.0 53c76160a Force pydantic > 2.0 9b924f1f8 Convert ws_schemas to pydantic 2.0 261a593ba Update tests for new output format (string-formatted dates are not relevant). 02ec945a9 Bump pydantic from 1.10.11 to 2.1.1 2b7deb147 Bump jsonschema from 4.18.4 to 4.18.5 ac85c3527 Bump ccxt from 4.0.47 to 4.0.48 adbb131dc Bump mkdocs from 1.5.1 to 1.5.2 482cc615c Fix empty Path inits in tests b91d7debe Bump rich from 13.5.1 to 13.5.2 1778a6add Bump ccxt from 4.0.45 to 4.0.47 2a0a270f1 Bump ruff from 0.0.280 to 0.0.282 e1fd3a6dc Fix formatting of bullet points 66adeb0a5 Only bump non-arm cryptography 1be1efbc4 Bump cryptography from 40.0.1 to 41.0.3 acd005b72 Don't show 0.0.0.0 security warning when running in docker. c4d41659f add second alternatives instead of using .range 3612956b7 Allow unbound stoploss 78670602d Update binance leverage tiers 33eecfa9e Fix test typo 30f6f470d Add filename to backtest result metadata c836bd8fa Add Get_backtest_resultlist typing 5c68b0d38 Add BacktestMetadataType f546ee656 Use list comprehension to get backtest-history 730ae781a Add explicit test for get_backtest_metadata 4fd425260 Bump ccxt from 4.0.44 to 4.0.45 f1fb118d7 Bump numpy from 1.25.1 to 1.25.2 61da1877a Bump rich from 13.5.0 to 13.5.1 6b163af99 Bump uvicorn from 0.23.1 to 0.23.2 ce574af7c Bump mkdocs-material from 9.1.19 to 9.1.21 ddd92a90b Bump markdown from 3.3.7 to 3.4.4 370ea273c Bump ccxt from 4.0.36 to 4.0.44 bc86f1261 Bump nbconvert from 7.7.2 to 7.7.3 e5d5c4c50 Bump rich from 13.4.2 to 13.5.0 a147f7a04 Bump fastapi from 0.100.0 to 0.100.1 b666adced Bump mkdocs from 1.4.3 to 1.5.1 1926e642c Improve backtest_stats storing test 1a1103c23 Add backtest-result typing 3148cd39c Don't drop metadata from original dict when storing backtest results 71737d879 Remove half-commented test part 15dd8bec1 Bump dev version to 2023.8-dev 5b8800ee1 didnt intend to change the timerange itself, but the logger-output of the timerange e4b488cb8 added stake_amount to a fixed 10k value. In a combination with a wallet size of 1 billion it should never be able to run out of money avoiding false-positives of some users who just wanted to test a strategy without actually checking how the stake_amount-variable should be used in combination with the strategy-function custom_stake_amount. ad428aa9b added stake_amount to a fixed 10k value. In a combination with a wallet size of 1 billion it should never be able to run out of money avoiding false-positives of some users who just wanted to test a strategy without actually checking how the stake_amount-variable should be used in combination with the strategy-function custom_stake_amount 1ab357dc3 added mentioning which pair + timerange + idx is biased for visibility and debugging purposes a33be8a34 added dummy-varholders in case a not-last-trade is force-exit and else the indexes would shift ruining the analysis and making debugging easier (since the same ID will always be the same ID again) a5f5293bc added logger-output when something is skipped or aborted d61f512e2 pytorch - trainer - clean code 77f158471 pytorch - trainer - bugfix step tensorboard step usage ffcba45b1 pytorch - mypy fixes 9fb0ce664 pytorch - ruff fixes 5734358d9 pytorch - trainer - add assertion that either n_epochs or max_iters is been set. 7d28dad20 pytorch - add n_epochs param to trainer 588ffeedc pytorch - trainer - reomve max_n_eval_batches arg from estimate loss method 49a7de4eb pytorch - trainer - add device arg to load method 0c9aa8688 pytorch - data convertor - create tensor directly on device, simplify code 9cb45a381 pytorch - bugfix - explicitly assign tensor to var as .to() is not inplace operation b593205ad No need to use .get() for properties with default values 539925378 Update documentation in regards to data-format 2babb36fc Update final tests ec2960a16 Fix dtype ... 1c5d20e9a Fix some tests, restore 1m json data a1efd6b78 Update further tests to use feather 1d77497f6 Fix test 586692b73 TMP: remove full json data 4d3740d4c Update default datahandler class 15aa1fd87 Add new feather data 578110488 Update cli-options default 08fdb3a47 Update documentation cca8c4e5b Update default dataformat to feather ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 3 years ago

FreqAI - 2023.7

Highlighted changes

  • Community showcase section in the documentation.
  • Updated proxy configuration for ccxt (make sure to read the corresponding documentation section if you think you’re impacted).
  • Improved convert-data command, converting data a lot more efficiently.
  • Improved “/profit” command by adding winrate and expectancy.
  • Improtant fix to freqUI historic plotting (backtesting, …), which will not correctly respect the startup_candle_count of the strategy.
  • Backtesting now shows max-consecutive wins/losses.
  • Improved new-config logic for api server setup within docker.
  • Allow deletion of Backtest results through UI.
  • Fixed faulty resampling of monthly (1M) candles.

How to update

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

docker-compose

bash 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 ``` 5a7a9d48f Bump version to 2023.7 79910870a Fix bug resampling monthly candles e7e7a1718 Add test confirming #8972 3fa31bfe2 Better explain ROI assumption on level change b2abdab7c Fix bug where adjust_entry_price was called for exit orders fd7dfc95e Enhance dca integration test for adjust_entry checks 797617aba Fix test comment 9a400d0e6 Allow comments and trailing commas in remotepairlist files 8f18a52cd Fix Typo in remote pairlist docs d638a4a0f Raise proper error on strategy search bbf472e69 Improve errorhandling on webserver endpoint 83f45d0e6 Call static method as static method, not as if it were an instance method d6122585f Prevent pandas exception on Date assignment 2fcff7875 Move comment to actually relevant line f56f5179d Update showcase.md c2b40da76 Bump Api Version 05e4b6309 Extract backtest_result deletion logic to separate function 8b2abf442 Remove .json from backtesting output 997b80fd7 Allow deleting of backtest files 5a7e82234 Improve security of get_backtest_history_result 1d39cc18b Add is_file_in_dir helper function e39af1720 Improve typing for is_relative_to 47fca02ba Improve docstring ed2485dd5 Move generate_wins_draw_losses to bt_output (it's an output function, not a calculation) 5a057e4b9 per-commit bump types-requests b90e7d75c Bump ruff from 0.0.278 to 0.0.280 1c26a6600 Bump types-requests from 2.31.0.1 to 2.31.0.2 161446393 Bump ccxt from 4.0.35 to 4.0.36 9df302f2f Bump uvicorn from 0.23.0 to 0.23.1 ce7f7d828 pre-commit bump dateuti 7a69bdff6 Bump types-python-dateutil from 2.8.19.13 to 2.8.19.14 bb36c9500 Bump pre-commit types tabulate 235067c79 Bump nbconvert from 7.7.0 to 7.7.2 11e604d61 Bump types-tabulate from 0.9.0.2 to 0.9.0.3 b41b96644 pre-commit bump cachetools 327b05546 Add consecutive wins/losses to backtest output 221f242a4 Bump ccxt from 4.0.34 to 4.0.35 a9d310ca0 Disable bitvavo candle test temporarily after downtime f26b49ee0 Ensure return value is an int, not a np.int 380244f8b Improve calc_streak, rename method 0f046ceaf Implement calc_consecutive_losses a7bd6725f Add test to verify consecutive wins / losses calculation c61b72e5c Bump urllib3 from 2.0.3 to 2.0.4 d909fde4b Bump types-cachetools from 5.3.0.5 to 5.3.0.6 2bb4af911 Bump pyjwt from 2.7.0 to 2.8.0 00a392b26 Bump mkdocs-material from 9.1.18 to 9.1.19 6f5ba2725 Bump jsonschema from 4.18.3 to 4.18.4 6ddbc8c00 Move generate_wins_draw_losses to bt_output (it's an output function, not a calculation) a00fcd68f Default to 0.0.0.0 if on API listen address for configs generated through docker fb7fb7f59 Add helper function detecting (prebuilt) docker environment d7916366b Adjust webhook tests to include timeout ad82ad440 webhook docs improvements 8dfe43f37 Add timeout for webhooks 4549fb349 Add security notice about IP whitelisting on bybit docs 889a732e0 Enhance bybit documentation 8f0422528 another test fix 4c23771d3 fix expectancy test 0eddc6b7a update expectancy test 787e94924 Update default expectancy ratio to 100 955a63725 Improve resiliance when showing older backtest results 27a36bfb4 Bump lightgbm from 3.3.5 to 4.0.0 (#8923) e5f01ab2e pre-commit fix 40d7d05e4 merge 2 expectancy functions c6ee8fcf5 remove unused check 3552fa431 fix test 3dd33cde0 fix test ee3b69ea6 fix test b0639ab31 flake8 cfd8b068e add test for expectancy 8621dc96e fix tests 11f24aff9 flake8 dcc3ef130 flake8 fix 4812bcc28 flake8 fiz c048e7229 modify expectancy and expectancy ratio 4ea3f41d4 Map BUSD to correct coingecko id 687412397 Bump ccxt to 4.0.34 8d332fb99 Ensure /pair_history endpoint correctly respects startup_candle_count f4933a9cf Improve test for pair_history 4369e3cde trim_dataframe should enforce kwargs for non-required arguments 9bfe96d4d Simplify advise calls by extracting that part into a method. 91bf8abf3 Add comment to clarify usage of trim_dataframes 9c1fea0e7 Add winrate to several bt metrics ac2147727 Update test for updated cost logic ea4534923 Completely remove "fee_cost_in_contracts" functionality e734ab52d okx fees are not in contracts. 75628403b Invert order_props_in_contracts logic - cost is almost never in contracts f735973bf Bump aiohttp from 3.8.4 to 3.8.5 ab5b27286 Fix double-%% bb5a12dc1 Add built-in trade fields in indicator list docs f95f954df Convert winrate to ratio instead of % in calculations 5ee458698 use find-links for windows install 9c39fd6e9 Update cached binance lev-tiers file c8ee48bc9 Update comment on install script ef52a7a32 Simplify windows install sscript 635ab7370 Update path for install_windows helper script c4d38e6de Add new ta-lib windows wheel 8fd96118a Bump pydantic to latest 1.10 version db0cad04a Pin pydantic to <2.0 for now d64d0e9f9 Update docker-compose-freqai.yml c64c10e76 Use Fstrings in hyperopt-tools d8ba2b5df Bump ccxt from 4.0.28 to 4.0.29 6ccc12f33 Fix calcs, rename ratio, add docs 8738b8d55 Update freqai-feature-engineering.md f2ff85421 Bump nbconvert from 7.6.0 to 7.7.0 cb5a67e9e Bump sqlalchemy pre-commit 6f0204fcd chore: remove inlier metric 78de61491 Bump ta-lib from 0.4.26 to 0.4.27 e5221932e Bump ruff from 0.0.277 to 0.0.278 c23ff9d7c Bump pypa/gh-action-pypi-publish from 1.8.7 to 1.8.8 5f82108aa Bump jsonschema from 4.18.0 to 4.18.3 454baa7b5 Bump sqlalchemy from 2.0.18 to 2.0.19 69e969173 Bump ccxt from 4.0.17 to 4.0.28 8c8b31599 Bump pytest-asyncio from 0.21.0 to 0.21.1 e8ff5cb78 Bump pymdown-extensions from 10.0.1 to 10.1 256a8c686 Bump uvicorn from 0.22.0 to 0.23.0 79f7f82c5 Fix telegram output 35714c469 Add explicit dry_wallet test cf9ba527b Include realized_profit in update_dry d0e0e156b Update tests to account for realized profit/loss 8a55423ac Add asserts for wallet size 66131d510 Improve integration test assertions 1fd2a2532 Reduce trade stats function complexity 9d36dc7ac Fix line length 59cb9e39d Fix another trailing whitespace d4b282d6f Fix expectancy calc and tests e57bb6bc9 Add api schema entries 3ce17b740 Fix flake8 problems 768a7b47e Fix some futures symbol naming in tests 096cb0d1e Add tests, fix winrate calc 4235ab0c7 Add expectancy and winrate to telegram 6e56f84fe Add expectancy and winrate to rpc trade statistics ff1420810 Improve logic for from_json special case 626ea6b11 Add backtesting support for order.stake_amount d8c062188 Add stake amount property to order object 17296fdf9 Use proper cost for order e4cd29d88 Add test for trade.cost eeec1b0b3 Don't bump armhv crypto dependency e043fdba5 Bump cryptography from 40.0.1 to 41.0.2 7f0e1c27c Fix realized_profit for trade from_json 240606c5a Only run once for an order 6134764d5 Don't wrongly eat into dust on rebuys 45a9c304b Add test for new conditional behavior c970ae8ad Add pyarrow pi wheel 3cf419cbc Fix ill-used type on order backpopulate mapping 722b5569b Add Freqtrade backtest project e8fe5a4f1 bybit provides up to 2years of historic ohlcv data on any timefame. 127ca83de Bump orjson from 3.9.1 to 3.9.2 a0fff4364 Add fee_base to json output b7bd1eba6 Bump time-machine from 2.10.0 to 2.11.0 6d63b9400 Bump fastapi from 0.99.1 to 0.100.0 e0ba2f3a1 Bump pyarrow from 12.0.0 to 12.0.1 7d16012f6 Bump ccxt from 4.0.15 to 4.0.17 4a422cac5 Bump jsonschema from 4.17.3 to 4.18.0 884594a96 Bump sqlalchemy pre-commit 12d89a906 Bump sqlalchemy from 2.0.17 to 2.0.18 1dbc294b8 Improve order __REPR__ with date 5bc84dca5 Fix from_json with new attributes 8c0e66008 Remove wrong/faulty "default" comment from cli options 4a1a19794 Bump python-telegram-bot from 20.3 to 20.4 43f6a7e3c Bump ccxt from 4.0.14 to 4.0.15 1bece11eb Bump numpy from 1.25.0 to 1.25.1 3c1cd7243 Bump mkdocs-material from 9.1.17 to 9.1.18 1ca2a8d63 Bump prompt-toolkit from 3.0.38 to 3.0.39 7359a76b7 Bump ruff from 0.0.275 to 0.0.277 75e6315aa Bump joblib from 1.2.0 to 1.3.1 b4957a2e3 Update converter test 448f02960 Improve behavior for convert-data 5a43dd476 don't hard-default `--timeframes` via argparse 10f34563f Improve default for --candle-types 4c6eee8df Update proxy documentation to correspond to new ccxt mode a598b8554 Bump ccxt and ccxt min requirement 511023ee1 Fix typo in comment af5fc76dc Add test for different processing modes e6ee55a69 Improve some test coverage 4dda9c6da Add explicit test for short-desc 5da5369ca Update parameter sequence to make more sense e64327f35 Update my link 4d4ec11a8 - print 0b68ca6cb use pairlist_pos remove unused check, fixed Test b2106ef4a Update frequenthippo link description ee1fa34df Add 'processing_mode' , blacklist checks c4b0f24cd Use USD for kraken tests, as it has more volume. a1d50dbfa Add community showcase 5c0f5588a Simplify sort_values in PerformanceFilter 1c5ea317e Add mode as parameter for the UI a9e239ca7 Don't use future date for downloading new trade data 65550335e Add explicit online test for get_trade_history 01db789d4 Improve release documentation c93a27af7 Bump ccxt from 3.1.44 to 4.0.12 9b447cdf1 Bump pandas to 2.0.3 98ba0042d Bump datasieve 0.1.7 f64b9503f scipy 1.11 doesn't support python 3.8 any longer e734a664b bump develop-version to 2023.7.dev 942f0b4fb Move format_ms_time to datetime_helpers e6db5bd19 Pin numpy for python < 3.8 9d3dda4e1 Bump stable-baselines3 from 2.0.0a13 to 2.0.0 b204da331 Bump scipy from 1.10.1 to 1.11.1 ce1b90885 support wildcards d534f88d1 unnecessary lines removed. caca070c1 added tests 36b33fb40 add mode to set the pairlist to blacklist additional to whitelist adhere to _number_pairs b2c87c359 Bump numpy from 1.24.3 to 1.25.0 ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 3 years ago

FreqAI - 2023.6

Highlighted changes

  • New command freqtrade lookahead-analysis - Detect if your strategy has a lookahead bias, tainting backtesting results!
  • minimal_roi can now be empty, allowing to fully disable ROI functionality.
  • Fixed some odd behavior with OKX stoploss on exchange orders.
  • Add Pairlist generator (including live evaluation) in webserver mode.
  • Update docker images to Python 3.11.
  • FreqAI
    • Convert data preparation into a pipeline, allowing for easy customizations.

How to update

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

docker-compose

bash 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 ``` 7ba459db8 Version bump to 2023.6 092e30a15 Attempt CI without brew update 977bfa08b Bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 ba6cba31b Bump fastapi from 0.98.0 to 0.99.1 1880f9ffa Bump ast-comments from 1.0.1 to 1.1.0 0310a26b8 Fix documentation typo 29725440c Simplify RPCMessageType schema definition accc1b509 Simplify class setups without inheritance 4b06b4772 sqlalchemy - pre-commit b12dbd2be Bump ruff from 0.0.272 to 0.0.275 be07ea5d4 Bump mypy from 1.3.0 to 1.4.1 6b201d525 make sure default PCA behavior reduces parameter space size 8c2098c26 Bump fastapi from 0.97.0 to 0.98.0 6274197f8 Bump sqlalchemy from 2.0.16 to 2.0.17 ae42d57a2 Bump pytest from 7.3.2 to 7.4.0 2d2699b0a Bump mkdocs-material from 9.1.16 to 9.1.17 fec4cb3cf Bump nbconvert from 7.5.0 to 7.6.0 1717f8670 Extract edge output to proper module 72504e62a Extract btstorage methods 65e835990 Improve naming of new file 794bca137 Split optimize report generation from visualization 5e084ad2e convert optimize_reports to a package fca73531c fix: use .shape instead of index for outliers 9da28e532 bump datasieve fd420738c ensure outlier-check is returning as a numpy array from datasieve 48e896532 Don't add header if it's not needed 5f98530ef Catch and send exceptions from websockets 69087c30e Don't overwrite "type" with a variable 757c6dc5c Use Self typing 01dfca80a Improve stop test behavior 2f7b29ed3 Fix test_tsl_on_exchange_compatible_with_edge b49a11876 Fix exit_timeout test c7683a7b6 Improve docs wording 5d60c6264 align list blocks 96c2ca67e Add usage note for pairs.json file b0e5fb394 Improve structure of download-data documentation 8c54036fa Move Downloading tip from pairs file section 859f7ff3d be explicit when loading pairs file. 6bc3439cb Bump pytest-mock from 3.10.0 to 3.11.1 e965b2e45 Bump rich from 13.4.1 to 13.4.2 d82a0ad7b Bump ccxt from 3.1.34 to 3.1.44 f04598c5e Bump pre-commit from 3.3.2 to 3.3.3 f82d52c6d Bump xgboost from 1.7.5 to 1.7.6 fc0548ce0 Bump filelock from 3.12.1 to 3.12.2 8cc763b66 Bump time-machine from 2.9.0 to 2.10.0 ed90e77ea Bump nbconvert from 7.4.0 to 7.5.0 1eb691d46 Bump mkdocs-material from 9.1.15 to 9.1.16 571dea6e9 Fix wrong final status on bg-tasks cca4fa117 Update BaseClassifierModel.py 7e2f857aa Update BasePyTorchClassifier.py 52db6ac7d Use proper log level d94f3e767 Add explicit tests for download-data 7af14d198 Fix random test failure 44a38e836 Update download data tests 0be4084ea Don't allow downloading wrong pairs 937734365 Improve typehint for markets 66b34edc0 Clarify variable name 6f0f95468 Adjust mocks for new import location 7453ff2fb Migrate download-data out of commands section b8ab6fe42 Improve wording of check command e0d5242a4 Reduce download-data verbosity 886b86f7c chore: bump datasieve b0ab400ff fix: ensure test_size=0 is still accommodated bf872e8ed Simplify comparison depth 11ff454b3 fix: ensure that a user setting up their own pipeline wont have conflicts with DI_values 6bb75f0dd Simplify import if only one element is used 1567cd284 Use DOCS_LINK throughout 34e7e3efe Simplify imports 2c7aa9f72 Update doc wording 24e806f08 Improve resiliance by using non-exchange controlled order attributes. 7939716a5 Improve formatting of telegram /status messages 4f834c896 Remove old version pin for catboost ffd7394ad Update freqai.md 2107dce2c Update freqai-feature-engineering.md 72101f059 feat: ensure full backwards compatibility 75ec19062 chore: make DOCS_LINK in constants.py, ensure datasieve is added to setup.py 64fcb1ed1 Better pin scikit-learn dec3c0f37 Remove environment.yml completely 1b86bf8a1 Don't include non-used parameters in command structure 2cd9043c5 Make documentation discoverable / linked b3ef024e9 Don't use PurePosixPath 964bf7646 Invert parameters for initialize_single_lookahead_analysis ad74e6567 Simplify configuration setup ac36ba659 Improve arguments file formatting ca88cac08 Remove unused code file 11d7e7925 Fix random test failures 9a7794c52 Improve behavior for when stoploss cancels without content 1a4d94a6f OKX stop should convert contracts to amount 1e44cfe2f Improve stoploss test e763e2ad3 Bump ccxt from 3.1.23 to 3.1.34 1beaf6f05 Bump plotly from 5.14.1 to 5.15.0 21949c044 bump sqlalchemy pre-commit 2e087750e Bump fastapi from 0.96.0 to 0.97.0 7172bc0af Bump orjson from 3.9.0 to 3.9.1 feb6e5c46 Bump urllib3 from 2.0.2 to 2.0.3 8b27b408c Bump ruff from 0.0.270 to 0.0.272 a9515dee8 Bump pytest from 7.3.1 to 7.3.2 71064c02e Bump sqlalchemy from 2.0.15 to 2.0.16 66dc1fd33 Bump filelock from 3.12.0 to 3.12.1 7542909e1 Bump stable-baselines3 from 2.0.0a10 to 2.0.0a13 a39f23a5c Bump pydantic from 1.10.8 to 1.10.9 663cfc621 fixing tests bdb535d0e add maskable eval callback multiproc 5dee86eda fix action_masks typing list c36547a56 add maskable eval callback afd54d39a add action_masks 5844756ba Add test and fix for stop-price == limit price 4a800fe46 Add explicit test for get_stop_limit_rate 320b3e20a Use correct variable for candle-type when loading data fc11c79b7 Fix not working date format output 87e144a95 Update webserver tags 9ef814689 Update endpoint in rest-client 1da1972c1 added test for config overrides e332fbfb4 Add explicit test for okx get_stop_params 280611086 Add explicit test for okx cancel_stop cfe88f06d Improve behavior of okx rebuys when using stop on exchange ad8a4897c remove unnecessary example in feature_engineering.md 229ee643c revert change to deal with FT pinning old scikit-learn version 41e37f9d3 improve docs, update doc strings d9bdd879a improve migration doc f8d7c2e21 add migration guide, add protections and migration assistance 4cdd6bc6c avoid using ram for unnecessary train_df, fix some deprecation warnings e24625979 avoid manual pipeline validation 3523f564b Improve Log reduction and corresponding test 265d782af Implement the requested changes. 94ca2988a updated docs 6656740f2 Moved config overrides to its' own function Added config overrides to dry_run_wallet and max_open_trades to avoid false positives. 99842402f Further reduce unnecessary output 16b336397 Fix type problem b89390c06 Reduce log verbosity during bias tester runs fc8c6b06a Extract set-log-levels from main logging module e3056b141 Move logging tests to dedicated test file 05ea36f03 Fix performance when running tons of backtests 6b736c49d Dont persist Backtesting to avoid memory leak 33b028b10 ensure data kitchen thread count is propagated to pipeline 88337b6c5 convert to using constants in data_drawer. Remove unneeded check_if_pred_in_spaces function e39e40dc6 improve documentation of pipeline building/customization 317e0b5f2 Avoid nested loops in telegram for force* scenarios f81139b97 Bump python from 3.10.11-slim-bullseye to 3.11.4-slim-bullseye 14557f2d3 merge develop into outsource-data-pipeline c066f014e fix docs 6d39adc73 bump datasieve version 135aaa2be update docs, improve the interaction with `define_data_pipeline` dc577d2a1 update to new datasieve interface, add noise to pipeline 4d4589bec fix isort in tests f7f88aa14 fix pickle file name 5ac141f72 convert to new datasieve api 0b8ef1b88 Fix devcontainer invalid key c269eef77 Remove unnecessary calc_profit_ratio call 21172802d Devcontainer image should contain as many dependencies as possible 6ec91d11a Bump ccxt from 3.1.13 to 3.1.23 4dcb6395e Bump pre-commit requests types e61659a2b Bump mkdocs-material from 9.1.14 to 9.1.15 c2125698a Bump types-requests from 2.31.0.0 to 2.31.0.1 093181e8f Bump pandas from 2.0.1 to 2.0.2 bdaf230bd Bump orjson from 3.8.14 to 3.9.0 9dcab313b Bump rich from 13.3.5 to 13.4.1 c9bbeedd8 Bump fastapi from 0.95.2 to 0.96.0 94bc91ef5 Update tests/freqai/test_freqai_datakitchen.py 7a726da69 Update cached binance leverage tiers 71b81ee7c Add margin_mode to pairlists callback 12e31208e Update typedDict type used with pydantic ac7419e97 Split trademode response value into trade_mode and margin-mode 72f4e1475 Bump api version 74254bb89 Add /exchanges endpoint to list available exchanges 54bf1634c Refactor validExchangesType to separate types package 6f928b826 Update types for build_exchange_list_entry cc04f3279 bump pre-commit mypy version fcb960185 Clarify function naming 250ae2d00 Enhance list-exchanges with more information b5d101777 Update list_exchanges to use a dict internally e890bc071 Don't bump pi version, but bump regular version 10ea2b44c Update test line length d9d173533 Extract ExchangePayload updating 48328fb29 reset candle_type_def 49c0fdf36 Bump cryptography from 40.0.1 to 41.0.0 ac046d6a2 Allow setting the exchange explicitly af16ce874 Allow webserver mode to cache multiple exchanges e2594e749 Align tests to use webserver mode 77e3e9e89 Move pairlists and background tasks API's to separate file 565c0496d Bump httpx min requirement d0f900f56 set HTTPX level to warning 30dd63fcb Update freqai.md 8aee368f6 auto-inject webserver mode dependency e0d9603e9 Raise correct httperrorcode for webserver-only endpoitns 88ecb935b Add "failed" state to bgjob task response 9c6fee384 Enable gate futures for spread-filter again 5fc8426b9 Improve handling of order cancelation failures with force_exit 430cd24bb Invert order (exit trade 3 before trade 4) 08d040db1 Slightly update force_exit test 5311614d5 Update force exit wording 193d88c9c Double-check cancelling stop order didn't close the trade 1f543666f Improve test for reload-markets timings, fix bug fd955028a Update tests for new background method 7bccf2129 Introduce background_job endpoints f6a32f4ff bump version b666c418b Don't use variables for simple debug values af1dbf7df Extract get_rate_from_ticker from get_rate method f074383d6 Extract orderbook logic into separate method 785f0d396 bump datasieve version 6315516d5 Improve volumepairlist defaults 623780681 bump datasieve to 0.0.8 e57265361 bring classifier/rl up to new paradigm. ensure tests pass. remove old code. add documentation, add new example transform 9f1bdc19a Bump ruff pre-commit version 35836479d Bump requests pre-commit dependency cb7a0f9bf Bump orjson from 3.8.12 to 3.8.14 90808683e Bump ruff from 0.0.269 to 0.0.270 8fdec5f3a Bump ccxt from 3.1.5 to 3.1.13 4e9a43ebf Bump cachetools from 5.3.0 to 5.3.1 3bc390cb2 Bump types-requests from 2.30.0.0 to 2.31.0.0 12af6ea76 Bump pytest-cov from 4.0.0 to 4.1.0 51ba4d14e Bump pydantic from 1.10.7 to 1.10.8 6b3b5f201 export_to_csv: Added forced conversion of float64 to int to remove the .0 values once and for all ... eec783716 - modified help-string for the cli-option lookahead_analysis_exportfilename - moved doc from utils.md to lookahead-analysis.md and modified it (unfinished) - added a check to automatically edit the config['backtest_cache'] to be 'none' - adjusted test_lookahead_helper_export_to_csv to catch the new catching of errors - adjusted test_lookahead_helper_text_table_lookahead_analysis_instances to catch the new catching of errors - changed lookahead_analysis.start result-reporting to show that not enough trades were caught including x of y 1317de8c1 Add rudimentary description per pairlist 8a8616925 Better handling of shift 8ec0469b1 Fix volatilityfilter behavior 9bb25be88 modified help-string for the cli-option lookahead_analysis_exportfilename moved doc from utils.md to lookahead-analysis.md and modified it (unfinished) added a check to automatically edit the config['backtest_cache'] to be 'none' 0ed84fbcc added test_initialize_single_lookahead_analysis a7426755b added a check for bias1. Looking at has_bias should be enough to statisfy the test. The tests could be extended with thecking the buy/sell signals and the dataframe itself - but this should be sufficient for now. df5e6409a Bump develop version to 2023.6-dev 5649d1d4d Convert minimal_roi to list comprehension 36c82ad67 Update documentation for min_roi 35a388bf9 Don't force min_roi to have content 636298bb7 added test_lookahead_helper_export_to_csv 31e19add2 start transition toward outsourcing the data pipeline with objective of improving pipeline flexibility eb31b574c added returns to text_table_lookahead_analysis_instances filled in test_lookahead_helper_text_table_lookahead_analysis_instances af7afa80a remove gone-wrong import 9e75c768c Improve responses for evaluate get endpoints 4c52109fa Handle pairlist evaluation errors gracefully 33e25434b Change statuscode to 202 756e1f5d5 Test pairlist evaluation 01984a06a Extract pairlist evaluation from sub-method 7cc8da23c Update test for available pairlist 818a3342b move pairlist evaluation to the background 680e7ba98 Get exchange through DI 70a0c2e62 Fix test mishap 3e6a2bf9b Add parameters for analysis tests ... 104fa9e32 Use logger, not the logging module e73cd1487 Add somewhat sensible assert 9869a2195 Move strategy to it's own directory to avoid having other 3f5c18a03 Add some tests as todo e18370797 Further test lookahead_helpers ceddcd924 Move most of the logic to lookahead_analysis helper d8af0dc9c Slightly improve testcase 1c4a7c7a0 Split Lookahead helper to separate file 7b9f82c71 Remove needless check for "None" list 209eb63ed Add startup test case 2e675efa1 Initial fix - test 073dac8d5 Move lookahead analysis tests to optimize subdir a0edbe479 Switch to using config instead of args. 2e79aaae0 Remove usage of args. 5488789bc Arguments should be in the configuration. 7d871faf0 added exportfilename to args_to_config introduced strategy_test_v3_with_lookahead_bias.py for checking lookahead_bias# introduced test_lookahead_analysis which currently is broken 91ce1cb2a removed overwrite_existing_exportfilename_content (won't use it myself, wouldn't make sense for others to not overwrite something they re-calculated) switched from args to config (args still work) renamed exportfilename to lookahead_analysis_exportfilename so if users decide to put something into it then it won't compete with other configurations b252bdd3c made purging of config.freqai.identifier variable 2306c74dc adjusted code to matthias' specifications 5abd616ae Fix disrepancy in freqai doc code example 877d53f43 Add airlists test endpoint (so pairlist configurations can be tested) 3d4be92cc Add option pairlist parameter type c5bf02970 Better type response 9e4f9798e Add pairlist "is-generator" to api 3ef2a57bc Add "is_pairlist_generator" field to pairlists e20b94d83 Add more filter param descriptions 4636de30c Improve pairlistparam types 2ea157d9d Add some more pairlist parameter definitions 987da010c Start pairlist parameter listing 5ad352fdf add /pairlists to rest client 2df80fc49 Add /pairlists endpoint to api 2b416d3b6 - Added a first version of docs (needs checking) - optimized pairs for entry_varholder and exit_varholder to only check a single pair instead of all pairs. - bias-check of freqai strategies now possible - added condition to not crash when compared_df is empty (meaning no differences have been found) 767442198 saving and updating the csv file now works open ended timeranges now work if a file fails then it will not report as non-bias, but report in the table as error and the csv file will not have it listed. a9ef4c3ab partial progress commit: added terminal tabulate-output added yet non-working csv output using pandas 7bd55971d strategy_updater: removed args_common_optimize for strategy-updater d12a7ff18 freqtrades' merge broke my side, fixed it by porting it over to my develop branch, no changes with this commit logic-wise. ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 3 years ago

FreqAI - 2023.5.1

Bugfix release, fixing a bug causing increased CPU load and unnecessary calls to the API, potentially exhausting ratelimits.

Highlighted changes (2023.5)

  • Improved balance display (incl. new telegram variant /balance full)
  • Recover trades when asset is sold on Exchange (intentionally, or through liquidation).
  • New argument --rejected for backtesting-analysis, allowing analysis of rejected signals.
  • Add full support for Python 3.11 (setup.sh, …)
  • Enhanced freqUI plot Configurator.
  • Add support for area Charts in freqUI.
  • Better protect API keys by no longer exposing them to the strategy.
  • FreqAI:
    • New Torch Transformer model (PyTorchTransformerRegressor).
    • Updated dependencies, including 3.11 support.
    • Use freqUI charts to visualize backtesting results also for freqAI strategies.
    • Tensorboard logging now available for all PyTorch and XGBoost models.

How to update

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

docker-compose

bash 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 ``` 2ea287958 Bump version to 2023.5 bd266f654 Properly handle invalid pairlists type before config validation f647fb342 Update base_tensorboard.py 9e9f9b21e Bump stable-baselines3 from 2.0.0a9 to 2.0.0a10 b5ed693be Extrac OKX convert stop order, call for regular orders, too b8220ee0f Improve recovery detection by skipping open orders a0336c83c Update method casing in tests 6efc62e4c Add test which verifies #8680 won't happen again 6292d1af6 Use camelcase version of private fapi method 9ffdaceef Bybit - use Proxy 1e10b25e3 Bump requests from 2.30.0 to 2.31.0 44bdac5e8 Improve developer docs with some minor improvements d26aa231f Stable baselines updates, and fix 2242d544f Bump ruff from 0.0.267 to 0.0.269 ad5f0307b bump sqlalchemy precommit 96eb109b4 Bump mkdocs-material from 9.1.12 to 9.1.14 ae52ce8cd Bump sqlalchemy from 2.0.13 to 2.0.15 811198cc3 Bump pre-commit from 3.3.1 to 3.3.2 4e3de64c5 Bump fastapi from 0.95.1 to 0.95.2 8c866abad Bump ccxt from 3.0.103 to 3.1.5 68ab147f5 Bump cachetools from 4.2.2 to 5.3.0 abc82a3fd Simplify api backtesting by extracting the background_method a87b215d6 Fix odd import 914195acf Ensure one test can't fail 20 others 96d74063f Don't have public attributes marked as private 531622721 Extract api backtest logic from ApiServer class c4c0371ed add docker comment to docker usage freqai doc section a2cbe5df0 Remove trailing spaces 0d4010a0b Add sample docker-compose file for freqAI, comment about that 9d0f488de Some more edits due to arrow 707c6744b Fix doc and example indentation ebfc9a603 Remove some humanize occurances 5d0cff2f7 Add dt_humanize helper f657d06e9 Move shorten_date to datetime helpers b40c45ee4 Timerange -> datetime adcf75134 Bump min-requirement of arrow 261822147 Fix remaining arrow testcases 3ec55885b Remove arrow from more tests 9421ca262 Remove arrow from test_persistence 3a4d103bc Properly check wallets with new type 7a2ff6025 Fix more tests 915cb5ffb add dt_utc helper c0713eb77 More tests to dt_helpers 29fdcdbf5 reduce arrow in tests d131dd405 Fix wrong transition cfae98ae0 dt_now for tests e4f701fd0 Don't use arrow for everything 5b66ef4be Implement datetime.floor 7f73e9943 Simplify exchange_utils 55ce58d79 Reduce some arrow usages in favor of dt helpers 000f72942 Improve dt_now_ts helper aa949153e Add now ts helper 5c6f3ea43 Improve wallets time handling 261df527d dt_now 6b735bc68 Implement dt_now 6044bbb6b Add datetime helpers to unify code 2477ef57f Reduce arrow usage throughout code 1d03e8bc5 Reduce arrow usage further d3382fbe0 Reduce usage of arrow 292bd6297 Reduce verbosity of httpx (we don't need to see telegram calls) adeab13bd cleanup tests, cross fingers that mac will pass 2ab732480 Ensure pi image can be built 45ee12e25 reload_trade should be a post endpoint bb760a47d Bump pymdown-extensions to 10.0.1 61ea3d817 Bump pymdown-extensions from 9.11 to 10.0 in /docs 7d15c379c Fix faulty removed import c7f7dd1d4 Avoid unnecessary type ignore 1b714fdb0 Fix wrong "first trade" date in UI, improve interface 9b1028789 Improve typing 3a0e123c6 Bump pre-commit sqlalchemy ef15b7b3d pre-commit dateutil types 28905885e Bump sqlalchemy from 2.0.12 to 2.0.13 68f67c5ae Test proper removal of exchange keys c242d89cd Improve test format 66c3eb282 Remove keys from config before loading strategy b2a631e93 refactor remove_exchange_credentials fe36e7741 Split exchange_config before passing through the strategy fffb056ad load_exchange - force kwargs for non-required arguments 0ea47118e Create test Utils package dd7624539 Bump ruff from 0.0.265 to 0.0.267 acdd50aad Bump torch from 2.0.0 to 2.0.1 33a0ed67d Bump pyjwt from 2.6.0 to 2.7.0 f21a7a25d Bump types-python-dateutil from 2.8.19.12 to 2.8.19.13 5f01b823d Bump mkdocs-material from 9.1.10 to 9.1.12 b0e7b4395 Bump ccxt from 3.0.97 to 3.0.103 675ab840f Bump mypy from 1.2.0 to 1.3.0 a225ab71e revert file count 9242dfa35 try reactivating tb for some tests 505f36a95 try even more deactivation 1ed084557 try even more deactivation 73e9047cd try to deactivate any test that has a callback 340d2191f deactivate tensorboard by default 55a1a3afd add config option for activating and deactivating tensorboard logger, ensure the various flavors are never activated simultaneously ab7a474ab try limiting tb_logger to pytorch only (XGBoost still gets its callback) af8fbad28 Improve Date timezone useage bbce73852 Improve tests around timezone 66a97ff45 Remove some utcnow usages 726627976 Improve docs around pytho 3.11 784087384 darwin excludes must use "sys_platform" 838fbb76a Improve version constraints 106db716f Force smaller catboost version on 3.8 macos e76356aff Bump catboost to 1.2, disable some constraints 0db186935 Update cached binance leverage tiers dc4268b6e Convert Exchange arguments to be kw only af95d56ce Import deepcopy specifically 0d4010c38 maint: Remove faulty config setting from default_conf 18c1eda09 remove commented lines 2ec1302c1 add warnings in the doc for users to better understand the limitations of continual_learning fad1c1985 add warnings in the doc for users to better understand the limitations of continual_learning 3ae3cc63d fix bug in continual_learning for PyTorch* models d50e221e6 Update active ccxt.futures test init 1552d81f4 Simplify load_exchange interface b2a3fe687 Improve remove credentials ab0f9d78e Mock tensorboard callbacks for all freqAI tests 23e8932a4 Mock tensorboard callbacks 400cbd183 Fix types 871f1aabb Use tensorboard fallback for mac tests 6d7172ac4 Re-add init file 49b9b463b Move tensorboard callback exports to freqai.tensorboard. 43213cc6f Revert testing Reinforcement lerning on Mac 6e5a9fe4c mac strikes again ca7ad8a49 good old macos 8261c988b try to fix mac CI db0645ed1 add helpful hints for reward creation 31d15da49 add disclaimers everywhere about how example strategies are meant as examples 692fa390c fix the import logic, fix tests, put all tensorboard in a single folder 6000e6842 bump ccxt min dependency 1d3687893 Bump min-requirements for python-telegram bot b970ddeb6 Fix unused import f7179f7c9 Fix last test with dependency on local user_data dir 1c1005247 Don't hardcode user_data in tests 963ff8c62 Run Repo check on windows, too. 395bf4919 Run Repo-check for macOS, too 2ecd63234 Remove git status again bd6d4d5d2 Event-name for concurrency group? 1ec1abdc3 Fix syntax 800c6223e Quote concurrency group 3ba1eb6ba Improve concurrency group c60c4b9ab Update user_dir fixture to return user_data path 7e023419d Auto-mock user_dir to tmpdir a74a081e6 Check for repository changes 6df5cb887 add install requirement to tensorboard doc b01aaa4d0 ensure backtesting also produces tb_logs, make sure tests are working 242247be4 Fix var name ffc4d8726 add tensorboard integration to XGBoost and PyTorch et al 3a7e41e17 Update rest_client.py d9cc45851 Properly enable pytorch tests 2c0230ba9 avoid mutating new_trained_timerange 35ce88f1e ensure that the buffered timerange is not the trained timestamp so that live_retrain_hours functions properly 55777eba7 Add pre-build arm wheel for pyarrow f2a65437a Bump ccxt from 3.0.85 to 3.0.97 5a27245fc Bump pyarrow from 11.0.0 to 12.0.0 3e3945390 Bump urllib3 from 1.26.15 to 2.0.2 7e31cc410 Bump mkdocs-material from 9.1.9 to 9.1.10 591a51e4b Bump nbconvert from 7.3.1 to 7.4.0 9d7c90e9d Bump pre-commit from 3.2.2 to 3.3.1 395223221 Bump pre-commit requests types e0c63e12e Bump mkdocs-material from 9.1.8 to 9.1.9 10604bf49 Run Torch tests on 3.11 75e5f325a Bump ruff from 0.0.263 to 0.0.265 bf7c52a9e Bump types-requests from 2.29.0.0 to 2.30.0.0 7bd33be8f Bump python-telegram-bot from 20.2 to 20.3 68a37cb71 Bump tensorboard from 2.12.2 to 2.13.0 ecd34ce47 Bump requests from 2.29.0 to 2.30.0 4a911bbe9 Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 3bb872a5e Bump mkdocs from 1.4.2 to 1.4.3 fa40e4e88 Bump websockets from 11.0.2 to 11.0.3 4b1cb9644 Bump orjson from 3.8.11 to 3.8.12 36e1e58da fix arch 3bbb7e38e improve transformer architecture, remove 3.10 install constraint, add documentation for torch.compile() c2beeb4c7 bug fix backtest feature validation 908a2e817 Align BasePyTorchRegressor tensors to cpu as in BasePyTorchClassifier 306dfc4ae refactor(BasePyTorchClassifier.py): convert tensor to list before creating DataFrame to avoid TypeError. docs(BasePyTorchClassifier.py): add missing parameter description in predict method e3ff2ccc9 Slightly reword documentation to be more clear 24804f066 Update test comment, uncomment last test section 775ea1c8c Improve type safety 80930d72a Dont loop trades twice 0adac268e Add test for #8591 976cc1ab1 Extract order_obj existence check to separate function 1cc5b6126 Bump pre-commit ruff version 0d1d25e86 Improve error-handling 13974d250 Reduce error severity when maintenance-ratio fails f419d7870 Add freqaimodel to pair history endpoint fb5fac164 add Packaging dependency explicitly a935f1e4d Remove no longer necessary dependency from setup.py d8a9c9422 Update missing "requirements" install in documentation 220f8c6b5 Add missing freqai-rl dependencies e3f983729 Update freqai dependencies 8f5fb4e32 Add missing dev dependencies 75daa44c5 Add missing core dependencies 1c2dd884e Remove dependency workarounds in place for gym 238581ee7 Remove <3.11 pin for tqdm 3f58c1997 Bump ccxt from 3.0.84 to 3.0.85 5e32182c7 Bump types requests 103f27cfd Bump sqlalchemy pre-commit a31ceb51a Bump sqlalchemy from 2.0.10 to 2.0.12 af139ffba add transformer with positional encoding, fix some odds and ends in pytorch, upgrade to PyTorch 2.0 fe9f2d005 Bump types-requests from 2.28.11.17 to 2.29.0.0 1d73c7c27 Bump mkdocs-material from 9.1.7 to 9.1.8 d023e7592 Bump ccxt from 3.0.75 to 3.0.84 063ddd62e Bump uvicorn from 0.21.1 to 0.22.0 7f9a6ffc5 Bump ruff from 0.0.262 to 0.0.263 7dda3f580 Bump orjson from 3.8.10 to 3.8.11 d928792eb Bump requests from 2.28.2 to 2.29.0 9dd077d69 Bump rich from 13.3.4 to 13.3.5 a66e8768c Update docker-compose.yml d1eb6d4fe Update BasePyTorchRegressor.py 023c155a2 Extract signals generation from backtesting class 6e395ad7c Refactor methods in backtesting 0753f427b Simplify storage e20d9c8f9 Impoved errorhandling, better typesafety fc2a3c9f1 Implement further improvements, improve typehinting 703ec3ccc Fix help text to show correct format 76ae539e6 Minor edit 2a9e50a6a Add test testing create-table statement creation for different sql dialects daf564b62 Invert logic for webhook 1d9933412 improve `/version` output formatting 395ac5f6d Update integration test 491d2cb02 Explicit test for handle_onexchange_order 8cf0e4a31 Fix mypy typing errors 6d3c94a73 type: ignore the offending tensorflow call c6f3a3bbc avoid typing issues in the tensorboard callback e86980bef remove typing from callback init e29ce218e fix typing in TensorboardCallback e88e25903 explicitly test check_exit_amount d29a425ba Update parameter type in RPC modules b0b036c45 Fix logic lapsus in check_exit_amount d0b5c7d21 update telegram/api documentation with new endpoint 25bed7bb8 Update telegram help with reload_trade 7287e9da1 Add telegram endpoint for reload_trade 0c22710dd Add API endpoint to force trade reloading f2696c960 Force special exit reason for "recovered" exits 24cab0047 Extract amount checking to wallets, implement for futures 974cf6c36 Move comment to more appropriate spot 95b35e452 Emulate fetch_orders if it ain't supported natively 81633b7c2 Add "handle_onexchange_order" functionality d14f50f50 temporary comment fetch_orders logic 531b5727f add fetch_orders exchange wrapper c4a091090 Handle special case where exit order is for more than the trade amount ... 1b228e370 Improve test resiliance by removing unneeded MagicMock e8fedb685 Update missleading docstring 11c9f96d2 Use lock for trade entries, too 59f9f4d46 Fix exception typos due to newlines 1e9fa4c04 Improve test to cover to_ccxt better 6a271317b use stop_price_param for dry stops c19d6b4e2 Bump pandas from 1.5.3 to 2.0.1 b49ff3d5b Improve type safety 2615b0297 Move httpx to regular dependencies, losely-pin c06759223 Improve telegram async tests 516b49ff5 Fix bad types d25e82d09 Mock exchange loop 5608aaca2 Simplify mocking 7171fd113 Test telegram startup c9e6137ad Fix test_telegram _init test cf0b37057 update telegram "cleanup" test 69f61ef76 Further telegram async tests 4177afdf8 More async test updates 678c9ae67 Fix some more async telegram tests c475c8184 Update several tests to async behavior fb56889b4 Update a few tests ... 914d7350f Update mocks in apimanager tests b1367ac46 Update decorator typehint 3d0e1d142 Convert endpoints to async 54732b72f Manage startup/teardown of telegram manually e7e6f719e _update_msg to async 5134bf8ec Authorized-only and /version to async cb45689c1 Small fixes to new telegram implementation 14b501a4f Initial changes for telegram migration 68ac93492 Update command list to handle frozenSets 57eed50ac Fix some test failures caused by v20 update c37b7b77e move telegram fixture to telegram file da261003d Fix telegram imports to match v20.0 99a4a6405 Bump python-telegram-bot from 13.15 to 20.2 98db27e8f Bump develop version to 2023.5-dev 8086d9053 Update some tests for balance updates 68a8c79c0 Improve output for futures 94a6bc608 Update stake-currency behavior 741834301 Update tests f937818b8 Add "owned" fields to balance c4f8ff95d Update tests dbf1f0897 Add /balance full, reduce regular balance output 7a47500b2 Add "is_bot_managed" flag to API 0a0509971 fix mypy f1e03a687 Update variable to better reflect it's content 3fb5cd3df Improve formatting c055f82e9 Pip release follow up 66c326b78 Add proper handling of multiple environments f455e3327 Simplify method further af6fc886f Small refactor for new methods d03fe1f8e add latest experimental version of gymnasium fc6d7f012 Support for python 3.11 97a6fb285 revert to dataframe.to_json f5359985e Make CLI option and docs clearer that we're handling signals not trades 854f056ea Fix missing Path constructors 5a4e99b41 Add support for collating and analysing rejected trades in backtest ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 3 years ago

FreqAI - 2023.5

Highlighted changes

  • Improved balance display (incl. new telegram variant /balance full)
  • Recover trades when asset is sold on Exchange (intentionally, or through liquidation).
  • New argument --rejected for backtesting-analysis, allowing analysis of rejected signals.
  • Add full support for Python 3.11 (setup.sh, …)
  • Enhanced freqUI plot Configurator.
  • Add support for area Charts in freqUI.
  • Better protect API keys by no longer exposing them to the strategy.
  • FreqAI:
    • New Torch Transformer model (PyTorchTransformerRegressor).
    • Updated dependencies, including 3.11 support.
    • Use freqUI charts to visualize backtesting results also for freqAI strategies.
    • Tensorboard logging now available for all PyTorch and XGBoost models.

How to update

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

docker-compose

bash 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 ``` 2ea287958 Bump version to 2023.5 bd266f654 Properly handle invalid pairlists type before config validation f647fb342 Update base_tensorboard.py 9e9f9b21e Bump stable-baselines3 from 2.0.0a9 to 2.0.0a10 b5ed693be Extrac OKX convert stop order, call for regular orders, too b8220ee0f Improve recovery detection by skipping open orders a0336c83c Update method casing in tests 6efc62e4c Add test which verifies #8680 won't happen again 6292d1af6 Use camelcase version of private fapi method 9ffdaceef Bybit - use Proxy 1e10b25e3 Bump requests from 2.30.0 to 2.31.0 44bdac5e8 Improve developer docs with some minor improvements d26aa231f Stable baselines updates, and fix 2242d544f Bump ruff from 0.0.267 to 0.0.269 ad5f0307b bump sqlalchemy precommit 96eb109b4 Bump mkdocs-material from 9.1.12 to 9.1.14 ae52ce8cd Bump sqlalchemy from 2.0.13 to 2.0.15 811198cc3 Bump pre-commit from 3.3.1 to 3.3.2 4e3de64c5 Bump fastapi from 0.95.1 to 0.95.2 8c866abad Bump ccxt from 3.0.103 to 3.1.5 68ab147f5 Bump cachetools from 4.2.2 to 5.3.0 abc82a3fd Simplify api backtesting by extracting the background_method a87b215d6 Fix odd import 914195acf Ensure one test can't fail 20 others 96d74063f Don't have public attributes marked as private 531622721 Extract api backtest logic from ApiServer class c4c0371ed add docker comment to docker usage freqai doc section a2cbe5df0 Remove trailing spaces 0d4010a0b Add sample docker-compose file for freqAI, comment about that 9d0f488de Some more edits due to arrow 707c6744b Fix doc and example indentation ebfc9a603 Remove some humanize occurances 5d0cff2f7 Add dt_humanize helper f657d06e9 Move shorten_date to datetime helpers b40c45ee4 Timerange -> datetime adcf75134 Bump min-requirement of arrow 261822147 Fix remaining arrow testcases 3ec55885b Remove arrow from more tests 9421ca262 Remove arrow from test_persistence 3a4d103bc Properly check wallets with new type 7a2ff6025 Fix more tests 915cb5ffb add dt_utc helper c0713eb77 More tests to dt_helpers 29fdcdbf5 reduce arrow in tests d131dd405 Fix wrong transition cfae98ae0 dt_now for tests e4f701fd0 Don't use arrow for everything 5b66ef4be Implement datetime.floor 7f73e9943 Simplify exchange_utils 55ce58d79 Reduce some arrow usages in favor of dt helpers 000f72942 Improve dt_now_ts helper aa949153e Add now ts helper 5c6f3ea43 Improve wallets time handling 261df527d dt_now 6b735bc68 Implement dt_now 6044bbb6b Add datetime helpers to unify code 2477ef57f Reduce arrow usage throughout code 1d03e8bc5 Reduce arrow usage further d3382fbe0 Reduce usage of arrow 292bd6297 Reduce verbosity of httpx (we don't need to see telegram calls) adeab13bd cleanup tests, cross fingers that mac will pass 2ab732480 Ensure pi image can be built 45ee12e25 reload_trade should be a post endpoint bb760a47d Bump pymdown-extensions to 10.0.1 61ea3d817 Bump pymdown-extensions from 9.11 to 10.0 in /docs 7d15c379c Fix faulty removed import c7f7dd1d4 Avoid unnecessary type ignore 1b714fdb0 Fix wrong "first trade" date in UI, improve interface 9b1028789 Improve typing 3a0e123c6 Bump pre-commit sqlalchemy ef15b7b3d pre-commit dateutil types 28905885e Bump sqlalchemy from 2.0.12 to 2.0.13 68f67c5ae Test proper removal of exchange keys c242d89cd Improve test format 66c3eb282 Remove keys from config before loading strategy b2a631e93 refactor remove_exchange_credentials fe36e7741 Split exchange_config before passing through the strategy fffb056ad load_exchange - force kwargs for non-required arguments 0ea47118e Create test Utils package dd7624539 Bump ruff from 0.0.265 to 0.0.267 acdd50aad Bump torch from 2.0.0 to 2.0.1 33a0ed67d Bump pyjwt from 2.6.0 to 2.7.0 f21a7a25d Bump types-python-dateutil from 2.8.19.12 to 2.8.19.13 5f01b823d Bump mkdocs-material from 9.1.10 to 9.1.12 b0e7b4395 Bump ccxt from 3.0.97 to 3.0.103 675ab840f Bump mypy from 1.2.0 to 1.3.0 a225ab71e revert file count 9242dfa35 try reactivating tb for some tests 505f36a95 try even more deactivation 1ed084557 try even more deactivation 73e9047cd try to deactivate any test that has a callback 340d2191f deactivate tensorboard by default 55a1a3afd add config option for activating and deactivating tensorboard logger, ensure the various flavors are never activated simultaneously ab7a474ab try limiting tb_logger to pytorch only (XGBoost still gets its callback) af8fbad28 Improve Date timezone useage bbce73852 Improve tests around timezone 66a97ff45 Remove some utcnow usages 726627976 Improve docs around pytho 3.11 784087384 darwin excludes must use "sys_platform" 838fbb76a Improve version constraints 106db716f Force smaller catboost version on 3.8 macos e76356aff Bump catboost to 1.2, disable some constraints 0db186935 Update cached binance leverage tiers dc4268b6e Convert Exchange arguments to be kw only af95d56ce Import deepcopy specifically 0d4010c38 maint: Remove faulty config setting from default_conf 18c1eda09 remove commented lines 2ec1302c1 add warnings in the doc for users to better understand the limitations of continual_learning fad1c1985 add warnings in the doc for users to better understand the limitations of continual_learning 3ae3cc63d fix bug in continual_learning for PyTorch* models d50e221e6 Update active ccxt.futures test init 1552d81f4 Simplify load_exchange interface b2a3fe687 Improve remove credentials ab0f9d78e Mock tensorboard callbacks for all freqAI tests 23e8932a4 Mock tensorboard callbacks 400cbd183 Fix types 871f1aabb Use tensorboard fallback for mac tests 6d7172ac4 Re-add init file 49b9b463b Move tensorboard callback exports to freqai.tensorboard. 43213cc6f Revert testing Reinforcement lerning on Mac 6e5a9fe4c mac strikes again ca7ad8a49 good old macos 8261c988b try to fix mac CI db0645ed1 add helpful hints for reward creation 31d15da49 add disclaimers everywhere about how example strategies are meant as examples 692fa390c fix the import logic, fix tests, put all tensorboard in a single folder 6000e6842 bump ccxt min dependency 1d3687893 Bump min-requirements for python-telegram bot b970ddeb6 Fix unused import f7179f7c9 Fix last test with dependency on local user_data dir 1c1005247 Don't hardcode user_data in tests 963ff8c62 Run Repo check on windows, too. 395bf4919 Run Repo-check for macOS, too 2ecd63234 Remove git status again bd6d4d5d2 Event-name for concurrency group? 1ec1abdc3 Fix syntax 800c6223e Quote concurrency group 3ba1eb6ba Improve concurrency group c60c4b9ab Update user_dir fixture to return user_data path 7e023419d Auto-mock user_dir to tmpdir a74a081e6 Check for repository changes 6df5cb887 add install requirement to tensorboard doc b01aaa4d0 ensure backtesting also produces tb_logs, make sure tests are working 242247be4 Fix var name ffc4d8726 add tensorboard integration to XGBoost and PyTorch et al 3a7e41e17 Update rest_client.py d9cc45851 Properly enable pytorch tests 2c0230ba9 avoid mutating new_trained_timerange 35ce88f1e ensure that the buffered timerange is not the trained timestamp so that live_retrain_hours functions properly 55777eba7 Add pre-build arm wheel for pyarrow f2a65437a Bump ccxt from 3.0.85 to 3.0.97 5a27245fc Bump pyarrow from 11.0.0 to 12.0.0 3e3945390 Bump urllib3 from 1.26.15 to 2.0.2 7e31cc410 Bump mkdocs-material from 9.1.9 to 9.1.10 591a51e4b Bump nbconvert from 7.3.1 to 7.4.0 9d7c90e9d Bump pre-commit from 3.2.2 to 3.3.1 395223221 Bump pre-commit requests types e0c63e12e Bump mkdocs-material from 9.1.8 to 9.1.9 10604bf49 Run Torch tests on 3.11 75e5f325a Bump ruff from 0.0.263 to 0.0.265 bf7c52a9e Bump types-requests from 2.29.0.0 to 2.30.0.0 7bd33be8f Bump python-telegram-bot from 20.2 to 20.3 68a37cb71 Bump tensorboard from 2.12.2 to 2.13.0 ecd34ce47 Bump requests from 2.29.0 to 2.30.0 4a911bbe9 Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 3bb872a5e Bump mkdocs from 1.4.2 to 1.4.3 fa40e4e88 Bump websockets from 11.0.2 to 11.0.3 4b1cb9644 Bump orjson from 3.8.11 to 3.8.12 36e1e58da fix arch 3bbb7e38e improve transformer architecture, remove 3.10 install constraint, add documentation for torch.compile() c2beeb4c7 bug fix backtest feature validation 908a2e817 Align BasePyTorchRegressor tensors to cpu as in BasePyTorchClassifier 306dfc4ae refactor(BasePyTorchClassifier.py): convert tensor to list before creating DataFrame to avoid TypeError. docs(BasePyTorchClassifier.py): add missing parameter description in predict method e3ff2ccc9 Slightly reword documentation to be more clear 24804f066 Update test comment, uncomment last test section 775ea1c8c Improve type safety 80930d72a Dont loop trades twice 0adac268e Add test for #8591 976cc1ab1 Extract order_obj existence check to separate function 1cc5b6126 Bump pre-commit ruff version 0d1d25e86 Improve error-handling 13974d250 Reduce error severity when maintenance-ratio fails f419d7870 Add freqaimodel to pair history endpoint fb5fac164 add Packaging dependency explicitly a935f1e4d Remove no longer necessary dependency from setup.py d8a9c9422 Update missing "requirements" install in documentation 220f8c6b5 Add missing freqai-rl dependencies e3f983729 Update freqai dependencies 8f5fb4e32 Add missing dev dependencies 75daa44c5 Add missing core dependencies 1c2dd884e Remove dependency workarounds in place for gym 238581ee7 Remove <3.11 pin for tqdm 3f58c1997 Bump ccxt from 3.0.84 to 3.0.85 5e32182c7 Bump types requests 103f27cfd Bump sqlalchemy pre-commit a31ceb51a Bump sqlalchemy from 2.0.10 to 2.0.12 af139ffba add transformer with positional encoding, fix some odds and ends in pytorch, upgrade to PyTorch 2.0 fe9f2d005 Bump types-requests from 2.28.11.17 to 2.29.0.0 1d73c7c27 Bump mkdocs-material from 9.1.7 to 9.1.8 d023e7592 Bump ccxt from 3.0.75 to 3.0.84 063ddd62e Bump uvicorn from 0.21.1 to 0.22.0 7f9a6ffc5 Bump ruff from 0.0.262 to 0.0.263 7dda3f580 Bump orjson from 3.8.10 to 3.8.11 d928792eb Bump requests from 2.28.2 to 2.29.0 9dd077d69 Bump rich from 13.3.4 to 13.3.5 a66e8768c Update docker-compose.yml d1eb6d4fe Update BasePyTorchRegressor.py 023c155a2 Extract signals generation from backtesting class 6e395ad7c Refactor methods in backtesting 0753f427b Simplify storage e20d9c8f9 Impoved errorhandling, better typesafety fc2a3c9f1 Implement further improvements, improve typehinting 703ec3ccc Fix help text to show correct format 76ae539e6 Minor edit 2a9e50a6a Add test testing create-table statement creation for different sql dialects daf564b62 Invert logic for webhook 1d9933412 improve `/version` output formatting 395ac5f6d Update integration test 491d2cb02 Explicit test for handle_onexchange_order 8cf0e4a31 Fix mypy typing errors 6d3c94a73 type: ignore the offending tensorflow call c6f3a3bbc avoid typing issues in the tensorboard callback e86980bef remove typing from callback init e29ce218e fix typing in TensorboardCallback e88e25903 explicitly test check_exit_amount d29a425ba Update parameter type in RPC modules b0b036c45 Fix logic lapsus in check_exit_amount d0b5c7d21 update telegram/api documentation with new endpoint 25bed7bb8 Update telegram help with reload_trade 7287e9da1 Add telegram endpoint for reload_trade 0c22710dd Add API endpoint to force trade reloading f2696c960 Force special exit reason for "recovered" exits 24cab0047 Extract amount checking to wallets, implement for futures 974cf6c36 Move comment to more appropriate spot 95b35e452 Emulate fetch_orders if it ain't supported natively 81633b7c2 Add "handle_onexchange_order" functionality d14f50f50 temporary comment fetch_orders logic 531b5727f add fetch_orders exchange wrapper c4a091090 Handle special case where exit order is for more than the trade amount ... 1b228e370 Improve test resiliance by removing unneeded MagicMock e8fedb685 Update missleading docstring 11c9f96d2 Use lock for trade entries, too 59f9f4d46 Fix exception typos due to newlines 1e9fa4c04 Improve test to cover to_ccxt better 6a271317b use stop_price_param for dry stops c19d6b4e2 Bump pandas from 1.5.3 to 2.0.1 b49ff3d5b Improve type safety 2615b0297 Move httpx to regular dependencies, losely-pin c06759223 Improve telegram async tests 516b49ff5 Fix bad types d25e82d09 Mock exchange loop 5608aaca2 Simplify mocking 7171fd113 Test telegram startup c9e6137ad Fix test_telegram _init test cf0b37057 update telegram "cleanup" test 69f61ef76 Further telegram async tests 4177afdf8 More async test updates 678c9ae67 Fix some more async telegram tests c475c8184 Update several tests to async behavior fb56889b4 Update a few tests ... 914d7350f Update mocks in apimanager tests b1367ac46 Update decorator typehint 3d0e1d142 Convert endpoints to async 54732b72f Manage startup/teardown of telegram manually e7e6f719e _update_msg to async 5134bf8ec Authorized-only and /version to async cb45689c1 Small fixes to new telegram implementation 14b501a4f Initial changes for telegram migration 68ac93492 Update command list to handle frozenSets 57eed50ac Fix some test failures caused by v20 update c37b7b77e move telegram fixture to telegram file da261003d Fix telegram imports to match v20.0 99a4a6405 Bump python-telegram-bot from 13.15 to 20.2 98db27e8f Bump develop version to 2023.5-dev 8086d9053 Update some tests for balance updates 68a8c79c0 Improve output for futures 94a6bc608 Update stake-currency behavior 741834301 Update tests f937818b8 Add "owned" fields to balance c4f8ff95d Update tests dbf1f0897 Add /balance full, reduce regular balance output 7a47500b2 Add "is_bot_managed" flag to API 0a0509971 fix mypy f1e03a687 Update variable to better reflect it's content 3fb5cd3df Improve formatting c055f82e9 Pip release follow up 66c326b78 Add proper handling of multiple environments f455e3327 Simplify method further af6fc886f Small refactor for new methods d03fe1f8e add latest experimental version of gymnasium fc6d7f012 Support for python 3.11 97a6fb285 revert to dataframe.to_json f5359985e Make CLI option and docs clearer that we're handling signals not trades 854f056ea Fix missing Path constructors 5a4e99b41 Add support for collating and analysing rejected trades in backtest ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 3 years ago

FreqAI - 2023.4

Highlighted changes

  • Improved price to precision rounding logic.
  • Initial bot startup time added to /profit output.
  • Switch progressbar to Rich (Improved visualization).
  • Allow reordering of your bots in freqUI (only relevant if you have multiple bots).
  • FreqUI shows the backtesting breakdown tables.
  • FreqAI:
    • Pytorch model support.
    • Add progressbar to Reinforcement learning to show Progress per epoch.
Important reminder

Freqtrade/FreqAI is an open-source project without token offering. freqtrade does not have a domain besides the freqtrade documentation https://www.freqtrade.io/.

Please be cautious of any projects (scams) using the name of freqtrade/freqAI with malicious goals (e.g. to sell you tokens).

How to update

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

docker-compose

bash 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 ``` d40a63156 Version bump 2023.4 829724c0e Fallback to "initialMargin" if collateral is not set e99af87b6 store periodic breakdown in backtest results 3948890c3 Add --breakdown to backtest-show d1e9e7039 Improve Resample-period test f7c6828e6 Bump mkdocs-material from 9.1.6 to 9.1.7 0329c0c3f pre-commit - bump sqlalchemy c513d1077 Bump sqlalchemy from 2.0.9 to 2.0.10 598478e48 Bump filelock from 3.11.0 to 3.12.0 15fdaecd7 Bump psutil from 5.9.4 to 5.9.5 43d0c7ff9 Bump numpy from 1.24.2 to 1.24.3 a64b641fd Bump ruff from 0.0.261 to 0.0.262 d320ea052 Bump ccxt from 3.0.69 to 3.0.75 185ea9c98 Bump websockets from 11.0.1 to 11.0.2 2dd3b3413 Fix malrendering in freqAI docs ad4996259 Further increase typehints in freqAI interface c5dc21e80 Update freqAI documentation with missing typehints c20b07488 Add FAQ entry about permission error cb09ef718 Extract converting wallet to est_stake ce75a032d Balance ratio calculation should ignore non-relevant assets 5dccfab89 Add test for start_cap_ratio 9bc17a923 Downgrade wheel to isntall gym 4a4be27eb use orderid from order, the trade one has been reset ca1a616b8 use Fstrings for log message 818da02f6 Edit `Advanced Strategies` intro for clarify and brevity b545fc559 Correct user namespace from `cust_` to `custom_` 1056ff0d1 Update variable to better reflect it's content 670a584d7 Fix markdown inconsistencies 2f9e6c990 Update docs/strategy-callbacks.md 66f5f76a6 Fix anchor for missing heading 46f4fd79a Fix anchor for missing heading 5ed072c48 Remove extraneous code block 94e190b95 docs: strategy-callbacks: revert `leverage=trade.leverage` removal caf524c68 Don't fail on leverage tier loading error f9124ef5b docs: strategy-callbacks: removes outdated `leverage` argument c297d9997 Telegram. Fixed the blacklist removal message 6f401a9e1 docs: use helper function `stoploss_from_absolute` in strategy callbacks "absolute" example dfe8b3e83 Improve ruff rule selection 7ff35fea3 Default weekly report to monday f04926835 Bump ccxt from 3.0.59 to 3.0.69 362974b83 Update test to properly capture errors from leverage initialization 14bca509d Cleanup some code b2ea46425 Handle individual exceptions when initializing leverage tiers d73e7f292 simplify Leverage tier code d34b15d6a Telegram. Fixed the blacklist removal message 8aec71e27 Add bitvavo sublass to properly set ohlcv limit 6c6d2a0f4 Improve live test resiliance 8a8cd6798 Improve ccxt_ohlcv test debuggability d1b600e7b Bump fastapi from 0.95.0 to 0.95.1 7c9584827 Bump rich from 13.3.3 to 13.3.4 864f53bc4 Bump cryptography from 40.0.1 to 40.0.2 f1fcd0760 Bump pytest from 7.3.0 to 7.3.1 f1730ab51 Bump httpx from 0.23.3 to 0.24.0 dba21c815 Bump tensorboard from 2.12.1 to 2.12.2 501a290f8 Pin pip also for windows installs 4ed670f82 pin pip installation to <23.1 - which breaks gym installation f6e93114e Update binance leverage tiers file 6bc875932 Update constants.py 1d40162e9 Telegram. Fixed the blacklist removal message. 20d17cbc5 Disable telegram from default_conf a78672c10 Improve log message formatting 6a0a33739 order cost should be with leverage, not leverage-cleared b9f142c31 Add failing tests with leverage 6e814af36 Add test asserting cost f81414609 Update ta-lib link e25f6986d Improve windows doc wordings, remove reference to outdated binary provider. 95cdb8aa0 Update ta-lib windows wheels 3b377149e Add clarifying comment, simplify code dcf9bbdae ensure data is on same device as the model 84d2d5e2a Change ["Dummy"] to [None]. 0afd5a738 Improve stoploss documentation 44bf59668 prevents continous fetching every x bot_loop seconds , adheres to refresh_period, in case the pairlist returned from the remote end is empty. 2131205db Bump tag length to 255 b2b19915e Limit enter_tag and exit_reason to their actual field lenght bba6f8e13 Use length constant for tests a6d2233b9 Use constant for custom field lengths 9857675a5 Update torch import 476ed938f Extract custom_tag limit from interface file 40ffac9de Prevent random test failures by freezing time for certain tests b892d373c Improve timerange parsing when accepting values from API c4c229868 Bump mkdocs-material from 9.1.5 to 9.1.6 8564dc10b Bump nbconvert from 7.2.10 to 7.3.1 fa293c54f Bump websockets from 11.0 to 11.0.1 70fa4a53c pre-commit - bump sqlalchemy 467c63ff0 Bump ruff from 0.0.260 to 0.0.261 e2cd23b1d Remove deprecated pandas option 0d408d3d4 Bump ccxt from 3.0.58 to 3.0.59 230919777 Bump sqlalchemy from 2.0.8 to 2.0.9 66fe9abce Bump pre-commit from 3.2.1 to 3.2.2 200c18f3e Bump schedule from 1.1.0 to 1.2.0 351b5f6e6 Bump plotly from 5.14.0 to 5.14.1 f73d2a537 Ensure bot_start is called when visualizing results 3833dc0b7 pre-commit - bump dateutil 5a18ab078 Bump mypy from 1.1.1 to 1.2.0 2ea015719 Bump pypa/gh-action-pypi-publish from 1.8.4 to 1.8.5 03352f3b6 Bump types-python-dateutil from 2.8.19.11 to 2.8.19.12 26eb4f7fe Bump pymdown-extensions from 9.10 to 9.11 7e1f3aa54 Bump filelock from 3.10.6 to 3.11.0 3505fbe78 Bump ta-lib from 0.4.25 to 0.4.26 14532e3a5 Bump orjson from 3.8.9 to 3.8.10 a449f7c78 Bump pytest from 7.2.2 to 7.3.0 8854ef8cb Bump ccxt from 3.0.50 to 3.0.58 526943f29 Remove freqUI alpha warning cf770d496 Improve visual display of progressbar bfd9e35e3 Replace hyperopt progressbar with rich progressbar 299e78889 Dump progressbar2 dependency 4c1de4ad5 Update tests ed57e7d43 Refactor logging to be a package, instead of a module 818d18d4e Add StdErrStreamHandler to logging b6aac5079 REmove Rich-progress wrapper again 40450ebec Add dependency on Rich d532da907 Add Rich Progressbar Wrapper df51111c3 Always show strategy summary dd8900a1c Improve ordering of backtest output 5404905d2 Fix typos in docs bed51fa79 Properly build specific Torch image f5a5c2d6b Improve imports a102cfdfc Add new /profit fields to API be72670ca Add documentation about /profit change cf2cb94f8 Add bot start date to `/profit` output fa3a81b02 convert Keys to enum 7ff30c6df Add additional, typesafe getters 7751768b2 Store initial_time value c2c97d9f7 make a fake pair_dict instead of MagicMocking it 48d3c8e62 fix model loading from disk bug, improve doc, clarify installation/docker instructions, add a torch tag to the freqairl docker image. Fix seriously outdated prediction_model docstrings ac817b780 Improve docstrings for key-value store 4d4f4bf23 Add test for key_value_store c08372369 Add initial version of key value store f8d89c46e Don't reset open_order_id if the order didn't cancel 1952e453b Improved formatting for fetch order_or_stop calls 77985fa59 Update thread name for uvicorn worker a75d89100 Ensure minimum sqlalchemy version is respected dae3f72be Bump Dockerfile to latest 3.10 f03a99918 Ensure hyper param file can be loaded a65552422 pytorch mlp rename input to fix mypy error 26738370c pytorch mlp add explicit annotation to fix mypy error fe02f611f Fix typo in reinforcement learning 92a060c5b Make stop_price_parameter configurable by exchange 6b204c97e fix pytorch data convertor type hints 0c4574b3b prevent mypy error, explicitly unpack input list of pytorch mlp model, d9d999317 add documentation 7b494c833 add documentation to pytorch data convertor bc9454e0f add device to data convertor class doc 36a0a14a2 clean code c13766623 fix imports 7fed0782d pre-commit types-tabulate bd3b70293 add pytorch data convertor 30fc24bd8 Bump types-tabulate from 0.9.0.1 to 0.9.0.2 b96f6670e pre-commit dateutil b48498f27 Types pre-commit ff40ee655 Bump types-python-dateutil from 2.8.19.10 to 2.8.19.11 57deaad80 Bump types-requests from 2.28.11.16 to 2.28.11.17 7779b8227 Bump tensorboard from 2.12.0 to 2.12.1 2bd2058af Bump ruff from 0.0.259 to 0.0.260 bf7936b0a Bump plotly from 5.13.1 to 5.14.0 8236bbfd4 Bump orjson from 3.8.8 to 3.8.9 43496d792 bump sqlalchemy pre-commit c9b904eb0 Fix typos in documentation 372f1cb37 Reduce verbosity for stop orders a3acdd524 apply stop-reserve to minimum limits only when necessary e6a125719 Slightly refactor _get_stake_amount_limit 78a155179 Reorder get_stake_limit 6f79d14c9 pre-commit - bump cachetools 2715b2ccf Bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.4 2ea575cb3 Bump mkdocs-material from 9.1.4 to 9.1.5 1b31c5416 Bump ccxt from 3.0.37 to 3.0.50 e289c10b6 Bump types-cachetools from 5.3.0.4 to 5.3.0.5 26ed1ca07 Bump xgboost from 1.7.4 to 1.7.5 b1e20bcd1 Bump sqlalchemy from 2.0.7 to 2.0.8 12a73bc15 Bump websockets from 10.4 to 11.0 cfc041038 use rl_config get instead of freqai_info cccf4f305 fix randomize_starting_position typo 4c608e716 remove misplaced param cab82e8e6 Add sb3 learn progress bar dc7e83491 Fix some type issues 631cb44f5 ensure python code block renders 367186cc3 Update freqai-feature-engineering.md 92f34f262 make trade_type value more explicit, add profit to trade_history dict 6dfb1a1d1 Improve docker regular build caching f8330800d Improve docker arm builds 3ec7c72da Bump develop version to 2023.4.dev 355fde3bc revert setting dk to live in test_plot_feature_importances 861c57713 Support partially filled stop orders e062a74e7 Add test for partial stop order canceling c330c493d test for Handle stop on exchange partial filled 5a7ca35c6 declare class names in FreqaiExampleHybridStrategy 077a94797 clean code 8ac3a9435 add note to pytorch docs - setting class names for classifiers dfbebdea9 improve comment on class_names in freqai interface b795a7010 fix config example in pytorch mlp documentation 026b6a39a bugfix skip test split when empty 3cabcabcb ensure labels are properly defined in backtesting 55781e7f1 fix tests f1e831a7b fix bug in backtest target setting 159090c0e Add explicit tests for TRUNCATE mode 0cb28f3d8 Use kwarg for rounding_mode, update tests with additional parameter d0d0cbe1d Implement price_to_precision logic for stoploss 01dfb1cba Revert having price_rounding_mode as configuration 8903ba5d8 fix enf of file eabd32128 small docs change 45c6ae446 small docs change 952e64121 small docs change c44b5b1b3 add pytorch parameters to parameter table docs fc8625c5c add pytorch classes uml diagram 36a005754 add pytorch documentation 479aafc33 rename Torch to PyTorch f81e3d866 sort imports b9c7d338b fix test_start_backtesting 02bccd009 add pytorch mlp models to test_start_backtesting 1ba01746a organize pytorch files 83a7d888b type hint init in pytorch mlp classes eba82360f skip pytorch tests on python 3.11 and intel based mac os 3fa23860c skip pytorch tests on python 3.11 and intel based mac os a80afc8f1 add optional target tensor squeezing to pytorch trainer 97339e14c round up divisions in calc_n_epochs 443263803 unsqueeze target tensor when 1 dimensional 9906e7d64 clean code e8f040bfb add class_name attribute to freqai interface a4b617e48 type hints fixes c06cd3895 clean code 0a55753fa move default attributes of pytorch classifier to initializer, to prevent mypy from complaining 6b4d9f97c clean code 500c401b7 improve pytorch classifier documentation 81a2cbb4e fix tests 0510cf449 add config params to tests 68728409a add pytorch regressor test c00ffcee5 fix pytorch classifier test 9aec1ddb1 sort imports d98890f32 sort imports f659f8e30 remove unused imports 54db23917 add pytorch regressor example 601c37f86 refactor classifiers class names 501e746c5 improve mlp documentation d04146d1b improve mlp documentation ea08931ab add mlp documentation ddd1b5c0f modify feedforward net, move layer norm to start of thr block e08d8190a fix test fbf7049ac sort imports 2a1a8c0e6 fix test 833aaf8e1 create children class to PyTorchClassifier to implement the fit method where we initialize the trainer and model objects 566346dd8 classifier test - set model file extension d0a33d2ee fix tests fab505be1 cheat flake8 for now until we can refactor save into the model class 2f386913a refactor classifiers class names 1c11a5f04 improve mlp documentation 903a1dc3e improve mlp documentation 6f9a8a089 add mlp documentation 8bee49932 modify feedforward net, move layer norm to start of thr block 719faab4b fix test 9f477aa3c sort imports 61ac36c57 fix test 366c148c1 create children class to PyTorchClassifier to implement the fit method where we initialize the trainer and model objects a49f62eec classifier test - set model file extension fab9ff129 fix tests 244662b1a set class names attribute in the general classifier testing strategy 455044740 cheat flake8 for now until we can refactor save into the model class 366740885 reduce mlp number of parameters for testing 918889a2b reduce mlp number of parameters for testing 9c8c30b0e add test d7ea75082 revert to using model_training_parameters b6096efad logging change b927c9dc0 remove train loss calculation from estimate_loss 523a58d3d simplify statement for pytorch file_type extension 0012fe36c sort imports cb17b3698 simplify file_type check comparisons f9fdf1c31 generalize mlp model 1cf0e7be2 use one iteration on all test and train data for evaluation 8a9f2aedb improve documentation e88a0d524 convert single quotes to double quotes 2ef11faba reformat documentation c9eee2944 reformat documentation 6f962362f expand pytorch trainer documentation ba5de0cd0 add documentation 3081b9402 add documentation 1132fa609 feat: Added price_rounding modes in config 1597c3aa8 set class names in IStrategy.set_freqai_targets method, also save class name with model meta data 7d26df01b fix tensor type hint c8296ccb2 sort imports 8d60327d6 add missing import 04564dc13 add missing import 6161b858c sort imports 1921a07b8 sort imports b65ade51b revert config_freqai_example changes dfbb2e2b3 sort imports 1805db2b0 change documentation and small bugfix 76fbec0c1 ad multiclass target names encoder to ints 4241bff32 type hints fixes 5dd60eda3 type hints fixes 8acdd0b47 type hints fixes 125085fba add freqai.model_exists pytorch file type support 7eedcb9c1 reformat code e6e747bcd reformat code 348a08f1c add todo - currently assuming class labels are strings ['0.0', '1.0' .. n_classes]. need to resolve it per ClassifierModel b1ac2bf51 use data loader, add evaluation on epoch 751b20561 initial commit ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 3 years ago

FreqAI - 2023.3

Highlighted changes

  • /marketdir telegram command allowing a dedicated strategy variable to be set.
  • Improved /status message layout and information.
  • Improved Trade-detail information in freqUI.
  • Add leverage argument to stoploss_from_open. If you're using this function with leveraged trades, please make sure to add this argument.
  • Docker-files are now mirrored to the github registry (image ghcr.io/freqtrade/freqtrade:<tag>).
  • New subcommand in strategy-updater - attempting to automatically update from old strategy versions to new versions.
  • Post-only order support for Binance Spot.
  • Stoploss on exchange support for OKX added.
  • Market order support for Gate Spot markets.
  • bot_loop_start() callback now gets called once per iteration in backtesting. As a consequence, it also received a current_time parameter.
  • feather format is now available for trades data.
  • Partial support for 3.11 (no freqAI for now).
  • Mirror Docker images to github/ghcr.io, available as ghcr.io/freqtrade/freqtrade:develop image name.
  • Fix a SQLAlchemy session bug, causing Sessions in non-sqlite environments to continuously raise.
  • FreqAI:
    • Removal of the previously deprecated populate_any_indicators().
    • Don't force ohlcv data for RL (can be disabled via drop_ohlc_from_features).
    • Improved tensorboard_log() functionality for Reinforcement Learning.
Important reminder

Freqtrade/FreqAI is an open-source project without token offering. freqtrade does not have a domain besides the freqtrade documentation https://www.freqtrade.io/.

Please be cautious of any projects (scams) using the name of freqtrade/freqAI with malicious goals (e.g. to sell you tokens).

How to update

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

docker-compose

bash 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 ``` 2ea77b22e Bump version to 2023.3 fa7c29fe9 Update producer docs to reflect proper datatype 8a49d6206 Don't update liquidation price for closed trades a64252492 Improve integration test correctness eb96490c9 Improve some more stoploss tests 6282b4274 Remove further Magicmock trade 513df4515 Improve stoploss tests 411e21f43 Improve stop test f0b5f95fd Remove missleading comment 736c396d9 Use correct amount for stoploss test 2860e817b Update cached binance leverage Tiers 19b78fbc2 Override ccxt's marketOrderRequiresPrice settings for gate cde432fef Enable gate market orders ed0e7ead3 Fix wrong import 3928051ba Revert unneeded formatting changes e35c85000 Excude raspberry from catboost installs 4f4dfa2a5 Bump pydantic from 1.10.6 to 1.10.7 90669e0ba Bump ccxt from 3.0.36 to 3.0.37 bc0816aa6 Bump cryptography from 39.0.2 to 40.0.1 1743ad794 Bump pre-commit from 3.2.0 to 3.2.1 4891174a7 list-data should sort pairs also in timerange mode 8845f765d pre-commit - bump requests 7e11bce4f Bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 8955e0917 Bump filelock from 3.10.0 to 3.10.6 d13ea71a5 Bump mkdocs-material from 9.1.3 to 9.1.4 b72f61080 Bump orjson from 3.8.7 to 3.8.8 75c31cc8c Bump ruff from 0.0.257 to 0.0.259 1b3d9efed Bump types-requests from 2.28.11.15 to 2.28.11.16 2f8f60373 Bump ccxt from 3.0.23 to 3.0.36 72284317c Fix failing backtest test 80a27bc0d Fix random uvicorn error 1c9abd9e3 Properly respect can_short flag in backtesting c14ac8a20 Properly handle non-replaced first entry orders b09fb5826 don't use "can_short" in backtesting to determine application of leverage fb1541bdf Explicitly close loop in async tests 444d18aa3 Revert binance PO fix, since ccxt has fixed this bug. 16057da6c typo: above should be below 7cdcd97c2 Update tests for new logic. 86aef7cf9 Add current_time to bot_loop_start callbak ee205ddc8 Improve trade.from_json when stops are used 298f5685e Reuse existing "cancel_stoploss" call 486d8a48a Fix docs (buffer_train_data_candles is an integer, not a boolean) d9c8b322c Update freqai_interface.py 68154a1f5 document why users cant arbitrarily change parameter spaces... f7c1ee6d3 add precision values to api schema 9c6a49436 Export amount/price precisions per trade cdd44a400 docs(protections): fix typo 56170dba1 use github to download guess instead of gnu.org 79a2de7a6 Reduce impact of short outages c0a57d352 send base_currency with messages that need it. cbdd86d77 Fix test failures due to additional field 281dd7785 Fix some remaining type errors ad58bac81 Type WS messagetypes 8928d3616 Improve msgtypes e8cffeeff Update RPCStatusMessage type 76d289f0c Don't overwrite types 245ae9927 Further typing ... 70ad7b42b Improve msg typing 0ece73578 Add typedDict for RPC messages b317524ed protect adjust_trade_position from crashing in case of unsafe code 469166636 Set initial stoploss when creating the order 150c5510c Don''t fully fail bot when invalid price value is reached bdf19f1d6 Update freqai_interface.py 8cf3e9f91 Accept "insufficient funds" error on set_leverage from stop calls ebebcb886 Move build-system to the top of pyproject.toml 36c45fd14 Remove unused argument from set_leverage 0128b63c1 add 'feather' to AVAILABLE_DATAHANDLERS_TRADES e16db814f featherdatahandler: implement trades_store/_trades_load 97c420b2d Add explicit test for okx lev_prep 639987cba Prevent parameter reuse 4f4bfdac4 Adjustments to okx stoploss a4e4310d4 Bump pytest-asyncio from 0.20.3 to 0.21.0 cb1f971d4 Bump ccxt from 2.9.12 to 3.0.23 317512103 Bump ast-comments from 1.0.0 to 1.0.1 8d649988c Bump fastapi from 0.94.0 to 0.95.0 54d8aa778 Test stoploss_adjust okx 469024467 Enable okx stop-price types 2de5a59d8 Add test for dry-run fetching dcca51985 sqlalchemy - pre-commit c78342b19 Bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1 29b9be9bd Bump ruff from 0.0.255 to 0.0.257 4543a1fe0 Bump pre-commit from 3.1.1 to 3.2.0 fc7c8cce3 Bump uvicorn from 0.21.0 to 0.21.1 7d1559f31 Bump mkdocs-material from 9.1.2 to 9.1.3 a43502093 Bump sqlalchemy from 2.0.5.post1 to 2.0.7 47e84ad10 Bump python-rapidjson from 1.9 to 1.10 5ade5777e Bump filelock from 3.9.0 to 3.10.0 fb0e824a8 Bump nbconvert from 7.2.9 to 7.2.10 a7c7f720c Add test for okx fetch_stop 224f289ec OKX Stop: Add some more okx specific logic d84ece725 Use conditional orders for stop orders 6c5dc7e0a OKX: improve stop order handling df20757d2 OKX stop: implement proper stoploss fetching a2ce28824 Add okx stoploss on exchange (non-working for futures). ce3efa8f0 Remove pointless asserts c92f28bf6 ruff: Activate UP ruleset 222ecdecd Improve code quality 236499a19 Reorder push logic for ghcr 3d91dd8a9 Support post-only orders for Binance spot 9ccc3e52e Simplify time in force code structure f5f151fcc Fix typing error bf3f2e4de Fix failing test b1f88e886 fixed typo from trades to trade 62c8dd98d Use combination of thread-local and asyncio-aware session context b0a7b64d4 Close sessions after telegram calls d808dd49e Fix ruff violation 818d2bf92 Fix stoploss on exchange value in /show_config call 477dc5042 Add pair output to "tossed" messages 9044052b4 Fix exceptions when training fails 764d5507a Fix typo in docker param 628f6b8b7 Fix crane docker permissions 0d3de0701 use Crane to move images around db0f449d9 Use docker manifest for GHCR builds 774eacc56 Attempt push to ghcr.io e3e4fbd5b Minor test fix b7709126f remove .query completely 4cfbc55d3 Update remaining tests to get rid of .query 9d6e973e5 remove .query from most tests 6ed337faa Update several tests to remove .query e579ff953 Simplify pairlock querying ae361e1d5 Update more .query usages 8865af910 Remove .query from pairlock aa54b7770 Rename _session to sessoin 8073989c9 Remove more usages of .query d45599ca3 Fix some type errors b469addff remove usage of .query from regular models 47ab28525 Minor test fix 95ff59a21 Improve documentation for get_trades_proxy 7e08e3a59 Update example to use get_trades_proxy 8f29312c9 Minimum re-entry stake should not include stoploss 5c280d564 Improve emergency_exit handling b23cea6e5 Bump ruff to 0.0.255 487469680 Use correct exception type for ccxt.InvalidOrder 8fd13933c Improve variable naming cf70deaf8 Disallow negative liquidation prices 3d31eca36 Update Exception to contain more info d723979c4 Move total_trades to explicit variable f3a1177ba bring inc back ad5afd304 Bump uvicorn from 0.20.0 to 0.21.0 0e663a5bf Refresh binance cached leverage tiers 10c5adfa5 Bump fastapi from 0.92.0 to 0.94.0 dc6af9a1a Bump urllib3 from 1.26.14 to 1.26.15 82707be7d Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1 b800f2709 Bump mkdocs-material from 9.1.1 to 9.1.2 31daf72cc Bump mypy from 1.0.1 to 1.1.1 22ebf04da Bump pytest from 7.2.1 to 7.2.2 52a091e06 Bump pydantic from 1.10.5 to 1.10.6 fbca8e658 Allow empty pairlock reasons through api a10f78e3e fix increment in case of 0 f584edf80 Improve tests by simply running a full strategy through everything f5848ea89 Add test for successful_buys b5c4f9ebe Split updater_tests to be clearer 0911cd72a Add test for strategy-updater start method d2a412d2c Simplify start_strategy_update cb086f79f Improve doc wording and command parameters 5bfee44bb Whitespace fix aa283a044 Fix None limit on pair_candles RPC call 82cb10752 add tensorboard category b23841fbf Bump ccxt to 2.9.12 8726a4645 Don't use deprecated Type construct 59d2ff3ff Simplify `handle_cancel_exit ` 39c651e40 Remove pointless reset of close_profit a2336f256 Add profit descriptions a76ca771f telegram: Fix sending telegram message with exception a3988f56b Sorry matthias, did not see that you already committed something and did overwrite you. Added your version to it instead of mine and pushed again (since it was already overwritten by me). bfc7f48f1 added checks for python3.8 or lower since ast_comments.unparse() needs python 3.9 or higher. testing with python 3.8 would make the build fail tests, skipping it there. d3a3ddbc6 Check if exchang provides bid/ask via fetch_tickers - and fail with spread filter if it doesn't. 30fd1e742 Add 3.8 block for strategyUpdater d10ee0979 ensure training_features_list is updated properly 0318486be Update stoploss_from_open documentation for leverage adjustment 85e345fc4 Update BaseReinforcementLearningModel.py 29d337fa0 ensure ohlc is dropped from both train and predict 2c7ae756f Improve mock behavior d9dc83177 allow user to drop ohlc from features in RL 85e64cd12 Bump ccxt from 2.8.98 to 2.9.4 d779d6081 Expose total_profit_ratio through API c4a80e33e Fix missing newline in telegram /status cab1b750b Improve test accuracy 9d285e3dc Add total_profit_ratio to telegram output fff08f737 /status msg - improve formatting further ca789b328 /status - whitespace 11eea9b4e Fix formatting for /status Realized profit de015a2d7 Improve telegram message formatting 0fe72510d Bump pymdown-extensions from 9.9.2 to 9.10 25fd4a04d Update sqlalchemy QueryPropertyDescriptor to match latest version 9750e9ca4 pre-commit python-dateutil a57b03374 Bump types-python-dateutil from 2.8.19.9 to 2.8.19.10 48e16f6ab Bump sqlalchemy from 2.0.4 to 2.0.5.post1 d1d9e25c2 Bump mkdocs-material from 9.0.15 to 9.1.1 57969f8b0 Bump prompt-toolkit from 3.0.37 to 3.0.38 8484427cf Bump cryptography from 39.0.1 to 39.0.2 f4c17be8d Bump ruff from 0.0.253 to 0.0.254 0bdd238d7 Bump orjson from 3.8.6 to 3.8.7 b072fae50 added strategy-updater compartment inside utils.md d0d6f53de fixed github formatting errors d80760d20 bump ccxt to 2.8.98 108a57877 Update tests to latest rpc changes 9444bbb6f `/maxentries` should be in single tics. 7c0c98a36 Properly format first entry value, too. c1d395a7d Revert "Bump ccxt to 2.8.88" 3f6795962 Update bybit orderbook test 60e651b48 Updat bybit ohlcv data to v5 548db1885 Improve wording on partial exit notifications aec11618c Telegram improved formatting f0cbb4f94 Expose relative realized profit 027e02344 Stop from open with leverage 51c15d894 Bump ccxt to 2.8.88 b262f0b37 Update docs re: bot_loop_start in backtest a3dee9350 Move bot_loop_start call to run on every candle d0045673f Add explicit test for stoploss_from_open 87b751340 fixed --strategy-list moved ast comments to requirements.txt >=1.0.0 (since that is the first version that adds the comments unparsing) c03c3a570 improve order REPR display 9573974c4 Update deprecations document 022f85095 Show Number of exits 5b0c14371 Update some comments about 3.11 5d0e14b56 Don't mock full modules 38050b534 Simplify "model-run" conditions b1a5776f1 Skip reinforcement learning for python 3.11 7a7f16b65 Skip catboost tests on py3.11 684d310ea Limit catboost to python <3.11 49bfa556b Update CI to test against python 3.11 103bd9e2f keep Trade.session private ba38a826e Update missing mocks 8103656ae Bump mypy in pre-commit b980f45b2 Fix test mypy errors b4b8dde4f Add sqlalchemy to pre-commit dependencies 59d57d346 Improve test resiliance f0f72fdd3 Don't define "mapped" on LocalTrade class 388dfec50 Remove last type error 874413ccc Fix some style violations 4a35d32b6 Improve trade stop types a1166b107 allow null fee on calc_base_close e5c9cde36 Update trades_proxy typing b5f55c9b1 Improve type safety in backtesting 7c09c0178 Add some more typehints 0f914cf2b Use Mapped for LocalTrade d175ab495 Move SessionType to base module f2f415897 Bump sqlalchemy to 2.0.4 764001a4c Don't reuse variable b65cff0ad Update "Query" type db4f4498d Experimentally type query property ... c2c039151 Improve typesafety around trade object 8765e3a4d Fix some Type issues f6b3998bb Fix backtesting type incompatibilities 0691bbaad Update some db types 101d9ab87 Improvements - tests runnable again 65a5cf64d Re-type session 608a7c2d3 Add safe_close_rate e59eaf33e Update _session to session 47b66f322 More fun with types 491f49388 "Mapped" for trade_model bb116456a Update Types for Order object 13b1a3e73 Properly pairlock columns using mapped 98791752a Update TradeModels to mapped_column 0bd9b0013 Pairlock to mappedColumn 39a658eac Update DeclarativeBase 3c019e0e1 tentative augmented typing of Trade object 41e27ba62 Enhance some type info 3a9d83f86 Mypy: define sqlalchemy plugin 9d455f58b Improve some trade model Types 829e10ff8 Improve Type for models.py b62830031 Dummy-type query objects a553a9923 Update types for pairlock a629d455f Bump sqlalchemy from 1.4.46 to 2.0.3 feabed30a Update remaining exchange mock occurances 2ca8b0b12 Update more exchange mocks to use EXMS bcdf4e0fe Use variable for exchange mocks to shorten lines 78e5ec13b Use absolute path for generic mocks 8b51f5f56 Lowercase exchange ID d1b2e38ae if a stoploss order exists, always allow canceling that dd10dec73 Improve variable wording f822f1795 Reduce `/status` verbosity 386915378 Improve /status message (show Total profit) 2f1c5cf14 Remove pointless pylint rules 3706d2812 use pytest.approx in favor of "prec_satoshi" ... 0707e7018 Remove deprecated current_profit from api responses bebee15d1 Improve TradeSchema readability 262f03bc9 Add backtest warning for market_direction feature 9a5b09089 pre-commit cachetools 5a3f23f00 Bump types-cachetools from 5.3.0.0 to 5.3.0.4 deca5479f pre-commit dateutil-types 594757d27 Bump types-python-dateutil from 2.8.19.8 to 2.8.19.9 fed5d87cf Bump xgboost from 1.7.3 to 1.7.4 adf5b7f23 Bump ccxt from 2.8.17 to 2.8.54 1b4c83146 Bump prompt-toolkit from 3.0.36 to 3.0.37 78e7ab92d Bump plotly from 5.13.0 to 5.13.1 6e45e998a Bump pre-commit from 3.1.0 to 3.1.1 a75e9f193 Bump ruff from 0.0.252 to 0.0.253 0899e5cb8 Improve documentation wording 39331b59e Fixed issues raised in PR 65d1598a9 Show absolute profit in /status command 46b987042 Include realized_profit in api output 75d1dd279 Properly round Stake currencies in telegram message e5c68661f Simplify code line wrapping e482feed7 Further improve behavior for telegram /status with stop on exchange 87fe4108a Fix order numeration to also work with stoploss on exchange 02c831a4e Improve Note wording bcd416c83 Removed unresolved FreqTrade typehint 1d5608d62 Fix last_process related bug in RPC.health 81bc515e5 Bump tabulate types for pre-commit 201522f1b Bump types-tabulate from 0.9.0.0 to 0.9.0.1 48b21d00d bump pre-commit requests e83eefb71 Bump types-requests from 2.28.11.13 to 2.28.11.15 05f388472 bump pre-commit dateutil a4423778d Bump mkdocs-material from 9.0.13 to 9.0.15 2a7f86bfb Bump ruff from 0.0.251 to 0.0.252 7add902bc Bump pre-commit from 3.0.4 to 3.1.0 cc78054b8 Bump types-python-dateutil from 2.8.19.6 to 2.8.19.8 533f97f08 Bump pydantic from 1.10.4 to 1.10.5 5b0bc5bbc Don't "fix" dry-run kucoin orders 6f7ab97fc Improve bybit test coverage 27676f4aa Add explicit bybit test 79dc972e5 Add explicit test for kucoin e88bb4e05 Revert small change - otherwise the data is never updated. 305eda74e Enable Complexity for ruff 84d905a64 Fix missed test 32ce81988 Removed environment.yml and updated documentation 26315b6bc add PTH ruff selection d014e4590 use Path.open() instead of open c8a4a773e Fix _pairs_last_refresh_time storing the wrong date ff3aa7c1a Bump Version to 2023.3.dev be352ae01 Update more enums 563742f13 Fix enum behavior for python 3.11 7bcae7b66 removed redundant dependencies from environment.yml cb80d7c26 close the multi_proc env before creating new ones in an attempt to avoid increasing processes 6b829d839 Improve ruff config bf968a9fd Use actions as documented b4ea37d59 Remove flake8 in favor of ruff 549a0e1c4 Add ruff linting - initial configuration 2bc9413be Fix minor stylistic errors e6766b9b8 Add bt-error to UI backtest method. 75bc5809a Better handle backtest errors 986bc63e5 raise OperationalException if latest historical data candle is older than earliest dataprovider candle fd4e27d88 remove populate_any_indicators 2261cbd92 fixed command regex and updated documentation 3033e2746 Added documentation for new telegram command 8927a92ea fixed lint issue 5fb539190 addressed some issues mentioned in PR ade64f25d fixed formatting 72af1912c added new text bcef00ede changed to ast_comments, added tests for comments. 06edc5c04 changed to ast_comments, added tests for comments. b73089deb fixed a test a3cc001f1 initial commit 4435c4fd0 removed prints for strategy could not be loaded Changed logic to contain much less if conditions ed55296d2 removed prints for strategy could not be loaded Changed logic to contain much less if conditions 3cbe51c3c remove duplicated line dc2566846 handle data gaps between FreqAI and DP better 71ec32ac9 removed prints for strategy could not be loaded changed back to ast, astor is not really needed. 0817e1698 requirements thinned out again StrategyResolver.search_all_objects(enum_failed) set to False since we got no use in True shortened update_code call added modified_code8 test which currently still fails. (and thereby is commented out) 61d7129d7 Update freqtrade/commands/strategy_utils_commands.py df25dbc04 Don't require a configuration for strategy-updater a712c5d42 Improve if formatting e89609dc3 Fix crash due to invalid parameter 66f7c9135 Adding tests added more code inside NameUpdater to grab more variables. 762dd4f02 Adding tests added more code inside NameUpdater to grab more variables. a51e44eea Adding tests 82218d01f sped up the function generic_visit that now skips unnecessary fields added mentioning of skipped class names since they could not be found c6f045afa fixing issues of the maintainer found a bug meaning elts could contain lists of elts (now recurively gone through) 70e9fa613 implementing the strategy_updater in a first version ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 3 years ago

FreqAI - 2023.2

Highlighted changes

  • Added support for Bybit futures.
  • Add cancel-open-order RPC endpoints (telegram, freqUI).
  • Stoploss on exchange orders on futures markets can now use different price types.
  • Convert limit orders to market orders (simulating marketable limit orders) if price crosses spread by more than 3%.
  • Updated systemd package to cysystemd to ensure compatibility with new python versions.
  • Show error in freqUI if backtest through UI failed.
  • FreqAI
    • Add shuffle_after_split option.
    • Updated purge_old_models to take an integer, defining the amount of models.
    • Add buffer_train_data_candles to add a buffer before/after the actual timerange.
    • Removed follower_mode. Please use producer/consumer mode instead.
Important reminder

Freqtrade/FreqAI is an open-source project without token offering. freqtrade does not have a domain besides the freqtrade documentation https://www.freqtrade.io/.

Please be cautious of any projects (scams) using the name of freqtrade/freqAI with malicious goals (e.g. to sell you tokens).

How to update

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

docker-compose

bash 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 ``` 25724ef72 Version bump 2023.2 dc2cfee05 Don't request sorted candles from HitBTC. c6455c413 Pin scikit-learn to <1.2.0 for conda as well 3471f5204 Don't reuse variable c283e2232 fix purge_old_models description in parameter table 5ac4b81a5 fix link in freqai index.md 34c42be74 Fix minor stylistic errors 659140e19 Add bt-error to UI backtest method. 63e5d3302 Better handle backtest errors 7d906fd4c refactor(if-gate): use temp variable instead of if-gate 23a71680d Update Doc-box typo 150b7f9c8 lighten the disclaimer message b8f011a2a give users ability to decide how many models to keep in dry/live 9633081c3 remove remnants of follower, clean data-drawer, improve doc 0f878daa9 Remove some too generic noqa statements 01d51aa97 Add necesary noqa statements f8fa5bd96 Fix gone wrong noqa ... 18bbfa10e Reduce amount of variables for API backtesting ff1258fd2 Better handle random UI backtest errors 3fbbc57a3 add imposter disclaimer to FreqAI front page 070a7efd7 * fixed filename in model_exists 2b5c11c7b allow users to buffer train data with buffer_train_data_candles parameter 62e120a60 Remove special treatment of cryptography for raspberries 48ecc7f6d Update freqai-reinforcement-learning docs 43962476a Remove non-working links, update links to https a4a3d27ac Improve FAQ page f4bd42422 Remove deprecated ubuntu image af137188f Update wrong FAQ entry 789c867c8 Fix outdated systemd related exception text. 250faf012 Bump types-requests for pre-commit 0cd28e2ca Bump mypy from 1.0.0 to 1.0.1 eb08ef6ce Bump types-requests from 2.28.11.12 to 2.28.11.13 a4e69574d Bump ccxt from 2.7.93 to 2.8.17 c85fc6c8c Bump mkdocs-material from 9.0.12 to 9.0.13 f19128ad2 Bump fastapi from 0.91.0 to 0.92.0 2ef656fac Bump scipy from 1.10.0 to 1.10.1 e9c64c583 Update dependency to cysystemd f89b63b0c Fix dry-run stoploss orders filling "in place" after restart. 2c0fbd850 Simplify test slightly 31c7b3e13 Update binance leverage tiers 22700527a Convert limit orders to market orders if they cross a threshold 960003968 Update dry-run fill method naming 35fe37199 fix minor typos 351c5fbf7 add shuffle_after_split to conftest be85ef270 add documentation for shuffle_after_split, add to constants 36d65e00f generalize model_exists() for RL and Keras a2e138994 Update Binance leverage code 8ef110cc5 Rename ob variable to orderbook de7d274fc Pass orderbook to dry-run fill logic 7c1092156 Improve Orderbook typing to align for diff. exchanges 020c9a5ce Update freqai.md ecff21ac2 type Orderbook 3397e47cc Rename stoploss() to create_stoploss() 6e55a873b Rename edge.stoploss to get_stoploss bddec476f Fix missing typehint in hyper.py cdd324d0a Rename stoploss_reached to ft_stoploss_reached ce7d24f52 Extract ft_stoploss_adjust to seperate method 69d545946 Improve stop behavior in SIGTERM cases (docker). 9061c04f1 Bump ccxt from 2.7.80 to 2.7.93 f3a689787 Bump Docker images to latest minor version f16fd0ad2 Reenable binanceus active test f681ee794 Bump aiohttp from 3.8.3 to 3.8.4 50a9df9b2 Bump aiofiles from 22.1.0 to 23.1.0 2a87ad044 Bump tensorboard from 2.11.2 to 2.12.0 d14283b0e types-requests - precommit 9faa92680 Bump fastapi from 0.89.1 to 0.91.0 48c331785 Bump mypy from 0.991 to 1.0.0 bbb62c8a4 Bump types-requests from 2.28.11.8 to 2.28.11.12 b05999f6d Bump orjson from 3.8.5 to 3.8.6 ee209e3b4 Bump mkdocs-material from 9.0.11 to 9.0.12 b95ff827d Typo on freqai docs a3b4678ad stoploss_price_type for gate bedd3688d Properly format proxy configuration c229ba97a Update gateio terminology to Gate 07e6932a1 Reenable longrun test mark 73992dde8 Add explicit warning that supported price types gonna differ on each exchanges 45e24d21d Bump ccxt to 2.7.78 f440d6621 Add sample_order for gate 8873a565e expose raw features to the environment for use in calculate_reward 154b6711b use function level noqa ignore 4fc0edb8b add pair to environment for access inside calculate_reward d47d8c135 Add windows wheel for ta-lib on python 3.11 8d156b277 Bump ccxt to 2.7.66 3d22ad36b Show Config should contain stoploss-on-exchange status 102c1e799 realign binance set_leverage override 980ffa6bf Add test for binance rounding leverage 997df2032 Add response_log for set_leverage d19ee9c95 Update okx position mode terminology e2d81b0ce Skip binanceus ccxt test c15e10fe1 Improve logic for initially placed stoploss 67a2cd708 Bump cryptography from 38.0.1 to 39.0.1 5a61e076d Remove unused import 953be8a7f Split validate_order_types to 2 functions to allow selective application 8c0c2496c Temporarily disable gate advanced stop orders 81619fb4a Properly use sqlalchemy column types a6adcb485 Bump several pre-commit hooks versions b6eb1f939 Bump pre-commit c6601cbd8 Bump pymdown-extensions from 9.9.1 to 9.9.2 f96cb4772 Bump numpy from 1.24.1 to 1.24.2 365522f5c Bump types-cachetools from 5.2.1 to 5.3.0.0 8dde7ab6b Bump ccxt from 2.7.12 to 2.7.45 e964377ed Add new field to full config d904e9166 Add documentation for new setting 61ba1a0dc Pin telegram in conda environment to <20 b8a527e4a Add gateio price type field 3497de3dd Add more validation cf9e99b8e Add tests for ordertype validation 2738c3784 Test stoploss validation ... c4fc81161 Add stop_price_type support (futures only!). a9241f61f Add Price Type Enum e38e41ab9 Bump isort from 5.11.4 to 5.12.0 e3f0e66b9 Bump technical from 1.3.0 to 1.4.0 b80d196d5 Bump pre-commit from 2.21.0 to 3.0.4 c61995aad Bump plotly from 5.11.0 to 5.13.0 34711eb68 Bump nbconvert from 7.2.8 to 7.2.9 5ed06cd79 Bump mkdocs-material from 9.0.8 to 9.0.11 801714a58 Update function signatures in all templates 0dd247238 add metadata param to docstrings e569f6f6d add explicit metadata argument to example strat, include it with backtesting 5da60b718 pass metadata dictionary to feature_engineering_* and set_freqai_targets functions. Add doc 55850a5cc Skip orders when correlated trade was deleted. 02c0f91f4 fix: removes duplicated if branch 3fd6d7298 setup.sh: fix truty/falsy return of check_git_changes() ef1738fbf Remove follow_mode from docs 618eb951d Add ft_bot_start to notebook docs 330461cf1 setup.sh: checks if git directory is dirty before bothering user with potentially scary question b7787a984 [kucoin] manage kucoin numeric password passed as environment variable as a string b4c3e1fd5 `order.amount` -> `order.safe_amount` 36f95fb35 Make test for `None` explicit ccb4efbe8 remove follow mode in favor of producer consumer ba7883f54 Update README.md ceaaac6c3 Improve install sequence to install ta-lib after user interactivity 21618594b Update setup.sh queries to not ask redundant questions d8583ab6e Bump setuptools in setup.sh 7569e72f5 Bump setuptools from 65.5.0 to 65.5.1 1e12e888d Update README.md 322d4b535 improve fix for setup.sh 72a98943b bybit: Add correct funding_fee_timeframe 9bb376296 Update parse_order test 839215c43 Fix Doc box error 8a0fabed0 Ensure we don't overwrite valid values by invalid exchange responses 680136f57 Add workaround patch for kucoin create_order returning empty 448505fbf Fix minor issue where amount could be empty in rest calls 50d3b7bde Add bybit sample order 42f07e6ec Improve order_parse tests 6012a5582 Improve test 9cfbb21cd Improve error messages bbc663fce Add telegram test 1c47c118d Add cancel-order api test daafc1c90 Update test and help bd2839fa4 Reorder documentation e291d1bb1 Document telegram /coo command 1bdc0e391 Add coo command to telegram 152aa994a Fix test baf2090f9 Just change the docs 592eebe51 Add to setup 8b307357f Add to setup 5073c780d .agg would like strings, not the sum function. 2c1457fb9 Ensure limit is integer (on server) 1dc3c5877 Convert missing candle count to int 410324ac1 time-jump detection should happen on the trimmed dataframe 9e619ecc5 Update rest api documentation 03302fa0b Add cancel_open_order to rest script c43e857cb Bump API version c855e2d79 Add delete open order endpoint a704c4340 provide cancel-reason to handle_cancel_order 2b09f0129 Fixes gym issue 5a7008f37 rename handle_timedout to handle_cancel_order 3cb9cc63b add pyarrow-11 rpi wheel file 2593a929d Bump version to 2023.2.dev 411ad5641 Bump pyarrow from 10.0.1 to 11.0.0 0dd852516 Bump mkdocs-material from 9.0.5 to 9.0.8 2fea23d31 Bump lightgbm from 3.3.4 to 3.3.5 f6ba0fe6a bybit: fix broken ccxt tests 7294db81e Bump ccxt to 2.7.7 d1b069abf bybit: Update test to align with defaultType change fa033965c use "swap" for bybit 08ede3779 Add documentation note about stoploss on exchange 8665d0866 Add test for bybit startup magic 1431f7cc3 Set position mode to one-way on startup 73ef1d519 Improve exception wording on binance c12fb1a49 bybit: Some final cleanup 25fa6bee7 Override get_funding_fees for bybit 051c3be99 add test case for bybit 3a83427f9 Add Bybit stoploss support c14553bac Add bybit to supported Futures exchanges c2b33a0f5 Fix set-leverage function sig 7a18e9604 bybit: hot-fix funding fees (temporary - must be changed) f681ce913 Allow margin and leverage setting failures 31745a9dc bybit: Initial implementation liquidation calculation 93ce963e9 Update test name 752110a26 Add online tests for bybit d05ecd630 Update tests for new liquidation parameter 34e743384 Add leverage to dry-run liquidation price calculation a7b030fff Add note about bybit futures 3192af8df Limit bybit futures markets to USDT 63c732a56 Bybit futures data download 75804a7f8 Bump stable-baselines3 alongside with sb3-contrib. a77fdb159 Bump sb3-contrib from 1.6.2 to 1.7.0 c9bc91c75 add shuffle_after_split option ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 3 years ago

FreqAI - 2023.1

Highlighted changes

  • New backtesting metrics (Sharpe, Sortino and calmar ratio).
  • Improved backtesting speed while keeping high precision with --timeframe-detail.
  • New analysis group for backtesting-analysis to analyze only exit tag performance.
  • New hyperopt space ("trades") to optimize max_open_trades.
  • Allow loading plot-configuration from strategy in freqUI webserver mode.
  • Breaking change for binance-futures users. Naming is now aligned to other futures exchanges, following the base/quote:settle approach. Freqtrade will take care of the data and database automatically - however it's important that you adjust an eventual static pairlist (don't forget your blacklist!). it can also impact strategies that hard-code pair names (like informative pairs).
  • FreqAI:
    • Revised freqAI strategy interface. Make sure to familiarize yourself with the new methods! Follow the FreqAI Strategy migration guide to migrate to the new interface.

:warning: kucoin users should either stick to 2022.12, or update to the latest develop version. This version is known to not work with kucoin.

How to update

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

docker-compose

bash 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 ``` 4853cc127 Version bump to 2023.1 ede79590d Update ccxt compat tests with kucoin order fee7b792e Bump ccxt 507d3d6d9 Add ci for binance.us 25dfbb5a0 Compare stake amout >= in backtesting 9286cbed8 add partial Docstring to backtesting enter_trade c1e528e11 Version bump ccxt f7f936c14 Typo fix 020dc3c6e filled-date shouldn't update again aa1583758 Add test for filled_date not updating if it's already set 8647c0192 Fix typo 2333dbae4 Update reinforcement learning docs to use correct naming bd913bc24 Disable provenance in buildx config for pi image 9652c00ac Don't amend docker manifest 6c0fa0dc1 Fix typo in docstring 078b43082 Add ccxt compat tests for order parsing b0720fdcf Bump ccxt to latest version to fix timestamp parsing issues 7fc39eafb Bump ccxt from 2.6.39 to 2.6.58 14d9789f1 Bump types-dateutil for precommit d3fbd41f5 Bump types-python-dateutil from 2.8.19.5 to 2.8.19.6 73414e0fb Bump types-requests in pre-commit 673f5c325 Bump types-requests from 2.28.11.7 to 2.28.11.8 b104b54e6 Bump pandas from 1.5.2 to 1.5.3 13f6529cc Bump nbconvert from 7.2.7 to 7.2.8 0642a2768 Add missing bracket 58ad5a683 Fix wrong import order in script 79d0fd937 Update pyright config to align with mypy 741d2db33 Enable implicit_optional for telegram 795934116 Remove optional_untyped from config 2bf4cf7d5 Update scripts to PEP484 8108a48f3 Follow PEP 484 - no implicit optionals bb355cfac improve naming of backtest function 80bb12002 Simplify backtesting by removing now unnecessary private function 89eb1b008 funding-fees need to be recalculated for detailed timeframes, too. 1211b7225 Add test to show behavior reported in #7978 772800bf7 Fix bug in stake_amount adjustment 865d67830 Add backtest_detail test for futures 28e51e2df Simplify some test setups 58d48e79d Convert tests/datadir to path object - better mirroring an initialized configuration a5d87859d Refactor test to reuse variable 6e2260738 Add 5m futures testdata to support detail-backtest tests dbddc4c8a Improve wording on adjust_trade_position callback warning 20093ea09 Add warning about callback call frequency in backtesting 81349c2a0 Remove edge section from config template 07c391322 Remove edge from sample configs (except full). a398f4730 Add documentation note about RSA exchange keys a27e63a54 Bump ccxt to 2.6.39 892fb77ec Update mypy pre-commit hook 634b80f0e Add tests for plotconfig in ws mode 2298656e4 Bump api_version to 2.23 3216a05a9 Enable plot_config to work in webserver mode da0992f85 add Config typehint in rpc 00fa90442 update config-freqai-example to match latest binance futures pair syntax c8ecedf6d Clarify a variable via typehint 6a4fc33c3 Remove <3.8 bandaid 7092212ed re-add futures tickers quoteVolume assert 7713f343a Bump ccxt to 2.6.26 98dcab49a Add fetch_tickers test for futures b4fcda2c1 add aiohttp proxy 92a5efad0 Fix set_test_proxy usage b193d8418 Deepcopy config before adding proxies f46b62f1a Attempt to use and setup a proxy for CI 394a973bb Revert "Attempt to use and setup a proxy for CI" 48ae248d2 Attempt to use and setup a proxy for CI 8cfa5934d Catch AttributeError when importing modules 813724bd8 Add a new analysis group to output stats grouped by exit_tag 8de10e374 Bump mkdocs-material from 9.0.3 to 9.0.5 7f4883008 Bump pymdown-extensions from 9.9 to 9.9.1 a4b2dc30b Bump tensorboard from 2.11.0 to 2.11.2 8dce617ad Bump fastapi from 0.89.0 to 0.89.1 283c1968b Bump cryptography from 38.0.1 to 39.0.0 0296061e4 Fix version comparison to use packaging.version 178a4c886 Bump requests from 2.28.1 to 2.28.2 7785809f4 Bump pytest from 7.2.0 to 7.2.1 59e6f19dd Bump xgboost from 1.7.2 to 1.7.3 dc7b8ac7b Bump ccxt from 2.6.6 to 2.6.24 d24fce83d Bump orjson from 3.8.4 to 3.8.5 9b97ddd0f Bump urllib3 from 1.26.13 to 1.26.14 270eed7e1 Fail if detecting invalid ccxt version for binance futures ab12aace5 changed `trades_space` to `max_open_trades_space` b0f1d914c Changed max_open_trades type to int or inf ce323e66a Remove note about binance futures naming e14f2cc27 Add db migration test 5d4a247fa Add test for binance data migration cbcee02de call data migration from backtesting 1fc97a800 use Unified futures naming for futures throughout tests 9d1cf040f Update test leverage tiers 4ea8962ca Rename futures test data 47b50a8a2 Udpate binance leverage tiers to new pair format c93b265ec Run migration commands on certain data commands 0be0ef9e7 Remove duplicate binance test 0d1172ca4 Update binance future test e43b9b65f increase minimium ccxt version to 2.6.6 b024fafaf Use futures_pair in ccxt test correctly 5b3304189 trading_mode is not necessarily mandatory 183bf6819 Update binance pair naming in ccxt test 5ad664aac Update binance futures name to swap 9cb7d6c26 Run binance futures migrations on startup bfd7803fd Update freqai-reinforcement-learning.md ee7b505dc Add data migration method b1bfd7674 Add binance futures db migration 1cf69f139 refactor "--version" to use "pathlib" instead of "os" 9d647fd19 Fix websockets for dataframes with NaT entreis 684de1937 Fix link syntax to actually work 08748dd02 fix "--version": needs to change working directory 4abf06119 docs: fix broken link to quickstart 00dbc195a Update huobi ci to use BTC markets 2241f2429 moved deprecated warning to start function 67495530b Add FreqAI migration documentation 93aff9325 improve deprecation note a61274ae1 ensure cached corr-pairs works with new framework fbdda8cd1 Always pass Dictionaries to testclient post requests 3ca2dfc07 Bump httpx from 0.23.1 to 0.23.3 0aca0d20d Add some feature flags for mkdocs migration 43b49fef4 Bump orjson from 3.8.3 to 3.8.4 25fd1ea63 Bump mkdocs-material from 8.5.11 to 9.0.3 3b69745c3 Bump ccxt from 2.5.46 to 2.5.56 79fe8fd85 Bump fastapi from 0.88.0 to 0.89.0 d32d70d2e Bump sqlalchemy from 1.4.45 to 1.4.46 c198ca296 Bump scipy from 1.9.3 to 1.10.0 2f0eb95d0 Bump lightgbm from 3.3.3 to 3.3.4 7d27afd4b Fixed test broken due to change in trades_space range ad4954194 Adapt Tests for new mandatory columns 305b067e4 Support having no Amount/Price available from the exchange initially fd694f14c Add new order columns, ft_amount and ft_price 10d8b016e Changed max_open_trades default range for optimization f77dffc95 align to develop 464cb4761 Fixed max_open_trades update from hyperopt 550ab2b8e Improve select_order to only consider filled where needed. 34dbe9dea Improve fixture fake results 1d5440ff7 Bump ccxt from 2.4.60 to 2.5.46 c7f485687 Fix ccxt test failure 7bf531c8b isort fix c1042996d flake8 fix 6198b2100 update calmar loss d3b1aa7f0 update sortino calc 157bf962f add missing imports 86ba7dae9 change sharpe hyperopt loss 787d292ba Move "drop_candle" decision to coroutine abdeb72eb fix tests d91ac8b66 improve wording in freqai doc bdf6537c6 Remove unused (and pointless) exchange method 4bac66ff0 Type ohlcv coroutine 75b0a3e63 Use dedicated type for OHLCV response 92800930e Improve backtest detail speed 5257e8b3e Fix random test failures on 3.8 ed99e7f85 fix corr_pairs startup candle count bug 8e5b4750d Continue in "regular backtest" case (no detail-data available). 647063575 In cases of no losing trade, sortino ratio can't be calculated. f2fa476dc max_open_trades should be an integer 801ab39a2 fix get dataframe data to include startup_candle 1c5e17268 docs update 5fd85368a Added support for max_open_trades hyperopting c384d1357 Update FreqaiExampleStrategy.py 6f031f005 Fix flake error 63db1fd89 Fix Backtesting Analysis Column Wrong 314c0925b fix get dataframe data to include startup_candle 73114b93c Update FreqaiExampleStrategy.py 2c430c806 Fix ROI table comma and spacing 52dfb0452 Update freqai-feature-engineering.md 724465c79 Bump pydantic from 1.10.2 to 1.10.4 488b4512e Bump time-machine from 2.8.2 to 2.9.0 d304f95c1 Bump filelock from 3.8.2 to 3.9.0 74b924471 type ccxt_compat tests cd7bd9bf9 Update gate liquidation price link 6498e352c Remove pointless default 97e8bb09e Update exchange documentation with note about leverage 5188464fc fix typo c8aa7720a added again feature check in BT from pred files b39fc6b92 remove add pair to column from docs, fix keyerror bug and adjust hybrid strategy example b2bab68fb move price assignment to feature_engineering_standard() to reduce un-requested feature additions in RL. Ensure old method of price assignment still works, add deprecation warning to help users migrate their strategies 798438df9 Extract funding-rate call to separate method 499cc5bae Better visualize downloaded candletype in debug mode 2e30bdb9b freqai bt - fix tests 2b89f643b adjust backtest to new feature engineering functions c78b2080c Add exception test for interest function 6ef15802e make tables an optional dependency 2805e83c9 Bump Develop version to 2023.1 6434bf674 Document new backtesting metrics 32bbe603c Fix sortino std calculation 6f7eb71bb ensure RL works with new naming scheme d5b516842 Fix 2 docstrings f21185d1c Add tests for new metrics c2936d551 improve doc, update test strats, change function names 8227b4aaf freqAI Strategy - improve user experience d60b38dad Bump tables from 3.7.0 to 3.8.0 6353f3ac1 fix formulas and implement new metrics 7a5439321 Show new metrics in backtesting 89c7c2fec isort fix 611e35ed8 flake8 fix f410b1b14 Update metrics.py ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 3 years ago

FreqAI - 2022.12

Highlighted changes

  • Enhanced Producer logic, reducing memory usage while improving performance (:warning: this is a breaking change - producer and consumer must be updated together).
  • --timeframe-detail now properly simulates all candles at detail timeframe, significantly increasing backtesting accuracy.
  • New pairlist RemotePairList - allowing a pairlist to be loaded from file or from an API.
  • Removal of deprecated trade.enter_side (use trade.entry_side instead).
  • FreqUI
    • Auto-refresh chart.
    • Order action notifications (fill / cancel).
    • Backtesting support for freqAI strategies.
  • FreqAI enhancements:
    • Reinforcement learning.
    • Improvements to Tensorboard logging.
  • JOSS paper has been accepted. Great job @robcaulk and everyone else involved in making this happen!

How to update

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

docker-compose

bash 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 ``` 8e8f71ade Version bump 2022.12 5cb8fe1a5 Add JOSS badge to freqtrade docs and readme.md c52910f28 Improve resiliance against invalid data 4d112def1 Remove binance AD from docs page cd4faa9c5 keep max_stake_amount through backtests 62c4675e2 Remove some deprecated fields from the API cb66663fd show max_stake_amount in API 55001bf32 Keep max_stake_amount (only relevant for DCA orders). 6f2c3e252 Split migration and persistence tests 20901c833 Improve `purge_old_models` explanation 882e68c68 Rename backtest-result from new to "not new". 6a15a9b41 Update backtest-result_new 1cef40a13 Bump numpy from 1.23.5 to 1.24.1 63f114395 is_short should be a boolean aaeeb8662 Bump ccxt from 2.4.27 to 2.4.60 c5b246af8 Bump isort from 5.11.3 to 5.11.4 00112d81d Bump types-requests pre-commit 9a556d263 Remove all mac conflicts 18709406c use link overwrite 9ea8792d3 Attempt brew fix 3993bd7c1 Bump types-requests from 2.28.11.5 to 2.28.11.7 e0f60e175 Bump pre-commit from 2.20.0 to 2.21.0 b1bf6d8dc Bump nbconvert from 7.2.6 to 7.2.7 ce13ce4b1 Update binance stoploss order types 524da3c7a Don't actually load models to avoid random failures ad0d7c9a9 Don't allow DCA trades to go beyond max order size 2a7369b56 fix macos CI 73792fd6c Don't attempt to convert None to dict 70531224e Allow setting identifier via UI 07606a9e2 Simplify APi backtest config merging 6d9f1fafb allow backtest_cache to be provided via backtest API 256fac2a2 Add test for freqaimodels endpoint 5dbd5c235 Add endpoint for freqAI models a119fbd89 Small error-message finetuning ebf60d85d self._init_done placed wrong. fixed 43f5a1600 parse exception handling, remove info, cache change 4bad2b5c0 Apply suggestions from code review 5b9e3af27 improve wording 5405d8fa6 add discussion and tips for Base3ActionRLEnvironment a276ef4b0 ensure long only RL is tested 86b30d2d6 Improve emc test resiliancy 0c8d657d9 update types-dateutil precommit fa87e0807 Bump ccxt from 2.2.92 to 2.4.27 7216d140d Bump torch from 1.13.0 to 1.13.1 06225b950 Bump types-python-dateutil from 2.8.19.4 to 2.8.19.5 d86885c7f Bump blosc from 1.10.6 to 1.11.1 b61fc161b Bump isort from 5.10.1 to 5.11.3 6380c3d46 reduce duplicate code, fix cache check bb33b96ba init cache on first iteration, init checks, limit length and charmap to info replace if invalid, move filter logic 1f4cc145c Move trade docs to advanced section eda72ef26 Add documentation for Order object a439488b7 Add initial trade_object documentation bad6fe77d Remove deprecated trade property 329a0a3f4 Update docs/freqai.md c293401b2 Add can_short to freqai base model e60404715 Enable RL tests on arm mac a8c9aa01f Add 3ac test 7727f3150 Add 3 Action RL env dde363343 Add can_short param to base env e4284f4e7 add citation to freqai doc. Update credits 36948e2a7 fix base4 env done condition 935275010 Remove some unused fixtures 32d57f624 delisted bibox following ccxt PR https://github.com/ccxt/ccxt/pull/16067 6fa3db3a1 Fix failing tests cd1b8b9ce single space removed for the unit test to pass.. 1d5c66da3 + Unit Tests 581a5296c fix docstrings to reflect new env_info changes 7b4abd5ef use a dictionary to make code more readable 7a0eadbdf Don't recalc profit on closed trades 33dce5cf1 Clarify partial exit calculation messaging ca2a878b8 Update test naming 3af2251ce Fix add_state_info backtesting bug 2018da076 Add env_info dict to base environment fa260e656 Move "replace or append" decision to dataprovider dac1c8ab8 fix isort 2285ca7d2 add dp to multiproc de19d1cfb fix doc minimal_roi 97fee3707 Improve emc test 7f3524949 - print d52c1c755 Add unit tests 1d92db780 Change CI to actually run one 2 randomized point. fed46d330 Revert "Bump scikit-learn from 1.1.3 to 1.2.0" c042d0146 Don't run gc_setup during tests 0dd3836cc fix rpc method docstring 1c0c4fd42 Improve test a693495a6 Improve external_candle aggregation 96edd3145 Test add_external_candle 414c0ce05 change unused var 6717dff19 update overlapping candle handling, move append to misc 0602479f7 minor changes, update candle appending to support overlaps f1ebaf473 fix tests 49f6f4066 remove comment 0d5b2eed9 fix same candle handling d376bf405 fix indefinite reconnecting ccd1aa70a change log calls to debug, handle already received candle c050eb8b8 add candle difference calculation to dataprovider 89338fa67 allow specifying channel send throttle d2c8487ec update add_external_candle, fix breaking on ping error, handle empty dataframes fce1e9d6d update analyzed df request to allow specifying a single pair 36a00e8de update add_external_candle returns 4cbb3341d change how missing candles will be handled 9660e445b use new channel apis in emc, extend analyzed df to include list of dates for candles abc3badfb Improve shutdown behavior 5c984bf5c Temporarily downgrade blosc for arm64 6f92c58e3 add docs, add bearer token. f940280d5 Fix tensorboard_log incrementing note f9b7d3590 add increment param for tensorboard_log f6b90595f remove html. change var names. de9784267 Bump filelock from 3.8.0 to 3.8.2 915e0ac62 Bump ccxt from 2.2.67 to 2.2.92 bc2b9981d Bump python-telegram-bot from 13.14 to 13.15 2647c35f4 Bump pypa/gh-action-pypi-publish from 1.6.1 to 1.6.4 034420337 Bump sqlalchemy from 1.4.44 to 1.4.45 5a7b493d3 Bump xgboost from 1.7.1 to 1.7.2 562564801 Bump pytest-asyncio from 0.20.2 to 0.20.3 a35111e55 Bump nbconvert from 7.2.5 to 7.2.6 63d3a9ced Bump prompt-toolkit from 3.0.33 to 3.0.36 434eec733 Bump blosc from 1.10.6 to 1.11.0 78c40f053 Bump scikit-learn from 1.1.3 to 1.2.0 0fd8e214e add documentation for tensorboard_log, change how users interact with tensorboard_log cb8fc3c8c custom info to tensorboard_metrics 8c7ec0795 ensure predict_proba follows suit. Remove all lib specific params from example config 85f22b5c3 fix bug in MultiOutput* with conv_width = 1 6b9f3f279 Fix test validation 980a5a9b5 Fix docs typo 1da8ad69d improve more tests by freezing time bbedc4b63 Stop clock to avoid random failures on slow CI runs 3d3a7033e Improve Docker documentation wording 74e623fe5 Improve kraken test resiliance 66412bfa5 Remove unnecessary loop 7efcbbb45 Local File Loading da2747d48 Add Local .json file Loading 7b3406914 flip add_state_info 9b4364ddc ensure that add_state_info is deactivated during backtesting b144a6357 Remove Duplicate 547a75d9c Fix Info 607d5b2f8 Split to fetch_pairlist function, Info Message 48160f3fe Flake 8 fix, Json Fetching 199fd2d07 +Remote Pairlist 58604c747 cleanup tensorboard callback 227cdb093 Change dict update order 26a61afa1 Move base tf logic to config validation bc48099e4 Revert changes 62c69bf2b fix custom_info 72472587d Increase test range for api version test 7c27eedda Bump API version 24edc276e Simplify new_candle message d30a872ed Move message-silencing list next to enum 687eefa06 Improve emit_df testcase 5e533b550 Emit a simple "new candle" message to allow UI's to refresh charts 189fa6405 Add more dynamic to directory change 730fba956 Ensure base tf included in include_timeframes e734b3992 Make model_training_parameters optional 102ab91fa Bump orjson from 3.8.2 to 3.8.3 179adea0e Bump ccxt from 2.2.36 to 2.2.67 82d4dca18 Bump mkdocs-material from 8.5.10 to 8.5.11 2eb8f9f02 Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.6.1 66bb2c525 Bump fastapi from 0.87.0 to 0.88.0 caae4441e Bump jsonschema from 4.17.1 to 4.17.3 441069f36 Bump pandas from 1.5.1 to 1.5.2 16bad8dca Bump pymdown-extensions from 9.8 to 9.9 133a081a3 Bump pytest-random-order from 1.0.4 to 1.1.0 d8565261e ignore initializer type 24766928b reorganize/generalize tensorboard callback f7b4fc5bb Update freqai-reinforcement-learning.md 38d3b4cab add details to doc plot_feature_importance doc b2edc5808 fix flake8 d6f45a12a add multiproc fix flake8 469aa0d43 add state/action info to callbacks 075c8c23c add state/action info to callbacks 7ddf7ec0a Update freqai-parameter-table.md 05424045b Temporarily disable since binance blocks US 77dc2c92a performance improvevemnts - backtest freqai from saved predictions 2b3e166dc fix fees RL eb81ccced add download-data command change directory fix relative config path 396e666e9 Keep old behavior of model loading 4a9982f86 Fix sb3_contrib loading issue 95651fcd5 Improve/simplify telegram exception handling 59c7ce02f binance restricted locations and server location 79821ebb3 fix flake8 errors e7f72d52b bring back market side setting in get_state_info 17cf3c7e8 bug fixes and removed fillna from fit_live_predictions 10a45474e Update data-analysis.md 4571aedb3 consolidate and clean code 3c322bf7d Improve forceenter validation messages 8ea58ab35 change BT prediction files to feather format b87545cd1 Bump torch from 1.12.1 to 1.13.0 5500c10f7 Improve CI file layout 2c75b5e02 Extract "live" test from regular tests 8efa8bc78 Update stable-baselines3 to 1.6.2 e891c4176 Fix typo in ipynb, too. 9cbfa1201 Directly set model_type in base RL model 05a7fca24 Fix utils docs for backtesting-analysis 9880e9ab6 Fix typo in strategy_analysis_example.md dc03317cc Bump jsonschema from 4.17.0 to 4.17.1 d73fd4276 Fix flake8 error introduced with 6.0 update 9c28cc810 Bump cryptography from 38.0.1 to 38.0.4 348731598 Bump ccxt from 2.1.96 to 2.2.36 a46b09d40 Bump prompt-toolkit from 3.0.32 to 3.0.33 924bbad19 Bump pyarrow from 10.0.0 to 10.0.1 5aec51a16 Bump urllib3 from 1.26.12 to 1.26.13 7e75bc8fc Bump sb3-contrib from 1.6.1 to 1.6.2 49e41925b Bump flake8 from 5.0.4 to 6.0.0 f21dbbd8b Update imports of custom model 56518def4 isort 7fd6bc526 add randomize_starting_position to the rl_config 25e041b98 sneak in small change to FreqaiExampleHybridStrategy docstring and startup count 64d4a52a5 Improve the RL learning process 67d946927 small wording fix a02da0806 Fix typo 320535a22 improve tests doc wording a85602eb9 add "how to run tests" 5b5859238 Fix typo fe00a6516 FIx custom reward link cf000a4c0 Bump develop version to 2022.12-dev e4a3efc7d Don't use strategy.stoploss too often 1a3f88c7b Replace separate start/end date option with usual timerange option 51d21b413 Fix 4ac update_total_profit 4790aaaae Implement cli options for backtesting-analysis date filtering a26b3a9ca change sleep call back to 0.01 b52f05923 fix list to array in constants.py be890b52f remove np import aaaa5a5f6 add documentation for net_arch, other small changes fcf13580f Revert "offload initial df computation to thread" 7b0a76fb7 Improve typehint 7ebc8ee16 Fix missing Optional typehint 8660ac9aa Fix import in docs cf2f12b47 Headers between Tables -> Tables can be jumped to directly bdfedb5fc Improve typehints / reduce warnings from mypy 81fd2e588 ensure typing, remove unsued code 8dbfd2cac improve docstring clarity about how to inherit from ReinforcementLearner, demonstrate inherittance with ReinforcementLearner_multiproc 9f13d99b9 improve parameter table, add better documentation for custom calculate_reward, add various helpful notes in docstrings etc bd95392ee fix formatted string in warning message :) 4aa4c6f49 change sleep in channel send to 0 f268187e9 offload initial df computation to thread afc00bc30 log warning if channel too far behind, add docstrings to message stream 391817243 Tidy up complex functions fc59b0225 prevent ws endpoint from running without valid token 101dec461 close ws channel if can't accept 2e82e6784 move data_provider cleanup to shutdown() 73c458d47 use importlib instead of __import___ 00d2a01bf isort 3a07749fc fix docstring 8855e36f5 reduce freqai testing time by reducing retrain frequency and number of features 44b042ba5 remove unused function 8f1a8c752 Add freqairl docker build process e5fc21f57 Fix broken table rendering 3d26659d5 Fix some doc typos 48242ca02 update catch block in cancel channel tasks d09157efb update code to use one prediction file / pair a5442772f ensure only broadcasting to subscribed topics c01f25ddc update code to freqai_backtest_live_models only from historic predictions d9d7df70b fix tests, log unknown errors d2870d48e change typing to async iterator 48a1f2418 update typing, remove unneeded try block, readd sleep 60a167bde add dynamic send timeout fdc82af88 fix tests - update code to backtest with historic_predictions 3714d7074 smaller throttle in channel send c1a73a551 move sleep call in send, minor cleanup 80d070e9e update code to use historic_predictions for freqai_backtest_live_models d02da279f document the simplifications of the training environment 0cb6f71c0 better error handling, true async sending, more readable api 61a859ba4 remove tensorboard req from rl reqs 60fcd8dce fix skipped mac test, fix RL bug in add_state_info, fix use of __import__, revise doc 3903b04d3 save_live_data_backtest - added docs and tests 99bff9cbf backtesting_from_live_saved_files - code refactoring 913749c81 backtesting_from_live_saved_files - code refactoring b01e4e3db change default value - save_live_data_backtest as false 442467e8a remove old comments and code d713af045 remove main queue completely 659c8c237 initial revision bf4d5b432 ensure model_type is defined 6394ef455 fix docstrings c8d3e5771 add note that these environments are designed for short-long bots only. c76afc255 explain how to choose environments, and how to customize them 96fafb7f5 remove limit_ram_use b421521be help default ReinforcementLearner users by assigning the model_type automatically 90f168d1f remove more user references. cleanup dataprovider f8f553ec1 remove references to "the user" 388ca2120 update docs, fix bug in environment 3c249ba99 add doc for data_kitchen_thread_count` af9e40056 add test coverage, fix bug in base environment. Ensure proper fee is used. 81f800a79 switch to using FT calc_profi_pct, reverse entry/exit fees 259f87bd4 fix rl test; e71a8b8ac add ability to integrate state info or not, and prevent state info integration during backtesting 27fa9f1f4 backtest saved dataframe from live 7adca9735 Improve python GC behavior 9c6b97c67 ensure normalization acceleration methods are employed in RL 6746868ea store dataprovider to self instead of strategy 6ff0e66dd ensure strat tests are updated 4f0f3e5b6 removed unnecessary code 8ee95db92 refactoring backtesting_fit_live_predictions function 3e57c18ac add fix_live_predictions function to backtesting 8d9988a94 enforce date column in backtesting freqai predictions files 9c5ba0732 save predictions with date and merge by date 2c1330a4e Update docs to new behavior ded57fb30 Remove no longer valid test part d089fdae3 Fix current-time_det calculation 5bd3e54b1 Add test for detail backtesting 0888b53b5 Udpate current_time handling for detail loop 29ba263c3 Update some test parameters a11d579bc Verify order fills on "detail" timeframe a2843165e fix leftovers from merge 51b410ac1 Update utils.md 8c39b3722 Update bug_report.md 35cc6aa96 Update data-analysis.md 67850d92a Update question.md fe3d99b56 Update feature_request.md 11d6d0be9 Update sql_cheatsheet.md abcbe7a42 Update updating.md d42722690 Update docker_quickstart.md 8d7adfabe clean RL tests to avoid dir pollution and increase speed 3e258e000 Don't set use_db without resetting it b9f1872d5 Install RL dependencies as dev dependency e5204101d add tensorboard back to reqs to keep default integration working (and for docker) 488739424 fix reward inconsistency in template 017e476f4 add extras to setup.py for RL cf10a76a2 bring back Trades.use_db = True 17fb7f7a3 gym needs 0.21 to match stable_baselines3 ab4705efd provide background and goals for RL in doc b5dd92f85 remove RL reqs from general FAI reqs 936ca2448 separate RL install from general FAI install, update docs 8c7f47872 Update requirements-freqai.txt 292d72d59 automatically handle model_save_type for user cf882fa84 fix tests ab9d781b0 add reinforcement learning page to docs 6e74d4666 Ensure 1 thread available 7ef56e302 Ensure at least 1 thread is available 555cc4263 Ensure 1 thread is available (for testing purposes) dcf6ebe27 Update BaseReinforcementLearningModel.py 83343dc2f control number of threads, update doc 099137ada remove hasattr calls 9e36b0d2e fix formatting caa47a2f4 close subproc env on shutdown 647200e8a isort 77c360b26 improve typing, improve docstrings, ensure global tests pass 9c361f442 increase test coverage for RL and FreqAI 95121550e Remove unnecessary models, add model arg f7dd3045f Parameterize backtesting test f5cd8f62c Remove unused code from BaseEnv 1c56fa034 add test_models folder 7295ba0fb add test for Base4ActionEnv f6e9753c9 show advanced users how they can customize agent indepth` eeebb78a5 skip darwin in RL tests, remove example scripts, improve doc 7b1d409c9 fix mypy/flake8 d056d766e make tests pass 025b98dec bring back doc sentence 3b97b3d5c fix mypy error for strategy 8aac64400 add tests. add guardrails. 48140bff9 fix bug in 4ActRLEnv 27dce20b2 fix bug in Base4ActionRLEnv, improve example strats 240b52953 fix tensorboard path so that users can track all historical models 2493e0c8a Unnecessary lines in Base4, and changes for box space, to fit better for our needs (#7324) 1a8e1362a There was an error in the docs around continual learning and thread count (#7314) 67cddae75 fix tensorboard image af8f30858 start the reinforcement learning doc 7766350c1 refactor environment inheritence tree to accommodate flexible action types/counts. fix bug in train profit handling 8c313b431 remove whitespace from Dockerfile baa4f8e3d remove Base3ActionEnv in favor of Base4Action cdc550da9 Revert the docker changes to be inline with the original freqtrade image d31926efd Added Base4Action 3199eb453 reduce code for base use-case, ensure multiproc inherits custom env, add ability to limit ram use. 05ccebf9a automate eval freq in multiproc 94cfc8e63 fix multiproc callback, add continual learning to multiproc, fix totalprofit bug in env, set eval_freq automatically, improve default reward d1bee29b1 improve default reward, fix bugs in environment a61821e1c remove monitor log bd870e233 fix monitor bug, set default values in case user doesnt set params c0cee5df0 add continual retraining feature, handly mypy typing reqs, improve docstrings b708134c1 switch multiproc thread count to rl_config definition b26ed7dea fix generic reward, add time duration to reward 280a1dc3f add live rate, add trade duration f9a49744e add strategy to the freqai object a2a4bc05d Fix the state profit calculation logic 29f0e01c4 expose environment reward parameters to the user config d88a0dbf8 add sb3_contrib models to the available agents. include sb3_contrib in requirements. 8b3a8234a fix env bug, allow example strat to short 8cd4daad0 Feat/freqai rl dev (#7) 3eb897c2f reuse callback, allow user to acces all stable_baselines3 agents via config 4b9499e32 improve nomenclature and fix short exit bug 4baa36bdc fix persist a single training environment for PPO f95602f6b persist a single training environment. 5d4e5e69f reinforce training with state info, reinforce prediction with state info, restructure config to accommodate all parameters from any user imported model type. Set 5Act to default env on TDQN. Clean example config. 7962a1439 remove keep low profit 81b5aa66e make env keep current position when low profit 45218faeb fix coding convention d55092ff1 Docker building update, and TDQN repair with the newer release of SB+ 74e4fd063 ensure config example can work with backtesting RL b90da46b1 improve price df handling to enable backtesting 2080ff86e 5ac base fixes in logic 16cec7dfb fix save/reload functionality for stablebaselines 0475b7cb1 remove unuse code and fix coding conventions d60a166fb multiproc TDQN with xtra callbacks dd382dd37 add monitor to eval env so that multiproc can save best_model 69d542d3e match config and strats to upstream freqai e5df39e89 ensuring best_model is placed in ram and saved to disk and loaded from disk bf7ceba95 set cpu threads in config 57c488a6f learning_rate + multicpu changes 48bb51b45 example config added b1fc5a06c example config added 6d8e838a8 update tensorboard dependency acf3484e8 add multiprocessing variant of ReinforcementLearningPPO cf0731095 type fix 1c81ec601 3ac and 5ac example strategies 13cd18dc9 PPO policy change + verbose=1 926023935 make base 3ac and base 5ac environments. TDQN defaults to 3AC. 096533bcb 3ac to 5ac 718c9d044 action fix 9c78e6c26 base PPO model only customizes reward for 3AC 6048f60f1 get TDQN working with 5 action environment d4db5c328 ensure TDQN class is properly named 91683e1dc restructure RL so that user can customize environment ecd1f55ab add rl module 70b25461f add rl dependency 9b895500b initial commit - new dev branch cd3fe4442 callback function and TDQN model added 01232e9a1 callback function and TDQN model added 8eeaab274 add reward function ec813434f ReinforcementLearningModel 2f4d73eb0 Revert "ReinforcementLearningModel" c1e7db313 ReinforcementLearningModel 05ed1b544 Working base for reinforcement learning model ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 3 years ago

FreqAI - 2022.11

Highlighted changes

  • FreqUI will now show you all adjustment orders.
  • ShuffleFilter shuffle behavior can now be configured (once per candle (default), once per iteration).
  • Dropped support for 32bit Python under Windows.
  • OKX - bigger timeframes now in UTC (6h+). Please redownload your data for these timeframes! (this impacts mark and ohlcv candles, but not funding rates). :warning:
  • Fix a memory leak in producer/consumer mode caused by pandas.
  • Temporary fix for Kraken data-downloads, which broke mid-November due to an API update.
  • Fix freqAI native installation on M1 Macs.
  • freqAI
    • up to 10x performance boost with indicator caching, vectorized normalization, and optional single precision (reduce_df_footprint = true)
    • FreqaiMultiOutputClassifier allowing as many classifier targets as desired (CatboostClassifierMultiTarget, LightGBMClassifierMultiTarget)
    • Backtest directly on models collected during live/dry run (--freqai-backtest-live-models)

How to update

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

docker-compose

bash 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 ``` 5c571f565 Version bump 2022.11 21d740629 Temporary fix for kraken download dba30393f ensure extra_returns_per_train are set properly on first hist_preds build 9af62ad11 Add note to dev docs about freqUI release ce213b55a Bybit fix candle limit 756921b16 Update fthypt file 79c041b62 Update tests for new export format 8c014bd36 Export trade-counts to csv 8ee8b6e94 Improve hyperopt list output 0f97ef0d7 Reset stoploss_order_id when order is canceled 1b3e62bcb Lock execute_entry to prevent timing hickups c593cdc43 Improve type hints 5e6cda11e Update method name for trade fee updating 048119ad3 Improve doc wording around informative pair candle types b8d1862ca Update cached binance leverage tiers c963fd720 Slightly change test setup for dry_run_order_fill 335de760e Enable --use-pep517 flag for freqai bd05f85c2 Simplify ssl documentation fff745fd8 add map to nginx config 5a489ce71 Fix docs typo 86ff71152 update docs on reverse proxy 8cb2b4666 Improve proxy docs 0fa521704 Improve protection setup 7c00ef8a7 Bump pre-commit requests version adc1174d2 Bump types-requests from 2.28.11.4 to 2.28.11.5 2df0d613d Bump types-dateutil for precommit beec9e2d1 Bump mypy from 0.990 to 0.991 f09fb2374 Bump orjson from 3.8.1 to 3.8.2 8d1ee67ed Bump httpx from 0.23.0 to 0.23.1 844334a7e Bump uvicorn from 0.19.0 to 0.20.0 ec15ef039 Bump nbconvert from 7.2.4 to 7.2.5 3f9dacc9b Bump ccxt from 2.1.75 to 2.1.96 5cce8f4f2 Bump types-python-dateutil from 2.8.19.3 to 2.8.19.4 0cb08024f Bump numpy from 1.23.4 to 1.23.5 edb817e2e add tutorial for ssl in docs 106ac2ab4 fix tests, change to get call 12b471c64 Prevent 2 parallel open orders through forceentry b6a8e421f remove redundant timestamp conversion in ws serializer 12cd83453 Add warning when queue websocket queue becomes too full 4c7bb79c8 Restore prior data transfer format 436b314c8 add safe_remaining 1975e942d Add test for no remaining 48e5a4585 rpc_test: dont replicate whole response, ce43fa5f4 small fix to websocketchannel and relay 875e9ab44 change df serialization to avoid mem leak 9432bcd06 Fix telegram error on force_enter exception a993cb512 change to get call in ws_client 0a7f4fd3c fix httpx test warning afcb86f42 Improve migration types 93addbe5c Improve typechecking 097af973d improve RPC testcase to cover open orders 1380ddd06 update ws client 019577f73 Temporarily Downgrade cryptography until piwheels has the new wheel available 86e094e39 update docs 6a1655c04 support ssl connections in emc 0a702cdd2 Ensure more methods are typechecked f27be7ada Configure mypy to old behavior a951b4954 Use Generator when sending initial dataframes 30b467906 Delist FTX, following ccxt's delisting. c72ffad69 Add starlette test dependency c12dcd9b9 update pre-commit dateutil 4cece8720 Bump mypy from 0.982 to 0.990 721998521 Bump types-python-dateutil from 2.8.19.2 to 2.8.19.3 60449d9be Bump cryptography from 38.0.1 to 38.0.3 cf5cda4df Bump sqlalchemy from 1.4.43 to 1.4.44 7275d4851 Bump ccxt from 2.1.54 to 2.1.75 60de797dc Bump psutil from 5.9.3 to 5.9.4 b2de07046 bump types-requests 9843fb208 Bump mkdocs-material from 8.5.8 to 8.5.10 bbfcaca9e Bump pymdown-extensions from 9.7 to 9.8 48c4d8d2d Bump types-requests from 2.28.11.2 to 2.28.11.4 ce269b798 Bump fastapi from 0.85.1 to 0.87.0 9d8d18d76 Bump pytest-asyncio from 0.20.1 to 0.20.2 001602e03 Bump nbconvert from 7.2.3 to 7.2.4 3e6834e3f Bump tensorboard from 2.10.1 to 2.11.0 42b29cd30 Fix constants type 1e9e7887a fix constants.py, fix freqai test a59d61472 Add test for dataframe footprint reduction 942840da2 Improve setting wording to keep future possibilities open c6013e581 Fix doc typo 535c365b4 Disable ftx ccxt_compat tests fed3bc673 Simplify Websocket Init 914bdbdd8 Remove FTX from list of supported exchanges 954da4fec Add "forcebuy error" exception log ee0e59157 Update join relationship of orders table to selectin 8c092d457 Update README.md 214c62247 move dataframe converter to converter.py e46a57bbd move mem logs to debug 66514e84e add LightGBMClassifierMultiTarget. add test 054133955 fix loading of metric tracker from disk 4664d5e1d Split installation to onCreateCommand 0f9c5f8d4 Simplify timerange handling 57313dd96 Update some usages of timerange to new, simplified method 3e676dbaa Add properties to simplify timerange handling 7147f52e0 FreqAI also requires plotting dependencies be83e7341 add pip install 88ad3fe43 Remove typo from main page 22c419d5c Add warning about FTX 9e17eabd0 Improve Bybit configuration ec6ee7ead remove empty space 795328051 remove github.copilot extension 037363f9e support git and local changes in dev containers #7723 d3006f7f3 Bump ccxt to 2.1.54 f43f96704 Improve handling of unfilled stoploss orders in edge-cases ea489133a Bump catboost from 1.1 to 1.1.1 884014a4b Fix some minor typos 5ba012c59 Disable "tick" in test_update_funding_fees_schedule 850b04357 Bump mkdocs-material from 8.5.7 to 8.5.8 d978ff6bf Bump orjson from 3.8.0 to 3.8.1 0bb57f738 Bump pytest from 7.1.3 to 7.2.0 37e066bd7 Bump prompt-toolkit from 3.0.31 to 3.0.32 224507dfa Bump progressbar2 from 4.1.1 to 4.2.0 f174b41fd Bump sqlalchemy from 1.4.42 to 1.4.43 01a31a6e0 Bump mkdocs from 1.4.1 to 1.4.2 1814f2560 Bump xgboost from 1.6.2 to 1.7.1 3cbbfde6b Bump jsonschema from 4.16.0 to 4.17.0 29585b5ec Improve worker iteration logic 2068a44fd Add test for new behavior d48a9ae96 Add leverage to backtest results 1d2b89bc1 Improve handling of get_fee to not allow impossible combinations 3af177d8a bump ccxt to 2.1.33 43bdd3496 Optimize reduce_dataframe_footprint function 25b8d34fe Update backtesting test 53df60706 avoid duplicating features with okx/gateio, ensure inference timer gets logged 6e09d552a Properly handle and test ohlcv min_max with empty files 257c83383 add doc for single precision, dont allow half precision, add test d4cfcbda2 move write_metrics_to_disk to proper place in param table 3ccc120f9 add option to force single precision 8bdc99a3d fix self-imposed bug 19d90b813 improve readibility in start_backtesting() a7acfb7ab fix dict key error 90c5bfb4b add default conv_width 05b309caf ensure colon replaced for cached attach 6938ed658 change default conv_width to 1 db942321a fix bug with lightgbm and colons d721b5023 flake8 3ba1e221e fix typo 6c4bdb8f6 remove special characters from feature names 356d79b38 verify mean and std exists in model metadata ff619edeb Improve explanation comment as to why we're waiting ourselfs b749f3edd add latency measure from ping in emc and ws_client a0965606a update ws_client more verbosity, better readable time delta 000b0c219 prevent memory leaks from error in _broadcast_queue_data cbede2e27 refactor channel.send to avoid queue.put 2dc55e89e better error handling channel send 55bf195bf remove debugging log calls c2bdaea84 change exception handling in channel send d848c2728 add task done to broadcast queue method b3b756ec1 ensure test pass e25dea7e0 update channel disconnecting ce9273113 ensure backwards compatitibility 23b6915dd fix issue with different backtesting prediction size 1a38c10fc remove old code 255eb7127 start tracking the current candle in FreqAI, add robustness to corr_df caching and inference timer, add test for cache corr_df 63458a613 isort 2afa185dc add integrated tests for PCA and DBSCAN d9f41e557 Update pyarrow prebuilt wheel 162056a36 fix flake8 97df232ac add a warning to __init__ for get_corr_dataframes 7b880a969 change elect to decide fbc281e69 fix grammar, remove hyperlink c3c6733b2 add statement of need to FreqAI docs 0f2e540a6 Update windows documentation about 32bit Windows b3f612ecf Bump ccxt to 2.0.96 aa3d6dc29 Bump uvicorn from 0.18.3 to 0.19.0 be67eb958 Bump psutil from 5.9.2 to 5.9.3 39f145e7b Bump websockets from 10.3 to 10.4 ac86d1945 Bump ccxt from 2.0.58 to 2.0.90 7e12d0322 Bump colorama from 0.4.5 to 0.4.6 a5824f5cf Bump pyarrow from 9.0.0 to 10.0.0 7348a8074 Bump nbconvert from 7.2.1 to 7.2.3 30f0a4dba Bump pycoingecko from 3.0.0 to 3.1.0 eb01bed33 Bump scikit-learn from 1.1.2 to 1.1.3 41c2dc2c6 Bump plotly from 5.10.0 to 5.11.0 a49edfbae add tests for CatboostClassifier d59a7fa2f remove analysis_lock and realign example hybrid strat 707b224af Update generic CI's to ubuntu 22.04 391c3f56f Add typehint to corr_pairlist bd051cb20 Remove pandas workaround for pi image 7053f81fa simplified predict and predict_proba using super(). Added duplicate class label check. fc53054d4 leverage list length knowledge, f-string change f98c7a242 Remove loop of normalization from metadata 5c14aeddc Add "--log-file" alias for "--logfile" 501335114 Rename "shuffle" parameter to "shuffle_freq" a323acf34 Improve ShufflePairlist to shuffle only once per candle c26fda282 fix missing f-string from PR #7611 650bb8b7d ensure full pair string is used for caching dataframes. If not, revert to old behavior. Update docs. 352adaf12 Improve readability of is_time_to_refresh function b7d2c14f2 Improve trading limits docs to mention upper limits c23a9475e Move exchange utilities into separate module 777af5517 Version bump develop version to 2022.11-dev 6ef82dd8b minor change to return 1c9864012 Delete MultiTargetClassifierTestStrategy.py a9a3ceadf Delete config_test.json 255f38537 Simplify stoploss behavior by combining more commonalities 6e0ca058f Update function-head for _get_stop_params cf6b75a3f Use combined stoploss_adjust where possible b9bf9edb0 update rapidjson opts 217add70b add strat and config for testing on PR 47056eded multi target classifier working but not for parallel 51be45547 remove np object, make default str 4d2b7a74f move record params to utils, use rapidjson bb0674522 fix tests 07e813dfa change param record to only get certain params c4a2ee05e fix freqai test 4464e9125 use self.identifier in full path 5ee3b8cbb update config recording to use all configs, fix tests 6606a0113 refactoring - remove unnecessary config file a9db66808 avoid redundant indicator population for corr_pair list 4e1bf7923 backtest live models - documentation 6919f3aa7 Backtest live models - fix utc date convert issue 01e3507e4 fix freqai backtest live models 6845a5c6e backtest_live_models - refactoring after PR review 55ebbeec1 backtest_live models tests refactoring 0be115de9 backtest_live_models - added new tests and refactoring 72aa47fc5 backtest_live_models - fix issue with timerange BT and 2 trainings within same candle (no data) 14b96aaa3 backtesting live models - fix ci issues 290afd969 backtest_live_models - fix typo 0318ca9f1 backtest_live_models - fix typo 22bef71d5 backtest_live_models - add function comments and tests ec947ad65 remove commented code - backtest_live_models 5880f7a63 backtest_live_models - params validation and get timerange from live models in BT 0ed7b2bfc change start_backtesting to handle backtest_live_models 7f116db95 added generic function to get timerange from existent models 3ee7eb63f starting backtest live models ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 3 years ago

FreqAI - 2022.10

Highlighted changes

  • ProducerPairList - use pairs from a producer in your consumer.
  • Breaking change partial exit values will now be assumed to be stake_amount without leverage.
  • Breaking change custom_stoploss will be called with the candle's high (and corresponding profit) - to better mirror trailing_stop behavior.
  • Support for partially filled exit order cancellations (will be handled as partial exits - unless the remaining value would become unsellable).
  • send_msg() support for websockets and discord.
  • New subcommand list-freqaimodels to visualize available Model classes.
  • Improved iteration throttling, making sure data is available as soon as a new candle is available.
  • FreqAI enhancements
    • tensorboard integration for catboost.
    • new XGBoost freqAI models in XGBoostRFRegressor and XGBoostRFClassifier.

How to update

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

docker-compose

bash 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 ``` ec7d66349 Version bump 2022.10 9e0b39cdd Properly invert sign d831d7d31 Rename Freqai hybrid example fd5f31368 fix indent in initial df send 604f966c8 Enhance documentation with full space override sample d94c0039e Add missing import to hyperopt docs 3fa50077c Don't use pydantic to type-verify outgoing messages 1ef38f137 Fix XGBoost regressor "used before assignment" f12d40bd6 Update freqai-running.md 283dab667 Fix pydantic version pin f70c00dd4 Improve variance around worker timing test 32600a113 fix broadcast f93b6eec6 Improve timing for worker throttling 5bbd86151 Update binance sample config with better blacklist 6669714a7 Update mal-formatted docstrings ba82cd9ba bump types-python-dateutil for pre-commit b9bc91a88 Bump correct pandas version afe0a29fb Bump pandas from 1.5.0 to 1.5.1 af89c83fa Bump pymdown-extensions from 9.6 to 9.7 06311b6a1 Bump pyjwt from 2.5.0 to 2.6.0 0328cd502 Bump scipy from 1.9.2 to 1.9.3 bde4fbbc5 Bump types-python-dateutil from 2.8.19.1 to 2.8.19.2 e516190b6 Bump mkdocs-material from 8.5.6 to 8.5.7 3480549f4 Bump python-rapidjson from 1.8 to 1.9 54d029da7 Bump ccxt from 2.0.25 to 2.0.58 96f4de442 Bump progressbar2 from 4.0.0 to 4.1.1 c29f96a64 Bump pytest-asyncio from 0.19.0 to 0.20.1 94b65a007 fix message typing in channel manager, minor improvements 49ff51f11 Change storage loc and fix test fail 10090a36d simplify throttle d0571464d Improve test for worker throttle c36141594 Simplify "refresh" condition 9cffa3ca2 add comment in channel 3d7a311ca removed sleep calls, better channel sending 2b6d00dde initial channel api change abcc6dadf use pre-built pyarrow for pi image 47e93dd2b Update documentation 3a9853db1 use high/low for custom stoploss evaluation in backtesting 84a194bca Simplify stoploss logic by removing redundant condition 547fd2881 Price-jump detection should only run once 0ff7a0771 Move price_jump_warn to dataloading b715d9c52 Improve fee handling d1591883a add missing datetime conversion in fromJson 212b511bb Remove explicit rateLimit setting for freqAI config bd424a877 Add Trade from_json method 0aa840792 Move persistence tests to package f4814a7d5 Improve test resiliance to small roundings 107845afa Keep version number in docker versioning 60cb11a44 Add price jump warning 589944055 fix typos - live predictions candles 073ce1659 remove un-used f-string 295ba2138 Make extra_returns_per_train values available during backtest 7192ed7be Fix bug with dataframe not being 0 indexed 6e95b6667 Modify test ensuring we always have a 0 index 033c5bd44 Make check constant pred labels agnostic c3d4fb9f1 Simplify backtest calling interface c7fff1213 Rate-limit EMC startup to avoid overwelming the queue 441032be2 Fix sys.stdout bug for CatboostRegressorMultiTarget b166c04cb Bring back asyncio.sleep to avoid overwelming the a consumer queue c8e103e4a Adjust typehints to match return value c2914feb1 Don't fail contract size repopulation if pair is no longer available caf907e20 Update date-util precommit types 943f5f21f Improve get_pair_dataframe doc wording abe4d32ea Update wording in get_analyzed_dataframe docs 6cb14148a Fix random test failure due to catboost bug 6252ae466 Convert position_stacking to attribute of backtest 8534dfb0d Extract backtest 1 candle from main function 0e8cf366f Keep trade state in LocalTrade 5aeea5b14 Bump ccxt from 1.95.30 to 2.0.25 7ec1e3b94 Bump fastapi from 0.85.0 to 0.85.1 600b88624 Bump lightgbm from 3.3.2 to 3.3.3 a9bb7db06 Bump sqlalchemy from 1.4.41 to 1.4.42 2ddfc7bbb Bump mkdocs from 1.4.0 to 1.4.1 8550eb513 Bump numpy from 1.23.3 to 1.23.4 dd3f62ac1 Bump types-python-dateutil from 2.8.19 to 2.8.19.1 e82baf5f6 Use helper-method to modify trades_open 82d75d891 Fix tests that failed due to new strategy. b7dce8d24 Update stoploss.md de9f5660f Fix counting available trade slots in backtesting. b6c096d3b Simplify backtest condition 20fc52177 Fix constant PCA 99dbba6ca avoid reading from disk to instantiate large objects d81eef0b7 add timestamps to each metric, use rapidjson 05ca725e4 Remove no longer needed local state c8e6dad9c use exit_reason to determine left open trades 498289728 Fix catboost tests polluting CWD 93ad3810f Add test for list-freqaimodels 4bfe58706 Generalize "path" variables for resolvers 2ef315e8c Add documentation for list-freqaimodels fda3a2827 add list-freqAI models command 4a8cb3359 Fix broken tests 9d4ba767c Update usages of search_all_objects 1d8d360a1 update _search_all_objects functioning 7f05b4437 Add eval set to CatboostClassifier f01947105 Don't round prices if no custom prices have been used 7672586de Fix unreliable hyperopt test c71c0e8da Fix some typos 28be784c2 Fix kucoin live test failure 204578081 Reinstate default of 1000% for roi f8331e032 Add model libs info 75f1a123e Move "tickers_needed" check to pairlistmanager to cover all pairlists 39c27cfc3 Don't fail if fetchTickers is not availlable 96e6c1b19 Docs: add `ignore_buying_expired_candle_after` and `order pricing` to summary a6f6a1739 Type fetch_ticker 52e952836 Improve ticker type 35f3f988d Improve price handling in priceFilter afaca2167 use Type Alias for Ticker result to improve keyerror resiliancy 1e31be562 remove whitespace dba1b573b remove tensorboard dir from other pred models 88b8f1863 add test for metric tracker 5b5bb8aab catboost tensorboard bugfix 30a45bb59 add XGBoostRF models to freqai test interface 16c0fef72 update timestamp calculation to correct int, remove internal ping interval eb8c89fe3 move send delay to relay 5ada5eb54 fix error message, update exception import c9eee2eba revert syntax 724be0afe add tensorboard asset to fai doc 5ffa3cb9b Update docs to mention `freqaimodels` directory ee0d90d1a Automatically create freqai models directory 002a46c5a Fix typo in docstring 2ad086dd7 add XGBoost random forest predictors to freqai eaae9c9e0 Update docstring format 60de192d4 Update Classifier docstrings d3b2b2972 Update pairlist docstring to be less missleading 6be9b81f4 Fix workflow syntax error d0b163764 Run coveralls only when needed f120c6698 types-requests - update pre-commit 5218fb1df Bump types-requests from 2.28.11 to 2.28.11.2 13529fabb types-tabulate in pre-commit 3fcba2fb8 Remove hard-pin on python version in ci c1dfa837b Bump mypy from 0.981 to 0.982 935adc99a Bump types-tabulate from 0.8.11 to 0.9.0.0 9d2f281ca Bump pytest-mock from 3.9.0 to 3.10.0 8bb7b94f8 Bump ccxt from 1.95.2 to 1.95.30 dab2759c2 Bump scipy from 1.9.1 to 1.9.2 40afa079b Bump tabulate from 0.8.10 to 0.9.0 337ea04ba Bump nbconvert from 7.0.0 to 7.2.1 db8cf6c95 disable ping interval in client 71bbffd10 update ws channel send to add data to queue 2c76dd9e3 change wait timeout to 30 seconds to better support reverse proxies 2f64a0862 set channel queue maxsize to 32 3e8d8fd1b refactor broadcasting to a queue per client a4aa1b972 isolate and standardize location of tensorboard files, add doc, ensure backtesting functionality 76b33359a add an optional metric tracker to collect train timings, inference timings, and cpu load data a10b2d003 Add freqai timeframe validation (incl. test) 4623c3ec1 Improve test resiliance 4f967fed9 Improve ccxt tests db1132beb ensure required_candle_call_count is always set 8e3a4eca4 Remove unused type:ignore 4daf0000c Move check and add log warning 9454fb8f7 Fix discord message sending df5ae6625 Refactor webhook method 1aedf08ba Update tests ed12cddf3 Update docs with new wording for webhook settings fb2f2d9a3 Allow webhook message setting directly e337d4b78 Reset dataframe index after slice 0460f362f typo in handle func name 8fcb80df6 Add support for dp.send_msg() to webhooks ec7af83c8 add tensorboard to freqai reqs d42fb1560 Improve generic exception handler a5bf34587 Improve fiat-convert behavior in case of coingecko outage fab6b2f10 Align datetime import in fiat_convert 1595e5fd8 small fix in protocol b92b98af2 fix formatting 3e08c6e54 testing/debugging ws client script 6e179c769 Only store tick refresh time if we cache a9d5e04a4 Remove constant labels from prediction 86c781798 Add сatboost train_dir for tensorboard 7c702dd10 Add cache eviction 92a1d58df Evict cache if we didn't get new candles for X hours f475c6c30 Add Specific, time-sensitive test-case for new behavior 638515bce Test advanced caching 678272e2e Improve test formatting cea017e79 Age out old candles b7f26e4f9 Update some formatting issues 02e238a94 Combine ohlcv data in exchange class for live mode edb942f66 Add typing import to sampleStrategy 9b1fb02df Refactor generic data generation to conftest 7dbb78da9 Losely pin pydantic to avoid dependency problems 0d67afe15 allow less precision, ensure regex is catching the right chars 4edb30bfa isort 0e0bda8f1 improve freqai tests ca913fb29 Add leveraged test-case for order-adjustment 4df533feb Add missing comma 5019300d5 Fix for #7534 in bot 3264d7b89 Fix for #7534 in backtesting c1d8ade2f Improve supported exchange check by supporting exchange aliases 68db0bc64 move check_exchange to exchange package a6296be2f Update market_change datatype eb8eebe49 Reset open_order_id after trade cancel 016e43846 Calculate market-change in hyperopt bc6729f72 Improve readability of "now_is_time_to_refresh" 7f308c518 Remove last occurance of timerange index 7f475e37d refactor refresh_latest_ohlcv ca22d857b Improve handling of trades that fail to cancel as they are closed 3585742b4 remove trailing whitespace 265795824 make default type for close_price and date_pred np.nan c2d0eca9d Remove backticks around FreqAI 6ecd92de4 Allow updating without changing identifier a78d6a05a Bump mypy from 0.971 to 0.981 3c789bca6 Bump pymdown-extensions from 9.5 to 9.6 4cf4642a6 Parametrize EMC test f3d4c56b3 Bump pytest-cov from 3.0.0 to 4.0.0 6defa6229 Bump mkdocs-material from 8.5.3 to 8.5.6 373132e13 Bump ccxt from 1.93.98 to 1.95.2 70d6c27e3 Bump pytest-mock from 3.8.2 to 3.9.0 0a7e4d6da Bump mkdocs from 1.3.1 to 1.4.0 f722104f7 Bump catboost from 1.0.6 to 1.1 6f7b75d4b Bump time-machine from 2.8.1 to 2.8.2 b70f18f4c add close price and date to historic_predictions 1727f99b5 Fix missing mock 21440eaec Fix typos and correct/improve descriptions d0b8c8b1a improve invalid canceled order response handling e686faf1b Remove faulty test cleanup 9bb061073 Improve tests 308fa4300 Don't use magicmock as trade object 564318415 Improve test resiliance 2c94ed2e5 Decrease message throughput f4c6b99d6 remove commented lines cd514cf15 fix inlier metric in backtesting f2b875483 ensure raw features match when PCA is employed 6702a1b21 Update test to verify webhook won't log-spam on new messagetypes 8f8b5cc28 Disable log spam from analyze_df in webhook/discord 201bbbcee Okx formatting a96aa568b Add binance futures mode checks 545d65235 Update okx exception wording fad902693 Update updating docs cdc01a078 Fix feature list match for pca 47ef99f58 Simplify interface to notify_exit_cancel 819488c90 Improve exit message wording c946d3059 Add partial cancel message 649879192 Implement partial sell d462f4029 Simple test improvements bd664580f Don't unnecessarily reset order_id cc06c60fd Fix pandas deprecation warnings from freqAI 0d8dfc1a9 Force joblib update via setup.py f6a0d677d Remove pointless notification assignment 7dd984e25 Simplify cancel_entry 561600e98 Remove false test statements 2d2ff2fff remove unnecessary assignments and comments 34951f59d Update failing tests be4813118 make shuffle false in constants 38aca8e90 fix failing svm test b4fb28e4e Update tests for new dataload strategy 00965d8c0 Default to assume stored data only contains complete candles 772abfc6f Add default value for shuffle in docs 683b08432 Set train-test-split shuffle=False as default and remove stratification 255c748ca Update docs for new trade_position behavior 30a5bb08d partial exits should account for leverage 8eda3a45a Test backest detail with leverage af59572cb prior pairlists should go first bd106b4b8 Add tests for Producerpairlist 1bb45a265 Fix crash due to insufficient check 30d51b693 Move "pairlist" logging to manager 1c089dcd5 Add docs for Producer/consumer pairlist 527fd3613 num_assets should be optional 4940fa7be Add Producer Pairlist 0c810868d Add Dataprovider to pairlist ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 3 years ago

FreqAI - 2022.9.1

2022.9.1

  • Fix memory-leak in cases with many pairs.
  • Fix verbose logging.
  • Fix FreqAI bug with PCA enabled.

Highlighted changes

  • merge_informative_pair now has an optional parameter in suffix - allowing for more control in column naming.
  • Producer/consumer mode - Create a cluster of freqtrade bots.
  • New, fast dataformats with feather and parquet.
  • FreqAI
    • New available Models XGBoost models (XGBoostRegressor, XGBoostClassifier, XGBoostRegressorMultiTarget)
    • FreqAI can now start training new models from the final state of the most recently trained model (continual learning).
    • FreqAI now supports hyperopt.
    • informative_pair() implementation no longer necessary.
    • Builtin feature performance plots.
    • Innovative inlier_metric - quantify how different a prediction data point is from the most recent historic data points.
    • Improved freqAI Documentation structure.

How to update

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

docker-compose

bash 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 ``` 851d1e9da Version bump 2022.9.1 59cfde376 Fix pandas deprecation warnings from freqAI c53ff94b8 Force joblib update via setup.py 03256fc77 Merge pull request #7508 from aemr3/fix-pca-errors 19b3669d9 Decrease message throughput 6841bdaa8 Update test to verify webhook won't log-spam on new messagetypes 8e101a9f1 Disable log spam from analyze_df in webhook/discord d0456b698 Version bump 2022.9 80d0e66b4 Update log level in test 388a572cb Version bump develop version ac229b7a4 Reduce message consumer verbosity 4e920e9c5 Reduce verbosity of sending-message fb3d40833 Respect max_open_trades when forceentering e9abe3cb6 Ease end of line rules 7e124618d Move "success" notification to last pipeline step 7c84edbc2 Avoid online call when asking for `/status`. a06372c7b Improve jupyter container install 42cecb83f Disable base64 loading via API e668bf713 Test case to disable base64 strategies via API 6c491ee02 Update missed changes to plot_feature_importance 895b15abb Fix rpi CI 24c1d8498 Fix lineending 9d462af04 Temporary workaround for PI image 8c2e473ee Fix test warning 43e847ff2 Update to pandas 1.5.0 syntax, avoiding warnings bc007ce03 Update binance leverage tiers ba8c71469 Require kwargs on ohlcv_load eb36105de Fix some random typos 9f32e02bb Update missing testcase 4faa6a0bd :bug: updated test case from StaticPairlist to StaticPairList 32930a269 Bump pandas from 1.4.4 to 1.5.0 8e0811d9d Call cleanup explicitly ed2c960a9 Update types-requests for pre-commit a1a62681b add fixes for random test failures 041258a54 Fix arm test failure 8ef3a41a0 Bump ccxt from 1.93.66 to 1.93.98 c4784c669 :pencil2: fixed typo from StaticPairlist to StaticPairList 5faaa25fa Bump aiohttp from 3.8.1 to 3.8.3 95a2d43e1 Bump types-requests from 2.28.10 to 2.28.11 a38f47e1a Bump mkdocs-material from 8.5.2 to 8.5.3 e54ed5b10 fix runtime error: dict changed size during iteration f5535e780 change wording, switch FreqAI word format 48e89e68b fix typos e53f0ce89 Update wheels to build with crypto fix adb5b98a3 Fix pre-commit lineending 677c5719b improve inlier-metric figure 02dba5304 Revise FreqAI multipage docs structure 873d2a506 no model save backtest, plot features backtest, ensure inlier plays nice, doc 873eb5f2c Improve EMC config validations 1bd742f7e Properly setup pre-commit job e63f9e1c1 Use pre-commit in Ci to check for all things 8d77ba118 Fix line endings 50dfde704 Remove unnecessary typing import 53c8e0923 Improve typing in message_consumer 166ae8e3a Remove missleading comment 98ba57ffa Better test for contract calculation change 4efe2e9bc use FtPrecise to convert to contracts and back 00b192b4d Add test to verify #7449 2cc00a1a2 Allow use of --strategy-list with freqai, with warning (#7455) e429aa16f Add note about enter_tag handling 6643d90e6 simplify freqAI start_backtesting af974443c add test 6b5d71049 add sleep 4c7cef570 typo in exception b8e1d29a1 catch connectionclosederror 255ff000a typo in configuration.md 2fffe7c5d Fix missing comma 7c093388e Add pyarrow dependency 4576d291a Update data command outputs 7e1e388b9 Add feather/parquet docs 48352b8a3 Update hdf5 handler to reset index on load 0bbb6faeb Add generic datahandler test a4eaff4da Add training elapsed time 5fb56b09f Test Feather/parquet datahandler init 983a16d93 Rudimentary "not implemented" test 044891f54 Add conditional formats depending on mode dc2b93228 Add ParquetDataHandler 3c0d2c446 Add Feather datahandler (no trade mode yet) 7b4af8542 Remove double-init in test f62f2bb1c Improve datahandler tests 2a5bc58df Split datahandler and history tests b7c60e810 improve class diagram 06a5cfa40 Update "branding" to producer/follower mode 1626eb7f9 Update dataprovider function name to `get_producer_df` e6c5c22ea Update websocket/follower docs 71e6c54ea Normalise distances before Weibull fit (#7432) b1dbc3a65 remove function remove_training_from_backtesting and ensure BT period is correct with startup_candle_count 6a6ae809f fix jwt auth 77ed71323 add catch for invalid message error 128b117af support list of tokens in ws_token 0811bca8b revise docs, update dp method docstring 91dc5e7aa Be sure to provide an amount in entry notifications 08e183fb5 Add note about okx trading mode 366c6c24d Add docs for External Signals API 923182680 Explicitly define notification defaults f7b8c5a76 Reorder telegram noise sample 02f2096fc Reverse and fix rangestability conditions 8f41f943b Fix 0.0 amount message wording ff3643168 Adjust tests for new messageType handling 3b0874eb3 Update exit message handling to gracefully handle kucoins "empty" responses 0c01b23cb Capture exceptions in send_msg calls 0bd6ad55a Always show freqtrade version 8a91c8e22 Sort and dedup pairs before data conversion 6c18fa084 Update proxy docs 3274bb075 Remove msgpack for now b5fd11f91 protect against unforeseen issues in scanning thread 32d46e8a6 Improve fixture naming 703bcc099 Fix list-pair regex to also support 1INCH/USDT eb9ac9cbd add --exchange to convert-trade-data 42c75b4a7 combine log messages 9b66297cc Fix append 995396c77 Add useful log info ad652817e Ensure train ordering after restart ea58c29de Add plot_feature_importance to schema definition 4a0a0c307 Use json_load to load leverage tiers d93093100 Bring back sleep - it'll ensure we give up control over the thread. b5f51b5ec Bump fastapi from 0.83.0 to 0.85.0 15c9b6bf4 Bump mkdocs-material from 8.4.3 to 8.5.2 cbdb0ce3e Bump pyjwt from 2.4.0 to 2.5.0 f51271794 Bump ccxt from 1.93.35 to 1.93.66 4cdc89706 Bump joblib from 1.1.0 to 1.2.0 8116ca847 move trades_get_pairs to parent class a06eee300 move ohlcv_get_pairs to parent class 584b2381d Fix Imports 470d5d840 ensure full new pairlist is in the queue eaa43337d improve train queue system, ensure crash resilience in train queue. edbe9137d Add Common pitfalls 95457d23c escape freqai-specific characters from file naming 994c1c5ea use Config typing in more places 667853c50 Use Alias to type config objects 188f75d8e set model in models dict 9f2358815 strategy template - remove pointless noqa's 7a73adb95 Improve default strategy template faf84295a Separate strategy subtemplates for better overview ab78fb373 Improve freqAI strategy formatting and readability 463493626 additional support for --data-dir fa3d4b58a Revert unnecessary formatting 1ef875901 maintian user privacy by keeping plotly offline 68f7a3150 ensure continued operation despite not being able to plot 2c23effbf allow plot to plot multitargets, add test 1c92734f3 simplify plot_feature_importance call c210d6614 Reorganise multipage doc 92a32ab31 Add documentation for stop-market on binance futures 063511826 Update stoploss on exchange logic 9f266cbcb Allow safe_price for market stop orders ca6dec3d4 Binance spot also allows market orders 8639c1f23 Reduce complexity in binance stoploss handling 38b28fc4d Update duplicated test 4182a7891 Allow leverage tier cache to be 4 weeks old. 6682ae35b Update cached binance_leverage_tiers 10ec681b3 Clean up no longer needed informative sample code d62cef01b Add test for __informative_pairs_freqai 0aada271c Move informative_pairs for freqAI to backend 4422ac7f4 constrain port in config, catch value error 86aa875bc plot features as html instead of png b707a6da3 Add ability to plot feature importance e5368f5a1 backtesting confirm_trade_entry should pass correct amount, not stake-amount b0b575ead change json serialize to split orient 1ad25095c change test server from localhost to 127.0.0.1 7d1645ac2 fix tests and warning message 8e75852ff fix constants, update config example, add emc config validation 6126925db message size limit in mb, default to 8mb 711849abd Use Wheels for win builds 91bc3d116 Update docs aroudn use_exit_signal 49800e4cc pin ci python to 3.10.6 for now aed19ff6c fix The future belongs to a different loop error 37dd22c89 Fixed a bug that prevents clearing old models 06350a13c support specifying message size in emc config d75d5a7da debug ping error message 7a98775f0 Version bump apiVersion 46a425d1b fix OOM on emc test 7b6e465d5 Remove gate live test skip 877d24bcd Fix external dependency of test d2abc9417 Simplify ws imports 79c70bd52 use WebSocketState from fastapi aeaca7894 change port in send_msg test 07aa206f7 real fix for reconnecting 6d0dfd4dc continue trying connect on ping error 75ce9067d fix dp test bf2e5dee7 add running false on shutdown, fix dp typing 12a3e90f7 fix tests 0697041f1 remove copy statement where not needed c19a5fbe0 copy data being transferred, remove debug messages in emc b6434040d Remove plain json serializer implementation 867d59b93 Improve type specifitivity 0052e5891 emc: Fix potential startup timing issue a477b3c24 remove log line, fix tests to not connect to actual ip 10852555e change verbosity of testing log 457075b82 one more line d6205e6cf test logging lines f45824acf Bump precommit types/requests 7ee92db7a Bump aiofiles from 0.8.0 to 22.1.0 00db473f1 Bump cryptography from 37.0.4 to 38.0.1 4ac804f79 Bump numpy from 1.23.2 to 1.23.3 09cdce864 Bump ta-lib from 0.4.24 to 0.4.25 715a71465 Fix auth bug when no token is set c149c47af Bump ccxt from 1.93.3 to 1.93.35 6968fc333 Bump jsonschema from 4.15.0 to 4.16.0 a4b7e0a71 Bump fastapi from 0.82.0 to 0.83.0 1ef334411 Bump types-requests from 2.28.9 to 2.28.10 6bfe99606 Bump mkdocs-material from 8.4.2 to 8.4.3 6777d43ae Bump sqlalchemy from 1.4.40 to 1.4.41 5483cf21f remove default secret_ws_token, set timeout min to 0 982c0315f Rename variable 816c1f760 add test for per epoch hyperopt 72d197a99 Run first epoch in non-parallel mode ede282392 add a developers guide 68a900a9b reorganize freqai docs for easier reading, add detailed file structure description 78cd46ecd hyperopt Remove unnecessary arguments 32e13d65c Refactor hyperopt to extract evaluate_result a48923c0e Extract widget colorization to separate function 9c8c7a03a Improve typehint ccc70a21f Update pairs_file cli argument description 4476b5a7f add user_data arg to test-pairlist d598f4334 add search share button to website 0a8b7686d reworked emc tests ed4ba8801 more emc tests 9a1a4dfb5 more ws endpoint tests 0bc18ea33 call websocket close in channel close 2afd5c202 update message parsing, tests 5a0cfee27 allow user to multithread jobs (advanced users only) c5d031733 remove old param in test fixture a7baccdb7 update log messages in emc, more tests 866a56495 update emc start/shutdown, initial emc tests b3fc1cfde Parametrize classifier tests 88892ba66 Parametrize regressor tests f97f1dc5c Test CatboostRegressorMultiTarget, simplify test setup via parametrization d8cdd9214 wrap background cleanup in finally, add tests 311ae8bf1 freqai backtesting - add startup_candle_count at function description 60eb02bb6 Add XGBoostClassifier 10b6aebc5 enable continual learning and evaluation sets on multioutput models. daf352e6a Test online candle fetching in futures, too 79985fda0 fix backtesting freqai startup candles bug 4250174de Fix ws exception when no token is provided b344f78d0 Improve logic for token validation 170bec043 Fix failing XGBoost tests 2f6a61521 add more tests 05581db4e ensure columns are only dropped in training 939fb7acb Fix enum imports 97be3318f Use Datetime_format from constants 37fcbeba5 Update backtesting output wording to Entries 826eb8525 update confige example c13bec26d add freqaimodel to hyperopt command 6cbc03a96 support jwt token in place of ws token a826c0eb8 ensure signatures match, reduce verbosity acb410a0d Remove verbosity params df6e43d2c Add XGBoostRegressorMultiTarget class 1b6410d7d Add XGBoostRegressor for freqAI, fix mypy errors 09679cc79 fix dependency d38cc0613 Fix freqai backtesting time range issue ad9659769 wording 445ab1bee update docs 426f8f37e change var names e256ebd72 Add ws_token to auto-generated config 92d71ebdb Bump python from 3.10.6-slim-bullseye to 3.10.7-slim-bullseye 46cd0ce99 fix sentence in docs 1466d2d26 initial message ws docs 75cf8dbfe missed await c5d918075 isort bc7295579 improve docs, make example strat hyperoptable c9d4f666c minor apiserver test change 2b9c8550b moved ws_schemas, first ws tests b9e7af1ce fix ws token auth fac662645 update default timeouts b3b0c918d cleanup old code 379b1cbc9 remove unnecessary returns df3c12614 fix mypy error 9b752475d re-add fix to freqtradebot test 4fac12544 fix apiserver cleanup issues in tests 83770d20f fix existing freqtradebot tests 08726a264 Update FAQ to point out multiple parallel positions per trade 5e42defaf Update telegram docs to disable partial exit notifications 9ef0ffe27 Update tests for funding-Fee exceptions 791f61c08 Add test case for funding fee update failure 39b6cadd1 Test keyerror case for funding_Fee calculation 4e15611b0 Don't crash in case of funding fee fetch error 045c3f0f3 Reduce diff by avoiding unnecessary changes f3417a869 Revert condition sequence to simplify conditions a50923f79 add producers attribute to dataprovider f4f2884a6 Fix freqai backtesting time range issue 1ef1fc269 docstring and tests 5934495dd add websocket request/message schemas bf3ee5116 validate freqai hyperopt with freqai enabled param f8e7ed5d7 Reduce shutdown verbosity of exchange a9fd12b81 Allow more dynamic timeframes by disabling "choice" e51d35277 ensure pca is handling same DF as inlier 4c9ac6b7c add kwargs, reduce duplicated code 5d338e697 change window to timeperiod in hybrid 48cadbf93 remove duplicate line, change window to timeperiod ea7bdac9e ensure inlier metric can be combined with other cleaning methods 322f00e3e Fix empty entry message if order doesn't fill immediately cdc72bf8c Correct indexing 047ded1ba Check for constant columns 2c9b76595 add suffix parameter 972b69910 hyperopt - freqai - change validation to config_validation 3454a52b9 Explicitly test amount_to_contract_precision 4d69df08d trunc to amount precision before checking valid partial exits 83d9f3aeb Add test showing #7365 95a33ab2e Add amount_to_contract helper in the exchange 5aba5de20 fix link - hyperopt spaces 8d16dd804 hyperopt - freqai - docs and refactoring b1c026744 mypy fixes 97077ba18 add continual learning to catboost and friends dc4a4bdf0 Wrap cleanup in try/finally handler 3535aa772 add last_analyzed to emitted dataframe d44296783 isort datakitchen 90ec336c7 Update+correct descriptions and figure (#7323) e83c9b276 fix whitespace f2f811a2f Fix telegram bug with open partial exit orders 4b28d0495 fix timestamping, move imports, add words to doc 8597b52e3 Slightly update docs to link to full sample 38f14349e move bytes decoding to serializer d526dfb17 Revert some more changes in rpc_manager 4dec19de9 Add comment to explain why we use the non-trimmed DF a0d774fdc change default initial candle limit to 1500 b949ea301 fix failed apiserver tests 2c8e5b191 fix hyperopt - freqai 5b826150d fix hyperopt - freqai 1ea703d52 remove download-data command 8f261d8ed change from bytes to text in websocket, remove old logs 9fb3517ad Fix non-resolvable freqai test 689b19324 improve clarity on data download requirements 36e5c18fa Don't raise exception when a message is not implemented in telegram 4628bfa58 Bump jsonschema from 4.14.0 to 4.15.0 949f618d4 Bump python-telegram-bot from 13.13 to 13.14 9f5642fd9 fix hyperopt df preprocessing 48dc1f2d8 Bump pycoingecko from 2.2.0 to 3.0.0 f5500350f Bump pandas from 1.4.3 to 1.4.4 6f6afca02 Bump fastapi from 0.81.0 to 0.82.0 90fbb7947 Bump prompt-toolkit from 3.0.30 to 3.0.31 3d0385684 Bump ccxt from 1.92.84 to 1.93.3 af7e4d7bf Bump pytest from 7.1.2 to 7.1.3 7cc8ac0a3 Bump psutil from 5.9.1 to 5.9.2 a035a69a6 Bump arrow from 1.2.2 to 1.2.3 c8a9ac900 fix broken CI 78d01810e reduce code redundancy, ensure live always gets the latest data d43ed186f fix issue with freqai backtesting at slice dataframe 8a08f8ff8 revert rpc manager 07f806a31 minor improvements, fixes, old config+constant removal 160186885 dataprovider fix, updated config example ec76214d0 backup historical predictions pickle and load the backup in case of corruption 3b5e5fc57 fix method name in dummy class dae3b3d86 support shutting down freqai 16573b19e Fix migration syntax error 5cfb4154e revert all changes in normalize_data() c21808ff9 remove metadata redundancy, fix pca bug fa8d5b983 add documentation for noise_standard_deviation` c9be66b5b increase test coverage for dk, improve function naming, extra cleaning ed4cc18cd Migration to check order funding fee b95b3d839 Update test to actually test funding fee appliance 0f483ee31 Use "since last order" approach for live as well. 0c6a02687 Don't calculate funding fees if we're not going to use them. df50b1928 Fix funding fee calculation for backtesting 80b5f035a Remove typo in log message 599c1c79f reorganized backtest utilities, test new functionality, improve/update doc be192fae9 Test should use proper Order objects 966de1961 Improve test resiliance by properly setting Order object af5460ceb Add option to keep models only in memory for backtest 05cbcf834 minor logging changes cf917ad2f initial candle request limit, better error reporting, split up _handle_producer_connection b26126cb5 Don't use ticker['symbol'] but use "pair" instead a948e5138 Update futures docs to define pair namings 5b0b802f3 hybrid json ws serializer eb4cd6ba8 split initial data into separate requests dccde88c8 fix dataframe serializing b53791fef Futures volumepairlist to account for contract size 00f35f487 remove old constant, add initial_data requesting, minor changes 11b2bc269 Added missing s 3f8400df1 Normalise PCA space 11fbfd340 Remove unnecessary assignment 61d5fc0e0 Make the recommendation for Binance/Kucoin blacklisting more accurate. d6e115178 refactoring freqai backtesting - remove duplicate code f3c73189d Remove pointless default on wallet_balance argument ba2eb7cf0 Fix BNB fee bug when selling 57e907872 update example config 7bed0450d pr review - refactoring backtesting freqai c72a2c26c remove external pairlist 6e8abf867 add producer name to required fields in config 865b34cd6 add producer names 510cf4f30 remove data waiting, remove explicit analyzing of external df df51da22e refactoring freqai backtesting 57ff6f8ac Init timerange object properly 13ccd940d Remove startup_candle_count from freqai sample config to avoid confusion 7ba4fda5d Implement PR feedback 4aec2db14 Remove isClose from tests in favor of pytest.approx 115a90177 minor fix for conditional in handle func ddc45ce2e message handling fix, data waiting fix 346e73dd7 client implementation, minor fixes 10e0d5386 Simplify 2 more tests c9aa09ec8 Simplify base fee handling 7e8e29e42 use continuous value for inlier_metric 0b8482360 add documentation for inlier metric 418bd26a8 minor fixes, rework consumer request, update requirements.txt 7f52908e8 ensure the lost points are prepended for FreqUI a58dd0bbf add noise feature, improve docstrings b11742a4c integrate inlier metric function d3cb21128 Add inlier metric computation 50e280866 Fix bug in DI (#7321) 47f7c384f consumer subscriptions, fix serializer bug 71846ecbf Partially revert prior commit, use correct exchange class 7952e0df2 initial rework separating server and client impl eee2071e3 Fix non-testing liquidation test efc3b39fb Improve config overwriting wording 62c0a174c allow users to properly reverse train-test data ordering 27a9f98d5 Simplify liquidation price structure, improve test cov 226fa5d93 Simplify liquidation price calling structure 56cd80926 Bump fastapi from 0.79.1 to 0.81.0 40c00d2d8 Version bump dev version to 2022.9 d7189847a Bump ccxt from 1.92.52 to 1.92.84 d734f7612 Bump orjson from 3.7.12 to 3.8.0 3a7441a27 Bump uvicorn from 0.18.2 to 0.18.3 49dd1c1d4 Bump scipy from 1.9.0 to 1.9.1 e9f46f476 Bump nbconvert from 6.5.3 to 7.0.0 0af4bd294 Bump urllib3 from 1.26.11 to 1.26.12 e9e872ca2 Bump mkdocs-material from 8.4.1 to 8.4.2 8c4e68b8e updated example configs ff3a4995c remove unnecessary code 005594c29 simplify hybrid template c61b986c3 FTX - support time_in_force (and PO ordertype) 104a73025 Uppercase TimeInForce (align with ccxt) 05ca67388 Catch status code errors fcceb744c Add janus to requirements.txt 2b5f06787 Refactoring, minor improvements, data provider improvements a998d6d77 fix tests bb3523f38 download data homogeneously across timeframes e7261cf51 add freqai utils.py file 65b552e31 make docs reflect reality, move download_all_data to new utils.py file, automatic startup_candle detection 4b7e640f3 reduce code duplication, optimize auto data download per tf 3e786a9b8 added example configs d474111a6 Renamed to external signals, controller class refactored 592373f09 Remove pairlist waiting, add .db files to .gitignore ac42c0153 deprecate indicator_max_period_candles, automatically compute startup candles for FreqAI backtesting. 4fa01548f Remove old var from strategy interface 6f5478cc0 DataFrame transmission, strategy follower logic 6189aa817 Fix HybridExample formatting 64b083443 add credit in docstring 90c03178b provide user directions, clean up strategy, remove unnecessary code. 739b68f8f ExternalPairList plugin b44bd0171 Example Classifier strat 6834db11f minor improvements and pairlist data transmission 9f6bba40a initial concept for replicate, basic leader and follower logic 88dd9920e sort imports for isort 5155afb4e clean up code remnants 0c34104e4 extract download-data from freqai to prepare for future async changes ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 3 years ago

FreqAI - 2022.9

Highlighted changes

  • merge_informative_pair now has an optional parameter in suffix - allowing for more control in column naming.
  • Producer/consumer mode - Create a cluster of freqtrade bots.
  • New, fast dataformats with feather and parquet.
  • FreqAI
    • New available Models XGBoost models (XGBoostRegressor, XGBoostClassifier, XGBoostRegressorMultiTarget)
    • FreqAI can now start training new models from the final state of the most recently trained model (continual learning).
    • FreqAI now supports hyperopt.
    • informative_pair() implementation no longer necessary.
    • Builtin feature performance plots.
    • Innovative inlier_metric - quantify how different a prediction data point is from the most recent historic data points.
    • Improved freqAI Documentation structure.

How to update

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

docker-compose

bash 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 ``` 665fd5d80 Version bump 2022.9 ac229b7a4 Reduce message consumer verbosity 4e920e9c5 Reduce verbosity of sending-message fb3d40833 Respect max_open_trades when forceentering e9abe3cb6 Ease end of line rules 7e124618d Move "success" notification to last pipeline step 7c84edbc2 Avoid online call when asking for `/status`. a06372c7b Improve jupyter container install 42cecb83f Disable base64 loading via API e668bf713 Test case to disable base64 strategies via API 6c491ee02 Update missed changes to plot_feature_importance 895b15abb Fix rpi CI 24c1d8498 Fix lineending 9d462af04 Temporary workaround for PI image 8c2e473ee Fix test warning 43e847ff2 Update to pandas 1.5.0 syntax, avoiding warnings bc007ce03 Update binance leverage tiers ba8c71469 Require kwargs on ohlcv_load eb36105de Fix some random typos 9f32e02bb Update missing testcase 4faa6a0bd :bug: updated test case from StaticPairlist to StaticPairList 32930a269 Bump pandas from 1.4.4 to 1.5.0 8e0811d9d Call cleanup explicitly ed2c960a9 Update types-requests for pre-commit a1a62681b add fixes for random test failures 041258a54 Fix arm test failure 8ef3a41a0 Bump ccxt from 1.93.66 to 1.93.98 c4784c669 :pencil2: fixed typo from StaticPairlist to StaticPairList 5faaa25fa Bump aiohttp from 3.8.1 to 3.8.3 95a2d43e1 Bump types-requests from 2.28.10 to 2.28.11 a38f47e1a Bump mkdocs-material from 8.5.2 to 8.5.3 e54ed5b10 fix runtime error: dict changed size during iteration f5535e780 change wording, switch FreqAI word format 48e89e68b fix typos e53f0ce89 Update wheels to build with crypto fix adb5b98a3 Fix pre-commit lineending 677c5719b improve inlier-metric figure 02dba5304 Revise FreqAI multipage docs structure 873d2a506 no model save backtest, plot features backtest, ensure inlier plays nice, doc 873eb5f2c Improve EMC config validations 1bd742f7e Properly setup pre-commit job e63f9e1c1 Use pre-commit in Ci to check for all things 8d77ba118 Fix line endings 50dfde704 Remove unnecessary typing import 53c8e0923 Improve typing in message_consumer 166ae8e3a Remove missleading comment 98ba57ffa Better test for contract calculation change 4efe2e9bc use FtPrecise to convert to contracts and back 00b192b4d Add test to verify #7449 2cc00a1a2 Allow use of --strategy-list with freqai, with warning (#7455) e429aa16f Add note about enter_tag handling 6643d90e6 simplify freqAI start_backtesting af974443c add test 6b5d71049 add sleep 4c7cef570 typo in exception b8e1d29a1 catch connectionclosederror 255ff000a typo in configuration.md 2fffe7c5d Fix missing comma 7c093388e Add pyarrow dependency 4576d291a Update data command outputs 7e1e388b9 Add feather/parquet docs 48352b8a3 Update hdf5 handler to reset index on load 0bbb6faeb Add generic datahandler test a4eaff4da Add training elapsed time 5fb56b09f Test Feather/parquet datahandler init 983a16d93 Rudimentary "not implemented" test 044891f54 Add conditional formats depending on mode dc2b93228 Add ParquetDataHandler 3c0d2c446 Add Feather datahandler (no trade mode yet) 7b4af8542 Remove double-init in test f62f2bb1c Improve datahandler tests 2a5bc58df Split datahandler and history tests b7c60e810 improve class diagram 06a5cfa40 Update "branding" to producer/follower mode 1626eb7f9 Update dataprovider function name to `get_producer_df` e6c5c22ea Update websocket/follower docs 71e6c54ea Normalise distances before Weibull fit (#7432) b1dbc3a65 remove function remove_training_from_backtesting and ensure BT period is correct with startup_candle_count 6a6ae809f fix jwt auth 77ed71323 add catch for invalid message error 128b117af support list of tokens in ws_token 0811bca8b revise docs, update dp method docstring 91dc5e7aa Be sure to provide an amount in entry notifications 08e183fb5 Add note about okx trading mode 366c6c24d Add docs for External Signals API 923182680 Explicitly define notification defaults f7b8c5a76 Reorder telegram noise sample 02f2096fc Reverse and fix rangestability conditions 8f41f943b Fix 0.0 amount message wording ff3643168 Adjust tests for new messageType handling 3b0874eb3 Update exit message handling to gracefully handle kucoins "empty" responses 0c01b23cb Capture exceptions in send_msg calls 0bd6ad55a Always show freqtrade version 8a91c8e22 Sort and dedup pairs before data conversion 6c18fa084 Update proxy docs 3274bb075 Remove msgpack for now b5fd11f91 protect against unforeseen issues in scanning thread 32d46e8a6 Improve fixture naming 703bcc099 Fix list-pair regex to also support 1INCH/USDT eb9ac9cbd add --exchange to convert-trade-data 42c75b4a7 combine log messages 9b66297cc Fix append 995396c77 Add useful log info ad652817e Ensure train ordering after restart ea58c29de Add plot_feature_importance to schema definition 4a0a0c307 Use json_load to load leverage tiers d93093100 Bring back sleep - it'll ensure we give up control over the thread. b5f51b5ec Bump fastapi from 0.83.0 to 0.85.0 15c9b6bf4 Bump mkdocs-material from 8.4.3 to 8.5.2 cbdb0ce3e Bump pyjwt from 2.4.0 to 2.5.0 f51271794 Bump ccxt from 1.93.35 to 1.93.66 4cdc89706 Bump joblib from 1.1.0 to 1.2.0 8116ca847 move trades_get_pairs to parent class a06eee300 move ohlcv_get_pairs to parent class 584b2381d Fix Imports 470d5d840 ensure full new pairlist is in the queue eaa43337d improve train queue system, ensure crash resilience in train queue. edbe9137d Add Common pitfalls 95457d23c escape freqai-specific characters from file naming 994c1c5ea use Config typing in more places 667853c50 Use Alias to type config objects 188f75d8e set model in models dict 9f2358815 strategy template - remove pointless noqa's 7a73adb95 Improve default strategy template faf84295a Separate strategy subtemplates for better overview ab78fb373 Improve freqAI strategy formatting and readability 463493626 additional support for --data-dir fa3d4b58a Revert unnecessary formatting 1ef875901 maintian user privacy by keeping plotly offline 68f7a3150 ensure continued operation despite not being able to plot 2c23effbf allow plot to plot multitargets, add test 1c92734f3 simplify plot_feature_importance call c210d6614 Reorganise multipage doc 92a32ab31 Add documentation for stop-market on binance futures 063511826 Update stoploss on exchange logic 9f266cbcb Allow safe_price for market stop orders ca6dec3d4 Binance spot also allows market orders 8639c1f23 Reduce complexity in binance stoploss handling 38b28fc4d Update duplicated test 4182a7891 Allow leverage tier cache to be 4 weeks old. 6682ae35b Update cached binance_leverage_tiers 10ec681b3 Clean up no longer needed informative sample code d62cef01b Add test for __informative_pairs_freqai 0aada271c Move informative_pairs for freqAI to backend 4422ac7f4 constrain port in config, catch value error 86aa875bc plot features as html instead of png b707a6da3 Add ability to plot feature importance e5368f5a1 backtesting confirm_trade_entry should pass correct amount, not stake-amount b0b575ead change json serialize to split orient 1ad25095c change test server from localhost to 127.0.0.1 7d1645ac2 fix tests and warning message 8e75852ff fix constants, update config example, add emc config validation 6126925db message size limit in mb, default to 8mb 711849abd Use Wheels for win builds 91bc3d116 Update docs aroudn use_exit_signal 49800e4cc pin ci python to 3.10.6 for now aed19ff6c fix The future belongs to a different loop error 37dd22c89 Fixed a bug that prevents clearing old models 06350a13c support specifying message size in emc config d75d5a7da debug ping error message 7a98775f0 Version bump apiVersion 46a425d1b fix OOM on emc test 7b6e465d5 Remove gate live test skip 877d24bcd Fix external dependency of test d2abc9417 Simplify ws imports 79c70bd52 use WebSocketState from fastapi aeaca7894 change port in send_msg test 07aa206f7 real fix for reconnecting 6d0dfd4dc continue trying connect on ping error 75ce9067d fix dp test bf2e5dee7 add running false on shutdown, fix dp typing 12a3e90f7 fix tests 0697041f1 remove copy statement where not needed c19a5fbe0 copy data being transferred, remove debug messages in emc b6434040d Remove plain json serializer implementation 867d59b93 Improve type specifitivity 0052e5891 emc: Fix potential startup timing issue a477b3c24 remove log line, fix tests to not connect to actual ip 10852555e change verbosity of testing log 457075b82 one more line d6205e6cf test logging lines f45824acf Bump precommit types/requests 7ee92db7a Bump aiofiles from 0.8.0 to 22.1.0 00db473f1 Bump cryptography from 37.0.4 to 38.0.1 4ac804f79 Bump numpy from 1.23.2 to 1.23.3 09cdce864 Bump ta-lib from 0.4.24 to 0.4.25 715a71465 Fix auth bug when no token is set c149c47af Bump ccxt from 1.93.3 to 1.93.35 6968fc333 Bump jsonschema from 4.15.0 to 4.16.0 a4b7e0a71 Bump fastapi from 0.82.0 to 0.83.0 1ef334411 Bump types-requests from 2.28.9 to 2.28.10 6bfe99606 Bump mkdocs-material from 8.4.2 to 8.4.3 6777d43ae Bump sqlalchemy from 1.4.40 to 1.4.41 5483cf21f remove default secret_ws_token, set timeout min to 0 982c0315f Rename variable 816c1f760 add test for per epoch hyperopt 72d197a99 Run first epoch in non-parallel mode ede282392 add a developers guide 68a900a9b reorganize freqai docs for easier reading, add detailed file structure description 78cd46ecd hyperopt Remove unnecessary arguments 32e13d65c Refactor hyperopt to extract evaluate_result a48923c0e Extract widget colorization to separate function 9c8c7a03a Improve typehint ccc70a21f Update pairs_file cli argument description 4476b5a7f add user_data arg to test-pairlist d598f4334 add search share button to website 0a8b7686d reworked emc tests ed4ba8801 more emc tests 9a1a4dfb5 more ws endpoint tests 0bc18ea33 call websocket close in channel close 2afd5c202 update message parsing, tests 5a0cfee27 allow user to multithread jobs (advanced users only) c5d031733 remove old param in test fixture a7baccdb7 update log messages in emc, more tests 866a56495 update emc start/shutdown, initial emc tests b3fc1cfde Parametrize classifier tests 88892ba66 Parametrize regressor tests f97f1dc5c Test CatboostRegressorMultiTarget, simplify test setup via parametrization d8cdd9214 wrap background cleanup in finally, add tests 311ae8bf1 freqai backtesting - add startup_candle_count at function description 60eb02bb6 Add XGBoostClassifier 10b6aebc5 enable continual learning and evaluation sets on multioutput models. daf352e6a Test online candle fetching in futures, too 79985fda0 fix backtesting freqai startup candles bug 4250174de Fix ws exception when no token is provided b344f78d0 Improve logic for token validation 170bec043 Fix failing XGBoost tests 2f6a61521 add more tests 05581db4e ensure columns are only dropped in training 939fb7acb Fix enum imports 97be3318f Use Datetime_format from constants 37fcbeba5 Update backtesting output wording to Entries 826eb8525 update confige example c13bec26d add freqaimodel to hyperopt command 6cbc03a96 support jwt token in place of ws token a826c0eb8 ensure signatures match, reduce verbosity acb410a0d Remove verbosity params df6e43d2c Add XGBoostRegressorMultiTarget class 1b6410d7d Add XGBoostRegressor for freqAI, fix mypy errors 09679cc79 fix dependency d38cc0613 Fix freqai backtesting time range issue ad9659769 wording 445ab1bee update docs 426f8f37e change var names e256ebd72 Add ws_token to auto-generated config 92d71ebdb Bump python from 3.10.6-slim-bullseye to 3.10.7-slim-bullseye 46cd0ce99 fix sentence in docs 1466d2d26 initial message ws docs 75cf8dbfe missed await c5d918075 isort bc7295579 improve docs, make example strat hyperoptable c9d4f666c minor apiserver test change 2b9c8550b moved ws_schemas, first ws tests b9e7af1ce fix ws token auth fac662645 update default timeouts b3b0c918d cleanup old code 379b1cbc9 remove unnecessary returns df3c12614 fix mypy error 9b752475d re-add fix to freqtradebot test 4fac12544 fix apiserver cleanup issues in tests 83770d20f fix existing freqtradebot tests 08726a264 Update FAQ to point out multiple parallel positions per trade 5e42defaf Update telegram docs to disable partial exit notifications 9ef0ffe27 Update tests for funding-Fee exceptions 791f61c08 Add test case for funding fee update failure 39b6cadd1 Test keyerror case for funding_Fee calculation 4e15611b0 Don't crash in case of funding fee fetch error 045c3f0f3 Reduce diff by avoiding unnecessary changes f3417a869 Revert condition sequence to simplify conditions a50923f79 add producers attribute to dataprovider f4f2884a6 Fix freqai backtesting time range issue 1ef1fc269 docstring and tests 5934495dd add websocket request/message schemas bf3ee5116 validate freqai hyperopt with freqai enabled param f8e7ed5d7 Reduce shutdown verbosity of exchange a9fd12b81 Allow more dynamic timeframes by disabling "choice" e51d35277 ensure pca is handling same DF as inlier 4c9ac6b7c add kwargs, reduce duplicated code 5d338e697 change window to timeperiod in hybrid 48cadbf93 remove duplicate line, change window to timeperiod ea7bdac9e ensure inlier metric can be combined with other cleaning methods 322f00e3e Fix empty entry message if order doesn't fill immediately cdc72bf8c Correct indexing 047ded1ba Check for constant columns 2c9b76595 add suffix parameter 972b69910 hyperopt - freqai - change validation to config_validation 3454a52b9 Explicitly test amount_to_contract_precision 4d69df08d trunc to amount precision before checking valid partial exits 83d9f3aeb Add test showing #7365 95a33ab2e Add amount_to_contract helper in the exchange 5aba5de20 fix link - hyperopt spaces 8d16dd804 hyperopt - freqai - docs and refactoring b1c026744 mypy fixes 97077ba18 add continual learning to catboost and friends dc4a4bdf0 Wrap cleanup in try/finally handler 3535aa772 add last_analyzed to emitted dataframe d44296783 isort datakitchen 90ec336c7 Update+correct descriptions and figure (#7323) e83c9b276 fix whitespace f2f811a2f Fix telegram bug with open partial exit orders 4b28d0495 fix timestamping, move imports, add words to doc 8597b52e3 Slightly update docs to link to full sample 38f14349e move bytes decoding to serializer d526dfb17 Revert some more changes in rpc_manager 4dec19de9 Add comment to explain why we use the non-trimmed DF a0d774fdc change default initial candle limit to 1500 b949ea301 fix failed apiserver tests 2c8e5b191 fix hyperopt - freqai 5b826150d fix hyperopt - freqai 1ea703d52 remove download-data command 8f261d8ed change from bytes to text in websocket, remove old logs 9fb3517ad Fix non-resolvable freqai test 689b19324 improve clarity on data download requirements 36e5c18fa Don't raise exception when a message is not implemented in telegram 4628bfa58 Bump jsonschema from 4.14.0 to 4.15.0 949f618d4 Bump python-telegram-bot from 13.13 to 13.14 9f5642fd9 fix hyperopt df preprocessing 48dc1f2d8 Bump pycoingecko from 2.2.0 to 3.0.0 f5500350f Bump pandas from 1.4.3 to 1.4.4 6f6afca02 Bump fastapi from 0.81.0 to 0.82.0 90fbb7947 Bump prompt-toolkit from 3.0.30 to 3.0.31 3d0385684 Bump ccxt from 1.92.84 to 1.93.3 af7e4d7bf Bump pytest from 7.1.2 to 7.1.3 7cc8ac0a3 Bump psutil from 5.9.1 to 5.9.2 a035a69a6 Bump arrow from 1.2.2 to 1.2.3 c8a9ac900 fix broken CI 78d01810e reduce code redundancy, ensure live always gets the latest data d43ed186f fix issue with freqai backtesting at slice dataframe 8a08f8ff8 revert rpc manager 07f806a31 minor improvements, fixes, old config+constant removal 160186885 dataprovider fix, updated config example ec76214d0 backup historical predictions pickle and load the backup in case of corruption 3b5e5fc57 fix method name in dummy class dae3b3d86 support shutting down freqai 16573b19e Fix migration syntax error 5cfb4154e revert all changes in normalize_data() c21808ff9 remove metadata redundancy, fix pca bug fa8d5b983 add documentation for noise_standard_deviation` c9be66b5b increase test coverage for dk, improve function naming, extra cleaning ed4cc18cd Migration to check order funding fee b95b3d839 Update test to actually test funding fee appliance 0f483ee31 Use "since last order" approach for live as well. 0c6a02687 Don't calculate funding fees if we're not going to use them. df50b1928 Fix funding fee calculation for backtesting 80b5f035a Remove typo in log message 599c1c79f reorganized backtest utilities, test new functionality, improve/update doc be192fae9 Test should use proper Order objects 966de1961 Improve test resiliance by properly setting Order object af5460ceb Add option to keep models only in memory for backtest 05cbcf834 minor logging changes cf917ad2f initial candle request limit, better error reporting, split up _handle_producer_connection b26126cb5 Don't use ticker['symbol'] but use "pair" instead a948e5138 Update futures docs to define pair namings 5b0b802f3 hybrid json ws serializer eb4cd6ba8 split initial data into separate requests dccde88c8 fix dataframe serializing b53791fef Futures volumepairlist to account for contract size 00f35f487 remove old constant, add initial_data requesting, minor changes 11b2bc269 Added missing s 3f8400df1 Normalise PCA space 11fbfd340 Remove unnecessary assignment 61d5fc0e0 Make the recommendation for Binance/Kucoin blacklisting more accurate. d6e115178 refactoring freqai backtesting - remove duplicate code f3c73189d Remove pointless default on wallet_balance argument ba2eb7cf0 Fix BNB fee bug when selling 57e907872 update example config 7bed0450d pr review - refactoring backtesting freqai c72a2c26c remove external pairlist 6e8abf867 add producer name to required fields in config 865b34cd6 add producer names 510cf4f30 remove data waiting, remove explicit analyzing of external df df51da22e refactoring freqai backtesting 57ff6f8ac Init timerange object properly 13ccd940d Remove startup_candle_count from freqai sample config to avoid confusion 7ba4fda5d Implement PR feedback 4aec2db14 Remove isClose from tests in favor of pytest.approx 115a90177 minor fix for conditional in handle func ddc45ce2e message handling fix, data waiting fix 346e73dd7 client implementation, minor fixes 10e0d5386 Simplify 2 more tests c9aa09ec8 Simplify base fee handling 7e8e29e42 use continuous value for inlier_metric 0b8482360 add documentation for inlier metric 418bd26a8 minor fixes, rework consumer request, update requirements.txt 7f52908e8 ensure the lost points are prepended for FreqUI a58dd0bbf add noise feature, improve docstrings b11742a4c integrate inlier metric function d3cb21128 Add inlier metric computation 50e280866 Fix bug in DI (#7321) 47f7c384f consumer subscriptions, fix serializer bug 71846ecbf Partially revert prior commit, use correct exchange class 7952e0df2 initial rework separating server and client impl eee2071e3 Fix non-testing liquidation test efc3b39fb Improve config overwriting wording 62c0a174c allow users to properly reverse train-test data ordering 27a9f98d5 Simplify liquidation price structure, improve test cov 226fa5d93 Simplify liquidation price calling structure 56cd80926 Bump fastapi from 0.79.1 to 0.81.0 40c00d2d8 Version bump dev version to 2022.9 d7189847a Bump ccxt from 1.92.52 to 1.92.84 d734f7612 Bump orjson from 3.7.12 to 3.8.0 3a7441a27 Bump uvicorn from 0.18.2 to 0.18.3 49dd1c1d4 Bump scipy from 1.9.0 to 1.9.1 e9f46f476 Bump nbconvert from 6.5.3 to 7.0.0 0af4bd294 Bump urllib3 from 1.26.11 to 1.26.12 e9e872ca2 Bump mkdocs-material from 8.4.1 to 8.4.2 8c4e68b8e updated example configs ff3a4995c remove unnecessary code 005594c29 simplify hybrid template c61b986c3 FTX - support time_in_force (and PO ordertype) 104a73025 Uppercase TimeInForce (align with ccxt) 05ca67388 Catch status code errors fcceb744c Add janus to requirements.txt 2b5f06787 Refactoring, minor improvements, data provider improvements a998d6d77 fix tests bb3523f38 download data homogeneously across timeframes e7261cf51 add freqai utils.py file 65b552e31 make docs reflect reality, move download_all_data to new utils.py file, automatic startup_candle detection 4b7e640f3 reduce code duplication, optimize auto data download per tf 3e786a9b8 added example configs d474111a6 Renamed to external signals, controller class refactored 592373f09 Remove pairlist waiting, add .db files to .gitignore ac42c0153 deprecate indicator_max_period_candles, automatically compute startup candles for FreqAI backtesting. 4fa01548f Remove old var from strategy interface 6f5478cc0 DataFrame transmission, strategy follower logic 6189aa817 Fix HybridExample formatting 64b083443 add credit in docstring 90c03178b provide user directions, clean up strategy, remove unnecessary code. 739b68f8f ExternalPairList plugin b44bd0171 Example Classifier strat 6834db11f minor improvements and pairlist data transmission 9f6bba40a initial concept for replicate, basic leader and follower logic 88dd9920e sort imports for isort 5155afb4e clean up code remnants 0c34104e4 extract download-data from freqai to prepare for future async changes ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 3 years ago

FreqAI - 2022.8

Highlighted changes

  • FreqAI: an interface enabling users to train, backtest, and deploy custom predictive models.
  • Strategies can now send notifications via self.dp.send_msg().
  • Slightly modified liquidation price handling, allowing liquidation prices to change as needed.
  • Support for partial exits through adjust_trade_position(). Make sure to read the documentation to understand how calculations for this will work.
  • Partial exits through FreqUI.
  • /whitelist telegram commands now support optional arguments "sorted" and "nobase".
  • Add --show-timerange to the list-data subcommand to show available timerange.
  • Okx leverage tier caching (Speeds up startup).
  • Improved backtesting results by applying exchange precision limits.

How to update

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

docker-compose

bash 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 ``` 2403a03fc Version bump 2022.8 8b0cfe123 Reduce image sizes in freqai doc (#7304) a44a235b5 isort imports in tests/freqai 6634229cc appease the flake8 gods fcb5d1cb5 remove debugging flag dd628eb52 add tests for outlier detection and removal functions 1e41c773a fix outlier protection 22b42e91f add new parameter to freqai doc b9f35cadb add /stopentry alias for /stopbuy 59a723aec Add /health to rest client 71f7d6878 Fixed mypy error c3e74e6e8 Improve doc wording 2b70c3d0c support price callback for partial exits in bt 9204f0131 Don't lock pairs on partial exit 86c5ac44e Add outlier percentage check 2ef4534fe Fix ccxt / longrun tests efe4fd3e2 Add libgomp1 to dockerfile 01126c43f Fix liquidation price tier calculation 753d1b2aa Update leverage tier terminology to be clear and aligned with ccxt b2d664c63 Change MinPts calculation 53d46a038 align `max_entry_position_adjustment` behavior of backtesting to live 1fd223c81 Update --prepend help string f2a356a80 Fix some imports 6636f17e0 Simplify usage of amount_to_contract precision 9e48e6a40 Update docs about precision limits in backtesting 205ab26e9 Remove TODO in test 70df03769 Improve test precision 32faad933 Fix backtest calculation problem with DCA a6d78a861 initialize Since parameter properly fe7108ae7 Convert amount to contracts before comparing for close 78b161e14 add contract_size to database 6036018f3 Extract contracts_to_amount and amount_to_contracts to standalone functions 1b0f37a93 Fix documentation typo 5f38a574c Add okx broker id 5ce1c6980 Improve DBSCAN epsilon identification (#7269) 96d8882f1 Plug mem leak, add training timer f55d5ffd8 Don't fail when `--strategy-path` is not a valid directory. 015be770c ccxt now defaults to base volume for all markets 93d2f7fc8 types-requests bump pre-commit ff9ed1aba Bump ccxt from 1.92.20 to 1.92.52 354d3c0cd Bump time-machine from 2.7.1 to 2.8.1 eeb177110 Bump jsonschema from 4.9.1 to 4.14.0 70848a258 Bump types-requests from 2.28.8 to 2.28.9 3958e53aa Bump mkdocs-material from 8.4.0 to 8.4.1 dfa7d1fc2 Bump fastapi from 0.79.0 to 0.79.1 2dc34779d Fix line length f6d832c6d Add get_option to expose ft_has via method 87a311507 Add get_open_trade_count() to simplify getting open trade count. 085f81ec9 Fix header indent on stake-size-management 0ec38e0cf Fix typo in docs 1fb2e9558 Disable caching of leverage tiers in ccxt compat methods 5b3f03159 Use hyperopt safe amount precision method 4511634f3 improve test coverage 738e95b87 Add tests for leverage tiers caching b6e8b9df3 Use cached leverage tiers 52ec0d104 Update binance Leverage tiers 7563050f1 Realign tests to precision backtesting 0da060083 Have backtesting respect tradable size 54ddc1a4c Add --tradingmode alias aa3da092a Dont' use classProperty - that's not supported on 3.8 665cf4431 Add explicit test cov. for .range behavior 692c6bf1f Added and updated figs and fig descriptions 88d6a7fbf additional edits 9c6b745f0 Restructure and improve doc, add fiq b9d48c327 use numbers in HyperoptState properly ... 1389c8f5b Update documentation with show-timerange option 733f71681 Update documentation bc359675a Add --analyze-per-epoch - moving populate_analysis to the epoch process 09f890454 Extract analysis to separate method 08ef5ad2d Add HyperoptState enum and container class 1c6f96657 Hyperopt: simplify parameter "can_optimize" handling 16af10a5b Update notebook sample with simplified datadir configuration b7553d20d Get min/max data in list-data command 7d84ef2e2 Remove unused imports 521381ebf undo example strategy newline cfa5b3f12 add new line 277245c69 remove line b420614d6 Reduce code duplication in datahandlers 975bf8fe8 Update Docstring to match actual return values 47b314353 Simplify and fix some tests 42eb50851 Attempt fix of #7184 76a3e97e0 Add migrations end message 70a77ba3d Check for "last" availability in PrecisionFilter 1fada53dd remove newline 85b43ec1a Remove double-check for "isolated margin" fde469a25 Remove unnecessary check 075e9b852 Log Exchange responses for set_leverage 46e8d9a5e Reduce verbosity when whitelist is empty 18fab8643 Add dock segment about webserver mode for docker 0461a8934 Fix test failures f70b0bab8 remove line 66910bfe6 Don't fail if mark candles are missing 9c38c27ee ignore sample itself distance for avg_mean_dist computation 72c34291e newline 398336822 gateio futures is showing base currency in volume! c615e1bc6 Avoid loop error during ccxt tests b9667f50c Fix random test failure e7902bffa Remove checks for dataprovider existance - it's available in all modes. e0883a4ea Improve doc wording 819bc7194 Update docs for freqai docker container 463cf6688 Fix bad image name c8d7c2caa Update CI to build and push freqAI images 8d182768f stoploss should also use trimmed prices 0b0e7eaf9 Mutex TTL Cache accesses which can be accessed by multiple threads 24690c191 Don't convert open_rate to precision 3b44dc52e Minor corrections ea6bc47d7 gateio default configs should specify unknown_fee_rate 5dde011b3 Add unknown_fee_rate to full sample config a1e4fbf31 Run price_to_precision for dry-run orders 1ac81aa31 Show message if fee update failed due to missing 4c0fda400 fix input shape warning for LGBMClassifier, add sample_weights/eval_weights fa89368c0 Add test for precision backpopulation 96d2f6181 Properly round timestamps to avoid constant log messages b8c1cf010 Fix test leakage if config is available 15a1c59a9 Backtesting should cache precisionMode a73e4f8e4 Truncate amount before comparing for closure 2fb7a3091 Improve backfill of precisions a5b438e41 Run price_to_precision for dry-run orders 1dd56e35d Ensure comparisions align when closing a trade e4b7bcaea Fix some tests e81879742 Minor fix in amount_to_precision logic c0bdb7181 Update docstring f2b6ff910 Accept wrong pair in get_precision_amount e6af9a690 Allow empty precisionMode on conversions c3f159bd5 Add precision fields to database 22241c55d Add methods to get precision_amount from markets 15e85797c Simplify to_precision tests and imports 6c3233174 Move precision calculations to standalone functions c7e171921 Fix interface import sorting 398b2946b Update test formatting dba7d7fd6 Bump ccxt from 1.91.93 to 1.92.20 6fb5fbdd3 Bump orjson from 3.7.11 to 3.7.12 bc79027cf Bump mkdocs-material from 8.3.9 to 8.4.0 2581acd75 Bump filelock from 3.7.1 to 3.8.0 baa0af68b Bump plotly from 5.9.0 to 5.10.0 025ff27dd Bump numpy from 1.23.1 to 1.23.2 96c279f86 Bump nbconvert from 6.5.0 to 6.5.3 4b708caa6 Bump sqlalchemy from 1.4.39 to 1.4.40 3f6d42708 add a check for number of training features in tests 006b11e5d fix leftover bug in indicator population 8961b8d56 merge in inference timer and historic predictions handling improvements. ad846cdb7 fix lock bug, update docstring 464d99808 Update doc table formatting d442383a1 Fix ta-lib install script a29402ddd Rename and move analysis_lock to data_kitchen 3a9ec76c9 Move "freqai.lock" to backend to simplify user interface a5e96881f slightly update doc wording e7513c96b install py-find-1st from conda forge 24f1dc4ec Update patched ta-lib install for conda 044cf8bb2 Allow new whitelist combination in "button" commands c9c128f78 finalize logo, improve doc, improve algo overview, fix base tensorflowmodel for mypy 8d9284a52 Fix docs edit button 7a2b4dbb9 Fix docs edit button 58de20af0 make BaseClassifierModel. Add predict_proba to lightgbm 31be707cc clean up code, add docstrings 3e38c1b0b take dynamic sized tail off historic_predictions as return dataframe to strategy. 7d448fd4a allow fit_live_predictions access to current pair 1f192be43 avoid denormalizing labels twice b1b76a2db debug classifier with predict proba 23cc21ce5 add predict_proba to base classifier, improve historic predictions handling 61acbf21d Fix broken telegram tests 7075b00e2 Remove odd dry run stoploss behavior 7c18ec405 Add missing key to "full" config sample e09fbe9e5 Improve test resiliance d36da9594 Fix bad import 82ac8cb41 Add freqai backtesting_load test 0b92c30ab Fix typo in test file 5aaab75d1 Add test for dynamic_pairlist_expand 1ac6ec144 Fix failing test... b682fc446 Graciously fail if strategy has freqAI code, but freqAI is not enabled. c190d57f1 Test populate_any_indicator interface 3918f4abb Simplify strategy interface by removing explicit self.freqai_info assignment 3b827ee60 Add "freqai.enabled" flag to disable freqAI via config flag 49989012a Bump catboost requirement to latest f6545ebdb Disallow backtesting with --strategy-list for now. e3a5b97b4 Update recalc_from_trades to use FtPrecise 9513c39a1 Fix migration rounding test 3bcb47d75 Remove usage of Decimal 902afc2f0 Use FtPrecise in interest calculation da253f12f Bump CCXT to required version 0e61c2d05 Replace Decimal with FtPrecise in trade_model 2312b86a6 Update telegram-usage.md ccc0ad6f6 fix - reload whitelist 923f73a51 nobase -> baseonly fb4b73ce8 ensure dates are saved b427c7ff1 Use diff. close time to avoid buggy behavior d93bb8219 Add more Commits to failing test aa1bf2adb Try fix windows testfailure cc885e25a Improve NAN Handling in RPC de690b0a6 Use PEP440 compatible versioning dd4e44931 Improve NAN handling in RPC module f7502bcc9 slightly update dca_short test 2cae3c42e remove trade database analyzer, clean up a bit ace962648 Update tests for sorted and nobase c0d60c63a Optional /whitelist args - sorted, nobase ed004236c Add float initializer to FtPrecise e7cb1b737 Wrap Precise into FtPecise 91d0c9128 improve docs adc8ee88e Move periodicCache to Utils package 573964b19 Dry Market orders should update "remaining" ce2c9bf26 Slight renaming of variable 736884c5a Orders should be allowed to have empty fill/remaining values b5c5a95b6 FTX: Use conditionalOrders endpoint to get proper stop-market order id 4289c5c68 update freqai logo 5a16d5a51 Deactivate database analyzer if user does not use sqlite e7de81294 Allow user to user pair_dict for persistent storage of custom data aef086b02 Improved dict typing, timeframe parser, collect dates associated with training data points 02646a4a0 Update scikit-learn in freqai deps 77b3b8a13 Use main exchange instead of creating a separate instance. 20b413478 Properly exclude catboost in ARM 0c7d862aa types-requests bump pre-commit 71c88244f Bump ccxt from 1.91.55 to 1.91.93 97c077171 Bump types-requests from 2.28.6 to 2.28.8 a45a35f38 Bump jsonschema from 4.9.0 to 4.9.1 7fd3f98ae Bump scikit-learn from 1.1.1 to 1.1.2 11a2eb6cc Bump flake8 from 5.0.1 to 5.0.4 ea64f43e5 bring back auto DF resizing for okx 67c722c9c fix asyncio bug e48e82232 Force response API to js to fix faulty system configs 0b2104fc7 Properly increment the api version 5182f755f Add debug setup documentation 6ded2d5b7 Improve forceexit API test d3780b931 Add test passing leverage to execute_entry d1998f7ed Fix forceexit calling eff8cd7ec Add leverage to force_entry daf015d00 extract nested force_exit function to private instance function 82aecc81f Accept parameters to forceexit aaa534900 Add script for patching conda libta-lib 78e129034 Update docs to specify trading limit behaviour eb8bde37c Add lightgbm classifier, add classifier check test, fix classifier bug. bfa859e61 Remove unnecessary method (simplify) 5250189f7 Add Rollback function to Trade 47a30047e Fix typo b16f57cb0 Minor stylistic fixes c172ce101 improve flexibility of user defined prediction dataframe 45d68222a Reduce verbosity of Fiat Converter fdc82f830 add doc section for classifier f8f1ade16 Reduce function complexity by extracting message sending 268763394 Test iterative sending of /status b12dd15f4 Send multiple messages in /status if required 07763d0d4 add classifier, improve model naming scheme ce8fbbf74 ensure loading historical df matches frequi indices 60d782e5c remove unnecessary function a42a060ab fix DB once and for all. Make DBSCAN more efficient and robust. a3799c4d5 start frequi with historical data if available 29b7b014e fix bug in DB path initialization db1d36794 fix bug associated to fit_live_predictions_candles 26de992d2 ensure user sets startup candles in backtesting mode 05ec5c5e5 generalize database url path for any db type 954540245 Improve defaults for config builder 29e41cc81 Update docs to reflect correct result 7675187c3 Use telegram message length to avoid constants cffc76954 Fix /profit endpoint calculations for partial sells c6e121ffb Update tests with correct usdt mock trades a8541d86f Edit index of `custom_stake_amount` debc73b65 Edit Typo Custom-stake-amount df4a5a757 Bump python from 3.10.5-slim-bullseye to 3.10.6-slim-bullseye 51a6b4289 improve DBSCAN performance for subsequent trainings fe1b8515a fix bug in DBSCAN, update doc febd80911 Fix typo 29225e4ba add DBSCAN outlier detection feature, add supporting documentation 778833f90 Modify comment in new test-strategies to point out their purpose 95327750d Final abs. profit should not be doubled in rpc messages eae82d022 fix bug with database url during backtesting. comment out example trade db analysis. 95d3009a9 give user ability to analyze live trade dataframe inside custom prediction model. Add documentation to explain new functionality ae0d6f63f Version bump ccxt to 1.91.55 895ebbfd1 Exclude aarch64 from catboost requirements d75e0a982 Fix Flake8 errors after flake update 707a4e7c9 types-requests bump pre-commit f3154a431 Bump jsonschema from 4.7.2 to 4.9.0 3013282db remove non-catboost stuff from schema 97064a9ce Bump pypa/gh-action-pypi-publish from 1.5.0 to 1.5.1 79b650258 Bump urllib3 from 1.26.10 to 1.26.11 ed230dd75 Bump orjson from 3.7.8 to 3.7.11 372be5425 Bump types-requests from 2.28.3 to 2.28.6 b4ded59c6 Bump flake8 from 4.0.1 to 5.0.1 a75fa26ca Bump scipy from 1.8.1 to 1.9.0 7a696f58f Bump ccxt from 1.91.29 to 1.91.52 946d4c7cf fix trailing whitespace for flake8 4e68626bc ensure convolutional window is prepended for frequi consistency d83010560 *BREAKING CHANGE* remove unnecessary arguments from populate_any_indicators(), accommodate tests 153336d42 move corr_pairlist expansion to after expand_pairlist() 659870312 Use JSON Schema validation for freaAI schema validation cbb05354a Add install variant for freqai a4bada3eb Partial exit using average price (#6545) 61693f6c8 fix tests after changing config_example file e6ebc0443 make single generalized config for freqai. update docs to reflect that. 09e5fb2f5 Removed description header c2eaa3d2c add image of algorithmic overview to doc bad15f077 Simplify fetch_positions by using already existing method dc82675f0 Add Test for liquidation in stop-loss-reached d046f0cc5 Improve method wording for liquidation price setter dba7a7257 Use stop_or_liquidation instead of stop_loss 845cecd38 Add stoploss or liquidation property 4da96bc51 Update docs 15752ce3c Rename set_stoploss method to be fully private ff4cc5d31 Revamp liquidation test to actually make sense 9852733ef Improve tests to align with modified logic f57ecb186 Simplify adjust_stop test 8711b7d99 Liquidations cannot be rejected. 995be90f9 Liquidation should be a separate exit type dd8288c09 expose full parameter set for SVM outlier detection. Set default shuffle to false to improve reproducibility f22b14078 fix backtesting bug, undo move of label stat calc, fix example strat exit logic 08d3ac7ef add keras and conv_width to schema and documentation 59624181b isort BaseRegressionModel imports c84d54b35 Fix typing issue, avoid using .get() when unnecessary, convert to fstrings efbd83c56 Small type and typo fixes in freqai_interface a2a0d35a2 Update missing typehints f31106dc6 Minor comment fixes 31ddec834 Add missing test to confirm backtesting won't send messages 0adfa4d9e Add tests for dataprovider send-message methods 7bac05466 Add documentation and clarity for send_msg 229e8864b Add send_msg capability to dataprovider bc760b7eb Simplify small segment in datadrawer 324e54c01 fix possible memory leak associated with Catboost Pool object 3f149c406 fix return type in BaseTensorFlowModel ad25a4cb5 reduce number of pair_dict lookups, remove coin_first fb4e8430c isort auto import sorting e213d0ad5 isolate data_drawer functions from data_kitchen, accommodate tests, add new test 56b17e6f3 allow user to pass test_size = 0 and avoid using eval sets in prediction models 55cf378ec remove leftover breakpoint from test file 897f18a8c ensure proper integer type casting for timestamps. Add check test for backtesting subdaily time periods 7b105532d fix mypy error and add test for principal component analysis 4abc26b58 add test for follow_mode c9d46a523 finish bringing follow_mode up to date ab587747f first fix for follower path bug 520ee3f7a Convert freqAI into packages 1885deb63 More docstring changes 70b7a254a Update some areas to use default docstring formatting 88e10f730 add exception for not passing timerange. Remove hard coded arguments for CatboostPredictionModels. Update docs fff39eff9 fix multitarget bug 95f5218ce Reenable Catboost test (#7118) f3d46613e move prediction denormalization into datakitchen. remove duplicate associated code. avoid normalization/denormalization for string dtypes. 81c1aa3c1 Update imports in freqAI sample strategies 8a3cffcd1 Remove remaining CustomModel references 62f7606d2 Update tests to new variant 8fa6e8b4b Remove freqAI model bridge in favor of `self.freqai` c91e23dc5 let user avoid normalizing labels 50d630a15 remove unnecessary comments from data_drawer.py a1cff377e add record of contribution to data_kitchen.py c2d6a0e89 add record of contribution to doc and source 3acc86957 improve the dataframe key description, update outdated parts of doc 36dc9be7a Update some docs wording 5559e605b small PR conversation resolutions 40f00196e use cloudpickle in place of pickle. define Paths once in data_drawer. accc629e3 set separate table sections in doc 98c8a447b add LightGBMPredictionMultiModel afcb0bec0 clean up obsolete comments, move remove_features_from_df to datakitchen 0b21750e7 Reorder advanced topics ac0f48491 add freqai logo to top of doc 3205788bc extend doc to include descriptions of the return values from FreqAI to the strategy 8033e0bf2 add counter to backtesting log so users know how many more pairs and how many more models will need to be trained 183dec866 remove ability to backtest open ended timeranges (safer) e694ea1cf make sure backtesting gets the populated indicators with slimmed down user strat ca4dd5864 remove superceded function from datakitchen 8f86b0dea *breaking change* simplify user strat by consolidating feature loops into backend e7337728b add separator in folder name just incase an asset ends in an integer c9a6dc88a add parameter list/discriptions to doc 6c5e48dd4 dev-dependencies should include freqAI a99c12626 help windows builds pass freqai tests. Add freqai to README.md 4e5d60fdc match scikit-learn version to hyperopt required version 921a7ef21 add requirements-freqai.txt to builds 286bd0c40 follow string for adding a strat to tests/strategy/strats c43935e82 create dedicated minimal freqai test strat 88d769d80 comment out problematic catboost test d43c14667 add more tests for datakitchen functionalities, add regression tests for freqai_interface train/backtest ac2e8d760 Added description heading to README.md 9c051958a Feat/freqai (#7105) 714d9534b start adding tests ed0f8b118 Improve FreqAI documentation (#7072) 921f3899f revert pickle reading for historic predictions 41eeb9917 load pickle file for writing 9d184586f fix bug in historic prediction saving ca2029a46 fix issue when bot restarts with same identifier, does not load prediction history 4141d165f add BaseTensorFlowModel class ef409dd34 Add ground work for TensorFlow models, add protections from common mistakes fea63fba1 Fix saving/loading historic predictions 8ce6b1831 start collecting indefinite history of predictions. Allow user to generate statistics on these predictions. Direct FreqAI to save these to disk and reload them if available. 3fc92b1b2 Create BaseRegression model - designed to reduce code duplication across currently available models. 607455919 Change config parameter names to improve clarity and consistency throughout the code (!!breaking change, please check discord support channel for migration instructions or review templates/FreqaiExampleStrategy.py config_examples/config_freqai_futures.example.json file changes!!) 819cc9c0e Fully align LightGBM with Catboost 58b18770e Fix LightGBM missing argument in predict method 2e1061af6 Fix faulty LightGBM model d9acdc976 remove excess, increase no model warning clarity 4cac67fd6 Catch infrequent issue associated with grabbing first candle eda9464d3 Fix docs test bd3a6ba2f update backtesting to handle new output framework 8ac8d53c3 All LGBMRegressor model parameters are now set in config 4ff0ef735 fix bug returning multiple targets for training ffb39a502 black formatting on freqai files 106131ff0 Rehaul organization of return values 93e1410ed first step toward cleaning output and enabling multimodel training per pair 6c7d02cb1 expose nu in the SVM outlier detection via svm_nu in config 7dfbd432d fix config saving bug, assign priorities to pairs in scanning, sleep the scanning loop to reduce CPU usage 68bafa951 archive config to the model folder, filter out features before returning dataframe to strategy (to alleviate frequi issues)` 051b99791 reduce unnecessary verbosity, fix error on first training sweep, add LightGBMPredictionModel 852706cd6 Fix default behavior for expiration_hours b35c64b6c fix bug in backtest, typo in example strat 3599d18ff fix bug in follow_mode, thanks @blood4rc 6da7a9885 add docstrings to new functions, remove superceded code f631ae911 add model expiration feature, fix bug in DI return values 61040c9f8 Fix freqAI dockerfile not running freqai code ... 0b0688a91 ensure scanning purges models 121edc3e4 Add freqAI docker file c5de0c49e first functional scanning commit 4d472a0ea merging datarehaul into scanning branch c981ad460 Fix missing space 75a248cf4 Fstring freqAI sample strategy, remove duplicate features d9b79d94e increase candle update flexibility to allow long sequential trainings that may last more than one candle 66800c7a4 ensure newest candles are always appended f8f25e36e update example config/strat 15d049cff detect if upper tf candles are new or not, append if so. Correct the epoch for candle update check cab8f517b add lock to datadrawer 4b26b6aae add lock to any historic data access 3c2e314ee Fix bugs e6c5e737a Fix other bugs bf19055e5 Update function spelling 2451ed8c8 Quick bug fix d6b8801f4 fix follower bug e8c0dcf9f add debug message to timerange f2762e3b4 fix bug in return_values() 16b4a5b71 rehaul of backend data management - increasing performance by holding history in memory, reducing load on the ratelimit by only pinging exchange once per candle. Improve code readability. 15a971346 catch infinity values when filtering 7d41542f9 process_only_new_candles in examplestrat should be True, thanks @Bloodhunter4rc fea39254d fix custom_exit (thanks @paranoidandy) b37c31cc2 fix ta-lib issue with simultaneous method access 4ac6ef297 make defining period intervals more user friendly and flexible ace951bf7 another queue bug fix for fresh starts 833d25bda Save data after queue reorg 0b0dd8dd8 Force high priority pair to be trained before anything else. 7523ed825 automatically detect maximum required data based on user fed indicators (to avoid NaNs in dataset for rolling indicators), add new config parameter for backtesting to let users increase their startup_candles to accommodate high timeframe indicators, add docs to explain all. Add new feature for automatic indicator duplication according to user defined intervals (exhibited in example strat and configs now). 9b3b08a2b let follower purge old model files bac4ced38 Ensure follower predictions are persistent and uniquely stored 70adf5564 Automatically detect and change follower data_path to accommodate remote systems 0306f5ca1 Add autopurge feature so that FreqAI cleans up after itself when it no longer needs old models on disk 45f4f0f60 ensure follower sends back null arrays in case leader hasnt created a model file yet 29d2f59f1 fix PCA bug 606f18e5c Add follow_mode feature so that secondary bots can be launched with the same identifier and load models trained by the leader 5b4c649d4 detect variable sized dataframes coming from strat, adjust our stored/returned data accordingly e22990238 fix bug in previous commit a20651efd Increase performance by only predicting on most recent candle instead of full strat provided dataframe. Collect predictions and store them so that we can feed true predictions back to strategy (so that frequi isnt updating historic predictions based on newly trained models). 2f1a2c1cd allow users to store data in custom formats, update spot config to reflect better target horizon to training period ratio d59eac332 revert a79032b a79032bf7 fixing bug in training queue 3f7226327 allow pairs deeper in the queue to get trained if the higher priority pairs dont need training cc6cae47e allow pairs deeper in the queue to get trained if the higher priority pairs dont need training 4eb4753e2 allow subdaily retraining for backtesting 0aa716205 ensure the prediction is reset in the pair_dict after any trade exit, not just custom_exit fe36b08fc fix key error in example strat ce365eb9e improve example strat so that it has dynamic buy and sell logic according to original prediction 4eb29c881 Dont reset pair priority if it doesnt successfully train 83dd45372 catch errors occuring on background thread, and make sure to keep the ball rolling. Improve pair retraining queue. e54614fa2 remove remnants of single threaded version, ensure pair queue priority is checked before retraining 2a4d1e2d6 fix bug in setting new timerange for retraining 7870a86e9 fix live retraining bug 0bf915054 handle key check correctly c5a16e91f throw user error if user tries to load models but feeds the wrong features (while using PCA) b8f9c3557 dirty dirty, dont look here (hacking a flag to avoid reloading leverage_tiers in dry/live) 891fb8771 give load_cached_data_for_updating the right flags to avoid redownloading data in dry/live 65fdebab7 let load_pairs_histories load futures candles in live c080571b7 help futures go dry/live with auto download feature 8a501831d fix the error logic on previous commit 23c30dbc1 add error for user trying to backtest with backtest_period<1 619320501 fix bug for target_mean/std array merging in backtesting ff531c416 reduce `complexity` inside start_download_data() in an effort to appease flake8 d79983c79 try to pass flake8 7593339c1 small cleanup b79d4e887 Allow user to go live and start from pretrained models (after a completed backtest) by simply reusing the `identifier` config parameter while dry/live. 7486d9d9e proper validation of freqai config parameters 7ff325860 remove assertions, log error if user has not assigned freqai in config, fix stratify bug 35bed842c cleanup, add clarity to comments and docstrings 58b5abbaa improve multithreaded training queue system 31ae2b306 alleviate FutureWarning in sklearn about ensuring svm model features are passed with identical order 255d35976 add priority metadata to pairs to avoid a sync of train time + train period 059c28542 paying closer attention to managing live retraining on separate thread without affecting prediction of other coins on master thread b0d2d13eb improve data persistence/mapping for live/dry. This accommodates quick reloads after crash and handles multi-pair cleanly e1c068ca6 add config asserts, use .get method with default values for optional functionality, move data_cleaning_* to freqai_interface (away from user custom pred model) since it is controlled by config params. dede12864 set process_only_new_candles to true in example strat ee3cdd0ff more cleanup 3587bd82e cleanup superceded code af0cc21af Enable hourly/minute retraining in live/dry. Suppress catboost folder output. Update config + constants + docs to reflect updates. 42d95af82 Aggregated commit. Adding support vector machine for outlier detection, improve user interface to dry/live, better standardization, fix various other bugs c5ecf9417 move live retraining to separate thread. 1fae6c9ef keep model accessible in memory to avoid loading objects from disk during live/dry 67eb94c69 download-data will now check if freqai is active in config, and if so will also download data for corr_pairlist 89eacf2f4 Retrain model if FreqAI found a pretrained model but user strategy is not passing the expected features (user has changed the features in the strategy but has passed a the same config[freqai][identifier]). Logger warning output to user. c708dd318 doc update thanks matthias c81b96079 Fix some typos db66b82f6 accept open-ended timeranges from user d1d451c27 auto populate features based on a prepended % in the strategy (remove feature assignment from config). Update doc/constants/example strategy to reflect change 8664e8f9a create a prediction_models folder where basic prediction models can live (similar to optimize/hyperopt-loss. Update resolver/docs/and gitignore to accommodate change 80dcd88ab allow user to run config from anywhere on their system 9e94d2886 add timerange to backtest commnad e5759d950 fix typo f4296173e use bash visual in doc 717df891b use bash visual in doc a8022c104 give beta testers more information in the doc a7029e35b ensure informative pairs includes any combination of whitelist - corr_pairlist 9b3e5faeb create more flexible whitelist, avoid duplicating whitelist features into corr_pairlist, update docs 22bd5556e add self-retraining functionality for live/dry 178c2014b appease mypy a4f5811a5 fix flake8 issue in arguments.py aae233bd6 try passing the check tests f653ace24 another attempt at fixing datalength bug b08c0888b add USERPATH_FREQAIMODELS, remove return values from @abstract methods b03c7b514 optional style for interfacing freqai with backtesting e9a7b68bc revert constants.py and add changes 302021809 fix bug on backtest timerange 00ff0c9b9 ensure user defined timerange truncates final backtest so that we arent mismatching data lengths upon return to strategy. Rename DataHandler class to FreqaiDataKitchen 66715c5ba update doc def71a0af auto build full_timerange and self manage training_timerange 764f9449b fix logger, debug some flake8 appeasements 29c2d1d18 use logger in favor of print 99f7e44c3 flake8 passing, use pathlib in lieu of os.path to accommodate windows/mac OS 2600ba4e7 remove unused remnants 630d20154 remove trained_stake b40f8f88a cleaning and bug fixing fc837c4da add freqao backend machinery, user interface, documentation ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 3 years ago

FreqAI - 2022.7

Highlighted changes

  • Add "leverage" as argument to custom_stake_amount() call.
  • Show candle values (ohlc) in telegram notifications (off by default!).
  • Fix hyperopt for derived/inherited strategies.
  • Improved dry-run fee handling, using maker/taker fees where appropriate.
  • Hyperopt now supports --timeframe-detail (be very careful with memory usage!).
  • New parameter required_profit in StoplossGuard.

How to update

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

docker-compose

bash 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 ``` 28b477308 Version bump 2022.7 d70650b07 Add note for plot-dataframe and current-whitelist cc3ead9d7 Set required_profit for stoploss guard, allowing to ignore small stoplosses. 2595e40e4 Remove unused test-strategy a0b938875 Bump ccxt to 1.91.29 4c68bec17 Fix problem in `is_cancel_order_result_suitable` ea112fb58 Add test for empty order (cancelled order) 47b52d4ba Bump types-dateutil in pre-commit 40969f20b Bump types-python-dateutil from 2.8.18 to 2.8.19 93340f546 Bump mypy from 0.961 to 0.971 43343d0e5 Revert markdown to 3.3.7 3ce46ff09 Bump types-requests in pre-commit f93a3a5fc Bump ccxt from 1.90.89 to 1.91.22 98d0ad76b Bump types-requests from 2.28.1 to 2.28.3 d5933fb2a Bump mkdocs from 1.3.0 to 1.3.1 1b49e4522 Bump orjson from 3.7.7 to 3.7.8 83cac7bee Improve some more tests by adding proper orders 6e691a016 Use leverage-tiers loading in tests 2eb1d18c2 Don't load leverage tiers when not necessary 7682c9ace Update trade_close test to include orders 24a786bed Update rpc test to contain sell order 80845807e Improve some test resiliance a02d02ac1 Enhance protections tests to have orders in mock trade 5c4f60f37 Improve configuration table formatting and ordering e97468964 Add support for --timeframe-detail in hyperopt 32c3f6293 Fix documentation typo b609dbcd8 Update mdx_truly_sane_lists to be compatible with markdown again 75e190ff1 Update sell-test without filled buy order 0daa9d3e5 Bump types-requests in pre-commit ea523136f Bump types-requests from 2.28.0 to 2.28.1 d2ef24878 Bump markdown from 3.3.7 to 3.4.1 f07ad7aa8 Bump ccxt from 1.90.88 to 1.90.89 cb63d5e3d Bump fastapi from 0.78.0 to 0.79.0 5f820ab0a Bump pytest-asyncio from 0.18.3 to 0.19.0 2c6fb617a Bump jsonschema from 4.6.2 to 4.7.2 46be1b877 Version bump ccxt to 1.90.88 05a5ae4fc Update plotting to use entry/exit terminology 9347677c6 Uppdate pricecontours test to not recreate backtesting every loop 423af371c Simplify calculation by calling "get_fee" only once 4172f92bf simplify dry-run taker/maker selection 8b2535a8d Update Typing for fees bf07d8fe8 Update test to properly patch/mock exchange 357000c47 Extract exchange validation to separate method d03dfb393 Oder cost is real cost (including leverage) ed64e4299 Stoploss orders should also be eligible to update closed fees 415780a4f gateio order cost is not in contracts 7b8a5585d Fetch 2ndary stoploss order once the order triggered. 7c4dd4c48 Support fee cost as string 40e2da10f Add hypeorpt cloudpickle magic e53e53087 Add test showing broken inheritance hyperopt 2e642593e Update formatting of hyperopt_conf fixture 29efe75a6 Update hyperoptable strategy to use V3 interface 1c7f60103 Don't use master for publish CI action fada432f4 Pin markdown docs dependency b657a4df2 Improve hyperopt docs cdc58058d Add candletype to notebook example 5c164efdb Also check for createLimitOrder as optionals b9ba94d64 Bump ccxt to 1.90.47 bf992fd9d Add test for newly added functionality f9d3775d4 Move "candle" logic for message to telegram 9a3a2f901 Simplify adding candle to message 8e8f026ea Telegram candle message should be configurable ec3179156 Revert unwanted changes. 64f89af69 Add Explicit test for "has" checks 6ac1aa15f Reenable ccxt order checks f8e35d876 Add TODO to disabled test 523d8a84a skip "supports market order" for now until CCXT fixes their assignemnt bugs. 7d6b3d0e0 Update hyperopt param docs to be clear that non-conclusive parameters will be ignored 0bb8c8feb Bump python-rapidjson from 1.6 to 1.8 c06b524b4 Bump urllib3 from 1.26.9 to 1.26.10 7c6c2c4d6 Bump cryptography from 37.0.2 to 37.0.4 7b998378c Bump numpy from 1.23.0 to 1.23.1 fa158ba8d Bump pre-commit from 2.19.0 to 2.20.0 719fa6f8e Bump orjson from 3.7.6 to 3.7.7 c98786a4f Bump jsonschema from 4.6.1 to 4.6.2 b1d34dba9 Bump ccxt from 1.90.40 to 1.90.41 5070a04a8 Bump mkdocs-material from 8.3.8 to 8.3.9 9086176f7 Bump pytest-mock from 3.8.1 to 3.8.2 494e0529d Update conftest for leverage tiers 9313a2d29 Update leverage tiers to latest version ea5f41aa6 Version bump ccxt aab59a8ca Bump ccxt to required version c98e7ea05 Revert allowing empty currency for futures b7167ec88 Fix wrong fee calclulation for gateio futures 5b733a723 use "fees" for trades responses 81f7d77d7 Allow fee currency to be empty for futures 2499276fc Refactor calculate_fee_rate to take separate parameters instead of an "Order" e52f82b56 Add leverage to custom_stake_amount callback b39508f64 remove loadMarkets from "required" section, 2dc46ca0b Add cost to partial test buy order dbc3376fe Add alias for gate to gateio 514f7d491 change rejected to denied 647f9b546 replace the word abortion with rejected in log messages 6f0721ae2 Update dry-order-fix to use sqlalchemy internals fe8083c7f Improve test for dry-run orderclosing 6da3fa08e Update migrations to also support Postgres 5820fc3b4 Bump jsonschema from 4.6.0 to 4.6.1 0a8a0c66b Bump requests from 2.28.0 to 2.28.1 dd21d963f Bump ccxt from 1.89.14 to 1.89.96 9a8d03b1f Bump uvicorn from 0.18.1 to 0.18.2 0555d7783 Bump python-telegram-bot from 13.12 to 13.13 b16bb23cc Bump prompt-toolkit from 3.0.29 to 3.0.30 92d189a84 Bump orjson from 3.7.3 to 3.7.6 405ea74f1 stopPrice 7fe8b7661 Display the signal candle analyzed in telegram. 10cbb5e67 test_exchange::test_taker_or_maker fixes 86ad5dd02 test_exchange::test_taker_or_maker fixes dac9931b4 test_create_dry_run_order_fees 5d9aee6b7 test_taker_or_maker e8803477d exchange/exchange add param taker_or_maker to add_dry_order_fee ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 4 years ago

FreqAI - 2022.6

Highlighted changes

  • New sub-command backtesting-analysis - allowing detailed entry/exit reason analysis.
  • Hyperoptable parameters can now be added to the instance (self) from within bot_start().
  • Improved handling of old orders after longer "downtime".
  • Specific Discord webhook message formatting.
  • Open orders will now be shown in the UI detail pane.
  • Relative profit is shown in /daily, /weekly and /monthly telegram commands.
  • buy/sell Telegram messages now contain a marker if the trade was made in a dry run.
  • Additional metrics in /profit telegram command.

How to update

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

docker-compose

bash 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 ``` c1d407851 Version bump to 2022.6 07aa372e2 Ensure bot_loop_start is called in hyperopt, too c5e6520fe Reorder methods in freqtradebot f2fdc2137 Only use exit_tag if exit_type i exit_signal 906c7b92f Add enhance testcase to show problematic exit_reason behavior 86f407702 update dateutil precommit f2bc35e05 Bump types-python-dateutil from 2.8.17 to 2.8.18 74471e41d update tabulate precommit types 8b1798522 Bump types-tabulate from 0.8.9 to 0.8.11 0c69a0886 update requests precommit f6e058a32 Bump types-requests from 2.27.30 to 2.28.0 d60127a6d Bump time-machine from 2.7.0 to 2.7.1 82ef97af7 Bump pandas from 1.4.2 to 1.4.3 01185ab48 update cachetools precommit 9a9d1a897 Bump orjson from 3.7.2 to 3.7.3 0ef2c812d Bump ccxt from 1.88.15 to 1.89.14 6510c8d33 Bump tabulate from 0.8.9 to 0.8.10 efee148e4 Bump types-cachetools from 5.0.2 to 5.2.1 8b7dc031f Bump plotly from 5.8.2 to 5.9.0 963f38a69 Bump sqlalchemy from 1.4.37 to 1.4.39 45db2347d Bump mkdocs-material from 8.3.6 to 8.3.8 4840c7d2f Bump pytest-mock from 3.7.0 to 3.8.1 92dbb0d36 Bump uvicorn from 0.17.6 to 0.18.1 b5d0bc997 Clarify stoploss behavior when not defining offset 2b07d3461 Revert several undesired changes ddc355feb Bump numpy from 1.22.4 to 1.23.0 90feccf33 slightly update custom dockerfile with add. comment 53e5483da Store StopPrice for dry-run orders 15fac746a Bump mkdocs-material from 8.3.4 to 8.3.6 3189b284c Fix tests condition 1cd2b0504 Run regular tests for 3.9 under other ubuntu systems e1e3a903f Bump ccxt from 1.87.12 to 1.88.15 996372b8f Bump colorama from 0.4.4 to 0.4.5 50c19ece5 Fix ccxt test gateio flukyness f9668ede4 Fix CI Syntax error 0804fc7a3 CI should run ccxt tests only once 55fb7656d Update pre-commit cachetools 840601026 Bump types-cachetools from 5.0.1 to 5.0.2 0d967f93b Improve performance of some RPC calls 0809f9aef Add offset to trade response 0168343b7 Add trading-volume to api schema 474e6705e Add Profit factor to backtesting 53bfa7931 Add rudimentary test for prior bug 8c46d1907 Fix backtesting bug b7e4dea6c Document new Profit metrics 40c9abc7e Add trading volume to /profit output 6a15d36d1 Add Drawdown and profit_factor to /profit d77ce468e Add "dry" hint to buy/sell messages 03815cb81 Use fstrings in telegram messaging d62273294 Update /help for /fx to align with actual command name 017fd0318 Fix but with late entries in backtesting 616bf315c gateio: futures market orders require IOC to be set. fda8248d4 Gateio allow market orders on futures markets 6bdf9c2a9 Simplify trade profit calculations further 91f9818ae Simplify trade calculations d7770c507 Remove implicit use of certain rates in profit calculations 76cae8e8e Update tests to always provide rate to profit calculations 575b4ead1 Update Test with funding_fee 0 14a859c19 Improve some documentation around futures / leverage 8f32fa5cb Avoid exception on exchange recycling if __init__ fails f9e2e8734 Improve some formatting and typehints e2e6c790b Minor doc update 4a5ed5a27 Fix tests c391ca08d Change backtesting-analysis options to space separated lists 29d8aeb9b Don't fail on invalid parameter 3c62df6b8 Ensure the same timestamp is used for backtest and signal export 6bb342f23 Add export-filename support 01a68e106 Remove unnecessary check and condition 1ffee96ba Fix protection parameters not loading from parameter file d5fd1f9c3 Improve order filled handling 848a5d85c Add small stability fix to test 35adeb641 Bump plotly from 5.8.0 to 5.8.2 850f5d384 Bump orjson from 3.7.1 to 3.7.2 fdca583c6 Bump pymdown-extensions from 9.4 to 9.5 cb2f89bca Bump requests from 2.27.1 to 2.28.0 43b8b0a08 Bump mypy from 0.960 to 0.961 71f314d4c Bump ccxt from 1.85.57 to 1.87.12 ee0b9e3a5 Bump mkdocs-material from 8.3.2 to 8.3.4 e67d29cd2 Update more trades to use create_mock_trades 70966c8a8 Bump actions/setup-python from 3 to 4 8fd245c28 Update pre-commit filelocktypes 43c871f2f Use time-machine to stabilize time-sensitive tests 390e600f5 Update statistics output 40c7caac1 Bump types-filelock from 3.2.6 to 3.2.7 7619fd08d Update telegram tests to use mock_trades dff83ef62 Update telegram profit test to USDT 56652c2b3 Improve test resiliance c9761f473 FreqUI should be installed by default when running setup.sh 4b70e03da Add some rudimentary tsts for discord webhook integration fdfa94bcc make discord notifications fully configurable. f816c15e1 Update discord message format 3a0633760 Update API to provide new values. 9ba11f7bc Update docs and tests for new daily command 76827b31a Add relative profit to daily/weekly commands 0a801c022 Simplify daily RPC test 1a5c3c587 Simplify weekly/monthly tests, convert to usdt ab6a306e0 Update daily test to USDT 2c7c5f9a6 Update mock_usdt trade method 76f87377b Reduce decimals on FIAT daily column 714239412 remove random_state condition ad3c01736 time aggregate to only query for data necessary dce9fdd0e don't overwrite is_random 8fb743b91 improve variable wording 3c2ba99fc Improve sql cheatsheet docs a9c7ad8a0 Add warning about sqlite disabled foreign keys 1ddd5f190 Update docstring throughout the bot. 88f8cbe17 Update tests to reflect new naming b211a5156 Add test for strategy_wrapper lazy loading a54700160 Reduce Telegram "unit" stats d4dd02631 Consolidate monthly stats to common method 3cb15a2a5 Combine weekly and daily profit methods c550cd8b0 Simplify query in freqtradebot d265b8adb Bump python from 3.10.4-slim-bullseye to 3.10.5-slim-bullseye 7eacb847b Fix backtesting bug when order is not replaced ac40ae89b give extra info on rate origin for confirm_trade_* 381d64833 version-bump ccxt 9534d6cca Cancel orders which can no longer be found after several days 057be5094 Remove old concurrency method 0b806af48 Add orders column to btresult 82c5a6b29 Update CI to use concurrency ea9b68bad Add updating freqtrade to updating desc 99f6c75c4 Bump types-requests precommit 05922e9eb Bump ccxt from 1.84.39 to 1.84.97 4affa75ff Bump sqlalchemy from 1.4.36 to 1.4.37 963dc0221 Bump types-requests from 2.27.29 to 2.27.30 35316ec06 Bump jsonschema from 4.5.1 to 4.6.0 6547f3aad Bump mkdocs-material from 8.2.16 to 8.3.2 04cb49b7e Bump filelock from 3.7.0 to 3.7.1 786bc3616 Bump orjson from 3.6.8 to 3.7.1 79107fd06 Add minimal order object serialization 8369d5bed Include open orders in json responses c0ff554d5 Cleanup old, left open dry-run orders f70922294 Properly close out orders in backtesting c499bb051 Allow empty unfilledtimeout for webserver mode a790bad1e Add entry_tag to leverage callback 27bea580d Fix rest-client script's force_enter eb4adeab4 fix flake8 issues 45c47bda6 refactor into discord rpc module afd8e8583 feat: add support for discord notification ea537b32c Update tests for leverage_tier_loading cce8d1aa4 Update get_market_leverage_tiers to be async be6e0813d Remove --strategy from analysis test c285ad0e2 Remove --strategy parameters, update docs 056047f63 Fix --help 9a068c0b1 Add test for each analysis group, remove default table output if not indicator-list 24b02127e Update docs df1c36e5a Change command name, use load_backtest_stats for strategy resolving e7c5818d1 First pass changes for cleaning up 43b7955fc Fully rely on pathlib 145faf981 Use tmpdir for testing 21e6c14e1 Final test changes f5c293088 Presume that pytest will call the cleanup call 2873ca6d3 Add cleanup, adjust _print_table for indicators, add rsi to test output edd474e66 Another test fix attempt 22b9805e4 Fix all tests 3adda84b9 Update docs, add test 8c03ebb78 Fix group 0 table, add pathlib.Path use 80c6190c0 Fix analyze_commands setup ae1ede58d Fix import order a1a09a802 Add analyze_commands 9488e8992 First commit for integrating buy_reasons into FT 2b61aa282 Removed None in dict.get() ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 4 years ago

FreqAI - 2022.5.1

2022.5.1

  • Fix edge-case bug in backtesting (colliding canceled and replaced orders).
  • Fix deleting trades when position adjustment (DCA) orders time out.

Highlighted changes 2022.5

  • New adjust_entry_price() callback - to adjust open entry limit orders.
  • New command convert-db to migrate databases between database systems.
  • Dry-run orders no longer reset on bot restart.
  • Certain Protections can now only look at longs or shorts, and only lock this direction.
  • Updated binance leverage tiers to contain new pairs.
  • Multiple exit-sigals are evaluated in sequence, causing changed behavior for confirm_trade_exit(), which can now be called multiple times for the same trade with different exit signal types.
  • download-data now respects the timerange end date.
  • download-data now allows data-prepending.
  • LowProfitPairs now supports "onlyperside" for futures trading.
  • Fixed OKX historic data download (:warning: Warning- requires manual clearing and redownload of existing data)

How to update

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

docker-compose

bash 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 ``` c57db0a33 Version bump 2022.5.1 34a44b9dd Fix backtesting bug when canceling orders 66edbcd3d Fix slight backtesting bug in edge-case scenarios 354917637 Update missleading docstring 88845f6d8 Fix cancel order deleting trade d950b0acb Update documentation about dynamic parameters 8e2c7e129 extract detect_parameters to separate function f323cbc76 Bump types-requests precommit 5bf021be2 Enhance hyperoptable strategy to test instance parameters eaa656f85 Hyperoptable parameters can be instance attributes 2b2967f34 Bump types-requests from 2.27.27 to 2.27.29 386d3e035 Rename stop/roi loading method ad8ff10a0 Minor doc changes 41052b4e1 Bump types dateutil precommit 23fa00e29 Bump ccxt from 1.83.62 to 1.84.39 a937f3699 Bump mypy from 0.950 to 0.960 9366c1d36 Bump mkdocs-material from 8.2.15 to 8.2.16 e7c78529e Bump types-python-dateutil from 2.8.16 to 2.8.17 b52fd0b4d Bump python-telegram-bot from 13.11 to 13.12 f65df4901 Update doc clarity e6affcc23 Move parameter file loading to hyper-mixin 1ee08d22d Delay parameter init a875a7dc4 Use unified stopPrice for binance f64f2b1ad Fix /stats Formatting issue in multi-message settings a1d54f5ae Version bump 2022.5 3e7bf6a9e Remove imports in test_strategy2 b04fe5d4e Simplify test v2 strategy 24cf04464 Fix bybit spot mode 682daa4e9 Reset logging mixin to avoid random test failure e1c6cf5f9 fix typo 537d10c62 Improve some typing 3e66275c9 Refactor bot_start to separate function 023f81717 Improve wording for supported futures exchanges b2968df5d Fix some type problems 43f726ba8 Run CI against different templates a8ee77cd5 Simplify backtesting typechecking 904f094b8 Don't reassign method, but implement it properly 0a713faca Fix some type errors f1a72e448 Align interfaces and strategy templates 3f68c3b68 Update some types 502404c0c Use pyproject.toml instead of setup.cfg 7f4161ff7 Add typehints to strategy wrapper 07ec3b27f Add typing information to retrier decorator 42ae8ba6f Refactor hyperopt parameters to separate file 5c4014ee6 Change default value of process_only_new_candles to True since False is an uncommon usecase for expert strategy devs 34b1231df Bump filelock-precommit b88dfe429 Bump types-filelock from 3.2.5 to 3.2.6 cc3ec279c Bump dateutil types precommit 596aeec65 Bump scikit-learn from 1.1.0 to 1.1.1 66497c28e Bump pre-commit requests types 7f5650699 Bump types-requests from 2.27.25 to 2.27.27 34657639f Bump numpy from 1.22.3 to 1.22.4 ff9dcfe78 Bump types-python-dateutil from 2.8.15 to 2.8.16 40f63ae51 Bump scipy from 1.8.0 to 1.8.1 f819fafa1 Bump psutil from 5.9.0 to 5.9.1 27019339b Bump ccxt from 1.83.12 to 1.83.62 e3beaae8b update hyperopt typing 0b5544ef9 Stoploss fill should fill as "filled" notification 938a66511 Update Documentation for new confirm_trade_exit behavior 3692fcd3d Improve exit signal sequence ce3bfd59f Add explicit should_sell test b7388557a Update interface tests bdb904e71 Should_exit should return all sell signals 1315d0243 Fix startup sending "longed" messages for open stoplosses 26d394ca7 Add liquidation Price to api response ea8fda0de Slightly improve test f006978ca Be more explicit in default value 681ef1317 Relax dry-run leverage test-case to simplify future updates 97abcf4b3 Add documentation for leverage_tiers update 963cc17c1 Update leveraged tiers 0d388b561 Add test for "combine_funding_and_mark", fix bug 2df42a303 Move "funding fillup" logic to exchange class 6bd5535d6 Use exchange method to combine funding and mark candles 0e158b66b Update docs link c499a92f5 Remove surplus mark columns, and make fillna on funding rate only c3e3188c6 Rename variable 843bf0631 Remove Sponsored Promotions b3acfb3c6 Bump ccxt to 1.83.12 2cf17e04b Init persistence for tests that use dry-run orders 46ea135b6 Update dry-run considerations 219363fff Check for both ask and bid in SpreadFilter 56a73575a Add explicit test for order_to_ccxt 5e18e51ce Fix some tests a3d9384bc Remove clean-dry-run code 0a95ef6ab Don't reset open orders in dry-run on restart 363098d32 Fix reversed makr/funding_rate columns 736f9f497 Fix docs and add outer join support for merging funding rates across full timerange d5486f17d Update Test to use StrategyV3 c41d4c4f4 Fix leverage docs 37e4ede65 Fix flake issues bb758da94 Add support for fudging unavailable funding rates, allowing backtesting of timeranges where futures candles are available, but rates are not c6bf6779f Update docs BT sample report and details. bb7ffd8fb Update testcases relying on BT results. 0585b378b BT: Report canceled/replaced orders also. 6e8f24f6a BT: track canceled/replaced orders also. 905b24bd4 Update BT report detailing. a2a8e4fdc Update doc BT sample report. 99aea454b Update testcases to match reporting. f2e2e5723 Report trade entries canceled by user. fb7c0792c Track trade entries canceled by user. 76637d393 Simplify timeframe-transition 2e65a1793 Add fallback to load 1M files as well as 1Mo files a1048fb61 Store monthly candles as "Mo" 9607d0427 Improve ccxt imports d09b46293 Add rudimentary tests for Precise "builtin operator" workings c8e0fc926 Update to do Builtin Precise math a793cf8f0 Use ccxt's "precise" to do precise math 528509f80 Extract get_price_side from get_rate f5183df0f Bump scikit-learn from 1.0.2 to 1.1.0 bd65236e1 Bump pyjwt from 2.3.0 to 2.4.0 dd1b84f93 Bump filelock from 3.6.0 to 3.7.0 a8b4066f8 Bump mkdocs-material from 8.2.14 to 8.2.15 9e44d6977 Bump ccxt from 1.81.81 to 1.82.61 9fc21686e Bump flake8-tidy-imports from 4.7.0 to 4.8.0 748055892 Bump plotly from 5.7.0 to 5.8.0 47c116a42 Bump fastapi from 0.76.0 to 0.78.0 4fc6857d8 Bump time-machine from 2.6.0 to 2.7.0 2cb8eecf1 add space e21f6a778 missing newline 008ee1488 Improve ci to run on ubuntu 22.04 86af3fe0e Update image versions from 3.9 to 3.10 a0b25938f Fix exit_reason assignment in backtesting a8f064a8c Fix exit_reason assignment in live mode 706994340 Fix bad docstring 18fd3bb33 Update stoploss handling for entry-order adjustment 9143e9ecb Add some safety measures for new startup_candles verification d60d0f64d Revert ohlcv_candle_limit logic for okx 116b58e97 add "date_minus_candles" method a947a1316 Add test to ensure stoploss is set properly in live 3b1443924 Slightly improve performance of order adjusts c27e0a0a1 Allow SL refresh only if no filled entry orders. ec54b47b6 Flake fix. 1c20fb763 Refresh open_rate and stoploss on order replacement. 5767d652b Add explicit test and document behavior 2a1368d50 Offsetfilter: add number_assets parameter bb1b283d9 Update some ohlcv_candle_limit calls 111b04c9e Okx - conditional candle-length 64668b11d add ohlcv_has_history - disabling kraken downloads 64670726a flake8 fix 9d13c8729 cleaned up backtesting 71a80cab3 fixed variable naming style 8a3c2c6ca Corrected docstring c299601ec Add warning about OKX futures backtesting data 1fc041d0d Fix formatting issue b2b503f04 minor polish for explanation of --breakdown 8a6a6ec91 corrected minor "typo" in formatting f374c9da7 PR cleanup 044afdf7a Add better test scenario 31cce741a Add sequence migration 269630e75 Add preliminary documentation for database conversion c19be34e7 Add rudimentary test for db migration 0958c06b8 Implement database migration to other system c3b0f6b64 Add feature shell for database conversion 35ec657ef Bump types-tabulate==0.8.9 precommit a5beacbdd Bump types-tabulate from 0.8.8 to 0.8.9 2dd655eda Bump pre-commit from 2.18.1 to 2.19.0 5080245a7 Bump ccxt from 1.81.43 to 1.81.81 0756027e3 BUmp types-python-dateutil precommit 69b79cd79 Bump types-python-dateutil from 2.8.14 to 2.8.15 1ae74c119 Bump flake8-tidy-imports from 4.6.0 to 4.7.0 77a22a6b1 Bump fastapi from 0.75.2 to 0.76.0 74b309cf5 Bump jsonschema from 4.4.0 to 4.5.1 30cc8e92a Bump mkdocs-material from 8.2.12 to 8.2.14 df48399a9 Bump cryptography from 37.0.1 to 37.0.2 f71b2624a then -> than 30d6eeffd Fix migration bug b58e811b1 Move trade/order Models to their own class af1a5e044 Extract base and Pairlock from models file 3221726d8 Update migration to use boolean value 4a7515e66 Add test for 0.0 case 1436bc1a7 Update list-strategies command f43ae0ea4 logged balance details d79b90a98 consistent exchange name 45b328af2 explicitly call cleanup when cleaning backtest bfc789865 Report profit only on filled entries. 277e07589 update/fix some comments and docs eca8d16c6 Minor fix and enhancement for TC51. f5f599c7f Add LowProfitPairs only_per_side option dc0c1bf87 Only fetch accounts when authenticated. 149704e74 Fix wrong type 6fdcf3a10 Support both position modes on OKX 2da284b92 Properly type side for create_order 68a97a898 Disable scheduled notification in CI 108903f7f Add DCA order adjust test 70bac41d8 Add more backtest test scenarios 182a6f475 Minor typos. 5b3eaa300 Ensure advanced strategy template is runnable d11c44940 Slightly reword docs 2d9be6dac move open_rate updating to close_bt_order 29f1edbde Cleanup. Remove stray new line. 2bed0eab0 BT: Update trade open_rate on first filled order. 25c74e26d Models:Trade: Revert trade open_rate update. 1a37c6ff4 Bump ccxt to 1.81.43 ae01afdd0 Models:Trade: Fix open_rate updates. dbecc097d Models:Trade: Update trade open_rate based on lastest order. b2f33944e Add preliminary backtesting test 5c82cce06 Fix new test failures ce035a594 Add bot_loop_start() call in plotting.py 091cb4fb8 Reduce no stake amount verbosity eb996a152 Fix fee handling for futures trades 8e1cdb910 Update setup.sh 7a5762991 Keep Backtest-metrics aligned 3f64c6307 Maintain compatibility with old backtest results 1e2523af6 Fix some assumptions on the data 4c7460107 Freqtradebot: Cleanup stray debug messages. 59397cdd1 Freqtradebot: Fix full cancel logging location. b83cd95a0 Tests: add basic testcases for entry adjustment. 2a6efab8a Don't use deprecated abstractclassmethod decorator 38dffe1ed types-tabulate - pre-commit update 24ce90ba9 Bump types-tabulate from 0.8.7 to 0.8.8 67dd9be95 Bump sqlalchemy from 1.4.35 to 1.4.36 71ae92274 Bump pre-commit dependency 49c1b310c Bump pre-commit types ba28fa6c3 Bump cryptography from 36.0.2 to 37.0.1 9de0652b2 Bump jinja2 from 3.1.1 to 3.1.2 093bea423 Bump types-requests from 2.27.20 to 2.27.25 73aafb886 Bump ccxt from 1.80.61 to 1.81.16 4990534bf Bump mypy from 0.942 to 0.950 3d730661e Bump mkdocs-material from 8.2.10 to 8.2.12 a0e27d82a Bump types-python-dateutil from 2.8.12 to 2.8.14 7160f9085 Update summary examples f9244aad9 Fix on max drawdown formula to match tests 4e43194df BT: Refactor open order management. 2cedbe570 Fix documentation mishap 9d205132d Revert unintended comment change. 8c19953cd Quick exit when order should be maintained. 8b5d454b5 Fix subtle bug in trades download e49b3ef05 Improve message formatting f6a7e6b78 Add prepend option to download-data 11d447cd5 Add support for download-data "until" ad0c5d944 Refactor entry adjustment for backtesting. f9977c26e Full cancel only for non DCA trades. 17650d7e6 Maintain existing order. Update functionality and documentation bc5048e4f Update to backtesting.md 444425907 Fix hyperopt-loss interface to enforce kwargs 5ff2261b7 Improve test to explicitly test for dates 9bc6bbe47 Improve test for max_drawdown calculations e8aec967d Update on note 086cc6be9 Correction on tests 4de0fdbfc Minor edits found during review 662319210 improve doc wording 737bdfe84 Use "side" parameter when calling Pairlocks 144e4da96 Update stoploss guard tests b0a8bf302 Show lock side 4942d7369 update pairlock tests 845f960a4 realign pairlock naming to side fc201bb4f implement pairlock side further 420836b1b Update test naming 7c79d937e Properly type "side" parameter b7cada1ed Convert ProtectionReturn to dataclass 9e199165b Update protection-interface to support per-side locks 6ff3b178b Add direction column to pairlocks 0f943c482 PEP8 code compliance 76558f284 Fix user cancellation functionality. d24ee9032 Update usage in backtest. No functional update. d9f838a65 Update template usage to reflect changes. 3166739ec Update strategy callback params and description. 95e009b9c Update adjustment functionality and add cancelation option 2cac1b7dc Add new (user cancellation) reason. 541147c80 Update documentation to match feature changes. 17da4ca09 Use order_date_utc 698c25f13 Fix issues reported by flake. 237d116d8 Update existing tests to use the new func name. 452f44206 Add new callback to advanced template. bf5799ef9 Add new functionality to backtesting. f8a7fdd5e Add new callback to strategy interface. 317c1e074 Add option to handle_cancel_enter to prevent closing trade. 76c545ba0 Reorganize, rename, redescribe and add new functionality e5d4f7766 Add new cancel reason for when replacing orders. 16b6b0822 Update docs to include info on new functionality. c8e468783 Plots and hyperopt 47a6ef4f0 Max relative drawdown da0688b6a Revert "Add exchange id for binance Futures" 3c8387ab6 Add exchange id for binance Futures ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 4 years ago

FreqAI - 2022.5

Highlighted changes

  • New adjust_entry_price() callback - to adjust open entry limit orders.
  • New command convert-db to migrate databases between database systems.
  • Dry-run orders no longer reset on bot restart.
  • Certain Protections can now only look at longs or shorts, and only lock this direction.
  • Updated binance leverage tiers to contain new pairs.
  • Multiple exit-sigals are evaluated in sequence, causing changed behavior for confirm_trade_exit(), which can now be called multiple times for the same trade with different exit signal types.
  • download-data now respects the timerange end date.
  • download-data now allows data-prepending.
  • LowProfitPairs now supports "onlyperside" for futures trading.
  • Fixed OKX historic data download (:warning: Warning- requires manual clearing and redownload of existing data)

How to update

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

docker-compose

bash 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 ``` a1d54f5ae Version bump 2022.5 3e7bf6a9e Remove imports in test_strategy2 b04fe5d4e Simplify test v2 strategy 24cf04464 Fix bybit spot mode 682daa4e9 Reset logging mixin to avoid random test failure e1c6cf5f9 fix typo 537d10c62 Improve some typing 3e66275c9 Refactor bot_start to separate function 023f81717 Improve wording for supported futures exchanges b2968df5d Fix some type problems 43f726ba8 Run CI against different templates a8ee77cd5 Simplify backtesting typechecking 904f094b8 Don't reassign method, but implement it properly 0a713faca Fix some type errors f1a72e448 Align interfaces and strategy templates 3f68c3b68 Update some types 502404c0c Use pyproject.toml instead of setup.cfg 7f4161ff7 Add typehints to strategy wrapper 07ec3b27f Add typing information to retrier decorator 42ae8ba6f Refactor hyperopt parameters to separate file 5c4014ee6 Change default value of process_only_new_candles to True since False is an uncommon usecase for expert strategy devs 34b1231df Bump filelock-precommit b88dfe429 Bump types-filelock from 3.2.5 to 3.2.6 cc3ec279c Bump dateutil types precommit 596aeec65 Bump scikit-learn from 1.1.0 to 1.1.1 66497c28e Bump pre-commit requests types 7f5650699 Bump types-requests from 2.27.25 to 2.27.27 34657639f Bump numpy from 1.22.3 to 1.22.4 ff9dcfe78 Bump types-python-dateutil from 2.8.15 to 2.8.16 40f63ae51 Bump scipy from 1.8.0 to 1.8.1 f819fafa1 Bump psutil from 5.9.0 to 5.9.1 27019339b Bump ccxt from 1.83.12 to 1.83.62 e3beaae8b update hyperopt typing 0b5544ef9 Stoploss fill should fill as "filled" notification 938a66511 Update Documentation for new confirm_trade_exit behavior 3692fcd3d Improve exit signal sequence ce3bfd59f Add explicit should_sell test b7388557a Update interface tests bdb904e71 Should_exit should return all sell signals 1315d0243 Fix startup sending "longed" messages for open stoplosses 26d394ca7 Add liquidation Price to api response ea8fda0de Slightly improve test f006978ca Be more explicit in default value 681ef1317 Relax dry-run leverage test-case to simplify future updates 97abcf4b3 Add documentation for leverage_tiers update 963cc17c1 Update leveraged tiers 0d388b561 Add test for "combine_funding_and_mark", fix bug 2df42a303 Move "funding fillup" logic to exchange class 6bd5535d6 Use exchange method to combine funding and mark candles 0e158b66b Update docs link c499a92f5 Remove surplus mark columns, and make fillna on funding rate only c3e3188c6 Rename variable 843bf0631 Remove Sponsored Promotions b3acfb3c6 Bump ccxt to 1.83.12 2cf17e04b Init persistence for tests that use dry-run orders 46ea135b6 Update dry-run considerations 219363fff Check for both ask and bid in SpreadFilter 56a73575a Add explicit test for order_to_ccxt 5e18e51ce Fix some tests a3d9384bc Remove clean-dry-run code 0a95ef6ab Don't reset open orders in dry-run on restart 363098d32 Fix reversed makr/funding_rate columns 736f9f497 Fix docs and add outer join support for merging funding rates across full timerange d5486f17d Update Test to use StrategyV3 c41d4c4f4 Fix leverage docs 37e4ede65 Fix flake issues bb758da94 Add support for fudging unavailable funding rates, allowing backtesting of timeranges where futures candles are available, but rates are not c6bf6779f Update docs BT sample report and details. bb7ffd8fb Update testcases relying on BT results. 0585b378b BT: Report canceled/replaced orders also. 6e8f24f6a BT: track canceled/replaced orders also. 905b24bd4 Update BT report detailing. a2a8e4fdc Update doc BT sample report. 99aea454b Update testcases to match reporting. f2e2e5723 Report trade entries canceled by user. fb7c0792c Track trade entries canceled by user. 76637d393 Simplify timeframe-transition 2e65a1793 Add fallback to load 1M files as well as 1Mo files a1048fb61 Store monthly candles as "Mo" 9607d0427 Improve ccxt imports d09b46293 Add rudimentary tests for Precise "builtin operator" workings c8e0fc926 Update to do Builtin Precise math a793cf8f0 Use ccxt's "precise" to do precise math 528509f80 Extract get_price_side from get_rate f5183df0f Bump scikit-learn from 1.0.2 to 1.1.0 bd65236e1 Bump pyjwt from 2.3.0 to 2.4.0 dd1b84f93 Bump filelock from 3.6.0 to 3.7.0 a8b4066f8 Bump mkdocs-material from 8.2.14 to 8.2.15 9e44d6977 Bump ccxt from 1.81.81 to 1.82.61 9fc21686e Bump flake8-tidy-imports from 4.7.0 to 4.8.0 748055892 Bump plotly from 5.7.0 to 5.8.0 47c116a42 Bump fastapi from 0.76.0 to 0.78.0 4fc6857d8 Bump time-machine from 2.6.0 to 2.7.0 2cb8eecf1 add space e21f6a778 missing newline 008ee1488 Improve ci to run on ubuntu 22.04 86af3fe0e Update image versions from 3.9 to 3.10 a0b25938f Fix exit_reason assignment in backtesting a8f064a8c Fix exit_reason assignment in live mode 706994340 Fix bad docstring 18fd3bb33 Update stoploss handling for entry-order adjustment 9143e9ecb Add some safety measures for new startup_candles verification d60d0f64d Revert ohlcv_candle_limit logic for okx 116b58e97 add "date_minus_candles" method a947a1316 Add test to ensure stoploss is set properly in live 3b1443924 Slightly improve performance of order adjusts c27e0a0a1 Allow SL refresh only if no filled entry orders. ec54b47b6 Flake fix. 1c20fb763 Refresh open_rate and stoploss on order replacement. 5767d652b Add explicit test and document behavior 2a1368d50 Offsetfilter: add number_assets parameter bb1b283d9 Update some ohlcv_candle_limit calls 111b04c9e Okx - conditional candle-length 64668b11d add ohlcv_has_history - disabling kraken downloads 64670726a flake8 fix 9d13c8729 cleaned up backtesting 71a80cab3 fixed variable naming style 8a3c2c6ca Corrected docstring c299601ec Add warning about OKX futures backtesting data 1fc041d0d Fix formatting issue b2b503f04 minor polish for explanation of --breakdown 8a6a6ec91 corrected minor "typo" in formatting f374c9da7 PR cleanup 044afdf7a Add better test scenario 31cce741a Add sequence migration 269630e75 Add preliminary documentation for database conversion c19be34e7 Add rudimentary test for db migration 0958c06b8 Implement database migration to other system c3b0f6b64 Add feature shell for database conversion 35ec657ef Bump types-tabulate==0.8.9 precommit a5beacbdd Bump types-tabulate from 0.8.8 to 0.8.9 2dd655eda Bump pre-commit from 2.18.1 to 2.19.0 5080245a7 Bump ccxt from 1.81.43 to 1.81.81 0756027e3 BUmp types-python-dateutil precommit 69b79cd79 Bump types-python-dateutil from 2.8.14 to 2.8.15 1ae74c119 Bump flake8-tidy-imports from 4.6.0 to 4.7.0 77a22a6b1 Bump fastapi from 0.75.2 to 0.76.0 74b309cf5 Bump jsonschema from 4.4.0 to 4.5.1 30cc8e92a Bump mkdocs-material from 8.2.12 to 8.2.14 df48399a9 Bump cryptography from 37.0.1 to 37.0.2 f71b2624a then -> than 30d6eeffd Fix migration bug b58e811b1 Move trade/order Models to their own class af1a5e044 Extract base and Pairlock from models file 3221726d8 Update migration to use boolean value 4a7515e66 Add test for 0.0 case 1436bc1a7 Update list-strategies command f43ae0ea4 logged balance details d79b90a98 consistent exchange name 45b328af2 explicitly call cleanup when cleaning backtest bfc789865 Report profit only on filled entries. 277e07589 update/fix some comments and docs eca8d16c6 Minor fix and enhancement for TC51. f5f599c7f Add LowProfitPairs only_per_side option dc0c1bf87 Only fetch accounts when authenticated. 149704e74 Fix wrong type 6fdcf3a10 Support both position modes on OKX 2da284b92 Properly type side for create_order 68a97a898 Disable scheduled notification in CI 108903f7f Add DCA order adjust test 70bac41d8 Add more backtest test scenarios 182a6f475 Minor typos. 5b3eaa300 Ensure advanced strategy template is runnable d11c44940 Slightly reword docs 2d9be6dac move open_rate updating to close_bt_order 29f1edbde Cleanup. Remove stray new line. 2bed0eab0 BT: Update trade open_rate on first filled order. 25c74e26d Models:Trade: Revert trade open_rate update. 1a37c6ff4 Bump ccxt to 1.81.43 ae01afdd0 Models:Trade: Fix open_rate updates. dbecc097d Models:Trade: Update trade open_rate based on lastest order. b2f33944e Add preliminary backtesting test 5c82cce06 Fix new test failures ce035a594 Add bot_loop_start() call in plotting.py 091cb4fb8 Reduce no stake amount verbosity eb996a152 Fix fee handling for futures trades 8e1cdb910 Update setup.sh 7a5762991 Keep Backtest-metrics aligned 3f64c6307 Maintain compatibility with old backtest results 1e2523af6 Fix some assumptions on the data 4c7460107 Freqtradebot: Cleanup stray debug messages. 59397cdd1 Freqtradebot: Fix full cancel logging location. b83cd95a0 Tests: add basic testcases for entry adjustment. 2a6efab8a Don't use deprecated abstractclassmethod decorator 38dffe1ed types-tabulate - pre-commit update 24ce90ba9 Bump types-tabulate from 0.8.7 to 0.8.8 67dd9be95 Bump sqlalchemy from 1.4.35 to 1.4.36 71ae92274 Bump pre-commit dependency 49c1b310c Bump pre-commit types ba28fa6c3 Bump cryptography from 36.0.2 to 37.0.1 9de0652b2 Bump jinja2 from 3.1.1 to 3.1.2 093bea423 Bump types-requests from 2.27.20 to 2.27.25 73aafb886 Bump ccxt from 1.80.61 to 1.81.16 4990534bf Bump mypy from 0.942 to 0.950 3d730661e Bump mkdocs-material from 8.2.10 to 8.2.12 a0e27d82a Bump types-python-dateutil from 2.8.12 to 2.8.14 7160f9085 Update summary examples f9244aad9 Fix on max drawdown formula to match tests 4e43194df BT: Refactor open order management. 2cedbe570 Fix documentation mishap 9d205132d Revert unintended comment change. 8c19953cd Quick exit when order should be maintained. 8b5d454b5 Fix subtle bug in trades download e49b3ef05 Improve message formatting f6a7e6b78 Add prepend option to download-data 11d447cd5 Add support for download-data "until" ad0c5d944 Refactor entry adjustment for backtesting. f9977c26e Full cancel only for non DCA trades. 17650d7e6 Maintain existing order. Update functionality and documentation bc5048e4f Update to backtesting.md 444425907 Fix hyperopt-loss interface to enforce kwargs 5ff2261b7 Improve test to explicitly test for dates 9bc6bbe47 Improve test for max_drawdown calculations e8aec967d Update on note 086cc6be9 Correction on tests 4de0fdbfc Minor edits found during review 662319210 improve doc wording 737bdfe84 Use "side" parameter when calling Pairlocks 144e4da96 Update stoploss guard tests b0a8bf302 Show lock side 4942d7369 update pairlock tests 845f960a4 realign pairlock naming to side fc201bb4f implement pairlock side further 420836b1b Update test naming 7c79d937e Properly type "side" parameter b7cada1ed Convert ProtectionReturn to dataclass 9e199165b Update protection-interface to support per-side locks 6ff3b178b Add direction column to pairlocks 0f943c482 PEP8 code compliance 76558f284 Fix user cancellation functionality. d24ee9032 Update usage in backtest. No functional update. d9f838a65 Update template usage to reflect changes. 3166739ec Update strategy callback params and description. 95e009b9c Update adjustment functionality and add cancelation option 2cac1b7dc Add new (user cancellation) reason. 541147c80 Update documentation to match feature changes. 17da4ca09 Use order_date_utc 698c25f13 Fix issues reported by flake. 237d116d8 Update existing tests to use the new func name. 452f44206 Add new callback to advanced template. bf5799ef9 Add new functionality to backtesting. f8a7fdd5e Add new callback to strategy interface. 317c1e074 Add option to handle_cancel_enter to prevent closing trade. 76c545ba0 Reorganize, rename, redescribe and add new functionality e5d4f7766 Add new cancel reason for when replacing orders. 16b6b0822 Update docs to include info on new functionality. c8e468783 Plots and hyperopt 47a6ef4f0 Max relative drawdown da0688b6a Revert "Add exchange id for binance Futures" 3c8387ab6 Add exchange id for binance Futures ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 4 years ago

FreqAI - 2022.4.2

Highlighted changes

  • Introducing Futures markets (gateio, okx and binance) - which includes short trades and leveraged trading.
  • Revised strategy interface (no immediate migration necessary for spot market bots).
  • Improved backtesting timeout behavior (buy timeouts are now evaluated on the proper candle).
  • Webhook naming changes (sell -> exit).
  • Changed behavior of custom_exit() (formerly custom_sell()) - which is now called independent of exit_profit_only.
  • /forcesell now returns a list interactive trades to exit from when no parameter is specified.
  • FreqUI backtesting mode (freqtrade started with freqtrade webserver) now allows loading historic backtest results.
  • Recursive config loading via add_config_files.
  • Recursive loading of strategies via --recursive-strategy-search.
  • Remove long deprecated V1 strategy interface.
  • Add CAGR calculation to backtesting metrics.
  • New callback bot_start() - which get's called once per bot iteration.

New in 2022.4.2: * bugfix freqUI not loading correctly * bugfix OKX futures fees not always correct

Important notes

If you're looking to get started with futures trading, please make sure to read the strategy migration guide - as well as the leverage documentation page to get up to speed with the changes necessary for the new modes.

:warning: Trading futures with leverage is very risky - please make sure you understand the risks involved. freqtrade is not responsible for any losses.

How to update

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

docker-compose

bash 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 Too big to show - sorry.

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 4 years ago

FreqAI - 2022.4.1

Highlighted changes

  • Introducing Futures markets (gateio, okx and binance) - which includes short trades and leveraged trading.
  • Revised strategy interface (no immediate migration necessary for spot market bots).
  • Improved backtesting timeout behavior (buy timeouts are now evaluated on the proper candle).
  • Webhook naming changes (sell -> exit).
  • Changed behavior of custom_exit() (formerly custom_sell()) - which is now called independent of exit_profit_only.
  • /forcesell now returns a list interactive trades to exit from when no parameter is specified.
  • FreqUI backtesting mode (freqtrade started with freqtrade webserver) now allows loading historic backtest results.
  • Recursive config loading via add_config_files.
  • Recursive loading of strategies via --recursive-strategy-search.
  • Remove long deprecated V1 strategy interface.
  • Add CAGR calculation to backtesting metrics.
  • New callback bot_start() - which get's called once per bot iteration.

Important notes

If you're looking to get started with futures trading, please make sure to read the strategy migration guide - as well as the leverage documentation page to get up to speed with the changes necessary for the new modes.

:warning: Trading futures with leverage is very risky - please make sure you understand the risks involved. freqtrade is not responsible for any losses.

How to update

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

docker-compose

bash 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 Too big to show - sorry.

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 4 years ago

FreqAI - 2022.3

Highlighted changes

  • Huobi added as officially supported exchange (including stoploss-on-exchange support).
  • Kucoin stoploss on exchange support.
  • Gate.io stoploss on exchange support.
  • FreqUI:
    • Rename your bots in the UI.
    • New Heikin Ashi mode.
  • Removal of long deprecated ticker_interval.
  • Simplify derived strategies by allowing "local" imports (e.g. from strategyfile import StrategyName).

How to update

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

docker-compose

bash 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 ``` fdfbafbb3 Version bump 2022.3 60f2a12bd Fix wrong datetime conversion 81957e004 Revert false update 2cb24ed31 Added in ms a55bc9c1e Pin jinja in docs requirements 3f98fcb0d all datetime included again d94b84e38 datetime included again dae9f4d87 Update doc clarity, partially revert prior commit 094676def Removed old datetime keys and added timestamp e7418cdcd Remove obsolete note box 487d3e891 Revert version to develop for now c28e0b0d0 Bump types-tabulate from 0.8.5 to 0.8.6 7170b585f Bump mypy from 0.940 to 0.941 057db5aaa Bump types-requests from 2.27.12 to 2.27.14 03090d8f3 Bump pytest from 7.1.0 to 7.1.1 1a37100bd Bump types-python-dateutil from 2.8.9 to 2.8.10 5a136f04d Bump ccxt from 1.76.5 to 1.76.65 59c7403b1 Bump urllib3 from 1.26.8 to 1.26.9 1bc5d449a Bump cryptography from 36.0.1 to 36.0.2 f5e71a67f Bump pymdown-extensions from 9.2 to 9.3 e9c4e6a69 Update derived strategy documentation 6ec7b84b9 Modify hyperoptable strategy to use relative importing 49e087df5 Allow Strategy subclassing in different files by enabling local imports fcec071a0 Use order date to fetch trades 8556e6a05 Automatically assign buy-tag to force-buys aceaa3fae remove last ticker_interval compatibility shim 0f76b2373 update deprecation message for ticker_interval eb08b9218 Raise exception when ticker_interval is set. 95f69b905 Remove ticker_interval support 73fc344eb Improve wording in docs f55db8e26 Spreadfilter should fail to start if fetchTickers is not supported 96bf82dbc Remove gateio broker program 6024fa482 Use brackets to break IF lines 47317e0f0 version: use 'contains' to check for "develop" instead of literal comparison 89aae71c3 correcting docs for pricing of ask strategy 18030a30e Add exchange parameter to test-pairlist command 5462ff0eb Bump mypy from 0.931 to 0.940 404d700a7 Raise min-requirement for ccxt 3fbe4a994 Bump numpy from 1.22.2 to 1.22.3 a7133f197 Bump nbconvert from 6.4.2 to 6.4.4 4cbdc9a74 Bump types-requests from 2.27.11 to 2.27.12 3fc1c94ab Bump ccxt from 1.75.12 to 1.76.5 3a0ad2f26 Bump uvicorn from 0.17.5 to 0.17.6 7764ad154 Bump types-cachetools from 4.2.10 to 5.0.0 be5b0acfb Bump pytest from 7.0.1 to 7.1.0 c63b5fbbb Use last to get rates for /balance endpoints 32c06f4a0 Improve test 3133be19e Update precisionfilter to use last instead of ask or bid. 7146122f4 Update docstring b8b56d95f Update missleading docstring 9107819c9 Fix order migration "forgetting" average 843606c9c gateio stoploss adjust 91549d325 Revert "stoploss_adjust fixed breaking tests" 7e7e59637 Revert "moved binance.stoploss_adjust to exchange class" 2ba79a32a Update docs/exchanges.md f343036e6 Add stoploss-ordertypes mapping for gateio 7825d855c Fix flake8 error in tests 11c76c3c8 Check if timeframe is available before calling exchange 24f480b4c Double-check stoploss behaviour 9ff52c0a9 Add test for emergencysell behaviour 6f4d60790 stoploss_adjust fixed breaking tests 7db28b1b1 gateio stoploss docs 6bb93bdc2 moved binance.stoploss_adjust to exchange class 6e10439f9 Map usdt fiat to correct coingecko fiat d47274066 Added stoploss_on_exchange flag to gateio ae4742afc test_fetch_stoploss_order_gateio and test_cancel_stoploss_order_gateio e3ced55f5 gateio.fetch_order and gateio.cancel_order 61182f849 exchange.fetch_order and exchange.cancel_order added params argument f2ed6165e convert price to precision price before verifying stoploss adjustment 17041b78f Add stoploss-limit-ratio to full config sample 3c83d8c74 Bump actions/setup-python from 2 to 3 25964f70d Bump actions/checkout from 2 to 3 0c8dd7e50 Bump ccxt from 1.74.63 to 1.75.12 f1d2cb9ce Bump types-cachetools from 4.2.9 to 4.2.10 1d63bb66a Bump mkdocs-material from 8.2.3 to 8.2.5 67a8b8b63 Bump pytest-asyncio from 0.18.1 to 0.18.2 708def3d9 Bump sqlalchemy from 1.4.31 to 1.4.32 d74e3091d Bump fastapi from 0.74.1 to 0.75.0 be4bc4955 Explicitly check for None to determine if initial stoploss was set c0e12d632 Add FTX ref links e9456cdf1 Update trade response to use a single Order object 17c9c3caf Enable orders via API 71be547d8 Bump ccxt to 1.74.63 abc8854b5 setup.sh install gettext for mac f74de1cca Improve Backtesting "wrong setup" message to include tradable_balance 54165662c Don't require unfilledtimeout, it's optional. 69cfb0b27 Revert change to telegram - this should be handled at the source a2c987937 Reset sell-reason if order is cancelled f26247e8e Revert wrong version string 68bc2a610 Add huobi to ccxt compat tests 207b211e5 Bump fastapi from 0.74.0 to 0.74.1 42fbec417 Bump ccxt from 1.74.17 to 1.74.43 faf6a35ad Bump types-requests from 2.27.10 to 2.27.11 590944a60 Bump mkdocs-material from 8.2.1 to 8.2.3 1ac360674 Update Readme quickstart 0ebf40f39 Don't call amount_to_precision twice on entry 41316abb5 Sort supported exchanges alphabetically 14d49e85a Update Huobi stoploss to shared method a1f2f6dde Updates required for huobi datadownload f3421dfa9 Use unified stopPrice argument 1b91be08f Add huobi to list of supported exchanges 292c35088 Add stoploss support for huobi 9504b3eb0 Improve huobi config generation ee7bc5572 Add huobi to Exchange setup 2ec1a7b37 Add huobi exchange class 3942b30eb Add kraken TODO 6caa5f713 Update dry-run behaviour 074919909 Add stoploss tests for kucoin 020729cf5 update docs about kucoin stoploss 768b526c3 Add kucoin stoploss on exchange 7ba92086c Make stoploss method more flexible ea197b79c Add some more logic to stoploss 1d57ce19e Move stoploss -limit implemenentation to exchange class, as this seems to be used by multiple exchanges. df726a54f cater for case where sell limit order expired ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 4 years ago

FreqAI - 2022.2.2

Highlighted changes

  • Remove shift in backtesting columns - so buy/sell/tag columns are available correctly via dataprovider
  • Added /health endpoint, showing the time of the last completed bot-cycle.
  • Improved "status" message when using multiple trade entries.
  • Improved sorting for PerformanceFilter for pairs without prior result (prior pairlist-ordering is kept for these pairs).
  • Changed sqlite mode to "wal" - fixing rare concurrency issues.
  • Backtesting improvements
    • dataframes retrieved via dataprovider no longer have shifted signals
    • Timeout handling - this will change how custom-pricing works in backtesting. check_buy_timeout() and check_sell_timeout() are now called in backtesting for orders with prices outside of the opening candle.

2022.2:

Fix coingecko duplicate USDT mapping

How to update

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

docker-compose

bash 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 ``` f9d10a7fa Version bump 2022.2.1 7883160ce Update to fstrings 018c62005 Fix 0 Division error on exchanges without average a0b42c7aa gitignore sqlite temporary files 5826698c0 Don't emergencysell partial sold exit e88b022cd Version bump 2022.2 4b7271df4 Improve wording, add Picture detailing what must be installed. 3b1b66bee Prevent backtest starting when not in webserver mode 42df65d4e Make sure backtesting is cleaned up in tests 731eb9971 Update mock-trade creation to rollback first 5a4f30d1b Don't specially handle empty results. 1f9ed0bef Add test for wal mode 02ce0dc02 Set journal mode to wal for sqlite databases b9a99bd0b Bump python-rapidjson from 1.5 to 1.6 7b6a0f7a1 Bump uvicorn from 0.17.4 to 0.17.5 d354f1f84 Bump mkdocs-material from 8.1.11 to 8.2.1 317487fef Bump ccxt from 1.72.98 to 1.73.70 dc8e9bab4 Bump fastapi from 0.73.0 to 0.74.0 d1cded353 Bump filelock from 3.4.2 to 3.6.0 21b5f56f7 Bump types-requests from 2.27.9 to 2.27.10 fddacfeda Remove returntype a24586cd4 Update migrations for new column 6fb5b22a8 Some cleanup dc7bcf5dd Update failing test db540dc99 Orders should also store fee if in receiving currency e9f451406 Use correct order id 874c161f7 Update more tests to use order_obj to update trade 508e677d7 Fix some tests to call update_trade with order object 1b1216fc8 Rename update_trade method c13eed217 use Order object to update trade d610b6305 Improve /balance output by removing trailing zeros a7a25bb28 Update "round coin value" to trim trailing zeros a32aed222 Update FTX stoploss code to avoid exception for stoploss-market orders 3785f04be Handle empty min stake amount as observed on FTX 0bbbe2e96 Add test for #6429 60d1e7fc6 fix stake amt 95d4a11bb add precision eb88c0f71 fixed stake amount e60553b8f Add max_entry_position hyperopt to docs e7bfb4fd5 Add test case for "sell below close" case b043697d7 Update config_full.example.json 78a93b605 noqa 3787b747a Simplify api schema by not using union types 64b98989d Update open candle ROI condition 7b2e33b0b corrects typo 30f6dbfc4 Attempt fix for #6261 acd7f26a9 update tc36 to properly cover #6261 5cc6c2afe Bump pytest-asyncio from 0.17.2 to 0.18.1 5062c17ac Bump pandas from 1.4.0 to 1.4.1 04c20afec Bump nbconvert from 6.4.1 to 6.4.2 7f8e956b4 Bump types-requests from 2.27.8 to 2.27.9 22036d69d Bump mkdocs-material from 8.1.10 to 8.1.11 b18e44bc4 Bump pytest from 7.0.0 to 7.0.1 1674beed9 Bump ccxt from 1.72.36 to 1.72.98 03d4002be Bump pymdown-extensions from 9.1 to 9.2 be8accebd Bump plotly from 5.5.0 to 5.6.0 ca6291479 Bump prompt-toolkit from 3.0.26 to 3.0.28 b1b8167b5 Update stop documentation c769e9757 Improve "order refind" to also work for stoploss orders 119d4d520 select_order should use ft_order_side, not the exchange specific one 08803524b align variable naming to use current_time c9cfc246f Sort /forcebuy pairs alphabetically, add cancel button 6511b3bec fix: rename buy_tag to entry_tag d563bfc3d feature: add buy tag to forcebuy 6a5910386 update wallets in backtesting to ensure a fresh wallet is used be84a028c Avoid mixed types in the api for /stats af984bdc0 Update comment regarting NaT replacement 7252cf47f Update url to include campaign tracking 45c03f144 Docstrings are evaluated, while comments are not a6a041526 Update intro message 1ba9b70af Improve index/readme wording 6d3803fa2 Add TokenBot promo 4e2f06fe9 Simplify band-aid code 6191288ff Add test for NaT problematic 1d10d2c87 Okex -> okx 172e018d2 Add probit to list of non-working exchanges dcf8ad36f Backtesting should not allow unrealistic (automatic-filling) orders. 926b01798 Fix freqUI charts not displaying when dtype(datetime) column has NaT values 118ae8a3d Fix api_schemas/json_encoders by manually converting NaT values to empty Strings b192c8273 Only call "custom_exit_price" for limit orders d2dbe8f8d Improve doc wording 85767d0d7 Add timedout_*_orders to tests 036c2888b Track timedout entry/exit orders 380e383ee Add log_Responses to full config example 4bce64b42 commented method deletition 92d1f2b94 fix tests 7811a36ae max_drawdown_abs calc fix & .DS_Store deletition 5047492f5 gitignore .ds_store files 8cdb6e077 DRAWDOWN_MULT back to a higher value as built-in for safer HOs first f31fa07b3 Bump numpy from 1.22.1 to 1.22.2 2893d0b50 proper var name 94b546228 Bump python-telegram-bot from 13.10 to 13.11 b8af4bf8f Bump mkdocs-material from 8.1.9 to 8.1.10 110a270a0 Bump uvicorn from 0.17.1 to 0.17.4 576d5a5b4 Bump types-requests from 2.27.7 to 2.27.8 1e4368328 Bump ccxt from 1.71.73 to 1.72.36 22e395af8 Bump pytest from 6.2.5 to 7.0.0 e24c837e1 Bump scipy from 1.7.3 to 1.8.0 099a03f19 flake8 6d91a5ecb Change "buy" and "sell" to "entry" and "exit" 7d3b80fbd isort fix and leftover cleaning 6b5f63d4d change profit_ratio by profit_abs ee2a7a968 Add tests for /status on closed trades 5eb502985 Performancefilter - improve sorting ef086d438 Update PerformanceFilter test to run with USDT pairs c19f3950d Add losing trade to usdt_mock_trades 0b01fcf04 Add ProfitDrawdownHyperoptLoss method b657d2d8d Add Github funding 7232324eb Update missing doc segment da73e754b Explicit map coingecko symbol to ID for bnb and sol 8f2425e49 Add rudimentary tests for pg-specific stuff 644442e2f Track timedout orders 17d748dd4 Improve handling of left_open_trades 2a3ab1ef6 1 more line to be hidden 6b9696057 Update documentation to require python3.8 everywhere 4cf514e29 fix flake8 131b2d68d reduce complexity (flake8) 0477070fa hide some lines if trade is closed c4a54cc9c refinement of status cfaf13c90 update 82006ff1d Update setup.sh 22173851d Detail tests for custom exit pricing 2a59ef731 Add detail tests for timeout behaviour 808cefe52 Update order_selection logic 9bf86bbe2 Extract backtesting row validation to separate function 58fad7277 Update wallets when necessary e08006ea2 Adjust tests to use order Object 4ea79a32e Use Order object for ft_timeout check 1e603985c Extract backtesting order cancelling 6637dacd7 Extract protections in backtesting 7ac44380f Extract backtest order closing to models class 090554f19 Try fill backtest order imediately for adjusted order f4149ee46 Force ROI to be within candle 44e616c26 Add unfilledtimeout to required props for backtesting 49cecf1cb Small cosmetic fix 9140679bf Backtest order timeout continued. 15698dd1c Fix errors so it runs, implement timeout handling. f7a1cabe2 Add first version to fill orders "later" in backtesting c12e5a3b6 Initial idea backtesting order timeout 761f7fdef fix: linter e84a58de2 fix: don't use different configuration keys, just add as 2nd argument a3e045f69 Plotting: add alias `--backtest-filename` for `--export-filename` f8faf748d Simplify prepare_buy_details 1e6362deb Add test for new /status telegram message 29879bb41 Update wording to entry/exit 15d538956 Update /health endpoint to be in local timezone 5d0c2bcb4 Shift candles after pushing them to dataprovider 4b9d55dbe Add test for backtest dataprovider 1f26709ac changes e72c3ec19 Commit just to force tests to run again. 78986a0de I sort managed to fit it on another row. Impressive. acf6e9459 Fix unittest. bf62fc9b2 Add /health endpoint that returns last_process timestamp, fix issue #6009 480ed90a0 create to_json function for Order bd4014e1e Small cleanup 05046b9ee Add more info on status message 3d94d7df5 Update migrations for mariadb c265f3932 Update sequences for postgres 19948a6f8 Try fix sequence migrations 5dca183b7 Combine order and Trade migrations to better facilitate migrations in advanced DB systems ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 4 years ago

FreqAI - 2022.2.1

Highlighted changes

  • Remove shift in backtesting columns - so buy/sell/tag columns are available correctly via dataprovider
  • Added /health endpoint, showing the time of the last completed bot-cycle.
  • Improved "status" message when using multiple trade entries.
  • Improved sorting for PerformanceFilter for pairs without prior result (prior pairlist-ordering is kept for these pairs).
  • Changed sqlite mode to "wal" - fixing rare concurrency issues.
  • Backtesting improvements
    • dataframes retrieved via dataprovider no longer have shifted signals
    • Timeout handling - this will change how custom-pricing works in backtesting. check_buy_timeout() and check_sell_timeout() are now called in backtesting for orders with prices outside of the opening candle.

How to update

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

docker-compose

bash 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 ``` f9d10a7fa Version bump 2022.2.1 7883160ce Update to fstrings 018c62005 Fix 0 Division error on exchanges without average a0b42c7aa gitignore sqlite temporary files 5826698c0 Don't emergencysell partial sold exit e88b022cd Version bump 2022.2 4b7271df4 Improve wording, add Picture detailing what must be installed. 3b1b66bee Prevent backtest starting when not in webserver mode 42df65d4e Make sure backtesting is cleaned up in tests 731eb9971 Update mock-trade creation to rollback first 5a4f30d1b Don't specially handle empty results. 1f9ed0bef Add test for wal mode 02ce0dc02 Set journal mode to wal for sqlite databases b9a99bd0b Bump python-rapidjson from 1.5 to 1.6 7b6a0f7a1 Bump uvicorn from 0.17.4 to 0.17.5 d354f1f84 Bump mkdocs-material from 8.1.11 to 8.2.1 317487fef Bump ccxt from 1.72.98 to 1.73.70 dc8e9bab4 Bump fastapi from 0.73.0 to 0.74.0 d1cded353 Bump filelock from 3.4.2 to 3.6.0 21b5f56f7 Bump types-requests from 2.27.9 to 2.27.10 fddacfeda Remove returntype a24586cd4 Update migrations for new column 6fb5b22a8 Some cleanup dc7bcf5dd Update failing test db540dc99 Orders should also store fee if in receiving currency e9f451406 Use correct order id 874c161f7 Update more tests to use order_obj to update trade 508e677d7 Fix some tests to call update_trade with order object 1b1216fc8 Rename update_trade method c13eed217 use Order object to update trade d610b6305 Improve /balance output by removing trailing zeros a7a25bb28 Update "round coin value" to trim trailing zeros a32aed222 Update FTX stoploss code to avoid exception for stoploss-market orders 3785f04be Handle empty min stake amount as observed on FTX 0bbbe2e96 Add test for #6429 60d1e7fc6 fix stake amt 95d4a11bb add precision eb88c0f71 fixed stake amount e60553b8f Add max_entry_position hyperopt to docs e7bfb4fd5 Add test case for "sell below close" case b043697d7 Update config_full.example.json 78a93b605 noqa 3787b747a Simplify api schema by not using union types 64b98989d Update open candle ROI condition 7b2e33b0b corrects typo 30f6dbfc4 Attempt fix for #6261 acd7f26a9 update tc36 to properly cover #6261 5cc6c2afe Bump pytest-asyncio from 0.17.2 to 0.18.1 5062c17ac Bump pandas from 1.4.0 to 1.4.1 04c20afec Bump nbconvert from 6.4.1 to 6.4.2 7f8e956b4 Bump types-requests from 2.27.8 to 2.27.9 22036d69d Bump mkdocs-material from 8.1.10 to 8.1.11 b18e44bc4 Bump pytest from 7.0.0 to 7.0.1 1674beed9 Bump ccxt from 1.72.36 to 1.72.98 03d4002be Bump pymdown-extensions from 9.1 to 9.2 be8accebd Bump plotly from 5.5.0 to 5.6.0 ca6291479 Bump prompt-toolkit from 3.0.26 to 3.0.28 b1b8167b5 Update stop documentation c769e9757 Improve "order refind" to also work for stoploss orders 119d4d520 select_order should use ft_order_side, not the exchange specific one 08803524b align variable naming to use current_time c9cfc246f Sort /forcebuy pairs alphabetically, add cancel button 6511b3bec fix: rename buy_tag to entry_tag d563bfc3d feature: add buy tag to forcebuy 6a5910386 update wallets in backtesting to ensure a fresh wallet is used be84a028c Avoid mixed types in the api for /stats af984bdc0 Update comment regarting NaT replacement 7252cf47f Update url to include campaign tracking 45c03f144 Docstrings are evaluated, while comments are not a6a041526 Update intro message 1ba9b70af Improve index/readme wording 6d3803fa2 Add TokenBot promo 4e2f06fe9 Simplify band-aid code 6191288ff Add test for NaT problematic 1d10d2c87 Okex -> okx 172e018d2 Add probit to list of non-working exchanges dcf8ad36f Backtesting should not allow unrealistic (automatic-filling) orders. 926b01798 Fix freqUI charts not displaying when dtype(datetime) column has NaT values 118ae8a3d Fix api_schemas/json_encoders by manually converting NaT values to empty Strings b192c8273 Only call "custom_exit_price" for limit orders d2dbe8f8d Improve doc wording 85767d0d7 Add timedout_*_orders to tests 036c2888b Track timedout entry/exit orders 380e383ee Add log_Responses to full config example 4bce64b42 commented method deletition 92d1f2b94 fix tests 7811a36ae max_drawdown_abs calc fix & .DS_Store deletition 5047492f5 gitignore .ds_store files 8cdb6e077 DRAWDOWN_MULT back to a higher value as built-in for safer HOs first f31fa07b3 Bump numpy from 1.22.1 to 1.22.2 2893d0b50 proper var name 94b546228 Bump python-telegram-bot from 13.10 to 13.11 b8af4bf8f Bump mkdocs-material from 8.1.9 to 8.1.10 110a270a0 Bump uvicorn from 0.17.1 to 0.17.4 576d5a5b4 Bump types-requests from 2.27.7 to 2.27.8 1e4368328 Bump ccxt from 1.71.73 to 1.72.36 22e395af8 Bump pytest from 6.2.5 to 7.0.0 e24c837e1 Bump scipy from 1.7.3 to 1.8.0 099a03f19 flake8 6d91a5ecb Change "buy" and "sell" to "entry" and "exit" 7d3b80fbd isort fix and leftover cleaning 6b5f63d4d change profit_ratio by profit_abs ee2a7a968 Add tests for /status on closed trades 5eb502985 Performancefilter - improve sorting ef086d438 Update PerformanceFilter test to run with USDT pairs c19f3950d Add losing trade to usdt_mock_trades 0b01fcf04 Add ProfitDrawdownHyperoptLoss method b657d2d8d Add Github funding 7232324eb Update missing doc segment da73e754b Explicit map coingecko symbol to ID for bnb and sol 8f2425e49 Add rudimentary tests for pg-specific stuff 644442e2f Track timedout orders 17d748dd4 Improve handling of left_open_trades 2a3ab1ef6 1 more line to be hidden 6b9696057 Update documentation to require python3.8 everywhere 4cf514e29 fix flake8 131b2d68d reduce complexity (flake8) 0477070fa hide some lines if trade is closed c4a54cc9c refinement of status cfaf13c90 update 82006ff1d Update setup.sh 22173851d Detail tests for custom exit pricing 2a59ef731 Add detail tests for timeout behaviour 808cefe52 Update order_selection logic 9bf86bbe2 Extract backtesting row validation to separate function 58fad7277 Update wallets when necessary e08006ea2 Adjust tests to use order Object 4ea79a32e Use Order object for ft_timeout check 1e603985c Extract backtesting order cancelling 6637dacd7 Extract protections in backtesting 7ac44380f Extract backtest order closing to models class 090554f19 Try fill backtest order imediately for adjusted order f4149ee46 Force ROI to be within candle 44e616c26 Add unfilledtimeout to required props for backtesting 49cecf1cb Small cosmetic fix 9140679bf Backtest order timeout continued. 15698dd1c Fix errors so it runs, implement timeout handling. f7a1cabe2 Add first version to fill orders "later" in backtesting c12e5a3b6 Initial idea backtesting order timeout 761f7fdef fix: linter e84a58de2 fix: don't use different configuration keys, just add as 2nd argument a3e045f69 Plotting: add alias `--backtest-filename` for `--export-filename` f8faf748d Simplify prepare_buy_details 1e6362deb Add test for new /status telegram message 29879bb41 Update wording to entry/exit 15d538956 Update /health endpoint to be in local timezone 5d0c2bcb4 Shift candles after pushing them to dataprovider 4b9d55dbe Add test for backtest dataprovider 1f26709ac changes e72c3ec19 Commit just to force tests to run again. 78986a0de I sort managed to fit it on another row. Impressive. acf6e9459 Fix unittest. bf62fc9b2 Add /health endpoint that returns last_process timestamp, fix issue #6009 480ed90a0 create to_json function for Order bd4014e1e Small cleanup 05046b9ee Add more info on status message 3d94d7df5 Update migrations for mariadb c265f3932 Update sequences for postgres 19948a6f8 Try fix sequence migrations 5dca183b7 Combine order and Trade migrations to better facilitate migrations in advanced DB systems ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 4 years ago

FreqAI - 2022.2

Highlighted changes

  • Remove shift in backtesting columns - so buy/sell/tag columns are available correctly via dataprovider
  • Added /health endpoint, showing the time of the last completed bot-cycle.
  • Improved "status" message when using multiple trade entries.
  • Improved sorting for PerformanceFilter for pairs without prior result (prior pairlist-ordering is kept for these pairs).
  • Changed sqlite mode to "wal" - fixing rare concurrency issues.
  • Backtesting improvements
    • dataframes retrieved via dataprovider no longer have shifted signals
    • Timeout handling - this will change how custom-pricing works in backtesting. check_buy_timeout() and check_sell_timeout() are now called in backtesting for orders with prices outside of the opening candle.

How to update

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

docker-compose

bash 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 ``` 3b1b66bee Prevent backtest starting when not in webserver mode 42df65d4e Make sure backtesting is cleaned up in tests 731eb9971 Update mock-trade creation to rollback first 5a4f30d1b Don't specially handle empty results. 1f9ed0bef Add test for wal mode 02ce0dc02 Set journal mode to wal for sqlite databases b9a99bd0b Bump python-rapidjson from 1.5 to 1.6 7b6a0f7a1 Bump uvicorn from 0.17.4 to 0.17.5 d354f1f84 Bump mkdocs-material from 8.1.11 to 8.2.1 317487fef Bump ccxt from 1.72.98 to 1.73.70 dc8e9bab4 Bump fastapi from 0.73.0 to 0.74.0 d1cded353 Bump filelock from 3.4.2 to 3.6.0 21b5f56f7 Bump types-requests from 2.27.9 to 2.27.10 fddacfeda Remove returntype a24586cd4 Update migrations for new column 6fb5b22a8 Some cleanup dc7bcf5dd Update failing test db540dc99 Orders should also store fee if in receiving currency e9f451406 Use correct order id 874c161f7 Update more tests to use order_obj to update trade 508e677d7 Fix some tests to call update_trade with order object 1b1216fc8 Rename update_trade method c13eed217 use Order object to update trade d610b6305 Improve /balance output by removing trailing zeros a7a25bb28 Update "round coin value" to trim trailing zeros a32aed222 Update FTX stoploss code to avoid exception for stoploss-market orders 3785f04be Handle empty min stake amount as observed on FTX 0bbbe2e96 Add test for #6429 60d1e7fc6 fix stake amt 95d4a11bb add precision eb88c0f71 fixed stake amount e60553b8f Add max_entry_position hyperopt to docs e7bfb4fd5 Add test case for "sell below close" case b043697d7 Update config_full.example.json 78a93b605 noqa 3787b747a Simplify api schema by not using union types 64b98989d Update open candle ROI condition 7b2e33b0b corrects typo 30f6dbfc4 Attempt fix for #6261 acd7f26a9 update tc36 to properly cover #6261 5cc6c2afe Bump pytest-asyncio from 0.17.2 to 0.18.1 5062c17ac Bump pandas from 1.4.0 to 1.4.1 04c20afec Bump nbconvert from 6.4.1 to 6.4.2 7f8e956b4 Bump types-requests from 2.27.8 to 2.27.9 22036d69d Bump mkdocs-material from 8.1.10 to 8.1.11 b18e44bc4 Bump pytest from 7.0.0 to 7.0.1 1674beed9 Bump ccxt from 1.72.36 to 1.72.98 03d4002be Bump pymdown-extensions from 9.1 to 9.2 be8accebd Bump plotly from 5.5.0 to 5.6.0 ca6291479 Bump prompt-toolkit from 3.0.26 to 3.0.28 b1b8167b5 Update stop documentation c769e9757 Improve "order refind" to also work for stoploss orders 119d4d520 select_order should use ft_order_side, not the exchange specific one 08803524b align variable naming to use current_time c9cfc246f Sort /forcebuy pairs alphabetically, add cancel button 6511b3bec fix: rename buy_tag to entry_tag d563bfc3d feature: add buy tag to forcebuy 6a5910386 update wallets in backtesting to ensure a fresh wallet is used be84a028c Avoid mixed types in the api for /stats af984bdc0 Update comment regarting NaT replacement 7252cf47f Update url to include campaign tracking 45c03f144 Docstrings are evaluated, while comments are not a6a041526 Update intro message 1ba9b70af Improve index/readme wording 6d3803fa2 Add TokenBot promo 4e2f06fe9 Simplify band-aid code 6191288ff Add test for NaT problematic 1d10d2c87 Okex -> okx 172e018d2 Add probit to list of non-working exchanges dcf8ad36f Backtesting should not allow unrealistic (automatic-filling) orders. 926b01798 Fix freqUI charts not displaying when dtype(datetime) column has NaT values 118ae8a3d Fix api_schemas/json_encoders by manually converting NaT values to empty Strings b192c8273 Only call "custom_exit_price" for limit orders d2dbe8f8d Improve doc wording 85767d0d7 Add timedout_*_orders to tests 036c2888b Track timedout entry/exit orders 380e383ee Add log_Responses to full config example 4bce64b42 commented method deletition 92d1f2b94 fix tests 7811a36ae max_drawdown_abs calc fix & .DS_Store deletition 5047492f5 gitignore .ds_store files 8cdb6e077 DRAWDOWN_MULT back to a higher value as built-in for safer HOs first f31fa07b3 Bump numpy from 1.22.1 to 1.22.2 2893d0b50 proper var name 94b546228 Bump python-telegram-bot from 13.10 to 13.11 b8af4bf8f Bump mkdocs-material from 8.1.9 to 8.1.10 110a270a0 Bump uvicorn from 0.17.1 to 0.17.4 576d5a5b4 Bump types-requests from 2.27.7 to 2.27.8 1e4368328 Bump ccxt from 1.71.73 to 1.72.36 22e395af8 Bump pytest from 6.2.5 to 7.0.0 e24c837e1 Bump scipy from 1.7.3 to 1.8.0 099a03f19 flake8 6d91a5ecb Change "buy" and "sell" to "entry" and "exit" 7d3b80fbd isort fix and leftover cleaning 6b5f63d4d change profit_ratio by profit_abs ee2a7a968 Add tests for /status on closed trades 5eb502985 Performancefilter - improve sorting ef086d438 Update PerformanceFilter test to run with USDT pairs c19f3950d Add losing trade to usdt_mock_trades 0b01fcf04 Add ProfitDrawdownHyperoptLoss method b657d2d8d Add Github funding 7232324eb Update missing doc segment da73e754b Explicit map coingecko symbol to ID for bnb and sol 8f2425e49 Add rudimentary tests for pg-specific stuff 644442e2f Track timedout orders 17d748dd4 Improve handling of left_open_trades 2a3ab1ef6 1 more line to be hidden 6b9696057 Update documentation to require python3.8 everywhere 4cf514e29 fix flake8 131b2d68d reduce complexity (flake8) 0477070fa hide some lines if trade is closed c4a54cc9c refinement of status cfaf13c90 update 82006ff1d Update setup.sh 22173851d Detail tests for custom exit pricing 2a59ef731 Add detail tests for timeout behaviour 808cefe52 Update order_selection logic 9bf86bbe2 Extract backtesting row validation to separate function 58fad7277 Update wallets when necessary e08006ea2 Adjust tests to use order Object 4ea79a32e Use Order object for ft_timeout check 1e603985c Extract backtesting order cancelling 6637dacd7 Extract protections in backtesting 7ac44380f Extract backtest order closing to models class 090554f19 Try fill backtest order imediately for adjusted order f4149ee46 Force ROI to be within candle 44e616c26 Add unfilledtimeout to required props for backtesting 49cecf1cb Small cosmetic fix 9140679bf Backtest order timeout continued. 15698dd1c Fix errors so it runs, implement timeout handling. f7a1cabe2 Add first version to fill orders "later" in backtesting c12e5a3b6 Initial idea backtesting order timeout 761f7fdef fix: linter e84a58de2 fix: don't use different configuration keys, just add as 2nd argument a3e045f69 Plotting: add alias `--backtest-filename` for `--export-filename` f8faf748d Simplify prepare_buy_details 1e6362deb Add test for new /status telegram message 29879bb41 Update wording to entry/exit 15d538956 Update /health endpoint to be in local timezone 5d0c2bcb4 Shift candles after pushing them to dataprovider 4b9d55dbe Add test for backtest dataprovider 1f26709ac changes e72c3ec19 Commit just to force tests to run again. 78986a0de I sort managed to fit it on another row. Impressive. acf6e9459 Fix unittest. bf62fc9b2 Add /health endpoint that returns last_process timestamp, fix issue #6009 480ed90a0 create to_json function for Order bd4014e1e Small cleanup 05046b9ee Add more info on status message 3d94d7df5 Update migrations for mariadb c265f3932 Update sequences for postgres 19948a6f8 Try fix sequence migrations 5dca183b7 Combine order and Trade migrations to better facilitate migrations in advanced DB systems ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 4 years ago

FreqAI - 2022.1

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

bash 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. ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 4 years ago

FreqAI - 2021.12

Highlighted changes

  • Allow forcebuy / forcesell to specify ordertype when called via API.
  • Webhooks now allow a "raw" format, sending messages as text/plain.
  • version() method for strategy, to allow versioning from within the strategy.
  • custom_entry_price() and custom_exit_price() support for backtesting.
  • Added exchange.unknown_fee_rate parameter to allow specifying rates for non-tradable fee currencies (e.g. gateio -> POINT).
  • Remove pairs from the blacklist:
    • Added /blacklist_delete [pairs] or /bl_delete [pairs] to telegram to remove pairs from the blacklist.
    • Add corresponding Delete endpoint to the API.
    • Add "remove" functionality to freqUI.
  • Webhooks now get base_currency - the Coin that's beeing traded.

How to update

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

docker-compose

bash 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 ``` 043218cc7 Version bump to 2021.12 24807515c Fix random test failure 5a546855e Import TTLCache from cachetools 3804a1777 Bump scikit-learn from 1.0.1 to 1.0.2 3cba405b2 Bump filelock from 3.4.0 to 3.4.2 24d16d7da Bump mypy from 0.920 to 0.930 2e84b8f0d Bump types-python-dateutil from 2.8.3 to 2.8.4 470ef7c16 Bump jsonschema from 4.3.1 to 4.3.2 1093f22b8 Bump plotly from 5.4.0 to 5.5.0 e08505862 Bump sqlalchemy from 1.4.28 to 1.4.29 81b383fe5 Bump ccxt from 1.64.44 to 1.65.25 2917cc1f2 Bitpanda's "fetch_my_trades" requires "to" argument 6fdad8c6b Prevent exception, ensure deletion occurs 356b2d3d9 Reestablish backward compatibility b1feb69ca Use Pathlib to delete testfile d11a8928d Fix test not running when user_data contains historical data. 98f6d2d72 Update CI to notify on discord only 110e48c54 Remove travis config file 61dbb6206 Slightly reduce verbosity when reload_conf is issued 9a9cc31d8 Update docs regarding multiarch builds e5aaef644 Fix CI failure 6ba8b17fd Use LoggingMixin.log_once to remove/reduce logs on pairlists 40036bc71 Force dry-run for webserver backtest mode 21da01f77 Bump cryptography from 36.0.0 to 36.0.1 b6f8765d3 Bump mypy from 0.910 to 0.920 cde35509d Bump jsonschema from 4.2.1 to 4.3.1 5a3a5e98d Bump time-machine from 2.4.1 to 2.5.0 44ac002cf Bump types-requests from 2.26.1 to 2.26.2 56d96d6cf Bump ccxt from 1.63.65 to 1.64.44 36632b48c Bump numpy from 1.21.4 to 1.21.5 1b3aaffef Bump mkdocs-material from 8.1.0 to 8.1.3 58c3d69d1 📝 Docs - Added `Any` import ea38b5808 Add base_currency to allowed webhook fields 39f0a17e6 Fix formatting f9aa36f29 Don't hard-fail when executing emergency sell fails b80b5ed1a Improve uri_logging test 9d8646072 Add test case for checking removal of logs for pains in blacklist 793d09056 Improve log message wording for rejected stake amounts 95949bd46 Update windows wheels to ta-lib 0.4.22 884a04c7f Bump fastapi from 0.70.0 to 0.70.1 172b9383c Bump pandas from 1.3.4 to 1.3.5 ec4a24649 Bump ccxt from 1.63.55 to 1.63.65 3398469e5 Update PerformanceFilter to have min_profit as ratio again. 8dd3128ed Add type annotation to new logs suppression code 5b998aeca Remove unused import 878e16545 Suppress additional logs for pairs in blacklist b90c5e56f Fix webserver schema bug when running in webserver mode 8fdef2900 Increment API version to let clients know this is now available 58cd91bd8 Bump python-telegram-bot from 13.8.1 to 13.9 857f4ec12 Remove exception-handlers which catch exceptions that are never raised 783ee633a Bump crazy-max/ghaction-docker-buildx from 1 to 3.3.1 fb134c67a Bump peter-evans/dockerhub-description from 2.1.0 to 2.4.3 849ca1ec0 Dependabot - use correct branch 8da79d0ab Add blacklist-control to telegram aaf5f4ce3 Bump sqlalchemy from 1.4.27 to 1.4.28 ae92bf56b Bump ccxt from 1.63.1 to 1.63.55 f47cfbd2a Bump mkdocs-material from 8.0.4 to 8.1.0 c9c683f2b Bump prompt-toolkit from 3.0.23 to 3.0.24 81cafd090 Bump uvicorn from 0.15.0 to 0.16.0 671b9903d Add github-actions dependabot cc96db76f Add possibility to delete pairs from the pairlist via api e729fad99 Add unknown_fee_rate parameter e9c3f0cbb Add note about python3.10 not being supported be6b1f6f8 Import from enums, not submodules facb5b399 Revert "Bump python from 3.9.9-slim-bullseye to 3.10.1-slim-bullseye" 7848e17a4 Bump python from 3.9.9-slim-bullseye to 3.10.1-slim-bullseye 3dda0ef2e Bump mkdocs-material from 8.0.1 to 8.0.4 50a6eaea2 Bump ccxt from 1.62.42 to 1.63.1 61211a119 Bump ta-lib from 0.4.21 to 0.4.22 fbd64d757 Improve doc wording 4278c5a24 add note about arm64 installation c981cc335 Remove wrong comment d0467b30b Add strategy_version to API response e3190cf8a Update documentation 2080bf095 Fix some formatting errors, add test for strategy version 68ac8008e Call custom_exit_price only for sell_signal and custom_sell 84ad17628 Improve documentation wording 86910b58d Bracket entry/exit prices to low/high of the candle d09a30cc6 OrderTypeValues should be in enums ad5c8f601 Simplify datahandler classes by exploiting commonalities d3ad4fb52 Don't crash dry-run if orderbook side is empty 294c98ed5 Document exchange.uid 0375a0830 use to_hdf instead of HDFStore 5ce1eeecf Reorder messages to be sent in correct order c22f381df Fix Schema issue 542963c7a Reduce code complexity by combining buy and buy_fill methods f0abe218a Batch ohlcv requests to not overwelm ccxt's async throttler 231b1e2f5 Improve Async error message content 85b1f6f6b Update pairlists.md 60eca8b1f revert to random object dfb148f8d Fix formatting f8cb3d290 Restore openAPI functioning 2e5147745 Update mkdocs file to 8.0 018407852 Added missing webhook config params to constants 57e55eb93 Bump time-machine from 2.4.0 to 2.4.1 c126d2530 Add few sentences on docs 24997fb36 Bump mkdocs-material from 7.3.6 to 8.0.1 b81d768eb Bump types-requests from 2.26.0 to 2.26.1 39c3175b6 Bump types-python-dateutil from 2.8.2 to 2.8.3 b0b2fdba7 Bump aiofiles from 0.7.0 to 0.8.0 c2a7b1930 Bump types-cachetools from 4.2.5 to 4.2.6 589c9f55e Bump scipy from 1.7.2 to 1.7.3 e9e8023d7 Bump ccxt from 1.61.92 to 1.62.42 df09fe5df Bump prompt-toolkit from 3.0.22 to 3.0.23 29180a1d2 Moved retry config to constants 0fa5bf54c Changed comment cf5ff9257 Add plotconfig as property documentation and sample c7d10e2c7 delete unneeded comment fb6ae174b Added raw config and retry config to webhook fd9bf2adb add weekly and monthly to valid keys 6429205d3 Improve Notebook documentation to include Dataprovider 2b3e7eeb2 Use Enum values within bot code 409a80176 Fix caching problem in refresh_ohlcv b90303c9a Update ShuffleFilter.py 2f0f576fc Update pairlists.md 8c52ba336 ShuffleFilterDetectLiveMode bc52b3db5 Properly handle None values via API 80ed5283b Add forcesell market/limit distinction 338fe333a Allow forcebuy to specify order_type d4fd13bf5 Telegram and log prints strategy version. 00406ea7d Update backtesting.py ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 4 years ago

FreqAI - 2021.11

Highlighted changes

  • New CalmarHyperOptLoss loss function.
  • unlock_reason() to allow strategies to unlock all pairs locked by with particular reason.
  • setup.sh script now supports yum based (RHEL/Centos) distributions.
  • Added support for custom sell_reason from within populate_sell.
  • Show Buy-tag table during backtesting.
  • Official support for OKEX.
  • New telegram commands /weekly [num] and /monthly [num] to get more statistics.
  • Trigger emergency sell if trade exit fails for X times (can be configured via unfilledtimeout.exit_timeout_count).
  • Trade mode allows more history (multiple ohlcv calls) via startupcandlecount. Please use with care, as it will have a performance impact.
  • Improved Fill notifications in telegram.

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

You can sponsor my work on freqtrade via github sponsor (https://github.com/sponsors/xmatthias/) (includes Crypto addresses).

How to update

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

docker-compose

bash 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 ``` 7e1eedd7d Version bump to 2021.11 a9cdb428d Version bump to 2021.10 3f10430eb Version bump to 2021.9 a62977789 Improve test coverage in telegram module 6ca6f6250 Remove duplicate code in optimize_reports 897788de1 Reformulate exception to be "nicer" f4bc30c92 Update docs to include "vpn/ssh" section 5307d2bf3 Trimming the sentence c23d90e2b Update test_backtesting.py 0c629fc95 Update test_backtesting.py 0d1e84cf5 Add more words 65906d330 Improve tests for pair_to_filename e8feac367 Improve tests for pair_to_filename c23ca35d2 Update ARMHF image to 3.9 b8cefd687 Add api_version to botresponse c245a2a89 fix typo in Volatility filter description. 43dab3ee6 Changed the wording of the documentation to be clearer 78a00f251 Use market data to get base and quote currencies in @informative() decorator. 64e34f382 Sell-fill should include open-rate ecf2ac3c2 Bump aiohttp to 3.8.1 80946cd9d Bump ccxt from 1.61.24 to 1.61.92 0ef99206b Bump plotly from 5.3.1 to 5.4.0 247f855ba Bump types-cachetools from 4.2.4 to 4.2.5 fdc6ca1bd Bump cryptography from 35.0.0 to 36.0.0 ab93e1368 Bump filelock from 3.3.2 to 3.4.0 c0cc3f5f9 Small doc improvements to callback documentation b36fe8fe0 Simplify strategy documentation 0bae1471b Extract callbacks into a separate site ef67a2adf Improve callback documentation d8ee72554 Improve callback documentation f8f7d81fc Update strategy template to use parameters a239e5f72 Add segment on colliding signals 0b6060dd1 indentation problem :) 5fb0f5353 Add curl to install description 60cf52aa3 Remove unused test code d477ccab1 Bump ccxt from 1.60.68 to 1.61.24 e3bb102dc Bump python-telegram-bot from 13.7 to 13.8.1 7bd384c7f Bump nbconvert from 6.2.0 to 6.3.0 876b59f47 Bump jinja2 from 3.0.2 to 3.0.3 8ec5f72be Bump isort from 5.10.0 to 5.10.1 178e3ac6a Bump coveralls from 3.3.0 to 3.3.1 2a1c61fb3 Bump sqlalchemy from 1.4.26 to 1.4.27 c04679072 Bump pymdown-extensions from 9.0 to 9.1 43120e03f Bump types-requests from 2.25.11 to 2.26.0 4d1d8de9b Split /stats messages 1dc98cc4d Break line 5b9cbaf27 Use Close value for trade signal calculation 632c1bc0a Add static workaround for kucoin 429000 issue 7c1161992 avoid using replace in messages c4c1b301c buy notification code consolidation 0bc938445 more notification code consolidation 7412b7ba5 buy/sell fill notification code consolidation a177e58dc Remove "currency" generating from splitting pair str 37d461c6c Improve strategy dataframe documentation 0e70d23be Add documentation for exit_tags 0e2b5ef6d Simplify custom strategy file wording df27499e1 Improve `/help` output from telegram 32e337629 Update buy/sell fill telegram notifications a237667bc Update buy/sell fill telegram notifications 39bb34cdb Fix test loading bug e0fd880c1 Improve some more pct formattings 4eb903835 Some more fixes to % formatting 1b271d084 Improve % outputs to not use explicit "pct" entries ce2aa1dc6 Small formatting upgrades f8d30abd7 Handle order returns that contain trades directly f7b2c0c5d Remove unneeded assignment from tests e7d1630c9 Add space d3d17f9f8 Only allow min-stake adjustments of up to 30% 23a566b47 validate_stake_amount should not be a private method c9d974d21 Clarify performancefilter docs e8b4d4488 Add warning about telegram group usage 6f0a98229 docs: removes duplicated "without" in pairlists.md 6267678ca Use doublequotes for docstrings f9e5a25b3 Add docstring style to Contributing 2bfec7d54 Add small test-case confirming trade object copy ae0e72a94 Provide strategy with copied objects e4cca6316 Align sell_reason assignment location 63f4221f7 Fix broken documentation link 84261237a Improve doc wording 3ce898e4a Bump isort from 5.9.3 to 5.10.0 b39794f8d Bump scipy from 1.7.1 to 1.7.2 ab06584a3 Bump numpy from 1.21.3 to 1.21.4 a2c12f15f Bump ccxt from 1.60.11 to 1.60.68 d0199b601 Bump coveralls from 3.2.0 to 3.3.0 dbc863bcd Bump jsonschema from 4.1.2 to 4.2.1 c54cf63ba Bump prompt-toolkit from 3.0.21 to 3.0.22 c11e1a84e Fix wrong logging de4bc7204 Update documentation to clarify new behaviour a08dd17bc Use startup_candle-count to determine call count 9fa64c264 Allow multiple calls to get more candles in live-run fb6ba6215 Add default to "is_new_pair" 4595c1e73 Slightly reformat to simplify new change 25fcab079 Enhance /show_config endpoint 4f5c5b698 Clarify timeout documentation d0e192e20 Fix naive timezone for /daily command f7dc47b1c Add test for exit_timeout_count d5acd979d Move dev-only requirement 3c33b48fd Fix naive timezones 7a907a763 Add Emergencyselling after X timeouts have been reached da4344d21 Remove line breaks 8eabdd659 Fix missing CallbackQueryHandler 70253258f Test /monthly & clean 87634f040 /weekly and /monthly documentation 459ff9692 Add /weekly and /monthly to Telegram RPC 5f40158c0 WIP Add /weekly and /monthly to Telegram RPC a8651b0dc /weekly and /monthly documentation 15616d75a Add /weekly and /monthly to Telegram RPC d99eaccb5 Fix exception when using okex ae3b53014 Add failing test for OKEX failure 60a5ded53 Don't convert telegram chat_id 2115a3ed1 Update warning message open trades ffc2de8d3 WIP Add /weekly and /monthly to Telegram RPC ae2343db9 Update optimize_reports 10e839c17 Update setup.sh 5b9a168ca removed build-essential from redhat install c061b576a OKEX Notes 048db4f50 Enhance "new exchange" documentation 437e5f064 Fix officially supported exchange list 6fb086635 Add OKEX to list of officially supported exchanges ce597d12d Update exchanges.md f60d10107 Some finetuning for OKEX 1fefb132e Improve wording in documentation 161a3fac1 Run exchange-enabled tests against okex e78df59e3 Configure candle length for OKEX f365e6870 [docs] Update RateLimit value [small] 7ae9b9017 Further clarify backtesting trailing stop logic 3056be3a1 document prerequisites for exchange listing 74e8b2899 Improve FAQ with outdated history message a16328f37 Don't force timeframe in config in config generator 6623dfe7d Improve CORS documentation 46d4418e8 Bump scikit-learn from 1.0 to 1.0.1 45f7093e5 Bump mkdocs-material from 7.3.4 to 7.3.6 e2041ddb7 Bump ccxt from 1.59.2 to 1.59.77 3d59289b0 Bump filelock from 3.3.1 to 3.3.2 6b90b4a14 Test "get-signal" dffe76f10 Don't double-loop to generate profits c15f73aa1 Rename command to backtesting-show 20904f1ca Add tests for new command 72ecb45d8 Add test for backtest_show logic 650d6c276 Add documentation d60001e88 Stoploss cannot be below candle low 459a2239c Fix candle ranges in backtesting test 6cf140f8f FIx testcases 851062ca4 Rename backtest-filter to backtest_show f47270943 Add option to show sorted pairlist 0f3809345 Remove backtest-path parameter c579fcfc1 Add tests and documentation for unlock_reason 240923341 Reformat telegram test 5cdae2ce3 Remove CalmarDaily hyperopt loss e9d71f26b small changes 658006e7e removed wrong use of map and filter function 560802c32 Added tests for the new rpc/telegram functions 02e69e166 Changes to unlock_reason: - introducing filter - replaced get_all_locks with a query for speed . removed logging in backtesting mode for speed . replaced for-loop with map-function for speed 335412a3a Improve wording of FAQ entry f280397fd Add FAQ section about Fees dc605e29a removed empty lines for flake8 2eb33707c Undo changes 91b9e5ce6 Delete StackingDemo.py c1b5dcd75 Delete freqtradebot.py 6b17094c6 Delete configuration.py 51c925f9f Delete StackingConfig.json 21ab83163 Quick import/clarity fix e4e75d486 Added test data for buy_tag/sell_reason testing 9c6cbc025 Update StackingDemo.py 9f6e4c6c0 uncomment ae0689969 removed commenting c3f3bdaa2 Add "allow_position_stacking" value to config, which allows rebuys of a pair Add function unlock_reason(str: pair) which removes all PairLocks with reason Provide demo strategy that allows buying the same pair multiple times b51f946ee Fixed models and rpc performance functions, added skeletons for tests. d1e2a5326 Added centOS support to setup.sh script 7ff16997e Wrote echo block method for setup script 88b96d5d1 Update hyperopt_loss_calmar.py 22dd2ca00 Fix mypy type errors 17432b282 Improve some stylings 5f309627e Update tests for Calmar ratio 0e085298e Fixed test failures. 1267374c8 Small fixes to tests 905f3a1a5 Removed exit_tag from Trade objects. 1fdc4425d Changed exit_tag to be represented as sell_reason 69a59cdf3 Fixed flake 8, changed sell_tag to exit_tag and fixed telegram functions 0bb7ea10a Fixed minor header for backtesting ed39b8dab fixed profit total calculation 8b2c14a6f Readme fix d341d8507 Refixed some files for the pull request 96cab22a8 Fixed some bugs for live sell_tags. 0f670189e quick typo fix 3ee9674bb Update README.md af74850e7 Update README.md 02243b1a2 minifix 80b71790b Added some bigfixes for sell_tag c9edf3bf4 Updated the gitignore b898f8636 Added sell_tag and buy/sell telegram performance functions 626a40252 resolved mypy error c3414c3b7 resolved mypy error 67e9626da fixed isort issue a1566fe5d updated to latest constant.py file bc86cb328 updated to correct hyperopt.md file e1036d6f5 Added Calmar Ratio Daily to hyperopt.md file 89b7dfda0 Added Calmar Ratio Daily 24baad788 Add Calmar Ratio Daily ca20e17d4 added CalmarHyperOpt to hyperopt.md b2ac039d5 added CalmarHyperOptLoss to HYPEROPT_LOSS_BUILTIN 0f29cbc88 added CalmarHyperOptLoss 3b99c84b0 resolved the total profit issue c6b684603 removed trade_count inside if statement b946f8e7f I sorted imports with isort 3834bb86f updated line 42 3845d5518 a new hyperopt loss created that uses calmar ratio 85979c317 * Adding command for Filtering * Read latest Backtest file and print trades ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 4 years ago

FreqAI - 2021.10

Highlighted changes

  • New trades-to-ohlcv subcommand to easily convert trades to ohlcv data (kraken only).
  • New loss function MaxDrawDownHyperOptLoss.
  • New endpoint to get System information (CPU / Ram).
  • FreqUI now supports multi-bot mode, connecting to multiple bots.
  • freqtrade install-ui now allows to specify a specific UI version.
  • Possibility to skip unavailable spaces with --ignore-missing-spaces.
  • Fail and warn when using qtpylib.vwap() - pointing to qtpylib.rolling_vwap() instead.
  • Support StaticPairlist after VolumePairlist, to append a static list of pairs.
  • Added --breakdown argument to backtesting, showing a daily/weekly/monthly breakdown of trades.

How to update

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

docker-compose

bash 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 ``` 98ed7edb1 Version bump to 2021.10 92130837a Improve and clarify informative pairs documentation e2b64a750 Update data-download.md f80d3d48e Add default to minimal_roi to avoid failures 262f186a3 . cea251c83 Clarify documentation for /forcebuy 4e88bd07f Bump numpy from 1.21.2 to 1.21.3 538d9e8b3 Bump arrow from 1.2.0 to 1.2.1 826d4eb2f Bump jsonschema from 4.1.0 to 4.1.2 3d90305f8 Bump ccxt from 1.58.47 to 1.59.2 b50b38f04 Bump sqlalchemy from 1.4.25 to 1.4.26 520c5687a Bump prompt-toolkit from 3.0.20 to 3.0.21 f7926083c Clean up unclosed file handles df033d92e Improve performance of decimalspace.py fde10f539 Use pathlib.stem instead of str(x).ends_with 053fb076e Add documentation for breakdown command e458c9867 Styling fixes 7b5346b98 Add test for breakdown-stats fa028c213 Support day/week/month breakdowns 7197f4ce7 Don't show daily % profit (it's wrong) de5497c76 backtest_days cannot be below 1 545446022 Revert initial_points to 30 55b021618 Allow StaticPairlist in non-first position 42a4dfed2 Reallow bitstamp f863f4fdf Update advanced-setup.md 5d2e37409 Update docs/advanced-setup.md f9b166747 Update docs/advanced-setup.md 0da5ef16e Remove unnecessary dependency ddba4e32d Fully remove flake8-type-annotations 8a7ea6553 Bump types-filelock from 3.2.0 to 3.2.1 3af55cc8c Bump pandas from 1.3.3 to 1.3.4 75e6a2d27 Bump mkdocs-material from 7.3.2 to 7.3.4 618f0ffe6 Bump types-tabulate from 0.8.2 to 0.8.3 44e6e1342 Bump ccxt from 1.57.94 to 1.58.47 4b0274901 Bump mkdocs from 1.2.2 to 1.2.3 82684f5de Bump progressbar2 from 3.53.3 to 3.55.0 69c98c414 Bump python-rapidjson from 1.4 to 1.5 035380d8a Bump types-cachetools from 4.2.2 to 4.2.4 d7756efe8 Bump wrapt from 1.13.1 to 1.13.2 b60371822 Bump pyjwt from 2.2.0 to 2.3.0 e7a2672f0 Bump filelock from 3.3.0 to 3.3.1 9b0171ef3 Bump flake8 from 4.0.0 to 4.0.1 12a041b46 Bump pytest-asyncio from 0.15.1 to 0.16.0 6be40cb7c Bump types-requests from 2.25.9 to 2.25.11 00fc38a5d Update setup.sh to correctly exit if ta-lib fails 7d8cd736b Support days-breakdown also for hyperopt results 28483a795 Fix doc-link in developer docs d4d57f000 Document expansion of `--pairs`, add download-inactive e23eb99ab Disable ability to use lookahead-biased vwap abd5c4f27 Convert additional test to USDT fb2c8f762 Rollback after each request f61dc6d95 📝 `mkdocs.yml` - Fixed darktheme toggle 5a9983086 How to run multiple instances with docker 89ca8abea Bump fastapi from 0.68.1 to 0.70.0 5ba1d66be Make sure transactions are reset dcefb3eb9 Fix delete_Trade api test 7f1080368 Commit mock-trades to avoid errors in tests de5657a91 Fix test failing when UI is installed fe9f597ea Don't build ta-lib in parallel, this causes failures c02a53818 Add documentation and log to PerformanceFilter fe8374f2a Test for non-failing missing hyperopt space 3279ea568 Add new parameter to hyperopt docs aed919a05 Simplify "no-space-configured" error handling by moving it to hyperopt_auto 8798ae567 Version bump also scikit-optimize ce9debe9f Add version argument to freqUI installer 396bc9b2e Version bump flake8-tidy-imports to 4.5.0 fa00b52c4 Bump scikit-learn from 0.24.2 to 1.0 802599bdc Bump ccxt from 1.57.38 to 1.57.94 29371b2f2 Bump joblib from 1.0.1 to 1.1.0 90ea3d444 Bump mkdocs-material from 7.3.1 to 7.3.2 4921a4cae Bump jinja2 from 3.0.1 to 3.0.2 32174f8f9 Bump pyjwt from 2.1.0 to 2.2.0 afc086f33 Bump arrow from 1.1.1 to 1.2.0 e467491db Bump jsonschema from 4.0.1 to 4.1.0 3fdc62d29 Bump flake8 from 3.9.2 to 4.0.0 5fb0401dc Bump cryptography from 3.4.8 to 35.0.0 7323ffa25 Bump blosc from 1.10.4 to 1.10.6 57095d716 Bump wrapt from 1.12.1 to 1.13.1 1a3b41ed9 Rephrase and simplify UI access section in docker quickstart 2c6834214 Move pypi installation to documentation 7b1c88866 Add FAQ entry for incomplete candles 30bc96cf3 simplify expression 11ec1d9b0 Revert previous commit 482f4418c Clarify "required candle" message 1327c21d0 Update README.md f07eeddda Update api_schemas.py a1be6124f Don't set bid_last_balance if None in tests 45b7a0c83 Add Test and docs for MaxDrawDownHyperOptLoss 29863ad2b Fix error when ask_last_balance is not set 46c320513 use profit_abs 526bdaa2d Recommend using 0.0.0.0 as listen address for docker 65d4df938 Improve docker port api 992cef56e Add test for sysinfo endpoint 57ef25789 Fix style errors 6ba46b38b fix formatting c0d01dbc2 add max_drawdown loss 949d61608 Update docker_quickstart.md 0db5c0731 Fix issues with sysinfo rpc/API code, add SysInfo api_schema 92f8f231a Remove ratelimit from kucoin template 7f4baab42 Remove explicit rateLimits, improve docs f15922a16 Fix custom_stoploss in strategy template 07750518c Added min_profit param to PerformanceFilter f41fd4e88 Bump mkdocs-material from 7.3.0 to 7.3.1 949f4fbbb Bump types-cachetools from 4.2.0 to 4.2.2 2b41066ab Bump pytest-cov from 2.12.1 to 3.0.0 0071d002b Bump ccxt from 1.57.3 to 1.57.38 35c4a0a18 Bump jsonschema from 3.2.0 to 4.0.1 ff45d52d4 Bump types-filelock from 0.1.5 to 3.2.0 d220c55d4 Bump pymdown-extensions from 8.2 to 9.0 0d9beaa3f Bump filelock from 3.0.12 to 3.3.0 1c63d01ce Prevent using market-orders on gateio f5e520338 Use "round" to 12 digits for TickSize mode e73f5ab48 Add test confirming #5652 126c29198 Improve docs 9e77a739f Change usdt stake_amount to 60$ 058c7b3e9 Fixed odd test_execute_entry where the filled coins were higher than the amount 908dee961 Changed test values in test_sell_profit_only to usdt like values 93679db7c Removed ... TODOs 057a18723 Removed uneccessary TODOs 3b5cc5f01 Improve dates used for hyperopt tests 77388eb42 Improve generate_test_data to make it easier to use 5fdeca812 Combine most hyperopt-loss tests to one 022839b72 remove unnecessary test e5e1e49f5 Remove some unused test parameters 96d09b561 Fixed breaking rpc tests 6f8e66117 flake8 isort 107fa911a Fixed test_tsl_on_exchange_compatible_with_edge c820db4c6 Fix couple more usdt tests which failed due to ticker prices causing roi being hit, but tests did not expect that to happen. 896137026 Fix failing test due to not updated expected values. 2ee87f8c6 Fix failing USDT tests due to not enough open markets. 43339f166 A lot of the usdt freqtradebot tests pass now ba5d78f00 swapped default_conf for default_conf_usdt and ticker for ticker_usdt 7eebb6bb2 updated test_create_trade to use default_conf_usdt 755cc9cda Updated test_check_available_stake_amount to use default_conf_usdt 26fdad846 Removed edge_conf_usdt d0e0d0ee0 Removed init_persistence_usdt 5ce09c751 updated test_reupdate_enter_order_fees to usdt ffa9a3ac7 changed default_conf_usdt stake_amount to 10 6fdcf8cd7 created default_conf_usdt and init_persistence_usdt so that these tests pass: test_handle_stoploss_on_exchange_trailing, test_handle_stoploss_on_exchange_custom_stop, test_update_trade_state_withorderdict d1e3d4807 changed test_update_trade_state_withorderdict to usdt 8d7f75c4d Fixed a bunch of freqtradebot tests dadd13420 changes some tests to use usdt values f69cb39a1 Fix missing comma in kucoin template 15df5fd9c Fix pair_candles to point to correct API call df45f467c Adding ability to ignore unparameterized spaces 95227376b Adding IUS to optimize args 08fcd1a0d Adding ignore space errors to Hyperopt CLI 5dd1088d8 Adding ignore unparameterized spaces flag 5f23af580 Rename update_open_trades to clarify it's only called at startup bd27993e7 Add documentation segment about indicator libraries 178db516b Add documentation for trade-to-ohlcv 248c61bb2 Add test for trades-to-ohlcv fc511aac4 don't use %default when no default is defined 656526c00 Add trades-to-ohlcv command to simplify adding new timeframes e025576d8 Introduce markets_static fixture serving an immutable list of markets. Adapt pairlist/markets tests to use this new fixture. 097da448e Add CPU,RAM sysinfo support to the REST API to help with bot system monitoring 76a02ff70 fix indentations 2bed41da5 Add days breakdown table to backtesting ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 4 years ago

FreqAI - 2021.9

Highlighted changes

  • --timeframe-detail in backtesting allows you to look "into" candles` for improved backtest results.
  • Improved new-config templates, defaulting to a "ready to start" configuration.
  • Improved download-data logic for new pairs on binance.
  • Officially support kucoin and gate.io.
  • PerformanceFilter can now only consider trades closed within the last X minute.
  • Allow hyperopt to define custom estimators (generate_estimator).
  • @informative decorator to easily define informative pairs.
  • Improved /balance output, including change % over the whole period (including assumed starting balance).
  • Notifications when protections trigger. Enabled by default for global protections, must be explicitly enabled for "per pair" protections.

How to update

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

docker-compose

bash 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 ``` 5938514e5 Version bump to 2021.9 5726886b0 Reduce backtest-noise from "pandas slice" warning 3fbf716f8 Fix "sticking" timerange in webserver mode 5b7a1f864 Validate config also in webserver mode 78096c9ef Bump nbconvert from 6.1.0 to 6.2.0 905950230 Bump ccxt from 1.56.86 to 1.57.3 08b1f04ed Bump types-requests from 2.25.8 to 2.25.9 6319c104f Fix unreliable backtest-result when using webserver mode f4f204d84 Update test to use cost dict 4c268847d Add pandas-ta to setup.py b59906b11 Update minimum for tradable_balance_ratio to 0.0 72a1e27fc Bump ccxt from 1.56.30 to 1.56.86 954c46819 Add pandas-ta to requirements 0353f070f Bump progressbar2 from 3.53.2 to 3.53.3 90d5af9a3 Bump urllib3 from 1.26.6 to 1.26.7 766ef90b5 Bump sqlalchemy from 1.4.23 to 1.4.25 e85dc6326 Bump mkdocs-material from 7.2.6 to 7.3.0 422d56018 Bump types-requests from 2.25.6 to 2.25.8 692e91a26 changed close date from datetime.utcnow() to datetime.now(timezone.utc) d7903f012 Move PerformanceWarning to advanced section 2bf49445b add parameterized names 30cc69c88 set all to eth for multi test 8cfb6ddd5 fix long line f768bdea5 cleanup based on feedback 553c868d7 combined test_order_book_depth_of_market and test_order_book_depth_of_market_high_delta b0de4d333 fixed webhook error 707d0ef79 remove trades_for_order3 277828bf0 parameterize some tests 6fc770d97 Add warning about running with docker on windows abddb0db6 Fix header indention 3ce05c0d5 Add "sane" defaults to protection triggers fd23ab3d6 improve formatting, add tests dd0db7ee5 Split protection-notification into global and per-pair a0fb43c6c Add pairlock-notification c91a9a92f Add troubleshooting information 1da091dea ProtectionManager should return the lock just created 879bf47b3 Refactor telegram.py to simplify send_msg ec0353177 Improve naming of variables ab8821718 Improve /balance output to include starting balance and percentual change cee4ed541 parametrized test_update_trade_state_withorderdict ec9dbc550 parametrized test_create_trade_minimal_amount c1895a0fc Remove warning related to legacy hyperopt eab7f8f69 [SQUASH] Doh. 713e7819f [SQUASH] Remove mypy import. 518a59ad4 parametrized test_edge_overrides_stoploss 42a2fdc1c parametrized test_order_dict 216f75bbb parametrized test_sell_profit_only , test__safe_exit_amount, test_order_book_bid_strategy1 e4ca42fae [SQUASH] Update stoploss_from_absolute to behave more like stoploss_from_open and add a test for it. 7e6aa9390 [SQUASH] Unconditionally include quote currency when asset is explicitly specified. Added docs suggesting to use string formatting to make strategy independent of configured stake currency. e88c4701b [SQUASH] Address PR comments. bb6ae682f Small simplifications 5dc78a0c6 [SQUASH] Get rid of _initialize() and fix informatives for dynamic pairlists. f81df19b9 [TMP] Make tests not fail for now. dfa61b7ad [SQUASH] Fix informatives for each pair not being created because dataprovider was not available. Fix not being able to have informative dataframe of a pair in whitelist. f2a1d9d2f [SQUASH] Address PR comments. 1fdb65633 Add a decorator which can be used to declare populate_indicators() functions for informative pairs. d84ef3474 A helper to calculate stoploss value from absolute price. 56fb25c5e Add test for PerformanceFilter lookback 564e0b9a1 Switch performanceFilter to use Minutes lookback resolution 12c12d42d Add documentation for days parameter in PerformanceFilter d7395e873 Removed unused OperationalException 4b2c1a9b8 Remove trailing whitespace e715f2a25 Update formatting 9525a5b96 Add type to "trials" parameter fb6beb90e Include Raspberry Pi armv6 (0, 0W,...) 124e97f3b Remove ununsed variables from export_csv_file 5fc993231 Update HyperoptTools.export_csv_file usage 3a98fb72a Update prepare_trials_columns() return type 982deeedf Update freqtrade/persistence/models.py 54ef36a49 Updates after review to PerformanceFilter days param 457e738b4 Added days parameter to PerformanceFilter 994c3c3a4 Add some errorhandling for custom estimator c0811ae89 Add possibility to override estimator from within hyperopt 90ad17893 Remove verbosity of edge 57ea0c322 Rename indicator_space to buy_indicator_space f7bae81d9 Dataframe should be copied after populate_indicator 4e2b1764b ccxt_compat_tests must run with dry-run=False 35eda8c8c Improve agefilter test 3ce5197e8 Add Tests for AgeFilter caching c9ba52d73 Expire cached pairs in age-filter once per day a12c3ecc9 Remove credentials whenever dry-run is set from within the exchange 8afb3c4b7 Move AgeFilter cache to instance level 3cdd06f56 Add PeriodicCache b13bd8762 Bump ccxt from 1.55.83 to 1.56.30 81039fce2 Bump progressbar2 from 3.53.1 to 3.53.2 d8f48cf0e Bump pandas from 1.3.2 to 1.3.3 236dc4800 Update CI to use new hyperopt interface 0017b3438 Remove list-hyperopts 3675df834 Update documentation regarding Legacy Hyperopt fd6bf591f Update some tests to remove explicit hyperopt interface dad4a49e8 Remove legacy hyperopt interface from hyperopt.py ebb0b8aa3 Remove new-hyperopt command 432c3df17 Add documentation for Bittex/Gemini with VolumePairlist a5f90a409 Small updates to async_history_fetch 4c4604f83 Add explicit test for get_historic_ohlcv 8c9159f59 Improve comments a19c33ba5 Don't blindly create coroutines, but fire them off in batches 982534ddc Add gate.io to list of supported exchanges 366247dff removed caplog.clears at end of functions in test_freqtradebot b2f289e40 Fixed freqtradebot failing tests a1c9a4d61 freqtradebot local name changes 362dc2040 notify_buy -> notify_enter, notify_sell -> notify_exit e1f846f22 sell_lock -> exit_lock e0092a85e handle_cancel_buy/sell -> handle_cancel_enter/exit be93c75e4 reupdate_buy_order_fees -> reupdate_enter_order_fees aac05029e safe_sell_amount -> safe_exit_amount 79ca6135a added caplog clears to freqtradebot tests 2d66987ac Add test for "pair-startdate" detection 8c83c258a Move "first-pair_getting" to binance subclass 71ff214ad Support "initial_call" for download-data of new pairs 880474594 have ftuser use `/bin/bash` in dockerfile 10d0987f4 Fix docs for custom hyperopt space 6bd495a32 Fix 0Exception error a04875eb5 Update edge.md 765e72715 Bump mkdocs-material from 7.2.5 to 7.2.6 44f8d7abf Bump ccxt from 1.55.56 to 1.55.83 771193cbe Bump plotly from 5.3.0 to 5.3.1 4daa4b9e6 Bump pytest from 6.2.4 to 6.2.5 1d24d3d5e case insensitive blacklist c519ecf8d Exclude more untestable sections from coverage a8f28ffb1 Increase test coverage 2173ff013 Update PR template to not link to issues in changelog 4e049f65f Exclude some parts from coverage that can't really be tested eb0362c29 ⚡️ ️`install_ta-lib.sh` - Run `ldconfig` after `make install` 493fb3507 Fix uvicorn not working properly on windows 103a8e827 ⚡ `setup.sh` - Use `build_helpers/install_ta-lib.sh` for TA-Lib installation 2f92838c3 Properly close parenteses in exchange doc b4130dfab Use volumePairlist instead of staticPairlist in generated config c489e6825 Simplify binance blacklist 68f13173b Update new-config templates to use USDT by default e64ccd8fc Add new_config section for kucoin 19ad16548 Add time_in_force for kucoin 93c1dff71 Allow adding new additional headers 87fa49d52 Bump python from 3.9.6-slim-buster to 3.9.7-slim-buster 1cbe30343 Add documentation for --detail-timeframe da5f8c87a Add stake_currency to strategy interface 4cc1f2b4a Update bot-basics.md 2a0c95a2e Update freqtrade/commands/build_config_commands.py 45c6f9069 Bump mkdocs-material from 7.2.4 to 7.2.5 9e0ab9c2c Bump fastapi from 0.68.0 to 0.68.1 26451e8c0 Bump ccxt from 1.55.28 to 1.55.56 d0504c47e Bump plotly from 5.2.1 to 5.3.0 c64ebeb6e Bump cryptography from 3.4.7 to 3.4.8 c17595b31 Docs: Mention Performance Warning for strategies 20878290a Surround "unlimited" by double quotes in build config. c14d8ea82 Export HDF5 and CBLOSC paths. 1895230af Clarify exception on load when markets could not be loaded 89581ad25 Fix typo in protections hyperopt doc f79b30e88 Docs: Minor fixes 482e65453 Remove extra comma after the last element in binance pair_blacklist. ac0dada96 Update Version to develop again fa4ec9f83 Add explicit test for get_sell_trade_entry 3406b889b First test 8405ccc15 Seperate detail data loading from regular backest-data loading 88172fab8 Allow "detailed" backtesting timeframe to look into the candle ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 4 years ago

FreqAI - 2021.8

Highlighted changes

  • startup-candles are available for populate_buy_trend() and populate_sell_trend().
  • Addition of buy_tag to classify buys based on the signal used.
  • Informative pairs are now limited to the selected timerange during backtesting.
  • Backtesting now caches informative pairs to speed up backtesting and hyperopt.
  • Support Environment Variables (e.g. export FREQTRADE__EXCHANGE__KEY=<yourExchangeKey>).
  • Hyperopt protections (warning: Configuring protections in the configuration is deprecated as part of this).
  • Add BooleanParameter() - a shorthand for CategoricalParameter([True, False]).
  • New callbacks custom_entry_price() and custom_exit_price() to specify custom order prices.

How to update

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

docker-compose

bash 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 ``` b3a4b0fbd Version bump to 2021.8 2ce458810 rename default_hyperopt_loss file 07d71f014 Rename defaultStrategy file 6d96b1127 Rename DefaultStrategy df1c0540a Rename Hyperopt Test Class 0d8e105a3 Rename legacystrategy file 58ecb34a6 Allow DefaultHyperopts as hyperopt name fbf8eb452 Rename test-legacy strategy 1f3ccc258 DefaultStrategy does not need to be limited c4be52d1c rename execute_sell to execute_trade_exit 63844d39f Rename execute_buy to execute_entry 7fb570cc5 hyperopt Fallback methods should not be used. 68dd34909 Update hyperopt docs regarding protections 3745966c6 Update help-docstring for hyperopt 23d21d8ac Fix wrong message if protection-space is missing 4b36276e4 Improve has_space test 8a9407bac Don't hard-fail when fetch_ticker doesn't return a value 60b476611 Simplify a number of tests by relying on default arguments 345c7ab64 Bump sqlalchemy from 1.4.22 to 1.4.23 90f1845ea Bump prompt-toolkit from 3.0.19 to 3.0.20 0f9bfcf8b Bump types-cachetools from 0.1.10 to 4.2.0 4ee467f85 Bump ccxt from 1.55.20 to 1.55.28 3026583ed Reduce verbosity of "is in blacklist" logging 04b4deab5 Update strategy-advanced.md 56759cea7 Add "high fee rate" blocker to fees from trades 127f470bc .* ADDED 40ad45101 Download-data log process added 695a1e21b Set gate.io download limit to 1000 candles ba5abb20b Run compat ci for gate.io dc0b4d07d Fix typo 9951f5107 Update test to ensure direction of movement is correct d97fc1e48 Update docs/strategy-advanced.md ffd60f392 add custom price max distance ratio option in configuration.md 9469c6dfa small cosmetic changes in doc related to custom entry and exit exemple 2fb9f6e2f rename custom price max distance option in config, update formula and test associated acb00cd07 Use realistic threshold for "get_fee" test 6e41add40 Version bump ccxt 4164f9385 Simplify fiat_convert and handle multi-mappings 37e3d2035 Fix no-event-loop available 9758bed25 Fix refresh_latest_ohlcv bug f47191582 Add test for refresh_latest_ohlcv caching f08d673a5 add details and exemple of custom_price_max_distance_percent usage in doc 17daba321 add custom_price_max_distance_percent config option in constants faff40577 fix test_execute_buy In case of custom entry price 3ea4b2ba0 add custom_price_max_distance_percent security to get_valid_price, update tests 0264d77d8 Fix test for fixed typo f24a951ec fix: typo spelling grammar 4115121c2 Fix missing return statement in is_Relative_to 4b65206e6 Add compat code for is_relative_to 6b2ef36a5 Prevent directory traversal in UI Serving abddb3ef2 Add test for directory traversal 108a6cb89 Bump pandas from 1.3.1 to 1.3.2 3878e5186 Bump numpy from 1.21.1 to 1.21.2 a10fd6690 Bump plotly from 5.1.0 to 5.2.1 d8607b2ce Bump flake8-tidy-imports from 4.3.0 to 4.4.1 712579324 Bump uvicorn from 0.14.0 to 0.15.0 e7b6a996d Bump mkdocs-material from 7.2.2 to 7.2.4 37d454512 Bump ccxt from 1.54.74 to 1.55.6 dda827658 Update documentation for sell_profit_offset 322ea2481 Add log-message for edge-case ed6776c5c Fix disappearing pairlist bug 4f10a8852 Reduce verbosity when incompatible pairs are detected 123971d27 Don't change passed in parameter variable 0f7ddabec Slightly reword documentation bb472ff98 Improve new-exchange documentation db5a94439 Cleanup GHA node after building images c7147311f Fix json syntax error in config template 0a6c0c429 add a note concerning default custom entry or exit price in documentation 20cc60bfd update get_valid_price function and test cases to handle inputs with try catch dbf7f34ec add unit test to function get_valid_price b098ce4e7 add function get_valid_price to validate type of custom entry or exit price and use default proposed price if invalid ae11be397 manage None or string value returned by custom_entry_price and add unit test for those cases e03784d98 Fix filled exception fad253ad5 Version bump ccxt to 1.54.74 f6267c751 Fix buy_tag not being saved to trade object. 61c076563 Add max-slippage limiting for dry-run orders to avoid insane market order fills 65d025923 add code 039d6384e Stream hyperopt-result in small batches 3f160c714 Cache dataframe before cutting the first candle cf27968b9 Properly preserve trade's low during backtesting 5bfb9edf0 Only query date once from list 895b912c7 Fix recently introduced lookahead bias in backtesting a5f796bc9 refactor ohlcvdata_to_dataframe to advise_all_indicators 519c256b8 Fix kucoin typo in index.md as well 927ac24f8 Update README.md f17942b68 Fix random test failure 5919992ad Bump types-requests from 2.25.1 to 2.25.6 47f641d12 Remove hyperopt-pickle result support b89a99389 Bump types-filelock from 0.1.4 to 0.1.5 59626b4ff Bump types-tabulate from 0.1.1 to 0.8.2 bad25b753 Bump ccxt from 1.54.24 to 1.54.62 32e8e3b24 Bump types-cachetools from 0.1.9 to 0.1.10 3bd0c3d00 Remove legacy code from export to csv be240566b Fix random test failure faf16a64e Remove legacy hyperopt file support 0ae4eccea Refactor Hyperopt-list and hyperopt-show to reduce some duplicate code 7eaadb263 Add custom-* methods to bot-basics cf70b34ff Add min_value to all volumepairlist samples 5393c55b5 Document min_value for VolumePairList b9356a556 Autopep8 formatting 0985b1126 add doc for custom exit price 84d082033 fix default retval for strategy custom_entry_price 0aeebc9d5 add test for custom exit price 90c194de1 Align Readme and documentation index in supported exchange lists eee5f174f update link cb3b0cf31 add custom_exit_price in interface and freqtradebot f243ad4af add custom_exit_price in strategy interface f9f519fd3 add custom_exit_price function to interface d9b9eecd4 remove entry price reached method 2cf781f3d add freqtradebot execute_buy test in custom entry price case ad0e4a856 Add BooleanParameter b73768acd Fix bug in property overwriting prevention 3c4122333 Add test for protections-hyperopt a661e0db6 Deprecate protections from config ceed3c663 Document using protections a6454cfc3 Autoenable protections when protection-space is selected 091bf7c4d Output protection space 544e0da6c Add protection parameter space 800b2eeaf Load protections as part of backtest() 74a5cb3c2 Remove protections from full config 6410a6528 Add missing methods to advanced strategy template bc3e6deb1 remove specific test for buy with custom entry b644233ea rename custom_entry_price kwarg to align it to the interface b3dafb378 remove use_custom_entry_price as a config option 16146357b reuse buy_limit_requested as rate input for custom entry price 42e24d8b4 remove price change cancel reason in contants, will be added in another PR 00939b63f flake 8 fixes 53fb8b05e remove short logic in entry_price_reached function d9c9b7d7f restore interface test file 3d8c3ffd3 fix syntax error in unit test 5284112b6 fix in custom entry function output,remove changes related to outdated prices, doc exemple minor changes f11f5d17e add feature custom entry price for live dfc17f2bd Fix ci failure 4ab03f7e3 Don't load fallback methods for autohyperopt e70a74200 Reorder space methods in hyperopt c98164144 Don't fail if strategy doesn't contain sell signal 3c5f06d5c Update tests/exchange/test_exchange.py b63eda3a2 Some minor cleanup and improved test coverage 3a19e1610 Bump mkdocs-material from 7.2.1 to 7.2.2 7fd3fc98c Bump types-requests from 2.25.0 to 2.25.1 849b8197a Bump scipy from 1.7.0 to 1.7.1 4afcea9a1 Bump fastapi from 0.67.0 to 0.68.0 4f05d31b9 Bump ccxt from 1.53.72 to 1.54.24 b3f057e7c Bump isort from 5.9.2 to 5.9.3 059c32b06 Check for and default to 'None' 056bc93bc backtesting needs startup_candle_count 047df0c21 Removed leverage references e9ef9a6d2 Use .view() to convert dates to enums 90a61b176 Changed tests in tests/test_persistence.py to use usdt prices 6f8519d0a Add environment variable support c5e3348b8 Migrations for indexes should run in a seperate session 1ccc89d1e Store fully analyzed dataframe b1cbc75e9 Properly cache pair dataframe in backtesting (without startup-range). 6abd352c0 Add test for backtesting dataframe cache ab3c75341 Fix develop_plot building 499af5c42 Update webservermode docs 35bf2a59a Improve test reliability (fix fluky test) aa34889c0 Don't run migrations twice 25c527ee6 combined exchange.buy and exchange.sell, Adding dummy mock to create_order in tests in test_freqtradebot 34c8a5afa remove second filter, add max option b7ba2f115 retrigger checks 0fcbe097c remove blankspace 7a0cb95ff fix testcase b9c2489b7 remove SN ba0fa1120 revert rename naming acfaa39e5 revert back test_rpc_api_server 8032257fd revert test_pairlist aea5da0c7 changes testcase 65fc094c9 add to webhook-config 5fe18be4b add note buy_tag and split 3 assignment for get_signal dd923c347 Update docs/strategy-advanced.md 65b4705b6 Update docs/strategy-advanced.md b01daa8bb expose buy_tag to api dd809f756 run mypy 643b6b950 run flake8 25e329623 change signature 46f2a20a9 run flake8 235c1afd0 add buy_tag on telegram f5a660f84 caps BUY_TAG_IDX 49886874a rename to buy_tag 1ea29a918 Fix webserver timerange problem. db1e67663 retrigger checks 66a707017 run linter 5d04d6ffa fix edge testcase cbfedf8b2 fix backtest testcase c558fc0b1 fix feedback 3d8b2d601 fix test persistance ed30c023c fix some testcase d31d38a85 add doc ec526b3f9 fix testcase 7d0400521 add test and migration 104711a9b get_signal signature 9e63bdbac feat: add buy signal name ab786abf7 Fix intendation. f70529335 Dataprovider caching and trimming to timerange of historical informative. 365479f5e Remove startup-candles after populating buy/sell signals 8b0a02db8 Correct exception messages 8b485d197 Update Plugins doc 638bed3da Add RangeStabilityFilterMax pairlist filter ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 5 years ago

FreqAI - 2021.7

Highlighted changes

  • Configs / templates will now default to using the orderbook to determine prices.
  • Move several settings from ask_strategy to the config's root level.
  • .range option now available for CategoryParameter and DecimalParameter.
  • Provide full backtest statistics to hyperopt_loss functions (important for hyperopt-loss function authors)
  • Automatic hyperopt parameter file - allowing you to automatically have aligned hyperopt and backtesting results.
  • Pairlist modifications
    • New option for AgeFilter to filter only for new pairs. Careful, these often mean more risk!
    • New pairlist-filter OffsetFilter - allowing to skip the first few pairs (for example in combination with Volumepairlist).
    • New option for VolumePairList - allowing dynamic lookbacks based on candle data.
  • New available_capital setting - allowing multiple bots to coexist while relying on compounding gains Read more.
  • Improved cumulative profit calculation for /profit command.
  • Added Webserver mode (freqtrade webserver) for interactive, web-based backtesting.
  • Censor Database passwords before printing them to log to prevent information leakage.
  • Docker images are now available as multiarch build (including arm64). This simplifies usage on Raspberry or arm64 devices, such as the Apple M1.
  • Deprecated order_book_max and order_book_min. Removed support for having the 2 options different - which resulted in strange sell behaviour.

How to update

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

docker-compose

bash 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 ``` 03064731a Version bump 2021.7 6490b82ad Update docker-documentation for multiarch builds cf4d1875d Use prohibitedIn instead of isRestricted a451a9727 Bump ccxt from 1.53.25 to 1.53.72 0fac9c9cf Bump pandas from 1.3.0 to 1.3.1 6a3838ea4 Bump coveralls from 3.1.0 to 3.2.0 0f82174c5 Bump sqlalchemy from 1.4.21 to 1.4.22 7d428f9cb Bump fastapi from 0.66.0 to 0.67.0 11937fd1b Bump mkdocs-material from 7.1.11 to 7.2.1 05f74bdf5 Changed log ouput to debug in exchange.get_rate 1e32a3ca0 :memo: Docs - StrategyAdvanced - Added `current_time` to `confirm_trade_entry/exit()` examples b42afb9da get_rate checks if side is buy for some console output 06e7f379b Fix code to get Bittrex US-restricted markets b84a1d0c9 Don't crash when *_params is not defined in strategy 986aafcdf Fix configuration.md typos 550a9de09 Fixed setup for python3.9 on ubuntu b0bfbb655 removed buy and sell merge, updated strategy name, removed default side for get_rate d13524f7c Update ta-lib wheels fe8de9883 Bump mkdocs from 1.2.1 to 1.2.2 bff353a29 Bump numpy from 1.21.0 to 1.21.1 b7c951eac Bump sqlalchemy from 1.4.20 to 1.4.21 7efad98e4 Bump questionary from 1.9.0 to 1.10.0 4a2688974 Bump ccxt from 1.52.83 to 1.53.25 31b3b4999 Bump requests from 2.25.1 to 2.26.0 c1f1dfb36 Bump mkdocs-material from 7.1.10 to 7.1.11 e9d9668e8 Bump ta-lib from 0.4.20 to 0.4.21 ffeff9c0f Update ARM image building adef5d89f Fix failing test after webserver merge 0282d1322 Fix PI image caching 51cc90324 Run ci on selfhosted runner 44df5eeac Adjusted docstring, and conditional near end of buy_rate 7c27525bd Merge get_buy_rate and get_sell_rate 53a8c693b Honor skip_pair_validation setting when downloading pairs. d652e6fcc Don't log from wallet in backtest mode b7dc2989e flake8 adjustments 2e95df4d8 Update docs for /profit output 2928ee22c Remove compose file for devcontainer 07e3f8240 Changed to python3.8 installing first, removed test_and_fix_python_on_mac 65ce7c983 Added echo python3.* line back in 74d7497a4 Setup script tries to install python3.9 instead of 3.8 with this fix, python versions are also checked for in a loop instead of copy and pasted code cde041f70 install hdf5 and c-blosc on mac if using python3.9 697bf92f6 Add test for get_starting_balance method 02d716a8b Fix api test c9c7f84e8 Calculate relative profit based on assumed starting balance f5c47767c Provide available capital to api 288c92301 Improve docs wording 362436f7d Renamed example config files so they are .json so that syntax highlighting is all correct. Explicitly listed each one in .gitignore to prevent a real config file from being uploaded accidently 29e2b858c Improve wording in docs 2bf7705f2 Renamed example config files so they are .json so that syntax highlighting is all correct. Explicitly listed each one in .gitignore to prevent a real config file from being uploaded accidently 91e5562ae style: apply flake8 formatting 8def18b00 style: apply flake8 formatting 313cf6a01 test: add test for parsing db uri c78b2075d feat: add one additional asterisk 6a53e2c76 feat: apply censoring to logging f94dbcd08 feat: censor password from logs 40db42436 Add documentation for available capital setting 6a8e8875a Test new behaviour 786374690 Add available_capital parameter b41c23444 Extract Closed profit calculation to trade object ed77889d6 Add explicit tests for _validate_stake_amount 81c50aca0 Bump isort from 5.9.1 to 5.9.2 21ef08d9a Bump mkdocs-material from 7.1.9 to 7.1.10 f4caf9b93 Bump ccxt from 1.52.40 to 1.52.83 8b78a3bde Quick fix for trades opening below min-trade amount 7ea0a74c5 Default to proposed stake 0e4466ca1 Implement strategy-controlled stake sizes. Expose `self.wallet` to a strategy. f658cfa34 Remove Slack 52ae95b2a Improve naming of apiserver variables ad26b0dad Don't void backtest object when not necessary 72a103f32 Properly test webserver startup in standalone mode e4e2340f9 Fix bug where currencies are duplicated cf6f70607 Don't build for feat branches 6129c5ca9 Fix deprecation warnings from pandas 1.3.0 2f33b97b9 Validate startup candles for backtesting correctly 03861945a Update documentation page too. 863391122 fix short desc not appear 8be024157 Build images for feat/** branches e5da7ff6d Fix typos and improve wording in docs 7dc826d6b warning for range based lookback performance more readable formatting of examples 5a2bc192d Update docs/includes/pairlists.md 4d4ed82db Update docs/includes/pairlists.md 682f88063 Slightly simplify if statement, add additional test 8248d1acd run flake8 00a1931f4 fix test c44e87cd3 added tests for `OffsetFilter to `test_pairlist.py` 6cea0ef2d documentation for `OffsetFilter` f30e300f1 adjusted `test_pairlist.py` for fixed rolling sum 3c3772703 changed quoteVolume to be built over a rolling period using lookback_period to avoid pair_candles being larger than requested lookback_period d1104bd43 fix daily profit data and daily profit curve example b7a9853d9 Increase test coverage a4bd86232 Fix fluky test 36d4a15d2 quickly document webserver mode 005da9718 extract backtesting abort functionality 5474d5ee6 Move webserver start command to seperate file e5b1657ab Properly remove rpc handler 2ec22f1d9 Add Sorting to available pair list 830b2548b Add backtest stopping 129c7b02d Not all config values are mandatory in webserver mode 17b3cc209 Return numeric value, not empty string b44d215b9 Add test for backtest via APII 804d99cce Move backtesting api to it's own file 856630601 Add test for start_websever 134c61126 Properly track bt progress ... 03140a0ec Run webserver in main thread when using webserver mode 37b15e830 Add trade count to progress 048008756 Add progress tracking for backtesting 06b672602 Support compounding key f96d7dfe6 Allow backtesting to reuse data edb8c4f0e Fix tests for webserver mode 5c18c8726 Implement backtesting with fastapi df5525973 Add start_trading endpoint 02b84bd01 Introduce webserver mode for fastapi 800e314bf Store backtesting results in backtest instance 97e8ec91f Save configuration file paths ef137546f Add webserver entrypoint 502c69dce change short desc dec523eef Display verison of installed FreqUI 1e87225e9 added `test_VolumePairList_range` to test_pairlist.py 10998eb0f Remove further usages of int(int_timestamp) 346d66748 first version of OffsetFilter 5626ca5a0 removed unnecessary casting to int() ac7598ff1 Bump python-telegram-bot from 13.6 to 13.7 0c8afea38 Bump pandas from 1.2.5 to 1.3.0 d1555a109 Bump fastapi from 0.65.2 to 0.66.0 7ae5f4724 Bump sqlalchemy from 1.4.19 to 1.4.20 2f97846bd Bump ccxt from 1.52.4 to 1.52.40 0d787fde5 Bump plotly from 5.0.0 to 5.1.0 7ac55e541 AgeFilter, RangeStabilityFilter, VolatilityFilter changed `float_timestamp` to `int_timestamp` 85c7b5575 improvements: - `float_timestamp` switched to `int_timestamp` - added documentation to pairlists.md c5489d530 Reexport File to docs to have this available as documentation too c3cf71bba sort import 2d5ced780 fix testcase 9e548657e fix testcase 558bcc795 Jupyter notebook snippet: Plotting daily profit / equity line 4aa2ae37b add daily_profit_list 791dfd9ba Fix some doc typos 9919061c7 PEP8 compliance 348dbeff3 added meaningful logging of used lookback range 77293b1f1 Remove Zero duration Trades a4096318e Provide full backtest-statistics to Hyperopt loss functions 7efa228d7 add dust balance dbdd7f38a add plural b722e1235 compact low balance currencies f6511c3e3 fix typo and add blocker b72bbebcc fix flake8 3d9f3eeb0 feat(agefilter): add max_days_listed dc8abd77d Fix import order 3686efa08 Add range property to CategoricalParameter and DecimalParameter, add their tests. 53f963dd7 fixed `self._tf_in_secs` to `self._tf_in_sec` 62da4b452 code cleanup and comments 055229a44 first iteration of volume pairlist with range lookback 3503fdb4e Improve tests for newly added methods fbd91cd3f Improve formatting to avoid backslash newlines b25ad68c4 Fix np.bool_ not outputting correctly 849f01e6b FIx doc typo 99bc6bbb8 Bump python from 3.9.5-slim-buster to 3.9.6-slim-buster e034f11dc Improve test for hyperopt_show b8de3270f Plotting: Fix hover mode options after plotly update 60b7f6edf Improve documentation 15e36a20e Improve naming of default hyperopt serializer bc0742ae6 Fix extremely optimistic results when using a combination of custom_stoploss and trailing_stop. 0809225a0 Update documentation to mention parameter strategy files 645da51b5 Add test for parameter loading dcf53ac3f Add test for try_eport_params ff61b8a2e Disable parameter export from tests 84703080b Extract hyperopt_defaults_serializer to hyperopt_tools 55f032b18 Catch trying to read faulty parameter file 62cdbdc26 Automatically export hyperopt parameters a8117c6e0 Refactored to use results variable from for loop a2ccc1526 Load parameters from file 8ca007633 Fix small typos d4514f5f1 Introduce File versions to hyperopt result files a7e9e362b Simplify printing logic for non-optimized parameters 8b7010fc9 Update pprint name aa5181ca8 Properly export non-optimized parameters ef14359d3 Add some tests for paramfile writing e97de4643 Move tests to hyperopttools test file 34e6ce431 Print non-optimized parameters (also stop / roi) 2310deec5 Update name to get non-optimized parameters 8cdd1e3ae Fix some type errors 2bf17f71e Dump parameters from hyperopt-show 750c78029 Support loading parameters from json file d54de7247 "/profit N" command should print best pair for the same period of time, not for all trades 65d7e7488 Add note about ldconfig a0f28f4a1 Added max open trades to strategy summary first line 8a0523885 Bump mypy from 0.902 to 0.910 2e5b719de Added timerange above multiple strategy backtest result summary table c99ae3b41 Added timerange above multiple strategy backtest result summary table 321523269 Bump pandas from 1.2.4 to 1.2.5 91bb37820 Bump nbconvert from 6.0.7 to 6.1.0 06829c840 Bump ccxt from 1.51.77 to 1.52.4 694f30d0f Bump types-requests from 0.1.13 to 2.25.0 157ff8219 Bump urllib3 from 1.26.5 to 1.26.6 6824e64dc Bump sqlalchemy from 1.4.18 to 1.4.19 9e09b271e Bump isort from 5.8.0 to 5.9.1 281c18bad Bump plotly from 4.14.3 to 5.0.0 3026c340c Bump python-rapidjson from 1.0 to 1.4 d41218c97 Bump mkdocs-material from 7.1.8 to 7.1.9 738fe45b4 Bump numpy from 1.20.3 to 1.21.0 d810c262e Bump arrow from 1.1.0 to 1.1.1 d09b71245 Bump types-cachetools from 0.1.8 to 0.1.9 34448fb87 Expose default currency precision to API 00a7097b9 Reduce verbosity of getting sell-rate from orderbook 3f669147f Simplify strategy-resolver moving 158cb415a Add settings interface to have types available ce69abc06 Update docs and tests for newly deprectated settings b7f01a08f Update sequence of process_deprecated_setting parameters 0235868c6 Update tests for new config structure 1067a9f35 Move strategy-override signals to top-level of the config fa72ed10b Add Kukoin to community tested exchanges c62fad008 Pricing strategies should default to use orderbook pricing 0ecf456d7 Update Deprecation date 59a33d0fa Add test for ask_orderbook validation 8c542e402 Update tests for removed order_book_max option ae6a5c908 Update documentation to reflect new setting for sell price d59a38665 Remove support for order_book_max ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 5 years ago

FreqAI - 2021.6

Highlighted changes

  • Sell-notifications can now be configured based on sell-reason.
  • list-strategies subcommand shows hyperoptable parameters.
  • /profit now accepts a number of days from which the profit shall be shown.
  • Improved backtest-logic, improving accuracy in trailing stop scenarios.
  • Hyperopt now shows the maximum drawdown for each epoch.
  • Refresh-buttons on select telegram messages, to refresh the message instead of reposting it.
  • Dry-run is now realistically simulating order filling, allowing dry-run to result in unfilled orders in dry-run as well.

How to update

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

docker-compose

bash 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 ``` 1cb057bda Version bump 2021.6 d294ef10d unexpected docstring params a46f60bd9 spell corrections 1a82685dd Don't reset log caching fef73b1b6 Update configuration.md ea236abf1 Update configuration.md 69a3aee01 minor edits 9e9124028 binance-portal 2ade3ec7b Add max-width query to hide on small screens f585ffa26 Add Dark theme to Documentation 538a1acdb Add Binance Broker ad to documentation page e0d3ca6c6 Fix import sorting c938edc01 Apply dataprovider to /pair_history endpoint f7c09ba63 Log endpoint should use static rpc class 3c70768e1 make "/profit N" command output be consistent with "/daily" and "/status table" commands 10e94350e Update installation.md e97c82c51 make "/profit N" command output be consistent with "/daily" and "/status table" commands 0605cbb06 make "/profit N" command output be consistent with "/daily" and "/status table" commands 8c1484ed5 Bump types-filelock from 0.1.3 to 0.1.4 2d05a8bea Bump types-cachetools from 0.1.7 to 0.1.8 fdc04e27a Bump types-tabulate from 0.1.0 to 0.1.1 bb0ee837b Bump pycoingecko from 2.1.0 to 2.2.0 a6628fc65 Bump types-requests from 0.1.11 to 0.1.13 eab639949 Bump prompt-toolkit from 3.0.18 to 3.0.19 fc7b372ce Bump ccxt from 1.51.40 to 1.51.77 17f8936f4 Bump scipy from 1.6.3 to 1.7.0 97351c95c Add section about GPU support 7f434c041 Simplify mkdocs jquery inclusion by using overrides 347eceeda Try fix fluky test 122943d83 Don't run filter again for pairlist generator 96fbb226c Implement better strategy checks a7f834217 Add small documentation about reload disabling 6e99e3fbb Implement tests for message updating 39b876e37 Log exchange responses if configured 656bebd4d :beetle: Included completely non_optimized spaces in json + swapped merge dictionary order 6e89fbd14 Remove Dockerfile.aarch64 e1010ff59 Don't load protections from config if strategy defines a property 0a1e15988 Fix errors during ubuntu install 156780450 :zap: kwargs merge dictionaries instead of using loops 546ca0107 :recycle: Fixed flake8 warning 8562e1977 Document protections to come from the strategy a9f111dca Fix some types a49ca9cbf Change log-level "Executing handler" msg to debug b38ab84a1 Add documentation mention about new behaviour 1c9def2fd Update freqtrade/optimize/optimize_reports.py 1bb04bb0c Moved daily avg trade row next to total trades on backtest results 38ed49cef move low to stoploss_reached 6d5fc9671 Implement most pessimistic handling of trailing stoploss. cf7394d01 Export backtesting results by default 4ba7a2bbd Fix mypy update problems 63802aa7f Bump mkdocs from 1.2 to 1.2.1 fe933e78b Bump ccxt from 1.51.3 to 1.51.40 3f1d6d453 Bump mypy from 0.812 to 0.902 4530ae28c Bump sqlalchemy from 1.4.17 to 1.4.18 6dc4259c6 Bump mkdocs-material from 7.1.7 to 7.1.8 cd6620a04 Ignore broken symlinks while resolving strategies. e22625292 Always use the same parameter sequence a95f760ff Simplify update logic by moving it to send_msg 03eff6982 Simplify update message sending eaf0aac77 Remove OrderedDict fb4dd6c2a Update test to cover this scenario d54ee0eb0 Refactor hyperopt_tools naming c65b4e5d3 Small fix to models d35b2e3b8 Update ftx stoploss logic to properly detect correct trades a05e38dbd Require timeframe for plot-profit c215b24a1 Bump fastapi from 0.65.1 to 0.65.2 c29292608 Small style improvements (no empty line at start) d4dfdf04f Move RPCMessageType to enums 40f1ede77 Simplifying HO's result function 756904f98 Set sell_reason to stoploss when closing the trade as stoploss 9c34304cb Move state enums to enums package 3c149b9b5 Move signalType to enums 89b9915c1 Update imports for SellType in tests d16a61948 Move SellType Enum to it's own module b9cf950bb Add test for bad argument on /profit 3310a4502 Change wording if limited lookback is used 3cce66835 Creating a control variable to determine the existence of max drawdown in the final result. 816bb531b Creating fake column for legacy mode on max drawdown 4595db39a Displaying max. drawdown only when it is not legacy mode. c513c9685 Remove blank line (PEP8) 5c3a418e6 Adjusting drawdown column position. 35d614006 Displays the max drawdown in the hyper optimization results table. 4512ece17 Update Discord link 97a12ddab Version pin mkdocs to avoid nasty surprises dff8490da Fix docs rendering for pricefilter 57cd8888e Bump blosc from 1.10.2 to 1.10.4 14119d736 Bump mkdocs-material from 7.1.6 to 7.1.7 77a2feeb9 Bump pycoingecko from 2.0.0 to 2.1.0 2468ae35c Bump ccxt from 1.50.70 to 1.51.3 69d74544a Bump python-telegram-bot from 13.5 to 13.6 9073a0532 Bump pytest-cov from 2.12.0 to 2.12.1 c8accd314 Bump uvicorn from 0.13.4 to 0.14.0 6479217cb Don't build for test_multiarch c76848e08 Update dry-run description with new filling logic c389d44e9 Improve filling logic db03a2410 Add tests for fill methods 1e988c97a Update dry-run order handling to use realistic fill prices a0893b291 Fix strategy samples to use runmode.value 42b6d28b3 Update warning about order_time_in_force 812eb229d plot-profit: Make "auto-open" HTML result optional 80af6e43e test-pairlist: remove non-JSON headline from JSON output cabab44b7 Combine docker build scripts 387f3bbc5 Adjust missed tests bd1984386 Move get_sell_rate to exchange class 12916243e Move get_buy_rate to exchange class 4e1425023 Further reorder exchange methods 4c277b303 Reorder exchange methods 67beda6c9 Add fetch_dry_run_order method 10cd89a99 Allow the API to respond faster in case of long pairlists 9edcb393b telegram: move the most important information to the top of sell message fixed flake error 159440231 Add note about signal expiry 79552a93f telegram: move the most important information to the top of sell message fixed tests 53b1f3895 telegram: move the most important information to the top of sell message f920c2680 fix Hyperopt-list avg-time filters b5e3fe3b8 Document bittrex volumepairlist incompatibility f9541d301 Bump ccxt from 1.50.48 to 1.50.70 5d4e18233 Bump coveralls from 3.0.1 to 3.1.0 b4319b5ad Bump sqlalchemy from 1.4.15 to 1.4.17 eb166147c Bump mkdocs-material from 7.1.5 to 7.1.6 cd300c52e Bump urllib3 from 1.26.4 to 1.26.5 2d7ccaeb3 Add test for load_config 06b59551b Improve test coverage e3d5c9cb1 Fix typo in exception message 901d984ee Tests should write to tmpdir, not testdir 806838c3a Fix we use check sell_noti not noti b54da430b Add ability to plot bars on indicator chart and pass custom arguments to plotly. 08f96df3a Don't write to testdir, but to tempdir d7fdc2114 allow list-strategies to show if params are hyperoptable f6b1abe23 Remove ci from test_multiarch again 9cf2c2201 Align dockerfiles 1e052bde9 Move Dockerfile.armhf to docker directory 8658be004 Use docker-manifest to build multiarch images 313567d07 Support having numbers in custom keyboard 6418f2eed Removed binance.je from exchange specific notes 4617967e1 Try building for multiarch 14df24366 day/week options for Telegram '/profit' command mypy fix 012309a06 day/week options for Telegram '/profit' command fixed line lenght 36b68d370 day/week options for Telegram '/profit' command format changed to "/profit n" 4b5a9d8c4 day/week options for Telegram '/profit' command revert accidental changes 59366208b Add no_build-isolation to arm images too 27bd3cea4 Fix failing docker build a965436cd day/week options for Telegram '/profit' command format changed to "/profit n" 8a56af919 Update onlyprofit loss should use absolute profit a42effd4f Update email to freqtrade email address 6235a4d92 [changes] - Hyperopt code example 5d9610749 Don't configure isort twice 3014bc346 Don't use Sum sign in hyperopt to avoid compatibility problems 9fbc5c053 Switch to pyproject.toml for setup cf39dd216 Fix csv-export error with new hyperopt format e0083bc58 Support backwards-compatible sell setting 66de5df1d Update sqlite init method b82f7a2df Update orders-migrations to work with new sqlalchemy syntax 17f74f7da Ensure commit happens on forcebuy a01d05997 Add Trade.commit method for easy use 6fb32c359 Use commit instead of .flush() eaa47ff33 Don't use autocommit c31cb6711 Further changes for sqlalchemy 1.4 2f79958ac Move declarative_base import to import from .orm c5c323ca8 Settings notify sell in telegram base on sell reason (#5028) 8bef7217e Forgot to save :O a6cd35365 Address random ci failure bd44deea0 BugFix - hyperopt-show --print-json include non-optimized params 336f4aa6a day/week options for Telegram '/profit' command isort fix 935ed3643 day/week options for Telegram '/profit' command mypy fix e9841910e day/week options for Telegram '/profit' command 1cb430f59 Remove encoding specifics, gitattributes to echeckout as utf8 e0ca3c014 Don't completely remove encode/decode 30da307d1 Remove encode/decode for hyperopt cf03daa0f Fix bug in running hyperopt in windows 10 with preferred encoding in locale differrent from utf-8 ba32708ed Update telegram.py 54d0ac9d2 Update telegram.py 21d3635e8 Update telegram.py 69d62ef38 Add Refresh / Reload Button on rpc/Telegram ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 5 years ago

FreqAI - 2021.5

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

bash 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 ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 5 years ago

FreqAI - 2021.4

Highlighted changes

  • Quick Hyperopt - using Parameters to inline hyperopt parameters in the strategy. In many cases, this will make a seperate hyperopt file unnecessary. Please make sure to read the updated hyepropt documentation for full details.
  • new-config will help configuring the RestAPI and frequi.
  • Technical is part of the freqtrade dependencies and therefore available in the default Docker images (no need to build your custom docker image anymores)
  • Docker images are now using a non-root user to run freqtrade.
  • VolatilityFilter - filtering pairs based on low / high volatility. check the Documentation for more details.
  • Buy / sell fill notification messages. These messages are sent when a order fills - and are disabled by default. Check the Telegram docs for details.
  • Backtesting output is now sorted.
  • Freqtrade will now dynamicaly determine which exchanges can be supported.
  • Improved "unlimited" calculation when stake-currency is deposited or withdrawn.
  • plot-profit will now show absolute Values, no longer Percentage results.

How to update

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

docker-compose

bash 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 ``` e905e0328 Version bump to 2021.4 63c28b651 Remove obsolete get_balance method 1465af50d FTX usable configuration 3f84c37a7 Fix wallet calls 298f54adf Bump pytest-asyncio from 0.15.0 to 0.15.1 6f0a585bd Fix random test failure due to ttl 0 issue 02160d52e Bump scipy from 1.6.2 to 1.6.3 bdcf21e18 Bump pycoingecko from 1.4.1 to 2.0.0 e5bdafd4a Bump ccxt from 1.48.22 to 1.48.76 09a3448fd Bump pytest-mock from 3.5.1 to 3.6.0 14ef080d2 Bump sqlalchemy from 1.4.9 to 1.4.11 4a5eba3db Bump mkdocs-material from 7.1.2 to 7.1.3 bb7ef2f80 Cache pairlist in pairlist, not globally 7448a05f1 Use correct variable in pairlist_manager fd3afdc23 plot-profit should use absolute values 4636b3970 Fix failed test due to exchange downtime 2eda25426 fix typo in sample_strategy.py e85553048 hdf5 handler should include the end-date cb86c90d3 Remove obsolete TODO's 88f26971f Use defaultdict for backtesting b22377538 Update "output" of jupyter notebook as well 185d754b8 Improve documentation to suggest config-private.json 31b0e3b5e add distribution graph to example notebook 7453dac66 Improve doc wording d647b841f Add docs how to optimize indicator parameters 5c7f278c8 add tests for IntParameter.range 90476c428 Add "range" property to IntParameter 9dc7f776d Improve log output when loading parameters 191a31db3 NameErrors should not stop loading a different strategy df16fbd74 Add "dataload complete" message to backtest + hyperopt 4005708f8 Handle edge with volumepairlist and empty pair_whitelist 406c1267a Remove superfluss space ccaf5764d Small adjustments 0d2457cd4 Add lock_reason to per-pair lock 7e2e19664 improve sell_message by using sell rate 314418540 Allow specifying "new_pairs_days" in config. f744df237 Fix bad fill message 09efa7b06 Add --new-pairs-days parameter for download-data command. 515c73f39 Don't hard-limit trades endpoint for now 896ec58ca Add the reason why there is a global pairlock when lock is available 92a2e254a Fix backtesting test d8c8a8d8c Remvoe pointless arguments from get_trade_stake_amount f7a4331c8 Create config_ftx.json.example ba2d4d465 Reduce number of calls to `Trade.total_open_traes_stakes()` 0233aa248 Limit stake_amount to max available amount 9f6f3e086 Address ZeroDivisionExceptiond 05ce3acc4 Improve tests for api_trades 759bbd8e7 Update documentation about pagination bd92ce938 trade_history should paginate through results cfa9315e2 Prevent out of candle ROI sells 5defd9a7f setup.sh: Install libpython3-dev on Debian/Ubuntu fd110c7d6 The error that it prints says the contrary to what was evaluated. f821ef5ae Final finetunings of rpc_fill messages efbe0843b Add documentation for fill messages d740aae8c Default fill notifications to off 0341ac5a5 rename RPC message types 8800a0977 Don't send double-notifications for stoploss fills fecd5c582 Add buy and sell fill notifications 71b017e7c Simplify webhook test 06d6f9ac4 Fix calculation of unlimited_stake in case of modified wallet 1936dd1ee Add test-case verifying "changing" wallet 2254f65fa use binance intests instead of bittrex bd7e535e4 Use "human" amounts in stake_amount tests c9e901cf3 Move wallet tasks to test_wallets 75612496d Improve poweredBy logo spacing a2acb54e7 Clarify comments in pairlist 0ddc68b37 Bump ccxt from 1.47.47 to 1.48.22 66b3ecfee Remove faulty font-family in svg 9407dbcf8 Add freqtrade powered by ccxt b94de3030 Bump mkdocs-material from 7.1.1 to 7.1.2 59d02f3f0 Bump sqlalchemy from 1.4.7 to 1.4.9 05246e663 Bump pandas from 1.2.3 to 1.2.4 8d2e6954a Bump flake8 from 3.9.0 to 3.9.1 296ea30cc Bump pytest-asyncio from 0.14.0 to 0.15.0 0737e3fa2 Clarify refresh_period section for volumepairlist 44bfb5366 Don't use current rate for closed trades fbb907553 Update util command structures too c8d3d449a Add quick test for pair_whitelist overwrite 6a9c47d15 Update docs with new options 1eb9ce422 Allow specifying pairs for optimize commands via `--pairs` 5c579613e add /trade endpoint to rest_client script aeb81f90f Implement errorhandling for /trade endpoint e6936ae13 Improve wording in docs 8ce5522a1 Add additional documentation for SKDecimal space 2011912a1 Adapt documentation to use 3 decimals only 01b303e0f Aligning the doc 5e51ba625 fix flake8 ce870bbcf Use 3 decimals for ROI space 714278725 Roll back unintended changes that break rendering c9c039d64 remove `copy()` from `custom_info` example ce23d9dfe Fix test min stake amount 885096f2b Update tests for get_min_pair_stake_amount fa343b048 Fix get_min_pair_stake_amount formula 52c482cec Convert trailing and roi defaults to skdecimal e82081480 Default-stoploss-hyperopt should use decimal space, nto real 862df2b43 Add blacklist recommendation for kucoin ba38e398e Add type hint c316531c4 make tests 3.7 compatible c2f35ce41 /balance should use cached tickers when possible 82d66410f Fix /performance output 521e48c94 Add doc section for Kucoin e4bb6b158 Add kucoin exchange subclass 638cd4e8f Upgrade cleanup action to latest version 37c8fd6ad Remove arrow from models.py e0f2bb616 update conda dependencies to make compatible with tables package 99e7ee127 Fix ftx stoploss creation test f1cf56cc4 Update current_whitelist test 9b23be402 Return a copy from `current_whitelist` 4b902d6eb Don't use response-model on trades endpoint for now 9a58a8534 Don't export "hum" date versions for trade objects. 1194d0c0f Update brew before installing packages d4dc05980 Update ftx.py f1ac6853f Fix discord invite link c19ebc015 Bump mkdocs-material from 7.1.0 to 7.1.1 53bbb2b42 Bump ccxt from 1.46.38 to 1.47.47 1b925ec4a Bump sqlalchemy from 1.4.5 to 1.4.7 906c4e64d chore(readme): Fix markdown of docker manual aaf9872ef Simplify webserver test 4820b4b31 Fix test failure 579e68f31 Reduce log verbosity when buying 96a5b6555 fix documentation inconsistency fixes freqtrade/freqtrade#4650 14e857423 fetch_balance is never called in dry-run 37c2e037f Rename dry_run_order to create_dry_run_order ebbe47f38 Simplify fiat convert and fix USD coingecko problem 9804e2011 Don't use _set_value for autoOpt-Spaces 83fbaf16c Extract numeric param validation and explosion ea4b5d675 Don't explode low/high, but use explicit parameters 34e47db18 Test SKDecimal space fedff1a75 Fix failing test 5f6740064 Add SKDecimal Space 126127c1e Fix armHF image to use ftuser on install too 4b2cec22e Chown .local dir 0b4b67e46 add FAQ entries for shorting, futures, and options 644dcc164 Only allow chown via sudo 4eb251ce4 Update dockerfiles to run as non-root 898c24949 Add chown method to support docker 74bf0b639 Fix typo in documentation 5a5c5fccf Add gitattributes file 862f69f89 removed typos f8244d9d7 resolves freqtrade/freqtrade#4650 4d30c32ad Improve resiliancy of a test 5ee879a74 isort resolves freqtrade/freqtrade#4650 17508efbb resolves freqtrade/freqtrade#4650 7f8d90d34 Update list-exchanges doc with new format d2680f6cb Remove telegram deprecation warning ac6bff536 Fix test failure with UI test if UI is deployed 0f0607bae Fix rangeestability filter caching issue 9772a9363 resolves freqtrade/freqtrade#4650 9089323d2 resolves freqtrade/freqtrade#4650 187cf6dcd VolatilityFilter resolves freqtrade/freqtrade#4650 a3b4667f7 Update exchange validation to use "validate_exchange". b6599c1da Improve Kraken-specific config description. 5ed782844 Remove hardcoded list of non-working exchanges f37fbbf4e Update constants.py c40b811f1 flush after creating mock trades bf0886a83 Update constants.py 56ef3af42 Allow comments in pairs files 1733e2406 pyLint adjustment resolves freqtrade#4650 be770a894 added VolatilityFilter resolves freqtrade#4650 6f02acdbb Revert "resolves freqtrade/freqtrade#4650" 142690c93 resolves freqtrade/freqtrade#4650 ddabfe020 adjust tests to match new exchangelist output 969d44a95 Update Dockerfile.armhf 0550f261f Add exchange_has validation 6633752fc Bump python from 3.9.3-slim-buster to 3.9.4-slim-buster fc78246bb Some changes to rest-api docs ddba0d688 Add new trade endpoint to docs c176e277f Add a REST endpoint for getting a specific trade 78a84f808 Allow --hyperoptloss in addition to --hyperopt-loss 7b2a0d46c Fix typo 3044aa18e Add warning for hyperopt-parameters c51839dc3 Make the logmessage for loaded parameters clearer dc406fe19 Fail in case of name and explicit space name collisions 7132aefd6 Rename Trade.session to Trade._session af5258181 Update Dockerfile.armhf e979f132e Bump python from 3.9.2-slim-buster to 3.9.3-slim-buster ea0b47a7f Replace test occurances of Trade.session with Trade.query.session 0407bf755 Use .query.session to make sure the scoped session is used properly abbc56c1c Bump pytest from 6.2.2 to 6.2.3 36b39f913 Bump pycoingecko from 1.4.0 to 1.4.1 320172a22 Bump sqlalchemy from 1.4.3 to 1.4.5 fc2f9fd0c Bump ccxt from 1.45.44 to 1.46.38 342f14472 Bump mkdocs-material from 7.0.7 to 7.1.0 c2be9b971 Improve backtest assumptions with fill rules 9e56f6d4e Sort pair lists by total profit 30e5e9296 Don't allow one parmeter to be in 2 spaces 9d4b5cc6b Fix typo 5f6eae52a fix too long performance message 6555454bd Remove more ticker_interval occurances 771fc0574 Update sample strategy with hyperoptable Parameters 093d6ce8a Add sample for Nested space c2d43a526 Combine Legacy and advanced hyperopt sections 32a503491 Reorder hyperopt methods 4eb7ce52c Remove duplicate entries from hyperopt_legacy faf40482e Fix parameter printing. 23c19b685 New hyperopt documentation. e7a1924aa Fix typo 7728e269f Include Technical in default image ea43d5ba8 Implement DecimalParameter and rename FloatParameter to RealParameter. 3691ae868 Make sure the fiat converter exists before calling it ede26091b Add validation in the right places... f47dc3178 Refactor the comparison involving `not` 2c0079b00 Add profit_fiat to tests, use ANY, as price changes... 51f0fcb2c Add profit_fiat to REST API d64295ba2 Adapt test strategy to new parameters 5acdc9bf4 Fix type errors by converting all hyperopt methods to instance methods 5e5b11d4d Split "enabled" to "load" and "optimize" parameters. 2869d5368 Allow edge to use dynamic pairlists 50fcb3f33 Reduce verbosity of missing data if less than 1% of data is missing 89bbfd232 Remove candle_count from dataframe before backtesting 6954a1e02 MOre tests for ParameterHyperopt 5d5debab6 Bump scipy from 1.6.1 to 1.6.2 3e864a87a Bump cryptography from 3.4.6 to 3.4.7 dacaa4a73 Bump ccxt from 1.43.89 to 1.45.44 8d01767a4 Fix CI syntax 95a9c9276 Add permission-check before slack notify 8e49271e6 Bump prompt-toolkit from 3.0.17 to 3.0.18 607c05b3c Bump sqlalchemy from 1.4.2 to 1.4.3 e5789b36c Bump numpy from 1.20.1 to 1.20.2 932284574 Bump mkdocs-material from 7.0.6 to 7.0.7 f6211bc00 new-config should include API config fc8478111 Improve strategy template 929f32960 more tests 20f7e9b4b Make BaseParameter get_space abstract 802238640 Type custom_hyperopt 4fd7bedcb Sort imports ... 71e213469 Add some simple tests for hyperoptParameters 786ddc6a9 remove unused imports e934d3ddf [SQUASH] Oopsie. 40f5c7853 [SQUASH] Add a way to temporarily disable a parameter (excludes from parameter loading/hyperopt) and print parameter values when executed. bbe6ece38 [SQUASH] Fix parameter configs not loading. 424cd2a91 [SQUASH] Use "space" instead of category. fd45dfd89 [SQUASH] Make skopt imports optional. 11689100e [SQUASH] Fix exception when HyperOpt nested class is not defined. e9f0babe8 [SQUASH] Use HyperStrategyMixin as part of IStrategy interface. 2d13e5fd5 [SQUASH] Oopsies. bb89e44e1 [SQUASH] Address PR comments. 0a205f52b Optional support for defining hyperopt parameters in a strategy file and reusing common hyperopt/strategy parts. 4d8183491 Merge `isinstance` calls 45da3a702 Refactor unnecessary `else` / `elif` when `if` block has a `continue` statement 910e15b17 Remove methods with unnecessary super delegation. 6d6ad035d Remove length check in favour of truthiness of the object 537ad059b Remove unnecessary use of comprehension 62d99a0b7 Remove unnecessary comprehension 4f5a1e94a Add .deepsource.toml ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 5 years ago

FreqAI - 2021.3

Highlighted changes

  • Allow removing locks via Telegram (/unlock <lockid | pair>) and API
  • Show trade-id in bot-initiated (buy, sell, cancel) notifications
  • New ordertype config option for forcesell - which will allow you to use a different ordertype for forcesells
  • Allow changing the order-type for forcesell and forcebuy via order_types configuration
  • New backtesting functionality, allowing compounding (stake_amount="unlimited")
    • Backtesting now requires a valid dry-run wallet balance (can be provided via --dry-run-balance 1000)
    • Minimum amounts for coins are respected (e.g. backesting with 1USDT per trade will no longer work).
    • Backtesting can now run out of money (get broke) - so no further trades can happen
  • New backtesting metrics:
    • Absolute drawdown
    • Min / Max Balance
    • Starting Balance
    • Final balance
    • Trade volume

As the new backtesting format is a major change over the old format, identical results between prior versions and this verison cannot be guaranteed (it will depend on the strategy).

How to update

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

docker-compose

bash 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 ``` 7fb34f7e2 Version bump 2021.3 39bfe5e1a Thee to the 292ea8c1d Update backtesting.py 0ca95aa0c Change rate to acctual close rate ec15610bf Fix isort issue d795febf9 Add info to documantation 2fd510e6e Added comment with an example calculation 65a9763fa Fixed an issue when there were exactly 50 trades, it was sending an extra empty table c928cd38d Small bugfix to make sure it shows all the trades d5301b4d6 RateLimit should be enabled by default f51f4b181 Add confirm_trade_exit and confirm_trade_entry to backtesting dc4ea604d Add confirm_trade_exit and confirm_trade_entry to backtesting eb5d69dcd Add confirm_trade_exit and confirm_trade_entry to backtesting 6856963ae Add confirm_trade_exit and confirm_trade_entry to backtesting 4e8999ade Changed the code for status table a bit so that it splits up the trades per 50 trades, to make sure it can be sent regardless of number of trades b7702a1e9 Improve tests to work with new sqlalchemy version e39cff522 Remove duplicate dict keys in test ea3012e94 Bump sqlalchemy from 1.3.23 to 1.4.2 09c7ee9e9 Bump isort from 5.7.0 to 5.8.0 9612ba34e Bump urllib3 from 1.26.3 to 1.26.4 ac7a1305c Bump ccxt from 1.43.27 to 1.43.89 e315a6a0d assume "last" can miss from a ticker response 43d7f9ac6 Add bid_last_balance parameter f4e71c1f1 get_buy_rate tests should be sensible 73876b61b Show potential errors when loading markets 16a54b361 Don't require non-mandatory arguments fe7f3d9c3 Add price side validation for market orders 066dd7221 add orderbook structure documentation 69799532a Document usage of open_date_utc 7ffe1fd36 Fix calculation error for min-trade-stake fb90901bb Fix telegram table for both rendered and github markdown c1f799227 Added slash to fix a broken formatting 0d5833ed9 Use OperationalException for TimeRange errors 4d52732d3 Added a small snippet to give users a descent error message, when their start date is afer the stop date. Also updated the tests. dd4d1d82d Update docs/strategy-advanced.md bf14796d4 revert "Trailing stoploss with positive offset" example as stoploss_from_open() wasn't adding value b6e9e74a8 Add link between stoploss_from_open and custom_stop documentation 983c0ef11 update stoploss_from_open examples to use helper function 76ca3c219 extract result-printing from hyperopt class b05de6d46 Move advanced exchange config to exchange page 6597055a2 Ensure ccxt tests run without dry-run ce1ed7626 complete stoploss_from_open and associated test aee259149 add stoploss_from_open() as a strategy_helper 79d4585da Add check to ensure close_profit_abs is filled on closed trades 8f2693525 Bump ccxt from 1.42.66 to 1.43.27 b6c29bebb Update slack action a209b0a39 Bump python-telegram-bot from 13.3 to 13.4.1 1173d8971 Bump prompt-toolkit from 3.0.16 to 3.0.17 22c34faca Bump mkdocs-material from 7.0.5 to 7.0.6 09872d8e4 Bump flake8 from 3.8.4 to 3.9.0 b191663a7 Adapt hyperopt templates to be better aligned 0b35c0571 Allow custom fee to be used during dry-run e92441643 correct math used in examples and clarify some terminology regarding custom stoploss functions 7a63f8cc3 Fix hdf5 support on raspberry b57c15065 Final balance should include forcesold pairs 618bae23a fix: Use now() to match timezone of download data eb4f05eb2 Add documentation for hyperopt.strategy availability 6389e86ed Add test for uvloop fix 0320c8dc9 Improve tests for trades_proxy 5e872273d Provide access to strategy instance from hyperopt class. d1acc8092 Improve backtest performance 425cd7adb Create event loop manually if uvloop is available ef9977fc1 Make stake_amount + stake_currency mandatory for backtesting 333ad0260 Fix random test failure 60f6b998d Update logo with smiling one 99583bbd0 Fix problem with FTX a1902f226 Make trade-close sequence clear for mock trades 37e600616 Fix order_by in trades command 4b550dab1 Always reset fake-databases 25c9e8995 Bump aiohttp from 3.7.4 to 3.7.4.post0 7950acf6d Bump pandas from 1.2.2 to 1.2.3 a9c114d30 Bump mkdocs-material from 7.0.3 to 7.0.5 a2b923608 Bump arrow from 1.0.2 to 1.0.3 1f314f7d4 Bump ccxt from 1.42.47 to 1.42.66 46965b1a2 Bump coveralls from 3.0.0 to 3.0.1 0b81b58d2 Use pandas.values.tolist instead of itertuples 02d7dc478 Increase cache size to be large enough to hold all pairs ad0e60b5b Add trade_id to Cancel messages and reduced lines length 2472f5287 Add trade_id to tests 03b89e7f7 Add trade_id in Telegram messages a405d578d Introduce forcebuy ordertype to allow specifiying a different ordertype for forcebuy / forcesells 453222201 Fixed line length in HyperOpt for new name 519630640 Remove deprecated profit return value 345f7404e Add strategy name to HyperOpt results filename 731ab5d2a Fix too long line errors bc05d0312 Make best / worst day absolute dfeafc220 Update docs/strategy-customization.md 161a4656d Update docs/strategy-advanced.md 1304918a2 fix(docs/strategy-advanced/custom_info-storage/example): only add to "custom_info" in backtesting and hyperopt 900deb663 fix(docs/strategy-advanced/custom_stoploss/example): check if "pair" exists in "custom_info" before requesting c56b9cd75 fix(docs/strategy-advanced): add warnings a6ef354a5 fix(docs/strategy-advanced): use `get_analyzed_dataframe()` instead of `custom_info.iloc` 22a558e33 fix(docs/strategy-advanced): fix link to custom_info storage 1a02a146a feature(docs/strategy-advanced/custom_info-storage/example): add ATR column calculation 4064f856d fix(docs/strategy-customization): add "hyperopt" to runmode check for custom_info in custom_stoploss example b52698197 refactor(docs/strategy-advanced): extract "Storing information" section from `strategy-customization.md` d05acc30f fix(docs/strategy-customization): remove superflous `prints` from example code 32f35fcd9 fix(docs/strategy-customization): "custom_stoploss indicator" example need to check for RUN_MODE c5900bbd3 feature(docs/strategy-customization): add example "Custom stoploss using an indicator from dataframe" cc4e84bb7 feature(docs/strategy-customization): add example how to store indicator with DatetimeIndex into custom_info 5cf3194fa chore(docs/strategy-customization): clean up left over trailing whitespaces d5993db06 refactor(docs/strategy-customization): change variable name for better readability 0968ecc1a added "Median profit" column to hyperopt -> export-csv 078b77d41 Fix crash when using unlimited stake and no trades are made 55a315be1 fix: avg_stake_amount should not be `NaN` if df is empty a85e656e8 rest_client.py 218d22ed5 rest_client.py 95c635091 rest_client.py 82bf65f69 rest_client.py 4fe2e542b rest_client.py 7c35d107a rest_client.py 4bb6a2774 Don't catch errors that can't happen 007ac7abb Add telegram pair unlocking 6640156ac Support deleting locks via API 4e5136405 Add warning about sandboxes 64ef7becc Update styles to work with new mkdocs version 2083cf6dd Fix mypy errors introduced by Arrow update 3d65ba2dc Add rpc method to delete locks bba9b9e81 Don't use __root__ directly for api response 4537a4898 Bump arrow from 0.17.0 to 1.0.2 d0fd3c289 Bump ccxt from 1.42.19 to 1.42.47 00747a3bc Bump mkdocs-material from 6.2.8 to 7.0.3 aba034ff4 Fix mypy problem after mypy 0.800 upgrade 94cab4ed7 Bump mypy from 0.790 to 0.812 a13dc3cdd Use sensible defaults for balance_dust_level 9cb37409f Explicitly convert starting-balance to float 089540781 add balance_dust_level parameter to make telegram less chatty 05f057fe7 Stringify favicon path e791ff604 Fix: custom_stoploss returns typo d9d561743 UPdate backtesting doc for total profit calc b2e9295d7 Small stylistic fixes 6018a0534 Improve backtest documentation 324b9dbdf Simplify wallet code f65092459 Fix optimize_reports test fb489c11c Improve test-coverage of pairlocks f5bb5f56f Update documentation with backtesting compounding possibilities 98f3142b3 Improve handling of backtesting params 86f9409fd fix --stake-amount parameter d3fb473e5 Improve backtesting documentation fc256749a Add test for backtesting _enter_trade 60db6ccf4 Add test for subclassing 53a57f2c8 Change some types 03eb23a4c 2 levels of Trade models, one with and one without sqlalchemy 394a6bbf2 Fix some type errors 52acacbed Check min-trade-stake in backtesting f04f07299 Improve backtesting metrics 791316645 Improve performance by updating wallets only when necessary 37d7d2afd Wallets should not recalculate close_profit for closed trades f367375e5 ABS drawdown should show wallet high and low values aed23d55c Add starting balance to profit cumsum calculation 0d2f877e7 Use absolute drawdown calc 74fc4bdab Shorten debug log 72f21fc5e Add trade-volume metric 35e6a9ab3 Backtest-reports should calculate total gains based on starting capital 8d61a2638 Allow dynamic stake for backtesting and hyperopt e4abe902f Enable compounding for backtesting 959ff9904 Add Dry-run wallet CLI option 0754a7a78 total_open_trades_stake should support no-db mode 0faa6f84d Improve Wallet logging disabling for backtesting 20455de2a Small enhancements to docs 081b9be45 use get_all_locks to get locks for backtest result e32b2097f Use timestamp in UTC timezone for ROI comparisons 712d503e6 Use sell-reason value in backtesting, not the enum object b5177eada Extract close method for exchange 4ce4eadc2 remove only ccxt objects when hyperopting 9361aa1c9 Add wallets to backtesting f0a154692 Wallets should use trade_proxy 9968e4e49 Add warning about downloading data from kraken 642e3be7c Fix(strategy/interface.py): comment typo f0391d376 Better JSON webhook result description efa50be14 Fix blank lines rule at test_rpc_webhook.py 7281e794b Fix too long line at webhook.py 9a926c155 Add forcesell entry to full config 984e70d4e Add webhook result example to documentation 52641aaa3 Add test for webhook JSON format a2cd3ed5b Add documentation for JSON webhook format fc69240e6 Add JSON-encoded webhooks 51d73a588 Fix #4441 622ff771e Bump aiohttp from 3.7.3 to 3.7.4 1b3b38910 Remove binanceje, add ftx to config selector c4979fd87 Add note to check configuration settings to docker quickstart d877e3c1d Fix failing CI due to unavailable pairs 6d38a2e65 Small enhancements to docs 262394e11 Add psutils to support OOM Gracefull shutdown 006f31129 Reduced length of the line 117f0064e Allow changing the order_type for forcesell 1f30c3d7f Refresh slack link ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 5 years ago

FreqAI - 2021.2

Highlighted changes

  • Remove BacktestResult return type, use the Trade object instead. This gives us more datapoints for each backtested trade.
  • Align Total Profit from the backtesting summary with the Total Profit column from the table.
  • Improve how max_open_trades is calculated when used for backtesting with fewer pairs than maxopentrades.
  • New subcommand freqtrade install-ui to deploy freqUI from within the bot. Make sure to read the API documentation to fully understand this.
  • Reduced buttonsize on Telegram to allow more buttons in custom layouts.
  • Slightly improved formatting of Values for some Telegram methods (no need to use 8 decimals for USDT).
  • New metric cumsum min / max metrics to backtest report
  • Fix "disappearing whitelist" bug when staticpairlist was used in combination with certain filters

How to update

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

docker-compose

bash 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 ``` aea8f05d1 Version bump 2021.2 d6d8678fd Fix missleading FAQ information 3612c786b Bump tabulate from 0.8.8 to 0.8.9 a0fa1e84f Bump ccxt from 1.41.90 to 1.42.19 c71ecd368 Fix wrong pair-content in strategy-analysis notebook and documentation 228e51b60 Fix #4405 5e4730b73 Add test confirming #4405 8a62bfa0e armhf image should not be updated to python3.9 d8c7e5ce8 Bump python from 3.9.1-slim-buster to 3.9.2-slim-buster 85f12f8c2 Bump cryptography from 3.4.5 to 3.4.6 dea04c645 Bump scipy from 1.6.0 to 1.6.1 932aabd01 Bump uvicorn from 0.13.3 to 0.13.4 8c398acc0 Bump python-telegram-bot from 13.2 to 13.3 ab74c6e77 Bump tabulate from 0.8.7 to 0.8.8 188d7aaf8 Fix example in storing-information docs 3629892fc Stoploss-guard should use the trade_limit or more 245e39e52 dry-run should be a bool, not a string c9688f1c8 fix(doc/plotting): misplaced comma in example code 2b0d2070d Avoid crash with /delete 327c23618 Improve documentation for get_analyzed_dataframe b5a9ce289 Download data in the right format as well ... 87dc1d395 Explicitly push tag and tag_plot images fedbb5c0c Remove last flask occurance from setup.py 11b20d693 Add config to hyperopt_loss_function documentation 009a447d8 Adjust documentation for new parameter in loss functions 3e06cd8b3 pass data and config to loss function bc188907b Bump cryptography from 3.3.2 to 3.4.5 5f2513934 Bump ccxt from 1.41.70 to 1.41.90 dbef5425c Bump prompt-toolkit from 3.0.14 to 3.0.16 d08572ea0 Bump pandas from 1.2.1 to 1.2.2 44cb20668 Bump joblib from 1.0.0 to 1.0.1 1a166f639 Add test for calcuate_csum 5c263c7ff add backtesting results abs profit min/abs profit max, to get a better view if a strategy has a enough money to succeed ee74bc1f5 timeframe is mandatory, no need to use .get() ffca09bbc Test ohlcv_candle_limit explicitly da89838b5 Set bittrex limits as returned by the exchange 5622bb324 Make candle_limit optionally timeframe dependent 7ecf8f8b8 Cleanup candle_limit usage 10a11bda3 Document bitvavo as community tested 6f77ec063 Fix cookieError on python<3.8 73d91275c Reset sell_order_status if a new sell-order is placed d4c8be915 Use fstring where possible e7acee790 Improve coin value output by rounding coin specific 072abde9b Introduce round_coin_value to simplify coin rounding dd23f6bcb Fix type for getting pairs 843fb204e Fix problem with inf values returned from dataframe for api methods aa79574c0 Position-size should NEVER be over available_capital 3110d2dbb Add small test cases 86fa75b28 Pin version of cryptography 7ee149da5 Improve plotting errorhandling 427d76274 Improve tests for cancel_order to be more realistic c5ab3a80a Check if order is a dict before parsing de727645a FIx random test failure if certain files exist c412f8df6 Bump python-telegram-bot from 13.1 to 13.2 12168cbf0 Bump ccxt from 1.41.62 to 1.41.70 22d447b3f Bump mkdocs-material from 6.2.7 to 6.2.8 676cd7bb5 Bump sqlalchemy from 1.3.22 to 1.3.23 dd7f9181c Bump numpy from 1.20.0 to 1.20.1 d1bb46bed Bump py-find-1st from 1.1.4 to 1.1.5 694f55c0a Use suggested link d5cf837c0 Parse regular cancel_order call to update orders table bc8fda8d6 Update sample_strategy.py 0a43988f3 Fix sample strategy documentation link aec22c5c3 introduce skip_open_order_update parameter 86a97988c Improve wording 0806202d4 ccxt version bump to 1.41.62 a816fb124 chore(lint): lint binance example config 1310a7b54 Fix bug with wrong conversion for BTCST/BTC 428d2af31 add `sudo` to `chown` 5165357f4 Update data-download.md 5cd874599 Update README.md 99b2214d1 setting resize_keyboard=True for slightly smaller Telegram buttons e8e5acc2e Fix import in strategy template b8cb39462 Move get_trade_stake_amount to wallets f36c61e32 Fix documentation links pointing to pairlists 06b56544a printing json by default now 56569690d Update rest_client.py 12bcbf437 #4289 printing json output 43986d3f7 Move Pricing to subpage b41078cc4 Don't include plugin documentation in Configuration page dabe456d6 Improve wording of configuration doc 3e3c9e99c Move command references to their respective subpages f0532f28c Small doc-reorg adding "advanced topics" as main header cfd0bb896 Extract min stake amount from bot to exchange class 3d9b4034e Use already calculated current_profit for sell_profit_offset comparison a9f1c871d Add path loading snippet to derived strategies 52acf9aaf Fix "disappearing pairs" bug 130a9b4db Add test to call verify_pairlist multiple times 55c9489eb Downgrade RPI docker-image to 3.7 cd5c58fd3 Properly patch exchange for plot_profit test 4facf662d Fix random test-failure caused by un-clean hyperopt shutdown ccdac3d4c Bump urllib3 from 1.26.2 to 1.26.3 7fcf0d523 Bump pymdown-extensions from 8.1 to 8.1.1 2a5e0920e Bump mkdocs-material from 6.2.5 to 6.2.7 aa7120f27 Bump ccxt from 1.40.99 to 1.41.35 ed1d4f056 Bump jinja2 from 2.11.2 to 2.11.3 76312d722 Bump pytest from 6.2.1 to 6.2.2 2c80388b4 Fix valueerror in case of empty array files 06e2bc94c Deploy to subdirectory e4a085027 Add test for UI methods 28be71806 Install html file as well a87a885cc Don't use Path object to return fileresponses 7b3d99819 Fix bug with not cleaning UI folder 944d674ee Store freqUI version and read it again 2af1d2d63 Extract last FreqUI version from api response 1df0aa875 Add ui installation to docker container builds 35c2e2556 Document FreqUI usage e928d2991 Add fallback file f05f2c45e Allow deleting of UI only ddc99553b Add test case for get_ui_download_url a1a35115a Extract get_ui_download_url 87ed2d750 Write some tests for UI Downloading a47616eed Add UI installation subcommand 27970b424 Add webUI serving to api-server 79087ba16 Fix intermitted test failure 5724371a4 Fix types for numpy 1.20.0 upgrade 92721db58 Version bump numpy to 1.20.0 bc586fe73 Try fix CI 4cc93151c Fix a bug when compare sell_profit_offset 16dad8b6d Allow custom_stoploss to cooperate with stoploss on exchange 30e5c01cb Improve formatting of custom_stoploss docs 6b63129eb Fixed virtualenv link 406682c3b Fix random api failure in slow cases 5d1828982 Fix name in issue template 1e6194fa3 Improve wording, fix hirerchial hierarchy ea0ffbae7 use profit_ratio in calculate_cum_profit b12d0b110 Update installation.md 5cdd9dd44 Cache markets in the exchange object 4bb2a00f0 Bump python from 3.8.6-slim-buster to 3.9.1-slim-buster d1d77f56d Update installation.md a414d5d75 Update installation.md ec2cf7f97 Update installation.md 5da8a3078 Update installation.md 188010329 Update installation.md bcc7adb18 Update installation.md d84824237 Update installation.md 39cef2dbe Update environment.yml 4a28fab8a Update installation.md 65e0ba60d Update installation.md 13ad6dd46 Fix documentation c659150d9 Also print trade_duration in seconds to json 2226f6781 Update installation.md 62e43539c Limit max_open_trades to maximum available pairs 789a980a3 Fix tests for new export format 2c2a33b2e updated environemnt.ylm 9af89786b update installation.md deb8432d3 Streamline trade to dataframe conversion 8ee264bc5 Don't use profit_percent for backtesting results anymore 48977493b Backtesting does not need to convert to BacktestResult object 3b51545d2 Add trade_duration to to_json 172a629c5 Update installation.md f9dd74585 Update installation.md 73206a919 Update installation.md 63be27f67 Update installation.md 9ad081710 Update installation.md a271c9e98 Update installation.md ce5ba1bb6 Adding Conda installation process ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 5 years ago

FreqAI - 2021.1

Highlighted changes

  • New feature: Custom stoploss callback.
    • Allow the strategy to change the stoploss via custom callback.
    • Needs to be explicitly activated via use_custom_stoploss.
  • Wildcard-filters, allowing regex to blacklist and whitelist pairs dynamically (e.g. .*BULL/BTC, .*BEAR/BTC, BNB/.*)
  • Switch API layer from Flask to FastAPI to better support parallel requests.
  • Improved merge_informative_pair() making sure longer timeframes are used as soon as they're available.
  • Protections can now be defined in the strategy as well. As with all other settings, Protections in the config will overwrite strategy settings.
  • Expire buy-signals after X minutes (ignore_buying_expired_candle_after).
  • Set sell_profit_offset in combination with sell_profit_only to define an offset when to enable the sell-signal.
  • Call bot_loop_start() during backtesting once per pair.
  • Add bot_name setting, allowing the UI to differentiate when running multiple bots.
  • Add /status <tradeids> to query status of specific trades.

Important note: As anounced previously, the master branch (and docker images) images will be removed with this version. If you didn't update your docker-image / branch previously, make sure to do so now to benefit from this new version.

How to update

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

docker-compose

Note: We've switched from master to stable for the release Images - please adjust your docker-file and replace freqtradeorg/freqtrade:master with freqtradeorg/freqtrade:stable. The master image will not be built for this release, and will be removed soon.

bash 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 ``` eac98dbbd Version bump to 2021.1 a9b4d6de3 Check for existance of ask key in ticker 4d7f3e570 Add test for spreadfilter division exception 5ab8cc56a Update docs to also work for postgres 8f529f48d Update freqtrade/freqtradebot.py use is_open.is_(True) 91b6c0294 Update download-data --dl-trades sample command f98bd4095 Bump ccxt from 1.40.74 to 1.40.99 cb749b578 Bump scikit-learn from 0.24.0 to 0.24.1 fb99cf145 Bump prompt-toolkit from 3.0.10 to 3.0.14 d4e9037e6 Bump pandas from 1.2.0 to 1.2.1 afdcd2c0a Bump pytest-cov from 2.10.1 to 2.11.1 9422062cb Bump blosc from 1.10.1 to 1.10.2 b976baae3 Bump cachetools from 4.2.0 to 4.2.1 c22cccb55 Fix operator does not exist: boolean = integer 9a3c425cf Update slack link 16f967535 Fix whitelist expansion problem 31e0b0964 Rename config.json.example 371b374ea Remove unused config setup from setup.sh bec9b580b sell_profit_offset should be documented in the strategy override section e94e2dd38 Remove docker config without compose c42241986 further investigate random test failure fd379d36a Fixed quickstart link in docs 5c0f98b51 Blacklist Poloniex - as ccxt does not provide a fetch_order endpoint 5f5f75e14 Improve wording in protections documentation 992d6b801 Small improvement to MaxDrawDown protection 7c80eeea9 Add use_custom_stoploss to optimize_report 86b3306a3 Small doc refactoring 7c99e6f0e Avoid random test failure cd8d4da46 Add test for /status functionality a68a546dd _rpc_trade_status argument datatype optimizations 10104927c Fix devcontainer 994b4013a Bump ccxt from 1.40.30 to 1.40.74 8b5f8937c Bump pyjwt from 2.0.0 to 2.0.1 7f8dbce36 Bump mkdocs-material from 6.2.4 to 6.2.5 6a8e49510 Bump plotly from 4.14.1 to 4.14.3 296a6bd43 Bump coveralls from 2.2.0 to 3.0.0 eb95d970e flake8 beautify d21eff0d5 fix, if an non existing trade_id is provided 3ea33d173 updating doc and help with new /status argument 6d40814db extend status bot command to query specific trades a8bae3a38 Don't update trade fees for dry-run orders 389db2fe7 Enhance wording of docker quickstart 53c208197 Add bot_name setting 572f5f918 Fix fstring syntax error 9f338ba6e Debug random test failure in CI d74376726 api-server should fully support max_open_trades=-1 bf5868c96 Add testcase for nonexisting pairs on whitelist f72d53351 Added ability to keep invalid pairs while expanding expand_pairlist 0b65fe6af Capture backtest start / end time 914710625 call bot_loop_start() in backtesting to allow setup-code to run baa1142af Use preprocessed to get min/max date in hyperopt 9d4cdcad1 Extract backtesting of one strategy 6d1fba140 Remove unnecessary log output tests f3de0dd3e Fix support for protections in hyperopt 950c5c011 fix: edge doc typos adb3fb123 Fix typo 47a06c621 Fix enable/reenable of swagger UI endpoint ac43591c4 Fix failing api when max_open_trades is unlimited 60ea32e39 Improve wording 1f6a71fdd Reformat code on new version 71f45021b Removed redundant statement e328182bd Changed workings so it only needs to timing-parameter, instead of also requiring a boolean value 4d7ffa8c8 Added suppoort for regex in whitelist b062b836c Add test for sell_profit_offset 63a579dba Add sell_profit_offset parameter dbc25f00a Switch full config from bittrex to binance f159c4643 Include stoploss_on_exchange in stoploss_guard 59efc5f08 Bump pytest-mock from 3.5.0 to 3.5.1 f1809286c Bump ccxt from 1.40.25 to 1.40.30 a34753fcb Bump prompt-toolkit from 3.0.9 to 3.0.10 ddecf3ef9 Bump mkdocs-material from 6.2.3 to 6.2.4 8631a5451 Fix test due to pyjwt2.0 378a252ad Fix #4161 - by not using the problematic method for windows c8df3c473 Bump pyjwt from 1.7.1 to 2.0.0 4d2c59b7e Bump numpy from 1.19.4 to 1.19.5 3cf506fa5 Bump ccxt from 1.40.14 to 1.40.25 784630e2f Bump uvicorn from 0.13.2 to 0.13.3 f3319e138 Bump prompt-toolkit from 3.0.8 to 3.0.9 bd5f46e4c Bump pytest-mock from 3.4.0 to 3.5.0 2e7faa782 Add documentation section for macOS installation error on 3.999999999 4f126bea3 Change trades-test2 to better test correct behaviour bf182dc01 Fix wrong key usage in trade_history_timebased 124cb5c5b Add cblosc brew dependency 54ab61d18 Install hdf5 via brew 9e66417e8 Run CI for mac on 3.9 b43ef474a Fix expired candle implementation c9e477214 Allow protections to be set in the strategy e69dac270 Fix bug in RPC history mode when no data is found a9ca72c1b Fix typo in documentation 91f866788 DOn't update open orders in dry-run mode a90609315 FIx doc wording for all guards f7b055a58 Attempt to improve wording 95732e899 Clarification in documentation 5c34140a1 Adjusted documentation to reflect sub-key configuration 65d91a3a5 isort fix 573de1cf0 Fixed flake8 warnings e3f3f3629 Changes based on review comments eaaaddac8 Update docs/configuration.md c9ed2137b Simplified return statements 67306d943 Update interface.py 9a93a0876 Update interface.py 844df96ec Making changes so the build checks are satisified (imports & flake8) 614a99659 First commit about ignoring expired candle 1cf6e2c95 Changed documentation based on review comments 0704cfb05 Added an example with a positive offset for a custom stoploss 07bc0c3fc Improve merge_informative_pairs to properly merge correct timeframes d1804dee6 Add note about python-dev dependency 9e435fba0 Bump ccxt from 1.39.79 to 1.40.14 7d06e6146 Bump scipy from 1.5.4 to 1.6.0 66391b80a Bump isort from 5.6.4 to 5.7.0 5ca2cd3a1 Change defaults to log only errors 634d6f389 Change logging to stderr 26c346340 Stake-amount supports unlimited, too cff50f9f6 Add response-model for show_config ca0bb7bbb Don't require RPC for strategy e6176d43f Optional RPC dependency 3dc37dd79 Add types for deps 336dd1a29 Rename api_models to api_schemas 84ced9200 Fix mock-tests missing some fields 29f4dd1dc Enhance some response models 718f2b24d Don't use relative imports b2ab553a3 Rename api_server2 module to apiserver eb20f6e7d Align auth token to flask version to prevent user-logout 346542e5c Remove flask dependency 68d148e72 Allow configuration of openAPI interface 1717121f1 Properly use JWT secret key 790f83365 Some more tests around api_auth 29ce32364 Fix wrong hyperoptlosstest 776ce57f5 Remove api_server 54a50b1fb Fix some tests 9f873305e Improve response models 9350f505b Implement missing methods e23898d17 Improve some tests 9ee1d8835 Implement more endpoints 73a29e6d7 Improve tests, implement more fastapi methods a18d66e10 Add more endpoints to fastapi f37ea4ba2 Fix some initial tests towards fastAPI 4b86700a0 Implement more endpoints 5e4c4cae0 Fix auth providers 86d070088 Move models to apimodels 659427850 Reorder endpoints eac74a9de Implement auth in fastapi 619b855d5 Add version endpoint a862f19f8 Allow retrieval of rpc and config via dependencies 1e38fec61 Initial fastapi implementation (Ping working) 11f36fbae Fix all custom stoploss samples 67ced6a53 Update docs/strategy-advanced.md e5840abaf Added imports to documentation for clarification when using custom stoploss 512e16335 change docstring to better reflect what the method is for bd7600ff0 Small visual changes 04624aae4 Add documentation for wildcard-blacklist 0affacd39 Support invalid regex blacklist from config 9feabe707 Fix RPC methods to allow wildcards (and validate wildcards) 704cf1438 Add expand_pairlist method 2fdda8e44 plot-profit should fail gracefully if no trade is within the selected timerange b8899b39e Show advanced plot-config section again b607740dd Fix kraken balance bug if open buy orders exist 238e9aabb Add test showing wrong behaviour dcc7d559e Reinstate header partials ecea6c952 Move jquery to the bottom accc59aa1 Reinstate jquery 003552d78 Remove custom header section from docs 0d4cf3208 Slightly adapt to pandas incompatibility 30087697e Bump pandas from 1.1.5 to 1.2.0 092ebf845 Bump scikit-learn from 0.23.2 to 0.24.0 fc0d14c1b Improve documentation 676dd0d66 Improve documentation 9d5961e22 Rename method to custom_stoploss 277342f16 Rename flag to "use_custom_stoposs" 8574751a0 Add stoploss_value to strategy template f8639fe93 Add more tests for custom_loss 5f8610b28 Add explicit test for stop_loss_reached 22d64553c Rename test file ea4238e86 cleanup some tests 11e291562 Fix documentation problem 6892c08e9 Improve docstring b2c109831 more docs for dynamic stoploss method f7b54c241 Allow and document time-based custom stoploss f235ab8cf Fix some typos in docs 18795844d Add initial set of custom stoploss documentation a414b57d5 Experiment with custom stoploss interface 8f6aefb59 Extract stoploss assignment 768a24c37 Add stoplossvalue interface ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 5 years ago

FreqAI - 2020.12

Highlighted changes

  • New PerformanceFilter, allowing sorting of the pairlist based on past trade performance.
  • Improved performance of AgeFilter and RangeStabilityFilter.
  • 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 for stop_duration if the required profit within lookback_period is below required_profit
    • StoplossGuard - Stop trading if more than trade_limit stoplosses occured within lookback_period (either per pair, or without)
    • MaxDrawdown - stop trading if more than max_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
  • 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

bash 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 ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 5 years ago

FreqAI - 2020.11

Highlighted changes

  • Allow backtesting of pairs that are no longer active on the exchange
  • Introduce RangeStabilityFilter as new pairlist filter Allows filtering that show not enough movement over the last few days
  • Slightly improved backtesting summary metrics
  • Kraken - support for Limit stoploss orders on the exchange (new default if not configured differently)
  • Plotting now respects startup_candles - making plots more precise if used correctly
  • Logging to file will no longer create double log entries after /reload_conf was used
  • Update to use arrows int_timestamp method instead of timestamp This requires an update to Arrow, so make sure your dependencies are updated as well.

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

bash 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 ``` 37c102d2 Version bump to 2020.11 31449987 Fix mkdocs rendering fce31447 Prevent unintended LaTeX rendering 98118f5e Fix parameter name dddbc799 have kraken stoploss-limit support trailing stop 0b68402c Fixed a small typo in the pairlist documentation 1d56c87a Fully support kraken limit stoploss d0d9921b Reorder mkdocs sequence c14c0f60 Add Support for kraken stoploss-limit 68101929 Update docstring for new filter 8ae604d4 Ensure we're not running off of empty dataframes 0d349cb3 Small finetuning 8f1d2ff0 Renamd volatilityFilter to RangeStabilityFilter 46389e34 Skip filehandler test on windows - as that causes a permission-error b9980330 Add explicit test for FileHandler 0104c9fd Fix double logging 99b67348 Add test for double-logging ceb50a78 use exception handler when downloading data bd98ff63 Update docstring in all pairlists 006436a1 Require use_sell_signal to be true for edge 730c9ce4 Add Max_open_trades to summary metrics 1ec99e6b Bump aiohttp from 3.7.2 to 3.7.3 56629d88 Bump coveralls from 2.1.2 to 2.2.0 7c7a8190 Bump python-rapidjson from 0.9.3 to 0.9.4 be4807d8 Bump questionary from 1.8.0 to 1.8.1 83b4cd7b Bump mkdocs-material from 6.1.5 to 6.1.6 ec330112 Bump ccxt from 1.37.69 to 1.38.13 29c6a926 Protect against 0 values 7e4fe23b Add VolatilityFilter to full config f12a8afd Add test for ohlcv_as_df 2e1551a2 Improve tests of volatilityfilter f8fab5c4 Add tests for failure cases 6b672cd0 Document volatilityFilter 191616e4 Add first tests for volatilityFilter 109824c9 Add VolatilityFilter fb86d8f8 Add get_historic_ohlcv_as_df to support VolatilityFilter 73f0e6e7 Improve wording for discord server 4d60a4cf Add warning to StochRSI in sample strategy 89ea8dbe Update slack invite e8e3ca0c Catch ValueError from trade_conversion 83861fab Fix #3967, move TradeList type to constants 5ed85963 Allow forcebuy price to be a string by converting it to float aa0c3dce Improve order types documentation 97e58a42 Update documentation with new options f88fe5d9 Document new "allow_inactive" option 52c9a2c3 Convert np to None when loading hdf5 trades to allow duplicate detection 854d0c48 Update windows_installation.md 4a215821 Fix typo in windows installation docs 9621734a Allow setting datafromat via configuration 3f2addb7 Bump ccxt from 1.37.41 to 1.37.69 f092a923 Bump urllib3 from 1.25.11 to 1.26.2 23947cf3 Bump requests from 2.24.0 to 2.25.0 e52c181a Bump flask-jwt-extended from 3.24.1 to 3.25.0 6ebc2f38 Bump mkdocs-material from 6.1.4 to 6.1.5 ef4ab601 Update exchanges.md 26176d4c Update exchanges.md 7b4c1ec3 Small wording changes da16474b Update telegram-usage.md 7243c8ee Fix typo in windows installation docs. 05f0cc78 Plotting should use startup_candles too 164105ac Adjust startup_candle_count of sample strategies 08b52926 Catch asyncio.TimeoutError when reloading async markets 4eb96cfc Allow locks to be gathered even when the bot is stopped 2d6bfe15 only skip pair validation rather than all of it 2424ac94 skip the check for active markets with flag for existing StaticPairList 2640dfee Revert "Added ConstPairList handler to skip validation of pairs if you want to backtest a pair that's not live any more, e.g. expiring contracts." 916776bb Option to skip exchange validation, required to backtest pairs that are not live on the exchange any more. 13da8f93 Added ConstPairList handler to skip validation of pairs if you want to backtest a pair that's not live any more, e.g. expiring contracts. 59e846d5 Bump ccxt from 1.37.14 to 1.37.41 88b2f3f0 Bump scipy from 1.5.3 to 1.5.4 6063f2f9 Bump questionary from 1.7.0 to 1.8.0 42d9e3a2 Bump numpy from 1.19.3 to 1.19.4 5243214a Bump mkdocs-material from 6.1.2 to 6.1.4 2af1c80f Convert _rpc_show_config to static method 7d2bd00f Update forgotten arrow.timestamp occurance b58d6d38 Use correct fields in telegram d1dab232 Remove deprecated api fields cf89a773 Standardize trade api outputs d56da416 Bump ccxt from 1.36.85 to 1.37.14 74d8a985 Bump aiohttp from 3.7.1 to 3.7.2 aed44ef6 Bump pandas from 1.1.3 to 1.1.4 21b22760 Bump pytest from 6.1.1 to 6.1.2 6c3753ac Bump mkdocs-material from 6.1.0 to 6.1.2 81fb0c57 Bump numpy from 1.19.2 to 1.19.3 e73203ac FIx bug with dmmp 0d11f0bd Add unit test for hdf5 dataformat for informative pairs 78874fa8 informative_pairs does not honor dataformat 38fc5d68 Enable usage of devcontainer for macOS users fd6018f6 Fix dependency sorting adffd402 Replace some pointless occurances of arrow 685d1894 specify min-version for arrow ecddaa66 Convert timestamp to int_timestamp for all arrow occurances ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 5 years ago

FreqAI - 2020.10

Highlighted changes

  • Remove hyperopt --continue - It doesn't work as expected and is confusing people.
  • Hyperopt will now keep historic results in seperate filenames. Reading commands (freqtrade hyperopt-list, freqtrade hyperopt-show) can use the newly introduced --hyperopt-filename to read from files other than the latest result.
  • --hyperopt-loss is now mandatory for running hyperopt. This removes the default of DefaultHyperoptLoss - which is often not what the user want's to optimize for as shorter trade duration is favored over higher profits. Read more about Loss functions.
  • New API Methods to allow more functionalities in FreqUI.
  • Slightly improved backtesting performance by refactoring the backtesting sell logic.
  • Locks are now persisted across bot restarts..

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

bash 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 ``` aaa64689 Version bump to 2020.10 3ca97223 Improve test for test_pairlist d8ff79a2 Improve tests of list commands f4d39f2a Improve test coverage of deploy_commands 19fcbc92 Remove stake-currency for download-data - it's not needed 86725847 Add explicit test for check_int_nonzero ffa67979 Improve test coverage e1e2829e Improve and refactor hyperopt tests 5cb3735a Improve error when hyperopt-loss-function is missing 28d6c341 Fix random test failure in pairlocks 72f61f46 Remove optional, now is not optional 5c8779b1 Sort imports 6c913fa6 Fix locking - should round before storing to have a consistent picture 9c54c9a2 Use correct timezone for tests e602ac34 Introduce Pairlocks middleware 69e8da30 Ensure times that fall on a candle are also shifted 442e9d20 Remove pinned dependency of multidict 066ea45c Bump plotly from 4.11.0 to 4.12.0 95d11bd0 Bump python-rapidjson from 0.9.1 to 0.9.3 2831a78d Bump ccxt from 1.36.66 to 1.36.85 df5e6aa5 Bump aiohttp from 3.6.3 to 3.7.1 3439e6c5 Bump urllib3 from 1.25.10 to 1.25.11 b8c12f65 Test if return value is an exception when downloading historic data 99990179 Fix small bug in case of duplicate locks cd8610cb Update readme.md files ffcc47d8 Cleanup sql cheatsheet cf1a7261 Rename table to be inline with other table naming a143f7bc Improve pairlock docstrings 42d9e2e7 update quick start steps 5f63fdd8 Use better lock message 64e680d7 Document new api method 1156f5e6 Use constant for times 0daf77f3 Don't check for lock start date cd2866ea Add rest endpoint for /locks 7a9768ff Add /locks Telegram endpoint 7caa6cfe Add tests for pairlock e513871f Persist pairlocks 6eab20e3 Use constant to format datetime 2d04c2dd Fix small bug when cancel-order does not contain id 3e7c9bd4 Bump ccxt from 1.36.12 to 1.36.66 b7eec3fc Bump mkdocs-material from 6.0.2 to 6.1.0 89755585 Bump questionary from 1.6.0 to 1.7.0 79972985 Bump scipy from 1.5.2 to 1.5.3 cf2ae788 Convert backtesting rows to Tuples for performance gains 5d3a67d3 Don't debug-log during backtesting. b80a219d Improve typehints for backtesting 2591a34d Don't use arrow objects for backtesting cd940daa updated discord link to documentation. 8cdc795a Rename persistence.init to init_db ec713ff5 Convert _rpc_analysed_history_full to static method 07da21e6 Fix problem when limit is > max allowed limit 8165cc11 Change get_next_limit_in_list to use list comprehension 2ed20eee Configs should default to dry-run 8962b6d5 Add Bittrex subclass to correctly handle L2 orderbook 077374ac Implement generic solution for l2 limited limit 6a0ab836 Bump sqlalchemy from 1.3.19 to 1.3.20 7c1402ef Bump prompt-toolkit from 3.0.7 to 3.0.8 fd9c8df0 Bump ccxt from 1.36.2 to 1.36.12 5f5fc513 Bump isort from 5.6.3 to 5.6.4 43532a2f Bump colorama from 0.4.3 to 0.4.4 5aa0d3e0 Add multidict and aiohttp requirements a39898a5 Fix mock for telegram update 44e37487 Fix mypy errors due to new version f299c418 Bump python-telegram-bot from 12.8 to 13.0 e39c2f4a Bump ccxt from 1.35.22 to 1.36.2 623cee61 Bump isort from 5.5.4 to 5.6.3 80569c5f Bump mypy from 0.782 to 0.790 a33865e8 Bump nbconvert from 6.0.6 to 6.0.7 a2bc9d60 Bump arrow from 0.16.0 to 0.17.0 491af5a0 Bump pandas from 1.1.2 to 1.1.3 fa7dc742 Plot-image should have freqtrade as entrypoint 3d911557 Fix typo in docs 23bad8fd Rename DefahltHyperoptLoss function to ShortTradeDurHyperOptLoss cedddd02 Install mkdocs for ci f43bd250 Extract pairlists from configuration 53984a05 Configure mkdocs to allow page includes 59b00ad6 Add test for only-win scenario f676156e Implement division/0 checks for win and loss columns in edge 23278e52 remove obsolete logging statements e8f2c09f Extract handling of left open trades to seperate method d1db8476 Fix "storing information" documentation 7f0afe12 Fix calculation to not show losses > initial investment 6bb045f5 Simplify stoploss calculation 48750b0e Improve wording in formula 1b5cb342 Fix example R calculation in edge documentation 52502193 Backtesting should not double-loop for sell signals 72cf3147 Update configuration.md 299285a7 Update actions image to ubuntu20.04 8c2f7631 Add test to ensure --hyperopt-loss is mandatory 14e87ed4 Improvements to hyperopt docs a4a8abfd Update hyperopt documentation fa1d1679 Adapt tests to work without default hyperoptloss 378b214a Remove hyperopt-loss default option b86a602a Update typehint 4b53c2bc Complete TA-lib update with new binary files 14c66afe Bump ta-lib from 0.4.18 to 0.4.19 06759234 Add test to verify output of roi / trailing stop hyperopt 40b61bbf Adjust trailing-stop to be python compliant 234f6c2f Bump joblib from 0.16.0 to 0.17.0 68844250 Bump mkdocs-material from 6.0.1 to 6.0.2 64de911e Bump pytest from 6.1.0 to 6.1.1 56647bb4 Bump plotly from 4.10.0 to 4.11.0 52b6f6b9 Bump pycoingecko from 1.3.0 to 1.4.0 0574a406 Bump questionary from 1.5.2 to 1.6.0 8d4f7ce8 Bump ccxt from 1.34.59 to 1.35.22 80890e0f Bump flake8 from 3.8.3 to 3.8.4 887b2fdb Bump isort from 5.5.3 to 5.5.4 c9b3766f Remove rest_dump 63e1cba5 fix some typos cb74c9bc Fix hyperopt output 176006da Sort imports 66b77d2f Fix some types 62110dc2 Add buy / sell signal count to dataframe interface 350fcc07 Don't use __code__ b38f68b3 Add 404 when strategy is not found becccca3 Add test for __code__ loading ba10bd77 Add strategy code to __code__ 4b6b7f83 Add timeframe to candle return values a3d0889d Add alpha to endpoint documentation 816c8295 Add test for pair_history f82d39e1 Enhance restclient and add tests for new api methods bb4993dc Add new endpoints to the documentation c0654f3c Add resiliancy against not having a analyzed dataframe yet c59a1be1 show_config should not use freqtrade object 1de248fe add list_available_pairs endpoint 6a59740f Strategies should be a nested object 32e6ea31 Return strategy with analyzed data 18bbfdd3 Add /strategies endpoint f227f6a7 Use passed in config object to allow this to work in webserver mode bf0e75e2 Include data start and end date in dataframe api b93ad884 Return date column unmodified 482f1faa Don't fail if no buy-signal is present f5dc10e4 Add pair_history endpoint 67707835 Add plot_config endpoint d528c449 Add test for pair_history 133ca9c7 Convert types to support valid json a38b33cd Support limiting analyzed history 9dfbc1a7 Add analyzed_history endpoint 2be8e807 Add Python 3.8 to setup.py classifiers ace28792 Don't run isort on windows - once is enough 0ea56548 Try fix random test failure ce228f19 Apply isort to setup.py 9df366d9 Apply isort to tests 253b7b76 Apply isort to freqtrade codebase 201e7143 include isort to contributing 287604ef Add isort to project dev dependencies 7623691a PyPi Publis should only run for releases 17e605e1 Make it clear in samples that strategy is mandatory 700529fe Tag image before building next image dd4d458c Bump mkdocs-material from 5.5.13 to 6.0.1 6d8fadd5 Bump nbconvert from 6.0.4 to 6.0.6 1dee0eed Bump ccxt from 1.34.40 to 1.34.59 48347b49 Bump pytest from 6.0.2 to 6.1.0 15bb0af1 Add some test-coverage f3de74f8 Mock all occurances of hyperopt.dump 6e70ae6e Improve code quality 5769b924 Mock test correctly 8de9c461 Document hyperopt-filename usage 3cb1a9a5 Support loading results from a specific hyperopt history file c42a924d Load latest file ff96cf15 Keep hyperopt result history 7a652b07 UPdate documentation to remove --continue b736691e Remove hyperopt --continue ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 5 years ago

FreqAI - 2020.9.1

Highlighted changes

  • New dataformat HDF5 for faster access to backtesting data.
  • Download-data now supports an absolute starting point via --timerange 20200101.
  • Introduction of merge_informative_pairs() - a helper function to simplify merging dataframes [#3744]
  • Addition of an Orders table, which keeps track of all orders the bot opened. This will allow the bot to eventually "refind" lost orders, and fix most "insufficient funds" errors encountered recently.
  • Addition of finer filtering of telegram notifications based on notification type (buy, sell, buycancel, sellcancel, ...). Check the corresponding documentation for more details.
  • Better output table for hyperopt by padding the "win/draws/loss" column.
  • Added .devcontainer support to simplify development setup when using VSCode.

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

bash 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 pip install -e .

Expand full changelog ``` 17659001 Version bump to 2020.9 bb27b236 Remove unused arguments c56dd487 Fix test failure ff3e2641 generate_backtest_stats must take config options from the strategy config d49488bf Bump python from 3.8.5-slim-buster to 3.8.6-slim-buster 378f03a5 Add relevant parameters to stored backtest result bb56d392 Fix typo in documentation 6b46a35b Fix bug of balances not disappearing 4b06c9e0 Add test verifying wrong behaviour be335568 Bump nbconvert from 6.0.2 to 6.0.4 d1b3a16c Bump ccxt from 1.34.25 to 1.34.40 4cb5c9c8 Bump mkdocs-material from 5.5.12 to 5.5.13 50aec1d6 Jupyter service should be called differently 7dadca42 Update location of docker files 261b2671 Don't build devcontainer on push 3c460d37 Document existence of PLOT image 8ff1429e Add user_data to backtesting b02c0904 Use buildarg to use correct parent variable ab190f7a Document jupyter with docker usage 30c1253f Use correct ports for jupyter compose file f9efbed0 Ignore userdata from docker build 40132bbe Add this branch to CI 85ab6e43 Build _plot dockerfile 129cbf5e Add more Dockerfiles 096079a5 Install autopep8 4355f36c Add gitconfig to devcontainer 0a7b6f73 Move devcontainer stuff to .devcontainer cf85a178 Update developer documentation related to devcontainer 20e5c1b3 Update Developer documentation related to docker 7ead4f9f Update devcontainer settings 8ff7ce8b Introduce devcontainer b72cccae Add note about download-data in combination with startup period 637fe355 Fix typo in release documentation b3f0bfd7 Fix a few random typos 2b1d0b4a Rename references to "master" branch to "stable" c3494999 Also add 2w (supported by kraken) f51f4450 1M and 1y timeframes added a31de431 Explicitly convert to type to string 8c9a600d changed epochs from 5000 to 500 a95dbdbd Added 1M and 1y timeframes 2554dc48 Add test for notification settings 413d7ddf Document telegram notification settings e53b88bd Introduce notification_settings for telegram 2a7935e3 Rename custom_notification to startup_notification f0d7f18c Pad wins / draws / losses for hyperopt with spaces instead of 0's 476319da Clarify --timerange documentation bf95fe2e have the 2 timerange arguments next to each other 5daaed14 Help endpoint does not make sense for the rest api server. 1f086e14 Modify test loglevel 77d01896 Remove not needed argument in update_trade_state 2f6b0055 Document support for --timerange in download-data 35857b3d Datetime should support --timerange too bfd0e355 Don't build this branch anymore in CI 254875e6 Add test for new close functionality dd87938a Fix bug causing close_date to be set again ec01f20b Add ratio to sell reason stats 962fed24 Readd refind_order logic 6d30740b Bump ccxt from 1.34.11 to 1.34.25 23c1ae5d Bump nbconvert from 5.6.1 to 6.0.2 9d3caae9 Bump plotly from 4.9.0 to 4.10.0 3c76945d Bump numpy from 1.19.1 to 1.19.2 60538368 Bump pytest from 6.0.1 to 6.0.2 07ccda91 Fix syntax for released CI d65d886d add branch to CI - change branch-detection to support tags as well ba8e93e2 Remove requirements-common.txt 3f52b6d6 Move "source" restored ".env/" 77c28187 Don't run refind order on stoploss 50f0483d FIx fluky test in test_api_logs 90d97c53 FIX: added missing ) for SQLite insert 0c9301e7 FIX: added missing ) for SQLite insert aa8832f7 Convert select_order to use ft_is_open flag 41942e3a Update docstring for select_order b8773de5 scoped sessions should be closed after requests 85d90645 Remove duplciate check for buy orders 4db8c779 Fix formatting issues 6a08fee2 Fix wrong import in documentation 23f569ea Add test for sell order refind, improve overall test for this function 3c521f55 Add 6th mock trade c3e03977 Added full "source" command to virtualenv in easy install 4480b3b3 Fix error in documentation (wrong sequence of steps) 8c97b83b Bump pandas from 1.1.1 to 1.1.2 d8dae465 Bump ccxt from 1.34.3 to 1.34.11 986e767d Bump blosc from 1.9.1 to 1.9.2 4cf66e2f Bump progressbar2 from 3.52.1 to 3.53.1 083c3580 Fix wrong sequence in test 25938efe Add partial test for refind_order 98840eef Add 5th mock trade caf04767 Add test for handle_insufficient_funds 8af610b5 Add Test for reupdate_buy_order_fees 3fe2ed0e zero pad in test f63a3789 Update hyperopt.py f20318fa Bump scikit-learn from 0.23.1 to 0.23.2 ff0e73a9 Bump scikit-optimize from 0.7.4 to 0.8.1 534404c2 Bump ccxt from 1.33.72 to 1.34.3 014fcb36 Bump mkdocs-material from 5.5.11 to 5.5.12 7852feab support smaller timeframes f3e0370d Stylistic fixes 6518e7a7 Add test for update_closed_trades_without_fees 26a5cc59 Add return-type for select_order f113b450 Refactor test to not duplicate order info da0ceb7d Extract orders for mock trades cad0275b Extract mock_trade generation to sepearate file f6ebe513 Add test for update_open_orders a0fd7f46 Update tests to merged version b4da36d6 Fix small typo and add small testcase 7c1f111d Add insufficient_funds_test cec98ad4 Test stoploss insufficient funds handling 68d51a97 Don't raise OperationalException when orderid's dont' match a78d6115 Deleting must delete orders first b7662722 Add tests for Order object parsing b4c35291 Add orders to mock_trades fixture 8c9297e1 Don't crash if a strategy imports something wrongly c18441f3 Fix typo in reloading_conf 71af64af Move comment to the right place cc684c51 Correctly handle identical timerame merges 7bc89279 Add documentation for merge_informative_pair helper bd4f3d83 Implement merge_informative_pairs helper bc5cc48f Adjust windows docs, fix failing doc-test 14066919 Rename files to have clearer paths 32005b88 small typo 275d8534 Updated W, L Formulas 34b27d2f Moving stuff around 29fe2fff Added that the user can edit docker-compose.yml e6058b71 removes prolixity docker-compose 66505bd9 Fixes Raspberri Pi Image config f6a8dda8 Reorganize structure 71426470 Fixes typos 47f0e690 Update docs/edge.md 93d1ad5e Update docs/edge.md 1f13a8b9 Update docs/edge.md 08e35461 Update docs/edge.md 5f9c449d Update docs/edge.md 70eaf971 Update docs/edge.md 69349a9d Update docs/edge.md ec9b51d6 Update docs/edge.md 27362046 Add documentation section about running docs locally 5c5cf782 Fix small bug with /daily if close_profit_abs is not yet filled 47352e17 Address issue #2487 295ecaa9 Updating Edge Positioning Doc. 79ea8cf7 Improve wording e268bd19 Fix informative sample documentation f54fecae Expose helpermethods thorugh freqtrade.strategy dff0ac27 Remove trailing_stop from default config example - it'll be misleading d4441828 Reinstate wrongly removed pairlist test 3bc6cb36 Remove deprectead volumepairlist options a4e3edbc Fix stoploss_last_update beein updated with date object in wrong timezone 24df8d6b Sort imports c5b8993e Bump ccxt from 1.33.52 to 1.33.72 8969ab4a Bump pytest-mock from 3.3.0 to 3.3.1 55a49bfc Bump progressbar2 from 3.51.4 to 3.52.1 821af9be Bump mkdocs-material from 5.5.8 to 5.5.11 4adf012e Bump flask-cors from 3.0.8 to 3.0.9 f83633ff Bump prompt-toolkit from 3.0.6 to 3.0.7 7f74ff53 Move clock warning to installation pages 3d39f05c Improve release documetation 842eff95 Add simple verification to ensure pairlists is iitialized 284d3993 Allow using pairlists through dataprovider in backtesting a595d23b Improve comment in test 289425a4 Add test for dry-run-cancel order b2373fcc Adjust tests as send_msg is only called once 9c0a3fff Avoid double notifications in case of partially filled buy orders 5e75caa9 Adjust tests to new forcesell 85e71275 Simplify forcesell method by using freqtrade methods add78414 Don't overwrite cancel_reason d161b94d Allow simulating cancelled orders in dry-run 26f45c83 Improve logmessage for trailing stoploss 38809acd Don't rerun for known closed orders 9ba9f737 Improve logging, don't search for buy orders in refind_lost_order 674b510d Parametrize fetch_order retry counts 3d7e800f Remove test code 11e69bdd Update open trades too fd33282e Add handle_insufficient exception 3b444633 Use fetch_order_or_stoploss order f2b390a2 Add fetch_order_or_stoploss wrapper fc2104bf Fix bug with time when updating order_date 39beb5c8 Add method to update fees on closed trades fc42d552 Convert logs to fstrings 2d6bcbb4 Fix small error in trades updating 357d7714 Add docstring to update_trade_state 3be14933 Add comment explaining update_open_orders 0b6014fa update_trade_state should take the order id directly - not from the trade object 838985f6 Don't reset open-order-id just yet 06125df1 Remove unused import d8fdd32b FIx migrations cfa352ec Disable refind_lost_order for now b25267ad Build docker image for db_keep_orders branch 552aaf79 add refind order logic 22af8263 Introduce InsufficientFundsError exception a6fc922f Introduce insufficientFunds Exception 8458a380 Improve order catchup 95efc0d6 Add open_order_updater c4d7aff5 Order should have a "is_open" flag da2a515d Add delete cascade to alchemy model 1a305ea8 Fix migrations to use unique key 2ca6547b Update tests to have unique ordernumbers 4434a54d Add unique key to order-Model ebd755e3 Improve order handling 0af9e913 Timestamps are in ms 73182bb2 Update migrations to populate Orders table for open orders 396e781b Update orders 4924d848 Extract "update order from ccxt" to it's onw function ee7b235c Improve tests to use open_order mock where applicable 420a8c2b Improve tests for rpc/forcebuy a66a3d04 Remove unneeded mocks ed87abd9 Allow selecting only a certain table range in migration 171a52b2 Introduce Order database model 7d03a067 Extract migrations ot seperate module 044df880 Move persistence into it's own submodule bad89307 Fix mypy error 119bf2a8 Document hdf5 dataformat edb582e5 Add more tests ae1c99bd more tests ed33d478 Add more hdf5 tests d9b339ee Add some more tests for hdf5 0a28818b Add some tests for hdf5 e26e658f Improve a few tests 6a0c84b6 Add tests for hdf5 861e7099 Rename hdf5handler to hdf5DataHandler 3171ad33 Add blosc compression 0f08addf Don't store empty arrays 31df42e7 Implement get_available_data d4540c84 Add trades_load method 55591e28 First version of hdf5handler - no proper support for trades yet 0614e599 Add tables dependency ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 5 years ago

FreqAI - 2020.9

NOTE: updated to 2020.9.1 due to problems with the new CI method (keeping docker tags by version number as well).

Highlighted changes

  • New dataformat HDF5 for faster access to backtesting data.
  • Download-data now supports an absolute starting point via --timeframe 20200101.
  • Introduction of merge_informative_pairs() - a helper function to simplify merging dataframes [#3744]
  • Addition of an Orders table, which keeps track of all orders the bot opened. This will allow the bot to eventually "refind" lost orders, and fix most "insufficient funds" errors encountered recently.
  • Addition of finer filtering of telegram notifications based on notification type (buy, sell, buycancel, sellcancel, ...). Check the corresponding documentation for more details.
  • Better output table for hyperopt by padding the "win/draws/loss" column.
  • Added .devcontainer support to simplify development setup when using VSCode.

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

bash 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 ``` 17659001 Version bump to 2020.9 bb27b236 Remove unused arguments c56dd487 Fix test failure ff3e2641 generate_backtest_stats must take config options from the strategy config d49488bf Bump python from 3.8.5-slim-buster to 3.8.6-slim-buster 378f03a5 Add relevant parameters to stored backtest result bb56d392 Fix typo in documentation 6b46a35b Fix bug of balances not disappearing 4b06c9e0 Add test verifying wrong behaviour be335568 Bump nbconvert from 6.0.2 to 6.0.4 d1b3a16c Bump ccxt from 1.34.25 to 1.34.40 4cb5c9c8 Bump mkdocs-material from 5.5.12 to 5.5.13 50aec1d6 Jupyter service should be called differently 7dadca42 Update location of docker files 261b2671 Don't build devcontainer on push 3c460d37 Document existence of PLOT image 8ff1429e Add user_data to backtesting b02c0904 Use buildarg to use correct parent variable ab190f7a Document jupyter with docker usage 30c1253f Use correct ports for jupyter compose file f9efbed0 Ignore userdata from docker build 40132bbe Add this branch to CI 85ab6e43 Build _plot dockerfile 129cbf5e Add more Dockerfiles 096079a5 Install autopep8 4355f36c Add gitconfig to devcontainer 0a7b6f73 Move devcontainer stuff to .devcontainer cf85a178 Update developer documentation related to devcontainer 20e5c1b3 Update Developer documentation related to docker 7ead4f9f Update devcontainer settings 8ff7ce8b Introduce devcontainer b72cccae Add note about download-data in combination with startup period 637fe355 Fix typo in release documentation b3f0bfd7 Fix a few random typos 2b1d0b4a Rename references to "master" branch to "stable" c3494999 Also add 2w (supported by kraken) f51f4450 1M and 1y timeframes added a31de431 Explicitly convert to type to string 8c9a600d changed epochs from 5000 to 500 a95dbdbd Added 1M and 1y timeframes 2554dc48 Add test for notification settings 413d7ddf Document telegram notification settings e53b88bd Introduce notification_settings for telegram 2a7935e3 Rename custom_notification to startup_notification f0d7f18c Pad wins / draws / losses for hyperopt with spaces instead of 0's 476319da Clarify --timerange documentation bf95fe2e have the 2 timerange arguments next to each other 5daaed14 Help endpoint does not make sense for the rest api server. 1f086e14 Modify test loglevel 77d01896 Remove not needed argument in update_trade_state 2f6b0055 Document support for --timerange in download-data 35857b3d Datetime should support --timerange too bfd0e355 Don't build this branch anymore in CI 254875e6 Add test for new close functionality dd87938a Fix bug causing close_date to be set again ec01f20b Add ratio to sell reason stats 962fed24 Readd refind_order logic 6d30740b Bump ccxt from 1.34.11 to 1.34.25 23c1ae5d Bump nbconvert from 5.6.1 to 6.0.2 9d3caae9 Bump plotly from 4.9.0 to 4.10.0 3c76945d Bump numpy from 1.19.1 to 1.19.2 60538368 Bump pytest from 6.0.1 to 6.0.2 07ccda91 Fix syntax for released CI d65d886d add branch to CI - change branch-detection to support tags as well ba8e93e2 Remove requirements-common.txt 3f52b6d6 Move "source" restored ".env/" 77c28187 Don't run refind order on stoploss 50f0483d FIx fluky test in test_api_logs 90d97c53 FIX: added missing ) for SQLite insert 0c9301e7 FIX: added missing ) for SQLite insert aa8832f7 Convert select_order to use ft_is_open flag 41942e3a Update docstring for select_order b8773de5 scoped sessions should be closed after requests 85d90645 Remove duplciate check for buy orders 4db8c779 Fix formatting issues 6a08fee2 Fix wrong import in documentation 23f569ea Add test for sell order refind, improve overall test for this function 3c521f55 Add 6th mock trade c3e03977 Added full "source" command to virtualenv in easy install 4480b3b3 Fix error in documentation (wrong sequence of steps) 8c97b83b Bump pandas from 1.1.1 to 1.1.2 d8dae465 Bump ccxt from 1.34.3 to 1.34.11 986e767d Bump blosc from 1.9.1 to 1.9.2 4cf66e2f Bump progressbar2 from 3.52.1 to 3.53.1 083c3580 Fix wrong sequence in test 25938efe Add partial test for refind_order 98840eef Add 5th mock trade caf04767 Add test for handle_insufficient_funds 8af610b5 Add Test for reupdate_buy_order_fees 3fe2ed0e zero pad in test f63a3789 Update hyperopt.py f20318fa Bump scikit-learn from 0.23.1 to 0.23.2 ff0e73a9 Bump scikit-optimize from 0.7.4 to 0.8.1 534404c2 Bump ccxt from 1.33.72 to 1.34.3 014fcb36 Bump mkdocs-material from 5.5.11 to 5.5.12 7852feab support smaller timeframes f3e0370d Stylistic fixes 6518e7a7 Add test for update_closed_trades_without_fees 26a5cc59 Add return-type for select_order f113b450 Refactor test to not duplicate order info da0ceb7d Extract orders for mock trades cad0275b Extract mock_trade generation to sepearate file f6ebe513 Add test for update_open_orders a0fd7f46 Update tests to merged version b4da36d6 Fix small typo and add small testcase 7c1f111d Add insufficient_funds_test cec98ad4 Test stoploss insufficient funds handling 68d51a97 Don't raise OperationalException when orderid's dont' match a78d6115 Deleting must delete orders first b7662722 Add tests for Order object parsing b4c35291 Add orders to mock_trades fixture 8c9297e1 Don't crash if a strategy imports something wrongly c18441f3 Fix typo in reloading_conf 71af64af Move comment to the right place cc684c51 Correctly handle identical timerame merges 7bc89279 Add documentation for merge_informative_pair helper bd4f3d83 Implement merge_informative_pairs helper bc5cc48f Adjust windows docs, fix failing doc-test 14066919 Rename files to have clearer paths 32005b88 small typo 275d8534 Updated W, L Formulas 34b27d2f Moving stuff around 29fe2fff Added that the user can edit docker-compose.yml e6058b71 removes prolixity docker-compose 66505bd9 Fixes Raspberri Pi Image config f6a8dda8 Reorganize structure 71426470 Fixes typos 47f0e690 Update docs/edge.md 93d1ad5e Update docs/edge.md 1f13a8b9 Update docs/edge.md 08e35461 Update docs/edge.md 5f9c449d Update docs/edge.md 70eaf971 Update docs/edge.md 69349a9d Update docs/edge.md ec9b51d6 Update docs/edge.md 27362046 Add documentation section about running docs locally 5c5cf782 Fix small bug with /daily if close_profit_abs is not yet filled 47352e17 Address issue #2487 295ecaa9 Updating Edge Positioning Doc. 79ea8cf7 Improve wording e268bd19 Fix informative sample documentation f54fecae Expose helpermethods thorugh freqtrade.strategy dff0ac27 Remove trailing_stop from default config example - it'll be misleading d4441828 Reinstate wrongly removed pairlist test 3bc6cb36 Remove deprectead volumepairlist options a4e3edbc Fix stoploss_last_update beein updated with date object in wrong timezone 24df8d6b Sort imports c5b8993e Bump ccxt from 1.33.52 to 1.33.72 8969ab4a Bump pytest-mock from 3.3.0 to 3.3.1 55a49bfc Bump progressbar2 from 3.51.4 to 3.52.1 821af9be Bump mkdocs-material from 5.5.8 to 5.5.11 4adf012e Bump flask-cors from 3.0.8 to 3.0.9 f83633ff Bump prompt-toolkit from 3.0.6 to 3.0.7 7f74ff53 Move clock warning to installation pages 3d39f05c Improve release documetation 842eff95 Add simple verification to ensure pairlists is iitialized 284d3993 Allow using pairlists through dataprovider in backtesting a595d23b Improve comment in test 289425a4 Add test for dry-run-cancel order b2373fcc Adjust tests as send_msg is only called once 9c0a3fff Avoid double notifications in case of partially filled buy orders 5e75caa9 Adjust tests to new forcesell 85e71275 Simplify forcesell method by using freqtrade methods add78414 Don't overwrite cancel_reason d161b94d Allow simulating cancelled orders in dry-run 26f45c83 Improve logmessage for trailing stoploss 38809acd Don't rerun for known closed orders 9ba9f737 Improve logging, don't search for buy orders in refind_lost_order 674b510d Parametrize fetch_order retry counts 3d7e800f Remove test code 11e69bdd Update open trades too fd33282e Add handle_insufficient exception 3b444633 Use fetch_order_or_stoploss order f2b390a2 Add fetch_order_or_stoploss wrapper fc2104bf Fix bug with time when updating order_date 39beb5c8 Add method to update fees on closed trades fc42d552 Convert logs to fstrings 2d6bcbb4 Fix small error in trades updating 357d7714 Add docstring to update_trade_state 3be14933 Add comment explaining update_open_orders 0b6014fa update_trade_state should take the order id directly - not from the trade object 838985f6 Don't reset open-order-id just yet 06125df1 Remove unused import d8fdd32b FIx migrations cfa352ec Disable refind_lost_order for now b25267ad Build docker image for db_keep_orders branch 552aaf79 add refind order logic 22af8263 Introduce InsufficientFundsError exception a6fc922f Introduce insufficientFunds Exception 8458a380 Improve order catchup 95efc0d6 Add open_order_updater c4d7aff5 Order should have a "is_open" flag da2a515d Add delete cascade to alchemy model 1a305ea8 Fix migrations to use unique key 2ca6547b Update tests to have unique ordernumbers 4434a54d Add unique key to order-Model ebd755e3 Improve order handling 0af9e913 Timestamps are in ms 73182bb2 Update migrations to populate Orders table for open orders 396e781b Update orders 4924d848 Extract "update order from ccxt" to it's onw function ee7b235c Improve tests to use open_order mock where applicable 420a8c2b Improve tests for rpc/forcebuy a66a3d04 Remove unneeded mocks ed87abd9 Allow selecting only a certain table range in migration 171a52b2 Introduce Order database model 7d03a067 Extract migrations ot seperate module 044df880 Move persistence into it's own submodule bad89307 Fix mypy error 119bf2a8 Document hdf5 dataformat edb582e5 Add more tests ae1c99bd more tests ed33d478 Add more hdf5 tests d9b339ee Add some more tests for hdf5 0a28818b Add some tests for hdf5 e26e658f Improve a few tests 6a0c84b6 Add tests for hdf5 861e7099 Rename hdf5handler to hdf5DataHandler 3171ad33 Add blosc compression 0f08addf Don't store empty arrays 31df42e7 Implement get_available_data d4540c84 Add trades_load method 55591e28 First version of hdf5handler - no proper support for trades yet 0614e599 Add tables dependency ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 5 years ago

FreqAI - 2020.8

Highlighted changes

  • New telegram method /log [limit] - showing the latest logs of the bot.
  • New /delete <tradeid> telegram command, allowing deletion of a trade (Will simply remove the trade from the database, so make sure to handle the assets on exchage accordingly).
  • Additional metrics available in Backtesting.
  • New, enhanced backtesting export format, exporting additional metrics and strategy comparisons.
  • Enable dataprovider in hyperopt (Only available when populate_indicators() comes from the strategy).

How to update

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

docker-compose

bash 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 ``` 77f2d46e Version bump to 2020.8 2ae04af6 Improve some doc wording dc6d71f6 Improve comment formatting cf719bc5 Fix logformat to use epoch timestamp in ms bf5a0823 bufferhandler should log right from the beginning 309ea124 Update config to use single quotes 9d4ecb62 Allow numpy numbers as comparisons, too 3bb69bc1 Add returns statement to docstring fca11160 Improve docstring of is_pair_locked 354a4062 Sort imports in interface.py 502e21b2 Add unfilled explanation for sandboxes c2729448 Lock pair until a new candle arrives 7ece7294 Bump sqlalchemy from 1.3.18 to 1.3.19 f22fc8ef Bump pandas from 1.1.0 to 1.1.1 0e20b8f5 Bump ccxt from 1.33.18 to 1.33.52 74c97369 Bump arrow from 0.15.8 to 0.16.0 4c48fe96 Bump pytest-mock from 3.2.0 to 3.3.0 5799cc51 Bump mkdocs-material from 5.5.7 to 5.5.8 8478e083 Improve wording of sandbox documentation 8940ba82 Update sandbox documentation a55dd844 Fix loglevel of using_cached-rate ec949614 Reduce loglevel of "using cached rate" 05ec56d9 Dates should be changed to UTC to provide the correct timestamp 73417f11 Fix rendering issue on readthedocs 2701a7cb update bad exchanges d8a6410f Fix small bug when using max-open-trades -1 in backtesting 637147f8 Update sql cheatsheet parentheses 0e368b16 Update stoploss.md 3d932367 Remove unused import fa0c8fa0 Readd note about windows hyperopt color output 4f1179d8 Test for empty case f5a9001d Handle backtest results without any trades bca24c8b Clarify hyperopt dataprovider usage 55c6e567 Update stoploss.md e206cc9c Adjust tests 375e671a Move formatting of /daily to telegram d8e1f974 Fix documentation typo 9982ad2f Add profit to backtest summary output 668d167a Add docstring to store_backtest_stats 4eb17b4d Remove unneeded function aa866294 Reformulate documentation ce15c551 Add libffi-dev to rpi image 30a2df14 Bump coveralls from 2.1.1 to 2.1.2 c8ddd565 Bump prompt-toolkit from 3.0.5 to 3.0.6 988bff9e Bump ccxt from 1.32.88 to 1.33.18 7af7fb26 Bump pytest-cov from 2.10.0 to 2.10.1 da667284 Bump mkdocs-material from 5.5.3 to 5.5.7 d6ea4425 Update stoploss.md 2a6faaae Update stoploss.md 4619a500 Update configuration.md bd308889 Update docs/stoploss.md f8efb87a Update docs/stoploss.md ddba999f Update stoploss.md 81a75c97 Update docs/stoploss.md 50917672 Update docs/stoploss.md 8b348fc2 Update docs/stoploss.md 67e97212 Update docs/stoploss.md 4a0c988b Update docs/stoploss.md e30a3893 Update docs/stoploss.md 902d40a3 Update docs/stoploss.md 4ade3daa Update docs/stoploss.md 1ce392f6 Update docs/stoploss.md c60192e4 Update docs/stoploss.md bae8e5ed Update docs/stoploss.md b9e46a3c Update stoploss.md 56ca37fd Also provide stacktrace via log endpoints c2573c99 Remove Hyperopt note about windows cc91d513 Fix wording in configuration.md 142f87b6 Adjust tests to new wordings 9dd2800b Apply some review changes f3d4b114 Skip windows test failure 1ffa3d1a Improve telegram message formatting f5863a1c Fix mypy errors 9659e516 Remove queue import c4f78203 Initialize streamhandler early to have it apply to all logs cdfcdb86 Increase logfile size 251eb5aa Test for bufferingHandler too 122c0e8d Readd accidentally dropped StreamHandler 9ad8e742 Add tests for log-endpoints 5d691b5e Fix warning box typo f3cedc84 Update docs/edge.md a14ce9d7 Update docs/edge.md 47b215fe Update docs/edge.md 904c4ecc Document /logs endpoints 5f79caa3 Implement /logs endpoints in telegram and restAPI b989ba0f Simplify setup of handlers 48944fd4 Logging with queueHandler b9810737 Improve formatting of result string to be a bit conciser d76ee432 Show wins / draws / losses in hyperopt table 4109b31d Update wording in documentation 6b85b1a3 Don't only recommend pycharm, but keep it open to other editors too. e45e41ad Improve docs test to catch !!! errors 1dabade8 small rewording of FAQ documentation 827c31d4 Re-arranged the introduction to better explain the theory of operation and the limitations of Edge. Added paragraphs at the bottom of "running edge independently" to better explain Edge's order of operations processing and potential differences between historical output and live/dry-run operation. 3afd5b63 Remove erroneous import 815d88fd Fix test after merge, fix forgotten 'amount' faa2bbb5 Document exception hierarchy 6dfa159a Small comment adjustments in exchange class 1f1a819b Remove unused 3rd argument to create_stoploss call 2fed066e Simplify objective code formatting 2dc36bb7 Remove inversion of min/max objective selection 56655b97 Refactor hyperopt_filter method f51c03aa Revert changes to color using --no-color 77541935 Fix small merge mistake d77c5396 Show API backoff in logs to better investigate eventual problems) c9c43d2f Move log-message of retrying before decrementing count 1afe4df7 Bump ccxt from 1.32.45 to 1.32.88 17613f20 Bump mkdocs-material from 5.5.1 to 5.5.3 2663aede Update test to reflect new column naming fca41a44 Also logg timeframe 2afe1d5b Add link to full sample 09aa954b Update strategy-customization documentation 5e1032c4 Simplify strategy documentation, move "substrategies" to advanced page dd430455 Enable dataprovier for hyperopt f3ce5415 Simplify Telegram table eba73307 Update strategy_methods_advanced.j2 d01070db Increase coverage of edge_cli 995d3e1e Don't search internal path for Hyperopt files 59370672 Fix more tests 081625c5 Have hyperopt tests use new hyperopt location 8b6d10da Move DefaultHyperopt to test folder (aligned to strategy) 5082acc3 Fix typos in documentation 8ed3b81c Implement /delete in rest client 075c73b9 Improve formatting of telegram message 817f5289 /delete should Cancel open orders (and stoploss orders) 9163c7f3 Improve api response b954af33 Fix type erorr in callable 4b016477 Add test for /delete 26c7341b Add test for api-server DELETE trade 215972c6 Implement /delete for api-server a3688b15 Improve formatting a33346c6 Fix testing errors - which surfaced with pytest 6.0.1 b3f04d89 Bump ccxt from 1.32.7 to 1.32.45 1855a444 Bump pandas from 1.0.5 to 1.1.0 809b3dda Bump mkdocs-material from 5.5.0 to 5.5.1 5ff09a06 Bump pytest from 5.4.3 to 6.0.1 3915101d Add more backoff to fetch_order endpoint 6c77feee Improve some exchange logs 99bfa839 Improve logging for sell exception 071e8204 Better handle cancelled buy orders d1cbc567 Fix filtering for bumped pairs 14cb29aa Add test for remove_pumps in edge aab5596f Convert trade open / close to timestamp 977a6d4e Add profit_total to results line 454046f7 Add stake_currency and max_opeN_trades to backtest result 8d0f338b Timestamps should be in ms 9ed5fed8 Fix output format to be of an identical type 902e8fa6 Fix wrong spelling in one subcomponent f48250b4 Make flake happy 50767cd5 Adjust tests for AgeFilter 5c248108 Add tests for PriceFilter c78199d3 Add checks for parameters of PriceFilter a1e292f5 Improve docs daee414d Fix docs formatting 5213abf5 AgeFilter is always enabled f6bde8bd Improve exception message wordings 47748961 Evaluate average before price in order returns eaa73701 add /delete command de46744a Use filled before amount for order data 98f2e79f Adjust tests to use correctly trimmed amount 3721736a Convert to real amount before placing order c1c018d8 Fix tests that require amount_requested eafab38d Complete implementation of amount_requested c826f7a7 Add amount_requested to database d13cb4c0 Introduce safe_value_fallback_2 82c68f07 Add stoploss-distance (to current price) to /status output bdf61135 Update summary-metrics output 2417898d Apply documentation suggestions from code review 1fc4451d Avoid \ linebreak ea5e4765 Remove ticker_interval from jupyter notebook 0d15a87a Remove old store_backtest method 523437d9 Add tst for daily stats 987188e4 Add avgduration for winners and losers 8e0ff4bd Add Win / draw / losing days 42868ad2 Add best / worst day to statistics 804c4293 Document summary-statistics d56f9655 Update notebook with new statistics example 619eb183 Allow strategy for plot-profit 16a842f9 Have plotting support folder-based exportfilename d999fa2a Test autogetting result filename 7c5587ae exportfilename can be a file or directory 2ed808da Extract .last_result.json to constant 59e0ca0a Add pairlist to backtest-result 59ac4b9c Test writing statistics 5b1a7ba0 Test multistrat loading f952f74b Add test for new format 573502d9 Update test for load_trades_from_db afefe925 Add multi-strategy loading logic c13ec4a1 implement fallback loading for load_backtest_data 13394798 Have sell_type stringify correctly 04eaf2c3 Add test for get_last_backtest_Result 77272928 Rename duration to trade_duration f368aabc Add amount to backtest-result 6e947346 Add fee to backtestresult 03ab6195 Add test for generate_backtest_stats af9a9592 Remove unnecessary statement 075eb0a1 Fix sequence of saving dacb40a9 Add get_latest_backtest_filename 0fa56be9 remove openIndex and closeIndex from backtest-report 04cbc2cd Shorten variable 28817187 Adapt tests for new column names b068e7c5 Rename open_time and close_time to *date 41585358 Save backtest-stats 81c8e867 use 0 as profit mean, not nan 480c5117 Handle empty return strings 5fce7f3b Add market Change cf044d16 Tests should use new Datetime format too fbddfaea Introduce DatetimePrintFormat cbcf3dbb Add more metrics to summarytable 6922fbc3 Add max_drawdown error handler 455b26ea Add max drawdown to backtesting 2f759825 Update faq.md 9dba2a34 Add note for hyperopt color support on windows 08049d23 Use "market_is_tradable" for whitelist validation b74a3add Update tests b22e3a67 rename symbol_is_pair to market_is_tradable f6edb32a Run hyperopt with --print-all d9afef8f Move colorama_init to where it was ffa93377 Test colorama init again (after the fixes done to progressbar) f3824d97 Use dict for symbol_is_pair bfa55f31 Remove wrong comment c9711678 fixed indent 181b12b3 added wins/draws/losses 72b088d8 added test 6147498f fixed indent 2fb3d949 added wins/draws/losses ef4426a6 added comma 0a87fe76 unified language 7143cac6 fixed wording of all in cli_options bf96ef08 added # flake8: noqa C901 1976aaf1 initial push d752586b added test 1395f658 meh c442913f final ba596af6 final? d25cf139 fixed log message 2e679ee2 fixed log message 77547424 fix tests d667acb3 fixed typo a82cdf0a fixed test a85d1732 fix d239e999 removed old code from create_trade 4e45abbf added return false, false 54bde6ac verify date on new candle before producing signal ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 5 years ago

FreqAI - 2020.7

Highlighted changes

  • Implement api backoff - adding an incremental backoff for certain errors (DDos Error / order not found)
  • New strategy callback confirm_trade_entry() and confirm_trade_exit() - allowing the strategy to stop a buy right before the order is placed relevant documentation.
  • New strategy callback and bot_loop_start() - which is called once per bot iteration relevant documentation.
  • New telegram comand /trades <limit> - showing you the last X trades.
  • trade_id is now part of all webhook calls - allowing to easily corelate different notifications to one trade.
  • New sub-command freqtrade list-data - showing a list of available pair / timeframe combinations
  • Dataprovider is now available for plot-dataframe.
  • PriceFilter now allows to filter on min_price and max_price in addition to the low_price_ratio that was available before.

How to update

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

docker-compose

bash 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 ``` 7318d02e Bump ccxt from 1.32.3 to 1.32.7 dbcccac6 Bump ccxt from 1.31.37 to 1.32.3 b4d22f10 Bump urllib3 from 1.25.9 to 1.25.10 63e7490a Bump plotly from 4.8.2 to 4.9.0 838743bf Bump mkdocs-material from 5.4.0 to 5.5.0 2ff03e17 Bump numpy from 1.19.0 to 1.19.1 d1d6f69e Bump scipy from 1.5.1 to 1.5.2 6ce4fd7a Bump arrow from 0.15.7 to 0.15.8 e0c14e62 Add /trades to help (so users know about it) fdc84eef /trades shall only return closed trades 8300eb59 Extend create_mock_trades to create 4 trades 0f18b2a0 Add test and fix case where no trades were closed yet 0bad5563 fix flake8 indent error a3daf8e4 Fix line too long 0502fe04 New /trades 3 columns and exclude open trades f5f529ca Use correct initialization of DataProvider 2a5f8d88 Bump python from 3.8.4-slim-buster to 3.8.5-slim-buster 6a10c715 Fix 0 division (if last = 0, something went wrong!) 939f9173 Test confirming 0 division ... 7d6708fc Reduce severity of hyperopt "does not provide" messages 21dcef11 Add trade_id to webhooks 4c97527b FIx failing test 811028ae missing coma in sql request 28f4a110 Revert "Add telegram /delete command to delete tradeid" 37a9edfa Correct a typo in stop loss doc. 08fdd7d8 Add telegram /delete command to delete tradeid dd3a2675 Add telegram trades command to list recent trades 3271c773 Fix SQL syntax error when compare pair strings 49395601 Improve informative pair sample cd7ba995 Bump ccxt from 1.30.93 to 1.31.37 eaf2b53d Update Dependabot config file 5cebc9f3 Move stoploss_on_exchange_limit_ratio to configuration schema c1191400 Allow 0 fee value by correctly checking for None 1051ab91 Replaced logging with OperationalException when AgeFilter given invalid parameters 0228b634 Don't print empty table ae55d549 Bump python from 3.8.3-slim-buster to 3.8.4-slim-buster 62c55b18 Enhance formatting, Add pair filter 01f325a9 Send timeframe min and ms in show_config response 0b36693a Add filter for stoploss_on_exchange_limit_ratio to constants 50573bd3 Bump coveralls from 2.0.0 to 2.1.1 d1e4e463 Bump ccxt from 1.30.64 to 1.30.93 58eb26d7 Bump pycoingecko from 1.2.0 to 1.3.0 79af6180 Bump pytest-mock from 3.1.1 to 3.2.0 ed2e35ba Update docs/sql_cheatsheet.md b035d9e2 Update return type comment 33c39909 Add documentation for list-data command 5bb81abc Add test for start_list_data 02afde85 Add list-data command d4fc52d2 Add tests for ohlcv_get_available_data 422825ea Add ohlcv_get_available_data to find available data f0a1a172 removed duplicate ecbca3fa Add sqlite3 to dockerfile 588043af Fix documentation brackets, add delete trade hints 40bdc936 Add test for short_desc of priceFilter 14eab9be Added min_price, max_price to PriceFilter 091285ba Fix flake8 error in test_pairlist.py 2e45859a Added range checks to min_days_listed in AgeFilter deb34d28 Bump scipy from 1.5.0 to 1.5.1 93dd70c7 Bump joblib from 0.15.1 to 0.16.0 4c8bee1e Bump mkdocs-material from 5.3.3 to 5.4.0 f63045b0 Bump ccxt from 1.30.48 to 1.30.64 75318525 Update docs/strategy-advanced.md c4a9a79b Apply suggested documentation changes from code review 20e8a292 Adding a dataprovider to the strategy before plotting 23c0db92 Adding a dataprovider to the strategy before plotting f32e522b Update API test, removed 'ANY' 39fa5897 Update API test, currently just with 'ANY' db965332 Update tests for AgeFilter message 99ac2659 Init FIAT converter in api_server.py 81850b5f AgeFilter add actual amount of days in log message (debug info) 61ae471e fixed --export trades command efd6e4a8 Add test for check_for_open_trades b95065d7 Log backoff 4d9ecf13 Fix failing test in python 3.7 c6124180 Fix bug when fetching orders fails 6362bfc3 Fix calculate_backoff implementation cbcbb4bd Rename get_stoploss_order to fetch_stoploss_order (align with fetch_order) 92c70fb9 Rename get_order to fetch_order (to align to ccxt naming) e040c518 Dynamic backoff on DDos errors 29d3ff1b Adjust tests to work with ExchangeError bf61bc9d Introduce ExchangeError e74d2af8 Have TemporaryError a subCategory of DependencyException 5bd4798e Add retrier to stoploss calls (but without retrying) 2c45114a Implement DDos backoff (1s) 118f0511 Added message in cleanup and fixes e5676867 Trying to fix flake8 errors b938c536 Trying to fix flake8 errors 48289e8c Added exchange name, removed capital letters 0642ab76 Added information to the new function e813573f Warning message for open trades when stopping bot 6734269b Use >= to compare for winning trades 0509b9a8 Show winning vs. losing trades f9769057 Fix more exchange message typos eef3c01d Fix function header formatting f1993fb2 Pass analyzed dataframe to get_signal 48225e0d Improve interface docstrings for analyze functions f2a778d2 Combine tests for empty dataframe 8472fcff Add empty to documentation ab938243 Add test for get_analyzed_dataframe e5f7610b Add bot basics documentation 8b186dbe Add additional test scenarios 1c1a7150 ensure confirm_trade_entry is called and has the desired effect 7c3fb111 Confirm execute_sell calls confirm_trade_exit 6d6e7196 Test trade entry / exit is called correctly 84329ad2 Add confirm_trade* methods to abort buying or selling de676bca Document get_analyzed_dataframe for dataprovider 910100f1 Improve docstring comment dea7e3db Use supress_errors in strategy wrapper - ensure it's called once c047e48a Add errorsupression to safe wrapper bc821c7c Add documentation for bot_loop_start 77056a31 Add bot_loop_start callback 7da95555 Add test for empty pair case 8166b372 Explicitly check if dp is available 55fa514e Adapt most tests 273aaaff Introduce .analyze() function for Strategy 95f3ac08 Update some comments 97949148 store dataframe updated as tuple fd97ad9b Cache analyzed dataframe de36f3d8 Cosmetics in freqtradebot 4660909e Validate stoploss_on_exchange_limit_ratio at startup time 1bf333d3 Minor: fix test be03c22d Minor: Fix exception message ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 6 years ago

FreqAI - 2020.6

Highlighted changes

  • New Pairlist Handler AgeFilter added - filtering out pairs which are listed on the exchange for fewer than N days.
  • Emoji support for Telegram messages - Buy / Sell notifications now have colored emojis allowing to see at a glance if the trade did well (Green Rocket) or not (Red X).
  • /reload_config and /show_config commands have been aligned, before it was /reload_conf and /show_config.
  • Deprecate the usage of ticker_interval in favor of timeframe. Best change your configuration / strategies to align to this new wording to avoid problems in the future.
  • Introduce Stoploss on exchange for the FTX exchange. This stoploss is configurable and uses the 'stoploss' key from the order_types configuration to create either a stoploss-market, or stoploss-limit order.
  • Change hyperopt-output to be in the format the strategy expects (copy/paste friendly).
  • Fix bug when newly listed pairs would be automatically added to the pairlist, but the bot would fail to download data for them.
  • The /profit Telegram command now shows both mean and cumulative profit in percentages.

How to update

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

docker-compose

bash 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 ``` e41392a7 Version bump to 2020.6 a9064117 Bump ccxt from 1.30.34 to 1.30.48 8fb1683b Bump cachetools from 4.1.0 to 4.1.1 c06b2802 Bump mypy from 0.781 to 0.782 449d4625 Bump python-telegram-bot from 12.7 to 12.8 9e1ce0c6 Bump sqlalchemy from 1.3.17 to 1.3.18 be2b326a Bump pytest-asyncio from 0.12.0 to 0.14.0 4e5910af Bump mkdocs-material from 5.3.2 to 5.3.3 e06b0092 Bump plotly from 4.8.1 to 4.8.2 fe0b17c7 Bump progressbar2 from 3.51.3 to 3.51.4 e11d22a6 Apply suggestions from code review 185fab7b Change some wordings in documentation da8e8766 Add missing data fillup to FAQ ab7f5a2b Added pairslist AgeFilter 5423d858 Test for cors settings b77a1057 Add CORS_origins key to configuration 676006b9 --dl-trades should also support increasing download span 3624aec0 Typos f2807143 Bump ccxt from 1.30.2 to 1.30.34 1854e305 Bump requests from 2.23.0 to 2.24.0 9af1dae5 Bump numpy from 1.18.5 to 1.19.0 6d82e41d Bump ccxt from 1.30.2 to 1.30.31 b29f12bf Bump scipy from 1.4.1 to 1.5.0 dcc95d09 Bump mkdocs-material from 5.3.0 to 5.3.2 432c1b54 Bump arrow from 0.15.6 to 0.15.7 993333a6 Bump pandas from 1.0.4 to 1.0.5 dbf14ccf Bump mypy from 0.780 to 0.781 0b8cac68 Improve advanced-setup.md e2465f97 Correctly mock out async_reload d4fb5af4 Also reload async markets 3517c86f Fail if both ticker_interval and timeframe are present in a configuration 9cc04c92 Fix documentation typo 5e4dd441 Fix formatting 61ce18a4 Slightly reword certain things - add link in FAQ e24ffebe Move Multiple instances section to advanced-setup.md df90d631 Bump flake8 from 3.8.2 to 3.8.3 f38f3643 Bump pytest-cov from 2.9.0 to 2.10.0 d6605052 Bump ccxt from 1.29.52 to 1.30.2 1853350c Bump mkdocs-material from 5.2.3 to 5.3.0 d337fb6c Update some comments 837aedb0 Docs: Run multiple instances for new users 534c242d Apply typography to test too f6f7c99b Adjust typography and add missing space ea77edce Make flake happy 3d9b1077 Changes after review 37bc2d28 Revert "Remove _load_async_markets" 9890e26a fix SQL cheatsheet query (#3475) 9615614e Update hyperopt.md ab2f5579 Update strategy-customization.md 1e7826f3 Explicitly raise OperationalException if markets are not loaded correctly c66ca957 Add test verifying this behaviour a7cd6812 Have rest-client use new reload_config endpoint 69ac5c1a change hyperopt return to better copy to strategy file 4f643f84 Fix Flake8 error: line too long 8c9dea98 Now supports both commands & fixed test 043397c5 reload_conf & reload_config now both accepted, code is more consistent now 04fa5976 Test with multiple commands in one line ac928346 reload_conf & reload_config now both accepted, code is more consistent now a198b91b align Spaces in commented config section 0067a3ab Change logging level 7d451638 Make _reload_markets() public 6744f8f0 Remove _load_async_markets bd942992 Add documentation about pricing related to market orders 05deb5ba Fixed typo and missing { ab0003f5 fix #3463 by explicitly failing if no stoploss is defined 6029593c Bump mypy from 0.770 to 0.780 4b5aee7d Bump pytest from 5.4.2 to 5.4.3 81ed1d6f Bump mkdocs-material from 5.2.2 to 5.2.3 1c8243e9 Bump numpy from 1.18.4 to 1.18.5 9f482d59 Bump ccxt from 1.29.5 to 1.29.52 bb07746b Bump pytest-mock from 3.1.0 to 3.1.1 72ae4b15 Load pairlist after strategy to use strategy-config 54226b45 Add test verifying failure a75b94f1 use bracket notation for dataframe access 68395d27 Use bracket notation to query results in hyperopt 0f373e6b Update unrelated tests 3f9ab084 Rename profitperc to profit_percent 04779411 Add docstring to backtest_stats 070913f3 Rename text_table generation 499c6772 Rename tabulate methods a6f67247 Reorder functions in optimize_report db4576c5 Use json for *strategy dump 8d8cf5a2 Improve code formatting of telegram 3bd38171 DOn't use json.dumps - it's not necessary d20762aa Fixed typo 'emoij' in test file too 172ca761 Fixed typo 'emoij' b2316cdd Extract sell_smoij logic into it's own function 1a5cd859 Fix typo 8c32d691 Add information about bid and ask strategy to /showconfig 5f9994c9 Reduce verbosity of sell-rate fetching f34bcc5f Splitted a line that was too long, resulting in error for flake8 6694ac50 Splitted a line that was too long, resulting in flake8 error 08b9abed Removed '.encode', unecessary 4c6a7a35 Removed '.encode' lines, unessecary 080efd11 Added unicoded emoji's to Telegram messages ff289a71 Updated tests to work with Telegram emojis b2734849 Add rate-limiting note for Kraken datadownload 6a88eb60 Update failing test 7bd55aa2 Use correct calcuation for "locked in profit" 412b50da Add current stoploss calculations 5c5dc6ff Update test to reflect real trade after one cycle 2f07d216 Update documentation with FTX Stoploss on exchange 6997524a Fix tests for additional info 0dc1a8e0 Add profit sum to api response f0eb0bc3 Support limit orders 77a62b84 Fix some comments 1d9aeef7 Support stop order in persistence b58fd179 Don't hardcode pair ... 11ebdefd Fix bug after rebase 3174f37b adapt tests to use stoploss_* methods cf50c1cb Add tests for new exchange methods f83c1c5a Use get_stoploss_order and cancel_stoploss_order d90d6ed5 Add ftx to tested exchanges a808fb3b versionbump ccxt to first version that has FTX implemented correctly 68a59fd2 Add Hint to suggest this is still broken 78dea19f Implement first version of FTX stop ad61673d Fix missing key in test order a2551daf Fix ZeroDivision problem where cost is 0.0 ea954b43 Add failing test with testcase from incident 48117666 Update freqtrade/exchange/exchange.py 02fca141 Readd ticker_interval to trade api response 1a5dba9a Revert "Fix tests after merge" f4c2bb13 Fix crash in #3404 85fedf95 Make mypy happy edf8e39b Fix tests after merge 9995a589 Fix merge b106c886 Add test case for strategy overwriting a8005819 Add class-level attributes to hyperopt and strategy 8e1a664a Add test for deprecation updating 33b70462 Update more documentation febc95dc Update documentation to remove ticker_interval f9bb1a7f Update more occurances of ticker_interval af0f29e6 Update persistence to use timeframe 09fe3c6f create compatibility code 3e895ae7 Some more replacements of ticker_interval 947903a4 Use timeframe from within strategy 38857380 Update configuration messages cadc50ce Replace more occurances of ticker_interval with timeframe 18913db9 Replace ticker_interval with timeframe in sample configs 950f3589 Replace occurances in test files b2c241e6 Replace ticker_interval in all rpc files 898def7f Remove ticker_interval from exchange 009ea063 Exchange some occurances of ticker_interval b2025597 Build-commands should write timeframe instead of ticker interval 67a3c323 Remove some occurances of percentage 31393439 Remove capital_available_percentage and raise instead f6f75072 Fix linelength c35f9f8d Verify sell-rate got a value - otherwise downstream code does not work. 65c5bba1 Fix typo in docs 005addf0 Bump ccxt from 1.28.49 to 1.29.5 74088ba4 Bump plotly from 4.7.1 to 4.8.1 b06c1dad Bump mkdocs-material from 5.2.1 to 5.2.2 d2b7016d Add stop_loss_abs ... 6dec508c Add new fields to tests adde1cfe Add stoplosss_ratio and initial_stoploss_ratio 09169330 Correctly call show_backtest_results ceaf32d3 Extract backtesting report generation from show_backtest_Results f202e09b Extract conversion to trades list to it's own function 123a556e Better exchange logging 4087161d fix broken test dc7f0f11 Add api-server to default config samples 7ad1c7e8 Allow lower verbosity level for api server cc90e7b4 Show "No trades yet." when no trade happened yet 91f84f1a Fix typo in close trade message a0d6a72b Update docs/configuration.md 90844964 Disabledataframecheck is not in internals and does not belong there 48915d79 minor: Fix docs fe40e830 fix #3401 376c536d Revert "Add disable_dataframe_checks to strategy templates" a9c57e51 Add disable_dataframe_checks to strategy templates 97905f86 Add missing fields to to_json output of trade 28b35178 Update doc wording 57e951db Add orderbook sell rate to sell_rate_cache 76ce2c66 Document FTX subaccount configuration f187753f Add ccxt_sync_config to simplify ccxt configuration 6b594739 Version bump pandas to 1.0.4 7ea59b6d Update comment 2ed10aeb Add to missing point in documentation ea5daee5 Allow changing severity of strategy-validations to log only. a4cf9ba8 Move check for position for StaticPairList to init 43225cfd Update docs/developer.md 46456516 Remove exception handler 1d6e3fea Update /profit telegram message to support non-closed trades 6261aef3 Return /profit even if no trade is closed 909b8125 Update developer.md 7399c7e7 Provide blacklist feedback to telegram 0e8f95ef Improve blacklist adding with proper feedback a4841242 Raise exception if StaticPairList on a non-first position c3206d72 Adjust docstring for IPairList.gen_pairlist() 0e416dc4 Simplify tests 8e89802b Split the generation logic and filtering ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 6 years ago

FreqAI - 2020.5

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

bash 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 ``` 95780cb4 Version bump to 2020.5 7df78699 Plotting should not fail if one pair didn't produce any trades cb40e850 Add question template ... 18a5787a Reorder typing imports b2125bd6 check for None to allow 0.0 profit f4af4cc2 Small formatting improvement 8c87fcda Rename PricingException to PricingError 16cd1f06 Rename get_order_book to fetch_l2_order_book (aligning to ccxt) d09a3478 Add tests for pricingexception 7a7b26e8 Add exception handlers for orderbook logic 76e4e589 Introduce pricing exception bdf795b8 final cleanup - use different cache image for now 3e3cce45 Use pct instead of _perc 448546b0 Some cleanup in script 2f596f73 Use cache correctly 27e0c260 Add comment to ensure we're not accidentally removing this again 500ce501 Switch to docker experimental ... 7f5feab5 Fix notifications, build ... 571d61de Cancel previous automatically? 4fbd2deb Use correct image a7c0e86b Test rpi using buildx and dockerfile.armhf 9f573481 Fix #3378 18d25878 Address feedback abf79e4a Use temporary variable to clean up code 6a9a8f92 Rename some methods, improve some testing 462c35cf Move stats generation to the top 46f1470e Fix failing test 027ea64d Fix docstrings, extract strategy-list results db257e9f Rename method to be public 18a2dad6 Extract data generation from generate_text_table 0917b17e Refactor result_line to return dict 5c5dce52 Bump flake8 from 3.8.1 to 3.8.2 1c9103a1 Bump ccxt from 1.27.91 to 1.28.49 781de767 Bump mkdocs-material from 5.1.7 to 5.2.1 6eba7186 Bump pytest-cov from 2.8.1 to 2.9.0 e1362755 Add test for sell_reason_stats 876a9e4f finish refactor of sell_reason table d17300fd Refactor sell reason stats to return a dict 9d1ad70b Split optimize generation from printing 8217d92a UPdate version question e138f9b2 Apply suggestions from code review aa004fa8 Fix typo in label c5480c25 Split issue-tempaltes bbd7579a Fix more tests 811e23e3 Have profit return time in timestamp 859b619a Align tests to new output 110b5a25 Add timestamp to trade output 73914169 Update issue template 046202fd Fix typing circular dependency 073d9d38 Update readme.md with adjusted sequence 98db1d52 Reorder new commands 43e2bce6 Update readme with current command list 1663a679 Reorder list-arguments 33b270b8 reorder more arguments fcae48d5 Some reordering of subcommands cd0bf96c Improve pairlist tests 1f386c57 Don't start plotting profit without trades 1a984ac6 Explicitly raise ValueError if trades are empty 3b5ccf2e Fix documentation link a11651ae Correctly test cors 4f0d9281 Introduce self._enabled in pairlist handlers 7e435743 Refactor filter_pairlist() 2fbd31f5 CORS - allow authenticated responses 2498fa5a Bump scikit-learn from 0.22.2.post1 to 0.23.1 696c7e87 Use proper logging (using the Filter's logger) e96e28df Refactor verify_blacklist() a8b1dcf3 Minor: cleanup in get_signal() 4c4fb0c9 Cleanup in pairlistmanager d8352bd6 Fix tests for SpreadFilter 30d1a858 Adjust docs 2c6c287c Address comments made in review 115586a5 Introduce freqtrade.typing 6951b20a Do not throttle with DependencyException in retrier 8bdd5e71 Minor: correct import of retrier 0c8aff98 Make flake happy a0c9f7ba Bump scikit-learn from 0.22.2.post1 to 0.23.0 627c5059 Move create_pair_list to pairlistmanager f54dc7af Make flake happy cc28aae5 Fix the links again 5a9a3135 Adjust empty f-strings to be non-fstrings d57ef6a2 Pairlist Section reworked 601cbd12 Bump ccxt from 1.27.49 to 1.27.91 ff8e85f2 Bump sqlalchemy from 1.3.16 to 1.3.17 7d80f8d2 Fix links in docs 37a10d1d Bump joblib from 0.14.1 to 0.15.1 a447efbe Bump mkdocs-material from 5.1.6 to 5.1.7 37fd675a Bump flake8 from 3.7.9 to 3.8.1 51c0639e Update tests/pairlist/test_pairlist.py 503a8a82 Simplify sd_notify usage 287e8baf Add/adjust tests 4bfab5e2 Add ShuffleFilter 64b8d8c7 Use correct Return hint 943a2a08 Improve daily API format 16622bbf Cosmetics in pair lists ae69d310 Cosmetics in IPairList 97c50f86 Cleanup pairlistmanager 285bc251 Improve testcov for default check_*_timeout methods 2074d986 Update test to verify we're not spamming messages dd55d2ee Reduce spammyness of parcial cancel orders 1e76bff1 Add sell_order_status to keep track of cancellations ce185a3b Remove pairs with no ticker available when it's needed d457542d Fix PrecisionFilter baf5f4f2 Update freqtrade/constants.py 5f2a8716 Add missing module fed75d87 remove --cancel_open_orders cli switch 7a11219b Reword some documentation strings 22a08768 Add test for cancel_open_order e7c11ed2 Fix fetching timeframe (failed in backtesting) facaaabc Rename _refresh_whitelist() f8b01f5a Make flake happy 035a12ce Move _create_pair_whitelist to dataprovider bf257469 Introduce datatype for informative pairs c3f3242f Add tests for cancel_open_orders_on_exit 1b3864eb Make flake happy 61f6acb5 Add cors support - needed for UI ac076ee0 Update docs/strategy-customization.md d84cb3be Improve test 06b12c0a Add warning to docs for ticker data 323b4919 Add description and example for dp.ticker() to the docs 33091f95 Bump python from 3.8.2-slim-buster to 3.8.3-slim-buster a7b469e8 Add test verifying correct price reduction on limit stoploss orders 92b6d3e2 Adjust test to reflect correct behaviour 143e6f52 Simplify SpreadFilter cbb2ce37 Simplify PriceFilter 2aa80f91 Cosmetics: improve readability 794ed304 Make stoploss an attribute afa7a584 Simplify PriceFilter f0c3a0d2 Simplify VolumePairList 2924b70f Cosmetics in tests/pairlist/ 481f9ba6 Use list comprehension instead of filter() fb92300c Update docs/docker.md 78b81bac Add test for dp.ticker() 38fd361c Add note about PI and docker aae096c6 Handle fetching ticker for non-existing pair safe way ced81266 Minor fix in the strategy docs 255ff6cd Should return False if it's not been cancelled empty 60f26ba5 use update_trade_state also for closed stoploss orders b3dd0a68 minor: fix typo in configuration.md 6ff457e3 Update doc Ta_lib 6e86a477 updated docs fe3ea8e7 Fix stoploss on binance bug 0c3bdd66 Update sql cheatsheet iwth current table structure 63dfe366 Updated docs for #3267 f1367b38 Docs: Fix the fix 77c9334c Use available config object e2b9c248 Docs: Fix sample in strategy-advanced aa25461e Show forcebuy status so it's visible before calling forcebuy. e864db18 Update test for dp.current_whitelist 25807192 Correct log path in doc. c8f3ef88 Minor: Add filterwarning for DeprecationWarning in test 9fbe1357 attached pairlist manager onto dataprovider init for unified access to dynamic whitelist a5bfa551 Fix flake8 mypy bc9efc31 Added Method for accessing current pair list on initialization for dynamic informative pairs a8f523ad attached pairlist manager onto dataprovider init for unified access to dynamic whitelist a379e68c Add new ta-lib wheels 96710d42 Bump mkdocs-material from 5.1.5 to 5.1.6 e38581c1 Bump plotly from 4.6.0 to 4.7.1 43ab814f Bump ccxt from 1.27.20 to 1.27.49 3849b68b Bump ta-lib from 0.4.17 to 0.4.18 306eae6d Bump pytest from 5.4.1 to 5.4.2 9eca268a Fix test d291ca00 Simplify code section 21c2af2b Load jwt_key from config c3f0b5d4 Rename methods to match endpoints b163bb76 Apply suggestions from code review c2224ed6 Fix doc typos 73a14963 Catch exception on cancel_order 2406e20b Update docs/rest-api.md 80faa5fe Add test to cancel sell order d9e4f41a Add documentation for JWt 570c51b0 Fix Typo in telegram Plugin 51d2b817 Use self.fee bc64619f Tests for JWT implementation 8139058f Implement token/login and token/refresh endpoints 0bd2fca4 Update tests/test_integration.py b6a2c389 Adjust tests 7e08fa26 Fix usage of fee value in Edge b72997fc Add flask-jwt-extended dependency d4362ed3 Minor: improve exception handling in exchange 2307495f Update docs/configuration.md 80d367fa Add test for keyboardinterrupt 5272ec85 Add additional test c560de41 Improve exception handling on critical errors 1ba2df79 Ause isclose for comparison, assign filled to variable a62d7495 FIx typo in telegram method 593d13eb Show new values also in Telegram e4023a65 Add some minor things to show_config ffef4bc4 Humanize show-trades error when no database is specified d3a0ab80 Change mock-status to be open when testing unfilled... 98197668 Use filled, it's the safer choice when determining the filled amount. b4aeb93a Add test testing the different ways exchanges may return data f040c206 Use filled in tests 648723fb Use 30min rate cache 5dde6d3f Bump python-telegram-bot from 12.6.1 to 12.7 32eb1c57 Bump mkdocs-material from 5.1.3 to 5.1.5 611b9c88 Bump ccxt from 1.27.1 to 1.27.20 2c352e6b Bump progressbar2 from 3.51.0 to 3.51.3 68f0b105 Bump pytest-asyncio from 0.11.0 to 0.12.0 a14e027a Bump arrow from 0.15.5 to 0.15.6 f7a3bb82 Bump numpy from 1.18.3 to 1.18.4 b38f9ed5 Increase cache for rate limit to avoid delays 2a4c9bf3 Improve logmessage when falling back to wallet amount 889a1537 fix PEP8 690bb764 hyperopt csv export - add params 1c9c7293 Adjust trade-ids param e92d3867 Fix failing test 81397874 Remove commented mock 72282a22 Add explicit test for fee_conditional 58168336 Add test for apply_fee_conditional 38c49493 Align applying of fee when comming from orders or trades 7dcef58f Add show-trades to documentation 1066a450 Add test for show_trades 56bb5f7a Add show-trades command 78b3d848 Add typehint 021e2b58 Support partially cancelled orders for fee calculation 737fc6d1 Fix bug when querying side 71c90422 Add explicit test for fee_updated 6d620ba1 Verify if fee for this side has been updated 6b33d5af Fix fee-calculation for dry-run orders bd51cd33 Cancel all open orders after receiving /stop or ctrl+c 509f38d3 Use non-deprectated parameter for progressbar 40d4949f Don't handle trades if they've just been closed. 7558e4bf Split fee detection from trades from general logic 371100a9 Update fee handling a2ff6326 Add update_fee method to persistence fdcc507f Fix integration tests b93d33a9 Fix mock order dicts db8fb39a don't use trade.update directly! 59bafc8d Implement fee rate calculation 45c97fde Use correct typehint for extract_cost_curr_rate f8f794a8 Simplify fee-related tests 63b55658 Add ticker to dataprovider e74ed0ba Add tests for fee extraction methods 2e4dc6c2 Exchange should return fee dict for dry-run orders a867d40e Move fee_methods to exchange d3b9f4d3 Add extract_cost_curr_rate 6d7a3a0c Extract more logic into order-has_fee b125dd37 Extract order_has_fee method 7936120a Adapt tests to support new db fields dec1b107 Add fee_cost and currency columns 38c6ba6c Update setup.py 9152e769 Add skopt version check into setup.py 69b44234 Update docs/backtesting.md 74281a16 Move to the last point and clarify further 1a6ddfca Be clear on evaluation logic during backtesting 726e52aa Use skopt model_queue_size instead of custom hack c6787d7e Do not use 'trials' in commands c2683504 Hyperopt cleanup, do not use 'trials' a01ed170 Improve hyperopt-list logging 3754bf46 Change wording in deprecation messages fb8a85da Disallow VolumePairList from backtesting for now 9fa21628 Deprecate keys other than quoteVolume d1a24db6 Remove deprecated pairlist and binary e8530c36 Remove pairlists from hyperopt too (it holds a reference to exchange) 57345476 Document pairlists for backtesting 89878590 Enable pairlist parsing for backtesting and hyperopt 7aba9bc6 Update freqtrade/data/converter.py 46f1d1f3 Failing test might be incompatibility 9d7ad23d Fix test leakage eab6c9c5 Fix message 0d51383b Format logmessages correctly 5739ee6e Add test for trades data conversation 437d4cda Add test data for trades ba03d969 Test 5s offset on since ff9caf79 remove trade duplicates in datahandler 0506caf9 Implement trades_remove_dulicates 59f1a061 adapt exchange tests to use lists instead of dicts b95e9fe3 Fix mocks to return correct things bac0eaab fix convert to ohlcv d76bb1cc Use List of Lists instead of list of Dicts for trades data 1659ddcc Add conversion function from fetch_trades to list 8bfbbac7 Add default trades columns ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 6 years ago

FreqAI - 2020.4

Highlighted changes

  • Implement callback for custom handling of order timeouts within the strategy
  • Show progressbar in Hyperopt
  • Properly show version when running in docker container
  • Fix strategy leaking when using --strategy-list in backtesting
  • Improve handling of cancelled orders (especially when cancelled manually on the exchange)

How to update

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

docker-compose

bash 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 ``` abbb3254 Bump mkdocs-material from 5.1.1 to 5.1.3 52c92a19 Bump pytest-asyncio from 0.10.0 to 0.11.0 2122384e Bump progressbar2 from 3.50.1 to 3.51.0 77a2ff89 Bump ccxt from 1.26.53 to 1.27.1 e928c5fd Update docs/hyperopt.md 255a43c9 Update price timeout example e1a347df Use subcommand, add 3rd line deb14e0c Update "final" message in setup.sh a3a045db Add small section noting that a strategy file is always necessary d9f255a6 Fix asterisk printing for csv output c230a94d Fix #3065 2d994f6f Better printing of asterisk 6e5f0869 Remove another unused method 5c012d79 Remove unused method 9627604e change wording of log message f4995780 Verify last is not None - to avoid crashing 461b0ef7 Add test verifying we're not reintroducing this in the future 662ec1cd Update wording in expectancy docs and add example adf0bb69 Update sql cheatsheet to allow manual closing trades correctly 6b53197d Fix documentation to use --logfile, not --logfilename (which does not exist) 87f1060a Default docker to log into log-dir a7249f38 Bump ccxt from 1.26.32 to 1.26.53 597f053a Bump numpy from 1.18.2 to 1.18.3 84d09eb9 Bump questionary from 1.5.1 to 1.5.2 d395d7ac Bump mkdocs-material from 5.1.0 to 5.1.1 4742fc66 Bump urllib3 from 1.25.8 to 1.25.9 76dd388b Bump pytest-mock from 3.0.0 to 3.1.0 c775d651 Update typehint for cancel_order 2f60d9ca minor: fix typo in the docs 506781f4 Reword hyperopt install docs 0273539f Remove exceptionhandler, this exception is handled in cancel_with_response 55af8bf2 document to install hyperopt dependencies 1069cb36 Use cancel_order_with_result when cancelling orders after timeout 5e3e0e81 Add tests for cancel_order_with_result 800891a4 Add tests for cancel_order_with_result fc684b00 Ensure deleting filled is not raising an error if filled does not exist 1f70fcfa Update logmessage d36e2cf6 Fix random test failure in hyperopt 16a810a0 Bump jinja2 from 2.11.1 to 2.11.2 83147592 Bump ccxt from 1.26.12 to 1.26.32 99f3e9ed Remove wrong comment 33b6c7de Add tests for price_one_pip 36e714a7 Add price_get_one_pip filter ac008a47 Remove obsolete comment in tests 2b7376f6 Implement log-filtering for all pairlists 1b2bf2c9 Add test for cached log method ceca0a65 Simplify cached stuff to only what's needed 13ee7a55 Fix #3166 5d876ca0 Use log-spamprevention methods 7c15375f Add log_on_refresh - using TTL caching to avoid spamming logs cfe1e487 Improve testcase for cancel_order_empty 55a052bc fix typo in comment ddf37ef0 Add test to demonstrate that the dataframe is not changed a1d2124e Bump ccxt from 1.25.81 to 1.26.12 a166fc88 Bump python-telegram-bot from 12.5.1 to 12.6.1 fb0d76b9 Bump cachetools from 4.0.0 to 4.1.0 cfcce0e6 Bump mkdocs-material from 4.6.3 to 5.1.0 350b4d5e Bump coveralls from 1.11.1 to 2.0.0 eac4dbcd Bump sqlalchemy from 1.3.15 to 1.3.16 4ee0cbb5 Reset index to correctly gather index 952d2f75 have version-detection fall back to freqtrade_commit 2c1c1c7f Update freqtrade/optimize/hyperopt.py d9e54ab7 Update freqtrade/optimize/hyperopt.py c03f637f Improve safe_value_fallback test f39706ca Fix #3130 - when corder['remaining'] contains none-type cbf5bf67 Add safe_value_fallback function 346e09fe Add test verifying that cancel_order with empty remaining is causing the bug 4707484a Fix issue with colring enabled + styling 5cff72a4 Improve logging to ensure which branch is used for buy order cancels 02192f28 Small stylistic updates 492c2799 Rename rest-client script history to trades 296c616c Add test for api-trades call bdc85ec8 Move create_mock_tests to conftest and add test for test_trade-history 132f5f73 Update hyperopt.py c95906cf Update hyperopt.py 200111fe fix method return value 2444fb9c fix broken tests: remove duplicated value 20abb379 trim trades to the available ohlcv data before plotting profits c1f95950 fix broken tests d5609d49 Changed back to progressbar2 for better handling of logger. Coloring still needs some work (bug + what colors to use) 815660c0 fix tests be76e3c5 Bump python-telegram-bot from 12.5 to 12.5.1 0b30cb7f Bump pytest-mock from 2.0.0 to 3.0.0 144d252e Bump flask from 1.1.1 to 1.1.2 5de7ee3b Bump plotly from 4.5.4 to 4.6.0 a1e81a51 Bump ccxt from 1.25.38 to 1.25.81 6256025c various adjustement from PR discussion 8555c5b2 fix return value 15c45b98 removing whitespace 0a14d5ec trades history RPC 41d5c40f Correctly test drawdown plot 4e907e23 Use timeframe_to_prev_date to move trade-date to candle e204170e Fix max_drawdown bug finding low before high! a99c53f1 Add test showing that high is before low d4dde011 Add test c465552d Update comment to mention .copy() usage de471862 Use .loc for assignments 3fcd531e Copy dataframe in interfac.py (reduces memory consumption) cf6e6488 Fix filename handling with --strategy-list 45fb4d25 use equality instead of index for row lookups 54d20cb8 Plot percent correctly d8d6fe35 Bump python-telegram-bot from 12.4.2 to 12.5 2de10d4c Bump ccxt from 1.24.83 to 1.25.38 7e60e054 Bump flake8-tidy-imports from 4.0.0 to 4.1.0 7e1719cf Bump prompt-toolkit from 3.0.4 to 3.0.5 f1b92e25 Improve wording of documentation a5d00ce7 Remove defaultstrategy occurance from docs 83cc121b Add tsts for assert_df (ensuring it raises when it should) cd2e738e Add test for assert error 0887a021 Adjust tests to pass validation 78aa6582 Remove unnecessary test (it's a copy of the remaining test) 3ef56802 different exception messages 95011919 Remove questionable handling of orders 3c1b155e Remove filled if amount is modified to suit fee structure 1e2fadbc Fix failing test f04f606b Updateing order amount should use filled - not amount if possible 19e5dbdd Add filled to all orders f3103be1 Fix test 700cedc5 Unify handling of open orders to update_trade_state 7c47c6e3 check for timeouts before exiting positions 270ac2e8 Add check_order_cancelled_empty method to exchange 9c351007 Provide reason for cancelled sell order 1817e6fb Combine real_amount updating into one method 91b058cf Fix typo in tests 0f53e646 check that the strategy dataframe matches the one given by the bot 57371399 Small fix 1a59fc11 doh df1ae565 clean-up 9387ed92 fix for empty lines 40a413c5 More remove of progressbar2 755763ec Update requirements 81cbb925 Switch to TQDM 3a8b68c0 Initial work on progressbar 0f2d7716 update docs 4d8430c6 Use string typehints to avoid import errors cd54875f Add documentation link to advanced functions 79114817 Add callback functions to new-strategy --template advanced 7736f8d0 Add tests for fallkback eda77aee Add render_template fallback a030ce93 Reformat if condition d44f6651 Fix small parenteses bug 47e46bf2 Add second example using dataprovider and current price e37f055d Improve some tests 9301f81f Add test for user-sell_timeout handling 634e7cc3 Implement handle_buy_trade_customcallback 8cd77b2e Add some tests for strategy_wrapper 365fdf4c Add docstring to strategy wrapper 4a188525 Fix documentation note syntax 63502ed9 Add new advanced-strategy documentation file bc30162a Add some documentation 135d9ddf Fix test due to changed dry-run cancel order 6c01542f Ad check_sell_timeout 8c1a9332 cancel_order should return a dict 49dcc561 POC for check_buy_timeout 2816b966 Create strategy_wrapper to call user-defined code with ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 6 years ago

FreqAI - 2020.3

Highlighted changes

  • Use Coingecko instead of coinmarketcap as FIAT provider
  • The hyperopt-list subcommand can now export data in the CSV format. Use the new --export-csv option for this.
  • Improved Configuration parse error handling, inluding trying to highlight the erroneous section of the configuration
  • profit_close_abs column added to the database (allows simpler analysis)
  • The plot-dataframe subcommand does not require a trades file (usefull for developing a strategy visually). Trades can also be skipped by using the new --skip-trades option.
  • The plot-profit subcommand now shows the max_drawdown start and end.

How to update

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

docker-compose

bash 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 ``` da191e4a Version bump 2020.3 6f687c97 Update docs/configuration.md dfac7448 fix typo d9a5e1cd Update docs/exchanges.md be41981e Test warnings with filter always on cb1bc5d5 Bump pandas from 1.0.2 to 1.0.3 98dc4b4c Bump ccxt from 1.24.31 to 1.24.83 de91e169 Bump tabulate from 0.8.6 to 0.8.7 f4a69ba5 Bump numpy from 1.18.1 to 1.18.2 d581b7e2 Add fallback if no error could be determined 8f7e113d Add additional test 6c55b40f Add test verifying config printing 45aaa8c0 Parse and show relevant configuration section acd40218 Update max_open_trades documentation f14c496c Remove calc_close_profit from RPC efd94c84 Add example notebook to gitignore again 2c434e9b Add close_proit_abs column e30faf8c Remove partial candle documentation 942792f1 updated as suggested 3e0ffdce Adjust tests 5f9479b3 Edge import cosmetics 5e702f68 Verify cancel_order returnvalue is a dictionary ecf3a3e0 Add test validating different return values 3e1bef88 Fix flake8 error 0920d6fc Update freqtrade/data/btanalysis.py 05250ba6 Update docs/plotting.md 4f46fb9b Add template and jupyter files to release 62d44925 Bump mypy from 0.761 to 0.770 7a7530d5 Bump sqlalchemy from 1.3.13 to 1.3.15 3eee0c43 Bump pytest from 5.3.5 to 5.4.1 8cfff40f Bump plotly from 4.5.3 to 4.5.4 0b341757 Bump ccxt from 1.23.81 to 1.24.31 e8a92cb3 Bump pandas from 1.0.1 to 1.0.2 06198c00 Missed configuration.py 8c33e07d Update based on comments 3d4664c2 Remove unnecessary import e1b08ad7 Add docstring to store_backtest_result fe50a0f3 Move test for store_bt_results to optimize_reports e95665ce Make backtestresult storing independent from printing a13d5816 Move backtest-result visualization out of backtesting class 6106d59e Move store_backtest_results to optimize_reports 328dbd39 Remove unnecessary parameter to generate_text_table_sell_reason 0f1640be convert exportfilename to Path when config parsing 2c0980aa Tests cf7e80f4 Docs and logging 27faf12f Fix if no file exists 308d8fe2 Remove deprecation warnings due to date conversion c56cbc21 Remove indexing warning in edge 59fadabb Fix merging a7ed51c6 return back the name of the hyperopt data file ddfe5b5f dataframe -> df_analyzed in plotting b2952cd4 remove redundant dict ebb0187f dataframe -> df_analyzed in backtesting and edge 6f67b8d9 iCheck after clean_dataframe, too 129a88d5 Extract emptyness check to it's own method 2b1c1469 Add default volume > 0 filter 73c19da4 Adjust handling of zero stdev in loss functions 1b6e7764 Add test for hyperopt 81b6a950 Adjust test for backtesting f7ad6c20 Do not allow unlimited stake_amount for hyperopt a046c482 Apply suggestions from code review f148b5f7 cosmetics in lambdas 42038da7 Update docs/configuration.md bd158eef Fixed loggin 2f5fc731 Removed overwrite option 3eaae466 check again for emptiness after trimming dataframe e0afbcd4 Additional warning about order_book-max 74a17c7b Clarify warning in the documentation 5da63d39 Reduce default order_book_max to 1 856ba203 Update hyperopt samples docstring c0496517 whitelist_for_active_markets should not remove blacklisted items 5cbf325f Allow different loglevels for message 4cc0d3db Bump plotly from 4.5.2 to 4.5.3 23127b8d Bump scikit-learn from 0.22.2 to 0.22.2.post1 46763e14 Bump prompt-toolkit from 3.0.3 to 3.0.4 09c25faa Bump ccxt from 1.23.30 to 1.23.81 c7b2f173 Bump wrapt from 1.12.0 to 1.12.1 cb419614 Spelling miss 4ad93ed6 Changed output for null columns 3208faf7 Do not use ticker where it's not a ticker 281cf577 Remove unsupported FIAT d51bb9ac Update conda environment file 1b303839 Update comment acea49be Fix tests / test mocks df5adb6c Exchange coingekko for coinmarketcap 93fc14d7 Exchange dependencies to coingekko 78908e24 Fix travis build failure b8d05d87 found instance of config get without default 05872567 minor create_trade() optimization 44744823 unifying get_sell_rate with get_buy_rate f0d56e23 PEP8 fix 91db75a7 Added tests and updated doc eee57274 Adjust webhook docs 7a3660cd Adjust webhook tests 97b194a4 Throttle may take longer than .10s on slow machines 7606d814 Initial work on csv-file export. Missing docs and tests 090d1e8a Alignment and cleanups 2f54aff0 Improve documentation wording for price sides 8de35e1c Documentation suggestions from Review 7652a2bb Updated table layout and aligning better for hyperopt 9d8970a7 Add test and formatting to drawdown 53dcb5d5 Fix logging expression 9bebc9ba Fix powershell comparison 720ed0ed Remove flucky test assert d9e83cc4 Run CI on windows python 3.8 33a63562 make drawdown function less restrictive 88e7cab5 Add max_drawdown to profit plot e050511d Add test for max_drawdown calculation 3479f7d9 Add max_drawdown function 4aca8d7f PEP8 fix 399c4191 Changed table formating. Adding some code to align hyperopt table generation. WIP 52cd5f91 Better use enumerate: more correct and more pythonic 45c94967 Do not run optimizer for 'jobs' epochs for the last iteration a7d47558 optimize calculation of current_jobs 92425642 Fix config_jobs 0e4862b0 Added logging if argument is miss-configured 7713cfeb Corrected logic for -j + and - argument 6e2290c4 Allow last to be empty - a17f3fb8 Bump plotly from 4.5.1 to 4.5.2 485075b8 Bump scikit-learn from 0.22.1 to 0.22.2 e204e327 Bump ccxt from 1.22.95 to 1.23.30 77b7f95e simple code styling fixes f08c7eed Changed jobs to be dynamic for last loop 75b4f1a4 Fix alignment of higher values 379275e2 Updated tests 267416ec Changed test for new table printing e89fd332 Fix for more arguments 7a4edb1c Fix: When total epochs is less than cpu cores 23ae0653 Changed table output to match hyperopt-list command 60f04cff Simplify expression 18d724f7 Adjust wording of supported exchanges d7373be5 Add official support for Kraken 4c39f360 Add note about InvalidNonce to documentation 848054d1 Fix jupyter notebook example - f25adf3b improve and correct release documentation 9336d8ee Try fix random testfailure 60579485 fix empty stake currency problem 5277d719 Add test for empty stake-currency 349aa2f9 Added dynamic print table function to hyperopt bee8e92f Final changes, use sqrt i.o. statistics.pstdev e411717d No percent where ratio is to be used a55964a6 we Must parse --dry-run before setting run-mode 5a02026f Add test validating behaviour 15e59654 Minor change to standardize table style. This PR will target commands. e5a9c814 Add 0 entry to enhanced ROI example 55d47119 Changed table style of backtesting and alignment of headers bbb438bd Bump python from 3.8.1-slim-buster to 3.8.2-slim-buster e5ec9749 Logging should be initialized first b6839289 Add price_side to sample config files 0fea3a7e Some final polish to configurable_side 3c5e716d Update some documentation regarding price_side 8edc3eb5 Use generator to generate sell price scaffold testing e1cb6f4a fix and improve tests in test_freqtradebot e7b98913 Adapt rpc tests to corrected price side e4b29491 Change buy_rate calculation to use price_side 5f712320 Refactor get_buy_rate to use rate variable de48a697 Use price_side for get_sell_rate f91d7bea Fix constants wrong parenteses f38accb7 Return empty string if no quote / base currency can be found 4e218be5 Don't use markets[pair]['quote'] 1021ffa1 Apply suggestions from code review 1e869b86 Update checkout aciton to v2 af4469f0 Convert to str to avoid errors df49b98c Implement wording-changes ce2e039e Update docs/configuration.md 76c449c0 volume_pair_list_extra_doc_infos 7d7318a3 fix_wrong_order_type cfc22577 Add timeframe_to_minutes to ROI documentation 31ac4598 Fix last occurances of pair splitting d34515a5 Remove constraint to have pairs in base/quote format e8eaa892 Use get_base_currency instead of splitting by / e9448dc5 Add tsts for quote and base currency cd7efde6 Fixed coloring so it's only targeting the values not the table borders 61037ab7 Implement get_pair_base_curr and get_pair_quote_curr 3e4f6634 Move pairlist validation to exchange (we need to use .quote) from markets 6581ba56 Use markets.quote to validate 23bf135b Alignment of table content, changed coloring, changed 'Best' column to show if it's initial_point or best 7eb62ed3 Remove old print option for hyperopt-list and made table as default 09226fd5 PEP8 correction e7b12704 Added test for details 09a1c9ee fixed docs description of hyperopts 41b4fa3b fixed two more typos df26c357 doc updates 58554540 Changed tests 2058b492 Added function to print hyperopt-list as table using tabulate 674898bd Fix usage of vars in the commented out line 42dfda92 Adjust docstring fbe5cc44 Use statistics.pstdev 1e84b277 Fix values of downside_returns 161dd1a3 Rename risk_free_return to minumum_accepted_return b2328cdf Do not subtract risk_free_ratio twice 9ec9a7b1 Fix t_index to be normalized 6b279f29 fixed test e8b9d88e moved line for total_downside a46b7bcd more fixes... 951a19fb added tests for both sortino methods be34dc46 fixed bad commit 9bcc5d2e fixed downside_returns to read from profit_percent_after_slippage 728ab0ff Added both SortinoHyperOptLoss and SortinoHyperOptLossDaily b56a1f06 initial push of sortino, work not done, still need own tests deb0b7ad Added both SortinoHyperOptLoss and SortinoHyperOptLossDaily 44d67389 initial push of sortino, work not done, still need own tests ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 6 years ago

FreqAI - 2020.02

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

bash 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 8ae0f99a Remove duplicate section a29653b5 Wording changes to install docs 2f349e05 Improve install documentation by streamlining the process 23b47b66 Update install-script documentation and reorder installation steps d63aaf3b Bump ccxt from 1.22.61 to 1.22.95 ff69b511 Bump scikit-optimize from 0.7.2 to 0.7.4 4054dec7 Bump plotly from 4.5.0 to 4.5.1 353f722d Bump requests from 2.22.0 to 2.23.0 e545ef56 Wording adjusted in helpstring 0eeafcd1 matched commenting on previous sample_strategy.py f25d6224 modified sample_strategy e04c2dda fixed typo d2181bdd Adjust tests 5ac62444 added keltner channel and uo 29577562 final touches plus b49b9b51 final touches 259dc75a some order and added weighted BB indicator to list ca8e52dc Show heartbeat message earlier after changing the state e2e6b940 copy=False does not make the changes inline anyway, so not needed c651e0ac Fix #2948 3186add8 Use explicit column list for float parsing 7ecc56fa Load ohlcv data as float 2fe7b683 Add tests for cached rates 77ef3240 Implement log messages 97e6e5e9 Implement caching in the correct place f5b4a6d3 Remove fetch_ticker caching d9ecf3e4 Add version and state to heartbeat message d2e20d86 Align heartbeat to throttling logging 269a669a Move heartbeat to worker 881f602f Adjust methods params e0800b7c Make throttle start time an worker object attribute 04aa74e5 Better throttling 945ff09e Use correct strategy path for docker testing 78ee36a8 Use _throttle() in stopped state instead of sleep() 10668bb2 Update tests/strategy/test_strategy.py 56a06cbd Update strings to f-strings bca5f804 Move divider log message 5adbe3c2 initial search path is optional ... a7342bd9 Fix non-existing strategy loading d22384c7 Full support for kraken stoploss 29b369c6 Rename cli argument 882d0a59 implement documentation feedback after review 09d89fbf Fix last test d91b9d12 Fix some tests, don't default to freqtrade/strategy for imports 16342976 Move strategies to test subfolder e6dd463c Revert versioning 1172c958 Use different versioning scheme 0b33b798 Add pypi build step 582b5904 Bump python-telegram-bot from 12.4.1 to 12.4.2 0fd3d74f Bump scikit-optimize from 0.7.1 to 0.7.2 9435950f Bump mkdocs-material from 4.6.2 to 4.6.3 500e1c77 Bump wrapt from 1.11.2 to 1.12.0 c6a3038f Bump coveralls from 1.10.0 to 1.11.1 212d20ed Bump ccxt from 1.22.39 to 1.22.61 bec86b13 Add github actions badge 3787ac7b increment limit to adjust to FTX defaults (1500 candles) 180939a9 winner, readability, with brackets as fix 6e71f2f1 my fix 6139239b Address points stated in comments 87b50697 Fix edge documentation rendering fdd36229 Docs adjusted 42a5d78e Wording (duplicate, not duplicated) ddea4b93 Fix test e8c0a0bc Make mypy happy 1cf19133 Added missing failing strategy 29d9b6a4 Add test for enum failed 93f9ff1b Fix existing test 06b84b40 Remove redundant code 47a91c9d Remove green color e598c769 Add colorization f024cc40 Fix windows test failure ecca7164 Fix small issue d5a298bb Add sentence from suggestion 5efbdd25 Properly default to user_data/config.json if it exists c92e1d97 Attempt to make mypy happy 1bc26fd0 Add printing statuses for list-hyperopts be4a9b5f Lowercase freqtrade 9dafc2f3 Load config.json from user_data first a2d7f8a7 Split tabular printing into sep. helper function 9cbf8c5f Add status for listed strategies 20c21b42 Move rpc send to be after db session add/flash 36ef5c6b Get rid of delete_trades method in Freqtradebot 749463e4 Adjust message in main.py a0a14a10 freqtrade/templates/subtemplates/exchange_bittrex.j2 02148a1d Fix datatype styling issues a93bc74e Update documentation ... ccc92397 Reduce indentation of help 86592c3b Fix /help from telegram 81f84981 Initcap Freqtrade 634bf2b1 Docs: Fix checking of runmode 007cc944 fixed tests to send refresh, since its no longer defaulted f09af888 modified get_buy/sell_rate refresh to true on notify_sell_cancel and notify_buy_cancel 2e3b8cdb fixed flake8 issues on /help output f6db784a removed default to refresh argument in get_buy_rate and get_sell_rate 47874a45 added logic to differentiate sell orders with double asterisk 2efa1c16 Revert data-location section 483cba45 Fix last occurence of data_location d6b93975 Fix typo in datadir key 4f3376e2 Do not instantiate directly DefaultStrategy in tests 539343b2 Adding 2 more filter options for completeness 7be9f006 Update data-analysis documentation to properly initialize configuration c35fe2c3 Add link to quick-start-guide d1c3eabb Changed commands to use "check_int_positive" 899de8b2 modified tests for double partial call cde1b2b5 readded rpc status message for partial buys 5f4c209f fixed one more occurence of executed buy, and test 4fedf1e5 default refresh TRUE on get_buy_rate and get_sell_Rate 5b4d8d69 Adding --min-trades and --max-trades for hyperopt-list fc295649 Fixed messages and readability 867b736b Fixed to Executing Buys & Sells 7f4b90c6 fixed actual open_rate in notify_buy_cancel f99d1c38 fixed open_rate instead of open_rate_requested 29f7c507 Fix usage of an item from BTContainer in tests 62bcb3d7 Fix tests in test_history.py f2520c11 Used wrong utils.md as base c924e4d5 Updated based on feedback: - Profit commands now use float - Compatible with --best - Corrected wrong information in docs 05128d21 Suggest to run flake for scripts faf19eda Break the old binary file so users are forced to reinstall d07c6980 Fix tests for hyperopt_loss 0ac0ca74 return back hint for running mypy d69ddd2a Apply suggestions from code review 7bb02d0c Update docker-docs wording 83644ce5 Fix mypy type errors in tests 550f9fc8 Bump python-telegram-bot from 12.3.0 to 12.4.1 6b4094fd Bump mkdocs-material from 4.6.0 to 4.6.2 88f2ad1e Bump pandas from 1.0.0 to 1.0.1 90ee82ac Bump ccxt from 1.22.30 to 1.22.39 4af25ec3 Adjust mypy and flake commands f7c74e55 Fix wording 5bf4c586 Update hyperopt_commands.py cc3f65d0 Fix typo c83da7ca Add section about order types into Bittrex Exchange-specific chapter 40abdd26 Suggest changing strategy c89a3222 Fix SharpeHyperOptLossDaily eb3783dc Fixed a blank line issue :-( c648ec7c Added test cases and fixed a minor bug c7ba85c2 Add tip on running order types for Bittrex b536d501 Address PR Review c96acd6c Fixed to pass PEP8 2796d3d8 added missing tests to increase coverage 636bd5ac Added filter options to "hyperopt-list" in order to easier find epochs. 1a9787ac Add validation for data-download relevant settings 879b5138 enhanced method description 4fad7a46 fixes in webhook-config docs f3b11616 wide notifications fixes c4031761 Don't validate exchange for data-download subcommand 34f04668 Add template for bittrex 52f41871 Allow exchange templates to configure outside-options too f508324f Update docker documentation to be easier to use a1fe3850 Improve docker-compose file to be ready to use 61ced5e9 Fix typo 28184201 Align sample_hyperopt_advanced.py to hyperopt_interface.py a893f70e Replace NXT with XRP in config.json.example aa2cb937 flake8 :) ff819386 added draws to backtesting tables, reduced len of some labels to help fit this without increasing total width f57bd6b6 Keep the docs clean for unexperienced users 418e7ada Highlight syntax in advanced-hyperopt as well 2034527f Update docs/strategy-customization.md 412f5d68 Add description to hyperopt advanced doc chapter 2846f945 Add description in the docs 739acaa4 Wordings improved 5b00eaa4 Updated Strategy Summary table to match other backtesting tables (#2864) 9639ffb1 added daily sharpe ratio hyperopt loss method, ty @djacky (#2826) 586cbc75 Add considerations for dry-run 6866f638 Fix merge-error aa54fd22 - added spread filter - minimum value to volume pairlist a707aeb3 Fix implementation of rolling_max 91b4c966 More consistency changes... ffb53a6d get rid of typing.cast() cbabc295 Don't convert to datetime - but convert to datetime64 instead 684cb549 Add pair to exception msg f6c09160 make sure asyncio_loop is not initialized within ccxt code d5f70400 Bump pandas from 0.25.3 to 1.0.0 3938418a Bump scikit-optimize from 0.5.2 to 0.7.1 401748e9 Bump ccxt from 1.21.91 to 1.22.30 bc2ae3e8 Bump pytest from 5.3.4 to 5.3.5 7b8e6653 Bump jinja2 from 2.10.3 to 2.11.1 df249c7c Remove unclear comment d0506a64 Use correct matrix variable c8960ab6 Only run coveralls once 53759600 Allow derived strategies 2b69e783 Fix failing CI test 84156879 Fix NO_CONF_REQUIRED for list-hyperopts d12e03e5 Fix test inconsistency in test_freqtradebot.py cd0534ef Add test 505648fb Adjust docs 857eb5ff Add list-hyperopts command 3fe39a3e Rename constant a5e670b4 Add USERPATH_NOTEBOOKS aeabe180 modified two lines from logger.info to logger.debug cause they're too spammy d6475168 Fix link and lowercase variable 3499f1b8 better readability and more consistent with daily sharpe loss method f3d50008 Add some type hints cbd2b265 Fix small error 321bc336 Run tests against 3.8 4459679c Update dockerfile to 3.8.1 628b0692 Support python3.8 virtualenvs and remove config generation via SED 12317b1c Add some rudimentary tests for questions d1a3a2d0 Add tests for build_config cfa6a3e3 Don't overwrite files c224c669 Small edits to install.md 929bbe30 Link to docker installation from index.md 8796ecb2 Ad example for new-config with answered questions 54512a66 Update help-strings for list-utils c40a4d77 Use exchange_mapping to determine correct exchange-template d69ef438 Add basic documentation for new-config option d038bced fixed some more line alignments c396ad4d Align quotes in same area 907a6115 added rounding to Tot Profit % on Sell Reasosn table to be consistent with other percentiles on table. e2b3907d more consistent backtesting tables and labels 4be3f053 Exclude trading against BNB bases on binance 83baa6ee Add test stub cebf99b5 Implement validation acbf13e6 Fail gracefully if user interrupted question session 2f0775fa Extract build-config tests to new file 940bfbee Move start_config out of build_commands file e250c568 Add Questionaire workflow 49c9258a enhance test dd83cb1b Extract selection generation to a seperate method 68771a78 Remove state attr from Worker c80d8f43 Add exchange templates 122c9163 Add first version of config_deploy 9f291282 Fix small json formatting issue b384ca8f Create new-config command a0b92fe0 removed typo 328a9ffa fixed typo in false statement 4c0e5863 Advise to use https method for git clone i.o ssh f8db7f17 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. 72c273aa Add test for closed trade case 70b9bd9c Verify if trade is closed before acting on Stoploss_on_exchange ea5ac1ef Don't handle stoploss if there is an open regular order a83de241 Check for closed stoploss-orders first f5a44e4f open_order_id should be None when handling stoploss orders 10d9db72 Adjust tests slightly cf933191 move exchange-specific order-parsing to exchange class 7a22aaa1 UPdate documentation to reflect that stoploss-on-exchange is also available for kraken f1629c90 Implement stoploss for kraken e6f19124 Use named arguments for stoploss create_order call 16b34e11 Complete rename of stoploss_limit to stoploss 256fc2e7 Rename stoploss_limit to stoploss da0af489 Adjust tests to pass in order_types instead of rate 8d2e0bfd Move rate-calcuation for stoploss-limit order to exchange 41945138 Converting pairs from filename to pair corrected 4eaaec9d Implement pair_to_filename to datahandler bc6a1035 Introduce pair_to_filename() f82c4346 data conversion, not data conversation 814cc20c Remove potential circular import f4a532ef Pass format to load_data 6b598333 Require dataformat entries in configuration ae1b28aa Remove get_datahandlerclass from package exposes e2a00c03 Document convert options 66d18575 Implement abstract interface 9e4fc00a Add test for convert_ohlcv 70f3ff04 Add test for convert_trades_Format e7054adc Add tests for start_convert_data 28787a00 Move convert functions to convert module 525550e4 Fix typo in parameter transition 68604911 Rename datahandler module to history module b37b5c3d Remove Explicit datadir conversation 9c5b94ad Pass data_format to methods 65f539e9 More tests for datahandler d65c1eea Add some tests for datahandler 8a030e7f Use exists instead of is_file a3144cb2 remove trim_tickerlist baa942ff Don't use function to resolve pairname for test 32c2ce14 Remove last usage of load_tickerlist 4b277afc Remove test for load_tickerdata 5479c671 Clean up some codes which use list-based tests 80dbba12 Remove unnecessary mocks aa39f216 Use load_data instead of a sequence of calls a2567bea Remove unnecessary mock d1b52809 Cleanup history d06777b8 Remove old "load_cached_data" method 7a6476c9 Update tests e4f185f3 Remove 'line' from load_cached_data tests df085a6f Fix small bug and test c648d973 Implement new "load_data_for_updating" method based on dataframes ec8fb5f3 Make no-data warning optional b83487a7 Extract default dataframe columns to constant dbe8f727 Fix typehint 91c70a0e Change to use ohlcv_purge 37c5b689 Move dataframe validation to abstract class e861f05b Move dataframe trim to within jsondatahandler 552c93ab Improve some docstrings b7c1d554 Modify tests to point to datahandlers 9876d126 Use handler for trades 9547d47a Initialize datahandlers 5fca17d7 Allow initializing handler-class just once 416517b0 Move trim_dataframe from history to converter 9d8ea2f1 Replace calls to load_tickerdata_file with DataHandler calls 88fa7fc2 Simplify validate dataframe method 53ee636f Check if file exists before loading 873f5dbe Revrite validate_pairdata to work with pandas db520a09 Trim dataframe, not tickerlist 866908d2 Load and save using pandas internal function 377d59ab Be selective how to load ohclv data for conversation d9e7d64f Split parse_ticker_dataframe some logic to clean_ohlcv_dataframe. 1b90ec58 Use changed pair-handling for providers d923bab8 Remove abstract interface for now 48728e2d Change DataProvider interface to accept pair per method e529a4c2 Fix typehint for get_datahandlerclass eff5cc05 Add default to internals c6d6dbfd Implement jsondatahandler file store 8f214aec Fix "dumping" message to work correctly for .gz files abc6b945 Add ohlcv_store call to convert_ohlcv d804372d Enhance ohlcv_convert method 018e2703 Allow --pairs for convert arguments 2a728ee6 fix bug in find-files 3d4f6208 Allow timeframes for convert-data ef0fcb0e Make data-finding safe f8b8b9ac Convert to Path temporarily 2a6b542b Add second subcommand to allow conversation of ohlcv and trades data seprately c3064dfd Enhance validation constants cd4466a6 Add convert_* methods e5a61667 Implement first version of jsondatahandler 2496aa8e Add convert-data template subcommands

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 6 years ago

FreqAI - 2020.01

Highlighted changes

Balance / Wallet related

  • Introduction of Dry-Run Wallet, simulating the wallet on the exchange.
  • Introduced the tradable_balance_ratio setting - keeping a safety margin of the available balance on the exchange (defaults to 1% safety margin). It also allows to trade half the account by setting this to 0.5. See documentation.
  • Introduced the amend_last_stake_amount setting, which allows lower stakes if not enough balance is available. See documentation.

General improvements

  • You can now use any currency on the exchange as the stake currency. Previously it was limited to the restricted set of 'BTC', 'XBT', 'ETH', 'USDT', 'EUR', 'USD' currencies only.
  • Performance improvements to backtesting - closing a long-standing issue (#1016).
  • Allowing the strategy to set the unfilled timeout, so it can be set in either configuration or strategy.
  • Added the list-strategies command - allowing to list all strategies in a folder.
  • The /balance RPC method will now convert to stake currency, not to BTC.
  • The load_backtest_data() and load_trades_from_db() methods now have their columns aligned where possible.
  • Plotting now allows advanced plot configurations from within the strategy. Consult the documentation for more details.
  • Wallets are now refreshed when the /balance RPC method is called.

Full changelog

cff8498b Version bump 2020.01 c9ee678a Bump sqlalchemy from 1.3.12 to 1.3.13 a3b0f752 Bump pytest from 5.3.3 to 5.3.4 66939bdc Bump ccxt from 1.21.76 to 1.21.91 184a6005 Bump urllib3 from 1.25.7 to 1.25.8 161c06fd Bump plotly from 4.4.1 to 4.5.0 30e3e434 Add notify_status() to FreqtradeBot 33645e45 Minor cosmetics in start_trading 02563019 move setup_utils_config to configuration module 8c9119b4 Add docustring to commands module 2d02c3f2 Split out pairlist_commands a3e9d043 Adjust imports to new place for arguments 7f851ad8 Move arguments and cli_options to commands module a1c684f6 Simplify noqa setup for module imports f347e593 Small adjustments for moved commands e033df6a Move optimize_commands to commands module b254bdfe Move plot_utils to plot_commands 70a0346b Move data-stuff to data-commands 7e233041 Adjust tests to new paths 926bf07d Seperate a few commands into specific files 6e852804 Adjust imports 80ed1c3e Move utils to commands 3f2542fc Move edge-module out of __init__.py a3ac05cc Fix missed mock bd4dd840 Fix type-errors with stake_amount 52f0ed53 Adjust tests f4c7edf5 No args for backtest(), use arguments aad10cee Add threading lock object for /forcesell 58ceda4b update wallets after forcesell f36bc80a Add parametrized tests for get_buy_rate 8a940eb0 Align price finding function name on buy side with get_sell_rate e13045b5 upgrade pip in windows environment 7d2d0235 Fix typo in sell-reason table generation bff0a095 line was too long c1c2717b added missing word in hyperopt loss example 1bf475fa Remove .get calls for dry_run - it's a mandatory property 099bbc5c Fix bug when stoploss_on_exchange in combination with dry-run 6e3336cb Adapt test to verify behaviour of stoploss_on_exchange in dry-run 8d451593 Bump pytest from 5.3.2 to 5.3.3 9474cb17 Bump ccxt from 1.21.56 to 1.21.76 fa1e9dd7 Adjust tests to allow updating within safe_sell_amount 29a5e4fb Update wallets before getting amount 8bcfe4a6 Up log level of safe_sell_amount message 90ed4c66 Cover equal case via test d1bf388b Wallet amount must be compared with >= 6feb68b1 Change feature sorting to tell more of a story f73f0b16 Update comments on backtesting c8806a16 Allow wallet update from /balance 4013701b allow wallet update to be skipped if the value is fresh enough. 4c823f12 Sort imports 1e58cd70 Adapt tests to round price up bea4ad8e Revert price_to_precision to rounding up d7957bd7 add advanced tests for price_to_precision 425ec53b Combine amount_to_precision tests into one 797dc8a4 Add more detailed tests for amount_to_precision c67b2530 Bump ccxt from 1.21.32 to 1.21.56 b3938a86 Bump python-telegram-bot from 12.2.0 to 12.3.0 2f8ed7ed Bump numpy from 1.18.0 to 1.18.1 af366357 Minor changes in the docs 495728f5 Refine docs 5fcab1ee Align method names to internal ccxt names b60d7ad4 Use ccxt.decimal_to_precision instead of our own calculation fa1f9bcd expose precisionMode from exchange class 53abfdbc Use sorted on set instead of explicit list conversion 3519cebf Add test for failing stake_validation a7246ba1 No need to "fix" stake_currency enum anymore 60b47b6e Add tests for get_quote_currencies ca288053 Modify tests to skip stake_currency validations 13274964 Implement validation for valid stake currency 235a10ab Don't suppport <1m timeframes 5faebad8 Don't hardcode TimeFrames - they can differ by exchange. d3de3983 Docs adjusted 83b88e79 Remove Required marks for new settings 3faa2d0e Refine description for last_stake_amount_min_ratio fab19ae3 Implement last_stake_amount_min_ratio e94dfdef UPdate documentation to remove inexisting setting 9713dc8d Ensure wallets.update is called before buy b748ed34 UPdate documentaiton wording 785cd2a6 Rename test module c475729c Extract edge reporting to optimize_reports 989ab646 Add profit % to sell_reason table 7461b5dc Mention custom strategy in features 135487b2 SPlit control and Analyse feature into 2 seperate points cee8f334 rearrange features -- move Run to the top 9559cb98 reworked db34cb1b Do some adjustments to the wording of the index.md section c9b0b4c7 Add plot_config to optional plot c3fd894a Regenerate plots with new settings 3883d18b Add bollinger note 2b3f2e5f Add first version of documentation 6ac7dcf5 Bump arrow from 0.15.4 to 0.15.5 6da97faf Bump coveralls from 1.9.2 to 1.10.0 3c0d1840 Bump ccxt from 1.21.23 to 1.21.32 d846114d Bump scikit-learn from 0.22 to 0.22.1 aabeece4 Bump flake8-tidy-imports from 3.1.0 to 4.0.0 b614964b Bump pytest-mock from 1.13.0 to 2.0.0 888ea58d Add tests for new behaviour d0ccfa19 Explicitly given indicators should override plot_config ca054799 Add tests for amend_last_stake_amount b37f34ff Implement amend_last_stake_amount 7daa5bc3 Don't return None from unlimited_stake - 0 handles this just as well 53499e01 Clearly differentiate trade buys sells (positive and negative) bdda6203 add plot_config to startegy interface properly b5a806de Fix typo and add tests for create_plotconfig 4628024d Adapt tests to new add_indicator methodology f04873b0 Add plot_config to interface 5853b990 make Plot_config the default approach 5d5074ac Implement first working version of plot_config 84ef5881 support dicts as indicators 24aa596e Minor: Refine fee example in the docs e1f89e3a Reword Note in backtesting fee docs 7e7c82cf Small adjustments to relative_stake PR 71dd0386 add tradable_balance_ratio to to all config samples 55041878 Update Backtesting fee documentation 0dd27491 Update documentation regarding configuration of stake_amount f3beaa33 Deprecate capital_available_percentage 6d01653b Adapt test to test more cases with reduced tradable_balance 45583864 Apply get_available_balance logic to regular trades, too 3c798116 Extract `get_available_stake_amount` 4ac1ac7e Warn about tradable balance being applied to the current amount of the balance a8d56b28 IMplement check for unlimited settings 11059e53 Fix missed default minimum in documentation da1fea65 Minor correction to wording of MacOS Specific install doc 560aea87 Remove fiat_currency temporary variable 90744ff5 show percent instead of ratio (!) b48bf035 Add note about MacOS installation c13c11cf Type does not need to be a list 6e615998 Fix documentation typo 94afb7cb Improve integration test with a few additional tests bfef3cf4 Add additional test case for lower balance ratios cba156df Add offset calculation for relative stake maximum limit 64db1f67 Prepare tests to valiate reduced full amount. a47a25ca Refine passing msg params 88efa406 Align the name of a variable to be same for buy and sell parts f15e5e9d Add _notify_buy() 1b8943ac Add documentation for tradable_balance_ratio 9382b38c Fix mypy error 22fcf7b4 Allow empty stake currency in certain cases 20fc3b79 validate config for utils too 9325880f Split config-validation requires 2c8e8d8e Align columns for btanalysis loading 6fbdd6be Remove unused directory from user_data e89fa446 Arrange common section for update trade state methods a9fbad07 Improve docstrings 8cc48cf4 Fix tests where mocks fail now 10ee2362 Extract tests for backtest_reports to their own test module 904e1647 Extract generate_text_table_strategy to seperate module caec345c Extract generate_text_table_sell_reason from backtesting class 18a53f44 Extract generate_text_table from backtesting class 21418e29 Minor: fix comment 4475110d Cosmetics in freqtradebot 0ea44b01 Fix message in setup.sh 26a2395a Include Pair name in exception log message 9d518b9d Add comment and don't hardcode 4 in test 6ebb9017 Improve test enter_positions a88464de Improve some test code fd7af587 Rename process_maybe_execute_buys() --> enter_positions() 84918ad4 Rename process_maybe_execute_sells() --> exit_positions() b00406a7 Make process_maybe_execute_*() returning integers 4d56e3b3 Address some comments made in the review 8e9a3e8f Capture FtBaseException at the outermost level 1ffda29f Adjust improts to new exception location 024aa3ab Move exceptions to seperate module 20abf677 Add Debug "code" for randomly failing test fb3a53b8 Use ExchangeResolver for edge_cli too 4c9295fe Rename Bid-strategy helpervariable to something shorter de23f392 Add trailing_only_offset to template and sample 20a13265 Bump ccxt from 1.21.12 to 1.21.23 df7ceb4c Fix misinformation in /status table 304d15e2 Small corrections d1c45cf3 Update analysis documentation to include kernel installation 04f28ed9 Refactor try/except: handle DependencyException for each pair separately ce84f745 Adjust tests 76260430 Refactor create_trades() 5c39ebd0 Adjust logging b2fb2845 Fix tests after changing output fc98cf00 Address PR feedback - change output to show Filename only d6ca562b Make mypy happy and handle hypothetical case when stake_amount == 0 3dbd83e3 Introduce get_free_open_trades() method 8eeabd23 Move warning to create_trades() ed9cb421 Make mypy happy ef92fd77 Align behavior: check for available in all cases: edge, unlimited and fixed abaeab89 Make _calculate_unlimited_stake_amount() a separate method 243bcb23 Make _check_available_stake_amount() a separate method 86f26930 cosmetics b6d1c5b1 _get_trade_stake_amount() is not private 039dfc30 No need to convert pair name e51ac2c9 Remove unavailable pair ... cadde3ab Check if markets.info is a dict before using it 98647b49 Remove wrong "once per hour" listings 63f41cf1 Update documentation with new result e5aed098 Enhance backtest results with sell reason profit / loss table ad750486 Fix testing with path in windows 402c761a Change loglevel of Path output to debug 66f9ece0 Add documentation for strategy-list 27b86170 Add tests 2ab989e2 Cleanup some code and add option 5a11ca86 Move instanciation out of search_object 25e6d6a7 Combine load_object methods into one eb1040dd Convert resolvers to classmethods a6844569 Add first steps for list-strategies 48935d29 Align edge documentation to configuration page 83ed0b38 Wordwrap before keep it secret a105e566 Align /balance output to show everything in stake currency b8442d53 Update integration test to also test dry-run-wallets 33cfeaf9 Remove i.e. where it doesn't fit f487dac0 FIx bug in dry-run wallets causing balances to stay there after trades are sold 690eb2a5 configuration.md reviewed 0ac5e503 Remove unused import c6b9c8ec Forgot to save ecbb77c1 Add forgotten option bb8acc61 Convert datadir within config to Path 90cabd7c Wrap line c6d22339 Convert StrategyLoader to static loader 6d5aca4f Convert hyperoptloss resolver to static loader 248ef5a0 Convert HyperoptResolver to static loader 560acb7c Convert ExchangeResolver to static loader class 5fefa9e9 Convert PairlistResolver to static loader 1c5f8070 Refactor build_paths to staticmethod 779278ed Bump sqlalchemy from 1.3.11 to 1.3.12 9cfbe98a Bump scipy from 1.3.3 to 1.4.1 31a7e9fe Bump mypy from 0.750 to 0.761 20ad8a37 Bump numpy from 1.17.4 to 1.18.0 8f17b813 Bump ccxt from 1.20.84 to 1.21.12 76a93fab Bump python from 3.7.5-slim-stretch to 3.7.6-slim-stretch 2195ae59 Use different time offsets to avoid confusion dc567f99 Update documentation to new handling of dry-mode database ffd7034c Persist dry-run trade per default 43c25c8a add documentation for is_pair_locked a71deeda Document lock-pair implementation 89b4f45f Remove section about strategy template - use new-strategy intead 98353120 Improve pair_lock handling 1ff0d0f1 Add unfilledtimeout to strategy overrides 1a731592 Modify classifiers c417877e sort pytest dependencies 9ec4368c Add release documentation 95bd9e8e No underscores in cli options fc5764f9 Edge small cleanup 342f3f45 try with coveralls token in yml ... 0c6b5e01 Try with github-token 6507a26c Fix some tests after merge e72c6a0d use only first part of the currency to get wallet-amount (!!) 1af96289 Fix note-box syntax error 11e787c8 Finish depth_of_market documentation piece 1c19856d add section about depth_of_market d73ba71e Improve formatting of orderbook doc dc07037e Add documentation for price finding 21622ac3 Rename get_ticker to fetch_ticker cf4c3642 Minor improvements in data.history c5e6a34f Remove unnecessary parenteses 15373896 Remove startup_candles argument in refresh_data b2796f99 Remove redundant refresh_pair_history bbb05b52 Remove fixed random order 60f89c8c Split refresh from load_data/load_pair_history 8513a5e2 Fix failures in test_main 2e2f084f Try to clear caplog ... e1c0c6af fix random-seed to failing one 86de88ed Align usage of history import in test a2964afd Rename profit_percent to profit_ratio to be consistent 539b5627 Fix typo cbd10309 Add mid-state test 362a40db Update docstring 861a7834 Call calc_open_price() whenever necessary 307ade62 Cache open_trade_price 0b5354f1 Add required arguments to Trade method 707c5668 Fix typo 0277cd82 Make mypy happy 9cea5cd4 Add documentation about ohlcv_partial_candle a6fc743d Align code in _download_*_history() fa968996 Remove useless check 4cd45b65 Rename download_*_history as non-public 2af9ffa7 Align refresh_backtest_ to each other 75e6acd6 Bump ccxt from 1.20.46 to 1.20.84 05de60a7 Bump cachetools from 3.1.1 to 4.0.0 cc41cdbf Bump mkdocs-material from 4.5.1 to 4.6.0 c05af1b6 Bump plotly from 4.3.0 to 4.4.1 33db37a9 Bump joblib from 0.14.0 to 0.14.1 e398c375 Bump pytest from 5.3.1 to 5.3.2 655672c9 Enhance documentation Note ce845ab0 Improve docstring for dry-run wallet method b5b6458f Add note about unlimited stake amount 56e13c89 Enhance documentation for dry-run wallet 23d467eb Show simulation note also in restserver c741b67c Adjust tests for dry_run wallet simulation 5a574187 Improve dry-run calculations 4463d584 Add release section about collapsible section f0bbc750 Combine dry_run wallet into original Wallets class fda8f7e3 Introuce WalletDry - supporting dry-run wallets 52b212db Fix tests after changing dry_run_wallet amount 931d24b5 Have dry_run_wallet default to 1000 26ab1088 Fix mypy errors in develop f81c49ce Fix typo causing a trailing "tic" in /show_config output 2275a153 Remove default symbol from get_fee() f2266ea9 Use shorter range for seeded random-state 82ff878e Fix typo in the docs a48c0ad8 Use first pair of pairlist to get fee e4cc5c47 Test new show_config branch 014c18ea Improve output from show_config when trailing_stop is active 3bd873f3 Add notes on random-state to the docs 04257d8e Add tests for safe_sell_amount b69f5afa Round amount to precision also for dry-runs 5db88390 Try to verify available amount on the exchange 330b8cf8 space before unit ... 6e778ad7 Seed hyperopt random_state if not passed 7c7ca1cb Remove min (plural) from codebase 1058e5fb No plural for min 3f9f29ba Fix Flake8 import error 390db950 Show humanized and minutes version of duration 3448f862 Suppress scikit-learn FutureWarnings from skopt imports 3252654e Test adjusted 641e3fdf Fix generation of hyperopt trailing params de33ec42 use sell_row.open also when the active ROI value just changed 25447329 Bump scikit-learn from 0.21.3 to 0.22 dc9fed4a Adjust documentation 88a24da2 Adapt tests to sending open / close date e4655c9b include trade-duration with sell-notification 45d12dbc Avoid a few calculations during backtesting 189835b9 Add documentation for ROI-1 case 3163cbdf Apply special case for negative ROI 1e6f9f9f Add testcase for negative ROI sell using open 30918691 refactor get_close_rate out of get_sell_trade-entry 58d70b20 doc explicit optimization feature 0e9e6b34 refactor feature details doc 9199fd59 change doc into

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 6 years ago

FreqAI - 2019.11

Important - Breaking changes!

This release contains breaking changes to the freqtrade command line interface

  • Freqtrade will now require an explicit sub-command. All parameters need to be after this sub-command:

Examples

freqtrade --config customconfig.json --strategy AwesomeStrategy backtesting will become freqtrade backtesting --config customconfig.json --strategy AwesomeStrategy

freqtrade --config customconfig.json --strategy AwesomeStrategy will become freqtrade trade --config customconfig.json --strategy AwesomeStrategy

Trading/dry-run-mode is available as freqtrade trade.

--custom-hyperopt is replaced by --hyperopt and does not default to DefaultHyperopt anymore.

Strategies need to be explicitly defined and do not fall back to DefaultStrategy anymore. You can specify this either via --strategy AwesomeStrategy, or in the configuration ("strategy": "AwesomeStrategy").

Highlighted Changes

  • Introduction of trade subcommand (Read below for further info)
  • Introduction of new-strategy and new-hyperopt subcommands to simply create new strategies and hyperopt files. Please refer the documentation for full usage samples new-strategy, new-hyperopt.
  • Support for logging to syslog and journald.
  • Addition of /show_config command to rpc methods to quickly see the bot's most important configurations.
  • Addition of --dry-run flag to force trades to be simulated, overriding the corresponding configuration value.

Pairlists

  • Deprecation of pairlist in the configuration - which is replaced by pairlists - a list of different pairlist configurations.
  • Introduce a new way to chain different pairlists and filters dynamically Detailed pairlist documentation.
  • Introduction of test-pairlist subcommand to test the result of the new pairlist chaining.
  • Introduction of a low-price filter (requiring 1pip to be > N%).

Hyperopt

Full changelog

Expand full changelog ``` 2f76eaf3 minor: Fix documentation formatting 18c73ceb Add tests for the last commit 8431b54b Fix index limits handling 5fc357ee Fix typo a9f7e9fb Fix NO_CONF; fix tests 081b21fe Bump colorama from 0.4.1 to 0.4.3 ed053d24 Bump ccxt from 1.20.22 to 1.20.46 0ca3157a Bump coveralls from 1.8.2 to 1.9.2 49344567 Bump mkdocs-material from 4.5.0 to 4.5.1 0f4dcaa4 Bump pytest-mock from 1.12.1 to 1.13.0 4b560880 Add tests for hyperopt-list, hyperopt-show 21c68557 Build latest along with develop image ed7207d4 Show pairs which are wrong ... bb9235c7 Validate stake-currency against pairlist - making sure only correct pairs are in the whitelist 2bd4008c fix space name ... d21ae4ed Add fixes for comments in the review 1da008b3 Document "quick" hyperopt of roi/stoploss and trailing stoploss 703458f3 Add test for loading ticker-interval from strategy 4b0a4c93 Fix hyperopt with ticker_interval from strategy 216094a7 Add reference to hyperopt-list and hyperopt-show to the Hyperopt doc 4efd8b96 Add description for hyperopt-list and hyperopt-show to the docs b61f4383 Make flake happy b20bea84 Adjust tests 54694dd3 Manual merge of some conflicts in hyperopt 16a50fbe Resort documentation 51f074ba Don't print quote-currency for -1 0ba804d0 Address first part of feedback 8a7fe3f1 The file will (for users) be in user_data - just in the repo it's in templates 054484ad load_pair_history should not return None, but an empty dataframe if no data is found ac3e0615 Resolve issues stated in the review ddf86d63 Adjust docs index ba29a2ff Move docs on loss function creation to a separate doc file b33e47a4 Update documentation with test-pairlist 298e8b23 Add testcase for test_pairlist 17e03559 minor: fix typo in docs cd20d5b5 Update kraken pairlist ebf6dad3 Update binance pairlist default config 683406b5 correct fallback to stake_currency fc7b9846 Bump mypy from 0.740 to 0.750 110fbd3f Bump ccxt from 1.19.86 to 1.20.22 f0428be9 Bump pytest from 5.3.0 to 5.3.1 0b03c6c7 Implement to json 150a497c output pairlist after fetching all ee733210 minor: Fix formatting typo in docs 86342efa Adjust test 05967442 Adjust test d6b58767 Adjust test 668d4244 Refactor log_trials_result() 32c9b5f4 Description for generate_roi_table reformulated slightly f42ce8fc Fix typo in the docs 26a7af85 Add trailing_space() into AdvancedSampleHyperOpt f862b4d0 Add description for 'default' space a88bfa8d Fix: trailing_stop_positive should be positive fffd47e3 Add description of trailing space into docs 7a3c3c4d Add directlink to the section eafccb44 Add command sample for journalctl with -u b040cbff syslog and journald cases splitted 15343456 Add test_pairlist method 8f9b5095 Fix some tests c3d74116 Fix imports 997c4262 fix some datatypes 111f018c Add datatype to configuration documentation 64da8771 Update stake_amount description f0e6a9e0 Address feedback a373e489 Comment added f2cd4fda Fix the rest of tests 8e751216 Add hyperopt-list and hyperopt-show commands cceb00c4 Try coveralls 585b8332 Improve tests and unify required attribute 066f3240 Make flake happy 8e1e20bf Fix some tests 0ac592ad Fix markets in conftest 17269c88 Fix _get_min_pair_stake_amount() 82041073 Add test for get_min_pair_stake_amount() with real data 9e7d367b Realign strategy_override paramters 12b9257c new-lines before defaults in documentation 37f698d9 move default values to Description field e7c17df8 validate defaults in documentation 418ca003 Bump jsonschema from 3.1.1 to 3.2.0 03f02294 Bump pytest from 5.2.4 to 5.3.0 0a7a1290 Bump pytest-mock from 1.11.2 to 1.12.1 28f73ecb Bump ccxt from 1.19.54 to 1.19.86 6ab7f93c Bump scipy from 1.3.2 to 1.3.3 d1511a10 Update some config documentation 0775ac08 Cleanup constants and required 646a9d12 Align quoting of json schema e7be742c Run validation after custom validations 8d002a8f Fix some more tests af3eea38 Move config json validation to after strategy loading 4dc0631a Lower minimum tradeable value a3415e52 Fix some test-types 1b337fe5 Remove unnecessary code piece 50350a09 use wallets instead of doing a direct call to /balance 1bf8d8cf show /balance in stake currency 62d50f51 add tests for balance from get-tickers 8c64be3c get tickers only once to show balance a374df76 some minor fixes from feedback cbf710a4 Fix coveralls (?) f05818a8 Allow transition from "no-config"-pairlist to pairlists 63ad95a4 reenable slack 5fb14e76 Adjust folder to match user_data folder - otherwise running tests creates this folder c7c7a1c2 skip test due to no journald installed 1242263d Make test OS dependent 31c598f8 Add tests for advanced logging setup 6cb48305 Testcase added 067267f4 Log messages improved (plural/singular) 99db5341 Tests adjusted 737c07c5 Make mypy happy 097cdcb5 Save epochs at intermediate points 175591e5 Fix test a183162d Add description into Advanced Setup section a6bb7595 Update utils doc 210d468a Reinstate mfi ... 5f8fcebb Parametrize hyperopt file f23f659a Use strings instead of subtemplates f26c4008 Allow selection of templates for strategy b3dbb818 Add subtemplates 5e5ef21f Align example imports be4a4180 Use single line comments for samples f7322358 Update documentation 671b98ec Fix windows test ed04f7f3 Create userdir and backtest SampleStrategy cbb187e9 Use constant for Strategy and hyperopt userdirpaths 03cdfe8c Add tests for new-hyperopt 37f81394 Small stylistic fixes 79891671 Adapt after rebase 65489c89 Add no-arg test b36a1d32 test new_stratgy 8a1d02e1 Update numpy imports in sample strategies 8c2ff2f4 Add template for new-hyperopt command e492d476 Disallow usage of DefaultStrategy 98baae94 Add jinja2 to requirements e3cf6188 Add first version of new-strategy generation from template 8cf8ab08 Add note about create-datadir to install instruction ed1d4500 Update documentation for create-userdir util 41494f28 Allow resetting of the directory 19b1a6c6 create-userdir should create the notebooks folder, too 471bd4d8 Small stylistic fixes 084efc98 Address test-failures due to file moves 1d2ef5c2 Extract directory_operation tests to it's own test file fd45ebd0 Copy templates when creating userdir 258d4bd6 move sample-files from user_data to templates folder b8aa727e Fix second part of freqtrade-strategies #51 eac01960 Add testcase for empty-order case a5bd4e32 improve cancel_order handling 9aac0804 Fix 'remaining' bug when handling buy timeout 8b639b50 Remove only :return: 5f88c4aa Add example of usage for Aroon, Aroon Oscillator 63399621 Improve commands help list c92f233c Move settings to correct location 751157b4 Don't notify on builds from forks 5f62a9e4 rename ttl to refresh_period a8855bf7 rename LowPriceFilter to PrieFilter c22b00b3 move pairlist filters out of config[] cd6d2761 Bump pytest from 5.2.2 to 5.2.4 dddccf8f Bump ccxt from 1.19.25 to 1.19.54 0bc71403 Bump mkdocs-material from 4.4.3 to 4.5.0 cb6b3e17 Bump tabulate from 0.8.5 to 0.8.6 e7157fad Bump python-rapidjson from 0.8.0 to 0.9.1 a33d4087 Bump plotly from 4.2.1 to 4.3.0 42474b71 Bump flake8-tidy-imports from 3.0.0 to 3.1.0 93356459 Bump sqlalchemy from 1.3.10 to 1.3.11 599e18b9 Bump urllib3 from 1.25.6 to 1.25.7 547d65b0 Fix broken test e4e8a611 Add tests for telegram 2b190e56 Add documentation acab5679 Add /show_config to telegram 2c976bdd Add show_config endpoint 3aee8d2b Improve rest api client / status response b6a12044 seperate docs job be53c088 Try moving coveralls to github actions 91047830 Add tst for worker termination 6e0655b3 add empty worker variable edc0d7f2 Fix non-terminating bot b167fb07 fix windows test 3b9899df hyperopts ... f94d4631 update checkout action to pinned version 569a547b Update Actions CI to new subcommands f9a92c28 Adjust test ab194c7d Add test 38243c52 Filter open trades - they are not added to the profit calc c8c48156 Don't load trades twice ... 68904296 Allow timeout of 0 6174a5dd Reimplement adjustment of ccxt 'has' with more generic ccxt_config class attribute e26bbc7d Add fix for bibox exchange 62c1ff77 update action to 2.1.0 6ac73f7c Update missed strings 66619204 re-add hyperopts multiple ... c42c5a1f Adjust "requires subcommand" message 5b62ad87 Remove hyperopts occurances 2eb65132 Improve timedout handling c449e392 Replace more occurances of ticker_interval 1c57a4ac more replacements of ticker_interval 334ac8b1 Adapt documentation for timeframe d801dec6 Some more places with ticker_interval gone 08aedc18 Exchange ticker_interval with timeframe in some more places e4bdb925 Replace some occurances of ticker_interval with timeframe 11f7ab61 Remove decimal import from rpc df9bfb6c Add FIAT currency to status-table ab9506df simplify status_table command 136ef077 Add sleep to allow thread to start e8a8f416 Update dockerhub description from github readme.md 8c76f450 Use correct dockerhub image name 96f550c6 Disable tests 37ef5c38 integrate Slack notification 52e24c3a Split error-messsage between incompatible and wrong stake amount 025350eb Fix typo in the rest-api docs 80099743 Update documentation 75d5ff69 Add ping endpoing a241c2af Build macos - ... d1729a62 fix windows build e51a7201 Apply cache to pi image ff1d3643 Add github actions action 031157f2 Bump numpy from 1.17.3 to 1.17.4 c65d217d Bump scipy from 1.3.1 to 1.3.2 0a13f7e1 Bump ccxt from 1.19.14 to 1.19.25 27d81bb6 minor: More cosmetics on Exchange Notes 95492958 wordings 661c8251 minor: Exchange notes docs 83067c1e minor: Fix link in the Faq docs 04b51a98 Include warning-message to bittrex explanation e810597e Add restricted markets snippet to documentation 692d6afb Minor exchange notes typographical cosmetics eba55c27 Change link 085aa308 Implement ticker caching de2d04f0 Add note about systemd load location 12654cb8 Add seperate exchange section in docs 4b15873e Simplify examples 86a5dfa6 Update documentation 0b480083 update documentation 5caeca75 Improve tests for pairlist-sequence behaviour 7ff61f12 pass pairlist position into the pairlists ae356493 improve pairlistmanager errorhandling a01b34a0 tests 02b9da8a Update documentation ed0c7a6a Update configschema to fit new pairlists approach 25cb935e Some more adjustments for new pairlist c74d7662 move from name to name_list 37985310 remove cachetools dependency c3b4a4dd Update sample configurations d7262c0b Fix correct ticker type 870966dc Fix more tests 85beb3b6 Fix test bf69b055 Add name getting 31c7189b Verify blacklist correctly eaf3fd80 Allow blacklist-verification from all pairlists 10595862 Small adjustments b610e8c7 Don't refresh tickers if they are not needed e632720c Allow chaining of pairlists 1f042f5e Quick start and easy installation sections reworked 54b63e89 Wordings on top of #2495 31ab32f0 Always set trailing_stop=True with 'trailing' hyperspace bc5c91f6 add missing note block 076ef040 git branch note explanation b0150d54 remove not use statement dd47bd04 Move description to correct place da57396d Fix UTC handling of timestamp() conversation in fetch_my_trades d3a37658 Fix test f90676cf Add trailing stoploss hyperspace ca77dbe8 Fix UnicodeError in hyperopt output 60109aaa Bump ccxt from 1.18.1346 to 1.19.14 28f0c002 Bump pandas from 0.25.2 to 0.25.3 bc78316a Bump flake8 from 3.7.8 to 3.7.9 b8a6c55b Bump arrow from 0.15.2 to 0.15.4 c8638ce8 Fix bug where bids_to_ask_delta causes doublebuys eb0b0350 Introduce remove_credentials to remove code duplication f6a66cd3 Fix typo 871019c8 docker doc update about restart policy 1e44f93c Fix pandas access warning 3eca8021 Don't check exchange for Utils commands 6550e1fa Change docstring in sampleHyperopt 80ad37ad Updated plot_indicators test 3287cdd4 Improve documentation regarding loading methods from hyperopt 12e86ee4 Make travis test-hyperopt the sample strategy 97d0f93d Align samples (hyperopt and strategy) to work together 861f10dc Allow populate-indicators to come from strategy e9af6b39 Fix typo 2124661c Update faq with examples of grepping the log 691cec79 Be more selective which startup-messages are shown 241d9475 Add new runmodes a80e49bd Change level of rpi header 9a42afe0 Move exchange-constants and retriers to exchange.common b6616d7a Add test helping debug #1985 7be378aa Remove markets mock where it's not needed 734a9d5d Seperate tests related to worker from test_freqtradebot ce6b869f Cleanup test dc5f1b28 Extract integration tests into sepearte file 5dcf28ca Reduce frequency of "startup-period" message 365a408d Update release-documentation to fit new release style 9e988783 Allow configuration of stoploss on exchange limit bba8e614 Rename function in samples ad98d619 Update developer docs 14758dbe Some small cleanups d89a7d52 Document new method to configure filters 640423c3 Add config samples for chainable pairlist filters fd9c0260 Introduce chainable PairlistFilters 44289e4c Allow not using files from user_dir 6928c685 Add documentation sample for parallel_trade_analysis dd408aa5 Add analyze_trade_parallelism analysis function dac88c6a extract Find parallel trades per interval 78fe5a46 Update travis to verify for correct title usage 7a96d3c9 Update raspbian install documentation b7b1e66c Convert to % as part of RPC to allow users to use unrounded ratio 5ed77711 Update documentation to include get_trades c2076d86 Use scoped_session as intended b37c5e48 use get_trades in rpc modules 26a5800a Extract get_trades function 01efebc4 Extract query to it's own function ab117527 Refactor get_best_pair to persistence f20f5ceb Move performance-calculation to persistence 6fe7b13e Replace coins in whitelist with existing ones 9c180e58 Log to stderr de2cc58b Final cleanups and added tests d803d86f Add low_price_percent_filter d706571e Extract precision_filter to seperate function 4ff03553 Simplify precision_filter code 466a3b87 Enhance tests to cover precision_filter correctly 069da224 Add test to verify this is correct e82460bd Fix create_cum_profit to work with trades that don't open on candle opens 61c037f2 Fix some typos and comment mistakes 73343b33 Address feedback 3a6020dc small improvements to stoploss doc 596a269d Bump pytest from 5.2.1 to 5.2.2 44d0a6f2 Bump ccxt from 1.18.1306 to 1.18.1346 60b99469 Bump nbconvert from 5.6.0 to 5.6.1 46b975a4 Bump pytest-mock from 1.11.1 to 1.11.2 70ad909b change samples to python code, and simplify a few things 2af3ce3e Improve stoploss documentation - split out offset_is_reached 132a4da7 Small style fixes and adjusted tests 73f5bff9 Add validation to make sure strategies work on that exchange 223f0cd4 Apply startup_period to edge as well c4cb098d Update documentation with indicator_startup_period 2bc74882 Add test for startup_candles 2ba38807 Fix small bugs 33164ac7 Refactor loading of bt data to backtesting ... 86624411 Test trim_dataframe 5cdae17d Add tests for timerange modifications bd4a23be Refactor start-adjust logic to timerange 5c2682e2 Add startup_candle_count to sample strategy 6382a4cd Implement startup-period to default-strategy 704121c1 Move most logic to history 9c7696a8 Add required_startup to backtesting 9e7e051e add trim-dataframe method 616fe08b Add subtract_start to timerange object 141c4541 Add startup-candles-argument for strategy e5487441 Fix typos 48d83715 Fix typo in docs (thanks to Escaliert@Slack) 8b4fea4b Update installation.md 13ae339a Improve windows Install documentation with hints bf20f3b7 Remove part which is related to #2418 32df73c0 flake ef1885c3 Fix more tests f5351e60 Adjust markets mock bfec9d97 docs: Create Advanced Post-installation Tasks section; move systemd stuff there 3a7553ee Adjust option helpstring d0521d33 Refactor whitelist handling ea6b94fd docs: add a tip for The Ocean exchange 2e896462 Fix wrong volumepairlist message e6337798 Improve pairlist documentation 41f97a73 Add logging to syslog and journald 45b83cc5 Don't require pair_whitelist for dynamicPairlist usecases b3e028e8 Improve dynamic pairlist documentation 13255b37 Allow non-config to parse config e1edf363 Fix test failures 1c503f39 Handle some merge aftermaths 2d34c0f5 Update helpstring exports 6fb96183 Reword help string a5c83b66 Add --dry-run to trade command 89283ef4 Rename --custom-hyperopt to --hyperopt ff1fa17d No default value for the config parameter 08e6d8a7 Rollback defaulting to DefaultHyperOptLoss c4105436 Disable defaulting to DefaultHyperOpts and DefaultHyperOptLoss 95299d94 Remove unused test line b73426b9 Disable Defaulting to DefaultStrategy 52ff391c Default dockerfile to "freqtrade trade" 344a0a09 Update remaining documentations 27102263 Update documentation to use subcommands 381b0d3d Fix typo with new parser 52523bcd Use strategy child parser 0d13e2cb Update travis to run new methods 014881e5 Allow query version without subcommand 67b82638 Move test without command to test_main 09f18d07 Adjust some hyperopt tests 9ef874e9 Add Custom message during transition period 0aa73d5b Add test for failing case ad2fa617 Fix utils test e8106f37 Fix most tests to have trade as default argument db3b9744 Fix calling sequence d62a4d35 Fix some minor problems 1b25b5f5 Remove duplicate short-form `-s` 03add90c Adjust some tests to new call-method 0f2e277f Rename subparser variable to command 8664e7f7 Have main.py support only subcommand mode cb37f432 Add trade subparser (and make subparser a requirement) 2a535b72 Parser should not have default cd233688 Add first version with shared parent parsers ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 6 years ago

FreqAI - 2019.10

Important changes

  • Introduce freqtrade list-markets and freqtrade list-pairs subcommands to easily list all pairs/markets on the exchange. Check out the documentation to learn more.
  • Add docker-compose files for easy developer-setups
  • Add keep-alive message, removing message poping up every 5 seconds
  • Settings in the 'experimental' section in the config moved to the 'ask_strategy' section. Please update your configurations.
  • Allow downloading tick data to emulate OHLCV data (for Kraken backtesting)
  • Sample strategy was reworked to include best practices.

Full changelog

Expand full changelog ``` dab4ab78 Fix create_cum_profit to work with trades that don't open on candle opens a74b941b Add test to verify this is correct 89bba6f7 Version bump 3929ad4e Fix typo 2f1d9696 Change keepalive to heartbeat 0773a653 Add I Am Alive Message 8201f70a Change loglevel of repeated message to debug 59e881c5 Remove obsolete scripts 2e1e0800 Fix potential race conditions between RPC and Freqtradebot during initialization 6640f4a1 Make flake happy 87ff7be5 Use exchange.name instead of config['exchange']['name'] 336808ec Correctly pass validate flag to fallback exchange too b26faa13 Call validate_timeframe only when validate is True 562e4e63 Set validate=False for exchangÑe in start_list_markets 73fa5bae minor: Fix wording in a docstring a43d436f Move decorators out of API Class ff5ba643 Improve docs 8872158a Bump mypy from 0.730 to 0.740 f07b26f2 Bump pandas from 0.25.1 to 0.25.2 e5f06c20 Bump python-telegram-bot from 12.1.1 to 12.2.0 36485939 Bump plotly from 4.1.1 to 4.2.1 657f1b6c Bump flake8-tidy-imports from 2.0.0 to 3.0.0 e350bcc2 Bump ccxt from 1.18.1260 to 1.18.1306 c2566f24 Bump numpy from 1.17.2 to 1.17.3 b116cc75 Fix failing test bedbd964 slightly rephrase strategy docs ca4d0067 Uncomment tests with --exchange 8a0d9013 Improve unclear sentence in the docs 5b680f2e minor: Condense paragraphs in the docs 45b2d24b Improve docs 10ca2492 Fix fluky test d6b6ded8 Print empty line separator in case of human-readable formats (list and tabular) 20dd3f2d Clearly highlight potential problems with looking into the future 8a31b4c6 Update python base to 3.7.5 and install hyperopt dependencies 78cd75df Add requirement b805e4e1 Try list extension d8630ef8 Add one-sided ms timerange c48876b1 Trades should use timestamps or dates, not indexes 16e10d99 Remove timeframe logic for non-date entries 0adcee92 Fix backtesting format since sublist does not render correctly f41c659c Plotting trades from database should show correct duration b152585d exportfilename should respect configured user_data_dir fd22c872 Some minor cleanups to trades download methods and docs 30eb23e1 Minor freqtrade cleanup 4ec83a2c DefaultHyperOpts --> DefaultHyperOpt; hyperopts --> hyperopt where it's not correct c649f984 Compare >= instead of = 3208f30c Fix base64 test on windows 5e731ec2 Add more tests e55b2a1a Allow test to pass on fast computers by setting the offset to -1 ed8d8057 Make paths os independent to have tests pass on windows 00a95945 Improve assumptions 9d739f98 use requested - remaining amount - not the requested amount! 2588990f Require unfilledtimeout - don't require telegram in config 271846df Simplify cancel timedout c181fac6 fix #2383 0ac46edd Add tests for new scenario c735d352 Extract open_trade generation from freqtradebot e9578948 Rename start_list_pairs() -> start_list_markets() 369335b8 Add tests for start_list_pairs() 2ebddcf4 Make flake happy again 8564affd Add tests for Exchange.get_markets() a39d51d7 Update test to use limit_buy_order 750dc8bf Add tests for market_is_active() 033742b7 Fix pairlists to use market_is_active() instead of custom check 84ba431d Introduce a market with no 'active' field in conftest b6e26c82 Replace market_is_pair() by symbol_is_pair() e8eb968a Add tests for market_is_pair() 66605a19 Add tests for plural(), taken from #1989 1e61263a More sofisticated market_is_pair(), taken from #1989 bd08874f Fix options metavars shown in the helpstring ff6a3465 Docs added 5b58141f iFix grammar issue bf4e9a5d Code cleanup 837d4d82 Sort tabular and csv data by symbol as well a8ffd29e Remove --active-only, introduce -a/--all instead 92fda0f7 Allow --base and --quote be lists of currencies d72d3887 Make flake happy fda71085 Refactor load-path building to parent class 1a765f1a Return generator instead of Object from _get_valid_object 7de16310 Print summary in the log for machine-readable formats 4c8411e8 Cleanup in print tabular and print-csv parts f348956e --print-csv added a4dfd77d Fix double comments for ADX 89e0c76a Add --print-json and -1/--one-column options 36d5bb6f Adjust ADX placement in the comments ad89d199 Print list in the human-readable format e6e35c25 Switch samplestrategy from ADX to RSI ace70510 Wording fixes a320d4cc Don't sell with 0 profit in samplestrategy 790e6146 Use crossed() in sample strategy f5d87418 Bump sqlalchemy from 1.3.9 to 1.3.10 4c4134a2 Bump jsonschema from 3.0.2 to 3.1.1 b2682bcb Bump ccxt from 1.18.1225 to 1.18.1260 41117346 Add 'Is pair' in the list-markets tabular output 6e27c47d Handle properly exchanges with no active flag set for markets 76ad5bea Load correct exchange class 13e80e44 cleanup and better docstring 023eb196 Add documentation for --dl-trades 3e4617be add pandas-based converter-functions ed9ec402 Add test for trades_ohlcv 56de81a1 Add some test data ccb41d1e Add tests for test_download_trades_history 2374cda8 Cleanup and tests for refresh_backtest_trades 1b7a09c1 Add test for utils --dl-trades 37925e7f Add --dl-trades cli flag 762ae3a5 Extend tests 9f8a2acf Extend test-cases to 5 trades 4fdec9d6 Test id-based pagination 640d58eb Remove unneeded checks fa8c6138 Remove unneeded exception handlers b6ac898f Add test for exception handler 57bcff19 Test get_historic_trades 939a87ed Add test for fetch_trades 16d6914b Add test to cover missing line 05e47364 Small adjustments to get_trade_history 0d592f6c Refactor trade downloading to handle exceptions only once 476adf87 Add conversion from trades to ohlcv at different intervals 9584629f Rename argument from dl_path to datadir c1c49183 Call new method based on condition 8069cd66 add refresh_trades_ method 1f79ca95 Remove duplicate check 1d8fc970 Fix duplicate trade error, rename some methods 19f3669f add docstring 06024b0a Fix zipfile handling 6e952a0a Capture downloaded data 57dee794 Fix end-reached for id-based trade-download 2c0bb71a Add download_trades_history() ab8f638e Move id/time detection to get_historic_trades method d250b67f Add load/store trades data 42b82415 use gz to save / load trades data 6cc98c1e Fix tests 77c367ad First draft of async get_trade methods 26b31489 Add build_ohlcv wrapper 27dc9ca7 Add trades_pagination attributes 63e87ef8 Add pair_trades_filename 6697b677 Add test for test_data_filename baad1a51 Explain _params element 7cf79825 Add list-pairs and list-markets subcommands f3f6e9d3 Allow skipping of exchange validation 3c8d27d0 remove correct comment ... 4c1705fb No specific handling for trailing_stop_positive ff7a3cc8 remove last occurance of config. from stop_loss_reached 4d148849 stoploss_reached should not use config e72b6a44 Updated Rest API Docs c49f4b73 Fix helpstring 5e23cc71 Add tests for orderbook and market in dataprovider 0680fe2a fix path to tests 23b5c0e8 Improve tests for handling deprecated settings cdd1bc42 Fix typo 2a9c06c4 Test added 434e0234 Add handling deprecated settings bcd02a87 Fix beeing again ... e1c14bc8 Don't use os.path in test_history 69c23c00 Fix minor typos in the docs 2e91ee38 remove underline from docs style 86ef3231 Add versions to doc theme 4d062d41 Improve comments in the SampleStrategy; set use_sell_signal = True e78e4233 Improve docs wordings 057ab1b7 Remove unnecessary comments 613300c6 Add short description of the market() method into docs c34ce15b Bump pytest-cov from 2.7.1 to 2.8.1 80d58b79 Bump pytest-mock from 1.11.0 to 1.11.1 568ecc20 Bump sqlalchemy from 1.3.8 to 1.3.9 652a04ac Bump ccxt from 1.18.1208 to 1.18.1225 5e9ab3e2 Bump mkdocs-material from 4.4.2 to 4.4.3 be6fd3af Bump pytest from 5.2.0 to 5.2.1 e272cd48 Bump joblib from 0.13.2 to 0.14.0 ad35a3d7 Small wording improvements 211b9cbe Cleanup in data.history 33940ae6 Use different keys and values d2589c44 Make test exchange-independent 22733e44 Add tests for --fee 82d4051a Add --fee to documentation 0664a8c0 add `--fee` to change fees to other values 9b233764 Move experimental settings to ask_strategy 7ea9da96 Fix #2277 9b98e608 Add testcase for negative ROI after certain period 885edc97 Allow multiple ROI in detail-backtest tests e1b8485b Remove indicator_helpers.py and test 764a35d0 Remove scattergl and fix tests 00ab6f57 Cleanup legacy strategy 73e9cbde Fix #2338 78381e9e Improve test to test full sell cycle 75252b62 Docstrings improved f95b0ccd Tests added 38f184e5 Update test to not mock stoploss_on_exchange 1f4e5b17 Add basic test for execute sells_multiple logic 9ee7e28e Clean up some mocks 3ac5b918 Add market() method to dataprovider 4b29c4cd Test for handling closed trade adjusted 89729aef Fix and improve process_maybe_execute_sells() 15aae8a5 Tests adjusted 096c69dc Refactor Freqtradebot eca8ddab Remove unused test-data c57d5ef1 Added short descriptions and examples in utils.md f2e878d9 Update helpstring for list-exchanges f6a88c6e Tests adjusted d1fa5f30 Add --all option to list-exchanges cd0e813a Docs adjusted, utils.md added dc47a391 Move ignore to corrct line for mypy 730 04fea69a Bump mypy from 0.720 to 0.730 7617dd50 Add separate message for `hitbtc` exchange f359f869 Bump pytest from 5.1.3 to 5.2.0 d74ca78b Bump ccxt from 1.18.1180 to 1.18.1208 3c91ba13 Bump pytest-mock from 1.10.4 to 1.11.0 9a83d841 Bump tabulate from 0.8.3 to 0.8.5 8ae4018e Bump urllib3 from 1.25.5 to 1.25.6 739901b6 Add test for this behaviour 03b5be91 some commands should not have config at all 272c977d Add exchanges to the list of bad exchanges 75446d81 Refactor list-timeframes command with the use of the Exchange class methods 448b09d7 Add list-timeframes subcommand 23665c77 Don't use main.py as entry point in documentation 11bb7e52 use .develop dockerfile, move docs to develop.md, add freqtrade_bash 83e596c0 chart styling 9391c27b Enhancements to BB plotting fe483ad0 Don't use the develop dockerfile for local cb6e1368 how to exec 5c3fb4d5 docs for running docker-compose locally 7c6921c7 pr feedback regarding docker-compose naming 359b0ba0 Add samples for plotting to jupyter documentation 5234f8bf Update jupyter notebook slightly 9a3bad29 Automatically generate documentation from jupyter notebook e8e05b68 split docker composes ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 6 years ago

FreqAI - 2019.9

Important changes

  • Migration from scripts/plot* into freqtrade subcommands (freqtrade plot-dataframe and freqtrade plot-profit).

  • Strategy should now include an INTERFACE_VERSION=2 variable to be explicit what version you're targeting (and to facilitate future updates to the strategy interface).

  • removal of --refresh-pairs-cached (please use freqtrade download-data instead).

  • improvements to Hyperopt

    • Adaptive hyperopt ROI space (no need to adjust the ROI space for different timeframes)
    • Improved memorymanagement for hyperopt.
    • Default stoploss space was shortened to [-0.35; -0.02], to avoid hyperoptimization results with higher stoploss values that are not applicable for most users.
    • a bug fixed which caused serious deviations between hyperopt results and backtesting in the same conditions. Position stacking in hyperopt was always erroneously set to true. Please review the results of your previous hyperopt sessions.

Changelog

Expand full changelog ``` 6a397f57 Add description of usage 2f005d6b Align example of ROI in the docs 45f5394d Align example in the docs 7e214d8e minor: change default stoploss space 43f2ef22 Change rel_tol to abs_tol to avoid surprises with high priced pairs 42b5a097 fix failing test 4ac53f15 Shorten the default hyperopt stoploss space 637ec606 Update slack link 60e3e626 Improve timerange section of the docs 9db91585 Allow use of config in custom hyperopt methods eb07f1fe Fix typo 8d92f8b3 Compare floats via isclose instead of == 49f0a721 Add test for rounding error on fload aggregation 5978b7bb Add explicit test for halfbought fee adjustment 0268bfdb Minor: fix typo in comment e9de0882 Add import-fails code as a fixture d05db077 Update PI install documentation and dockerfile d2f24730 install hyperopt seperately ([hyperopt]) 47b6b565 Reorg dependencies to have hyperopt seperated 27cc73f4 Dynamically import hyperopt modules cc91ccad Improve documentation wording 665e0570 Fix hyperopt position stacking 6c0a1fc4 Fix tests that fail when config.json is present 93b26216 Add format description for pairs.json file 6aa1ec2a Some small restructuring cc9fc413 Rename section to data-downloading, implement some feedback fe40636a Improve wordings 577b1fd9 Improve documentation wording 0f97a999 Improve wording 6ffb8b7a Fix wordings in comment 95e725c2 Bump ccxt from 1.18.1159 to 1.18.1180 0c6164df Fix memory exhaustion in skopt models list d8bc3504 Bump python-telegram-bot from 12.1.0 to 12.1.1 242ff26e Bump pytest from 5.1.2 to 5.1.3 ab0adabd Bump urllib3 from 1.25.3 to 1.25.5 ba4db0da Improve configuration documentation 7aa42f88 Fail download-data gracefully if no pairs-file exists 3245ebcc Fix problme when no exchange is given to download-data b1a3e213 Improve backtesting docs 2fcddfc8 Clarify updating existing data 313091eb some more refresh_pairs cleanups 508a35fc Update comment as to why certain points have not been removed 9cedbc13 Cleanup history.py and update documentation e66fa1ce Adjust tests to not use --refresh-pairs 1cd8ed0c Remove --refresh-pairs dc825c24 Make flake happy 15a4df4c Mock create_datadir to make sure no folders are left behind f0cf8d6a Allow easy printing of loaded configuration 50b45639 Tests adjusted 69f29e89 minor: Cleanup for backtesting ee6ad51a Manual bump to ccxt 1.18.1159 a42000e1 Change package author to "freqtrade team" e9a75e57 test adjusted 5cbc073d minor: Cleanup hyperopt b7da02aa realistic fixture datas f3e3a8fc unused in tests 9c1cce6f Bump ccxt from 1.18.1124 to 1.18.1149 cab394a0 Bump python-telegram-bot from 12.0.0 to 12.1.0 c2462ee8 Bump arrow from 0.15.0 to 0.15.2 b00467c8 Fix test failure 2cf045c5 Remove commented indicators from DefaultStrategy e2a100c9 Directory / folder eda1ec65 Revert back condition for open_since in Trade.__repr__ 01357845 remove unused indicators from default_strategy 5e654620 Use available indicators in tests where possible 16b4ae83 Document this new behaviour a5f3b68b Allow loading of fully initialized config from jupyter notbooks f1632407 Simplify configuration init where possible c8d191a5 Adjust test e6ec8f9f Fix tests: Change condition for printing 'close' 4d566e8b Update tests to not use Namespace e6ccc142 have Arguments return a dict instead of Namespace 52b186ea Create-userdir does not need a configuration 67ff48ce Comment out noisy log messages 045ca873 Do not print humanized datetime in the log message dda513c9 Minor class cosmetics 6c5eff4a Use List of Tuples, remove unused columns 849d694c Don't inherit from object 1d781ea9 Refine 'stoploss adjusted' log message acf3b751 Log sell_flag, do not log sell_type=SellType.NONE 9bdfaf38 Remove quotes around the pairs f8eb1cd5 Add tests for kraken balance implementation 3b4bbe7a Implement get_balances which uses open_orders 2bd59de0 Cleanup log_has_re regexp string ac413c65 Clean up the use of patch_exchange c01953da Remove kraken block a9ecdc77 Use patched exchange instead 869a5b49 Eliminate asyncio warnings in tests 2081d755 Make flake happy e298e773 Adjust tests 35580b13 Improve backtesting logs 85f12915 use git log to print version 94d2790a Fix #2239 - 9aa7db10 Add test for failing case 3398f31b Bump ccxt from 1.18.1115 to 1.18.1124 7dc3e67b Bump plotly from 4.1.0 to 4.1.1 3c869a80 Bump arrow from 0.14.6 to 0.15.0 edba5a00 Bump numpy from 1.17.1 to 1.17.2 adbc0159 changed more occuranes of function a5510d14 de-mangling 34308504 don't print in tests c5726e88 Don't gitignore sample_strategy 867a3273 Fix random failure if config.json exists 2a236db1 Pass test-data to dockerized backtest 3e0edc7e Update backtesting section about correct data used 0bb1127c update .gitignore 9d2c6c8d Fix paths in setup and travis 9513115c Fix paths in tests f2cbc5fb Fix documentation references to tests folder 26d76cdb Adjust imports in tests to new path 65a516e2 Move tests out of freqtrade module 13932f55 Fix random test failures bb2d8fef Enhance setup.py 865e0d3a Adjust tests: removed tests for/with import_strategy() 45cfdbbd Make flake happy 2b00a5d9 Get rid of import_strategy() bd2ecf8c Add testdatadir to missed test 972b8a17 Remove defaulting to test_data folder when no datadir is present fe631ffd Use fixture to determine test_data_dir bde82e96 Move make_testdata_path to conftest 4fdf8a75 Adjust hyperopt tests after the merge with develop 7e567047 Parametrize tests for hyperopt simplified failed ef8386c0 Fix table with ROI limits e39d9111 Improve wordings in hyperopt.md 48ac37a1 BLock kraken trading - it's not working at the moment e8f37666 Fix Problem when ccxt reports None as values e2e00151 Don't rename dict ... we can use it as is 3343b347 Add tests for simplified hyperopt interface e1072902 Validate plot arguments 1b66f01e Always use config.json if it's available 5ce63cd5 Remove no_config_ argument from Arguments 03f3d0dc Remove desc from Arguments header 88f823f8 Improvements to documentation 9a6a89c2 allow simplified hyperopt interface e8614abc update table md formatting, enhance description 87ae2430 ranges for ROI tables for different ticker_intervals in docs dc9fda76 Fix tests to adapt to new telegram-bot interface 3b15cce0 Handle arguments uniformly (by using context.args) 8cad90f9 Adapt to new api 9c60ab79 Adapt telegram api to new interface of telegram-bot-12.0.0 05789c4b Bump python-telegram-bot from 11.1.0 to 12.0.0 04335ddd Bump ccxt from 1.18.1085 to 1.18.1115 3f6c0ba6 Bump arrow from 0.14.5 to 0.14.6 bf4e3f55 Bump sqlalchemy from 1.3.7 to 1.3.8 51ad05ef Bump pytest from 5.1.1 to 5.1.2 89f5cf82 Bump numpy from 1.17.0 to 1.17.1 949ab2a1 Bump mkdocs-material from 4.4.1 to 4.4.2 aae9c319 Reenable stoploss_on_exchange for dry-run 20c9c93b Improve docstring 771519e3 Don't show stacktrace in case of invalidorder Error f91557f5 Add space to exception message 514860ac Improve documentation 9d7ebc65 Move return statement to correct intend 6aab3fe2 Add test for stoploss order handling behaviour 7c0a49a6 _notify_sell needs ordertype seperately 292df115 Support selling via emergencysell 9f53e9f5 Raise InvalidOrder error when stoploss-creation fails ee808abf Add emergency_sell as sell reason 7fc15664 simplify stoploss_oe code f0c0f561 Abstract creating stoploss-orders from stoploss-logic 2886fa28 fix documentation 736deaae Add test with plot command without configuration c9e15c2f Add test for new check_exchange branch d48f03c3 check_exchange is not required for plotting 1760a8df Use subparser-name to exclude from config requires f278fcfc Use plot-runmode for plot scripts 423805c9 Small documentation improvements d060d277 Add test for all messagetypes 75dc174c support all messagetypes in webhook d977695d Catch NotImplementedError when sending messages b6b7dcd6 Test NotImplemented is cought correctly cabe2910 Fix test-leakage by not copying config correctly 6b3d25b5 Fix datadir init when used wiht --exchange 68adfc66 Init exchange before datadir ... c38f3a2b Apply dynamic versioning to develop 8923c022 docstring wording 756f44fc highlight really important notifications 51fbeed7 Rename TestStrategy to SampleStrategy d66fb864 Add documentation for interface_version a504abf0 minor: improvements in confuguration.md d9c2b7d4 fix fetching ticker_interval from strategy 0e62b8bd Update strategy_version to INTERFACE_VERSION 92011f82 Introduce strategy_version variable 6af51358 Bump pandas from 0.25.0 to 0.25.1 6b233eb8 Bump ccxt from 1.18.1068 to 1.18.1085 75e3d220 Bump pytest from 5.1.0 to 5.1.1 e5da5f7f Bump mkdocs-material from 4.4.0 to 4.4.1 bfc68ec7 minor cleanup in Backtesting 513e8488 Don't escape ticks where it's not needed da7da2ce Change tests to split function 3232251f Refactor downloading ohlcv from utils to history e603cca7 Testing with now() should not pass in date/time 8f8acf5b Update ccxt to have this implemented 565a543b Use ccxt base methods to round timeframe 5e12b054 Improve test coverage a4c8b5bf Move binance-specific test to test_binance.py cbf09b5a Improve docstring for Exception 2c66b33f Adapt some tests to use Binance subclass for stoplosslimit 067c122b Adapt test to use Binance class defa1c02 Move stoploss_limit to binance subclass ea179a8e stoploss_limit shall not use `create_order()` 8a17615b move exceptionhandling from create_order() to calling functions 3121206a correct wrongly named test 240936eb Small fixes 1336781f Reorder points in documentation to group analysis points 661cd65b Improvements to plot documentation fb498795 Improve profit-plot styling 2ae39891 Fix bug in bt-analysis when multiple trades sell at the same time d711b8c0 Plot-profit should have subtitles per subplot 395414cc Refactor init_plotscript a bit (strategy is not needed for plot_profit) 9f29ad77 fix test after plot_dataframe change 545e5c5b simplify load_trades call 1b374fcf Improve plotting documentation 518d7dfd Replace plot-scripts with pointers to the new commands f8ddb106 switch indicators to nargs argument type 0ef13be5 Test plot_profit c559f957 Add test for plot-profit f7cb75ff Add plot-profit command 29076acc Add test for analyse_and_plot 99b2be90 Cleanup plotting (if you have backtest results, no need to download data!) f8c72fee Add some initial tests for plot_dataframe 69c2b128 Move plot_dataframe as freqtrade submodule fcb0ff1b do not round values in the debug message 31669fde test adjusted cadf5731 round printed stoploss value as well a12876da fine printing for floats in the roi tables (round to 5 digits after the decimal point) 5b9711c0 adaptive roi_space ```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 6 years ago

FreqAI - 2019.8-1

Re-release of 2019.8 fixing wrong datadir settings (with this bug, downloads are placed in the wrong folder / backtesting does not find existing data).

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 6 years ago

FreqAI - 2019.8

Highlighted changes

  • Fix multiple bugs in relation to stoploss
  • migrate download_backtest_data.py to freqtrade download-data
  • introduce new parameter, --userdatadir to specify a directory structure for user_data. This will default to cwd/user_data and not change current behaviour if not used.
  • simplify minimal custom hyperopt file
  • lock pairs after trades for the current candle, to avoid sell/buy loops within one candle (mainly relevant when using longer timeframes (1h and up).

Full changelog

`` 44780837 Version bump to 2019-8 365b9c3e Add test to correctly handle unsuccessfull ordercreation 3f6eeda3 Reset stoploss_order_id when recreating fails a8842f38 Fix wrong exception message 667a6233 adjust tests 067208bc make backtesting an attribute of Hyperopt 70ebd09d Add checks verifying that stoploss is not 0 (and positive-stoploss is also not 0). 782f4112 Add test checking stoploss == 0 values d19b11a0 exchange cosmetics 0e81d720 Clense jupyter notebook b2ef8f4e Add additional header 81925dfa Fix some doc inconsistencies fe12d2e3 Fix documentation syntax df1f5739 use seperate job for doc test 949ca1ab Fail travis if doc-test fails 13ffb392 Adjust tests to fixed loading method 75b2db44 FIx loading pairs-list 14aaf897 fix download replacement script 210f66e4 Improve wording 91e72ba0 small formatting issue be308ff9 Fix grammar error in documentation 4ee35438 Improve deprecated docs 11dab2b9 Deprecate documentation for --refresh-pairs-cached f02adf2a Deprecate --refresh-pairs-cached 9e249928 Remove calls to load_data using live= e9e2a834 remove--livereferences 8cc477f3 edits 8d1a575a Reword documentation 70b1a05d example in the docs changed 9ad9ce0d Bump ccxt from 1.18.1063 to 1.18.1068 a4ede02c Gracefully handle problems with dry-run orders ea4db0ff Pass object-name to loader to fix logging d785d763 make VolumePairlist less verbose b6462cd5 Add explaining comment 611850bf Add edge/dynamic_whitelist validation ddfadbb6 Validate configuration consistency after loading strategy 045ac101 Split test for buy-orders too ee7ba96e Don't do calculations in exception handlers when one element can be None 8e96ac87 Split exception tests for create_order acf1e734 Adapt lg_has calls to new standard d3009646 code formatting in test_dataprovider.py 407a3bca implementation of ohlcv optimized 310e4387 logging message improved 8a2a8ab8 docstring for ohlcv improved 5e440a4c Improve docs to point tofreqtrade download-data` 2cffc322 split example notebooks 7fa6d804 Add note explaining how / when docker images are rebuild 0e87cc8c Remove pyup.yml 351740fc Change pyup to every month (should ideally not find anything ...) 9143ea13 Bump ccxt from 1.18.1043 to 1.18.1063 e0335705 Add dependabot config yaml 4ce3cc66 Bump sqlalchemy from 1.3.6 to 1.3.7 fce3d758 Bump pytest from 5.0.1 to 5.1.0 cda912bd test added 84a0f9ea getpairdataframe helper method added 08fa5136 use copy of minimalconfig ... 7a79b292 Fix bug in pairs fallback resolving a53e9e3a improve tests for downloadmodule f7d5280f Replace ARGSDOWNLOADER with ARGSDOWNLOADDATA 29c56f44 Replace downloadbacktestdata script with warning message c9207bcc Remove blank line at end 132f28ad Add tests to correctly load / override pair-lists b2c21502 Add tests for downloaddata entrypoint 89257832 Don't use internal API methods 219d0b7f Adjust documentation to removed download-script 4e308a1a Resolve pairlist in configuration 3c15e3eb Default load minimal config 8655e521 Adapt some tests 05deb9e0 Migrate download-script logic to utils.py 91886120 use nargs for --pairs argument 09286d49 filedumpjson accepts Path - so we should feed it that 53db3826 Update dockerfile python version 8d206f83 Fix wrong warning box b94f3e80 tests fixed 2a842778 tests added e525275d make flake and mypy happy 4fa92ec0 hyperopt: --print-json option added 69eff890 Improve comment in testhistory to explain what is tested 12677f2d Adjust docstring to match functioning of loadcacheddata a94a8908 Don't forward timerange to loadtickerfile fd77f699 f the string f5e437d8 Change createtrade to createtrades for new test 11790fbf Fix typos in docstrings f3e6bcb2 Avoid using negative indexes b2a22f1a Fix samll errors 9d3322df Adapt history-tests to new loadcacheddata header 91d1061c Abstract tickerdata storing 0ffb184e Change some docstrings and formatting from history 096a6426 Override equality operator 84baef92 Rename gethistory to gethistoricohlcv 51c3a31b Correct imports and calls to parsetimerange 06fa07e7 Move parsetimerange to TimeRange class 4da2bfef Improve docstring for some downloading methods d6f5f6b7 Add test with preexisting trades a4ab4256 improve docstring for createtrades a76136c0 Rename createtrade to createtrades e35a3492 Fix spelling of interface.py docstring 3d36747b preface in configuration.md reworked 4c4ba08e colorama added to installrequires 94196c84 docs: explanation for --no-color and colorization schema for results 9d476b5a Also check 0 open trades 0a07dfc5 Add test verifying that multiple trades are opened in one iteration d69f7ae4 Adapt final tests to support multi-trade creation 974d899b Adapt some more tests 6948e0ba Handle orderbookdepth check correctly a325f1ce adapt some tests 997eb757 Support creating multiple trades in one iteration 8873e007 processmaybeexecutebuy does not need to return bool c29389f5 Remove process() checks from tests 4b8eaaf7 freqtradebot.process() does not need to return anything 8d813fa7 Remove return-value for _process 28e318b6 Lock pairs for stoplossonexchange fills too 2961efdc Initial test for locked pair 3c589bb8 fail if known bad exchanges are detcted d8dbea9d Add exchangereasons to bad exchanges f960ea03 Remove duplicate test de802341 hyperopt options updated in bot-usage.md 482847a9 docs adjusted; various fixes to bot-usage.md and configuration.md 58d308fd fix handling --no-color for edge and backtesting 59acd5ec Lock pair for the rest of the candle in case of sells ca739f71 Fix default argument handling for timeframetonextdate 23a70932 Remove pointless tests (without config?? really?) 1a34b9b6 --no-color option introduced 8f929128 final colorization schema 2600cb7b simplify timeframenextdate calculation 200b6ea1 Add ispairlocked dd30d746 Update python-rapidjson from 0.7.2 to 0.8.0 6f42d665 Update arrow from 0.14.4 to 0.14.5 c4cdd85e Update ccxt from 1.18.1021 to 1.18.1043 0bd71db5 Update scipy from 1.3.0 to 1.3.1 feced71a Test closing sell-orders immediately 444ee274 close dry-run orders in case of market orders bb0b1600 Remove duplicate test 241d5100 Handle and update sell-orders immediately if they are closed c042d08b Add lockpairs to interface 1ce63b5b Reformat tests to be easier readable dd0ba183 Add timeframetoprevcandle 933a553d Convert timeframe to next date af67bbde Test timeframetox 43b41324 Improve hyperopt-loss docs 197ce0b6 Improve documentation wording for multiconfig files e5dcd520 cosmetics in samplehyperopt and defaulthyperopt 90b75afd test added to load config with comments and trailing commas 2d60e4b1 allow comments and trailing commas in config files c5d8499a Improve documentation regarding tests b77c0d28 Replace all "logentry" in caplogrecordtuples a636dda0 Fix remaining tests using loghas dc5719e1 Adapt rpc to new loghas method d53f6302 Change loghas to get caplog instead of caplog.recordtuples in more tests 02216073 Change loghas for some tests a1b5c724 Change log-has to use recordtuples itself a225672c Add tests for dry-run stopossonexchange 4b4fcc70 Change stoplossonexchange in freqtradebot e02e64fc Add test to make sure dry-run disables stoploss on exchange 176beefa Disable stoploss on exchange for dry-runs 1a85e3b4 Fix numpy warning 5209ce5b tests: don't mask numpy errors as warnings in tests 6d89da45 Add test for fromconfig eb328037 combine normalize method and config validation to infiles afba31c3 change method from loadconfigFiles to fromfiles() c4cbe79b Adjust documentation 48d83768 tests fixed ab092fc7 Reinstate comment on backesting data 28d8fc87 tests adjusted ad6a2498 downloadbacktestdata.py adjusted 50c9679e move loadconfigfile() to separate module 8eb39178 code block instructions. removed extra packages dd35ba5e added imports to doc code blocks. 3cc772c8 added reminders 247d7475 fixes to example notebook. 51d59e67 fixed another instance of Path in docs and nb ae39f6fb use of termcolor eliminated 15cf5ac2 docs improved ccf3c698 edits to clarify backtesting analysis 8ad5afd3 As -sharpratio is returned the value should be nagative. 0d4a2c6c advanced sample hyperopt added; changes to helpstrings 2bc67b4a missed a call of os.path. removed it. 9df1c23c changed Path, added jupyter 7a47d81b Ensure git reset --hard is realy desired 831e7088 Detect virtualenv and quit in that case 757538f1 Run ldconfig to add /usr/local/lib to path cc4900f6 Doublecheck if virtualenv IS present 7d02580a setup.sh script shall fail if venv initialization fails 5864968c Update plotly from 4.0.0 to 4.1.0 33bc8a24 Update ccxt from 1.18.1008 to 1.18.1021 dfce2020 Update mkdocs-material from 3.1.0 to 4.4.0 8418dfba edits for jupyter notebook example caf45803 Use UTC Timezone for test a90ced1f Since arguments are in milliseconds integer throughout ccxt. 81f77305 Add test to verify tickerinteval is set 7e91a0f4 Fail gracefully if ticker-interval is not set 9d471f3c Fix documentation for strategy-list 988a0245 Update install-script to use parameter 0376630f Update urllib to latest version c7d03297 Clean up comments of detail-backtests bc2e920a Adjust code to verify "current" candle for buy/sells 3721610a Add new detailed trade-scenario tests 90438105 Add documentation for conda install 5e64d629 Update coveralls from 1.8.1 to 1.8.2 d71102c4 Update pyfind1st from 1.1.3 to 1.1.4 403f7668 Update jsonschema from 3.0.1 to 3.0.2 930c25f7 Update scikit-learn from 0.21.2 to 0.21.3 187d029d Update arrow from 0.14.3 to 0.14.4 9914198a Update ccxt from 1.18.992 to 1.18.1008 c6444a10 move roispace, stoplossspace, generateroitable to IHyperOpt 9cbab35d colorization by means of termcolor and colorama 2af663dc rename analyzetickerint to _analyzetickerinternal 4d1ce817 intend if to be clearer c5ccf447 Remove generatedataframe from plotdataframe script e4380b53 Print plot filename so it can be easily opened 62262d0b improve docstring of _analyzetickerint 52d92cba Split analyzeticker and analyzetickerint c6bd1437 add Operating system to issue template d51fd1a5 fix typo c4e30862 loadtradesdb should give as many columns as possible 3dd6fe27 wording fe796c46 test adjusted f200f52a hyperopt print colorized results d59608f7 adjust some documentation wordings 8ab07e04 Add FAQ section about restricted markets ad55faaf Fix odd test bbd58e77 Warn when using restricted pairs e8b2ae0b tests adjusted 13620df7 'with values:' line removed 3b65c986 wordings fixed cad7d913 tests: hide deprecation warning due to use of --live b152d1a7 docs agjusted, plus minor fixes aa8f44f6 improvements to hyperopt output 3eb571f3 recommended ... 32605fa1 small improvements 0b9b5f39 Improve document wording 76d22bc7 Show correct valueerror message 01cd3098 Improve wording fceb4111 Create detailed section about strategy problem analysis 0413598d adding environment.yml for conda builds 3ccfe88a tests adjusted 065ebd39 cleanup in hyperopt 2a141af4 Only create userdir when explicitly requested 8cef567a create and use hyperopt-results folder 5d22d541 Add forgotten directory c3d14ab9 don't use "folder" ... 04885258 Fix some documentation errors b976f246 tests adjusted 8f1f416a hyperopt cleanup and output improvements 59caff8f UPdate developer docs f825e81d developers need all dependencies! 7bea0007 Allow installing via submodules 8dd8addd Sort requirements-dev file e14dd497 Improve release documentation 7a97995d 2017.7-dev version bump 03e60b9e Rename folderOperations to directoryoperations c1bc1e31 Add documentation for userdatadir 73ac98da Small fixes while tsting 14b43b50 Use userdatadir for hyperopt a3c605f1 PairListResovler to use userdatadir 333413d2 Add defaultconf to strategy tests 9de8d727 have strategyresolver use userdatadir 432b106d Improve docstring, remove unneeded method 2c7a2483 Use userdatadir in hyperopt 11394713 userdatadir is PATH in config, not str 0a253d66 Remove os.path from hyperopt ae0e0011 Fix some bugs in tests eab82fde plot-scripts use userdatadir da755d1c Remove obsolete variable 1b2581f0 Add userdatadir to configuration 56c8bdba Test create-userdir command line option 23435512 Add create-userdir command to initialize a user directory 6c3a0eb1 add createuserdir function c85cd13c Change default backtest result to "backtestresults" - backtest_data is misleading

```

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 7 years ago

FreqAI - 2019.7

Upgrade Note:

Please make sure to update your installation dependencies (pip3 install -r requirements.txt), several dependencies have been updated and freqtrade will produce errors when used with the old version of these dependencies.

Highlighted changes

  • Allow specification of custom hyperopt path
  • Allow custom hyperopt loss function (includes Sharpe Ratio inspired Loss-function now).
  • important improvements to align hyperopt with backtesting by default

Deprecations

  • --live option for backtesting has been deprecated since it's confusing and generates virtually no value, since the backtesting-period would be too short.

Full changelog:

5ba0aa80 Update plotly from 3.10.0 to 4.0.0 3e95b7d8 Update mypy from 0.711 to 0.720 0f632201 Update pytest from 5.0.0 to 5.0.1 ebca1e43 Update flake8 from 3.7.7 to 3.7.8 a3620c60 Update flask from 1.0.3 to 1.1.1 9f70ebec Update arrow from 0.14.2 to 0.14.3 0fd91e44 Update sqlalchemy from 1.3.5 to 1.3.6 fe088dc8 Update ccxt from 1.18.860 to 1.18.992 5a6e20a6 Update pandas from 0.24.2 to 0.25.0 02bfe2da Update numpy from 1.16.4 to 1.17.0 b691fb7f Fix some hyperopt tests 08a3d263 Update bot-usage.md bc299067 get rid of pandas warning in pytest c2deb1db eliminate warnings in pytest when testing handling of the deprecated strategy interfaces 785a7a22 output divider in logs between throttles 1ac4a7e1 rendering for a Note fixed 327e5052 non-working link to misc.py removed bf1c197a import errors fixed 3c3a902a Move argument definitions to their own file 0c14176c Deprecate --live 7ee971c3 Add simple method to add deprecations to cmd line options 10c69387 docs adjusted 4b8b2f7c Use raise xxx from e to have a nicer traceback e1b8ff79 Add test to verify that get_order was successfully cought 05b18549 Gracefully handle InvalidOrderException. f58668fd test added 05be16e9 helpstring alignment fixed e9b77298 max() removed a0cecc6c Fix test after pandas 0.25.0 update cf611306 Resolve issue #2042 0c2c094d minor: add OnlyProfitHyperOptLoss 60cf56e2 Adapt tests to always provide message for ccxt exceptions 482f5f7a Update plotly dependencies (will break 3.x installations) 04382d4b add --hyperopt-path option 44b2261c Update plotly from 3.10.0 to 4.0.0 76b9d781 Update mypy from 0.711 to 0.720 bd0faaf7 Update pytest from 5.0.0 to 5.0.1 e0cd34c9 Update flake8 from 3.7.7 to 3.7.8 6c41ca4b Update flask from 1.0.3 to 1.1.1 7add015a Update sqlalchemy from 1.3.5 to 1.3.6 d6b6e59a Update ccxt from 1.18.860 to 1.18.965 a213674a Update pandas from 0.24.2 to 0.25.0 d2ad32ee partially revert last commit(DefaultStrategy import IS needed). 1fea6d39 Import DefaultStrategy from the correct file dcddfce5 Fix small mistakes e6528be6 Config is not optional for hyperopt resolver 08ca260e Simplify return valuef rom _load_object 88eb93da Fix base64 strategy test to make sure strategy was loaded via base64 b35efd96 Extract load_object from multiple paths to iResolver 89db5c6b Extract strategy-specific stuff from search logic fa890497 Don't use --hyperopt-loss-class, but --hyperopt-loss instead 4a144d1c docs: description for whitelist and blacklist fixed 7af24dc4 cleanup Arguments: name attrs and methods as non-public e01c0ab4 Improve doc wording 8b4827ad Convert create_datadir to Pathlib 43d5ec2d docs: removed historical excursus which can confuse new users 75a0998e docs: restore link to #dynamic-pairlists. 50d2950e add -V alias for --version 96564d0d remove deprecated --dynamic-whitelist option 3e5abd18 Randomize tests again 545ff6f9 Fix typo 49b95fe0 use Path.cwd() instead of odd parent.parent.parent structure b8704e12 Add sample hyperopt loss file 639a4d5c Allow importing interface from hyperopt.py 0e500de1 Add sample loss and improve docstring 8ccfc0f3 Remove unused variables be26ba8f rename _load_*_config() methods to _process_*_options() 14937710 improve description 192d7ad7 Add column description to hyperopt documentation 12679da5 Add test for hyperoptresolver ec49b22a Add sharpe ratio hyperopt loss d23179e2 Update hyperopt-loss to use resolver 7d62bb8c Revert --clean argument to --continue c4e55d78 reword documentation 07a1c48e Fix wrong intendation for custom-hyperopt check 7be25313 Add some mypy ignores 55e8092c Add sharpe ratio as loss function e5170582 Adapt tests to new loss-function method 710443d2 Add documentation for custom hyperopt 2a20423b Allow loading custom hyperopt loss functions 8096a1fb minor: configuration cleanup 2fedae60 Move unnecessary things out of generate_optimizer b1b4048f Add test for hyperopt 107f00ff Add hyperopt option to clean temporary pickle files a3b7e1f7 Update wording in docs bbab5fef Remove wrong import in legacy startup sript 00770315 do not export ARGS_* from configuration 9cae2900 get rid of patched_configuration_open() in tests 876cae28 docs adjusted to current default values; more detailed description of --eps and --dmmp added e955b1ae Use log_has_re instead of plain regex filters for log messages dadf8adb Replace filter usage 4238ee09 Cleanup some code 65f77306 using logger.debug, info was too noisy efbc7ccc enable --dmmp for hyperopt a8f3f2bc Extend test to cover market orders with price too 25822d17 Add empty options dict to all tests using create_order 9887cb99 Check if Price is needed for market orders 2e1269c4 Revert comment for Exception that's not changed b499e745 minor improvements to resolvers bbfbd87a move create_datadir() to separate file 7e103e34 flake happy 94e6fb89 tests happy 1bdffcc7 make configuration a sep. module, including arguments e993e010 Fix #2013 6a431280 Fix non-rendering docs c474e2ac fix #2008 322227bf fix #2005 27cb1a41 Add FAQ section explaining "module not found" errors c4fb0fd6 Don't run the bot with python3 freqtrade 15d2cbd6 loggers: wording improved f7a2428d max_open_trades may be -1 6c2415d3 Rename parameters from pair to curr 84d38689 rename loglevel --> verbosity, because it's not logging level f89b2a18 fix loglevel in conftest -- it's actually the verbosity level 8114d790 commit forgotten loggers.py 082065cd minor cosmetics in arguments.py a65b5f8e make some more arguments positive integers d8f133aa remove duplicated loglevel option 8e272e57 minor: cosmetics in arguments.py ce2a5b28 move loggers setup out of configuration 17800c8c Remove folder references (it's directory!) 5c6039fd Fix #1997 - rename folder to dir 40fe2d2c Test get_valid_pair_combination 1bcf2737 Add tests for new behaviour fcdbe846 Fix #1981 - Detect reverted currency pairs b80cef96 fix validate_timeframes(); test added b3644f7f Fix typo in docstring d41b8cc9 catch ccxt.BaseError 91fb9d01 fix #1995 85ac217a Remove duplicate keyword from arguments c91add20 Update mypy from 0.710 to 0.711 1e4f459a Update pytest from 4.6.3 to 5.0.0 06ad04e5 Update ccxt from 1.18.805 to 1.18.860 0d601fd1 Remove logger message 01904d3c Test not having timeframe available on exchange object 0c7d14fe Check if timeframes is available and fail gracefully otherwise 59818af6 Remove common_datearray function 44e05009 Test init_plotscript db59d39e Don't use class for plotting 587d71ef Test generate_profit_plot c7a4a16e Create generate_plot_graph 0b517584 Use add_profit in script 5a11ffca Add test for add_profit 0a184d38 create add_profit function 6b387d32 extract combine_tickers to btanalysis 348513c1 Improve formatting of plotting.py 0d5e94b1 Rename generate_row to add_indicators 88545d88 Use FTPlots class in plot-scripts 42ea0a19 create FTPlots class to combine duplicate script code c87d2704 align plot_profit to plot_dataframe 700bab72 Rename generate_plot_file to store_plot_file c3db4ebb Revise plot_profit to use pandas functions where possible 8aa327cb Add load_trades abstraction (to load trades from either DB or file) 4218d569 Only read trades once e50eee59 Seperate plot-name generation and plotting 45068329 Update docstring 79b4e2dc Rename generate_graph to generate_candlestick_graph edd3fc88 Add test for create_cum_profit e8796e00 adding bitstamp to list of bad exchanges. 044be3b9 Add create_cum_profit column 0436811c Use mode OTHER, nto backtesting 4f5e212f fix #1978 21bf01a2 partial freqtradebot cleanup 16a9e6b7 Improve install documentation e5a8030d comment added 6643b83a Update tests to test both balance versions 98681b78 Show ifferent message for balance in dry-run f8dd0b0c Use parenteses instead of \ seperators f04d4988 Add test to verify behaviour if currency in fee-dict is None 3043a8d9 Be more explicit about what's missing 05d93cda fix #1963 6fc6eaf7 minor: couple of typos fixed 1d5c3f34 Update qtpylib from source 353437bb 07 is July!! 8e92fc62 Use correct new versioning now c1065346 Improve developer-document b92c6cdf Cleanup arguments and test_arguments ca509390 Use build_args for plot script ba7a0dde Use build_args for download script 27798c16 Remove main_options ee312ac2 Use build_args for plot_dataframe script 7e82be53 Use build_args to build subcomand arguments 7017e46b Add dict with all possible cli arguments 7166674d Move check_int_positive out of arguments class e1daf027 UPdate version for develop 1b156e0f Don't install python to a system, it's error-prone and may not work c1ee5d69 Try to get travis cache to work correctly 7fbdf36c avoid code duplication while selecting min_roi entries 144e053a fix for #1948 a8efb1e1 test for #1948 added

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 7 years ago

FreqAI - 2019.6

This release will change the version-number from "random" numbers to calendar-based versioning, so it's immediately obvious how old a version is.

some important changes

  • many usefull improvements to hyperopt
  • Add REST API server/client to control the bot
  • tons of bugfixes and small improvements

Full Changelog

e83f8941 Fix documentation grammar d6dbb21a Update mypy from 0.701 to 0.710 90ada064 Update wrapt from 1.11.1 to 1.11.2 e8429bd2 Update sqlalchemy from 1.3.4 to 1.3.5 5a30f046 Update ccxt from 1.18.725 to 1.18.805 11d39bb0 Improve wording 116d8e85 typos in docstrings fixed 5b84cb39 typo fixed 7f018839 diverse cosmetics to options help strings 3716c04e fix help string for --db-url 451d4a40 fix help strings shown to the user 4cbcb5f3 Move .title to ExchangeResolver (it does not make sense to do this over and over again) 026784ef remove get_tickers_data from plot_dataframe cc56d0e0 Remove unneeded initialization 559d5ebd Remove combined load-method since it's confusing 3e61ada3 Be explicit in what is used, db or trades 8758218b Add data-analysis documentation de38aea1 Fix sequence of loading trades db17b20e Don't require pairs but fall back to pair_whitelist instead a581ca66 Adapt test after merging develop 7a0d8666 Mypy type errors 1a27ae8a Add tests to verify that ticker_interval is there f907a487 make ticker_interval available to hyperopt functions 89ba649d Test handling errors while trailing stop loss 63640518 Gracefully handle errosr when cancelling stoploss orders a8dcfc05 Add test to verify InvalidOrder is handled correctly dd379c41 Cancelling stoploss order should not kill the bot 911e71cd remove redundant test-functions 0866b5f2 allow reading config from stdin 860e0563 --datadir is now handled in arguments.common_options() c6fed4e4 make flake happy 8c40a406 arguments cleanup 6f950bbd json validator cosmetics 0e7ea1da Update coveralls from 1.8.0 to 1.8.1 6973087d Update pytest from 4.6.2 to 4.6.3 25755f6a Update ccxt from 1.18.667 to 1.18.725 ba4890d3 Fix tests on windows 7cd36239 UPdate documentation with new value 06afb3f1 Don't use "limit" for sell-orders either 55712292 Add order_type to sell-notification 475e76b2 Add order_type to buy_notification d217f32b minor: fix typo in freqtradebot.py 195bf5a4 tests adjusted 813c008a setup_configuration() cleanup 765eff23 Fix typo 0eb109f8 Improve some tests fc3e3c46 File existence is checked in load_backtest_data 4b7dfc64 Add test for generate_plot_file 488bb971 Get rid of global conf object 907c2f1e Copy plot options to config 3f04930f Require pairs argument 0300128c Move plot-options to arguments.py bf2c0390 Adjust some imports 1cd84157 Move extract_trades_of_period to btanlaysis 1c53aa56 Add tests for load_trades c7643e14 Move load_trades to bt_anlaysis 9f5ca82f Add more tests 6db4e05a Improve plotting tests 2891d7cc Add initial plotting test cae21854 Move generate_plot to plotting.py 63471619 don't use print in plot_dataframe b1a01345 Add better hover tip e0a1e541 sanity checks before plotting, cleanup 6df0b39f Cleanup plot_dataframe a bit 68af6d41 Move plot-functions to plotting module 583d70ec add plot module proto 9035e0b6 Update function due to merge of #1926 114de8a0 Remove unused imports 442339cd Add tests for utils.py e6cab6d7 Move get_args from multiple locations to conftest 472e7f80 Fix Line too long error 4a916125 Tests need to pass pair to parse_ticker_dataframe 89ff614e Add pair as parameter, and warn when fillup was necessary 55079831 Don't explicitly validate backtest data (it's done while loading now). d047a9d8 Adapt tests for new validate_backtest signature cd4cf215 Convert validate_backtest_data to take dataframe directly 01b5ece6 Log missing data filllup if necessary 36dd061b Update slack link since the old one expired a77d75eb Check log output since that's whats shown to users 707118a6 Test stake changed to unlimited ad9dc349 edge cli should override stake_amount 09cd7db9 make flake happy 1af98871 add --one-column as an alias option cedd3845 remove configuration from list-exchanges 1afe6c14 Don't run validation per strategy, it's only eneded once 941fb4eb tests added ee113ab8 log messages aligned 04ea66c9 fix handling timeframes 9657b1a1 explict parse to string for ticker-interval e08fda07 Fix bug with timeframe handling 550fbad5 Add test-cases with trailing_stop_offsets 160894c0 Calculate profit_high to make sure stoploss_positive_offset is correct 578180f4 Add test for sell-signal sell b64b6a25 Support trailing_stop_positive options in BTContainer a4d84242 trailing_stop_positive should only be set when needed, and none/undefined otherwise a65c89f0 test adjusted 0cc2210f wording fixed 8df40a6f make flake happy 9c649658 list-exchanges subcommand added dc7f8837 no need to duplicate this long error message db6ccef6 return back check in init_ccxt() 676e7300 enhance check_exchange 7322a34f fix metadata in tests 4801af4c debug logging for IStrategy.advise_*() added d55f2be9 make flake happy cd60d6d9 make --days positive int only dc0326db fix handling --exchange 6636f0c7 Update pytest from 4.6.1 to 4.6.2 1a41d4e6 Update python-rapidjson from 0.7.1 to 0.7.2 9961c0e1 Update arrow from 0.14.1 to 0.14.2 5c5b0eff Update ccxt from 1.18.615 to 1.18.667 4dc3a0ca Small cleanup to reduce dict lookups during backtesting/hyperopt 90b0f1da minor optimize cleanup 792390e8 Add missing parameter for exchange-verify snippet 9f2e0b11 Parametrize ohlcv_candle_limit (per call) 33805438 Add test for drop_incomplete option ce317b62 Add docstrings to load_pair_history 6ad94684 Add WIP document of steps to test a new exchange fdbbefdd Make drop_incomplete optional 3fe5388d Document _ft_has_params override 7108a2e5 Add deep_merge for _ft_has and test 9c497bf1 Improve docstring for deep_merge_dicts d7c63347 Use kwarg for parse_ticker_dataframe adc12ed0 Fix new test after develop merge 5273540a Fix test failure (double-trailing newlines are removed now) f9fe2663 check for runmode before retrieving the orderbook a9ed5da3 added doc for DataProvider.orderbook() 2e6ded06 removed redundant print() 71342739 Update plotly from 3.9.0 to 3.10.0 f75e97e9 Update coveralls from 1.7.0 to 1.8.0 a132517f Update pytest from 4.5.0 to 4.6.1 3c1ae07f Update flask from 1.0.2 to 1.0.3 4ef8a749 Update arrow from 0.13.2 to 0.14.1 51113dae Update sqlalchemy from 1.3.3 to 1.3.4 c04a8a10 Update ccxt from 1.18.578 to 1.18.615 bd8edd61 Update numpy from 1.16.3 to 1.16.4 107c3beb Fix test-failure introduced in #1891 36dae7cc trailing stoploss reason fixed c68fe7a6 example how to use best bid and ask in strategy 19942646 implemented DataProvider.orderbook() 338f2a23 Use kwarg to call persistence.init() 1add4326 docs adjusted e4e22167 make mypy happy 6b144150 fix handling of SystemExit ef15f2bd log messages slightly improved 39932627 typo in log message fixed 11f535e7 change prints to logging f463817c change metavar for --pairs-file b6e8fecb Change persistence.init parameter d6cf3144 Don't default to false for init() fb88953b refactoring download_backtest_data.py 15984b5c Adjust some tests - implement new "live" method to plot_script c2f6897d Move download of live data to load_data d7bebc43 persistence.init does not need the config dict 7b367818 Remove duplicate code 9e4dd6f3 Read bin/freqtrade with deprecation warning 22144d89 Fix mypy error c5ef700e Use autogenerated entrypoint 17d614c6 Remove binary script - allow None arguemnts 7406edfd Move set_loggers to main() ea83b2b1 legacy code removed. db2e6f2d tests adjusted 58477dcd cleanup: return after cmd removed in main() 536c8fa4 move python version check to the top 55bdd264 Edgecli -> Edge for Runmode and start_edge() 89f44c10 Fix grammar error 8b028068 Fix typos, add section for custom indicators f7766d30 Improve plotting documentation 09e037c9 Update scikit-learn from 0.21.1 to 0.21.2 bfb6dc4a Update cachetools from 3.1.0 to 3.1.1 196a1bcc Update ccxt from 1.18.551 to 1.18.578 19886626 Update plot-script to work with exported trades dab4307e Add secure way to genreate password, warn if no password is defined e335e6c4 Fix some wordings 0e228acb minor: exchange debug logging humanized 201e02e7 Add test for Timeout - move tests to test_history 71447e55 Update missing import 8ad30e26 Adapt tests 104f1212 Move edge_cli_start to optimize 65a4862d Adapt tests to load start_* methods from optimize 236c392d Don't load hyperopts / optimize dependency tree if that module is not used b38c4314 Adjust imports to new location 9225cdea Move validate_backtest_data and get_timeframe to histoyr 26a8cdcc Move telegram-setup to telegram page 3e0a71f6 Add docker install script to mkdocs index 4394701d Seperate docker-documentation b6484cb2 Replace technical link 90ece09e require username/password for API server febcc3dd Adapt tests and rest_client to basic_auth 2da71451 Switch auth to real basic auth 5bbd3c61 Add documentation 1fab884a use Authorization for client 04c35b46 Add authorization to tests 7e952b02 Add basic auth to rest-api 469c0b6a Adjust check_int_positive tests c3e93e75 fix reduce() TypeError in hyperopts 7bbe8b24 Add a few more testcases for check_int_positive 7b968a24 logger.exception cleanup 253025c0 Add tests for check_int_positive 7b074765 Improve edge tests - cleanup test file 6e1da139 Log message changed 406e266b typo in comment fixed 2c9a519c edge: handle properly the 'No trades' case 98eeec31 renaming of make_testdata_path reverted 7cb75375 tests adjusted 11dce912 data/history minor cleanup 51aa469f Cleanups 58ced364 Add documentation for stoploss updates 11fd8a59 cleanup stoploss documentations a39cdd3b Exclude Edge from startup-stoploss calc 53af8f33 Deep-copy default_conf for edge config 9f541814 Add test for stoploss_reinit 6a5daab5 add logic for stoploss reinitialization after startup 349c0619 Move startup to freqtradebot 96a34f75 Adapt test to new output from arrow 04e13eed Update filelock from 3.0.10 to 3.0.12 5b24ac78 Update scikit-learn from 0.21.0 to 0.21.1 34c7ac89 Update requests from 2.21.0 to 2.22.0 3404bb18 Update arrow from 0.13.1 to 0.13.2 de95e508 Update ccxt from 1.18.523 to 1.18.551 703fdb2b Update scipy from 1.2.1 to 1.3.0 e7b9bc68 minor: remove noisy useless debug message fc96da86 Fix grammar messup f93e6ad0 Rename strategy customization file 8d8b4a69 Clearly warn about using future data during strategy development 2cf07e21 rename exception handlers e6ae890d small adjustments after first feedback 79cac36b Reference reest api in main documentation page 9385a27f Sort imports f2e4689d Cleanup script 70fabebc Document rest api c272e1cc Add default rest config fd5012c0 Add test for api cleanup bfc57a6f Adapt tests to new method of starting flask 540d4bef gracefully shutdown flask 5149ff7b Move api to /api/v1 01cd68a5 Test forcesell b700c64d Test forcebuy - cleanup some tests 350c9037 Test falsk crash 39afe4c7 Test flask app .run() b9435e3c Add more tests a7329e5c Test api-server start from manager a146c5bf Improve jsonification 557f8495 Improve 404 handling 03dc6d92 Remove hello() 3c468701 Test /count for api-server 88dd18e0 Move patch_signal to conftest 6b426e78 Tests for balance 70a3c2c6 Actions - Add tests 6ea08958 Fix docstrings b1a14401 Add some initial tests for apiserver e0486ea6 Make app a instance object 0ac434da Add forcebuy jsonification 6e4b1596 Add forcebuy and forcesell bc4342b2 small cleanup cb271f51 Add client actions for actions ea8b8eec Add edge handler b1964851 Add performance handlers 393e4ac9 Sort methods 0163edc8 rest-client more methods 3efdd55f Support blacklist adding 122cf4c8 Default add to None for blacklist rpc calls 938d7275 implement some methods 8f9b9d31 Reorder arguments d1fffab2 Rename internal methods to _ ebebf947 Change commands to post b0ac98a7 Clean up rest client a132d6e1 Refactor client into class a1043121 Add blacklist handler 5ba189ff Add more commands to rest client, fix bug in config handling d2c28112 Move rest-client to scripts 99875afc Add default argument ae8660fe Extract exception handling to decorator 01c93a2e Load rest-client config from file d8549fe0 add balance handler a12e0934 Api server - custom json encoder 2f808843 All handlers should be private 3cf6c6ee Implement a few more methods 8993882d Sort imports c6c2893e Improve rest-client interface 96a260b0 rest_dump 6bb2fad9 Reorder some things 9d95ae93 Add flask to dependencies 68743012 Patch api server for tests ef2950bc Load api-server in rpc_manager 6f67ea44 Enable config-check for rest server 26c42bd5 Add apiserver tests c3c745ca Get new files from old branch e2b83624 data/history cleanup 2741c5c3 inherit freqtrade exceptions from Exception i.o. BaseException 8b95e124 log message adjusted in backtesting and hyperopt 90a52e46 tests adjusted; new test_start_no_data() added for hyperopt 5677c488 minor: add ticker data validation; log backtesting interval 1cd98665 Update pyup only weekly 600f660f Update ccxt from 1.18.522 to 1.18.523 003461ec tests adjusted 00b4501c avg profit and total profit corrected (to be %, not ratio); comments cleaned up a bit; typo in the log msg fixed 11dca0bd Update pytest from 4.4.2 to 4.5.0 dccd6b4a Update ccxt from 1.18.519 to 1.18.522 46b1ecc7 Fix #1840 - Support balances other than USDT 652914a6 Update python-rapidjson from 0.7.0 to 0.7.1 22f902f0 Update ccxt from 1.18.516 to 1.18.519 131b2321 Add sample for order_types in config (slightly different syntax) 52da64b6 Align configuration files 75306b7a tests adjusted ab23db2f Update scikit-learn from 0.20.3 to 0.21.0 349d5563 Update ccxt from 1.18.514 to 1.18.516 0f43e0bb minor hyperopt output improvements 00383b94 Update pytest from 4.4.1 to 4.4.2 f36ccdd9 Update ccxt from 1.18.512 to 1.18.514 909df0d7 Improve doc wording 0410654c Add printing dataframe to documentation 45e58677 heikinashi loop optimized; reset_index moved to tests 1ccc25b4 Fix test-data indexing cf1ad3fd Update ccxt from 1.18.509 to 1.18.512 2554ebf2 fixed: heikinashi worked in backtesting, but failed in tests with testing arrays d642e03c heikinashi performance problem resolved db0644ed Update plotly from 3.8.1 to 3.9.0 a8c4bed4 Update ccxt from 1.18.508 to 1.18.509 6467d3b5 check python version c8b8806f Update ccxt from 1.18.507 to 1.18.508 1a677c74 Add explicit test for to_json 2b78f73f Adapt tests to to_json method 31d27108 Move json to persistence 2200a022 fixed heikinashi 1e056ee4 Move trade jsonification to trade class 6c03246e Update ccxt from 1.18.502 to 1.18.507 f506644a Improve docker documentation 66c2bdd6 flake happy 1be4c594 qtpylib/indicators.py updated 32e4b0b1 Update pytest-cov from 2.6.1 to 2.7.1 dad55fe7 Update ccxt from 1.18.500 to 1.18.502 6c2301ec Update ccxt from 1.18.497 to 1.18.500 46214ce7 Fix typo after feedback 26969998 test adjusted 4cecf046 Update ccxt from 1.18.496 to 1.18.497 e7b81e4d hyperopt --min-trades parameter b24bbb2c Improve test for reload_conf with a "realistic" workflow 5665426e better type hints in worker 61506797 Update ccxt from 1.18.493 to 1.18.496 537c0350 fix #1810 91642b2b Add tsts for forcesell-answers f71eda1c Have forcesell return a result 59bd081e Update ccxt from 1.18.492 to 1.18.493 21b31f11 Update ccxt from 1.18.491 to 1.18.492 40c02073 revert erroneous refactor dc12cacd Rename requirements-pi to requirements.common 99b08fbd Remove unused Hyperopt test lines bf2a39b7 Fix add requirements-pi.txt in dockerfile earlier eaf5547b Update ccxt from 1.18.489 to 1.18.491 ea44bbff prevent hyperopt from running simultaneously 45ecbc91 Use BaseError, not NetworkError in exception handler 22eb6cb5 Fix typo in args_to_config 65dcb6ac Catch errors on reload_markets b4630c40 Add typehints 86313b33 Combine optimize configurations, eliminate duplicates 87329c68 Change ticker_interval too ca3b8ef2 Remove duplicate argument a0413b5d Only log one message per call d6276a15 Convert all optimize to args_to_config 39f60c47 Add some more arguments to args_to_config 17cf9d33 add _args_to_conig 59f905a5 Update ccxt from 1.18.486 to 1.18.489 06057129 Update ccxt from 1.18.486 to 1.18.489 30888cf5 have pyup ignore outdated dependency eb89b65b Downgrade urllib3, cleanup requirements files a8e787fd test adjusted ad692c18 Improve comment a92d5f35 Parametrize default-param tests 95ebd077 an attempt to fix mocking 6a0f527e merge --job-workers and commit printing debug log messages with the opt state 65a82d7e Add some missing default parameters 6d2a1cfb remove full-config in tests and load full_config file a429f83f flake happy; check_positive() renamed 2f0ad0d2 test adjusted cc9f899c removed explicit dependency on multiprocessing module a022b1a6 --random-state for optimzer to get reproducible results added 8568459c Update urllib3 from 1.24.2 to 1.25 9a2eb46c Update urllib3 from 1.24.2 to 1.25 48e2bd51 Update ccxt from 1.18.485 to 1.18.486 a2a70bd6 Update ccxt from 1.18.485 to 1.18.486 3e3fce5f print optimizer state in debug log messages 7c8e26c7 -j/--job-workers option added for controlling the number of joblib parallel worker processes used in hyperopt 8dad8f25 docs refreshed ad85ac3d make --refresh-pairs-cached common option for optimization; added support for it into hyperopt 3da1b24b Update numpy from 1.16.2 to 1.16.3 42d2b24d Update ccxt from 1.18.483 to 1.18.485 8685fcd5 Update ccxt from 1.18.483 to 1.18.485 676cd6ff Add assert to make sure trade was closed a9de2f80 Add tests to update wallets after closing a limit-sell 6b87d94b --print-all command line option added for hyperopt 706b30f4 Fix "if" condition with "if not" for check if trade is open. 3bcc6033 Added command for Wallets Sync after a trade is closed in "update_trade" method in "freqtradebot" class, this will help the Wallets get updated after a trade is sold and closed, specifically LIMIT_SELL trades, then bot can work properly with new trades. abc4840d Update ccxt from 1.18.481 to 1.18.483 a118003d Update ccxt from 1.18.481 to 1.18.483 395aed5f Update plotly from 3.8.0 to 3.8.1 278e5f4c Update ccxt from 1.18.480 to 1.18.481 7fa50465 Update ccxt from 1.18.480 to 1.18.481 9b8067cb Improve developer documentation 8e8ec2fb version to 0.18.5-dev 5a65b6ca Update ccxt from 1.18.475 to 1.18.480 ed6a92cd Update ccxt from 1.18.475 to 1.18.480 72657758 Restore get_market_pairs from develop d82fb572 Update pytest-mock from 1.10.3 to 1.10.4 5c10e9a7 Update urllib3 from 1.24.1 to 1.24.2 578ad903 Update urllib3 from 1.24.1 to 1.24.2 789b4458 Update ccxt from 1.18.472 to 1.18.475 c299d924 Update ccxt from 1.18.472 to 1.18.475 c3a9db64 change comments to docstrings 8bdbfbf1 tests for options added f03acce8 typing of return value corrected 9fbe573c limit usage of ccxt to freqtrade/exchange only 3e4dd501 docs adjusted cb2f422e make `name` option required again 4559a381 PoC: use defaults in json schema for some exchange options 91dc2b96 support for defaults in json.schema

Scientific Software - Peer-reviewed - Python
Published by xmatthias almost 7 years ago

FreqAI - 0.18.5

Change log: 8abdbc41 Update mypy from 0.700 to 0.701 7f229bbf Update ccxt from 1.18.470 to 1.18.472 d4947ba0 Update ccxt from 1.18.470 to 1.18.472 2cee7161 Gracefully handle pickle-errors when @staticmethod is used a7383ad3 enable ratelimit in download-backtest-data too 52cc2d22 improve documentation for exchange configuration 5db10bdc Add rateLimit parameters for different exchanges 43119efa Remove ccxt_rate_limit completely (was deprecated) b2a623ee Update plotly from 3.7.1 to 3.8.0 c40406d2 Update pytest from 4.4.0 to 4.4.1 87ff5ad1 Update sqlalchemy from 1.3.2 to 1.3.3 aa63f2be Update sqlalchemy from 1.3.2 to 1.3.3 5cb90bdf Update ccxt from 1.18.468 to 1.18.470 4f557af6 Update ccxt from 1.18.468 to 1.18.470 7efab85b Update sqlalchemy from 1.3.1 to 1.3.2 0ece1688 Update ccxt from 1.18.353 to 1.18.468 6be4c6af Update ccxt from 1.18.466 to 1.18.468 4f6df731 Update documentation for Raspberry install since we now have a rpi-requirements file 5e0e8de4 Version bump to 3.7.3 in docker file 37b1389f Fix flake8 2f79cf13 Update ccxt from 1.18.460 to 1.18.466 9f828224 Update ccxt from 1.18.458 to 1.18.460 016e8fde wrong rendering at freqtrade.io fixed; other cosmetics in docs/ d87db70e Fix missing column header c3b9d699 Add docstring explaining the source of the script 12ca103f Update ccxt from 1.18.456 to 1.18.458 c2ca899c fixed printed message; cosmetic changes in the code in scripts/download_backtest_data.py 902ffa68 impoved argument and exception handling in scripts/get_market_pairs.py f736646a Update ccxt from 1.18.445 to 1.18.456 e75cdd4c Rename variable, add more tests 71e671f0 Update ccxt from 1.18.442 to 1.18.445 ff6967de Add test for too large balance 5c417095 Don't send too large messages ffdc33d9 Update ccxt from 1.18.437 to 1.18.442 ebf11263 cosmetic: rename interval, tick_interval, etc --> ticker_interval 3a81eb7d Update ccxt from 1.18.435 to 1.18.437 3ad4d937 Correct Dockerfile.pi file to use requirements-pi.txt c35e5ca7 Add back requirements-pi.txt file and put it into .pyup.yml e7c8e62d Remove requirements-pi.txt, change Dockerfile.pi to utilize the requirements.txt instead d6d16b46 docstrings improved dc1968b9 docstrings added d294cab9 adding order id to invalidorder exception message f1391781 rpc_counts should be in .rpc 4eb0ed9f Add Dockerfile.pi for building docker image for raspberry pi 7a598f32 Move rpc-count calculation to _rpc class 481df98f Update ccxt from 1.18.432 to 1.18.435 41ff2a92 TemporaryError removed acb99a03 adding stoploss on exchange manual cancel note a505826e flake8 54d068de missing test added 25d8e93a remove unnecessary comment 9712fb2d removing unnecessary comment 2b49a11b returning InvalidOrder exception for get_order 4c5432be Added command line options in backtesting to override max_open_trades and stake_amount 13e8f25c Improve docs layout ac1964ed Remove unnecessary comment dbb1bbf1 Fix webhook documentation 7486cb7c fix admonitions e3cdc0a0 typos and visual fixes 6913bce6 flake8, import in script/plot_profit.py 7010c835 Improve commentign 2aa1b43f get rid of TICKER_INTERVAL_MINUTES dict, use ccxt's parse_timeframe() instead 32cbb714 Improve commenting on backtsting and backtest_multi_tst 7f4fd616 test for canceled SL on exchange added 647534a4 flake8 31fa8573 typo a363d443 stoploss on exchange canceled handled ebeaf64f Update mypy from 0.670 to 0.700 6afe232c Update ccxt from 1.18.430 to 1.18.432 0cdbe714 stake amount not amount 65350ad5 final flake happy 5488c66f flake8 9ee1dd99 tests fixed 0307ba78 Remove one branch - python does lazy evaluation 1a5b0969 Fix tests (both tests where testing the same thing) 3c399fbe Improve whitelist wordings d5498c87 adding % a3fe5f57 adding stake amount to telegram message 92dc3c89 Update sqlalchemy from 1.3.1 to 1.3.2 eb610441 Update ccxt from 1.18.425 to 1.18.430 67eeb145 flake8 a3835b12 flake8 5f38d5ee removing % sign as it is already a pct 53eaf859 filtering edge pairs for RPC d54acca5 move tests back to original codebase to minimize changes b0ddb33a tests cleanup: Worker --> FreqtradeBot where the Worker object is not really needed 62141d3d test cloned, separate tests for worker and freqtrade states 7b39a308 formatting and readability a6daf0d9 formatting pct 54f11ad6 enriching TSL log 40df0dcf tests fixed 99d25642 adding InvalidOrder to exchange 389feda6 Invalid order exception added b9b76977 Update ccxt from 1.18.420 to 1.18.425 0cfdce0d Update function name from update_open_order to update_trade_state ab0e657d Check for empty whitelist moved to _process() 34b40500 Check whitelist fetched from config for emptiness a3b01355 documentation added for telegram 8546db9d wording in the log message ab579587 adding percentage to telegram status messages 061f91ba Update pytest from 4.3.1 to 4.4.0 97b31352 Update ccxt from 1.18.418 to 1.18.420 77d2479c tests adjusted f0b2798c fix #1704 7251e5bd bot state moved back to freqtradebot from worker 7be90f71 Add test as called from execute_buy 19d3a0cb Update comment 0ddafeea Split test for open_orders from maybe_sell b2ad402d Split tests for update-open_order e46dac3f Test stoploss does not raise dependencyexception 5c8fbe2c Handle exception for stoploss independently of sell order f11a1b01 Call update_open_order inline with buy 8f4cca47 Refactor update_open_order into it's own function 4fa73611 Don't set order_id to none here - it's used in "update_open_order". c28a0374 Update pytest-mock from 1.10.2 to 1.10.3 93229fc5 Update ccxt from 1.18.415 to 1.18.418 707a5fca ifix typos in full_json_example 9b38c045 negating SL pct and adding tests 06144a1f Wording in a comment 1a61bf7b sort imports 87a296f7 No need to call patch_coinmarketcap each tim e98c0621 We don't need to call patch_coinmarketcap each time. 40c0b4ef Autopatch coinmarketcap 44142706 Update ccxt from 1.18.412 to 1.18.415 208832e8 flake8, mypy resolved 12066411 Update docs with logfile methods e5008fbf Add test for logfile attribute d4ffdaff Correctly add types bb5a310a Add --logfile argument 82b344db Update ccxt from 1.18.407 to 1.18.412 f2599ffe pct default to None 50fc6325 added SL pct to DB a87fc5f8 Fix tests - freqtrade should not be patched in this case 2f3f5f19 sl percentage removed form rpc test e11eb477 stoploss precentage in telegram msg removed daeb172b Update ccxt from 1.18.406 to 1.18.407 0e5b0ebd adding SL and SL percentage to telegram msg 941921dd initial SL and SL added to RPC 0ca3a38b moved date to top and show open order only if it is not none 1678a039 removing close profit is trade is open e5406ed3 typo in docs and comments 4d9ca71c shifting edge help message a line lower 6045f07a telegram message concatenation refactored 9b22d5ca Fix typo, add test for validate_order_tif 753b03d5 rolback on removing MD whitespaces 1e37d8cc flake8 4038cdf7 "Edge" test for rpc telegram 0687051f Update test_rpc.py 8641da13 added RPC tests in case of edge enabled/disabled cc32566c Update ccxt from 1.18.400 to 1.18.406 955e2d28 Update test_rpc_telegram.py 4e57969e documentation added 3bdc7b9a add missed "check" in docs b2c2b424 Removed unwanted comment f5744cc9 fix in the tests 1f50bc79 Update ccxt from 1.18.398 to 1.18.400 c6d2c1e5 rest of telegram tests adjusted 8aee009a test _reconfigure() adjusted 5ccd6181 tests adjusted 5161e1ab Allow to pass config into worker, as it's used in the tests e15f2ef1 add order_time_in_force in _ft_has and revert binance 8dea640e remove exchange urls 4005b8d1 remove the if condition for binance 85ac99ae move exchange urls to constants e085fd9e Disable dataprovider from hyperopt. f26ed1c8 Check if added pair has correct stake-currency 4cf72820 Update dataprovider docs 0ae81d41 Provide dataprovider access during backtesting 226fc3d9 Check that dataprovider is part of strategy bd29b7d0 Test that dataprovider is loaded to strategy c8b0c9af Worker moved to new worker.py fe9322ec Update pytest-mock from 1.10.1 to 1.10.2 904b3008 Update ccxt from 1.18.395 to 1.18.398 66f1e0f4 help added fd727851 using items() a8be277c cached pairs iteration fixed + help added 1dfbf6ee darfting edge rpc messages 29b9bb96 Fix test to support adding things to pairlist 14167f82 Fix typehints 49559f1a Improve documentation and help message 042354d0 Test blacklist-adding f0d3901b Add blacklist-pair to documentation 9d6f629f Support adding pairs to blacklist 7b99d5eb Add blacklist and whitelist commands to telegram docs 8b2174d2 Add tests for /blacklist handler ffdca7ee Add blacklist to default_config 684727b3 Add black blacklist handler (ro) 3a8b69d6 also support dry_run 1bba9fcc Update documentation to use freqtrade, not freqtrade/main.py f7fc9adc Run travis with freqtrade, not main.py e60d1788 Add new options to docu e644493e Update ccxt from 1.18.387 to 1.18.395 06f4e627 Add stake_currency to strategy, fix documentation typo 0dc96210 Fix formatting of boxes 2 a95f30ce Fix custom boxes on documentation 83a2427a Fix mypy in scripts 184b13f2 Flake8 for scripts 9a632d9b Formatting c404e9ff Simplify trailing_stop logic b1fe8c53 Simplify stoploss_reached 7307084d Move stoploss-adjustment to the top 40899d08 Fix failing test (all timezones are in UTC, so we should not convert to None) 00e6749d Refactor backtest() to be a bit more concise 05466d31 Modify test to check for this condition 34ff946f Update ccxt from 1.18.386 to 1.18.387 158cb307 further refactoring of FreqtradeBot.process() e35daf95 minor cleanup b4488902 test_main.py adjusted (only beginning) be6836b0 resolve python module circular dependency 60afba55 move worker stuff to main.py 89145a77 Update ccxt from 1.18.385 to 1.18.386 7fdb0990 Reformat log statement 00821036 docs for dry_run_wallet 6b89e86a Removed Timestamp cast 0eff324c Use dedicated index for every pair cc369f41 Update coveralls from 1.6.0 to 1.7.0 6c889895 Update ccxt from 1.18.376 to 1.18.385 2b09e3ca Update plotly from 3.7.0 to 3.7.1 9a610673 Update ccxt from 1.18.372 to 1.18.376 50ea4c39 Update ccxt from 1.18.368 to 1.18.372 8d173efe reword stopbuy message aa698a84 rename /stopbuy message 37e6b262 Update docs to include /stopbuy 9373d0c9 Add tests for /stopbuy a467d768 Add /stopbuy command to telegram 93739960 fix flake8 c2076af4 update tests 4de4a70b update log messages 8afce7e6 Add testcase for Testcase 2 2bf7f2fe Remove duplicate backtest-result-analysi documentation 83864964 remove tests that are no longer applicable 7f9c76a6 move stake check to the same condition as the other checks d4d37667 use pairname for stake cur comparison d4543be8 edit comment e38a3051 update docstring c907e80c make sure no dups a241e950 prune validate_pairs 39232cbc loop over whitelist only instead of all markets a7b60f67 update trailing_stop with high in case of backtesting 05ab1c2e Fix some comments 8c7e8255 Add detailed test for trailing stop f0e5113a Use Magicmock instead of lambda for mocking a830bee9 Enable trailing_stop for BTContainer tests 190ecb7a Update ccxt from 1.18.367 to 1.18.368 a77d5135 Fix backteest detail numbering ... 7b99daeb Update docstring for adjust_stoploss 2d4a2fd1 Use oppen_rate instead of artificial defaults a0e6cd93 Use bids, not asks for sell-rate detection fc360608 Rename function to adjust_min_max 01733c94 Split up tests for adjust_stoploss and adjust_highlow 68a9b14e Min-rate should not default to 0 738ed932 call new function 7166a474 Add min_rate - always update min/max rates e632539b Add 15min to documentation, fix link to "parameters in THE strategy" e7f6df46 Add missing bt file a123246a Add test for load_backtest_data ddb9933c Remove duplicate-check from test - it's in btanalysis 9f7f089d adjust plot_dataframe to use btanalysis e1f48c2b Add btanalysis file d7017ce1 Document backtest-result loading 29aa1598 Add test for get_sell_rate 6bfc3730 refactor getting sell/current rate for telegram and selling d596a877 Update docs to link to ocnfiguration piece necessary b9b15e5f Align help message for forcebuy a233a8cc Be explicit in the documentation d42ebab5 Rename function and add test 44acf2f4 Catch syntaxerror on import 6db6c3b2 Update ccxt from 1.18.362 to 1.18.367 95a3b5c4 check if ticker sort key is populated 1a83eed3 Update pandas from 0.24.1 to 0.24.2 4fa16042 Update ccxt from 1.18.361 to 1.18.362 edf2cd0b configuration test fixed b5034cf5 TSL validator removed from exchange 29305dd0 config validation moved to configuration file 3c99e3b7 test adapted to new market refactoring ff9231ee Format attributes-table a1841c35 reset _last_markets_refresh aa2d747d update docs 2bf5a384 Use close_rate for notification if available 23666858 Update pytest from 4.3.0 to 4.3.1 5151a452 Update ccxt from 1.18.358 to 1.18.361 6b948cfc Don't move notify_sell to rpc_manager - it needs exchange stuff 9054165e Adjust test, since rpc_message is now called on buy and sel 11cc33a9 Refactor notify_sell to rpc_manager e2bcaa4d Set Requested_close_rate to stoploss when stoploss_on_exchange was hit 94b2d48d Add default value for minimal_roi (1000%) 0293a618 Update documentation for minimal_roi, which is not really optional 7ffe6577 fix test cb9849e1 add markets_refresh_interval to CONF_SCHEMA 299e6401 include markets_refresh_interval in docs 779bcdd9 remove reload for async api 0ffefe44 reorder vars deddbda2 delete markets patch from conftest 1a92bf9e add test 87410178 remove get_markets 35c2b961 add config param 0d980134 add markets reload func 3ad0686b fix typing df9410cd check if markets were loaded 041e9957 add reload argument 6b97af4a add comment e234158c update tests c30fb7f5 return markets as dict 5c840f33 slight change to exception message b24a22b0 use self.markets instead of get_markets 47cc04c0 use self.markets instead of _api.markets ccad8832 adjust get_markets 3a2aa54d add markets property d423f585 replace fetch_markets 0bcf50f1 added to stoploss doc 8d5cc42e configuration doc added a772ab32 adding the option to resolver f55d75e7 TSL validation tests added 3e4c9c87 Update ccxt from 1.18.357 to 1.18.358 36e95bc8 unnecessary variable removed 3e40f5c5 if condition simplified 643262bc add trailing stop loss config validator 48d33b07 Add stoploss to startup messages 0eb9dd5f Don't use timeInForce for market orders 4705b7da Add time_in_force test for sell c0f276a8 Move kraken specific tests to their own file e666c685 Fix tests so Market orders should not send timeInForce f9aa3c27 Catch ModuleNotFoundError when importing external code 41add9f8 code cleanup; added message to systemd for reconfiguration 513b96b6 Update ccxt from 1.18.353 to 1.18.357 8730852d Support for systemd watchdog via sd_notify ca496c13 TSL only offset test added 04670041 added trailing_only_offset_is_reached to full config 0eaac1cd Update sqlalchemy from 1.3.0 to 1.3.1 5f726d69 Update ccxt from 1.18.352 to 1.18.353 9c1c962a if condition fixed c122eab7 added trailing_only_offset_is_reached option 43d30180 Update plotly from 3.6.1 to 3.7.0 3b805813 Update ccxt from 1.18.347 to 1.18.352 fa4c8110 Rename cheatsheet header 25529ad9 use || for coveralls dba30bbf Update travis for coveralls 4cd70138 Add test to make sure this ain't reintroduced 0a2cacbb Fix #1637 702153d0 exchange.sandbox parameter was missing in the docs 9c1d4183 typo in doc 2da0d479 Update ccxt from 1.18.345 to 1.18.347 6b2f4b12 Update ccxt from 1.18.342 to 1.18.345 7b901e18 update sql_cheatsheet e67ffd2d Fix issue that backtest is broken when stoploss_on_exchange is on 8624d83b Remove deprecated --dynamic-whitelist from freqtrade.service 962cfc5e Update ccxt from 1.18.333 to 1.18.342 35250eb2 one more typo fixed (by @xmatthias) 735e78f0 Update sqlalchemy from 1.2.18 to 1.3.0 ae7c4c33 Update ccxt from 1.18.323 to 1.18.333 c032dd0f new docs/deprecated.md added to the site menu ce46555e docs/configuration.md reviewed: formatting, wording, grammar, etc 2f98dd04 description for --dynamic-whitelist moved to new docs/deprecated.md 71f5392f typo fixed f6ca97d1 Update hyperopt doc to validate backtest results 386abc5e minor: doc update index.md f16913a7 Update ccxt from 1.18.322 to 1.18.323 460e0711 How to use multiple configuration files b8eb3ecb Update hyperopts documentation to work and match the code 2208a21a Update help strings 2d0aca0d Move --customhyperopts to hyperopt section 3c5deb9a Add test for precision_remove ... e2cbb7e7 remove remnants markets and precisionlist df79098a update docs 13ba5ba0 Update ccxt from 1.18.313 to 1.18.322 064f6629 delete separate pairlist e1ae0d7e remove markets changes c36fa0c7 add ticker argumet to get_target_bid 24c58751 add precision_filter 6bcfe658 Update scikit-learn from 0.20.2 to 0.20.3 28a70eba Update ccxt from 1.18.309 to 1.18.313 0fc54450 Update jsonschema from 3.0.0 to 3.0.1 e8ea2e6f Update ccxt from 1.18.304 to 1.18.309 b792f005 exchange cleanup 4df44d8b wallets cleanup 13de66d5 Update ccxt from 1.18.297 to 1.18.304 e5498ca2 Add libssl-dev to fix #1604 38d09f9e Update numpy from 1.16.1 to 1.16.2 768f62a2 Update ccxt from 1.18.296 to 1.18.297 761861f0 comments: removed mentioning recursion, typos, etc. 4c2961f0 eliminate recursion in _detect_next_stop_or_sell_point() ef264841 Super() should not be called with parameters 79aac473 Remove market_url from tests 5c3177cc Adapt documentation to remove market_url 6c75b8a3 Remove pair market url bcf5b5fd Update flake8 from 3.7.6 to 3.7.7 ef18ddd8 Update ccxt from 1.18.292 to 1.18.296 0c53bd6d Complete refactor, moving query_trades to persistance as get_open_trades 185bd1e5 Update ccxt from 1.18.290 to 1.18.292 00663500 Fix small typos f2fd5205 Fix typo 31be4d24 Add parametrized tests 5c18346c Add typehint to binance dict e0b634ba Parametrize exchanges and test multiple exchanges a05155cb Adapt failing test 455b1683 add _ft_has to exchangeclass 06f486a8 Add binance exchange subclass 417bf2c9 Update jsonschema from 2.6.0 to 3.0.0 3673dba1 Update ccxt from 1.18.287 to 1.18.290 9b288c69 Add test to specifically test for merged dict 5fac4f7b Edge doc file minor improvements, typos, formatting 403ed48c rename _store_dry_order ec6794b9 fix dry_orders 634ce87b Update ccxt from 1.18.281 to 1.18.287 98bca30d reorganize imports cc0fae8e change < to <= 9a097214 return complete dry_order in buy and sell 9c54886f minor: formatting math expression in FAQ a1b00f90 Edge question added; minor improvements (sections for Hyperopt and Edge) 29b8b797 Update ccxt from 1.18.280 to 1.18.281 b79d9673 add tests, further consolidate orders 69bb6eba fix comments 7738ebbc Update ccxt from 1.18.270 to 1.18.280 be754244 Only resolve exchanges from correct location e0f426d8 Allow import freqtrade.exchange.* e987a915 Rename exchange file b5758e67 order creation cleanup 28518337 added _now_is_time_to_refresh() c1ef6940 removed wrong comment: tuple is not created here 2aba9c08 fixed typos in comments eb211706 added amount_reserve_percent into config json-schema d9129cb9 Develop version bump to 0.18.2-dev 4315c157 Move exception handling to resolver, add test da5bef50 cleanup 4fbba981 tests adjusted for multiple --config options 87c82dea support for multiple --config in the download_backtest_data.py utility c08a2b66 help message fixed 7bc874c7 comments adjusted fac0e4e6 more code cleanup in _process() 199e3d22 typo in a comment 5906d378 code cleanup in _process() e495ffec align dry_run_orders 3e2f90a3 formatting bb31e647 add test_sell_kraken_trading_agreement 481cf02d add test and fix exchange_resolver 2f225e23 multiple --config options eed1c234 delete unnecessary arguments 4241caef changes to base and subclass 2103ae5f change rateLimit to 1000 0572336f revert changes to history d8feceeb fix type-hints da4faacd flake8 39c28626 remove error message to make pytest pass 5e8a7a03 correct time_in_force param fe792882 load generic class if no subclass exists d3ead2cd exchange import is not needed anymore c879591f add exchange_resolver to resolver init c315f63e use exchange_resolver in freqbot 2fb36b11 change variable names ca388a9a create exchange_resolver 32b02c99 kraken subclass 54d5bce4 undo kraken specific changes b7afcf34 add VolumePrecisionPairList 3aa614b9 bump version 3953092e output error message ef5a0b9a add Kraken specifics

Scientific Software - Peer-reviewed - Python
Published by xmatthias about 7 years ago

FreqAI - 0.18.1

Change log: ba23f58f change the way to clone git rep for Window with docker 7dbb7a52 Update coveralls from 1.5.1 to 1.6.0 3ec3438a Update pytest from 4.2.1 to 4.3.0 1cd54829 Update flake8 from 3.7.5 to 3.7.6 bd6644a9 Update ccxt from 1.18.247 to 1.18.270 58864adc Move coveralls to after_success f9d68d91 move default amount_reserve_percent value into constants dffb2732 prevent convert LF->CRLF line ending on window f63fdf41 Update ccxt from 1.18.245 to 1.18.247 9fad83bd Fix 1 to 0 f1ededf0 Fix typo in test-strategy, add volume > 0 check to buy/sell check 1bbb04da Update ccxt from 1.18.243 to 1.18.245 df8067d6 add description of the new configuration option amount_reserve_percent 66cc6000 add amount_reserve_percent into the full config file ea6d4a9d fetch amount_reserve_percent from config 7c651632 Update joblib from 0.13.1 to 0.13.2 13a16178 Update sqlalchemy from 1.2.17 to 1.2.18 c2bc316e Update ccxt from 1.18.234 to 1.18.243 98bd7136 iUpdate orderbook_bid_test f852be1a Fix tests for get_ticker fix aee7b2c2 Update pytest from 4.2.0 to 4.2.1 c17eb89e Update arrow from 0.13.0 to 0.13.1 aaa85677 Update ccxt from 1.18.230 to 1.18.234 b87e1577 test adjusted 8e7e6700 Orthography in the log message 8fc8c985 logs: cosmetic changes 69a24c12 no need for test_ticker parameter just for making current tests happy, tests should be reimplemented e8daadfb same approach for the sell side (at handle_trade) 91629807 shame on me f551fb5f adjusted for passing tests e8ef36fb execute_buy: do not use ticker if use_order_book:true is set in config 607190cd Update ccxt from 1.18.225 to 1.18.230 0b5f4dc3 Update python-rapidjson from 0.6.3 to 0.7.0 160c467e Update ccxt from 1.18.223 to 1.18.225 69f69d96 test asserts aligned accordingly to new log messages 5e741a0f fixed flake d6c0c107 fixed flake 7ed15c64 what else? 08d35f3e fix checks 4dffb17d fix flake 14d6cdf9 OHLCV should be float for TA-LIB indicators in the strategy b91981f0 Cosmetic: fix logging 585f5258 Cosmetic: fix logging fe2f98c8 Update ccxt from 1.18.221 to 1.18.223 3bb9e17b Update plotly from 3.6.0 to 3.6.1 f0c9064b Update mypy from 0.660 to 0.670 e0142526 Update scipy from 1.2.0 to 1.2.1 e9aba039 Update ccxt from 1.18.210 to 1.18.221 92eb9519 Update ccxt from 1.18.208 to 1.18.210 39626bb5 Update ccxt from 1.18.203 to 1.18.208 395a7b25 Update ccxt from 1.18.197 to 1.18.203 6fd932bf Update pytest-mock from 1.10.0 to 1.10.1 fcc7cb98 Update flake8 from 3.7.4 to 3.7.5 64891df1 Update pandas from 0.24.0 to 0.24.1 218b5011 Update ccxt from 1.18.195 to 1.18.197 0a71ebce Remove unneeded pair conversation, add docstring 1d940041 Add log test for cancelled order 40fea459 Add log_has_re 02c35529 Adjust comment 91ed0213 Add tests for cancelled on exchnage e8ed8a2e Handle orders cancelled on exchange f2dd32e3 Update flake8-tidy-imports from 1.1.0 to 2.0.0 8d5474d4 Update plotly from 3.5.0 to 3.6.0 576d893d Update ccxt from 1.18.193 to 1.18.195 24f779ed Update flake8 from 3.7.3 to 3.7.4 2ce3bd95 Update numpy from 1.16.0 to 1.16.1 ba4e5cae Update ccxt from 1.18.190 to 1.18.193 d07cc592 Update pytest from 4.1.1 to 4.2.0 8d9114aa Update flake8 from 3.7.1 to 3.7.3 68a4e042 Update ccxt from 1.18.179 to 1.18.190 e3ae8d3f flake8 3.7.1 fixes 576d9b8f requirements: move numpy installation earlier as later packages require it 0c959c22 Update flake8 from 3.6.0 to 3.7.1 6ad1089f Update cachetools from 3.0.0 to 3.1.0 9f87a274 Update ccxt from 1.18.171 to 1.18.179 84b6b8fe edge messages enriched cf283344 Update ccxt from 1.18.160 to 1.18.171 1a1123a5 Update ccxt from 1.18.155 to 1.18.160 f0954928 Update ccxt from 1.18.152 to 1.18.155 38f73daf Fix indexing error e0ad095b Simplify conversation to python dates (pandas offers this "for free" 1d08ada9 Fix backtest-test with timestamp-conversion 3446dd17 Add test informative_pairs_added ba07348b Rename additional_pairs to informative_pairs bfd86093 Fix comment b112f2f3 Update pandas from 0.23.4 to 0.24.0 d222dd67 Update sqlalchemy from 1.2.16 to 1.2.17 e5b02240 remove unused import e43aaaef add macd signal as default indicator2 422a0ce1 better Path usage, remove arg parameter in generate_graph 22e7ad8e Change back to LF lineendings b840b9f5 Update ccxt from 1.18.144 to 1.18.146 eec72763 fix crash when backtest-result.json not exist 5e7ba85d Fix typo 3c316fe3 Fix alignment 56a3d781 Fix typo bd246468 Update tabulate from 0.8.2 to 0.8.3 a97b3ab0 Update ccxt from 1.18.146 to 1.18.152 38d293cc Updated doc dcceb40f Update ccxt from 1.18.144 to 1.18.146 9960fe07 Add experimental settings to sample strategy 74b03d05 Add tests and default values for all experimental features ac199b62 Drop mandatory column 8750f1be Add strategy-override options 05d65b81 Fix typo 97f6a458 Allow more settings to come from strategy ad8b1bbb Change default for positive_offset in sample 5ea332e9 fix bug with trailing_stop_offset if it's disabled 896c9d34 Added total profit column do backtest result 13e2f71d Add flake8 plugins and implement small improvements c412cd9e Add information about dataframe 86a0863e Clarify logmessage Done fetching a06593e6 Fix test 89ddfe08 Add additional-pairs (sample) to defaultstrategy 7c71b951 Update ccxt from 1.18.141 to 1.18.144 c77607b9 Fix tests after rebase 3221f883 Wrap line correctly 1e7431a7 Blackify e66808bb Add additional pairs to refresh call fc92491a Add documentation for additional_pairs 6e2de75b Add additional_pairs to strategy d6cdfc58 Fix mypy hickup after changing list to tuples 7b138ef3 Add warning about strategy/backtesting 27b20217 Only run once per pair e7800aa8 Import only what's necessary a2bc1da6 Remove private var from class instance 1e749a0f Rename variable to be clearer d7df5d57 Keep last_pair_refresh as tuple asw ell 6525a838 Adjust documentation to tuple use f0af4601 Adopt plot_dataframe to work with --live a9abc257 Improve data-provider tests 0aa0b1d4 Store tickers by pair / ticker_interval 5f61da30 Adjust tests to 3tuple return value from async method d6df3e55 Return ticker_interval from async routine e503d811 Change logmessages to match functions called b981cfca remove comment which proves untrue now a206777f Rename refresh_tickers to refresh_latest_ohlcv 06ec1060 simplify refresh_tickers 646e98da Always return dataframe 2b029b2a Only return ohlcv if available (Live and dry modes) 9edb8805 Add dataprovider documentation 35c8d1dc Update comment 8f3ea360 some cleanup 5ecdecd1 remove unused local variable persistance 58f1abf2 Add dp / wallets to strategy interface d3a37db7 Provide available pairs f034235a Tests for RunMode 1340b716 Add RunMode setting to determine bot state fed3ebfb Change enum from 0 to 1 according to the documentation a7db4d74 Add some simple dataprovider tests 84cc4887 Add copy parameter e38c06af Small fixes f1a5a8e2 provide history 4ab7edd3 small adaptations 05570732 add get_runmode 7206287b Use Dataprovider b119a767 Some more restructuring a6d74a14 Draft of dataprovider 1be3d57b Improve developer docs e4a39903 Update ccxt from 1.18.137 to 1.18.141 6fb50e35 JSON standard does not allow single quoted strings a7336300 Update ccxt from 1.18.134 to 1.18.137 b48430f9 Return list not None 4e760e1a Test for errors found in 1491 30e3b52b catch errors found in #1491 797ac713 fix stoploss_on_exchange_interval type b421e437 Update wrapt from 1.11.0 to 1.11.1 2b65e3f3 Update ccxt from 1.18.133 to 1.18.134 87329a39 adding stop loss last update to test persistence a2618208 wrapping in parantheses instead of line breaks 70780bb0 using dict.get to fetch interval 89eddfd3 refactoring english … 1c4ee35e using italic for “off exchange” e41e4541 adding tailing_stop to docs cc646638 update mypy a2c01916 Add type-ignores to floatfmt 648def69 Remove unversioned install of most dev packages 97a83414 Update ccxt from 1.18.131 to 1.18.133 75cedfaf unreachable code removed 9d6c5479 added note for only binance e682ecea stop loss documentation added 25331122 added referral to stop loss documentation 08d98773 added SL interval to configuration document da51ef40 SL interval added to CONF_SCHEMA 91c714c7 stoploss_on_exchange_interval added to full config 5e2e96ac compatibility with edge added 611b48db fix return value from info hash: value is in string 50bc2013 adding whitespace baa5cc5b logs enriched aa03a864 comments added for TSL on exchange function cffc9ce8 last step: stop loss on exchange added to trailing 6d588b3b trailing stop loss on exchange extracted to a separate function bfb71215 refactoring handle_stoploss_on_exchange 29439c05 adding update beat test 1cd5abde removing unnecessary guard 12e81080 checking params of cancel order and stop loss order 399d2d89 Win rate formula was wrong (but not the definition) 494b905d Update ccxt from 1.18.126 to 1.18.131 f0cfab79 flaking 8 cfe00c2f initial test added for TSL on exchange da041822 Update numpy from 1.15.4 to 1.16.0 a3897c99 Update ccxt from 1.18.120 to 1.18.126 04786f09 Update pytest from 4.1.0 to 4.1.1 cd2bccd4 Have backtest use the same logic to get the ROI entry e9d61eb3 Fix ROI calculation problem 9e0902e7 Add test for case for odd ROI dict - #1478 690fbeb9 Update joblib from 0.13.0 to 0.13.1 e95351fd Update sqlalchemy from 1.2.15 to 1.2.16 3867f73c Update ccxt from 1.18.119 to 1.18.120 4920ee34 Update wrapt from 1.10.11 to 1.11.0 3f809219 Update ccxt from 1.18.117 to 1.18.119 e025ad39 temp test commit c1007f95 Update ccxt from 1.18.114 to 1.18.117 a4947554 Update .travis.yml 2e530a3e Update install_ta-lib.sh e76ed31b fix ta-lib cache f4979e0e Cache /usr/loca/lib dd7d655a remove unwriteable cache-dir f9a99f4a Change caching 7a13565e travis - python - test bb3d7875 Test python 3.7 356a17cd Build python 3.7 da436c92 switch travis to xenial 69eed95a cd out of the build-helpers dir df97652f Try fix ta-lib install 64372ea6 Fix ta-lib installation build helpers b3f67bb8 Fix git pull in docker-image b5adfcf5 Fix documentation typo 1a272584 condition fixed 9e133eb3 adding guard not to cancel the previous stop loss on exchange if market is falling quickly aed85528 comparing with stopPrice instead of price f4e0e044 Update pytest-cov from 2.6.0 to 2.6.1 4069e2fd Update pytest-asyncio from 0.9.0 to 0.10.0 ec22512f Update pytest from 4.0.2 to 4.1.0 c3107272 Update arrow from 0.12.1 to 0.13.0 b98526d3 Update ccxt from 1.18.102 to 1.18.114 4fbb9d44 adding stoploss_on_exchange_interval to order_types dict. default to 1 minute (60) 16472535 adding stoploss_last_update to persistence f620449b Add test for hyperoptresolver 440a7ec9 fix pytest 40b1d8f0 Fix CI problems 5dd1f9b3 improve hyperopt docs dd2af86a pprint results 821e299a adjusting trailing stoploss on exchange 16708882 include default buy/sell trends for the hyperopt strategy a0df7b9d Use sell/buy trends from hyperopt file if available 87cbff5d Fix warning for max_open_trades when edge is enabled 13800701 Fix custom db_url ignored if provided by conf.json 3f82dd05 Update ccxt from 1.18.101 to 1.18.102 2147bd88 Fix problem when no experimental dict is available 798ae460 Add check if trigger is in parameters 5e087693 Update hyperopt documentation with sell-stuff 68ba1e1f Add sell signal hyperopt a07353d3 fixes few wordings 506237e3 Don't use --quiet on pip install f088f43b Install numpy before py_find_1st 01e2dc17 Remove whitespace in fucntion definition 337ebdec Avoid installing ta-lib multiple times 9e5e485d put --upgrade flag to the same location in subsequent requests 31da42a4 Show error when no python is found 94aa1aaf fix typo, improve doc sequence dbf8ec6a Update dockerfile to python 3.7.2 16512d99 Update plotly from 3.4.2 to 3.5.0 8505ffbe Update ccxt from 1.18.97 to 1.18.101 f7b96d83 Add trailing options to sample-strategy f32232ba Add documentation for stoploss in strategy cacb9ef3 Loop twice 00c5ac56 Print startup strategy summary a7dc6b18 Overridable attributs as list 5e234420 Simplify StrategyResolver by code deduplication 4599c80e Add trailing-stop to strategy 67cbd5d7 putting back requirements a5ec564f Update ccxt from 1.18.95 to 1.18.97 f1bb4233 telegram documentation link afffa2f3 changed to “Free, open source …” de278a77 Update ccxt from 1.18.94 to 1.18.95 2c31fd66 cd build_helpers added before extracting Tar 3329ffd0 improve comment 05ce7787 readme enriched 68a9d1b2 description 207daf08 change description 516217b6 Stop loss should also be shown when trailing is active 6cc6ce35 Update ccxt from 1.18.89 to 1.18.94 848af375 Update README.md 1b84aa82 dont use 55 for regular check as that's a key in the dict 2bc76771 Align backtest to interface.py 1d518885 fix roi-reached when list is unsorted b55994cb Clarify documentation da6f1a39 Sequence of minroi dict must be irrelevant a54d8f0e Create datadir when not exists c337a931 Fix bug on --refresh-pairs-cached a909322f Update ccxt from 1.18.87 to 1.18.89 672d115e Change default value and add docstring dd1d3430 Add explicit test for ohlcv fillup fae875f5 Implement missing_data_fillup to tests and operations ef455573 Fill up missing as part of loading data 8b9cc45f move test for data completeness 7b1f4aec typo 827a8309 more links corrected 366980fd broken link corrected 42cc3e52 link second try 5be21fd9 Update ccxt from 1.18.86 to 1.18.87 361b294e block “==“ removed dd91b5c7 links corrected a07a004b test relative link a86b34e4 old files removed 7bf1a92d “inofficial” => unofficial db1c9b8e relative links 79ac2063 typo + broken link 04483da8 typo corrected d4092119 add test to verify data does not contain missing data afterwards 03389d96 ADd test for data_interpolate a021cd3a Add ohlcv data interpolator be1969ad added widgets to index documents 689ca764 added “ready to try?” 034bcd64 requirements added to “about” faad07aa changing index to about page 4d415205 about document enriched c357483e typo aa542784 unnecessary config removed 49c37692 content bar completed f42df56a edge reformatted 808ce3e7 edge added to content bar 87cbf6aa Plotting reformatted 863cf303 hyperopt reformatted b029a989 backtesting reformatted 219e9d9e optimization page reformatted da380e6a start the bot documentation reformatted 83b97321 permalink installed 016522b1 configuration reformatetd cb1d9b62 restructuring docs content f32dfc57 Update ccxt from 1.18.84 to 1.18.86 af850801 Update ccxt from 1.18.78 to 1.18.84 460900dd Remove unused and duplicate datastructure f6ff9b04 changed to introduction 0bcadbd8 bigger logo 78f29a74 added theme configuration 71de820a changing doc theme dcf0feef move requirements to docs ad696a9d removing numpy from docs 793dd384 removing unnecessary packages ffbe95ef adding requirements for docs 9c442455 adding readdoc config b45af561 initial commit for docs cf0e31c5 Update plotly from 3.4.1 to 3.4.2 305f2b74 Update ccxt from 1.18.74 to 1.18.78 fab7663a Log when dumping to file (instead of print) 61f8ce5c remove unused imports 0f86e218 Add plotly requirements file 7dc40cda refactor file_load_json to be standalone 27abdd97 Move load_json to misc 065b469a rename test to avoid naming collision c955415c Switch from ujson to rapidjson 1ce8f416 Reset stake-currency when using config to download pairs 1167b24e Update ccxt from 1.18.71 to 1.18.74 cb654a82 Add release documentation

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 7 years ago

FreqAI - Release 0.18.0

``` 9af2fca7 Add handling for market orders 20cdabbe Add test for market order 8b38f44d Update installation reference for Raspbian 5b30815d Move "following section" part 37cde77e Fix typo 1fc0dcb9 Fix typo in link b2bc5d93 Remove convertbacktestdata - this is not usefull anymore 32f43d32 Adjust pyup.yml to also "find" requirements-dev 5e3e7b69 correct TOC for bot-optimization.md f2beaf10 Add strategy documentation (fixes #818) d9512898 Refactor strategy documentation b28b2369 Update ccxt from 1.18.69 to 1.18.71 0e6dbfab Update ccxt from 1.18.67 to 1.18.69 34b93eb9 Load config-file in downloadbacktestdata - 8fbeb700 move key/secret in downloadbacktestdata to correct location ae514585 Update ccxt from 1.18.64 to 1.18.67 a5137e4f comparing float instead of int 741e3368 Update ccxt from 1.18.60 to 1.18.64 7243da3a tests added for klines copy=True 7c69dbae Update ccxt from 1.18.58 to 1.18.60 41ef02a2 Update ccxt from 1.18.50 to 1.18.58 34e3af6a do not copy DF if copy is false a13b30b2 removing test a45ec1ed adding copy as a parameter to klines 358b5d7e Update scikit-learn from 0.20.1 to 0.20.2 fc4384c9 Update ccxt from 1.18.46 to 1.18.50 ad495273 Update ccxt from 1.18.40 to 1.18.46 2e06d522 Update scipy from 1.1.0 to 1.2.0 fd4cfefd Update ccxt from 1.18.39 to 1.18.40 b1e9fa75 Base dev Docker image on freqtradeorg/freqtrade:develop. 215ded2e returning last candle close price for a pair 1483593e Fix instructions on building a dev Docker image. ac9189eb Update ccxt from 1.18.37 to 1.18.39 1372095c Seperate requirements to run the bot and to develop. 5493d1a7 Fix wonrly named module 7357d6b0 adding order type explanation link to doc. c784b829 typo 213155e6 typo f756f1ad unnecessary explanation removed. 2e702844 reformatting a967b891 broken link corrected 9d8a3b4e docs added 806ab372 Add / fix some comments eb7034c7 Rename downloadbacktesttestdata to downloadpairhistory 50938d41 Remove tests for downloadpairs 8bd4d03e remove downloadpairs 8826a1df Add missing tests for trimtickerlist 043cefd6 allow reloading single pair ebb80b69 remove ujson / json fallback hack as it's now in requirements f5b2430c Fix docstrings and typo 8a3c2a0c allow only loading 1 pair if necessary 429f846a Switch loaddata to kwargs acd07d40 Cleanup some comments and code formatting d421e4e8 update edge description d0c9791c Fix tests to support loaddata with dataframe 34ea214f Fix some tests to use dataframe 1c5031b4 loaddata to return dataframe c1a32bc6 use jsonload to load data b4f1a80d Add edge oneliner to index 6c02cc59 Adjust test to pathlib 21aba162 Replace calls to loaddata f2619112 replace os.path with pathlib.Path a34c2cf6 Add missing test-module _init_.py 4ad507f8 Update ccxt from 1.18.36 to 1.18.37 7e463b20 Add link to contributing for "wanna help" c42d5002 Update pytest from 4.0.1 to 4.0.2 43039aa6 Update ccxt from 1.18.32 to 1.18.36 407139b0 remove unused imports 17a820e5 Move tests from testoptimize to testhistory 92c800d9 Adjust tests to data.history 4ca6aad9 Adjust imports in scripts 432cc002 Adjust imports to data.history 0250a96f Sort imports 1a3fcd47 extract data-handling methods from optimize b38195e9 Rename to converter 1f298028 only export what's needed 453f62cd Adjust imports 030ecbfc move exchangehelpers to data module aca24308 Fix comment 6c9c03b3 Update ccxt from 1.18.24 to 1.18.32 6b4bab27 Add link to edge documentation in bot-usage df5a2801 fix edge doc broken link 7e3955b0 Fix edge-cli comments (refer to edge, not backtest 5c3dcf3e Test for wrong inputs (empty / none-dataframes) in getsignal d6ba4f0e Fix last 2 tests to use DF as data container 7a533de1 Use list ticker history for backtesting fe3990af Adjust some tests to dataframe passing 627ab9f5 pass around dataframe instead of list aa1262be typo corrected 79f5c4ad Update sqlalchemy from 1.2.14 to 1.2.15 fd953bab Update ccxt from 1.18.18 to 1.18.24 8d8b53f4 added tests for IOC and FOK 81b4940e Adjust tests to new fiat-convert location efc70950 move fiat-convert to rpc - adjust imports 0f2c5478 Move fiat-convert to subfolder 0ab8ac1c Add test to verify downloading history does not modify _pairslastrefreshtime 70ad8a06 Update requests from 2.20.1 to 2.21.0 97e7b0d9 Update ccxt from 1.18.17 to 1.18.18 8c1901ad Extract caching logic from lowestlevel fetchohlcv function 523dea4a remove hacky workaround not needed anymore e2bff9d5 Remove assigning klines from download method 36de4518 Remove class-level variables adcaa843 teststrategyoverrideordertif added e6fd7da4 adding test: create order should consider TIF 6018f2d2 order status handled in case of IOC and FOK d904667c Update ccxt from 1.18.13 to 1.18.17 866b7aee tests fixed 663e33d2 if condition refactored 20d794e2 mistake in previous commit 2f5c8941 removing unnecessary default value b35199a7 intermediary commit before extracting the logic acb96eb5 Update ccxt from 1.18.11 to 1.18.13 3b951c38 Drop indexes on renamed table b3b6eda2 Update ccxt from 1.18.10 to 1.18.11 ac9f19ae Update ccxt from 1.18.2 to 1.18.10 8f19c83f Refrase documentation a63f123b Check if numberassets is defined, as it's required by VolumePairList 0ea7dc92 test added for total open trade stake amount from schalchemy bf1841d2 Update ccxt from 1.17.583 to 1.18.2 0c107190 Specify JsonValidatorversion explicitly 2f0d7a1a Add specific test 3e2fa580 load pairlists via resolver 43031aa3 Add missing path-error handler for hyperopt 1a10e128 Documentation and developer documentation 21906e48 Remove duplicate code 37ebe05c Update ccxt from 1.17.581 to 1.17.583 d12cc39a some visual happyness 910601ba in case exchange doesn’t return order info … e3876bcf removing AON as it is not supported in binance. will be added once TIF is added for other exchanges 1c3ce265 documentation for pairlists 6ab907be Rename config whitelist to pairlist 4143e2c0 adapt tests to send sell-reason in sell-message 33e9ed5a Print sellreason in sell-message 24f9ea29 tests fixed e7684b44 capital in trade extracted to a separated argument 32b6cd9d Update ccxt from 1.17.574 to 1.17.581 bf678164 remove default param - fix tests ba3218a8 Support multiple sorting variants ab60571a Add sample config 0929f596 Refactor pairlist-tests 18ad3388 Some more tests adapted to pairlists ef1208b3 Fix rpc messages 1b3ecb83 Deprecate --dynamic-whitelist 108d9a11 function name refactored 43bafc39 static method added b5192193 total amount passed to edge should consider open trades too 3360e777 Fix flake adn mypy 11da297c Update ccxt from 1.17.572 to 1.17.574 99f7c375 Correct Edge links 3a086aac Add commit and message to container 26187ef6 patch exchangehas d09dbfe2 Add volumePairList - refactor tests to correct file 58c7adae Test for blacklist 8fd713f3 validatewhitelist should return the list again 1738633e Fix refreshwhitelist tests e8fbe77e Refactor static whitelist to module bb828c30 Remove unnecessary test-file 35d678c5 Update ccxt from 1.17.566 to 1.17.572 b594bc7c Update ccxt from 1.17.563 to 1.17.566 a5414b84 flake8 2d17346b explaining arbitrary stake amount in comment 7ddbaa70 USDT to ETH conversion. 1 USDT = 1 ETH bd673178 constants removed 33f1cc13 fixing tests 1d41a917 stakeamount in case it doesn’t exist ee62adf4 highlight 4431e3bd position size explanation enriched 88d277ea adding required config for edge 9c0be99f rounding float at the end c4f17f1c config json updated 86d9457e removing unnecessary variable before returning the result 9c987fde variable name changed (finalpairs) b1c81acf another futile one 042e631f rollback on futile change bf990ec5 test fixed and flake 24f573f3 log "Found no sell signal for whitelisted ..." changed (#1378) d4f83a75 Fix missing mock in testaddstoplossonexchange f04655c0 Test exceptions in sell-stoploss 4a2d6037 adding dots at the end of sentences 7e86ec31 tests added for wallet additional functions c61ede41 documentation updated aadc9f05 conf schema 11101e66 config full aded 12471e01 added tests for position sizing 7767470a return stake amount of strategy if edge doesn’t have any f554647e “checking sell” message removed to debug 42c8888f Update ccxt from 1.17.556 to 1.17.563 efcec736 refactor startupmessages to rpcmanger 74ca34f2 flaking8 3d37c5d7 edge non existing stoploss fixed. solves #1370 bc2f6d3b Update ccxt from 1.17.545 to 1.17.556 6bedcc5d log enriched for time in force a61daed8 logs enriched cb9104fd Add BNB as blacklist to align to documentation 38592c6f Add binance config sample, improve invalid pair message e698590b avoid generating logs on each iteration 1a5465fb logs enriched in case of stop loss on exchange, test fixed c913fef8 stop loss limit when hit, the close price is “average” e9305b65 position size fixed fb755880 logs added in case stop loss on exchange is hit da94e97c in case trade is not open, then handlestoplossonexchange should not be called 50a38413 Update ccxt from 1.17.543 to 1.17.545 4ffc74d5 if buy order is rejected or expired the bot should exit the buy loop 29f680ec fix order type test 7dbf0fed stop loss limit order type corrected 159ac6e6 edge tests fixed for position sizing 7832fe70 Update ccxt from 1.17.539 to 1.17.543 f5a70750 edge real position sizing drafted 6351fe7a test added: stoplossorderid should be null after migration 7f6fc7e9 Lost in git ! b6353508 flake8 1f1770ad migration script and and error handling on stop loss order 17004a5a documentation corrected b2634e8e typo corrected d3712c6e Update ccxt from 1.17.536 to 1.17.539 ad8592f3 Test live mode of getfree 16eec078 Use dot to access attribute in NamedTuple 9f26022c copy/paste corrected 962b02b0 one last step before tests 29c23e31 added time in force in buy and sell functions 181424e8 time in force validator added ba20b1b5 TIF added to constants and json full 890cef88 oops, lost in git :/ fb7b65c9 time in force drafted 6c38bde2 some formatting fixed b5797686 dry run set explicitly to False for live stop loss 5c257730 test added for dry run stop loss sell 1ad5ccdf dry run condition when sell occurs a80c9843 flake8 92930b23 test fixed 5e1fb111 documentation added for stop loss on exchange 3e29fbb1 stoploss on exchange added as a parameter to ordertypes ebaf58b0 Only sort data if necessary 8a436119 Remove getcandlehistory (it's now async) 745a5177 Fix comment pointing to wrong column 317eba21 Remove dual instanciation of pairinfo named tuple fd718471 replace lambda with Magicmock in test e89df448 Update ccxt from 1.17.535 to 1.17.536 e4744c1b stop loss on exchanged removed from doc dcae3a26 test of checkconsistency added 664b9617 removing NotImplementedError from stoplosslimit 1d35428c Rename getvalidobjects to getvalid object a3477e07 Remove constructor, it's not needed in the baseclass 266bd7b9 error message improved 20de8c82 Convert to Pathlib cc7b8209 Move hyperoptresolver to resolvers package 519b1f00 adding strategy config consistency function 2c0d0946 Small stylistic improvements to strategyresolver 21a093bc extract resolvers to IResolvers and it's own package c8a0956e fixed test handlestoplossonexchange b5192880 [WIP] adding tests for handlestoplossonexchange. fe892713 typo b2c0b20a added real tests for stop on exchange in dry-run 000711b0 added stoplosslimitorder for dry-run 870631f3 1) comments added to handlesl 2) dry-run force price removed 531d9ecd docstring added afd0a054 typo corrected a9ec5c66 simplifying if conditions 1a8e9ebc stoplossorderid added to migration script 63c2ea11 Not sure why those arguments were there ! 29347a69 adding getfree to wallet 29a4c99d Update pytest from 4.0.0 to 4.0.1 412a627d Update ccxt from 1.17.533 to 1.17.535 3e8de28b Add Note about order types support dedf1ff7 refactoring 89eb3d9f blank line removed 1c2c19b1 the complex in the life of flake8 resolved 9144a8f7 tests fixed 5ee2faa1 adding stop loss on exchange after the buy order is fulfilled not before. fea77824 handle stop loss on exchange added 605211db Update scikit-learn from 0.20.0 to 0.20.1 270624c0 Update ccxt from 1.17.529 to 1.17.533 a9f04609 tests fixed 27a6dcf3 getting available balance from wallet instead of API call. 1dde5679 final broken test fixed 6f0025c6 documentation written 7faafea8 added test for cancelling stop loss before sell 07ac9024 test exchange added ecb2c4dc bloody flake8 cc1422d4 flake8 34185929 freqtradebot test added for orders on exchange 24df093a test: only implemented for binance 2461d86c dry run should consider stop loss is hit on limit price 3a1c3783 typing bugs bbe8e4e4 flake8 da561762 cancelling stop loss order before selling fad75939 doesn’t have to create another Trade for SL. can be cumulated into the same. bb37b56d adding stop loss order id to Trade 3b7e05e0 stop loss order added right after a buy order is executued bfbdddff stoploss limit order added to exchange f73a18c5 Update ccxt from 1.17.522 to 1.17.529 eb532814 python beginner problem resolved 4b86b2b7 Happy flake8 ! 3a2134db removed Optional 4d75e905 None ripped off for optional as wallet must have exchange and currency b129750f adding “optional” in str 88f61581 1) NamedTuple refactored 2) Missing data handled cb3cf960 tests added in case of missing data aeb372c2 test wallet when api return changes 5b689402 update wallet in casse order remaining is zero 68f81aa2 test wallets moved to tests folder 64129897 refreshticker should be called just once per iteration. d745e577 Update ccxt from 1.17.518 to 1.17.522 a3b60041 IHyperopt: all methods static, somef ixes for mypy 7757c53b Small fixes 5dd013c3 Rename hyperopt interface and resolver 5a550ef2 Fix docs typo in hyperopt ce092742 Update ccxt from 1.17.513 to 1.17.518 e69f9439 Add missing semicolon b5025013 Drafting stoploss on exchange cf2d6850 Update ccxt from 1.17.502 to 1.17.513 003480ad flake indentation b680681b updating wallet at handle timeout functions too c0333780 change dict type to Any 9c549f45 removing unnecessary private function 608ce98e moving wallets to root a92619f1 Added empty lines related to last commit removed 7cb8b28f wallet sync added 606e41d5 wallet tests added f4bb2037 removing persistence update d5b47abe Wallet table removed a0658bb5 comments added 12f07ee1 space removed b815c8fe updating wallets whenever a trade happens afe52efc removing wallet from freq 82cb0e4d putting wallets into a class (doesn’t need to be in persistence) b3e08831 Remove rate for market orders c11984d9 Check if exchange supports all configured market types 968184ef Swap default mode to all limit (defaults to how it was before) 69dd56b2 wallet sync drafted 492868a9 Seperate different tests within one test clearer 681659f2 Update ccxt from 1.17.500 to 1.17.502 a9a157af Align tests and test if ordertype is passed to ccxt correctly ef1e20bf Don't add default value for ordertype 54387326 remove need for escaping quote e485aff5 Test failed load on invalid ordertypes 9ba281c1 add supported limit values 54a86d72 Raise error if one of the required ordertypes is not present 3ab0cf49 Add ordertypes to sample strategy 6e78efd9 Document "ordertypes" setting 24ed9a8b Add loading ordertypes from config file b7abf7dd Update ccxt from 1.17.498 to 1.17.500 98df3c81 Fix missing mock in backtesting db8c8ea4 added a space in help d05c671a adding edge args to bot-usage dcf99308 improve hyperopt documentation (links) e6baa9cc Switch tests to kwarguments 52f4d700 Update pytest from 3.10.1 to 4.0.0 23295514 Update ccxt from 1.17.494 to 1.17.498 69619030 removing unnecessary args from config 03e6caa5 adding notice about Edge ignoring ROI and TSL in doc 1cfd19ae removing unnecessary args for edge f666d159 renaming edge to edgecli for command line version 6a71f80a Add support for different order types 4f800bfb Fix pickling-error bb9a1e5f edge cli tests added 9698eee9 documentation added ca22a116 timerange added to args 5d73b303 unnecessary libraries removed + arg help enriched 0767718a clear help added to stop losses arg dd47d7ad cli blank line added to readability b0e4aa8e stop loss range added to args 36030176 nbtrades and avgtradeduration added to cli ac0c9314 adding number of trades + average trade duration to edge info 7fb8ae3e Update pyfind1st from 1.1.2 to 1.1.3 9baf228e Update ccxt from 1.17.492 to 1.17.494 5de3f1d9 showing result in tabular 95cbbf1c adding edge configuration to cli cf974168 Edge cli drafted 51dfd2bf If maxopentrade=-1 means it should be ignored. 4e64bc3d Update ccxt from 1.17.491 to 1.17.492 bdba6186 Fix doc-typos 028139fa Update pytest from 3.10.0 to 3.10.1 c29543dd Update ccxt from 1.17.489 to 1.17.491 261cd774 Update sqlalchemy from 1.2.13 to 1.2.14 ef2c31b5 Update ccxt from 1.17.488 to 1.17.489 060a1b3f Add /whitelist to help message 08ef2730 Add /whitelist call to telegram 62402351 Clarify volume selection for dynamic whitelist 02527eee Add rpcwhitelist call 9bbaeb4e mypy expression aacc1d50 removing total capital in favour of stake amount d6135533 base position on stake amount instead of total capital 7dd74c37 flake happiness provided 97fd33d7 adding test for process 523a9a60 fix tests 0f2ddbbe Update ccxt from 1.17.485 to 1.17.488 4dcd15da improving documentation for positioning 617a5840 putting edge adjust function in _process not in createtrade 12e735e8 1) extracting edgeconf to a fixture 2) test cased adjusted to Backtesting 3) Formatted backtestingdetails a bit b41633cf point out "good first issue" label 59cd4fe0 Remove boilerplate comments 292962d6 Fix tests 1840695a Update requests from 2.20.0 to 2.20.1 1db9169c Update ccxt from 1.17.481 to 1.17.485 5c5fe4c1 Fix test 272ff51d correctly patch exchange 56dcf080 Add explicit test for parallel trades 93429a58 remove TODO 9cd2ed5a fix hyperopt gettimeframe mock fa4c199a fix some mismatches after rebase 2371d1e6 Fix backtest test (don't use 8m file if we use 1m tickers) 66487f2a require start/end-date argument in backtest 83a8d791 Fix alternate buy/sell (this should respect the sell signal!) db17ccef Adapt backtesting-tests to new backtest-logic 03cda8e2 remove meaningless backtesting test 6729dfa6 Add gettimeframe mock for hyperopt 96efd12a add new options to hyperopt e94da7ca inverse backtest logic to loop over time - not pairs (more realistic) aefc2073 adding dot to the end of the phrase. a7dc8f5f adding edge configuration to configuration.md and removed whitespaces 5d850825 adding a notice about the incompatibility of Edge with Dynamic whitelist cca371c5 Update ccxt from 1.17.480 to 1.17.481 6d80c038 removing raise KeyError in test e5c64997 assigning strategy to edge from FreqtradeBot 7b62e71f Fix some tests and rebase issues 866da8aa reinitializing Edge calculated data in case of inability to download backtesting data 3330d327 removing reserve keyword “filter”: replaced by “adjust” 7b809855 comments on recursive function + indentation of function declaration 934dd97e adding init for edge test folder 96a43327 pairinfo moved to class header for reusibility b425cc3e adding explanation regarding max trade duration and interval f75606d2 formulas markdown style 5bd3bae5 unifying default value explanations bd1b0582 typos in documentation corrected 6d63de19 removing unnecessary lib 553e5656 forcestoploss refactored f4b626ed Update ccxt from 1.17.476 to 1.17.480 8044846d Fix some refactoring problems 477515c4 Now using resolver for custom hyperopts e0f42098 Updated logger in customhyperopt 40368bd1 Added more hyperopt documentation 5816d1c1 Updated documentation for new hyperopt 469db0d4 Decoupled custom hyperopts from hyperopt.py 23d3a7f3 capital after dots and default values corrected 1b457e90 config initializer refactored bcecaa69 removing global variable modification 133ba5d6 moving stop loss range to init as it doesn’t need to be called on each iteration 5c38b92a simplifying calculations to be more readable 7278cdc7 Update ccxt from 1.17.469 to 1.17.476 5754e519 more typos 8a254901 Typo corrected 4fbabd3b Doc for Edge WIP 3 49d30ad0 doc WIP 2 cc413176 documentation WIP 1 2c0fc3c7 Test latex images f92d229f Update pytest from 3.9.3 to 3.10.0 9f03c26c Update numpy from 1.15.3 to 1.15.4 8a5e4c3f Update cachetools from 2.1.0 to 3.0.0 3666e013 Update ccxt from 1.17.464 to 1.17.469 ed24d96a some formatting for flake8 8ea9b374 passing pair to gettradestakeamount 120655d2 fixing tests for namedtuple 14bfd4b7 using named tuples for keeping pairs data 81f971f1 Update ccxt from 1.17.459 to 1.17.464 d7821acb refreshing pairs on each iteration b6d4e11e added minimum win rate to config 4ab7a0fb Update urllib3 from 1.24 to 1.24.1 7155e5cf Update ccxt from 1.17.455 to 1.17.459 f6498bf5 beginning 9cb66077 moneymgt added f77fa6b5 misharizing temporarily for doc b57ae20a edge doc file added 83b3323c formating md 85768fcc beginning of doc ece1c8a7 flake8 again and again and again and again https://www.youtube.com/watch?v=MuSK3pDDYD4 d1ba994e expectancy test completed 237233c3 renaming tests 2ef2754f flake8 happiness satisfied 3eeaa50f stoploss and sell signal tests done bb791eac backtesting remove from import + whitespace removed 7f3b4a97 Reinstate df - which was removed in #1287 333d505b OHLC validation corrected 05b80104 removing unnecessary test cases 2f6aafe6 Edge calculation refactored: removing redundant calculations 17895282 Update ccxt from 1.17.448 to 1.17.455 afc13291 Update sqlalchemy from 1.2.12 to 1.2.13 92f9c828 Update ccxt from 1.17.439 to 1.17.448 8316acfa Add column description to test-cases 95d271ca Fix ROI close-rate calculation to work with fees - adjust tests c21b4564 Fix smoe comments in persistence eab15e09 Update ccxt from 1.17.436 to 1.17.439 a321d0a8 Short descriptors daa9863d Try adding headers 79d1d63e Align data (by halfing all data) 8c93760a simplify some code fe2c158e Adjust sell-rate to new backtesting (respects roi/stoploss) f96f0cde Add additional comment 9e921d44 refactor General bt-utils out of detailed backtest file e442e22a refactorign 9798e881 refactor sellr to sellreason 3679b094 cleanup interface fc3f8b43 some more cleanup b383113d Test open / close time - small refactorings 936441a8 Update ccxt from 1.17.432 to 1.17.436 9065e79f Cleanup and add some comments on what's happening in the sample snippets 6096f3ca Simplify functional tests 98050ff5 use all minroi entries 233c442a Adjust backtest so sell uses stop-loss or roi value as closerate a0e8bfbd shift buy-signal to one earlier (backtest shifts it forward to avoid lookahead) 409465ac adapt functional tests for new version after rebase 30a6e684 update with new comments and new data for tc5 b8f78cb1 Refactor tests, implement @creslinux's data e0fda7a5 Add tests validating backtest details 2f55cbde fix #1298 35759b37 Update ccxt from 1.17.429 to 1.17.432 1121ec07 don't have nbassets as parameter - it's a config setting as any other 86ad0c04 Update pytest from 3.9.2 to 3.9.3 d3387dec Update ccxt from 1.17.427 to 1.17.429 551dc79c Don't overwrite pairwhitelist in config dict 7e4a0bae improve hyperopt.md a4fc5afb Add hyperopt ROI documentation, add note on methology for hyperopt 57d3a6f7 Update ccxt from 1.17.421 to 1.17.427 f860aab0 Update ccxt from 1.17.411 to 1.17.421 426db721 removing test line dfeabcf7 Edge tests template refactored to be more readable c5474794 1) opentradeindex refactored 2) sell index is shifted by 1 5c77dc6b Update ccxt from 1.17.402 to 1.17.411 b09a1d1a 1) do not download ta-lib as we have it offline. 2) removing ta-lib directory but not the file 67ace0a7 trade open time bug resolved (was behind of the market) b90392f9 Update pytest from 3.9.1 to 3.9.2 59545013 Update numpy from 1.15.2 to 1.15.3 49d16872 Update ccxt from 1.17.399 to 1.17.402 764aed2c Update ccxt from 1.17.395 to 1.17.399 91dc8644 Update hyperopt.md ee697d60 Update ccxt from 1.17.393 to 1.17.395 530d521d Rebuild complete image on "cron" events 39efda19 Add freqtradeorg/freqtrade docker images to the documentation 7301d76c Remove autobuild for technical as it's not versioned 0535660d build technical image af728301 modify travis to build and push docker 907761f9 Install ta-lib in Docker with script 98738c48 modify install-ta-lib script to support running in docker 184b5ca3 cleanup root dir and create buildhelpers 677a9e56 remove skipped test (refreshwhitelist is tested in testaclpair) 202b1d1f fix #1289 - we should not modify decimal context 71814ae2 Update requests from 2.19.1 to 2.20.0 c69b8791 Update ccxt from 1.17.392 to 1.17.393 7f9f5324 Add validatebacktestdata script 3c6d10f0 Print missing value count too bc356c4d Return true/false for validation function 518dcf52 Cleanup some tests 8m is not a valid ticker value fb52d322 Add validatebacktestdata function 57bc4a86 average trade duration added d7459bbb refactor gettimeframe out of backtesting class 8a3272e7 don't copy tickerdatatodataframe into backtesting d953190c Update pytest from 3.8.2 to 3.9.1 14e58169 Update urllib3 from 1.23 to 1.24 5134736c Update ccxt from 1.17.388 to 1.17.392 b546f030 Update ccxt from 1.17.383 to 1.17.388 b278dcd6 Update ccxt from 1.17.381 to 1.17.383 631ba464 Show warning if part of backtest data is missing 4b9d04a2 Update ccxt from 1.17.376 to 1.17.381 93503d60 Update ccxt from 1.17.375 to 1.17.376 6aa9cd10 removing outliers per pair and not across all pairs fb3fd7cb setup script and documentation fixed for TA-Lib and MacOS 912e9bd1 mac installation path 138c8152 remove unused import 701978a4 Add test for dust hiding 36286598 Add tests to check if no failure occurs when pair is not available 792d2dbe Hide "dust" from /balance a4d2bb6f Fix "No market symbol" exception in telegram calls 3e8e8a55 Enable analytical telegram commands when stopped 3de3c246 add warning-message when forcebuyenable is true 6ff4c9b8 Update docs for /forcesell 03fb1885 Update urllib3 from 1.22 to 1.23 a541d0a9 convert tests to packages 44c275c8 flush session for /forcesell all 8c6d7c48 Add tests for /forcebuy fbe69cee Add /forcebuy to telegram 98c1706c Update ccxt from 1.17.373 to 1.17.375 b1f016b9 Update hyperopt.md 50290039 Allow passing price to buy function a20ceb9e Add reloadconf to telegram help 21480d42 be more expressive on what "this value" is 2cd7b40b Fix spelling in stoploss.md 3af655d1 Update ccxt from 1.17.371 to 1.17.373 d5409287 Update ccxt from 1.17.369 to 1.17.371 1d38c35e Fix typo / word repetition 6d4f68fc unnecessary variables removed 9e44b260 BacktestResult removed as it is not used bd25212b test case added: edge calculate function 36d928d4 unnecessary if removed 18c04ab4 Update ccxt from 1.17.368 to 1.17.369 ce4f0696 Add logging to download script and enable ccxtasyncconfig 3973d369 deprecate ccxtratelimt 37088cfb add to constants ddc15132 Add ccxtconfig to both configsamples d1edcf9d Add documentation for ccxtconfig e7d5cf9d Allow loading of any additional configuration to ccxt d3078d75 test case added: edge stop loss for pair 77cac9e5 autopep8 applied 06d75a8b test cases added: forcestoploss by Edge 9723300a Update ccxt from 1.17.365 to 1.17.368 3ed486f3 update documentation for raspberry fa387729 Update pytest from 3.8.1 to 3.8.2 1e669c72 Update ccxt from 1.17.363 to 1.17.365 b57d9edd Edge test expectancy function (round 1) 6f79b558 - function renamed to be more readable - expectancy bug resolved a46b3ec9 first test completed de20e142 added 9 use cased for testing Edge a364a1e4 Edge package test cases drafted 697493bd test cases for Edge package drafted 23f89809 edge config added to CONFSCHEMA and configfull.json.example 8741a637 return type of stakeamount set to float 26b3c3f7 removing unnecessary typing 3b57aef1 config name refactored 9c4fdc1b initializing Edge in Freqtradebot only if it is enabled d634a034 adding DataFrame type e4fc298b typo corrected 11c3b3fd tradedf unnecessary type removed a6c2e40b moving time range to initializer as we have to calculate it once 4a9ed02b develop to version 0.17.3 f306abb3 No need for Exchange class in Edge 8b3631d1 make “if condition” more readable 2056b6f5 no need to initialize a variable with None ad666ac6 autopep8 corrected f72fb0ad exchange “None” condition removed as Edge is after Exchange anyway 114fd7fe declaring local variables. using get for configuration aa194875 removing unnecessary constructor docstring 2a9ca9a3 Removing future from travis and dockerfile cff83d3e bloody autopep8 again c8d06e2b filter pairs according to expectancy + bug at the end of array resolved f15825e3 long line broken to two e822d5d7 upgrading pyfirst1st to 1.1.2: ezsetup.py removed 96a0fc88 Moving Edge before refreshpairs 21f5a94e using autopep8 for formatting file 25d6ed31 whitespace removed 24364a56 keeping mypy happy 0594deaf removing whitespaces and long lines 75ba6578 unused library + trailing whitespaces removed. fcf837bf refactoring variable declaration 87df4e45 refactoring backslap (round 2) 40d73de3 refactoring backslap (round one) e8716f16 calculating expectancy and sort pairs accordingly instead of delta a806dd45 lost in branches ! typo for some magical unknown reasons 027ec4d9 testsellprofitonlyenableloss and testcreatetradelimitreached fixed 30842864 testprocesstradecreation log message changed: in reality the buy signal is actually triggered 76dd7549 testgettradestakeamount and testgettradestakeamountnostakeamount fixed: “pair” arg added to gettradestakeamount 303eefda testgettradestakeamountunlimitedamount fixed: “pair” argument added to gettradestakeamount 13667835 Dockerfile: installing future before requirements.txt a26131ce .travis: install future before requirements.txt 29459d7d import libraries organized. f1b4e4b3 stop loss range “start, end, step” configurable for Edge cf37093e empty dict default removed d6d3dfdc removing “if ujsonfound is not None:” as “json” refers to “ujson” if it exists 66b1eac1 removing unnecessary ujson import e1ca8073 removing unnecessary ujson import fbc77c1f moving stakecurrency line back to its initial place 3b925e46 removing default pair value of gettradestakeamount 3e3ed947 added “maxtradeduration” config + using “removedumps” config 61095db0 edge config enriched 4fd037f8 removing pdb 4bd956d5 test file removed 74979943 backslap removed from arguments 2d432bfa backtesting rollbacked to develop branch 4746aea0 test file for edge (will be removed) ef52c7b5 edge positioning put into package decaf6c4 Backslap bug on “stop loss triggered” indexes resolved 88854cba removing only pumps from dataset 07ba14d1 backslap bug resolved 5d9c7fa8 add point about malicious code e30d23cf [draft] First version of edge positioning 3f890335 Introduce Commiter guide 601ae054 formatting for contributing.md bc6b80ff Edge functionality drafted 721fb3e3 remove unused profile import 04d5e857 added option to easily switch between backtesting and backslapping from the commandline option ab66fe1b prepared for tracking signals 1a673c6a working on moving backslap 0372485c Some reason did not push this... vector calcs redone. 2dc3d6a6 Update backtesting.py e39ae45d Some reason did not push this... vector calcs redone. 482b8518 Update setup.py 79f931f2 Update backtesting.py 3184c85d default settings to trigger low, take stop 8cea0517 Added stopstops ed4bf32f Fixed Stop closing in Index 0 when buy opening on Index 1 baaf0a5b Handle when 0 trades are found in any pairs being tested. a3139173 Handle a buy on the last candle 357c8c0b sensible defaults 3b0cb7bc Added ujson and pyfind1st to setup.py 8d5da4e6 changed defaults Seperated save trades and print trades options. ec196053 Added Show trades option 99d16e82 disable time calcs output on vector displaying in debug. Excessive. 885a6534 Disabled full debug on in last commit Switched Stops to trigger on Low Switched Stops to pay stop-rate not close. 059aceb5 Disabled full debug on in last commit Switched Stops to trigger on Low Switched Stops to pay stop-rate not close. 0f3339f7 use ujson to load ticker files 30% faster from disk. 4a39a754 Fixed: self.use_backslap = Bool on line97 5aaf454f GAS trades verified from candle data to excel by hand All pass 3 sells 1 stop loss fb0edd71 in tech test eed29a6b update 7174f27e Rewrite to used algned numpy/dataframes updated logic added vector fill for abs/profit/duration in single hit on results. a8b62a21 hmm 4e68362d Works with reporting output 71c3106f Added ABS and Fees Fixed Index Alignment that was off moving from scratch to FT Fixed Stoploss, its a negative in FT, had been using positve stop -1 in scratch 07175ebc up 90e3c387 First cut, Bslap science project replacement for freqtrade backtest analysis

```

Scientific Software - Peer-reviewed - Python
Published by xmatthias over 7 years ago

FreqAI - Release 0.17.2

91373387 - Merge pull request #1251 from freqtrade/pyup-scheduled-update-2018-10-01 d0c7b7c5 - Update ccxt from 1.17.360 to 1.17.363 b130a923 - Merge pull request #1249 from freqtrade/pyup-scheduled-update-2018-09-30 3af3094a - Merge pull request #1247 from freqtrade/fix_hyperopt_pickle 9d70d250 - Update scikit-learn from 0.19.2 to 0.20.0 05adebb5 - Update ccxt from 1.17.351 to 1.17.360 e1ddddad - Merge pull request #1246 from freqtrade/fix/network_test 84622dc8 - Move test for strategy out of constructor 36e9abc8 - Manually update scikit-learn to 0.20.0 1b290ffb - Update hyperopt to show errors if non-supported variables are used 334e7553 - Fix hyperopt not working after update of scikit-learn to 0.20.0 f4585a27 - Patch exchange to not cause network delays during tests 448f3a71 - Merge pull request #1241 from freqtrade/fix/loadstrategyonce 6e66763e - Only load strategy once during backtesting 89b515be - Merge pull request #1220 from freqtrade/fix/plot_dataframe d4818957 - Merge pull request #1211 from freqtrade/fix_no_trades_found 4ad3e96a - Merge pull request #1225 from freqtrade/test_acl_improvement 3893b638 - Merge pull request #1213 from freqtrade/fix_mac_install 5dac3b56 - Merge pull request #1238 from freqtrade/fix/buyexception bcb13d04 - Merge pull request #1239 from freqtrade/pyup-scheduled-update-2018-09-26 f790f953 - Update ccxt from 1.17.350 to 1.17.351 766d3289 - Merge pull request #1204 from freqtrade/move_load_markets e09674b7 - Merge pull request #1227 from freqtrade/feat/reduce_backtestnoise 88ccdc03 - Fix exception when order cannot be found d04247cd - Merge pull request #1235 from freqtrade/pyup-scheduled-update-2018-09-25 d13e87d7 - Update ccxt from 1.17.341 to 1.17.350 bbcbf6ad - Merge pull request #1234 from freqtrade/pyup-scheduled-update-2018-09-23 6116c27a - Update pytest from 3.8.0 to 3.8.1 12e62878 - Update numpy from 1.15.1 to 1.15.2 0e168159 - Update ccxt from 1.17.335 to 1.17.341 e1c9b77c - Merge pull request #1230 from freqtrade/pyup-scheduled-update-2018-09-22 54b714ba - Update ccxt from 1.17.327 to 1.17.335 f302882f - Merge pull request #1228 from freqtrade/pyup-scheduled-update-2018-09-21 8e659af5 - Update ccxt from 1.17.324 to 1.17.327 567211e9 - don't print "NAN" lines in "left_open_trades" 95f884f4 - Merge pull request #1226 from freqtrade/pyup-scheduled-update-2018-09-20 53c0f01b - Update sqlalchemy from 1.2.11 to 1.2.12 0aa8557c - Update ccxt from 1.17.316 to 1.17.324 4d5e368c - Remove direct call to pytest fixture to elliminate pytest warning 2d4d1d73 - Merge pull request #1224 from freqtrade/pyup-scheduled-update-2018-09-19 2c5b6aca - Update ccxt from 1.17.311 to 1.17.316 eaa657aa - Merge pull request #1222 from freqtrade/pyup-scheduled-update-2018-09-18 a5d4de80 - Update ccxt from 1.17.305 to 1.17.311 52b75c59 - Merge pull request #1218 from jin10086/develop f04e4f21 - Fix trailing whitespace 176bae2d - Set default-db url in configuration, not arguments 14e21765 - Fix missing column to load current backtesting export files eebaede8 - Merge pull request #1219 from freqtrade/pyup-scheduled-update-2018-09-17 9b83a092 - Update ccxt from 1.17.300 to 1.17.305 0a4b2f19 - use --no-cache-dir for docker build 3abc294e - Merge pull request #1216 from 0xflotus/patch-1 6aa18bdd - fixed being 16279bc1 - Merge pull request #1215 from freqtrade/pyup-scheduled-update-2018-09-16 14961e2e - Update ccxt from 1.17.294 to 1.17.300 30ae5829 - Fix SED command for macos 200dfa75 - Wording for readme.md 51b3eb78 - Add section about about clock accuracy to readme.md 9685c09c - Add offset to "get_trades_for_order" 4303e86e - Merge pull request #1210 from freqtrade/pyup-scheduled-update-2018-09-15 f4d26961 - Update ccxt from 1.17.291 to 1.17.294 029a6798 - Merge pull request #1209 from freqtrade/pyup-scheduled-update-2018-09-14 f5ba34ad - Update ccxt from 1.17.283 to 1.17.291 bcf47b29 - Merge pull request #1208 from freqtrade/pyup-scheduled-update-2018-09-13 91c0e364 - Update ccxt from 1.17.276 to 1.17.283 fadf82dd - Merge pull request #1205 from freqtrade/pyup-scheduled-update-2018-09-12 241b23e5 - Update ccxt from 1.17.271 to 1.17.276 c429eae6 - Adjust remaining tests to _load_markets refactoring 674bad2a - Add and fix tests for load_markets 14b7fc42 - Change returntype for _load_markets to dict 14717b17 - Merge pull request #1203 from freqtrade/pyup-scheduled-update-2018-09-11 51ef1379 - Update ccxt from 1.17.257 to 1.17.271 f954efbd - Adapt tests to not _load_markets 0a290967 - Refactor load_market out of validate_pairs 687dc78d - Merge pull request #1202 from freqtrade/pyup-scheduled-update-2018-09-10 8aaf1745 - Update ccxt from 1.17.250 to 1.17.257 2660be9b - Merge pull request #1201 from freqtrade/pyup-scheduled-update-2018-09-09 65ad9cf7 - Update ccxt from 1.17.242 to 1.17.250 179bcf39 - Merge pull request #1101 from mishaker/ccxt-async 062eca19 - Merge pull request #1199 from freqtrade/doc_ratelimit 46921746 - Merge pull request #1200 from freqtrade/pyup-scheduled-update-2018-09-08 65699f70 - Update ccxt from 1.17.240 to 1.17.242 e57be107 - Document ccxt_rate_limit 5ba6cfe4 - Merge pull request #1195 from freqtrade/update_hyperopt_doc f0c7394b - Merge pull request #1197 from freqtrade/pyup-scheduled-update-2018-09-07 fb4f83b3 - Update pytest from 3.7.4 to 3.8.0 a49a60b4 - Update ccxt from 1.17.233 to 1.17.240 13ffd880 - merging develop into async. requirement.txt conflict resolved 4e847f26 - explicitly ask for more ressources in hyperopt documentation 0004b324 - Merge pull request #1194 from freqtrade/pyup-scheduled-update-2018-09-06 4f583d61 - Update ccxt from 1.17.231 to 1.17.233 3eb2e92d - Merge pull request #1191 from freqtrade/pyup-scheduled-update-2018-09-05 a748c079 - Update ccxt from 1.17.229 to 1.17.231 1682d6b3 - Merge pull request #1188 from freqtrade/pyup-scheduled-update-2018-09-04 27ffce4c - Update pytest-cov from 2.5.1 to 2.6.0 d62f97dc - Update ccxt from 1.17.223 to 1.17.229 9c1cd4be - Merge pull request #1187 from freqtrade/pyup-scheduled-update-2018-09-03 754027ef - Update ccxt from 1.17.222 to 1.17.223 e9deb928 - Fix bug when exchange result is empty 6b74fb08 - Merge pull request #1119 from creslinux/ta_on_candle feb14990 - Merge pull request #1186 from freqtrade/pyup-scheduled-update-2018-09-02 3831f198 - Update python-telegram-bot from 11.0.0 to 11.1.0 adfd8c7f - Update ccxt from 1.17.216 to 1.17.222 3fd00c9a - Merge branch 'develop' into ta_on_candle 2ec5a536 - Fix comment location d35d3bb3 - rename ta_on_candle to process_only_new_candles cb46aeb7 - rename variable to be more expressive b8624e59 - Merge pull request #1183 from freqtrade/pyup-scheduled-update-2018-09-01 fa5c8e4b - Update ccxt from 1.17.210 to 1.17.216 9945b975 - Merge pull request #1175 from freqtrade/doc/installation 17d6d923 - Merge pull request #1179 from freqtrade/pyup-scheduled-update-2018-08-30 9560cb80 - Update pytest from 3.7.3 to 3.7.4 3ed97fe5 - Update python-telegram-bot from 10.1.0 to 11.0.0 35c5d4f5 - Update ccxt from 1.17.205 to 1.17.210 a1bd30aa - Fix documentation string ffd4469c - fix typo, refresh_tickers does not need a return value 54ddd908 - Merge branch 'develop' into ccxt-async d41f0667 - Merge pull request #1125 from nullart2/order-book 9f8e68ce - Merge branch 'develop' into order-book f7b67cec - Fix missing docstring e14e7d9b - Merge pull request #1177 from freqtrade/pyup-scheduled-update-2018-08-29 b659ec00 - Update ccxt from 1.17.199 to 1.17.205 b6b89a46 - move order_book config out of experimental c9ee5280 - Add section about raspberry / conda to install.md 9bce6c5f - Add error-section for windows cdfff574 - Merge pull request #1174 from freqtrade/pyup-scheduled-update-2018-08-28 19628d31 - Update ccxt from 1.17.194 to 1.17.199 32ae344e - Merge pull request #1172 from freqtrade/pyup-scheduled-update-2018-08-27 c99ff78f - Update pytest from 3.7.2 to 3.7.3 188cfc43 - Update ccxt from 1.17.188 to 1.17.194 1a9c085f - Restructure install documentation eefc5349 - Merge pull request #1171 from freqtrade/pyup-scheduled-update-2018-08-26 fe169483 - Update ccxt from 1.17.184 to 1.17.188 4dfaf1d2 - Merge pull request #5 from xmatthias/order_book_xmatt c5efcace - change pip3.6 to pip3 c770eae7 - Merge pull request #1168 from freqtrade/pyup-scheduled-update-2018-08-25 2ee1a2d8 - Update ccxt from 1.17.176 to 1.17.184 42587741 - mock exchange to avoid random failures a489a044 - Mock Exchange results to avoid random test-failures 1d080219 - Merge pull request #1167 from freqtrade/pyup-scheduled-update-2018-08-24 ab628c13 - Update ccxt from 1.17.170 to 1.17.176 a37802e2 - Merge pull request #1165 from freqtrade/pyup-scheduled-update-2018-08-23 8c0e3375 - Update ccxt from 1.17.163 to 1.17.170 cac7e2c7 - Merge pull request #1164 from freqtrade/pyup-scheduled-update-2018-08-22 ebc07239 - Update numpy from 1.15.0 to 1.15.1 4508349d - Update ccxt from 1.17.157 to 1.17.163 7376a0d5 - Merge pull request #1131 from freqtrade/parametrize_outdated_ticker 36e0e652 - Merge pull request #1135 from freqtrade/fix/rpc_balance_vtho 5e4ae46b - Merge pull request #1163 from freqtrade/remove_amount_to_lots 66d52c12 - Merge pull request #4 from xmatthias/ccxt_async_retrier 6e90d482 - remove amount_to_lots (deprecated / removed) 37bb6ac5 - Merge pull request #1162 from freqtrade/pyup-scheduled-update-2018-08-21 8a844488 - Update sqlalchemy from 1.2.10 to 1.2.11 e5707b8a - Update ccxt from 1.17.152 to 1.17.157 8f41e0e1 - Use setting in 'exchange' dict 4bf05422 - Merge pull request #1161 from freqtrade/pyup-scheduled-update-2018-08-20 43f73c5a - Update ccxt from 1.17.146 to 1.17.152 a077955e - update json.load to json_load - followup to #1142 0674c3e8 - Merge pull request #1142 from freqtrade/ujson-loader 6d1c82a5 - Remove last refreence to `get_candle_history` de0f3e43 - remove unused mocks 694b8be3 - Move variables from class to instance 9403248e - have plot-script use async ticker-refresh c955c7c4 - Merge pull request #1160 from freqtrade/pyup-scheduled-update-2018-08-19 5a087670 - Update pytest from 3.7.1 to 3.7.2 97e9a44f - Update ccxt from 1.17.139 to 1.17.146 088c54b8 - remove unnecessary function d722c121 - fix bug in async download script d556f669 - Add async retrier 66255b8c - Merge pull request #1159 from freqtrade/pyup-scheduled-update-2018-08-18 bc22320f - Update ccxt from 1.17.134 to 1.17.139 64781643 - Merge pull request #1157 from freqtrade/pyup-scheduled-update-2018-08-17 56188f2f - Update ccxt from 1.17.132 to 1.17.134 eb4bc664 - Merge pull request #1156 from freqtrade/add_min_roi_test d1c5eebf - Add explicit test on handling min_roi_reached 98240e0e - Merge pull request #1154 from freqtrade/min_roi_output 0750d356 - Merge pull request #1141 from freqtrade/fix/python3.7 f57bf8f2 - Merge pull request #1155 from freqtrade/pyup-scheduled-update-2018-08-16 dc41a19f - Update ccxt from 1.17.126 to 1.17.132 16fa877b - Remove verbosity of trying backup tables - properly log if databasemigration happened ff8ed564 - Refactor refresh_pairs to exchange and fix tests e6e2799f - Keeping cached Klines only in exchange and renaming _cached_klines to klines. 4a8c1209 - Output min-roi setting when overwriting from config

Scientific Software - Peer-reviewed - Python
Published by shusso over 7 years ago

FreqAI - Release 0.17.1

Changes: aa10c6e - master to RELEASE 0.17.1 e02f964 - Merge pull request #1152 from freqtrade/pyup-scheduled-update-2018-08-15 be373e7 - Update ccxt from 1.17.122 to 1.17.126 6e2a2ab - Merge pull request #1151 from freqtrade/version-bump dd7f540 - Push develop as 0.17.2 78d1a67 - Merge pull request #1140 from freqtrade/update_plotly 2999588 - Merge pull request #1150 from nullart2/informative_startup 1edbc49 - refactor b34aa46 - additional tests 48e218d - test_talib fix 2bc7a66 - informative startup 8b9f1ca - Merge pull request #2 from freqtrade/develop 05cfbde - Merge pull request #1146 from freqtrade/pyup-scheduled-update-2018-08-14 04878da - Update ccxt from 1.17.118 to 1.17.122 5049485 - Merge pull request #1144 from freqtrade/pyup-scheduled-update-2018-08-13 eca8682 - Update ccxt from 1.17.113 to 1.17.118 a488734 - Merge pull request #1143 from freqtrade/pyup-scheduled-update-2018-08-12 2e78379 - Update ccxt from 1.17.106 to 1.17.113 7f6f579 - update plotly dependency e73331b - Merge pull request #1124 from berlinguyinca/database_tuning ffa4715 - Flake8 fix 5f8ec82 - Revert "updated dockerfile and requirements" 3ad6ee6 - Merge pull request #1139 from freqtrade/pyup-scheduled-update-2018-08-11 5bec389 - Update ccxt from 1.17.94 to 1.17.106 853374d - Merge pull request #1136 from freqtrade/pyup-scheduled-update-2018-08-09 1bcd433 - Update ccxt from 1.17.86 to 1.17.94 ed4771b - Merge pull request #1130 from freqtrade/fix_metadatatests 636ae1d - Merge pull request #1134 from freqtrade/pyup-scheduled-update-2018-08-08 4d03fc2 - Update ccxt from 1.17.84 to 1.17.86 8631104 - Merge pull request #1132 from freqtrade/pyup-scheduled-update-2018-08-07 3d94720 - Update ccxt from 1.17.81 to 1.17.84 131d268 - Fix failing tests when metadata in `analyze_ticker` is actually used eca5c6f - Merge pull request #1129 from freqtrade/pyup-scheduled-update-2018-08-06 bc62f62 - Update ccxt from 1.17.78 to 1.17.81 199bd7b - Merge pull request #1123 from freqtrade/fix-db_migration 8fc0f6e - Merge pull request #1128 from Axel-CH/fix-talib-prescision 65f7b75 - fix flake8 issue 848ecb9 - remove unnecessary seb command a555460 - add sed command in doc, fix travis error 0b825e9 - fix talib bug on bollinger bands and other indicators when working on small assets, rise talib prescision and add test associated a2730cd - Merge pull request #1126 from freqtrade/pyup-scheduled-update-2018-08-05 ba4de41 - Update pandas from 0.23.3 to 0.23.4 be9436b - Update ccxt from 1.17.73 to 1.17.78 d73d0a5 - Fix database migration ea506b0 - Add test for failing database migration 6ef1467 - Merge pull request #1122 from freqtrade/pyup-scheduled-update-2018-08-04 721341e - Update ccxt from 1.17.66 to 1.17.73 a586a75 - Merge pull request #1120 from freqtrade/pyup-scheduled-update-2018-08-03 b963b95 - Update pytest from 3.7.0 to 3.7.1 3037d85 - Update ccxt from 1.17.63 to 1.17.66 2cfa3b7 - updated dockerfile and requirements 85c73ea - added index 80a1c6e - Merge pull request #1106 from creslinux/xbt ea72af7 - Merge pull request #1118 from freqtrade/pyup-scheduled-update-2018-08-02 1450084 - Update ccxt from 1.17.60 to 1.17.63 398c617 - Merge pull request #1116 from creslinux/script_get_market_pairs 00b81e3 - fix readme.md spelling 0fc4a79 - Add note to readme for binance users 7f4472a - As requested in issue #1111 A python script to return e282d57 - fix broken test 3a5b435 - Merge pull request #1089 from freqtrade/feat/backtest_multi_strat 17d78b7 - Merge pull request #1115 from creslinux/candlesnottickers 1f97d0d - fix a741f11 - missing __init__.py f619cd1 - renamed/refactored get_ticker_history to get_candle_history as it does not fetch any ticker data only candles and is causing confusion when developer are talking about candles /tickers incorreclty. 29dcd2e - Merge pull request #1108 from freqtrade/pyup-scheduled-update-2018-08-01 f7f75b4 - Update ccxt from 1.17.56 to 1.17.60 7458aa4 - Merge pull request #982 from berlinguyinca/BASE64 36f91fc - XBT missing as a market symbol for BTC in constants 5b8ee21 - Adapt to pair_to_strat methology 038e976 - Merge branch 'develop' into BASE64 40ee86b - Adapt after rebase 76fbb89 - use print for backtest results to avoid odd newline-handling c648e2a - Adjust documentation to strategy table 765d1c7 - Add test for stratgy summary table 028589a - Add strategy summary table 5125076 - Fix typo 4ea6780 - Update documentation with --strategy-list a8b55b8 - Add test for strategy-name injection a57a2f4 - Store backtest-result in different vars bd3563d - Add test for new functionality 644f729 - Refactor strategy loading to __init__ 5f2e92e - Refactor backtesting 65aaa3d - Extract backtest strategy setting 9a42aac - Add testcase for --strategylist 56046b3 - Add strategylist option to backtesting e7d0439 - Add new arguments e38e0e6 - Merge pull request #1103 from misaghshakeri/ccxt_ratelimit_configurable 74fa4dd - CCXT rate limit config default to => true 66a0986 - Merge pull request #1102 from freqtrade/pyup-scheduled-update-2018-07-31 7248018 - Update pytest from 3.6.4 to 3.7.0 ab4343b - Update ccxt from 1.17.49 to 1.17.56 be1298d - Initializing CCXT with rate_limit parameter optional (default to false) 1044d15 - Merge pull request #1096 from freqtrade/cleaner-tests 2d7ef30 - Merge pull request #1093 from freqtrade/fix/talib-install b83487c - added required changes d048f3c - Merge pull request #1078 from creslinux/sandbox2 5a55cd2 - Merge branch 'develop' into sandbox2 f85cc42 - Merge branch 'develop' into cleaner-tests 155e134 - Merge pull request #1097 from creslinux/gdax3 81cf722 - Merge pull request #1044 from freqtrade/pair_to_strat fe27ca6 - Update test_exchange.py 012fe94 - Recommitted as new branch with unit tests - GIT screwd me on the last PR 075a42d - Merge pull request #1095 from freqtrade/pyup-scheduled-update-2018-07-30 8b8d3f3 - default_conf is function-scoped fixture, no need to deepcopy it 3ecc502 - Update ccxt from 1.17.45 to 1.17.49 67d1693 - avoid validating default_conf hundreds of times 3083e5d - use pytest fixture properly in test_hyperopt affdeb8 - rename func to throttled_func fb80964 - freqtradebot tests don't need to mock coinmarketcap anymore 1c20ef8 - remove parens df53e91 - fix one more test that was missing mock and needed internet e242842 - remove more useless docstrings from tests 2401fa1 - Change missed calls to advise_* functions 787d604 - Switch from pair(str) to metadata(dict) 941879d - revert docs to use populate_* functions 82680ac - improve docstrings for strategy 5fbce13 - update hyperopt to use new methods 39cf0de - don't use __annotate__ f286ba6 - overload populate_indicators to work with and without pair argumen 98665dc - revert inadvertent wihtespace changes cf83416 - update script to use new method 791c5ff - update comments to explain what advise methods do 8a9c54e - use new methods 18b8f20 - fix small test bug f12167f - Fix backtesting test df8700e - Adapt after merge from develop 0eff671 - improve tests for legacy-strategy loading aa772c2 - Add tests for advise_indicator methods 4ebd706 - improve comments fa48b8a - Update documentation with advise-* methods c9a97bc - Add tests for deprecation 2f905cb - Update test-strategy with new methods 7300c0a - remove @abstractmethod as this method may not be present in new strategies 921f645 - fixing tests... 0dcaa82 - fixed test? 3dd7d20 - more test fixes abc55a6 - fixing? hyperopt 5871488 - fixed errors and making flake pass 2e6e502 - fix mypy and tests 19b9966 - satisfied flake8 again 57f6836 - revised code 296d3d8 - working on refacturing of the strategy class 336cd52 - Merge pull request #1094 from freqtrade/pyup-scheduled-update-2018-07-29 f832edf - remove useless docstrings from tests 1bbb86c - remove nonsense asserts 2ef3540 - Update pytest from 3.6.3 to 3.6.4 9c7f53d - Update ccxt from 1.17.39 to 1.17.45 ebfcc0f - install numpy before ta-lib to fix build errors 4202413 - Merge pull request #1092 from freqtrade/revert-1090-ujson-loader 7f27bef - Revert "backtesting: try to load data with ujson if it exists" dd71071 - Added logger.info when Sandbox is enabled. c85c7a3 - Documentation fixes. 1e804c0 - flake 8 fc06d02 - Unit tests for sandbox pass / fail scenarios 618784d - Merge pull request #1090 from freqtrade/ujson-loader cfcc2e6 - Merge pull request #1088 from freqtrade/fix/unpatched_mock 187e039 - Merge pull request #1034 from freqtrade/feat/positive_sl_limit b3df1b1 - added documentation: 0a05966 - Submitting with unit test for the working scenario. cb2fff8 - mypy doesn't handle common idiomacy so disable the line (see the open issue more details) cdd8cc5 - backtesting: try to load data with ujson if it exists 8648ac9 - Update documentation with hot to sandbox test. Allowing end-to-end GDAX API use without risking real money. 083befa - Merge pull request #1087 from freqtrade/pyup-scheduled-update-2018-07-28 099e702 - Update ccxt from 1.17.29 to 1.17.39 6ab8fa8 - Merge pull request #1079 from creslinux/apiAuthPass b2b81c8 - Update documentation with hot to sandbox test. Allowing end-to-end GDAX API use without risking real money. 243b63e - fix rpc test going to network (unsuitable for flights...) a3d870a - Merge pull request #1075 from freqtrade/extract_get_history 1ceaa22 - Merge pull request #1080 from freqtrade/pyup-scheduled-update-2018-07-27 c8ac985 - Merge pull request #1081 from sandoche/patch-1 ca0d658 - Error fixed in the quickstart documentation 4547ae9 - Update ccxt from 1.17.20 to 1.17.29 40ae250 - Update constants.py c472531 - have to begin before we can stop 7efa810 - Removed ; at line end. d23b3cc - odd cut and paste error fixed. 48cd468 - Don't do all network calls at once without async df3e76a - Remove legacy code, fix missed call f2a9be3 - Adjust tests and remove legacy variable 3324cdf - add mock for get_history in patch_get_signal 484103b - extract get_history_data from get_signal 6e437a7 - Merge pull request #1074 from freqtrade/pyup-scheduled-update-2018-07-26 0c7cead - Update ccxt from 1.17.11 to 1.17.20 726b94b - Merge pull request #1069 from freqtrade/feat/movefiatconverttorpc 452a1ca - don't default fiat_convert to None for outputs 7b49f74 - remove #FIX which was fixed 78f8c65 - Merge pull request #1072 from freqtrade/datesorting-backtest-fix 4b38c8b - use pandas own min and max for column sorting 3fa1c5b - Merge pull request #1070 from freqtrade/pyup-scheduled-update-2018-07-25 4f4daf4 - Update ccxt from 1.16.89 to 1.17.11 dc1ad3c - whitespace issues ff64359 - Fix random test failure 23c2a75 - Merge pull request #1066 from freqtrade/pyup-scheduled-update-2018-07-24 7feea8c - Update numpy from 1.14.5 to 1.15.0 cf6e229 - Update ccxt from 1.16.88 to 1.16.89 4928686 - Remove currency from daily table 30b72ad - don't show fiat-currency if not set 1a9ead4 - fix missed fiat_display_currency config value 0b31905 - Merge pull request #1018 from freqtrade/feat/sell_reason 456e49f - default fiat_currency to none ab67822 - Merge pull request #1062 from freqtrade/fix/migratescript 7f877ae - Merge pull request #1063 from freqtrade/pyup-scheduled-update-2018-07-23 4575919 - Update ccxt from 1.16.86 to 1.16.88 10fc2c6 - Fix bug causing a database-migration to fail from aspecific state 643de58 - Add test to check for a mid-migrated database (not old but not new) aba3c69 - Merge pull request #1061 from freqtrade/fix_networkcall 0775a37 - rename sellreason to sell_Reason, fix typos 23fe0db - Add missing mock f54ac5a - revert bugfix done in it's own branch 4c84115 - Don't require fiat-currency bd2771b - use correct property 4d864df - Add tests for no_fiat functionality fae4c3a - only init if stake_currency is set 2b29786 - adjust checks to fit new functionality 6cc0a72 - ADd optional to class _fiat_convert f53e037 - Merge pull request #1060 from freqtrade/pyup-scheduled-update-2018-07-22 5ab1e66 - Update ccxt from 1.16.80 to 1.16.86 849ded7 - Merge pull request #1057 from freqtrade/fix/fiatconvert_error f297d22 - fix some tests in rpc_telegram 0681a80 - move cryptofiatconvert to rpc be3f047 - remove unnecessary mocks - add mocks which went to exchange 9467461 - only init FIATConvert when telegram is enabled 66af411 - Catch all exceptions from fiat-convert api calls 6f78988 - Merge pull request #1055 from freqtrade/pyup-scheduled-update-2018-07-21 ab3478a - Update ccxt from 1.16.75 to 1.16.80 00fa41d - Merge pull request #1051 from freqtrade/pyup-scheduled-update-2018-07-20 7f6c79e - Update ccxt from 1.16.68 to 1.16.75 b45128f - Merge pull request #1050 from freqtrade/xmatt_verbosity2 dd1290e - Add multiple verbosity levels 6270188 - Merge pull request #1049 from freqtrade/revert-1045-xmatt_verbosity 90915b6 - Revert "Add more verbosity levels" 1b2bfad - Fix wrong test 060469f - Add stuff after rebase 4fb9823 - fix rebase problem 760c79c - Use `.center()` to output trades header line a452864 - Use namedtuple for sell_return ad98c62 - update backtest anlaysis cheatsheet 506aa0e - Add print_sales table and test 426c25f - record ticker_interval and strategyname 4059871 - Add get_strategy_name 2a61629 - Export sell_reason from backtest 8c0b19f - Check sell-reason for sell-reason-specific tests 838b0e7 - Remove unused import cbffd36 - add sell_reason to backtesting 0147b16 - remove optional from selltype 49a7c7f - fix tests 1af24af - Merge pull request #1047 from freqtrade/pyup-scheduled-update-2018-07-19 0cc1b66 - Merge pull request #1037 from freqtrade/fix/backtest-comment 6070d81 - Merge pull request #1040 from freqtrade/xmatthias_backtest_duration f2bfc9c - Update ccxt from 1.16.57 to 1.16.68 f991109 - Add sell-reason to sell-tree 6bb7167 - Add sellType enum 365ba98 - add option to full_json example 6a3c8e3 - update docs for trailing stoploss offset c0a7725 - Add stoploss offset 71100a6 - update documentation with new options 8f25403 - Add short form for parameters, change default for hyperopt aa69177 - Properly check emptyness and adjust floatfmt 64f9334 - Merge pull request #1007 from freqtrade/remove-analyze aaa58a9 - Merge pull request #1045 from freqtrade/xmatt_verbosity 75c0a47 - Test setting verbosity in commandline 1ab7f5f - add tests for more debug levels 789b980 - Allow different loglevels 7134c15 - Merge pull request #1024 from freqtrade/feature/webhook 79b1030 - output duration in a more readable way ac6955f - Merge pull request #1041 from freqtrade/pyup-scheduled-update-2018-07-18 a374f95 - Update ccxt from 1.16.50 to 1.16.57 f9f6a3b - cast to int to keep exports constant 8e4d2ab - Fix typo 08237ab - Fix wrong backtest duration 5b3fa3c - Merge pull request #1039 from Lufedi/develop ee8e890 - Add docs to get_trade_stake_amount function 3df79b8 - fix hanging intend a290286 - update documentation c82276e - add --disable-max-market-positions b29eed3 - update documentation e176184 - Rename --realistic-simulation to --enable-position-stacking 85fd4dd - rename analyze.py to exchange_helpers.py 78205da - Merge pull request #1036 from freqtrade/pyup-scheduled-update-2018-07-17 e021d22 - Update ccxt from 1.16.36 to 1.16.50 4a26eb3 - fix plot_profit to use strategy instead of Analyze 50b15b8 - fix plot_dataframe to use strategy instead of Analyze e11ec28 - remove leftover commented-out code 06d024c - make pytest ignore this file 0842646 - fix the last failing unit test dbc3874 - __init__ must return None to please mypy 78af4bc - move and fix tests from Analyze to interface of strategy 2795db3 - Merge pull request #1033 from freqtrade/pyup-scheduled-update-2018-07-16 4f95772 - Update scikit-learn from 0.19.1 to 0.19.2 62f4d73 - Update ccxt from 1.16.33 to 1.16.36 a3466f4 - Merge pull request #1031 from freqtrade/feat/update_configdict 050afe2 - Merge pull request #979 from creslinux/Check_timeframes 5c87c42 - restore one analyze test aeb4102 - refactor Analyze class methods to base Strategy class f6b8c2b - move parse_ticker_dataframe outside Analyze class 85e6c95 - remove pass-through methods from Analyze a74147c - move strategy initialization outside Analyze 727f569 - Merge pull request #1032 from freqtrade/pyup-scheduled-update-2018-07-15 8f59759 - Update ccxt from 1.16.16 to 1.16.33 1582260 - consistent use of the config dict within the test b4ba641 - Update config dict with attributes loaded from strategy 682f4c1 - Merge pull request #1030 from freqtrade/pyup-scheduled-update-2018-07-14 e1de988 - Update sqlalchemy from 1.2.9 to 1.2.10 bc83c34 - Update ccxt from 1.16.12 to 1.16.16 278e715 - adjust webhook tests 1284627 - move url to private class level 120fc29 - use dict comprehension 6336d8a - remove copy leftover ee2f6cc - Add test for enable_webhook 144d308 - Allow enabling of webhook 3ca161f - Add webhook config f55df7b - improve README.md formatting (styling only) 71df41c - add documentation for rpc_webhook a464306 - allow more flexibility in webhook 25250f7 - don't hardcode post parameters fa85127 - add tests for webhook ae22af1 - fix typo 6e16c1d - add webhook test file 266092a - Merge pull request #1029 from freqtrade/mypy-fix fa8b349 - rpc: dont re-use variables with different types 04bed3e - Merge pull request #1027 from peterkorodi/patch-2 68ddd1b - Update plotting.md b6e1020 - Merge pull request #1026 from freqtrade/pyup-scheduled-update-2018-07-13 5b02b87 - Update ccxt from 1.16.6 to 1.16.12 c17e8d6 - Merge pull request #972 from freqtrade/feature/rewrite-rpc cb8cd21 - add tests for telegram.send_msg a559e22 - remove duplicate send_msg invocation 7eaeb8d - status: return arrow object instead humanized str 0920fb6 - use more granular msg dict for buy/sell notifications 4cb1aa1 - use dict as argument for rpc.send_msg 96a405f - implement name property in abstract class 112998c - refactor _rpc_balance f1a370b - return dict from _rpc_status and handle rendering in module impl 29670b9 - remove markdown formatting from exception string df8ba28 - convert start, stop and reload_conf to return a dict 5288e18 - Merge pull request #1022 from freqtrade/pyup-scheduled-update-2018-07-12 ddfc472 - Update ccxt from 1.15.42 to 1.16.6 bd46b4f - Merge pull request #1015 from freqtrade/xmatthias-patch-1 46708e7 - Merge pull request #1014 from freqtrade/pyup-scheduled-update-2018-07-11 06c9494 - add missing s to Backtest cum results 8f6252b - Update ccxt from 1.15.35 to 1.15.42 1f16ff2 - Merge pull request #1010 from jblestang/refactoring_create_trade_function aa23663 - Merge pull request #1001 from xmatthias/feat/backtest_cum_profit 8b72560 - Merge pull request #1006 from freqtrade/update_plotly 773fb59 - Reafcotring Create Trade 3540ba3 - Merge pull request #1009 from freqtrade/pyup-scheduled-update-2018-07-10 d546a4b - Update ccxt from 1.15.28 to 1.15.35 b4be3c2 - Merge pull request #1002 from xmatthias/test/use_open_backtest 85c6051 - Fix test crash 6be6448 - replace "transparent" with rgb to fix exception in plotly 3.0.0 f5bc65b - update plotly a7a8263 - Merge pull request #1004 from berlinguyinca/patch-2 b9916b6 - Merge pull request #1005 from freqtrade/pyup-scheduled-update-2018-07-09 b773e34 - Update ccxt from 1.15.27 to 1.15.28 4654792 - Fixing database issues 750d737 - Add tests for change to open_rate 0bd9674 - Merge pull request #1000 from pan-long/fix-doc 8b06000 - Use open-rates for backtesting efaa8f1 - Improve formattiong of table 3848764 - fix tests for backtest-result output table 1a24afe - add cumsum to backtest-results 8fb146b - Merge pull request #992 from freqtrade/backtest_optimize 05b078b - Merge pull request #999 from freqtrade/pyup-scheduled-update-2018-07-08 6926e46 - Merge pull request #984 from freqtrade/test_backtest_results 3476410 - Merge pull request #997 from freqtrade/fix/timedout_candle 17c9c18 - Update pandas from 0.23.2 to 0.23.3 cc107bb - Update ccxt from 1.15.25 to 1.15.27 8dd6e29 - don't flag data as outdated which isn't 3e03a20 - reduce calculation effort (slightly!) 570d27a - Add testcase where ticker_interval is not in the configuration 7c8c8e8 - Merge pull request #990 from freqtrade/update_dockerfile 2b488d1 - Update Dockerfile to 3.6.6 e98efe3 - Merge pull request #989 from freqtrade/pyup-scheduled-update-2018-07-07 3f6e9cd - Add tests for validate_timeframes af17cef - fix existing tests to work with validate_timeframes 742fefa - Update pandas from 0.23.1 to 0.23.2 08fe10e - Update ccxt from 1.15.21 to 1.15.25 9906da4 - move comment to correct place 54976fa - Add more tests to validate buy/sell rows e1d7c72 - Merge pull request #983 from freqtrade/pyup-scheduled-update-2018-07-06 af03c17 - Update ccxt from 1.15.13 to 1.15.21 1897a1c - fixed mypy issues, seriosuly... 58879ff - fixed braket e1f5745 - Update resolver.py 1c48902 - Merge branch 'develop' into BASE64 8bbee40 - integrated BASE64 encoded strategy loading c35d1b9 - Add test which checks the backtest result 4f642b7 - Merge pull request #981 from freqtrade/fstrings-in-use e808b3a - rpc: get rid of extra else and fix mypy warning df68b09 - rpc: fstrings adbffc6 - telegram: fstrings in use 21fc933 - convert_backtesting: fstrings in use a2063ed - persistence: fstrings in use 7dca3c6 - freqtradebot,main,hyperopt: fstrings in use 03c112a - config, optimize: fstrings in use c77686c - Merge pull request #980 from freqtrade/pyup-scheduled-update-2018-07-05 239f860 - Update pytest from 3.6.2 to 3.6.3 bfd1e90 - Update ccxt from 1.15.8 to 1.15.13 5ab644d - flake 8 fix 966668f - Handle if ticker_interval in config.json is not supported on exchange. d8d0579 - Merge pull request #930 from freqtrade/skopt 64c68d9 - Merge pull request #976 from freqtrade/sort-imports 700f02d - Merge pull request #977 from freqtrade/pyup-scheduled-update-2018-07-04 ac20bf3 - Update ccxt from 1.15.7 to 1.15.8 bf4d0a9 - sort imports 96bb2ef - use joblib.dump and load for trials c4a8435 - change pickle file name to better suit it's current purpose 9dbe0f5 - fix tests after changing the dumping and pickling dataframe in hyperopt 3a7056e - run at least one epoch 2cde540 - remove dead code ef59f9a - sort imports in hyperopt.py e91cfbf - Merge pull request #975 from freqtrade/pyup-scheduled-update-2018-07-03 2c0e950 - Update ccxt from 1.15.3 to 1.15.7 ee4754c - avoid re-serialization of whole dataframe 4a26b88 - improve documentation 2713fdb - use cpu count explicitly in job count 79aab4c - use fstring 2b34d10 - Merge pull request #973 from freqtrade/pyup-scheduled-update-2018-07-02 76343ec - Update ccxt from 1.14.301 to 1.15.3 fa8fc3e - handle the case where we have zero buys aec3f58 - Merge branch 'develop' into skopt a58d51d - update hyperopt documentation 5e4a6ba - Merge pull request #963 from freqtrade/feat/stop_loss 3c5be55 - remove unnecessary variable 782570e - Address PR comment ed2a1be - Merge branch 'develop' into feat/stop_loss 937644a - change while-loop to enumerate - add intensified test for this scenario e39d88e - Address some PR comments f91263c - Merge pull request #966 from freqtrade/feat/revamp_exchangetest e2127f5 - Merge pull request #969 from xmatthias/split_unfilled 2dc8815 - address PR comments c66f858 - rename innerfun to mock_ccxt_fun 8023fdf - Merge pull request #971 from freqtrade/fix/nonmocked_markets 2cee8e5 - Merge pull request #965 from freqtrade/fix/fix_959 8f49d5e - documentation updates 9e3e900 - Add get_markets mock to new tests 14e12bd - Fix missing comma in example.json c29163a - Merge pull request #970 from freqtrade/pyup-scheduled-update-2018-06-30 5a591e0 - Update sqlalchemy from 1.2.8 to 1.2.9 c447644 - Update ccxt from 1.14.295 to 1.14.301 98108a7 - separating unfulfilled timeouts for buy and sell 0ce0893 - mypy fixes 6dd5f85 - Merge pull request #954 from freqtrade/feat/allow_backtest_plot d8f2a68 - Merge pull request #967 from freqtrade/pyup-scheduled-update-2018-06-29 8a941f3 - Update ccxt from 1.14.289 to 1.14.295 cf6b1a6 - increase exchange code coverage dcdc18a - rename test-function 15c7854 - add test for exchange_has fe8a216 - add test for Not supported ebbfc72 - increase test coverage 8ec9a09 - Standardize retrier exception testing 2d4ce59 - catch crash with cobinhood c5a00b4 - Merge pull request #964 from freqtrade/pyup-scheduled-update-2018-06-28 7cecae5 - Update ccxt from 1.14.288 to 1.14.289 d5ad066 - support multiple db transitions by keeping the backup-table dynamic 860b270 - update db migrate script to work for more changes 35e07bf - Merge pull request #962 from freqtrade/pyup-scheduled-update-2018-06-27 19beb09 - Update ccxt from 1.14.272 to 1.14.288 8ecdae6 - add mypy ignore (and comment as to why) e6e868a - remove markdown code type as it is not valid json 78e6c9f - add tests for trailing stoploss c997aa9 - move initial logic to persistence a91d75b - Add test for adjust_stop-loss e9d5bce - cleanly check if stop_loss is initialized 88b898c - add test for moving stoploss 8bec505 - add test for trailing_stoploss a3708bc - add missing test 03005bc - update documentation da5be9f - add stop_loss based on work from @berlinguyinca 3e167e1 - update sample configs 5015bc9 - slight update to persistence 243c36b - get persistence.py for stop_loss 9ac3c55 - fix some stoploss documentation 257e184 - Update stoploss.md 54f52fb - Create stoploss.md e1d8a59 - Merge pull request #960 from freqtrade/pyup-scheduled-update-2018-06-26 7c2a50c - Update ccxt from 1.14.267 to 1.14.272 4c7d1c9 - Merge pull request #957 from freqtrade/pyup-scheduled-update-2018-06-25 4f1fa28 - Update ccxt from 1.14.257 to 1.14.267 2b6407e - remove unused tests from hyperopt 0bddc58 - extract loading previous results to a method 17ee7f8 - fix typo in requirements.txt 375ea94 - Merge pull request #956 from freqtrade/fix/download_backtest 43f1a1d - rework download_backtest script e70cb96 - document what to do with exported backtest results a8cb0b0 - Merge pull request #955 from freqtrade/pyup-scheduled-update-2018-06-24 118a43c - fixing tests for hyperopt 5e7e977 - Update ccxt from 1.14.256 to 1.14.257 660ec6f - fix parameter type

Scientific Software - Peer-reviewed - Python
Published by shusso almost 8 years ago

FreqAI - 0.17.0

  • CCXT in use
  • alot of new features

Scientific Software - Peer-reviewed - Python
Published by shusso almost 8 years ago

FreqAI - 0.16.1

Note this is the final release that uses our own implementation of bittrex. After this release we will be using ccxt library for the exchanges.

Scientific Software - Peer-reviewed - Python
Published by shusso about 8 years ago

FreqAI - 0.16.0

Release Summary

The community was again very active, thank you for your PR. We are proud to release another major version.

Majors improvements: * Custom strategies * Support multiple Ticker Interval: 1m, 5m, 30 min, 60 min and 1 day ticker * Hyperopt will calculate your minimal_roi * Replace matplotlib with Plotly * Bot Stability improved

Breaking Changes

This version introduces a major update on strategies. Indicators, Buy and Sell strategies have moved from analyze.py to custom strategies you can create into user_data/strategies/ folder.

We suggest you starting by reading the updated documentation about the strategies: Bot usage and backtesting

The bot still includes a default strategy, but you can now create and update your own strategy without worrying of merge conflicts at each release. It will also allow you to play with different strategies without updating the bot source code.

How to move your strategy into a custom strategy?

  1. Duplicate user_data/strategies/test_strategy.py to a new file user_data/strategies/custom_strategy.py
  2. Replace the content of populate_indicators(), populate_buy_trend(), populate_buy_trend(), and populate_sell_trend() by the customization you have made previously into freqtrade/analyse.py
  3. Define minimal_roi, stoploss, and ticker_interval (You can remove them from your configuration)
  4. Start the bot with the param --strategy <strategy_filename> or -s <strategy_filename>

bash python3 ./freqtrade/main.py --strategy custom_strategy If the strategy file is not found or contains code errors the bot will fallback to the default strategy included (located into freqtrade/strategy/default_strategy.py).

Note: Strategies already integrates minimal_roi, stoploss, and ticker_interval values. This value in the config file becomes optional and can be removed. However, if you keep minimal_roi, stoploss, and ticker_interval they will override the strategy values.

Strategies samples

Features and Bugfixes

  • Improve Telegram: #386, #409, #419, #424
  • Improvement: Bot stability and new features: #376, #379, #391, #392, #395, #398, #400, #411, #412, #415, #417, #423, #426, #428, #429, #432, #446, #456
  • Improve Backtesting and Hyperopt: #393, #394, #430, #436 , #449
  • Improve Plotting: #454
  • Update documentation: #381, #404, #437, #458, #463, #466
  • Upgrade Dependencies version: #377, #388, #399, #403, #431, #433, #445, #451

Known Issues (Link):

Greetings

Thanks to @jblestang, @kryofly, @vertti, @shusso, @gcarq, @rohit366, @mijgame for your contributions

Scientific Software - Peer-reviewed - Python
Published by glonlas about 8 years ago

FreqAI - 0.15.1

Release Summary

Minor update, fix the brokenplot_dataframe.py script.

Breaking Changes

Please see release 0.15.0.

Features and Bugfixes

  • Improvement: Bot stability and new features: #364
  • Upgrade Dependencies version: #362, #368

Known Issues (Link):

  • #118: Sell due to loss, bot buys the same currency
  • #147: ZeroDivisionError after /count
  • #238: Retry on "Got invalid response" during backtesting
  • #251: Error in /performanceTelegram command since develop version 28-12-17
  • #319: bot keeps thinking order is opened bug
  • #341: Buggy get_ticker bug
  • #345: Doker installation failed - numpy bug
  • #371: Exception can happen with /forcesell

Scientific Software - Peer-reviewed - Python
Published by glonlas over 8 years ago

FreqAI - 0.15.0

Release Summary

Thank you very much to all the community for your contributions. We received more than 200 commits, submitted by 13 contributors.

This new release is huge with a lot of improvements for the bot and tons of new features. Please take a look at our new documentation to know how to use the bot.

Breaking Changes

1. New config parameters required

config.json has been upgraded. New fields are mandatory. Compare your config to config.json.example and update your config file accordingly, otherwise the bot will not start.

2. Database upgrade

The fee calculation has been fixed and the fee data in your database are incorrect. If you have had a bot running before 12/23/17, please backup your DB, and run the following SQL command: sql UPDATE trades SET fee=0.0025 WHERE fee=0.005;

Trouble in updating your database? Read this page to understand how to update the DB.

Features and Bugfixes

  • New command-line parameters (Checkout the documentation for more details):
    • #173, #182, #248, #328
  • New documentation (Link):
    • #279, #296, #349, #347
  • New parameters available in the config.json (Checkout the documentation for more details):
    • #124, #125, 84b105c82b5a05351fbc60d9143449885ae1ea6c, 371e6d99c9d580944c9135a35b27810a55bfd02b, 9ff1f05e66c6ae52c5aaf59924121dde153f9c92, #143, #172, #267, #292, #265, #295, #342
  • Increase test coverage to 85% (Link):
    • #236, #241, #242, #247, #249, #256, #260, #263, #277, #339, #353, #354
  • Improvement: Bot stability and new features:
    • 55a69e4a4599f681cd8296c13021f95c917ce8b3, 788cda4925b7e1cdf18d09242f0e733f8f6a71ef, 383a9f6eeb54882fc2b72b4c3d530ca8b3a64d4e, #123, f3ba3ddd54f608b74bcd6e315aa21f719270503b, #122, #128, #133, be6939ee8a00f1148194a5163cb4f8bf1fec53c6, #192, #202, #237, #253, #249, #284, #306, #321, #327, #324, #331, #355, #358, #360
  • Improvement: Telegram features (Checkout the documentation for more details):
    • cfbfe90aa0f1218699479570e229fff29f8e56cc, #171, #186, #188, 4dab39ed9e4edc589581fd00508bf5a2a4b1abe7, #215, #239, #244, #259, #276, #271, #294, #293
  • Improvement: Backtesting / Hyperopt script:
    • 02ca2ed5856ef905d93a90d44cf8c358ea5310b4, #131, #136, 371ee1e457985f6416a5431f727ecca69a219088, 3b37f77a4dd61bdcd87fb59ed3e51fc1dc8c73e5, 7fa5846c6ba836be4094d96f02566131ed5a070f, b9c4eafd9620fd9d292388186ee1b68719d009e5, a23fce519d29a7eabf0acaf38b150641c3470cd1, e27a6a7a91772f73fc935c05ad77c477aa1ef1c6, 2fe11cd77ac45e3291405ab09dc6e289d2a493b5, #146, #154, f7def09decca261ba71d3a798aba3bb19741ec79, #169, #194, #191, #196, #218, #231, #232, #235, #287, #291, #297, #312, #315, #330, #338, #332, #344, #351
  • Improvement: Plotting script:
    • f3ba3ddd54f608b74bcd6e315aa21f719270503b, #197
  • Improvement: Bittrex API:
    • #155
  • Update the default Buy/Sell Strategy, and Indicators:
    • 5fce2c57129c0373fafb649f19a0bb2e70a20762, #135, #313, #323
  • Fix fee calculation:
    • 9a87dcf0a1753616fd53b7271343360ddf175918, #200
  • Upgrade Dependencies version

Known Issues (Link):

  • #118: Sell due to loss, bot buys the same currency
  • #147: ZeroDivisionError after /count
  • #238: Retry on "Got invalid response" during backtesting
  • #251: Error in /performanceTelegram command since develop version 28-12-17
  • #319: bot keeps thinking order is opened bug
  • #341: Buggy get_ticker bug
  • #345: Doker installation failed - numpy bug
  • #363: plot_dataframe.py broken bug
  • #371: Exception can happen with /forcesell

Scientific Software - Peer-reviewed - Python
Published by glonlas over 8 years ago

FreqAI - 0.14.3

Features and Bugfixes

  • Lots of bugfixes and stability improvements #120 #113 #112 #110 #108 #106
  • Create foundation for sell signals #104
  • Add backtesting subcommand #107
  • Reduce hyperopt memory footprint #111
  • Changed buy strategy #114

Known Issues

  • Sell due to loss, bot buys the same currency #118
  • Handling SIGINT is broken #109

Scientific Software - Peer-reviewed - Python
Published by gcarq over 8 years ago

FreqAI - 0.14.2

Features and Bugfixes

  • set bittrex API calls_per_second to 1
  • automatically remove pair from whitelist if bittrex wallet is down
  • hyperopt improvements
  • bug fixes and stability improvements

Scientific Software - Peer-reviewed - Python
Published by gcarq over 8 years ago

FreqAI - 0.14.1

  • Fixes sqlite threading issue
  • Adds /version command handler
  • Adds /forcesell all command handler

Scientific Software - Peer-reviewed - Python
Published by gcarq over 8 years ago

FreqAI - 0.14.0

Features and Bugfixes

  • Sell amount equal to amount purchased (#22)
  • Use Decimal for profit calculation for a more precise floating point arithmetic
  • Account exchange fees (#56)
  • Lots of stability fixes and improvements
  • dry_run: Use in-memory database
  • Telegram: /status table: shows a compresensive status overview (#86)
  • Improved backtesting (#95)
  • Upgrade python bittrex to 0.2.0

Breaking Changes!

The database format has changed.

  • Please sell the coins for your open trades manually or use /forcesell <id> to sell them before upgrading! The new database file is tradesv3.sqlite.
  • dry_run uses an in-memory database, which gets deleted on every stop.

Scientific Software - Peer-reviewed - Python
Published by gcarq over 8 years ago

FreqAI - 0.12.0

Features and Bugfixes

  • Upgrade dependencies (#67)
  • More efficient and flexible Docker builds (#71)
  • Small tweaks to strategy (#73)
  • Add script to download live data for backtesting (#70)
  • Add /help Telegram command (#77)
  • Use hyperopt to find optimal parameters for buy strategy (#76)
  • Lots of small improvements and fixes

Scientific Software - Peer-reviewed - Python
Published by gcarq over 8 years ago

FreqAI - 0.11.0

Features and Bugfixes

  • show warning when bittrex returns empty data (#30)
  • fix bug where telegram wasn't optional (#41)
  • improved trading strategy for buy trigger (#44)
  • refactor project structure to make it packageable (#47)
  • fix whitelist vanishing bug (#50)
  • mock missing 3rd party calls for unittests (#53)
  • refactor exchange interface to make it easier to integrate new exchanges (#58)
  • use latest telegram library
  • switch to pytest
  • lots of other improvements and fixes

Breaking Changes

With this release the config.json format has changed, if you used a previous version upgrade to the new format (see config.json.example). It is also recommended to start with a fresh database, because the dataformat has changed slightly. That means you have to sell all active open orders manually and rename/remove tradesv2.sqlite.

Scientific Software - Peer-reviewed - Python
Published by gcarq over 8 years ago

FreqAI - 0.10.0

  • new buy strategy (#20)
  • drop poloniex support
  • use five min ticker
  • configurable bidding price (#26)
  • backtesting trading strategy (#29)
  • lots of minor improvements and fixes

Scientific Software - Peer-reviewed - Python
Published by gcarq over 8 years ago