Compare commits

...

1699 Commits

Author SHA1 Message Date
Matthias 73363d925f Update download-artifact to pattern. 2024-03-31 17:37:57 +02:00
Matthias ad56462fa1 Merge pull request #10025 from freqtrade/new_release
New release
2024-03-31 13:36:51 +02:00
Matthias a6bfe1a4af Bump version to 2024.3 2024-03-31 09:54:34 +02:00
Matthias f960e343cc Merge branch 'stable' into new_release 2024-03-31 09:54:05 +02:00
Matthias 2072a625bd Align build job names 2024-03-31 09:33:55 +02:00
Matthias 8792d56251 Update dockerhub-description workflow to new approach 2024-03-31 09:29:00 +02:00
Matthias 556db08b0a Rename CI files 2024-03-31 09:28:13 +02:00
Matthias b651e13bd6 Schedule leverage tier updates 2024-03-31 09:27:03 +02:00
Matthias 13ae0f81ca Merge pull request #10024 from freqtrade/update/pre-commit-hooks
Update Binance Leverage Tiers
2024-03-31 09:26:17 +02:00
xmatthias a534340cc1 chore: update pre-commit hooks 2024-03-31 07:15:47 +00:00
Matthias 067a7315f2 Use proper secrets syntax 2024-03-31 09:15:05 +02:00
Matthias f405b7d1cd Add CI step for leverage tier updates 2024-03-31 09:04:39 +02:00
Matthias 178a0a5db0 Fix typo in update script 2024-03-31 08:32:25 +02:00
Matthias 055c4396d1 De-dent pre-commit update workflow 2024-03-31 08:32:18 +02:00
Matthias 9726c4ae21 don't use cum profit 2024-03-30 11:28:23 +01:00
Matthias 7895eeb3b6 Fix tests after modified output 2024-03-30 11:20:41 +01:00
Matthias 0a186eb8b7 Remove Cum Profit %
it's a missleading metric in any case where stake-amount is not 100% identical.
2024-03-30 11:18:56 +01:00
Matthias 79719bbe82 Add freqtrade-client programmatic use sample 2024-03-30 09:29:09 +01:00
Matthias f2335c5db9 Merge pull request #10015 from freqtrade/feat/clients
Add freqtrade-clients as individually installable dependency
2024-03-30 09:21:01 +01:00
Matthias e100a06785 Use regex to match logs in rest-client tests 2024-03-29 19:09:23 +01:00
Matthias d606d6d08a Use a path that works on windows, too. 2024-03-29 17:03:31 +01:00
Matthias 01f09ca5c8 Update command name and documentation 2024-03-29 16:38:13 +01:00
Matthias 8ad0375073 Update docstring 2024-03-29 16:16:34 +01:00
Matthias e8cea35f5e Have Pool parameters be kw only 2024-03-29 16:15:50 +01:00
Matthias 95fe0d5d82 Merge pull request #10016 from froggleston/feat/clients
Add support for requests pool size configuration
2024-03-29 16:09:56 +01:00
Matthias 411322357c Slightly enhance test cov 2024-03-29 15:58:33 +01:00
Matthias d047ac67a8 Remove unused import 2024-03-29 15:13:45 +01:00
Matthias e072522ed1 Improve tests 2024-03-29 13:18:11 +01:00
Matthias e971f043f4 Improve test cov 2024-03-29 13:12:01 +01:00
froggleston 66422ce9a9 Add support for requests pool size configuration 2024-03-29 11:52:00 +00:00
Matthias 0a0105c31e Re-add --cov args 2024-03-29 12:46:05 +01:00
Matthias a6ad36d08b Coverage for ft_client ... 2024-03-29 12:33:28 +01:00
Matthias 7eb91c74a8 CI - always install ft_client 2024-03-29 12:32:00 +01:00
Matthias 79b8363b7b Depend on freqtrade-client on install 2024-03-29 12:31:25 +01:00
Matthias ca9d792d2a License to link 2024-03-29 11:08:40 +01:00
Matthias fba028abd1 Fix version number 2024-03-29 10:41:48 +01:00
Matthias 3f226c5022 Also install ft-client in linux CI 2024-03-29 10:35:55 +01:00
Matthias afe3d3ebda Move Version check to the top 2024-03-29 10:26:44 +01:00
Matthias 01bb7706e4 Fix messed up version-align script 2024-03-29 10:26:18 +01:00
Matthias 772dbeaf7e Fix file permissions 2024-03-29 10:15:35 +01:00
Matthias 0c026f950b Ensure versions are aligned between freqtrade and freqtrade_client 2024-03-29 10:03:15 +01:00
Matthias f0e0957579 Don't set same parameters twice 2024-03-29 09:57:12 +01:00
Matthias 7e3e65ecd8 Add tests for rest client 2024-03-29 09:52:25 +01:00
Matthias bef15b5238 Add license for client file, exclude tests directory 2024-03-29 09:17:37 +01:00
Matthias 127f61ccb9 Improve odering of things in ft-client 2024-03-29 09:08:21 +01:00
Matthias bd49ad6420 Add CI step for ft_rest_client 2024-03-29 09:07:43 +01:00
Matthias 46622f6172 Add minimal readme 2024-03-29 09:00:22 +01:00
Matthias 5888da5bc5 Re-add rest_client script 2024-03-29 08:39:28 +01:00
Matthias bfe739da3c Add pyproject.toml for ft_client installs 2024-03-29 08:34:00 +01:00
Matthias 1036a890b8 Split rest client script 2024-03-29 08:33:41 +01:00
Matthias 3401e3506b Move rest_client to it's own sub-structure 2024-03-29 08:09:03 +01:00
Matthias e75d46321e Exclude user_data 2024-03-29 07:47:27 +01:00
Matthias 26311663e3 Add classifier for python 3.12 2024-03-29 07:37:21 +01:00
Matthias bda17b59e7 Merge pull request #10013 from stevanStevic/feat/add-max-value-to-volume-pair-list
10009: Add `max_value` to volume pair list
2024-03-29 07:06:27 +01:00
stevanStevic 1ec04a8dc8 Add support for max_value in volume pair list 2024-03-28 22:20:34 +01:00
Matthias 78442e36e7 Fix small grammar error 2024-03-28 19:36:43 +01:00
Matthias 82565a9667 Merge pull request #9955 from Axel-CH/feature/trade-lifecycle-callbacks
Feature: trade lifecycle callbacks
2024-03-28 19:35:53 +01:00
Matthias 38e7b0e8ae Update bot basics logs to align with reality 2024-03-28 06:55:45 +01:00
Matthias e49ab2593c Update / improve docs 2024-03-28 06:49:02 +01:00
Matthias c433f49089 Remove temporary gate workaround 2024-03-27 19:59:30 +01:00
Matthias 553094c3c6 Assign 'status_stop' for gate stop orders 2024-03-27 19:50:52 +01:00
Matthias 06c4431c31 Merge pull request #10006 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2024-03-26 05:56:21 +01:00
xmatthias 5b4d286637 chore: update pre-commit hooks 2024-03-26 03:03:29 +00:00
Matthias bcc766a8ff Merge pull request #10004 from freqtrade/docs/identifier
Update freqai-configuration.md
2024-03-25 21:01:48 +01:00
Matthias 666f2fc10a Fix bug where amount becomes 0
closes #10003
2024-03-25 20:59:39 +01:00
Matthias 50cd36acbd Remove unused test method 2024-03-25 20:59:39 +01:00
Robert Caulk dfd46a19b5 Update freqai-configuration.md 2024-03-25 19:56:43 +01:00
Matthias 41d508867e Merge pull request #10001 from freqtrade/fix/epoch-definition
Update PyTorchModelTrainer.py
2024-03-25 19:50:02 +01:00
Axel-CH f60d6c8f65 remove duplicate call of order_filled callback 2024-03-25 13:12:13 -04:00
Robert Caulk 18e34632d8 Update PyTorchModelTrainer.py
The n_epochs should be defined using the `max` not the `min` function.
2024-03-25 09:21:32 +01:00
Matthias 526d7fad62 Merge pull request #10000 from freqtrade/dependabot/pip/develop/sqlalchemy-2.0.29
Bump sqlalchemy from 2.0.28 to 2.0.29
2024-03-25 08:15:07 +01:00
Matthias e90a68cc1a Merge pull request #9993 from freqtrade/dependabot/pip/develop/pytest-89b78a57f6
Bump the pytest group with 2 updates
2024-03-25 07:28:06 +01:00
Matthias b81735e718 Merge pull request #9999 from freqtrade/dependabot/pip/develop/ccxt-4.2.82
Bump ccxt from 4.2.78 to 4.2.82
2024-03-25 07:15:16 +01:00
Matthias f1f272b88f Bump pre-commit sqlalchemy 2024-03-25 06:43:54 +01:00
Matthias 90ae723a74 Merge pull request #9998 from freqtrade/dependabot/pip/develop/mkdocs-material-9.5.15
Bump mkdocs-material from 9.5.14 to 9.5.15
2024-03-25 06:37:00 +01:00
dependabot[bot] 392598086c Bump the pytest group with 2 updates
Bumps the pytest group with 2 updates: [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [pytest-mock](https://github.com/pytest-dev/pytest-mock).


Updates `pytest-cov` from 4.1.0 to 5.0.0
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v4.1.0...v5.0.0)

Updates `pytest-mock` from 3.12.0 to 3.14.0
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.12.0...v3.14.0)

---
updated-dependencies:
- dependency-name: pytest-cov
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: pytest
- dependency-name: pytest-mock
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 05:31:16 +00:00
Matthias 691b7d2628 Merge pull request #9994 from freqtrade/dependabot/pip/develop/ruff-0.3.4
Bump ruff from 0.3.3 to 0.3.4
2024-03-25 06:29:52 +01:00
Matthias cdb2a3aa90 Merge pull request #9995 from freqtrade/dependabot/pip/develop/nbconvert-7.16.3
Bump nbconvert from 7.16.2 to 7.16.3
2024-03-25 06:29:29 +01:00
Matthias 0f24b8d132 Merge pull request #9996 from freqtrade/dependabot/pip/develop/pre-commit-3.7.0
Bump pre-commit from 3.6.2 to 3.7.0
2024-03-25 06:29:13 +01:00
Matthias e8a18c0524 Merge pull request #9997 from freqtrade/dependabot/pip/develop/time-machine-2.14.1
Bump time-machine from 2.14.0 to 2.14.1
2024-03-25 06:28:47 +01:00
dependabot[bot] 16083b2f63 Bump sqlalchemy from 2.0.28 to 2.0.29
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 2.0.28 to 2.0.29.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 03:15:36 +00:00
dependabot[bot] bbeba6ab3a Bump ccxt from 4.2.78 to 4.2.82
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.2.78 to 4.2.82.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.2.78...4.2.82)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 03:14:57 +00:00
dependabot[bot] 710a953c43 Bump mkdocs-material from 9.5.14 to 9.5.15
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.14 to 9.5.15.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.14...9.5.15)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 03:14:41 +00:00
dependabot[bot] 9d5cb103dd Bump time-machine from 2.14.0 to 2.14.1
Bumps [time-machine](https://github.com/adamchainz/time-machine) from 2.14.0 to 2.14.1.
- [Changelog](https://github.com/adamchainz/time-machine/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/adamchainz/time-machine/compare/2.14.0...2.14.1)

---
updated-dependencies:
- dependency-name: time-machine
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 03:14:28 +00:00
dependabot[bot] 674ec6acb2 Bump pre-commit from 3.6.2 to 3.7.0
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 3.6.2 to 3.7.0.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v3.6.2...v3.7.0)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 03:14:12 +00:00
dependabot[bot] 6e6a93f0ce Bump nbconvert from 7.16.2 to 7.16.3
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 7.16.2 to 7.16.3.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Changelog](https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jupyter/nbconvert/compare/v7.16.2...v7.16.3)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 03:14:00 +00:00
dependabot[bot] 74641c5659 Bump ruff from 0.3.3 to 0.3.4
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.3.3 to 0.3.4.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.3.3...v0.3.4)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-25 03:13:52 +00:00
Matthias ea634e5cef Add test for backtesting 2024-03-24 11:54:25 +01:00
Matthias f6a8cb4698 update docs (fix typos) 2024-03-24 11:44:55 +01:00
Matthias 2854186b14 Adjust test to work against usdt values 2024-03-24 11:28:54 +01:00
Matthias 093fd48cf9 Update test to use default_conf_usdt 2024-03-24 11:28:24 +01:00
Matthias 7f5c38fd5a Update environment variable config to clarify that config cannot be set via environment variable
closes #9991
2024-03-23 08:08:55 +01:00
Matthias 82a9bdca5e Merge pull request #9986 from freqtrade/feat/show_config
add show-config command
2024-03-22 06:39:04 +01:00
Axel-CH b2a6722687 remove order filled cb from handle_stoploss_on_exchange 2024-03-21 21:51:52 -04:00
Axel-CH e07f3d266e add test for order_filled callback sl on exchange filled case 2024-03-21 20:53:11 -04:00
Axel-CH 6d3e3b5bfa add test for order_filled for freqtradebot update_trade_state 2024-03-21 20:19:53 -04:00
Axel-CH 72225daa6a add order_filled callback call for stoploss orders 2024-03-21 19:36:58 -04:00
Matthias 720232a047 Merge pull request #9983 from freqtrade/dependabot/pip/develop/pyarrow-15.0.2
Bump pyarrow from 15.0.1 to 15.0.2
2024-03-21 11:26:38 +01:00
Matthias 6e88cbfcab Update prebuilt pyarrow wheels 2024-03-21 09:25:22 +01:00
Matthias 7d6d3d38f7 Merge pull request #9975 from freqtrade/feat/configError
exception ConfigurationError
2024-03-21 08:38:45 +01:00
Matthias 163d03ac62 Update CI schedule to run towards the middle of the night. 2024-03-21 07:25:08 +01:00
Matthias b4c9541fb8 Add hints about show-config to configuration docs 2024-03-21 07:24:17 +01:00
Matthias d0bda7c2ce Add documentation for show-config utility command 2024-03-21 07:19:02 +01:00
Matthias d2a6781379 Revert one error to OperationalException 2024-03-21 07:02:23 +01:00
Matthias cc7d341afc Add overrides for Exchange Support 2024-03-21 06:31:34 +01:00
Matthias 3ea1cccda9 Merge pull request #9981 from freqtrade/dependabot/pip/develop/pytest-50b44610e0
Bump the pytest group with 1 update
2024-03-21 06:31:27 +01:00
Matthias 94c0f41564 Merge pull request #9982 from freqtrade/dependabot/pip/develop/uvicorn-0.29.0
Bump uvicorn from 0.28.0 to 0.29.0
2024-03-21 06:02:32 +01:00
Matthias b4ad6122cf Merge pull request #9984 from freqtrade/dependabot/pip/develop/ccxt-4.2.78
Bump ccxt from 4.2.67 to 4.2.78
2024-03-21 06:02:15 +01:00
dependabot[bot] 0d9775918f Bump ccxt from 4.2.67 to 4.2.78
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.2.67 to 4.2.78.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.2.67...4.2.78)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-20 19:49:46 +00:00
dependabot[bot] 150b7f85de Bump pyarrow from 15.0.1 to 15.0.2
Bumps [pyarrow](https://github.com/apache/arrow) from 15.0.1 to 15.0.2.
- [Commits](https://github.com/apache/arrow/compare/go/v15.0.1...go/v15.0.2)

---
updated-dependencies:
- dependency-name: pyarrow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-20 19:49:28 +00:00
dependabot[bot] 40898f522a Bump uvicorn from 0.28.0 to 0.29.0
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.28.0 to 0.29.0.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.28.0...0.29.0)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-20 19:49:20 +00:00
dependabot[bot] d6ff8ebbc0 Bump the pytest group with 1 update
Bumps the pytest group with 1 update: [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio).


Updates `pytest-asyncio` from 0.23.5.post1 to 0.23.6
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.23.5.post1...v0.23.6)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-20 19:49:12 +00:00
Matthias 65105f7768 Don't modify original config 2024-03-20 07:22:12 +01:00
Matthias 82ff4d5879 Add explicit test for config sanitization 2024-03-20 07:15:02 +01:00
Matthias b1fe5b6d8a Add "sensitive information" warning output 2024-03-20 07:12:17 +01:00
Matthias 6dc4fa9dbf Add test for show-sensitive 2024-03-20 07:07:00 +01:00
Matthias 81d1a662a2 Add --show-sensitive CLI option 2024-03-20 07:06:24 +01:00
Matthias 6b7935f1ae Add initial test ... 2024-03-19 20:23:51 +01:00
Matthias 38ae3ac03c Add "sanitize config" section 2024-03-19 19:30:35 +01:00
Matthias 3059d66ece use original config for printing 2024-03-19 19:19:26 +01:00
Matthias 7543b2681d Add show_config command 2024-03-19 19:10:30 +01:00
Matthias 8e5097d9a9 Update setup-tools-config for non-dry mode 2024-03-19 19:10:30 +01:00
Matthias 21dcb4a6a1 update setup_utils_configuration to not force-set dry-run mode 2024-03-19 19:10:30 +01:00
Matthias 35253f9c8d Add overrides for Exchange Support 2024-03-19 18:19:22 +01:00
Matthias 6219a25901 Add documentation link, re-align imports 2024-03-19 07:20:38 +01:00
Matthias 669076a29f Add test to ensure configuration error is displayed as expected 2024-03-19 07:15:14 +01:00
Matthias abd096dcd8 Update exchange tests to config error in a few places 2024-03-19 07:13:28 +01:00
Matthias 4a097bd644 More usages for ConfigurationError 2024-03-19 07:13:17 +01:00
Matthias 64019e0e6c More configError usages 2024-03-19 07:08:05 +01:00
Matthias 3621ba034b Use configError in more places 2024-03-19 07:06:43 +01:00
Matthias 17d052df3f Configerror handling for bt api endpoint 2024-03-19 07:04:28 +01:00
Matthias ebd516cadb Use combined exception handler at startup 2024-03-19 07:02:48 +01:00
Matthias b5548dbee0 Add proper handler for config-error 2024-03-19 06:58:29 +01:00
Matthias 3a64749678 Raise ConfigurationError on config validation 2024-03-19 06:41:23 +01:00
Matthias ca94bbe994 Add configuration error to Exception hierarchy 2024-03-19 06:39:34 +01:00
Matthias 85c150b68e Merge pull request #9973 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2024-03-19 06:24:59 +01:00
xmatthias 02570e285d chore: update pre-commit hooks 2024-03-19 03:03:31 +00:00
Axel-CH 996fcb6f56 fix current_time parameter of order_filled usage in backtest 2024-03-18 22:07:43 -04:00
Axel-CH 6941953a8b update doc details about order_filled callback details 2024-03-18 21:38:58 -04:00
Axel-CH 08c1866cdc fix mypy artype error 2024-03-18 20:57:47 -04:00
Axel-CH d1e1b8410b add order parameter to order_filled callback 2024-03-18 20:47:27 -04:00
Axel-CH cd986ced45 moove order_filled callback position from update_trade_state to _update_trade_after_fill 2024-03-18 17:56:46 -04:00
Axel-CH 18a3489a6f add order_filled callback to bot and backtest 2024-03-18 15:46:47 -04:00
Matthias a0a4230339 Merge pull request #9962 from freqtrade/dependabot/pip/develop/types-a1a02855fc
Bump the types group with 1 update
2024-03-18 11:56:13 +01:00
Matthias 592e86a6e3 Merge pull request #9966 from freqtrade/dependabot/pip/develop/plotly-5.20.0
Bump plotly from 5.19.0 to 5.20.0
2024-03-18 11:55:54 +01:00
Matthias 1dda952172 Merge pull request #9963 from freqtrade/dependabot/pip/develop/markdown-3.6
Bump markdown from 3.5.2 to 3.6
2024-03-18 11:55:32 +01:00
Matthias 6df04d7e3e Merge pull request #9967 from freqtrade/dependabot/pip/develop/ruff-0.3.3
Bump ruff from 0.3.2 to 0.3.3
2024-03-18 07:06:32 +01:00
Matthias e54ee0b4b3 Merge pull request #9968 from freqtrade/dependabot/pip/develop/pydantic-2.6.4
Bump pydantic from 2.6.3 to 2.6.4
2024-03-18 07:06:02 +01:00
Matthias dafc968602 Merge pull request #9941 from stash86/bt-metrics
Simplify the return value for full exit using adjust trade
2024-03-18 06:34:12 +01:00
Matthias d4ddcbc784 Bump types-dateutil in pre-commit config 2024-03-18 06:25:14 +01:00
dependabot[bot] 8395192e95 Bump markdown from 3.5.2 to 3.6
Bumps [markdown](https://github.com/Python-Markdown/markdown) from 3.5.2 to 3.6.
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Changelog](https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.5.2...3.6)

---
updated-dependencies:
- dependency-name: markdown
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 05:22:44 +00:00
Matthias 76ff0689f0 Merge pull request #9965 from freqtrade/dependabot/pip/develop/mkdocs-material-9.5.14
Bump mkdocs-material from 9.5.13 to 9.5.14
2024-03-18 06:22:02 +01:00
dependabot[bot] 28575a9ef3 Bump pydantic from 2.6.3 to 2.6.4
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.6.3 to 2.6.4.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.6.3...v2.6.4)

---
updated-dependencies:
- dependency-name: pydantic
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 03:29:20 +00:00
dependabot[bot] 80be86533e Bump ruff from 0.3.2 to 0.3.3
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.3.2 to 0.3.3.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.3.2...v0.3.3)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 03:29:15 +00:00
dependabot[bot] 2725ee5772 Bump plotly from 5.19.0 to 5.20.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 5.19.0 to 5.20.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v5.19.0...v5.20.0)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 03:29:04 +00:00
dependabot[bot] 405e0f02d4 Bump mkdocs-material from 9.5.13 to 9.5.14
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.13 to 9.5.14.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.13...9.5.14)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 03:28:58 +00:00
dependabot[bot] 9bb9f7453c Bump the types group with 1 update
Bumps the types group with 1 update: [types-python-dateutil](https://github.com/python/typeshed).


Updates `types-python-dateutil` from 2.8.19.20240311 to 2.9.0.20240316
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: types
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-18 03:27:55 +00:00
Matthias 409729f9d2 Temporarily support 'finish' in the order, too 2024-03-17 17:00:18 +01:00
Matthias 838d9cd4d0 Improve stop fills order handling on gate
closes #9940
2024-03-17 15:17:04 +01:00
Matthias 3ed53218a0 Fix rate display rounding problem on telegram messages 2024-03-17 13:55:25 +01:00
Matthias c06f892109 don't use :.8g formatting - it's unreliable 2024-03-17 13:55:25 +01:00
Matthias ca2d322eb8 chore: Split strip_trailing_zeros function in formatters 2024-03-17 13:55:25 +01:00
Matthias d07ec50549 Remove unused line 2024-03-17 13:55:25 +01:00
Matthias 600519c36a Merge pull request #9961 from hippocritical/develop
tiny bugfix for lookahead-analysis
2024-03-17 13:55:22 +01:00
hippocritical 01c0fd0420 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

Changed pairs-check to if no definition is in the config (but it s maybe in the strategy) it will just force-set it to the proper amount of len(config['pairs']
2024-03-17 09:53:45 +01:00
Matthias 9a72003c74 Merge pull request #9878 from TheJoeSchr/chore/extract-timeframe-to-xyz-from-exchange-utils
chore: extract `timeframe_to_*` functions into `exchange_utils_timeframe.py`
2024-03-15 20:01:43 +01:00
Matthias 45bb9ee9a0 Reduce stacktrace length for "no config" errors 2024-03-15 18:20:01 +01:00
Matthias 60a62d933c Fix some failing mocks 2024-03-15 07:12:07 +01:00
Matthias 4281642f54 Fix flake failure due to flake update 2024-03-15 06:51:11 +01:00
Matthias 5e0aa9108c Update tests correspondlingy 2024-03-15 06:49:49 +01:00
Matthias dbcb07275a Refactor datahandlers into their own package 2024-03-15 06:49:42 +01:00
Matthias 4aff24f6df Fix imports that import directly from file
instead from the exporting package
2024-03-15 06:40:42 +01:00
Matthias 3037cef4d2 Update freqtrade image to python 3.12 2024-03-14 19:48:23 +01:00
Matthias fcc6d0fea8 Don't run notify-complete for non-freqtrade repos 2024-03-14 18:24:36 +01:00
Matthias c284da404e Fully test freqAI against python 3.12 2024-03-14 18:24:36 +01:00
Matthias 93a5f2906a Merge pull request #9945 from GeorgiKarapetrov/trivial/doc-nit
Nitpicking documentation:
2024-03-14 13:59:06 +01:00
Matthias 91e1b068e8 Merge pull request #9923 from freqtrade/bump/torch
Bump torch
2024-03-14 06:42:55 +01:00
Georgi D. Karapetrov ec23fec3e6 fix typo 2024-03-13 10:45:00 +02:00
Georgi D. Karapetrov e958552bcc Explain precision filter better 2024-03-13 10:43:24 +02:00
Matthias 85c145c777 Don't close the test trade ... 2024-03-13 07:07:42 +01:00
Matthias 28bdbbffca Patch torch logging on 3.12 2024-03-12 19:59:46 +01:00
Matthias e560f9963c Don't run Torch models on macos. 2024-03-12 19:57:56 +01:00
Matthias 4e02d31cdc Mock torch on mac ARM 2024-03-12 19:57:56 +01:00
Matthias 0cf46d8605 Revert "Remove conditional checks for python 3.12"
This reverts commit e5fb2eb2d1874d7652a280ff098e4f63d7b8f528.
2024-03-12 19:57:55 +01:00
Matthias 08cff9890f Remove conditional checks for python 3.12 2024-03-12 19:57:55 +01:00
Matthias 2b5b518ccf Bump rl requirements for 3.12 2024-03-12 19:57:55 +01:00
Georgi D. Karapetrov ce6dd466fa fix typo 2024-03-12 18:10:21 +02:00
Matthias f578453656 Merge pull request #9934 from freqtrade/dependabot/pip/develop/pyarrow-15.0.1
Bump pyarrow from 15.0.0 to 15.0.1
2024-03-12 13:34:53 +01:00
Matthias 72015686b6 Update pyarrow wheels to 15.0.1 2024-03-12 11:06:22 +01:00
Georgi D. Karapetrov a4541fda2f Nitpicking documentation:
- Clarify order_types.stoploss_on_exchange
- Detail available_capital ammendments
- Clarify BNB fee reduction when BNB runs out on Binance
- Explain PrecisionFilter
2024-03-12 11:50:00 +02:00
Stefano Ariestasia 14c27f2cbe fix test 2024-03-12 16:55:33 +09:00
Stefano Ariestasia c5201a6476 fix precommit 2024-03-12 16:31:53 +09:00
Stefano Ariestasia 8000f94295 changing the partial exit logic to be simpler and easier to understand 2024-03-12 16:28:40 +09:00
Matthias a68fbb7f0c Merge pull request #9943 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2024-03-12 06:40:28 +01:00
xmatthias 3c34126e96 chore: update pre-commit hooks 2024-03-12 03:03:24 +00:00
Matthias c3e7569820 Merge pull request #9929 from freqtrade/dependabot/pip/develop/ruff-0.3.2
Bump ruff from 0.3.0 to 0.3.2
2024-03-11 19:16:52 +01:00
Matthias 7888f9265f Merge pull request #9942 from freqtrade/dependabot/pip/develop/ccxt-4.2.67
Bump ccxt from 4.2.66 to 4.2.67
2024-03-11 19:10:09 +01:00
dependabot[bot] e336d870a6 Bump ccxt from 4.2.66 to 4.2.67
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.2.66 to 4.2.67.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.2.66...4.2.67)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 17:12:59 +00:00
Matthias 225ef6b8ca Update to latest ruff format 2024-03-11 17:50:47 +01:00
Matthias 76459f08aa Update contributing with new ruff syntax 2024-03-11 17:49:40 +01:00
Matthias 7dae93f6b5 Merge pull request #9932 from freqtrade/dependabot/pip/develop/sqlalchemy-2.0.28
Bump sqlalchemy from 2.0.27 to 2.0.28
2024-03-11 16:20:09 +01:00
Stefano Ariestasia 048cad04a8 remove unrelated old changes 2024-03-11 22:07:58 +09:00
Stefano Ariestasia bae4973da5 simplify full exit using adjust trade pos 2024-03-11 22:01:09 +09:00
Stefano Ariestasia 1d0c0d6ab7 Merge branch 'freqtrade:develop' into bt-metrics 2024-03-11 21:56:54 +09:00
Matthias 65a09b0d89 Merge pull request #9928 from freqtrade/dependabot/pip/develop/uvicorn-0.28.0
Bump uvicorn from 0.27.1 to 0.28.0
2024-03-11 13:24:12 +01:00
Matthias 6c81807b76 Bump sqlalchemy in pre-commit 2024-03-11 13:23:48 +01:00
dependabot[bot] b6fb1dc9e0 Bump sqlalchemy from 2.0.27 to 2.0.28
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 2.0.27 to 2.0.28.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 11:22:15 +00:00
dependabot[bot] 2a8c6a6d0e Bump uvicorn from 0.27.1 to 0.28.0
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.27.1 to 0.28.0.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.27.1...0.28.0)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 11:21:40 +00:00
Matthias ca4fb98775 Merge pull request #9931 from freqtrade/dependabot/pip/develop/ccxt-4.2.66
Bump ccxt from 4.2.58 to 4.2.66
2024-03-11 12:21:05 +01:00
dependabot[bot] 8d22fbf39c Bump ruff from 0.3.0 to 0.3.2
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.3.0 to 0.3.2.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.3.0...v0.3.2)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 10:12:12 +00:00
Matthias 1cc0207b9b Merge pull request #9930 from freqtrade/dependabot/pip/develop/mkdocs-material-9.5.13
Bump mkdocs-material from 9.5.12 to 9.5.13
2024-03-11 11:10:54 +01:00
Matthias 4f96d6c7f7 Merge pull request #9927 from freqtrade/dependabot/pip/develop/pytest-46239fcbf0
Bump the pytest group with 2 updates
2024-03-11 11:10:38 +01:00
Matthias 9c84d3549c Merge pull request #9926 from freqtrade/dependabot/pip/develop/types-6e9832e4ce
Bump the types group with 2 updates
2024-03-11 10:03:53 +01:00
Matthias f3e8dd896d Merge pull request #9939 from freqtrade/dependabot/github_actions/develop/pypa/gh-action-pypi-publish-1.8.14
Bump pypa/gh-action-pypi-publish from 1.8.12 to 1.8.14
2024-03-11 09:30:25 +01:00
Matthias 6a5869fa43 Merge pull request #9938 from freqtrade/dependabot/pip/develop/packaging-24.0
Bump packaging from 23.2 to 24.0
2024-03-11 09:07:41 +01:00
dependabot[bot] 018d10b346 Bump ccxt from 4.2.58 to 4.2.66
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.2.58 to 4.2.66.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.2.58...4.2.66)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 07:33:37 +00:00
Matthias 5b188b5e1d Merge pull request #9937 from freqtrade/dependabot/pip/develop/python-telegram-bot-21.0.1
Bump python-telegram-bot from 20.8 to 21.0.1
2024-03-11 08:32:18 +01:00
dependabot[bot] 33556f3c2c Bump mkdocs-material from 9.5.12 to 9.5.13
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.12 to 9.5.13.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.12...9.5.13)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 07:11:44 +00:00
Matthias e37d29b607 Merge pull request #9935 from freqtrade/dependabot/pip/develop/pymdown-extensions-10.7.1
Bump pymdown-extensions from 10.7 to 10.7.1
2024-03-11 08:10:27 +01:00
Matthias 7171dadc52 Merge pull request #9936 from freqtrade/dependabot/pip/develop/nbconvert-7.16.2
Bump nbconvert from 7.16.1 to 7.16.2
2024-03-11 08:10:10 +01:00
dependabot[bot] 1c91675c58 Bump the pytest group with 2 updates
Bumps the pytest group with 2 updates: [pytest](https://github.com/pytest-dev/pytest) and [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio).


Updates `pytest` from 8.1.0 to 8.1.1
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.1.0...8.1.1)

Updates `pytest-asyncio` from 0.23.5 to 0.23.5.post1
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.23.5...v0.23.5.post1)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: pytest
- dependency-name: pytest-asyncio
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 06:14:04 +00:00
Matthias 31b400406e Merge pull request #9933 from freqtrade/dependabot/pip/develop/mypy-1.9.0
Bump mypy from 1.8.0 to 1.9.0
2024-03-11 07:12:52 +01:00
Matthias c78480c494 Bump types in pre-commit file 2024-03-11 06:28:11 +01:00
dependabot[bot] 23d226d372 Bump pypa/gh-action-pypi-publish from 1.8.12 to 1.8.14
Bumps [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) from 1.8.12 to 1.8.14.
- [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases)
- [Commits](https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.12...v1.8.14)

---
updated-dependencies:
- dependency-name: pypa/gh-action-pypi-publish
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 03:46:55 +00:00
dependabot[bot] 9b44d1d8cb Bump packaging from 23.2 to 24.0
Bumps [packaging](https://github.com/pypa/packaging) from 23.2 to 24.0.
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/packaging/compare/23.2...24.0)

---
updated-dependencies:
- dependency-name: packaging
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 03:40:29 +00:00
dependabot[bot] ab6a5d75bc Bump python-telegram-bot from 20.8 to 21.0.1
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 20.8 to 21.0.1.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v20.8...v21.0.1)

---
updated-dependencies:
- dependency-name: python-telegram-bot
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 03:40:15 +00:00
dependabot[bot] e1fdb8dec9 Bump nbconvert from 7.16.1 to 7.16.2
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 7.16.1 to 7.16.2.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Changelog](https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jupyter/nbconvert/compare/v7.16.1...v7.16.2)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 03:40:06 +00:00
dependabot[bot] 6d2f454d8c Bump pymdown-extensions from 10.7 to 10.7.1
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.7 to 10.7.1.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.7...10.7.1)

---
updated-dependencies:
- dependency-name: pymdown-extensions
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 03:40:01 +00:00
dependabot[bot] 02dc895c41 Bump pyarrow from 15.0.0 to 15.0.1
Bumps [pyarrow](https://github.com/apache/arrow) from 15.0.0 to 15.0.1.
- [Commits](https://github.com/apache/arrow/compare/go/v15.0.0...go/v15.0.1)

---
updated-dependencies:
- dependency-name: pyarrow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 03:39:56 +00:00
dependabot[bot] 80560a389c Bump mypy from 1.8.0 to 1.9.0
Bumps [mypy](https://github.com/python/mypy) from 1.8.0 to 1.9.0.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.8.0...1.9.0)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 03:39:48 +00:00
dependabot[bot] 60b9d9448a Bump the types group with 2 updates
Bumps the types group with 2 updates: [types-requests](https://github.com/python/typeshed) and [types-python-dateutil](https://github.com/python/typeshed).


Updates `types-requests` from 2.31.0.20240218 to 2.31.0.20240311
- [Commits](https://github.com/python/typeshed/commits)

Updates `types-python-dateutil` from 2.8.19.20240106 to 2.8.19.20240311
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: types
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: types
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-11 03:37:19 +00:00
Matthias 518b6eb565 use dt_ts to simplify exchange date math 2024-03-10 19:31:43 +01:00
Matthias 1010ce96fa Merge pull request #9922 from xmatthias/ci/native_m1
Ci - Run on native macos ARM runner
2024-03-10 13:08:03 +01:00
Matthias 204849aa85 Merge pull request #9919 from freqtrade/bump/catboost
Bump catboost to 1.2.3
2024-03-10 11:45:13 +01:00
Matthias 4e94178169 exclude python 3.9 on Macos 14 2024-03-09 20:10:40 +01:00
Matthias 0bd50a6e24 Don't disable tensorboard on mac ARM 2024-03-09 19:45:11 +01:00
Matthias cb1f49e81c Don't run torch models on 3.12 yet 2024-03-09 19:25:17 +01:00
Matthias edc74ae2e4 Split macos Installation into 2 separate actions 2024-03-09 18:23:35 +01:00
Matthias c5f2a69d9c Allow running catboost tests on 3.12 2024-03-09 18:16:22 +01:00
Matthias 971a81e15d Bump catboost to 1.2.3, remove 3.12 restriction 2024-03-09 18:15:47 +01:00
Matthias cc3b2000eb Avoid fully patching torch on M1 macs 2024-03-09 17:55:22 +01:00
Matthias 86db888386 Install libomp from brew for macos
closes #9874
2024-03-09 17:41:10 +01:00
Matthias 7cceddb3df Improve wording on /health message 2024-03-09 17:35:29 +01:00
Matthias 29f90cbd04 Run CI on macos-14 (M1) 2024-03-09 17:34:06 +01:00
Matthias 71b4e79874 Merge pull request #9914 from cuinix/develop
fix some typos in docs
2024-03-09 16:12:35 +01:00
Matthias 1b608a162e Add type-hint for result dictionary 2024-03-09 16:10:33 +01:00
Matthias f8cbf138ee Add Initial bot start and current bot start to /health telegram msg 2024-03-09 15:47:01 +01:00
Matthias acbb485302 Add bot start and bot-startup to health endpoint 2024-03-09 15:01:13 +01:00
Matthias 98c2f81bb9 Merge pull request #9917 from syco/develop
update status table to show total amounts in stake currency
2024-03-08 07:12:10 +01:00
Matthias 2cfe993951 Fix condition for min-stake in position-adjust mode
closes #9915
2024-03-08 07:10:47 +01:00
Matthias 6f0f4f06ef Merge pull request #6908 from eSeR1805/feature_keyval_storage
Persistent storage of user-custom information
2024-03-08 07:00:17 +01:00
Matthias b690325f22 Remove typo in change-dir notebook
closes #9916
2024-03-08 06:39:39 +01:00
Alberto 865ebc3143 update status table to show total amounts in stake currency
Signed-off-by: Alberto <alberto.rinaudo+seiza@gmail.com>
2024-03-07 17:05:13 +00:00
cuinix 3e6e534e76 fix some typos in docs
Signed-off-by: cuinix <915115094@qq.com>
2024-03-07 13:57:25 +08:00
Matthias cab38fb8c3 Merge pull request #9911 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2024-03-05 06:29:28 +01:00
xmatthias 510863f939 chore: update pre-commit hooks 2024-03-05 03:03:38 +00:00
Matthias bcd631d3a8 Merge pull request #9903 from freqtrade/dependabot/pip/develop/pydantic-2.6.3
Bump pydantic from 2.6.2 to 2.6.3
2024-03-04 09:55:33 +01:00
dependabot[bot] 99c8be4c30 Bump pydantic from 2.6.2 to 2.6.3
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.6.2 to 2.6.3.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.6.2...v2.6.3)

---
updated-dependencies:
- dependency-name: pydantic
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 07:59:10 +00:00
Matthias 1b92f2522c Merge pull request #9907 from freqtrade/dependabot/pip/develop/ccxt-4.2.58
Bump ccxt from 4.2.51 to 4.2.58
2024-03-04 08:57:13 +01:00
Matthias 00e77c7f3f Merge pull request #9908 from freqtrade/dependabot/pip/develop/ruff-0.3.0
Bump ruff from 0.2.2 to 0.3.0
2024-03-04 08:55:44 +01:00
Matthias 1680728acb Merge pull request #9906 from freqtrade/dependabot/pip/develop/python-rapidjson-1.16
Bump python-rapidjson from 1.14 to 1.16
2024-03-04 08:54:42 +01:00
dependabot[bot] 9ad60643f5 Bump ruff from 0.2.2 to 0.3.0
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.2.2 to 0.3.0.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.2.2...v0.3.0)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 05:46:23 +00:00
Matthias 2ac7500cbf Merge pull request #9905 from freqtrade/dependabot/pip/develop/cachetools-5.3.3
Bump cachetools from 5.3.2 to 5.3.3
2024-03-04 06:45:21 +01:00
Matthias a2f7d93d13 Merge pull request #9900 from freqtrade/dependabot/pip/develop/time-machine-2.14.0
Bump time-machine from 2.13.0 to 2.14.0
2024-03-04 06:44:57 +01:00
Matthias 6e052d9e0c Merge pull request #9901 from freqtrade/dependabot/pip/develop/mkdocs-material-9.5.12
Bump mkdocs-material from 9.5.11 to 9.5.12
2024-03-04 06:44:33 +01:00
Matthias a4aa20c1f2 Merge pull request #9902 from freqtrade/dependabot/pip/develop/rich-13.7.1
Bump rich from 13.7.0 to 13.7.1
2024-03-04 06:44:13 +01:00
Matthias ac6f7dca1f Merge pull request #9904 from freqtrade/dependabot/pip/develop/python-dateutil-2.9.0.post0
Bump python-dateutil from 2.8.2 to 2.9.0.post0
2024-03-04 06:43:55 +01:00
Matthias 91ff6df512 Merge pull request #9899 from freqtrade/dependabot/pip/develop/pytest-606dc6de2a
Bump the pytest group with 1 update
2024-03-04 06:43:35 +01:00
Matthias 154064602e Merge pull request #9898 from freqtrade/dependabot/github_actions/develop/pypa/gh-action-pypi-publish-1.8.12
Bump pypa/gh-action-pypi-publish from 1.8.11 to 1.8.12
2024-03-04 06:43:07 +01:00
Matthias 426bc4c97b Merge pull request #9897 from freqtrade/fix/xgboosttensorboard
fix: try plotting as much info in xgboost tensorboard as possible
2024-03-04 06:38:22 +01:00
dependabot[bot] 8c0ba2a69a Bump ccxt from 4.2.51 to 4.2.58
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.2.51 to 4.2.58.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.2.51...4.2.58)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 03:23:27 +00:00
dependabot[bot] d6ae63ac48 Bump python-rapidjson from 1.14 to 1.16
Bumps [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) from 1.14 to 1.16.
- [Changelog](https://github.com/python-rapidjson/python-rapidjson/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-rapidjson/python-rapidjson/compare/v1.14...v1.16)

---
updated-dependencies:
- dependency-name: python-rapidjson
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 03:23:16 +00:00
dependabot[bot] ec17b5523c Bump cachetools from 5.3.2 to 5.3.3
Bumps [cachetools](https://github.com/tkem/cachetools) from 5.3.2 to 5.3.3.
- [Changelog](https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/tkem/cachetools/compare/v5.3.2...v5.3.3)

---
updated-dependencies:
- dependency-name: cachetools
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 03:23:10 +00:00
dependabot[bot] b8c16fb889 Bump python-dateutil from 2.8.2 to 2.9.0.post0
Bumps [python-dateutil](https://github.com/dateutil/dateutil) from 2.8.2 to 2.9.0.post0.
- [Release notes](https://github.com/dateutil/dateutil/releases)
- [Changelog](https://github.com/dateutil/dateutil/blob/master/NEWS)
- [Commits](https://github.com/dateutil/dateutil/compare/2.8.2...2.9.0.post0)

---
updated-dependencies:
- dependency-name: python-dateutil
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 03:23:02 +00:00
dependabot[bot] c3f9b16c84 Bump rich from 13.7.0 to 13.7.1
Bumps [rich](https://github.com/Textualize/rich) from 13.7.0 to 13.7.1.
- [Release notes](https://github.com/Textualize/rich/releases)
- [Changelog](https://github.com/Textualize/rich/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Textualize/rich/compare/v13.7.0...v13.7.1)

---
updated-dependencies:
- dependency-name: rich
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 03:22:46 +00:00
dependabot[bot] 062376f573 Bump mkdocs-material from 9.5.11 to 9.5.12
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.11 to 9.5.12.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.11...9.5.12)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 03:22:41 +00:00
dependabot[bot] 21709204eb Bump time-machine from 2.13.0 to 2.14.0
Bumps [time-machine](https://github.com/adamchainz/time-machine) from 2.13.0 to 2.14.0.
- [Changelog](https://github.com/adamchainz/time-machine/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/adamchainz/time-machine/compare/2.13.0...2.14.0)

---
updated-dependencies:
- dependency-name: time-machine
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 03:22:37 +00:00
dependabot[bot] 7ca3032d51 Bump the pytest group with 1 update
Bumps the pytest group with 1 update: [pytest](https://github.com/pytest-dev/pytest).


Updates `pytest` from 8.0.2 to 8.1.0
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.0.2...8.1.0)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 03:22:32 +00:00
dependabot[bot] 07bf19a990 Bump pypa/gh-action-pypi-publish from 1.8.11 to 1.8.12
Bumps [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) from 1.8.11 to 1.8.12.
- [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases)
- [Commits](https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.11...v1.8.12)

---
updated-dependencies:
- dependency-name: pypa/gh-action-pypi-publish
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-03-04 03:17:13 +00:00
robcaulk a948796ef7 fix: manually add train eval since xgboost does not expose this information by default 2024-03-03 15:47:19 +01:00
Matthias 255ea88638 Add to telegram documentation 2024-03-03 15:24:26 +01:00
Matthias 6bdb651573 Merge pull request #9890 from freqtrade/feat/dl-trades_futures
Support for --dl-trades for futures
2024-03-03 15:00:02 +01:00
Matthias ed8469f23a use trading_mode to determine trades file location 2024-03-03 13:12:42 +01:00
Matthias 265a7123da Add explicit test for telegram functionality of list-custom-data 2024-03-03 13:10:50 +01:00
Matthias ceb461a252 Switch sequence of information documentation 2024-03-03 12:58:10 +01:00
Matthias c1ae110080 Improve documentation 2024-03-03 12:56:42 +01:00
Matthias 30b4f27152 Cleanup some nitpicks 2024-03-03 12:50:28 +01:00
Matthias 1176c16b93 REmove unnecessary assignment 2024-03-03 12:41:51 +01:00
robcaulk 093a093bd5 fix: use data metric_name directly 2024-03-03 12:38:51 +01:00
robcaulk b8a1089592 fix: try plotting as much info in xgboost tensorboard as possible 2024-03-03 12:23:18 +01:00
Matthias fcb16098d8 Reduce Error level when converting trades 2024-03-02 15:40:43 +01:00
Matthias 7ed7ed4081 Accept trading-mode for trades-to-ohlcv command 2024-03-02 15:38:36 +01:00
Matthias 99da6f70c2 Fix failing test due to new approach for convert-trades 2024-03-02 13:27:57 +01:00
Matthias 09d763b604 convert-trades should do proper pair expansion to support regex in pairlists 2024-03-02 13:23:03 +01:00
Matthias 5e7868a28d Remove block from download-trades for futures 2024-03-02 13:22:41 +01:00
Matthias 66e43f2fe8 Adjust tests for new arguments 2024-03-02 13:17:45 +01:00
Matthias 43103f51e5 Update functions that use datahandler trade methods 2024-03-02 13:10:57 +01:00
Matthias b6040e270f Update data handlers to accept trading_mode
for trade data related functions
2024-03-02 13:08:58 +01:00
Matthias f8cc2a6e74 Fix typo in doc header 2024-03-02 12:01:01 +01:00
Matthias 75c84bfe65 Only show a subset of list-exchanges output in the docs
(it's potentially missleading, and changes all the time - so was probably outdated).
2024-03-02 08:23:38 +01:00
Matthias bdd63aa1d6 FIx futures trades pair download directory 2024-03-01 20:17:43 +01:00
Matthias 5dee60921f Fix test for convert_trades_to_ohlcv 2024-03-01 19:42:33 +01:00
Matthias 46e616f997 Remove defaults for converter - they're always provided and necessary. 2024-03-01 19:32:35 +01:00
Matthias 82f191f7b0 Merge pull request #9861 from freqtrade/feat/sort_volatility
Add sorting to volatility and RangeStability pairlists
2024-03-01 06:52:34 +01:00
Matthias cdfeae9f90 Update merge to "left" to avoid creating non-existing mark candles 2024-02-29 07:31:22 +01:00
Matthias e988995d71 Handle NaN funding fees
closes #9831
2024-02-29 07:22:47 +01:00
Matthias 1fc69ef114 Merge pull request #9876 from freqtrade/new_release
New release 2024.2
2024-02-29 06:38:44 +01:00
Matthias 2384ba74a3 Merge branch 'develop' into feat/sort_volatility 2024-02-27 20:50:41 +01:00
Matthias d1028b8ca2 Merge pull request #9871 from freqtrade/dependabot/pip/develop/pandas-2.2.1
Bump pandas from 2.1.4 to 2.2.1
2024-02-27 20:47:31 +01:00
Joe Schr b55105ec82 chore: adjust timeframe_to_* imports accordingly 2024-02-27 10:42:29 +01:00
Joe Schr 4a8c8f296a chore: extract timeframe_to_* functions into exchange_utils_timeframe.py 2024-02-27 10:23:07 +01:00
Matthias 883f27d99e Version bump to 2024.3-dev 2024-02-27 07:01:16 +01:00
Matthias 0a8719c617 Bump Version to 2024.2 2024-02-27 06:54:21 +01:00
Matthias e1fdc0c79c Merge branch 'stable' into new_release 2024-02-27 06:54:07 +01:00
Matthias c0e9726f49 don't use "1M" - but be explicit in the intend 2024-02-27 06:20:08 +01:00
Matthias 0021e2c205 fillna needs explicit type. 2024-02-27 06:19:54 +01:00
Matthias ce2f4f89c4 update pandas deprecation to_hdf 2024-02-27 06:19:38 +01:00
Matthias 5912d87b65 Pandas - update view to astype 2024-02-27 06:19:27 +01:00
Matthias b1015172c7 Update test for fixed pandas behavior 2024-02-27 06:19:06 +01:00
dependabot[bot] bd7edfba97 Bump pandas from 2.1.4 to 2.2.1
Bumps [pandas](https://github.com/pandas-dev/pandas) from 2.1.4 to 2.2.1.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Commits](https://github.com/pandas-dev/pandas/compare/v2.1.4...v2.2.1)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 19:18:14 +01:00
Matthias d6b01a6ffe Assert for exact equality 2024-02-26 19:17:50 +01:00
Matthias 01266ed7eb Align test results ... 2024-02-26 19:02:11 +01:00
Matthias 5402d276d6 Add header to warning box, reorder Boxes 2024-02-26 18:03:39 +01:00
Matthias 9d2bfa6594 Merge pull request #9872 from freqtrade/dependabot/pip/develop/ccxt-4.2.51
Bump ccxt from 4.2.47 to 4.2.51
2024-02-26 13:26:22 +01:00
dependabot[bot] d5c01f7480 Bump ccxt from 4.2.47 to 4.2.51
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.2.47 to 4.2.51.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.2.47...4.2.51)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 07:47:19 +00:00
Matthias e61a4ffc98 Merge pull request #9869 from freqtrade/dependabot/pip/develop/fastapi-0.110.0
Bump fastapi from 0.109.2 to 0.110.0
2024-02-26 08:46:03 +01:00
Matthias 1b8255a464 Merge pull request #9873 from freqtrade/dependabot/pip/develop/cryptography-42.0.5
Bump cryptography from 42.0.4 to 42.0.5
2024-02-26 08:45:14 +01:00
Matthias d9f4c62f15 Add warning about excessive use of position_adjustment 2024-02-26 07:07:48 +01:00
Matthias 540ba4c769 Merge pull request #9870 from freqtrade/dependabot/pip/develop/nbconvert-7.16.1
Bump nbconvert from 7.16.0 to 7.16.1
2024-02-26 06:43:27 +01:00
dependabot[bot] 080d9b55f8 Bump fastapi from 0.109.2 to 0.110.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.109.2 to 0.110.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.109.2...0.110.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 05:29:59 +00:00
Matthias 74bdb94d07 Merge pull request #9867 from freqtrade/dependabot/pip/develop/pydantic-2.6.2
Bump pydantic from 2.6.1 to 2.6.2
2024-02-26 06:28:52 +01:00
Matthias 5854c63d05 Merge pull request #9866 from freqtrade/dependabot/pip/develop/orjson-3.9.15
Bump orjson from 3.9.14 to 3.9.15
2024-02-26 06:28:27 +01:00
Matthias 3957506db0 Merge pull request #9868 from freqtrade/dependabot/pip/develop/mkdocs-material-9.5.11
Bump mkdocs-material from 9.5.9 to 9.5.11
2024-02-26 06:27:55 +01:00
Matthias 1ac8210313 Merge pull request #9865 from freqtrade/dependabot/pip/develop/pytest-1fcd73377f
Bump the pytest group with 1 update
2024-02-26 06:27:34 +01:00
dependabot[bot] 4ff888488b Bump cryptography from 42.0.4 to 42.0.5
Bumps [cryptography](https://github.com/pyca/cryptography) from 42.0.4 to 42.0.5.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/42.0.4...42.0.5)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 03:55:48 +00:00
dependabot[bot] e2a486f85e Bump nbconvert from 7.16.0 to 7.16.1
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 7.16.0 to 7.16.1.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Changelog](https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jupyter/nbconvert/compare/v7.16.0...v7.16.1)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 03:55:27 +00:00
dependabot[bot] 313de7b8a0 Bump mkdocs-material from 9.5.9 to 9.5.11
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.9 to 9.5.11.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.9...9.5.11)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 03:55:12 +00:00
dependabot[bot] c2998f3d75 Bump pydantic from 2.6.1 to 2.6.2
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.6.1 to 2.6.2.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.6.1...v2.6.2)

---
updated-dependencies:
- dependency-name: pydantic
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 03:55:06 +00:00
dependabot[bot] 9805cd768b Bump orjson from 3.9.14 to 3.9.15
Bumps [orjson](https://github.com/ijl/orjson) from 3.9.14 to 3.9.15.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.9.14...3.9.15)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 03:54:59 +00:00
dependabot[bot] c06e4ee89c Bump the pytest group with 1 update
Bumps the pytest group with 1 update: [pytest](https://github.com/pytest-dev/pytest).


Updates `pytest` from 8.0.1 to 8.0.2
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.0.1...8.0.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-26 03:54:50 +00:00
Matthias d80ed7e33c Bump Docker Python version from 3.11.7 to 3.11.8 2024-02-25 15:17:42 +01:00
Matthias e2d3774b07 Clearer wallets variable/parameter wording 2024-02-25 09:07:53 +01:00
Matthias aad327b1fe Update comment around funding fees 2024-02-25 09:02:58 +01:00
Matthias 3e0755b8ad Enhance funding-fee call test to account for different timezones 2024-02-25 09:02:17 +01:00
Matthias f164b89351 Ensure pytz is updated regularily by pinning it 2024-02-25 08:57:05 +01:00
Matthias e80ad309f1 Improve type safety, refactor volatilityfilter 2024-02-24 15:04:54 +01:00
Matthias 817ad64402 Add docs for rangeStability sorting 2024-02-24 15:00:28 +01:00
Matthias 67152ad48a Improve and parametrize pairlist tests 2024-02-24 14:56:42 +01:00
Matthias e82d9e2f55 Test volatilityfilter with more pairs 2024-02-24 14:45:15 +01:00
Matthias b972ee78ec Enhance rangeStability test 2024-02-24 14:41:06 +01:00
Matthias 2704f6e758 Improve test 2024-02-24 14:05:25 +01:00
Matthias 9dd5967275 Add sorting capabilities to rangeStabilityFilter 2024-02-24 14:03:50 +01:00
Matthias 6a313aa9e3 Improve help wording 2024-02-24 14:03:26 +01:00
Matthias 81de29a1e3 Improve conditions for removal of pairs 2024-02-24 14:00:50 +01:00
Matthias 3677953d90 Properly cache volatility-average 2024-02-24 13:54:52 +01:00
Matthias 7af46628f8 Simplify rangeStability Filter 2024-02-24 13:50:54 +01:00
Matthias 88a2995b4c Fix wrong typehint 2024-02-24 13:39:46 +01:00
Matthias 866ff55d84 document sort_direction mode 2024-02-24 13:34:42 +01:00
Matthias 91ba4f6424 Add test for volatilityFilter sorting 2024-02-24 13:31:26 +01:00
Matthias 31e2543134 Enhance generate_test_data with parametrizable random seed 2024-02-24 13:30:42 +01:00
Matthias eaf70428c1 Improve volatility tests 2024-02-24 13:21:49 +01:00
Matthias 38ca58c728 Add verification for volatilityfilter 2024-02-24 13:12:52 +01:00
Matthias 0bf73cc64b Voliatilityfilter - sorting 2024-02-24 13:11:43 +01:00
Matthias 7ddaa09a23 Refactor VolatilityFilter 2024-02-24 08:26:07 +01:00
Matthias c663016b47 Improve some type safety 2024-02-24 08:06:06 +01:00
Matthias 6307e16304 Properly format notification date 2024-02-23 06:45:28 +01:00
Matthias 9ac7149c47 Add check to verify that "since" is properly respected. 2024-02-22 22:14:29 +01:00
Matthias 0acde28902 Remove pointless comment 2024-02-22 19:28:02 +01:00
Matthias f4ad1e8020 chore: Remove wrong typehint 2024-02-22 19:02:11 +01:00
Matthias c7fff45bef Fix test leakage 2024-02-22 19:01:33 +01:00
Matthias e30fa3a445 Remove duplicate pairlistmanager init 2024-02-22 18:17:58 +01:00
Matthias db83b0cdb0 Update typehint for candle_cache 2024-02-22 07:09:47 +01:00
Matthias 4cfd5d004e Improve ohlcv pair cache with since_ms
avoids some rare bugs in more complex configurations.
2024-02-22 06:38:28 +01:00
Matthias 3680e199ce Fix range-stability filter downloading too little data 2024-02-22 06:29:08 +01:00
Matthias 4e87169a0c Use set to reduce iterations 2024-02-22 06:28:54 +01:00
Matthias 621e497e7b Merge pull request #9854 from freqtrade/dependabot/pip/cryptography-42.0.4
Bump cryptography from 42.0.3 to 42.0.4
2024-02-22 06:28:08 +01:00
dependabot[bot] c013c76e64 Bump cryptography from 42.0.3 to 42.0.4
Bumps [cryptography](https://github.com/pyca/cryptography) from 42.0.3 to 42.0.4.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/42.0.3...42.0.4)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-21 20:49:18 +00:00
Matthias 4bbb3174b2 re-enable use_database after bt test 2024-02-21 06:52:22 +01:00
Matthias c511d65d2e Add backtesting test 2024-02-20 20:25:12 +01:00
Matthias e8ca9ce39b Add testconfirming correct functioning 2024-02-20 20:00:45 +01:00
Matthias f1af00dd39 Merge branch 'develop' into feature_keyval_storage 2024-02-20 19:21:44 +01:00
Matthias bfb0b535b7 Merge pull request #9847 from freqtrade/fix/bybit_unified
Bump ccxt to 4.2.47
2024-02-20 08:26:55 +01:00
Matthias 0199e7d3d8 Add type-hint to exchange_has dict 2024-02-20 06:30:10 +01:00
Matthias b3ba2cee17 Bump ccxt to 4.2.47 2024-02-20 06:21:09 +01:00
Matthias 411f606476 Fix some tests due to new method 2024-02-20 06:21:03 +01:00
Matthias f53c019d2a Update "exchange_has" validation with new fallbacks 2024-02-20 06:21:03 +01:00
Matthias 3497f7946e Add test for fetch_order_emulated 2024-02-20 06:21:03 +01:00
Matthias 65af7750e6 Add fetch_order_emulated to support exchanges without proper fetch_order method 2024-02-20 06:21:03 +01:00
Matthias 103c993591 Merge pull request #9843 from freqtrade/dependabot/pip/develop/tensorboard-2.16.2
Bump tensorboard from 2.15.2 to 2.16.2
2024-02-20 06:11:11 +01:00
Matthias 969128a74f Merge pull request #9846 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2024-02-20 06:10:45 +01:00
xmatthias f6e2030bf2 chore: update pre-commit hooks 2024-02-20 03:03:46 +00:00
Matthias 00bde70f73 Fix / improve styling in test class 2024-02-19 19:14:44 +01:00
Matthias 61e2170fc1 Merge pull request #9832 from freqtrade/dependabot/pip/develop/types-8a8455b0ec
Bump the types group with 1 update
2024-02-19 11:52:44 +01:00
Matthias 434b8a423c bump types-requests pre-commit 2024-02-19 09:33:09 +01:00
Matthias 0b149cbd6a Merge pull request #9840 from freqtrade/dependabot/pip/develop/ruff-0.2.2
Bump ruff from 0.2.1 to 0.2.2
2024-02-19 09:32:08 +01:00
Matthias 2323215aa7 Merge pull request #9838 from freqtrade/dependabot/pip/develop/sqlalchemy-2.0.27
Bump sqlalchemy from 2.0.26 to 2.0.27
2024-02-19 08:49:53 +01:00
dependabot[bot] 82876570a3 Bump ruff from 0.2.1 to 0.2.2
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.2.1 to 0.2.2.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.2.1...v0.2.2)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 07:14:01 +00:00
Matthias c329e71fa8 Merge pull request #9836 from freqtrade/dependabot/pip/develop/pre-commit-3.6.2
Bump pre-commit from 3.6.1 to 3.6.2
2024-02-19 08:13:14 +01:00
Matthias a200b5524b Update sqlalchemy in pre-commit 2024-02-19 07:18:56 +01:00
Matthias baf6725a9a Merge pull request #9839 from freqtrade/dependabot/pip/develop/scikit-learn-1.4.1.post1
Bump scikit-learn from 1.4.0 to 1.4.1.post1
2024-02-19 07:18:07 +01:00
Matthias d655a0a638 Merge pull request #9842 from freqtrade/dependabot/pip/develop/orjson-3.9.14
Bump orjson from 3.9.13 to 3.9.14
2024-02-19 07:16:29 +01:00
Matthias 39941a7ac0 Improve formatting in drawdown calc 2024-02-19 07:09:23 +01:00
Matthias 66f4839101 Further increase test coverate of max_drawdown 2024-02-19 07:02:42 +01:00
dependabot[bot] 6aa1bbf574 Bump sqlalchemy from 2.0.26 to 2.0.27
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 2.0.26 to 2.0.27.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 05:31:00 +00:00
dependabot[bot] 381576b8f1 Bump pre-commit from 3.6.1 to 3.6.2
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 3.6.1 to 3.6.2.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v3.6.1...v3.6.2)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 05:30:18 +00:00
Matthias 82814cb5fa Merge pull request #9837 from freqtrade/dependabot/pip/develop/plotly-5.19.0
Bump plotly from 5.18.0 to 5.19.0
2024-02-19 06:30:11 +01:00
Matthias 093b44928e Merge pull request #9835 from freqtrade/dependabot/pip/develop/cryptography-42.0.3
Bump cryptography from 42.0.2 to 42.0.3
2024-02-19 06:29:42 +01:00
Matthias fa632311f3 Merge pull request #9834 from freqtrade/dependabot/pip/develop/urllib3-2.2.1
Bump urllib3 from 2.2.0 to 2.2.1
2024-02-19 06:28:35 +01:00
Matthias 5e86ee9de6 Merge pull request #9833 from freqtrade/dependabot/pip/develop/pytest-4c2ece7286
Bump the pytest group with 1 update
2024-02-19 06:28:12 +01:00
dependabot[bot] 549b9f62fd Bump tensorboard from 2.15.2 to 2.16.2
Bumps [tensorboard](https://github.com/tensorflow/tensorboard) from 2.15.2 to 2.16.2.
- [Release notes](https://github.com/tensorflow/tensorboard/releases)
- [Changelog](https://github.com/tensorflow/tensorboard/blob/master/RELEASE.md)
- [Commits](https://github.com/tensorflow/tensorboard/compare/2.15.2...2.16.2)

---
updated-dependencies:
- dependency-name: tensorboard
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 03:13:12 +00:00
dependabot[bot] edb5431a77 Bump orjson from 3.9.13 to 3.9.14
Bumps [orjson](https://github.com/ijl/orjson) from 3.9.13 to 3.9.14.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.9.13...3.9.14)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 03:13:07 +00:00
dependabot[bot] 4241db2fe2 Bump scikit-learn from 1.4.0 to 1.4.1.post1
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 1.4.0 to 1.4.1.post1.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.4.0...1.4.1.post1)

---
updated-dependencies:
- dependency-name: scikit-learn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 03:12:37 +00:00
dependabot[bot] c966f83147 Bump plotly from 5.18.0 to 5.19.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 5.18.0 to 5.19.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v5.18.0...v5.19.0)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 03:12:17 +00:00
dependabot[bot] f361824b15 Bump cryptography from 42.0.2 to 42.0.3
Bumps [cryptography](https://github.com/pyca/cryptography) from 42.0.2 to 42.0.3.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/42.0.2...42.0.3)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 03:12:05 +00:00
dependabot[bot] 8675f86d14 Bump urllib3 from 2.2.0 to 2.2.1
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.2.0 to 2.2.1.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.2.0...2.2.1)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 03:11:57 +00:00
dependabot[bot] 0979d0b6e4 Bump the pytest group with 1 update
Bumps the pytest group with 1 update: [pytest](https://github.com/pytest-dev/pytest).


Updates `pytest` from 8.0.0 to 8.0.1
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.0.0...8.0.1)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 03:11:53 +00:00
dependabot[bot] 4c3879cb57 Bump the types group with 1 update
Bumps the types group with 1 update: [types-requests](https://github.com/python/typeshed).


Updates `types-requests` from 2.31.0.20240125 to 2.31.0.20240218
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: types
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-19 03:11:21 +00:00
Matthias 69a0f4c465 Fix bybit spot live tests 2024-02-18 16:09:59 +01:00
Matthias 61e09ac719 Update telegram help with new wording 2024-02-18 16:07:03 +01:00
Matthias 583b2fc690 Fail if unified account is detected. 2024-02-18 11:50:42 +01:00
Matthias e06b70eb05 Add log message for Bybit accout type 2024-02-18 11:50:42 +01:00
Matthias 51a6a7b632 Merge pull request #9821 from freqtrade/feat/volumepairlist_caching
improve volumepairlist "advanced filter mode" caching
2024-02-18 11:46:31 +01:00
Matthias 3250f42257 Improve validate_exchange
returns now both required and optional dependencies
2024-02-18 11:21:34 +01:00
Matthias a029d1f08e Merge pull request #9823 from tar-xz/develop
docs: Remove unnecessary bracket in sql_cheatsheet.md
2024-02-18 10:54:55 +01:00
William Wong a5d1ae3191 docs: Update sql_cheatsheet.md 2024-02-18 03:21:50 +08:00
Matthias ebd439cdd1 Remove unused import 2024-02-17 16:41:10 +01:00
Matthias 78d8a4df2e Use "ohlcv_with_cache" for further pairlists 2024-02-17 16:29:52 +01:00
Matthias 4bcf2c423a Don't tick on ttl cache 2024-02-17 16:27:43 +01:00
Matthias 7b36a0fc42 Add explicit test for ohlcv_with_cache 2024-02-17 16:26:53 +01:00
Matthias bcfe7ef547 Refactor ohlcv caching to exchange class 2024-02-17 16:26:44 +01:00
Matthias 8033faa2f2 Update pairlist cache behavior in VolumePairList 2024-02-17 15:14:11 +01:00
Matthias 190ba272de Merge pull request #9818 from CaffeinatedTech/develop
Added escaping to enter and exit tags on telegram performance messages.
2024-02-17 13:36:52 +01:00
Matthias 3f3760c0ae Use Markdown V1 - update tests 2024-02-17 12:02:26 +01:00
CaffeinatedTech 4761bf2427 Change enter_tag, exit_reason, mix_tag performance messages from HTML to Markdown to fix some string encoding issues. 2024-02-17 09:12:49 +10:00
Matthias c0da1b6922 Fix edge-case when calculating cagr
edge-case with leveraged trades - yielding a negative final balance.
closes #9820
2024-02-16 20:04:49 +01:00
CaffeinatedTech a0b7df70d6 Added escaping to enter and exit tags on telegram performance messages. 2024-02-16 13:36:16 +10:00
Matthias 60b12c1d9e Double newlines between functions ... 2024-02-15 20:45:16 +01:00
Matthias fd48991fb0 Fix duplicate parentheses 2024-02-15 20:44:16 +01:00
Matthias 1696aa3915 Adjust tests for new fields 2024-02-15 20:39:06 +01:00
Matthias fb54c9ffe4 Add open_fill_date stuff to json schema 2024-02-15 20:35:34 +01:00
Matthias 0f85ef0997 Simplify trade_model serializations 2024-02-15 19:52:50 +01:00
Matthias c6d1c1a980 Add dt_ts_none helper 2024-02-15 19:50:56 +01:00
Matthias c1d7184849 Adjust for ccxt exception hierarchy change
caused by https://github.com/ccxt/ccxt/pull/21035
2024-02-15 19:20:08 +01:00
Matthias a22181d721 Enable caching for "filter only" Volumepairlist 2024-02-15 18:20:19 +01:00
Matthias 7f7e9ec875 Add additional test case for VolumePairlist in range mode 2024-02-15 18:20:19 +01:00
Matthias 6c9b9e91e8 enhance volumpairlist range test 2024-02-15 18:20:19 +01:00
Matthias d01e9cf299 Improve log message 2024-02-15 18:20:11 +01:00
Matthias 86da9cb659 Simplify some pairlist conditions 2024-02-15 18:20:11 +01:00
Matthias d2b0dc2171 Merge pull request #9814 from freqtrade/frog-docs-remotepairlist-1
Clarify processing_mode for RemotePairlist docs
2024-02-15 18:10:18 +01:00
Robert Davey 57fd0e379a Clarify processing_mode for RemotePairlist
No default value is specified in the docs for the processing_mode, making it unclear that the default behaviour is to filter out pairs, rather than append.
2024-02-15 15:57:49 +00:00
Matthias 280737447c Don't load empty dataframes - skip these
closes #9811
2024-02-14 07:26:23 +01:00
Matthias 3d6079ae19 Add debug output showing the pair to be converted
part of #9811
2024-02-13 17:47:43 +01:00
Matthias ab062d7bb1 Add test to run in backtest mode 2024-02-13 07:16:20 +01:00
Matthias d5b21f2a32 Fix bug in backtest mode 2024-02-13 07:16:09 +01:00
Matthias 9be7759e42 Add initial test for custom_data 2024-02-13 07:10:11 +01:00
Matthias 304f52ab79 Fix some minor custom-data bugs 2024-02-13 07:06:32 +01:00
Matthias 6a6e3aacf3 Fix broken deletion 2024-02-12 20:51:44 +01:00
Matthias 1c81a21bb6 Merge branch 'develop' into feature_keyval_storage 2024-02-12 20:39:37 +01:00
Matthias 67b910835e Simplify access to custom_data - users will usually only care about the value, not about the metadata. 2024-02-12 20:39:29 +01:00
Matthias 8364a704d6 Fix a few sql gotchas 2024-02-12 20:31:44 +01:00
Matthias 790c7e386a re-adjust logic for custom_data in rpc module 2024-02-12 20:27:56 +01:00
Matthias 8dda28351e Simplify custom_data stuff 2024-02-12 20:25:26 +01:00
Matthias b7904b8e80 Combine custom_data classes to one file 2024-02-12 20:14:37 +01:00
Matthias 7fd70b82fa custom_data: Simplify and fix a few things 2024-02-12 20:05:17 +01:00
Matthias 9699011cd9 Remove pointless wrapper 2024-02-12 18:28:29 +01:00
Matthias 83b22dedd5 Fix non-reset of use_db 2024-02-12 18:25:02 +01:00
Matthias c67e451fe1 Remove unused imports 2024-02-12 18:24:26 +01:00
Matthias 8593094619 Ensure custom data access goes through the accessor functions 2024-02-12 18:22:49 +01:00
Matthias d49da76382 Slighlty improve docs 2024-02-12 18:17:48 +01:00
Matthias 2c652a2ce6 Merge pull request #9803 from freqtrade/dependabot/pip/develop/sqlalchemy-2.0.26
Bump sqlalchemy from 2.0.25 to 2.0.26
2024-02-12 14:17:19 +01:00
Matthias c99009d47e Merge branch 'develop' into dependabot/pip/develop/sqlalchemy-2.0.26 2024-02-12 10:52:10 +01:00
Matthias 05ab13592b Merge pull request #9796 from freqtrade/dependabot/pip/develop/pytest-859c960bd7
Bump the pytest group with 2 updates
2024-02-12 08:19:57 +01:00
Matthias a02b1d0306 Merge pull request #9804 from freqtrade/dependabot/pip/develop/tensorboard-2.15.2
Bump tensorboard from 2.15.1 to 2.15.2
2024-02-12 08:17:47 +01:00
Matthias ffe43be3fa Merge pull request #9802 from freqtrade/dependabot/pip/develop/python-telegram-bot-20.8
Bump python-telegram-bot from 20.7 to 20.8
2024-02-12 08:17:22 +01:00
Matthias 94a52a776c Merge pull request #9801 from freqtrade/dependabot/pip/develop/mkdocs-material-9.5.9
Bump mkdocs-material from 9.5.8 to 9.5.9
2024-02-12 06:47:12 +01:00
Matthias f2a7312010 Update sqlalchemy pre-commit 2024-02-12 06:34:45 +01:00
Matthias 72290365db telegram: ensure msg update test uses the correct edit_message_text call 2024-02-12 06:31:39 +01:00
Matthias fd737af69d use query.edit_message_text to simplify telegram class 2024-02-12 06:29:42 +01:00
dependabot[bot] 0740a13393 Bump sqlalchemy from 2.0.25 to 2.0.26
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 2.0.25 to 2.0.26.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 05:18:09 +00:00
Matthias 1f3047dce4 Merge pull request #9800 from freqtrade/dependabot/pip/develop/tqdm-4.66.2
Bump tqdm from 4.66.1 to 4.66.2
2024-02-12 06:17:42 +01:00
Matthias ea0f4f6b86 Merge pull request #9799 from freqtrade/dependabot/pip/develop/ccxt-4.2.42
Bump ccxt from 4.2.39 to 4.2.42
2024-02-12 06:17:18 +01:00
dependabot[bot] 0ba27ddee6 Bump the pytest group with 2 updates
Bumps the pytest group with 2 updates: [pytest](https://github.com/pytest-dev/pytest) and [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio).


Updates `pytest` from 7.4.4 to 8.0.0
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.4.4...8.0.0)

Updates `pytest-asyncio` from 0.23.4 to 0.23.5
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.23.4...v0.23.5)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: pytest
- dependency-name: pytest-asyncio
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 05:04:43 +00:00
Matthias f19aed5349 Merge pull request #9798 from freqtrade/dependabot/pip/develop/pre-commit-3.6.1
Bump pre-commit from 3.6.0 to 3.6.1
2024-02-12 06:03:30 +01:00
Matthias ca72b494bb Merge pull request #9797 from freqtrade/dependabot/pip/develop/uvicorn-0.27.1
Bump uvicorn from 0.27.0.post1 to 0.27.1
2024-02-12 06:03:06 +01:00
dependabot[bot] 2c1ea2d256 Bump tensorboard from 2.15.1 to 2.15.2
Bumps [tensorboard](https://github.com/tensorflow/tensorboard) from 2.15.1 to 2.15.2.
- [Release notes](https://github.com/tensorflow/tensorboard/releases)
- [Changelog](https://github.com/tensorflow/tensorboard/blob/2.15.2/RELEASE.md)
- [Commits](https://github.com/tensorflow/tensorboard/compare/2.15.1...2.15.2)

---
updated-dependencies:
- dependency-name: tensorboard
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 03:30:19 +00:00
dependabot[bot] 8ca905b45f Bump python-telegram-bot from 20.7 to 20.8
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 20.7 to 20.8.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v20.7...v20.8)

---
updated-dependencies:
- dependency-name: python-telegram-bot
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 03:30:00 +00:00
dependabot[bot] 903ae33679 Bump mkdocs-material from 9.5.8 to 9.5.9
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.8 to 9.5.9.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.8...9.5.9)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 03:29:52 +00:00
dependabot[bot] 7d74a4c193 Bump tqdm from 4.66.1 to 4.66.2
Bumps [tqdm](https://github.com/tqdm/tqdm) from 4.66.1 to 4.66.2.
- [Release notes](https://github.com/tqdm/tqdm/releases)
- [Commits](https://github.com/tqdm/tqdm/compare/v4.66.1...v4.66.2)

---
updated-dependencies:
- dependency-name: tqdm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 03:29:45 +00:00
dependabot[bot] 7e8e36c6be Bump ccxt from 4.2.39 to 4.2.42
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.2.39 to 4.2.42.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.2.39...4.2.42)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 03:29:40 +00:00
dependabot[bot] d5aec91a41 Bump pre-commit from 3.6.0 to 3.6.1
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 3.6.0 to 3.6.1.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v3.6.0...v3.6.1)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 03:29:27 +00:00
dependabot[bot] f10c8f9c3b Bump uvicorn from 0.27.0.post1 to 0.27.1
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.27.0.post1 to 0.27.1.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.27.0.post1...0.27.1)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-12 03:29:17 +00:00
Matthias 3aa2d0c30a Slightly improve memory-usage of kraken-convert 2024-02-10 09:37:59 +01:00
Matthias a83b5abb51 Allow wildcards for pairs filter 2024-02-10 08:48:52 +01:00
Matthias f89147fd44 Allow limiting kraken pairs to --pairs selection 2024-02-10 08:44:16 +01:00
Matthias adf63a45cf Align new-config documentation examples
closes #9790
2024-02-09 21:38:15 +01:00
Matthias 5bb4fe16b1 Merge pull request #9789 from freqtrade/dependabot/pip/develop/nbconvert-7.16.0
Bump nbconvert from 7.14.2 to 7.16.0
2024-02-08 20:35:08 +01:00
Matthias 444d939f88 Merge pull request #9786 from freqtrade/dependabot/pip/develop/mkdocs-material-9.5.8
Bump mkdocs-material from 9.5.7 to 9.5.8
2024-02-08 20:34:58 +01:00
Matthias f6f069511e Merge pull request #9787 from freqtrade/dependabot/pip/develop/ruff-0.2.1
Bump ruff from 0.2.0 to 0.2.1
2024-02-08 20:34:46 +01:00
Matthias 02742f36cd Merge pull request #9788 from freqtrade/dependabot/pip/develop/numpy-1.26.4
Bump numpy from 1.26.3 to 1.26.4
2024-02-08 20:34:34 +01:00
dependabot[bot] ce6b62f865 Bump numpy from 1.26.3 to 1.26.4
Bumps [numpy](https://github.com/numpy/numpy) from 1.26.3 to 1.26.4.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v1.26.3...v1.26.4)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-08 18:26:56 +00:00
Matthias 1d07ae4f3a Merge pull request #9785 from freqtrade/dependabot/pip/develop/ccxt-4.2.39
Bump ccxt from 4.2.35 to 4.2.39
2024-02-08 19:26:09 +01:00
Matthias ba9e8d2bc5 Merge pull request #9783 from freqtrade/dependabot/github_actions/develop/pre-commit/action-3.0.1
Bump pre-commit/action from 3.0.0 to 3.0.1
2024-02-08 19:25:46 +01:00
dependabot[bot] 01a00ad048 Bump nbconvert from 7.14.2 to 7.16.0
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 7.14.2 to 7.16.0.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Changelog](https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jupyter/nbconvert/compare/v7.14.2...v7.16.0)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-08 17:06:26 +00:00
dependabot[bot] 9f449dd347 Bump ruff from 0.2.0 to 0.2.1
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.2.0 to 0.2.1.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.2.0...v0.2.1)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-08 17:06:05 +00:00
dependabot[bot] 68fd7d7ffd Bump mkdocs-material from 9.5.7 to 9.5.8
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.7 to 9.5.8.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.7...9.5.8)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-08 17:05:44 +00:00
dependabot[bot] a0c246fa9a Bump ccxt from 4.2.35 to 4.2.39
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.2.35 to 4.2.39.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.2.35...4.2.39)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-08 17:05:39 +00:00
dependabot[bot] 7223a6c504 Bump pre-commit/action from 3.0.0 to 3.0.1
Bumps [pre-commit/action](https://github.com/pre-commit/action) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/pre-commit/action/releases)
- [Commits](https://github.com/pre-commit/action/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: pre-commit/action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-08 17:04:19 +00:00
Matthias bf1f08cd21 chore: add dependency groups for regular updates,
reschedule to run at 3am UTC (hope this works now ...)
2024-02-08 18:03:52 +01:00
Matthias 3e5a572fc6 Allow int as trade-id parameter
closes #9780
2024-02-08 07:16:56 +01:00
Matthias 386925f06b Merge pull request #9776 from stash86/bt-metrics2
fix strategy-updater docs
2024-02-08 06:44:01 +01:00
Matthias 626c904103 Fix some issues with types 2024-02-07 19:28:06 +01:00
Matthias 2393a9fecf Fix some minor test failures 2024-02-07 19:06:41 +01:00
Matthias 8f9f4b40cd Update model to new sqlalchemy version 2024-02-07 07:25:02 +01:00
Matthias 4700782f60 Merge branch 'develop' into feature_keyval_storage 2024-02-07 07:13:41 +01:00
Stefano Ariestasia 43bab85b85 fix strategy-updater docs 2024-02-07 11:21:32 +09:00
Matthias 9e89567eeb Merge pull request #9704 from ShaneOss/patch-2
fix: logical error in the conditional checks for model classes
2024-02-06 19:53:04 +01:00
Matthias d2e9d36dea chore: Update ordering of requirements in setup.py 2024-02-06 18:15:17 +01:00
Matthias e50fac34a5 Bump technical to 1.4.3 2024-02-06 07:03:30 +01:00
Matthias 3fd8b2f1c3 Merge pull request #9774 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2024-02-06 06:20:33 +01:00
xmatthias 8d02504072 chore: update pre-commit hooks 2024-02-06 03:03:17 +00:00
Matthias 4aef5676d7 update tool.ruff configuration to match 2.0 version 2024-02-05 18:10:11 +01:00
Matthias 73e2e034ae Remove unused argument 2024-02-05 18:03:28 +01:00
Matthias b0da978999 Merge pull request #9767 from freqtrade/dependabot/pip/develop/ruff-0.2.0
Bump ruff from 0.1.15 to 0.2.0
2024-02-05 18:03:25 +01:00
Matthias 1eb27c8b87 Merge pull request #9773 from freqtrade/dependabot/pip/develop/pydantic-2.6.1
Bump pydantic from 2.5.3 to 2.6.1
2024-02-05 16:55:01 +01:00
dependabot[bot] b4f030fd55 Bump pydantic from 2.5.3 to 2.6.1
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.5.3 to 2.6.1.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.5.3...v2.6.1)

---
updated-dependencies:
- dependency-name: pydantic
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 14:18:28 +00:00
Matthias e03ea80f79 Merge pull request #9769 from freqtrade/dependabot/pip/develop/orjson-3.9.13
Bump orjson from 3.9.12 to 3.9.13
2024-02-05 15:18:18 +01:00
Matthias d505f98d12 Merge pull request #9768 from freqtrade/dependabot/pip/develop/fastapi-0.109.2
Bump fastapi from 0.109.0 to 0.109.2
2024-02-05 15:17:38 +01:00
dependabot[bot] b9245aef2d Bump orjson from 3.9.12 to 3.9.13
Bumps [orjson](https://github.com/ijl/orjson) from 3.9.12 to 3.9.13.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.9.12...3.9.13)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 08:21:44 +00:00
dependabot[bot] 646aca7a36 Bump fastapi from 0.109.0 to 0.109.2
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.109.0 to 0.109.2.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.109.0...0.109.2)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 08:20:20 +00:00
Matthias 76fbe6ed1f Merge pull request #9770 from freqtrade/dependabot/pip/develop/cryptography-42.0.2
Bump cryptography from 42.0.1 to 42.0.2
2024-02-05 09:19:15 +01:00
Matthias e526311c2c Merge pull request #9771 from freqtrade/dependabot/github_actions/develop/peter-evans/create-pull-request-6
Bump peter-evans/create-pull-request from 5 to 6
2024-02-05 09:18:35 +01:00
dependabot[bot] a675d2b026 Bump cryptography from 42.0.1 to 42.0.2
Bumps [cryptography](https://github.com/pyca/cryptography) from 42.0.1 to 42.0.2.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/42.0.1...42.0.2)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 06:02:59 +00:00
Matthias fcfde31985 Merge pull request #9766 from freqtrade/dependabot/pip/develop/mkdocs-material-9.5.7
Bump mkdocs-material from 9.5.6 to 9.5.7
2024-02-05 07:02:30 +01:00
Matthias 5c672ce487 Merge pull request #9763 from freqtrade/dependabot/pip/develop/aiohttp-3.9.3
Bump aiohttp from 3.9.2 to 3.9.3
2024-02-05 07:02:04 +01:00
Matthias 5ef261d7a7 Merge pull request #9764 from freqtrade/dependabot/pip/develop/ccxt-4.2.35
Bump ccxt from 4.2.25 to 4.2.35
2024-02-05 07:01:43 +01:00
Matthias 36cd3c70e2 Merge pull request #9765 from freqtrade/dependabot/pip/develop/urllib3-2.2.0
Bump urllib3 from 2.1.0 to 2.2.0
2024-02-05 07:01:20 +01:00
Matthias 6c08f0a86b Merge pull request #9761 from freqtrade/dependabot/pip/develop/uvicorn-0.27.0.post1
Bump uvicorn from 0.27.0 to 0.27.0.post1
2024-02-05 07:01:07 +01:00
dependabot[bot] 667a8cc59f Bump peter-evans/create-pull-request from 5 to 6
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 5 to 6.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v5...v6)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 03:59:04 +00:00
dependabot[bot] e773276dde Bump ruff from 0.1.15 to 0.2.0
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.15 to 0.2.0.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.15...v0.2.0)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 03:51:36 +00:00
dependabot[bot] 87e813a3dd Bump mkdocs-material from 9.5.6 to 9.5.7
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.6 to 9.5.7.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.6...9.5.7)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 03:51:20 +00:00
dependabot[bot] 5114be42cd Bump urllib3 from 2.1.0 to 2.2.0
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.1.0...2.2.0)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 03:51:09 +00:00
dependabot[bot] 440382ae69 Bump ccxt from 4.2.25 to 4.2.35
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.2.25 to 4.2.35.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.2.25...4.2.35)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 03:51:00 +00:00
dependabot[bot] ab7364c62d Bump aiohttp from 3.9.2 to 3.9.3
Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.9.2 to 3.9.3.
- [Release notes](https://github.com/aio-libs/aiohttp/releases)
- [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst)
- [Commits](https://github.com/aio-libs/aiohttp/compare/v3.9.2...v3.9.3)

---
updated-dependencies:
- dependency-name: aiohttp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 03:50:36 +00:00
dependabot[bot] 6961182680 Bump uvicorn from 0.27.0 to 0.27.0.post1
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.27.0 to 0.27.0.post1.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.27.0...0.27.0.post1)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 03:50:09 +00:00
Matthias cb2aaa7bbb Fix wording fully. 2024-02-03 15:00:48 +01:00
Matthias 35e1421d59 Reduce whitespace 2024-02-03 13:42:25 +01:00
Matthias 0f9e846587 Update Tests data to work with new cached levtiers 2024-02-03 13:32:53 +01:00
Matthias 2989b42760 Update cached binance leverage tiers 2024-02-03 13:16:32 +01:00
Matthias 3711fa5098 Improve formatting of leverage
closes #9759
2024-02-03 13:14:50 +01:00
Matthias c5948693a3 enable sub-minute backtest detail timeframes
closes #9635
2024-02-03 13:14:46 +01:00
Matthias 8469484998 chore: Split stoploss tests from freqtradebot
stoploss on exchange tests are quiet extensive, and deserve their own test file.
2024-02-02 07:25:53 +01:00
Matthias 57df7d9eca chore: convert test dir to package 2024-02-02 07:23:19 +01:00
Matthias 80f6fbbae9 chore: Move bot-related tests to test subdir 2024-02-02 07:07:58 +01:00
Matthias 0d14b7a800 perf: only create detail timedelta object once for detail backtests 2024-02-02 07:03:44 +01:00
Matthias ad121c19b0 Allow <1m timeframes for utility modes 2024-02-02 06:57:12 +01:00
Matthias 67c3bad977 Fix misspelled comment 2024-02-02 06:43:41 +01:00
Matthias 9bfd34a4f3 Merge pull request #9267 from Axel-CH/feature/update_sl_order_mgt
Update stoploss order management
2024-02-02 06:43:02 +01:00
Matthias f7472ca74c Merge pull request #9750 from freqtrade/feat/order_tags
Add tags per order
2024-02-01 07:11:06 +01:00
Matthias 44bc1b9aa1 Merge pull request #9743 from freqtrade/dependabot/pip/develop/lightgbm-4.3.0
Bump lightgbm from 4.2.0 to 4.3.0
2024-02-01 06:44:02 +01:00
Stefano Ariestasia 008c2feff9 Merge branch 'freqtrade:develop' into bt-metrics 2024-02-01 10:43:11 +09:00
Matthias d3b6256f8a Update extract-branch-name to new syntax using GITHUB_OUTPUT 2024-01-30 21:48:32 +01:00
Matthias 0bc5c876c2 Fix GITHUB_REF variable interpolation in ci.yml 2024-01-30 20:47:48 +01:00
Matthias 13ee90725e Fix syntax error 2024-01-30 20:19:24 +01:00
Matthias 7082a8073c add debugging for GITHUB_REF 2024-01-30 19:42:32 +01:00
Matthias cd484bd483 Update extract-branch-name to new syntax using GITHUB_OUTPUT 2024-01-30 19:40:16 +01:00
Matthias f37c4e5935 Merge pull request #9749 from freqtrade/new_release
New release 2024.1
2024-01-30 18:00:25 +01:00
Matthias d1a96af5e8 Add ft_order_Tag to backtest test 2024-01-30 07:28:36 +01:00
Matthias 6ba8966090 chore: Add minified parameter docstring to to_json method 2024-01-30 07:25:46 +01:00
Matthias 78a1c7247a keep ft_order_tag for backtest responses 2024-01-30 07:25:15 +01:00
Matthias 0fa0f49b75 Add adjustment order tagging in strategy callbacks docs 2024-01-30 07:24:36 +01:00
Matthias 6806fab1b5 Fix migration not triggering 2024-01-30 07:24:36 +01:00
Matthias 79b8496f38 Fix backtesting not setting entry_tag out of position adjustments 2024-01-30 07:24:36 +01:00
Matthias d664e76834 Add some tests 2024-01-30 07:24:36 +01:00
Matthias 398b93beef Fix rpc test 2024-01-30 07:24:36 +01:00
Matthias 2d704a77b5 Improve formatting 2024-01-30 07:24:36 +01:00
Matthias 830a004dfd Move response handling to interface wrappermethod 2024-01-30 07:24:36 +01:00
Matthias 535ff387ff add order_tag handlig to running bot 2024-01-30 07:24:36 +01:00
Matthias 95e51bf816 allow adjust_trade_position to return tuples in backtesting 2024-01-30 07:24:36 +01:00
Matthias e8288a34c9 add ft_order_tag to backtesting 2024-01-30 07:24:36 +01:00
Matthias 39ffee381b Improve type hint 2024-01-30 07:24:36 +01:00
Matthias ccd4c715ca add order-tag to serialize / unserialize methods 2024-01-30 07:24:36 +01:00
Matthias d82bfc9fad Add order_tag to orders model 2024-01-30 07:24:36 +01:00
Matthias c59ae30e31 chore: Add minified parameter docs to to_json method 2024-01-30 07:24:26 +01:00
Matthias cfc6d3b32f Apply "Dependencies" label to pull requests 2024-01-30 07:04:53 +01:00
Matthias e58b7ea8e5 Merge pull request #9747 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2024-01-30 07:03:51 +01:00
Matthias d219983f5b Bump ruff version 2024-01-30 07:03:07 +01:00
Matthias 6c27b27d4f Bump version to 2024.2-dev 2024-01-30 07:03:07 +01:00
Matthias fcedc7de0d Merge pull request #9659 from stash86/bt-metrics2
Add MarketCapPairList based on CoinGecko
2024-01-30 07:00:07 +01:00
Matthias 4342aa3bfd Update version number to 2024.1 2024-01-30 06:46:10 +01:00
Matthias 43188ca447 Merge branch 'stable' into new_release 2024-01-30 06:45:56 +01:00
xmatthias 36d4f10a60 chore: update pre-commit hooks 2024-01-30 03:03:17 +00:00
Matthias 470a239e82 Formatting ... 2024-01-29 20:10:50 +01:00
Matthias 01baea8aab Test exceptions / errors 2024-01-29 20:08:25 +01:00
Matthias 4a580fc72f Add test validating cache 2024-01-29 20:01:21 +01:00
Matthias d691ffe9db Test more diff. scenario 2024-01-29 19:47:08 +01:00
Matthias eb7fbb0096 Improve doc wording 2024-01-29 19:39:02 +01:00
Stefano Ariestasia 63aac1a2c9 update docs 2024-01-29 19:50:19 +09:00
Matthias c35b9f8a3a Merge pull request #9742 from freqtrade/dependabot/pip/develop/aiohttp-3.9.2
Bump aiohttp from 3.9.1 to 3.9.2
2024-01-29 10:00:30 +01:00
Stefano 17af69435f remove mode, add max_rank, modify test 2024-01-29 17:57:14 +09:00
dependabot[bot] 7af524ff90 Bump aiohttp from 3.9.1 to 3.9.2
Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.9.1 to 3.9.2.
- [Release notes](https://github.com/aio-libs/aiohttp/releases)
- [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst)
- [Commits](https://github.com/aio-libs/aiohttp/compare/v3.9.1...v3.9.2)

---
updated-dependencies:
- dependency-name: aiohttp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 07:54:56 +00:00
Matthias 02a7f6398d Merge pull request #9739 from freqtrade/dependabot/pip/develop/types-requests-2.31.0.20240125
Bump types-requests from 2.31.0.20240106 to 2.31.0.20240125
2024-01-29 08:53:15 +01:00
Matthias 18723d2b6d Merge pull request #9745 from freqtrade/dependabot/github_actions/develop/peter-evans/dockerhub-description-4
Bump peter-evans/dockerhub-description from 3 to 4
2024-01-29 08:52:59 +01:00
Matthias 608a408c75 Merge pull request #9741 from freqtrade/dependabot/pip/develop/cryptography-42.0.1
Bump cryptography from 41.0.7 to 42.0.1
2024-01-29 08:52:08 +01:00
Matthias e5d75c4454 Merge pull request #9744 from freqtrade/dependabot/pip/develop/mkdocs-material-9.5.6
Bump mkdocs-material from 9.5.4 to 9.5.6
2024-01-29 07:13:09 +01:00
dependabot[bot] effe2b5367 Bump cryptography from 41.0.7 to 42.0.1
Bumps [cryptography](https://github.com/pyca/cryptography) from 41.0.7 to 42.0.1.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/41.0.7...42.0.1)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 05:31:22 +00:00
Matthias 2f37385eb4 Merge pull request #9736 from freqtrade/dependabot/pip/develop/ccxt-4.2.25
Bump ccxt from 4.2.21 to 4.2.25
2024-01-29 06:29:06 +01:00
Matthias 0fa7f9e47f Bump types-requests pre-commit 2024-01-29 06:28:31 +01:00
Matthias 81c8e6b943 Merge pull request #9740 from freqtrade/dependabot/pip/develop/uvicorn-0.27.0
Bump uvicorn from 0.26.0 to 0.27.0
2024-01-29 06:27:27 +01:00
Matthias b3843f0d53 Merge pull request #9737 from freqtrade/dependabot/pip/develop/pytest-asyncio-0.23.4
Bump pytest-asyncio from 0.21.1 to 0.23.4
2024-01-29 06:26:54 +01:00
dependabot[bot] 84913f2ea8 Bump peter-evans/dockerhub-description from 3 to 4
Bumps [peter-evans/dockerhub-description](https://github.com/peter-evans/dockerhub-description) from 3 to 4.
- [Release notes](https://github.com/peter-evans/dockerhub-description/releases)
- [Commits](https://github.com/peter-evans/dockerhub-description/compare/v3...v4)

---
updated-dependencies:
- dependency-name: peter-evans/dockerhub-description
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 03:33:46 +00:00
dependabot[bot] 1450d9e9cd Bump mkdocs-material from 9.5.4 to 9.5.6
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.4 to 9.5.6.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.4...9.5.6)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 03:28:12 +00:00
dependabot[bot] b02e15b162 Bump lightgbm from 4.2.0 to 4.3.0
Bumps [lightgbm](https://github.com/microsoft/LightGBM) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/microsoft/LightGBM/releases)
- [Commits](https://github.com/microsoft/LightGBM/compare/v4.2.0...v4.3.0)

---
updated-dependencies:
- dependency-name: lightgbm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 03:27:55 +00:00
dependabot[bot] 4394fd1346 Bump uvicorn from 0.26.0 to 0.27.0
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.26.0 to 0.27.0.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.26.0...0.27.0)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 03:27:28 +00:00
dependabot[bot] 3a6393e2d1 Bump types-requests from 2.31.0.20240106 to 2.31.0.20240125
Bumps [types-requests](https://github.com/python/typeshed) from 2.31.0.20240106 to 2.31.0.20240125.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 03:27:24 +00:00
dependabot[bot] 990f9e03f8 Bump pytest-asyncio from 0.21.1 to 0.23.4
Bumps [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) from 0.21.1 to 0.23.4.
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.21.1...v0.23.4)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 03:27:15 +00:00
dependabot[bot] 0b549fc7f8 Bump ccxt from 4.2.21 to 4.2.25
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.2.21 to 4.2.25.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.2.21...4.2.25)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 03:27:12 +00:00
Matthias 23ac9e145a Fix generator test 2024-01-27 16:25:00 +01:00
Matthias 63d8239011 Merge branch 'develop' into bt-metrics2 2024-01-27 16:24:05 +01:00
Matthias 5890665931 Add BTC/USDT to test markets 2024-01-27 16:23:47 +01:00
Matthias b72078e76e use get_pair_base_currency 2024-01-27 16:07:55 +01:00
Matthias 076ca75200 Slightly refactor pairlist test 2024-01-27 14:52:05 +01:00
Matthias 132e143b9a Minor comment fix 2024-01-27 14:49:50 +01:00
Matthias e03e0e838b Merge pull request #9733 from Bloodhunter4rc/remotepairlist
Remotepairlist: fix parsing json exception , add saving to a file of processed pairlist + docs
2024-01-27 12:09:37 +01:00
Stefano f8dc161ab4 add 2 more final tests 2024-01-27 19:33:12 +09:00
Stefano e0f7b62b54 fix initial tests 2024-01-27 19:12:50 +09:00
Stefano Ariestasia c854cef313 fix precommit 2024-01-27 18:12:19 +09:00
Stefano Ariestasia 006639820b add simple test 2024-01-27 18:10:10 +09:00
Stefano Ariestasia bf17236e9b fix typo in the docs 2024-01-27 16:25:54 +09:00
Bloodhunter4rc 99b11c088b add available_parameters 2024-01-27 08:20:20 +01:00
Matthias f42fd25800 Improve function naming better reflecting what it aims to do 2024-01-27 08:15:05 +01:00
Matthias a20fe8cd09 Update docs example box 2024-01-27 08:14:48 +01:00
Bloodhunter4rc c398504f23 fix tests 2024-01-26 20:55:24 +01:00
Bloodhunter4rc dd3fbfcfda + return type 2024-01-26 18:56:47 +01:00
Bloodhunter4rc f0562c391c remove debug, reduce duplicate code -> init_check, add docs example for save_to_file 2024-01-26 18:32:46 +01:00
Bloodhunter4rc 027ce4337d refresh_period not necessary for a local file 2024-01-26 17:08:38 +01:00
Bloodhunter4rc fd21658523 extend error except, add saving to a file of processed pairlist + docs 2024-01-26 16:46:54 +01:00
Matthias 523864601a Merge pull request #9730 from freqtrade/frog-mistakes-docs-1
Improve common mistakes docs
2024-01-25 17:26:53 +01:00
Robert Davey 8f0dbc6be1 Improve common mistakes docs
Add more details to the common mistakes section of the strategy customisation docs.
2024-01-25 16:11:21 +00:00
Matthias 8d72ee358c Improve code styles ... 2024-01-24 20:31:38 +01:00
Matthias 0077f3c9a5 Code style improvements 2024-01-24 20:25:25 +01:00
Matthias 6aa4de4d29 Tests for enhanced list-data functionality 2024-01-24 20:17:39 +01:00
Matthias 817aaa164c Enhance list-data (detailed) view with "candles" column 2024-01-24 20:13:06 +01:00
Matthias ea9c51570f use resample_freq where possible 2024-01-24 19:19:16 +01:00
Matthias 2fe6fe14aa Simplify volumepairlist footprint slightly 2024-01-24 18:27:41 +01:00
Matthias 85dd371ee3 use prepared timedelta object for backtesting 2024-01-24 17:57:18 +01:00
Matthias 0fc3c675b6 Merge pull request #9726 from freqtrade/dependabot/pip/develop/ccxt-4.2.21
Bump ccxt from 4.2.15 to 4.2.21
2024-01-24 06:34:02 +01:00
dependabot[bot] 55fe379e13 Bump ccxt from 4.2.15 to 4.2.21
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.2.15 to 4.2.21.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.2.15...4.2.21)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-23 19:17:31 +00:00
Matthias 96a8263c57 trades_to_ohlcv_multi test adjustment 2024-01-23 19:31:40 +01:00
Matthias 79ecca3e40 Add test for trades-conversation on different dates 2024-01-23 19:24:41 +01:00
Matthias 267f2e352e Add trades-generator 2024-01-23 19:24:41 +01:00
Matthias 1ae3b1e622 Fix weekly resamples to ensure they're on monday. 2024-01-23 19:21:06 +01:00
Matthias 34ac2dc9ae Further improve ohlcv test 2024-01-23 19:12:35 +01:00
Matthias c15f811602 Merge pull request #9708 from PabloRuizCuevas/develop
shorten configuration code
2024-01-23 08:14:46 +01:00
Matthias efe332a395 Fix wrong test comment 2024-01-23 07:25:30 +01:00
Matthias 8fd2dcd257 Impove tests for yearly resample 2024-01-23 07:22:38 +01:00
Matthias 48ea43f954 Fix yearly resample timeframe 2024-01-23 07:22:18 +01:00
Matthias 6b78dac6f0 Re-align naming for resample_freq generator 2024-01-23 07:12:27 +01:00
Matthias 0a40a345fe use timeframe_as_resample_freq for trade_parallel analysis 2024-01-23 07:11:59 +01:00
Matthias 656b32814b Have trade_converter use timeframe_as_resample_freq 2024-01-23 07:10:25 +01:00
Matthias c9c44a4710 Extract resample_interval generation 2024-01-23 07:02:09 +01:00
Matthias 5167f6936d Prepare converter to work on 1s data. 2024-01-23 06:42:12 +01:00
Matthias fdf88a8019 Improve test showing that 1m and 1s conversion is identical. 2024-01-23 06:42:12 +01:00
Matthias 087c59cfbf Fix data generation bug with 3m data 2024-01-23 06:42:12 +01:00
Matthias 83480d90f1 Extend test range to more timeframes 2024-01-23 06:42:12 +01:00
Matthias 67abfcf4d4 Add generic ohlcv_to_dataframe_multi test to ensure code works for diff. timeframe ranges 2024-01-23 06:42:12 +01:00
Matthias 00e4c51741 Prep conftest for 1s data generation 2024-01-23 06:42:12 +01:00
Matthias a1b93dc915 Improve call sequence 2024-01-23 06:42:12 +01:00
Matthias 40011eb9a3 Merge pull request #9725 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2024-01-23 06:38:57 +01:00
xmatthias f1d002a735 chore: update pre-commit hooks 2024-01-23 03:03:27 +00:00
Pablo 991a279b23 Removed duplicated key
The key was already duplicated in the original version
2024-01-22 22:48:45 +01:00
Matthias 5b879df2b0 Improve indentation 2024-01-22 20:16:08 +01:00
Pablo d191138009 restored accidentally deleted lines 2024-01-22 16:26:47 +01:00
Matthias a8ee0cc4c8 Merge pull request #9716 from freqtrade/dependabot/pip/develop/pyarrow-15.0.0
Bump pyarrow from 14.0.2 to 15.0.0
2024-01-22 15:45:34 +01:00
Matthias 85658bb637 Update rpi wheels for pyarrow 15.0.0 2024-01-22 13:46:50 +01:00
Matthias b4fb133702 Merge pull request #9706 from freqtrade/fix/kraken_datadl
improve data-download when using `--dl-trades`
2024-01-22 10:14:12 +01:00
Matthias b7537b6ade Merge pull request #9721 from freqtrade/dependabot/pip/develop/scipy-1.12.0
Bump scipy from 1.11.4 to 1.12.0
2024-01-22 10:13:48 +01:00
Matthias 633992da52 Merge pull request #9722 from freqtrade/dependabot/pip/develop/psutil-5.9.8
Bump psutil from 5.9.7 to 5.9.8
2024-01-22 09:48:30 +01:00
Matthias 0be5ca7503 Merge pull request #9724 from freqtrade/dependabot/github_actions/develop/actions/cache-4
Bump actions/cache from 3 to 4
2024-01-22 08:37:28 +01:00
Matthias e310e4abbb Merge pull request #9720 from freqtrade/dependabot/pip/develop/ruff-0.1.14
Bump ruff from 0.1.13 to 0.1.14
2024-01-22 08:19:05 +01:00
Matthias 1b132ee21d Merge pull request #9719 from freqtrade/dependabot/pip/develop/nbconvert-7.14.2
Bump nbconvert from 7.14.1 to 7.14.2
2024-01-22 08:17:09 +01:00
Matthias 7f0b6250d0 Merge pull request #9723 from freqtrade/dependabot/pip/develop/mkdocs-material-9.5.4
Bump mkdocs-material from 9.5.3 to 9.5.4
2024-01-22 08:16:56 +01:00
dependabot[bot] 3b5c2ea0d7 Bump scipy from 1.11.4 to 1.12.0
Bumps [scipy](https://github.com/scipy/scipy) from 1.11.4 to 1.12.0.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.11.4...v1.12.0)

---
updated-dependencies:
- dependency-name: scipy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 06:00:57 +00:00
Matthias c6f4c82f44 Merge pull request #9718 from freqtrade/dependabot/pip/develop/pytest-random-order-1.1.1
Bump pytest-random-order from 1.1.0 to 1.1.1
2024-01-22 07:00:44 +01:00
Matthias 5bc0dcfb22 Merge pull request #9715 from freqtrade/dependabot/pip/develop/scikit-learn-1.4.0
Bump scikit-learn from 1.3.2 to 1.4.0
2024-01-22 06:59:30 +01:00
dependabot[bot] 06630a5991 Bump psutil from 5.9.7 to 5.9.8
Bumps [psutil](https://github.com/giampaolo/psutil) from 5.9.7 to 5.9.8.
- [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst)
- [Commits](https://github.com/giampaolo/psutil/compare/release-5.9.7...release-5.9.8)

---
updated-dependencies:
- dependency-name: psutil
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 05:51:17 +00:00
Matthias 5f97374752 Merge pull request #9713 from freqtrade/dependabot/pip/develop/uvicorn-0.26.0
Bump uvicorn from 0.25.0 to 0.26.0
2024-01-22 06:50:34 +01:00
Matthias 3dd29437d5 Merge pull request #9714 from freqtrade/dependabot/pip/develop/orjson-3.9.12
Bump orjson from 3.9.10 to 3.9.12
2024-01-22 06:50:22 +01:00
Matthias 4e18c35727 Merge pull request #9717 from freqtrade/dependabot/pip/develop/jsonschema-4.21.1
Bump jsonschema from 4.20.0 to 4.21.1
2024-01-22 06:50:08 +01:00
dependabot[bot] 0f1e7ed652 Bump actions/cache from 3 to 4
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 03:56:13 +00:00
dependabot[bot] fbb91ca331 Bump mkdocs-material from 9.5.3 to 9.5.4
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.3 to 9.5.4.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.3...9.5.4)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 03:31:08 +00:00
dependabot[bot] 713d9fdc8f Bump ruff from 0.1.13 to 0.1.14
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.13 to 0.1.14.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.13...v0.1.14)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 03:30:38 +00:00
dependabot[bot] 3681e3e754 Bump nbconvert from 7.14.1 to 7.14.2
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 7.14.1 to 7.14.2.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Changelog](https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jupyter/nbconvert/compare/v7.14.1...v7.14.2)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 03:30:22 +00:00
dependabot[bot] 32d77f808e Bump pytest-random-order from 1.1.0 to 1.1.1
Bumps [pytest-random-order](https://github.com/jbasko/pytest-random-order) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/jbasko/pytest-random-order/releases)
- [Commits](https://github.com/jbasko/pytest-random-order/compare/v1.1.0...v1.1.1)

---
updated-dependencies:
- dependency-name: pytest-random-order
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 03:30:17 +00:00
dependabot[bot] d58b941bf1 Bump jsonschema from 4.20.0 to 4.21.1
Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.20.0 to 4.21.1.
- [Release notes](https://github.com/python-jsonschema/jsonschema/releases)
- [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.20.0...v4.21.1)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 03:30:09 +00:00
dependabot[bot] 34df710265 Bump pyarrow from 14.0.2 to 15.0.0
Bumps [pyarrow](https://github.com/apache/arrow) from 14.0.2 to 15.0.0.
- [Commits](https://github.com/apache/arrow/compare/go/v14.0.2...go/v15.0.0)

---
updated-dependencies:
- dependency-name: pyarrow
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 03:30:02 +00:00
dependabot[bot] f324f8775f Bump scikit-learn from 1.3.2 to 1.4.0
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 1.3.2 to 1.4.0.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.3.2...1.4.0)

---
updated-dependencies:
- dependency-name: scikit-learn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 03:29:56 +00:00
dependabot[bot] 00f8f05268 Bump orjson from 3.9.10 to 3.9.12
Bumps [orjson](https://github.com/ijl/orjson) from 3.9.10 to 3.9.12.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.9.10...3.9.12)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 03:29:47 +00:00
dependabot[bot] 3d5620a422 Bump uvicorn from 0.25.0 to 0.26.0
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.25.0 to 0.26.0.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.25.0...0.26.0)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 03:29:32 +00:00
Pablo e704c2def4 shorten configuration code 2024-01-21 19:56:00 +01:00
Matthias d534f2014a Account for kraken specialcase in tests 2024-01-21 16:58:58 +01:00
Matthias 612ec38e57 Don't skip trades if the exchange doesn't do inclusive filtering 2024-01-21 16:50:49 +01:00
Matthias ac5b12cfd2 Improve kraken pagination behavior 2024-01-21 15:55:34 +01:00
Matthias f9b6830b78 update fetch_trades info data to kraken response format 2024-01-21 15:52:54 +01:00
Matthias 8a64f0b884 Fix fetch_trades tests 2024-01-21 15:37:39 +01:00
Matthias 15da4aa9bd Update tests for added fetch_trades arg 2024-01-21 15:25:11 +01:00
Matthias c167575098 Move extracting trade pagination id to fetch_trades 2024-01-21 15:22:03 +01:00
Matthias b56c663bea Add regular / fallback test. 2024-01-21 14:13:05 +01:00
Matthias 501a9a8c98 Improve error message, add test for trade_pagination_id validation 2024-01-21 14:11:59 +01:00
Matthias c333c9c5a1 Improve kraken trades pagination logic 2024-01-21 14:08:35 +01:00
Matthias 11dd349c2b Update ccxt online test name to htx 2024-01-21 13:57:26 +01:00
Matthias d355f011df Invert exchange_class mapping 2024-01-21 13:57:26 +01:00
Matthias ef80772fc3 Rename class and tests 2024-01-21 13:57:26 +01:00
Matthias ff95adb2eb Update supported exchanges, add mapping 2024-01-21 13:57:26 +01:00
Matthias 5b1cda9236 Update Huboi brandin to htx 2024-01-21 13:57:26 +01:00
Stefano Ariestasia 60812983e3 fix error 2024-01-21 13:33:38 +09:00
Stefano Ariestasia bbec51685d remove can_filter, and use log_once 2024-01-21 13:28:50 +09:00
Matthias 32a4aa0ca8 Merge pull request #9703 from freqtrade/feat/allow-custom-feature-plot
feat: allow custom user features to be plotted in backtesting (freqai)
2024-01-20 18:08:19 +01:00
Shane ad0f88796b fix: logical error
Fix logical error in the conditional checks for model classes. The `elif` statement that looks for "lightgbm.sklearn" or "xgb" in the model class string is now broken into two separate conditions because the old condition would always evaluate to `True` due to the non-empty string "xgb".
2024-01-20 10:42:37 +11:00
Matthias e76888882d Fix typehint 2024-01-19 18:59:52 +01:00
Matthias 3ab226a096 Remove unused import 2024-01-19 18:24:03 +01:00
Matthias 58058f0197 Fix migration test 2024-01-19 18:20:23 +01:00
Matthias 6eaf42fe33 Default order_date to dt_now if it's not set via ccxt and wasn't previously set. 2024-01-19 18:17:53 +01:00
Matthias 88ba82d4fd Fix more tests 2024-01-19 18:17:31 +01:00
Matthias acbea4e26f Fix some tests after update_stoploss_date removal 2024-01-19 18:16:36 +01:00
robcaulk 50864c731b chore: improve documentation for plotting custom features 2024-01-19 17:55:16 +01:00
robcaulk 5bfda534b2 feat: allow custom user features to be plotted in backtesting (freqai) 2024-01-19 17:46:34 +01:00
Matthias b9a43b8e24 Don't store 'stoploss_last_updated' explicitly
it can easily be derived from the very last stoploss order.
2024-01-19 07:12:49 +01:00
Matthias 59b3486574 Update migrations 2024-01-19 06:49:49 +01:00
Matthias 9f3c6f2dcc Fix some tests and comments 2024-01-19 06:48:32 +01:00
Matthias 22a08c7c8d Merge pull request #9549 from freqtrade/freqai/fixdownloaddata
Only download tradable pairs
2024-01-18 18:12:25 +01:00
Matthias 73b30cf3fa Update ta-lib documentation links
closes #9697
2024-01-18 06:09:34 +01:00
Matthias 6ce1123136 Merge pull request #9695 from freqtrade/kraken/stop
kraken stoploss behavior
2024-01-17 20:21:05 +01:00
Matthias 8cbdcbd50d Bump ccxt min version 2024-01-17 19:47:16 +01:00
Matthias 42ea4821f4 Bump kraken to 4.2.15 2024-01-17 19:46:50 +01:00
Matthias b7ab7dd25e Update tests for new kraken stoploss behavior 2024-01-17 19:44:18 +01:00
Matthias c2d6ab2fa5 Add unified kraken stoploss settings 2024-01-17 19:44:09 +01:00
Matthias 6069670ce2 Remove kraken custom stoploss handling 2024-01-17 19:43:53 +01:00
Matthias c248bb27e9 use safe_price for adjust_entry_price callback
closes #9692
2024-01-16 20:15:35 +01:00
Matthias f3fd1f010c Merge pull request #9691 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2024-01-16 06:21:06 +01:00
xmatthias a4d078efd1 chore: update pre-commit hooks 2024-01-16 03:03:46 +00:00
Matthias cfdf21942d Merge pull request #9681 from freqtrade/frog-hyperdocs-1
Add backtesting vs hyperopt result difference explanations
2024-01-15 17:59:33 +01:00
Robert Davey e18fbbd972 Clarify points as per comments 2024-01-15 11:43:47 +00:00
Matthias 78ca939ae6 pin prompt-toolkit to compatible version in jupyter dockerfile
closes #9683
2024-01-15 07:22:23 +01:00
Matthias eccc1498af Merge pull request #9685 from freqtrade/dependabot/pip/develop/ruff-0.1.13
Bump ruff from 0.1.11 to 0.1.13
2024-01-15 06:57:30 +01:00
Matthias 0a6a0a8b88 Merge pull request #9688 from freqtrade/dependabot/pip/develop/ccxt-4.2.14
Bump ccxt from 4.2.9 to 4.2.14
2024-01-15 06:57:01 +01:00
Matthias 6cfc2b2bdf Merge pull request #9687 from freqtrade/dependabot/pip/develop/markdown-3.5.2
Bump markdown from 3.5.1 to 3.5.2
2024-01-15 06:55:22 +01:00
Matthias 2d5f3c150b Merge pull request #9686 from freqtrade/dependabot/pip/develop/nbconvert-7.14.1
Bump nbconvert from 7.14.0 to 7.14.1
2024-01-15 06:55:10 +01:00
Matthias 3ccb612cd9 Merge pull request #9684 from freqtrade/dependabot/pip/develop/fastapi-0.109.0
Bump fastapi from 0.108.0 to 0.109.0
2024-01-15 06:54:54 +01:00
dependabot[bot] dc5c1e1300 Bump ccxt from 4.2.9 to 4.2.14
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.2.9 to 4.2.14.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.2.9...4.2.14)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-15 03:06:34 +00:00
dependabot[bot] 91ceb5c19a Bump markdown from 3.5.1 to 3.5.2
Bumps [markdown](https://github.com/Python-Markdown/markdown) from 3.5.1 to 3.5.2.
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Changelog](https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.5.1...3.5.2)

---
updated-dependencies:
- dependency-name: markdown
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-15 03:06:17 +00:00
dependabot[bot] d073692cae Bump nbconvert from 7.14.0 to 7.14.1
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 7.14.0 to 7.14.1.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Changelog](https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jupyter/nbconvert/compare/v7.14.0...v7.14.1)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-15 03:06:07 +00:00
dependabot[bot] e1b8742b1f Bump ruff from 0.1.11 to 0.1.13
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.11 to 0.1.13.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.11...v0.1.13)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-15 03:05:54 +00:00
dependabot[bot] d866bb6f01 Bump fastapi from 0.108.0 to 0.109.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.108.0 to 0.109.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.108.0...0.109.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-15 03:05:41 +00:00
Robert Davey 2737de1fdd Remove extra EOF newline 2024-01-14 22:20:41 +00:00
Robert Davey a41b72ca19 Add backtesting vs hyperopt result difference explanations
- Add more detailed explanations as to why backtest results may not match hyperopt results.
- Remove small informal grammar issue from main docs.
2024-01-14 22:16:41 +00:00
Matthias ea1b3c38f8 remove last utcnow usage 2024-01-14 20:00:30 +01:00
Matthias 31fb06fa80 Merge pull request #9680 from freqtrade/ci_py12
Ci py12
2024-01-14 19:26:22 +01:00
Matthias 291478a974 Bump docker images to 3.11.7 2024-01-14 18:07:04 +01:00
Matthias 29d2fc2e1b Skip freqAI tests on py3.12 2024-01-14 18:02:36 +01:00
Matthias 59cc607761 Don't force-patch torch if it ain't installed. 2024-01-14 16:08:18 +01:00
Matthias c79502cb4b Pin torch to <3.12 2024-01-14 16:08:18 +01:00
Matthias f124f2daaf Exclude further dependencies 2024-01-14 16:08:18 +01:00
Matthias 026f989625 Don't install catboost on 3.12 for now 2024-01-14 16:08:18 +01:00
Matthias 9a2ed35030 Run CI against 3.12 2024-01-14 16:08:18 +01:00
Matthias d412a8fc1a Simplify emc test setup 2024-01-14 16:06:42 +01:00
Matthias fbed3fad78 Fix non-asserting test 2024-01-14 15:18:42 +01:00
Matthias 393df83a91 Implement enter_tag initialization to avoid futures warning 2024-01-14 14:33:47 +01:00
Matthias e967dfa145 Adjust api test after column expansion 2024-01-14 13:58:06 +01:00
Matthias 4aab57ce62 Add test for pandas deprecation warning 2024-01-14 13:56:05 +01:00
Matthias 5841c65430 Remove unused test param 2024-01-14 13:51:26 +01:00
Matthias 338ff66268 Only load environment variables when config is allowed 2024-01-13 17:09:02 +01:00
Matthias 629a6be269 Rename methods to make exposure explicit 2024-01-13 16:53:31 +01:00
Matthias 4896e04c41 Improve formatting 2024-01-13 16:46:22 +01:00
Matthias a53adb95e1 Remove container-name from ft-jupyter compose file
closes #9678
2024-01-13 16:38:12 +01:00
Matthias ab82f5cc69 Merge pull request #9677 from Bloodhunter4rc/patch-4
Update link
2024-01-13 13:34:19 +01:00
Bloodhunter4rc 6fc1884e8e Update link
due to dns failure on old page, site been migrated to strat.ninja
2024-01-13 10:40:34 +01:00
Matthias cd392fbbdf Slightly update formatting in arguments 2024-01-13 08:18:30 +01:00
Matthias 893e2cbbc1 Merge pull request #9669 from freqtrade/dependabot/pip/jinja2-3.1.3
Bump jinja2 from 3.1.2 to 3.1.3
2024-01-12 06:24:28 +01:00
dependabot[bot] bcebb4d804 Bump jinja2 from 3.1.2 to 3.1.3
Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.2 to 3.1.3.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.1.2...3.1.3)

---
updated-dependencies:
- dependency-name: jinja2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-11 19:45:56 +00:00
Matthias cd81897c84 Merge pull request #9665 from freqtrade/no-db-context
Add No db context to protect certain functions that run in a backtest-like mode
2024-01-11 06:53:51 +01:00
Matthias cb9fa734d1 Improve test resiliance 2024-01-10 20:36:10 +01:00
Matthias 3f27c2792a Remove trailing newline 2024-01-10 20:12:57 +01:00
Matthias 883f508544 Add NoDBContext to pairlist evaluation functions 2024-01-10 20:09:47 +01:00
Matthias 3caf964c46 Add NoDbContext context manager 2024-01-10 20:01:56 +01:00
Matthias 7fcbe9788d Extract database cleanup functions to persistence package 2024-01-10 19:53:06 +01:00
Stefano de91261f73 fix pre-commit 2024-01-09 15:03:10 +09:00
Matthias 225c94c0f5 Reduce log level in rpc default handler
This avoids additional "NoneType: None" lines when RPC triggers
exceptions
2024-01-09 06:39:11 +01:00
Stefano Ariestasia e8fcac491a use number_assets instead of limit 2024-01-09 14:32:27 +09:00
Matthias 6a5847a157 Merge pull request #9658 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2024-01-09 06:28:00 +01:00
Stefano Ariestasia 95af462e80 fix pre-commit 2024-01-09 14:21:07 +09:00
Stefano Ariestasia 3b54e1e746 add Try block to catch the failure on using FullTradesFilter on non-dry/live run 2024-01-09 14:17:35 +09:00
Stefano Ariestasia d3506c249d update docs 2024-01-09 14:08:15 +09:00
xmatthias a9287359a3 chore: update pre-commit hooks 2024-01-09 03:03:20 +00:00
Matthias 3741cbf3a9 Merge pull request #9656 from freqtrade/dependabot/pip/develop/sqlalchemy-2.0.25
Bump sqlalchemy from 2.0.23 to 2.0.25
2024-01-08 18:25:53 +01:00
Matthias 962417bdea Update typing to account for correctly typed sqlalchemy responses 2024-01-08 17:55:50 +01:00
Matthias 34c1838566 Bump Sqlalchemy in pre-commit 2024-01-08 17:55:50 +01:00
dependabot[bot] 3b7288edaa Bump sqlalchemy from 2.0.23 to 2.0.25
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 2.0.23 to 2.0.25.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 09:13:08 +00:00
Matthias e28b2f44d3 Merge pull request #9652 from freqtrade/dependabot/pip/develop/types-tabulate-0.9.0.20240106
Bump types-tabulate from 0.9.0.3 to 0.9.0.20240106
2024-01-08 10:12:09 +01:00
Matthias 72c41ec2c5 Bump types-tabulate pre-commit 2024-01-08 09:44:14 +01:00
dependabot[bot] 5be32cd801 Bump types-tabulate from 0.9.0.3 to 0.9.0.20240106
Bumps [types-tabulate](https://github.com/python/typeshed) from 0.9.0.3 to 0.9.0.20240106.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-tabulate
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 08:30:39 +00:00
Matthias 6640c9e3d9 Merge pull request #9655 from freqtrade/dependabot/pip/develop/types-python-dateutil-2.8.19.20240106
Bump types-python-dateutil from 2.8.19.14 to 2.8.19.20240106
2024-01-08 09:28:58 +01:00
Stefano Ariestasia bc8c5e743f rename to PairList 2024-01-08 16:38:30 +09:00
Stefano Ariestasia ef8712f4d9 tidy up 2024-01-08 16:04:30 +09:00
Stefano Ariestasia fdf9cc1b76 tidy up codes 2024-01-08 16:02:31 +09:00
Stefano Ariestasia 442ca86d15 add market check 2024-01-08 15:33:43 +09:00
Stefano Ariestasia d578c910bc remove unused lines 2024-01-08 15:09:42 +09:00
Matthias 37dacdff0d Bump pre-commit dateutil 2024-01-08 06:57:07 +01:00
dependabot[bot] 671ce25a28 Bump types-python-dateutil from 2.8.19.14 to 2.8.19.20240106
Bumps [types-python-dateutil](https://github.com/python/typeshed) from 2.8.19.14 to 2.8.19.20240106.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-python-dateutil
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 05:56:48 +00:00
Matthias dbc74f0d5e Merge pull request #9650 from freqtrade/dependabot/pip/develop/types-requests-2.31.0.20240106
Bump types-requests from 2.31.0.20231231 to 2.31.0.20240106
2024-01-08 06:56:05 +01:00
Matthias f33e89e164 Merge pull request #9651 from freqtrade/dependabot/pip/develop/numpy-1.26.3
Bump numpy from 1.26.2 to 1.26.3
2024-01-08 06:39:36 +01:00
Matthias 4b320b0f2f Merge pull request #9653 from freqtrade/dependabot/pip/develop/ccxt-4.2.9
Bump ccxt from 4.2.2 to 4.2.9
2024-01-08 06:39:08 +01:00
Matthias 7a141abeca Merge pull request #9657 from freqtrade/dependabot/pip/develop/ruff-0.1.11
Bump ruff from 0.1.9 to 0.1.11
2024-01-08 06:37:45 +01:00
Matthias a8228f0eac Bump types-requests pre-commit 2024-01-08 06:35:11 +01:00
Matthias ad079f858d Merge pull request #9654 from freqtrade/dependabot/pip/develop/nbconvert-7.14.0
Bump nbconvert from 7.13.1 to 7.14.0
2024-01-08 06:34:13 +01:00
dependabot[bot] 0b3126a0fe Bump ruff from 0.1.9 to 0.1.11
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.9 to 0.1.11.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.9...v0.1.11)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 03:34:09 +00:00
dependabot[bot] 4686d22020 Bump nbconvert from 7.13.1 to 7.14.0
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 7.13.1 to 7.14.0.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Changelog](https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jupyter/nbconvert/compare/v7.13.1...v7.14.0)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 03:33:30 +00:00
dependabot[bot] 2304f852ff Bump ccxt from 4.2.2 to 4.2.9
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.2.2 to 4.2.9.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.2.2...4.2.9)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 03:33:25 +00:00
dependabot[bot] 68d2d24f2a Bump numpy from 1.26.2 to 1.26.3
Bumps [numpy](https://github.com/numpy/numpy) from 1.26.2 to 1.26.3.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v1.26.2...v1.26.3)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 03:33:12 +00:00
dependabot[bot] 67f608fb5f Bump types-requests from 2.31.0.20231231 to 2.31.0.20240106
Bumps [types-requests](https://github.com/python/typeshed) from 2.31.0.20231231 to 2.31.0.20240106.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 03:33:02 +00:00
Stefano Ariestasia 5bb4824aae add log print to see the time 2024-01-08 00:58:39 +09:00
Stefano Ariestasia f29fcb31e0 debug 2024-01-08 00:54:21 +09:00
Stefano Ariestasia 8055140e66 simplify code 2024-01-08 00:53:37 +09:00
Stefano Ariestasia 96a6c00acc add mode 2024-01-08 00:42:33 +09:00
Stefano Ariestasia 09cb6cb02d remove debug 2024-01-08 00:21:58 +09:00
Stefano Ariestasia 1f0a2ab242 forgot () 2024-01-08 00:21:07 +09:00
Stefano Ariestasia 35467619c4 add logger 2024-01-08 00:20:09 +09:00
Stefano Ariestasia bb684dd613 empty pairlist 2024-01-08 00:16:49 +09:00
Stefano Ariestasia adf07dd3e1 remove cache for noe 2024-01-08 00:16:16 +09:00
Stefano Ariestasia ef528fa69c option B 2024-01-08 00:14:55 +09:00
Stefano Ariestasia e10ab8c543 test gen_pairlist 2024-01-08 00:04:58 +09:00
Stefano Ariestasia a5862dcc4a add log message 2024-01-07 23:33:34 +09:00
Stefano Ariestasia 1cd08c96a1 filter the pairlist 2024-01-07 23:30:11 +09:00
Stefano Ariestasia 2eb3b73a93 cut the list to top x 2024-01-07 23:22:58 +09:00
Matthias 1b70e9b074 Point users to the pair naming docs when download-data yields no pairs. 2024-01-07 15:22:53 +01:00
Stefano Ariestasia 70cc2942d7 wrong arg name 2024-01-07 23:10:18 +09:00
Matthias 7c7ddb3b19 Fix improt sorting 2024-01-07 14:46:41 +01:00
Matthias 69e9ab90df Adjust tests for new messaging scheme 2024-01-07 14:43:16 +01:00
Matthias 28b5552231 Improve entry message 2024-01-07 14:30:27 +01:00
Matthias b27f99dbc3 Add note about removing fiat_display_currency. 2024-01-07 13:51:30 +01:00
Stefano Ariestasia 1e49200596 early stage of marketcapfilter 2024-01-07 20:16:44 +09:00
Matthias 6121c7ed86 Remove pointless condition (freqtradebot only ever exists in dry/live modes). 2024-01-06 18:21:41 +01:00
Matthias 394c260eb2 Update runmode to 'backtest' in some test cases 2024-01-06 18:14:14 +01:00
Matthias 582f51ccdd Add runmode "dry_run" to default configuration 2024-01-06 18:07:40 +01:00
Matthias 74bb1a29b6 Fix indentation 2024-01-06 17:55:03 +01:00
Matthias ddb42879ef Fix type errors 2024-01-06 17:32:56 +01:00
Matthias 53b24ea69b Update webhook documentation 2024-01-06 16:28:45 +01:00
Matthias 80071dd2d8 Adjust tests for improved telegram output 2024-01-06 16:25:49 +01:00
Matthias 545096cc47 feat: improve telegram message formatting 2024-01-06 16:13:27 +01:00
Matthias 9f682b5829 Improve Coin formatter naming 2024-01-06 16:02:47 +01:00
Matthias 209e7033cd Fix tests for newly added field 2024-01-06 15:48:49 +01:00
Matthias 7f69a06819 Use Type-hinting for telegram messages 2024-01-06 15:47:15 +01:00
Matthias 20b2f25067 Add quote currency to entry/exit msgs 2024-01-06 15:47:15 +01:00
Matthias 079330ac64 Merge pull request #9611 from freqtrade/rpc_final_exit_msg
Improve Telegram final exit msg
2024-01-06 15:46:56 +01:00
Matthias 88524db290 Remove leading whitespace 2024-01-06 13:04:49 +01:00
Matthias e1ad87a565 Extract number-formatters from misc 2024-01-06 13:04:49 +01:00
Matthias 65009373ee add round_value incl. tests 2024-01-06 12:42:33 +01:00
Matthias 7f84996c1e Send correct Profit for both exit types 2024-01-06 11:53:14 +01:00
Matthias 90df6bcd54 Remove pointless parenteses 2024-01-06 11:49:40 +01:00
Matthias 3237cad8c8 Fix test naming from sell to exit 2024-01-06 11:32:58 +01:00
Matthias 2a11597ad3 Improve exit message wording 2024-01-06 11:30:45 +01:00
Matthias 59ec3fd860 Always send order-type to exit notifications 2024-01-06 11:29:02 +01:00
Matthias 685fef1ee8 Improve buy message FIAT formatting 2024-01-06 11:22:37 +01:00
Matthias 690a3599d0 Simplify exit msg method further 2024-01-06 11:14:43 +01:00
Matthias e4977d4cbd Don't assign the original message dict for no reason 2024-01-06 10:55:00 +01:00
Matthias 7b78e66e7d Ajust some leverage calls 2024-01-06 10:51:50 +01:00
Matthias 8726d63923 Remove unnecessary calculations for exit msg 2024-01-06 10:50:55 +01:00
Matthias 5e9a929e9e Further simplify msg formatting 2024-01-06 10:50:35 +01:00
Matthias c3ce11c222 Simplify enter_tag call 2024-01-06 10:50:13 +01:00
Matthias 0ab54b88cf Improve leverage formatting 2024-01-06 10:50:13 +01:00
Matthias 934e72656a Simplify exit message fiat handling 2024-01-06 10:50:13 +01:00
Robert Caulk b950128c4d Update freqai-running.md 2024-01-06 09:26:17 +01:00
Matthias c1982ab836 Merge pull request #9638 from freqtrade/fix/funding_rate_timeframe
Fix/funding rate timeframe
2024-01-06 09:25:17 +01:00
Matthias 86a9968bdd Fix bug in exit message formatting 2024-01-05 19:15:21 +01:00
Matthias 2bceb35b79 Circumvent edge-case in exit notifications
if order-amount == remaining amount, it caused a wrong exit msg
2024-01-05 19:10:43 +01:00
Matthias e7eb1c132d Improve startup sequence to avoid certain timing errors
closes #9639
2024-01-05 17:26:25 +01:00
Matthias fdc573f2f7 Add rudimentary test for funding_rate fix 2024-01-04 17:22:34 +01:00
Matthias 02d124b85b Improve naming of funding-rate migration 2024-01-04 17:17:32 +01:00
Matthias 3eade3e8db Move binance_mig test file to utils 2024-01-04 17:09:29 +01:00
Matthias 6cce455835 Test migrate_data wrapper 2024-01-04 17:08:57 +01:00
Matthias f028bdf342 Improve funding fee migration logic 2024-01-04 17:06:15 +01:00
Matthias 983764ad0a Add "migrate funding fee timeframe" logic 2024-01-04 16:44:17 +01:00
Matthias a12f368796 Move binance migration to behind migrations gate 2024-01-04 16:25:40 +01:00
Matthias c9dd99a4b5 Enhance test to properly capture correct downloading of different futures types 2024-01-04 16:03:53 +01:00
Matthias 67d3dca49c Fix funding-fee downloading in the wrong timeframe 2024-01-04 15:52:19 +01:00
Matthias d5d3188b99 Load "correct" timeframes (mark vs. funding fees)... 2024-01-04 15:30:06 +01:00
Matthias 50287ce556 ensure funding_fee_timeframe is always set 2024-01-04 15:29:28 +01:00
Matthias 3c1bbd9610 Improve funding_fee_calc method structure 2024-01-04 15:23:15 +01:00
Matthias ec1b2e1da5 Remove further deprecated metric report 2024-01-04 14:51:21 +01:00
Matthias 73970d27bf Remove deprecated bt-output option 2024-01-04 14:45:42 +01:00
Matthias 0224c50c9e remove sell_reason from msg types 2024-01-04 14:44:00 +01:00
Matthias b0fdf6ac52 Update Tests for removed sell_reason field 2024-01-04 14:42:37 +01:00
Matthias 682b462d82 Remove sell_reason from exit notification fields 2024-01-04 14:37:27 +01:00
Matthias 22307913d8 Reduce caching to 5min to speed up UI refreshes in case of open orders. 2024-01-04 14:22:02 +01:00
Matthias b9786b979a Better test rate-caching logic 2024-01-04 14:13:02 +01:00
Matthias abda629a72 Use time-machine for get_entry_rate test 2024-01-04 14:10:46 +01:00
Matthias a4fca5b1fe Enhance test naming 2024-01-04 14:10:28 +01:00
Matthias 903062d479 Improve if formatting 2024-01-04 14:04:12 +01:00
Matthias b6a71f2d2a __repr__ should use utc datetime... 2024-01-03 17:46:30 +01:00
Matthias dc9c4da95e Improve integration test stability 2024-01-02 19:22:46 +01:00
Matthias 14660f54f8 Remove duplicate call to update_trade_state 2024-01-02 19:22:16 +01:00
Matthias e199083287 Fix test ... 2024-01-02 17:10:33 +01:00
Matthias 206809d2e7 Update emergency sell test 2024-01-02 17:05:21 +01:00
Matthias 128807ff3b Merge remote-tracking branch 'origin/develop' into pr/Axel-CH/9267 2024-01-02 17:04:07 +01:00
Matthias 7a6888dfd3 Split stoploss test into 2 for easier testing 2024-01-02 16:58:58 +01:00
Matthias f3da2c6fd8 Simplify and fix handle_stoploss_on_exchange test 2024-01-02 16:56:56 +01:00
Matthias ce63eb30a2 Remove unused test param 2024-01-02 16:26:43 +01:00
Matthias 501e256c58 Fix further stoploss test 2024-01-02 16:25:42 +01:00
Matthias b50a532284 Merge pull request #9631 from freqtrade/freqai-support
Help direct people to freqai support
2024-01-02 16:19:28 +01:00
Robert Caulk a9380f0d53 Update freqai.md 2024-01-02 12:46:33 +01:00
Robert Caulk 316812f427 Help direct people to freqai support 2024-01-02 12:44:19 +01:00
Matthias 7ba9aa9acd Merge remote-tracking branch 'origin/develop' into pr/Axel-CH/9267 2024-01-02 12:11:44 +01:00
Matthias fa368a9a4a Improve trailing stoploss test with time_machine 2024-01-02 12:11:06 +01:00
Matthias f0073078e9 Fix stop order test 2024-01-02 11:27:42 +01:00
Matthias 9030e1041f Remove USDT from documentation about "supported crypto currencies". 2024-01-02 09:52:48 +01:00
Matthias 2c3cef5dee don't assume 'type' to be present at all times
closes #9629
2024-01-02 09:24:00 +01:00
Matthias e722d81456 Fake order response should contain order_id 2024-01-02 09:24:00 +01:00
Matthias 10dbf47836 Improve exchange_response formatting 2024-01-02 08:53:13 +01:00
Matthias a2160e4503 add exchange_response logging to funding_fee endpoint
help debug #9626
2024-01-01 19:33:21 +01:00
Matthias 842727202f Fix identifier_typos 2024-01-01 17:21:47 +01:00
Matthias 3526ba1a9b Merge pull request #9624 from konradbeck/patch-1
Update config_freqai.example.json
2024-01-01 17:18:53 +01:00
konradbeck c07f2caa4a Update config_freqai.example.json
documentation refers to unique-id, e.g tensorboard --logdir user_data/models/unique-id

and not uniqe-id
2024-01-01 14:23:36 +02:00
Matthias 21e1f3d910 Merge pull request #9617 from freqtrade/dependabot/pip/develop/types-requests-2.31.0.20231231
Bump types-requests from 2.31.0.10 to 2.31.0.20231231
2024-01-01 09:44:58 +01:00
Matthias c2d265e4b7 Merge pull request #9620 from freqtrade/dependabot/pip/develop/pytest-7.4.4
Bump pytest from 7.4.3 to 7.4.4
2024-01-01 09:44:38 +01:00
Matthias f0e82592c3 Bump types-requests pre-commit 2024-01-01 08:47:33 +01:00
dependabot[bot] 501f629c05 Bump pytest from 7.4.3 to 7.4.4
Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.4.3 to 7.4.4.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.4.3...7.4.4)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-01 07:45:26 +00:00
Matthias 687ad05047 Merge pull request #9618 from freqtrade/dependabot/pip/develop/ccxt-4.2.2
Bump ccxt from 4.1.98 to 4.2.2
2024-01-01 08:37:46 +01:00
Matthias 3852757250 Merge pull request #9623 from freqtrade/dependabot/pip/develop/ast-comments-1.2.1
Bump ast-comments from 1.2.0 to 1.2.1
2024-01-01 08:36:31 +01:00
Matthias 256471dacd Merge pull request #9622 from freqtrade/dependabot/pip/develop/fastapi-0.108.0
Bump fastapi from 0.105.0 to 0.108.0
2024-01-01 08:36:17 +01:00
Matthias ead7bd8c2e Merge pull request #9619 from freqtrade/dependabot/pip/develop/pymdown-extensions-10.7
Bump pymdown-extensions from 10.5 to 10.7
2024-01-01 08:34:42 +01:00
dependabot[bot] 80dbb0dd09 Bump ast-comments from 1.2.0 to 1.2.1
Bumps [ast-comments](https://github.com/t3rn0/ast-comments) from 1.2.0 to 1.2.1.
- [Release notes](https://github.com/t3rn0/ast-comments/releases)
- [Commits](https://github.com/t3rn0/ast-comments/compare/1.2.0...1.2.1)

---
updated-dependencies:
- dependency-name: ast-comments
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-01 03:31:18 +00:00
dependabot[bot] 0552df2fe1 Bump fastapi from 0.105.0 to 0.108.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.105.0 to 0.108.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.105.0...0.108.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-01 03:31:14 +00:00
dependabot[bot] e4b843405d Bump pymdown-extensions from 10.5 to 10.7
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.5 to 10.7.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.5...10.7)

---
updated-dependencies:
- dependency-name: pymdown-extensions
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-01 03:30:41 +00:00
dependabot[bot] d2802ad499 Bump ccxt from 4.1.98 to 4.2.2
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.1.98 to 4.2.2.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.1.98...4.2.2)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-01 03:30:35 +00:00
dependabot[bot] a9906f0788 Bump types-requests from 2.31.0.10 to 2.31.0.20231231
Bumps [types-requests](https://github.com/python/typeshed) from 2.31.0.10 to 2.31.0.20231231.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-01 03:30:27 +00:00
Matthias b17c0cd4a2 Add Note about minimal_roi time used
closes #6470
2023-12-31 18:34:09 +01:00
Matthias 0575e222b1 Fix random test failure due to missing backtesting cleanup 2023-12-31 16:15:18 +01:00
Matthias 1c5a699aef Fix typo and missing type def 2023-12-31 15:35:23 +01:00
Matthias 292ef85d96 Add additional, optional arguments to metadata files
closes #9517
2023-12-31 12:07:02 +01:00
Matthias b3c9be1cd0 Refactor get_bt_resutlist to reduce code complexity 2023-12-31 10:15:55 +01:00
Matthias 13e329f176 Align methods 2023-12-31 10:07:31 +01:00
Matthias b9f4a23548 Add documentation for kraken time-in-force 2023-12-31 09:56:35 +01:00
Matthias 9746d38060 Add post-only order test for kraken 2023-12-31 09:54:15 +01:00
Matthias ae68d02038 Simplify test for kraken order creation 2023-12-31 09:53:57 +01:00
Matthias 9896ddf71e Add Kraken TimeInForce support
closes #9497
2023-12-31 09:47:39 +01:00
Matthias 0d4fcad285 Merge pull request #9613 from freqtrade/rpc/fix_telegram_forcebuy
Rpc/fix telegram forcebuy
2023-12-31 08:45:15 +01:00
Matthias 3e7d5bbae8 Merge pull request #9515 from stash86/bt-metrics
In partial exit, do full exit if remaining == 0
2023-12-30 16:39:46 +01:00
Robert Caulk 4d0ee014de Merge pull request #9602 from freqtrade/freqai_small_enhancements
Freqai small enhancements
2023-12-30 13:42:38 +01:00
Robert Caulk ea8edbd23b Merge pull request #9552 from thojou/fix-freqai-populate-features-timerange
Fix duplicated data loading and timerange for populate_features
2023-12-30 13:42:08 +01:00
Matthias f6de7d952a Add "wraps" handler to telegram wrapper 2023-12-30 10:44:02 +01:00
Matthias 3a87522070 Fix odd db caching problem in telegram 2023-12-30 10:42:09 +01:00
Matthias 7ccddb5d58 Fix typo 2023-12-30 10:15:28 +01:00
Matthias e9c04debfb Fix tests due to new exit behavior 2023-12-30 08:58:44 +01:00
Matthias 5c8c53cff8 Merge pull request #9607 from freqtrade/new_release
New release 2023.12
2023-12-30 08:49:40 +01:00
Matthias 79e15591ef Improve condition for last exit
(should only show if we had subprofits taken).
2023-12-30 08:41:28 +01:00
Matthias b62661d8cd Improve final exit message 2023-12-30 08:41:28 +01:00
Matthias e5e3002d45 Simplify exit message 2023-12-30 08:41:28 +01:00
Matthias e664527da6 Align backtest and bot method 2023-12-29 20:02:24 +01:00
Matthias 063b55d41a Fix doc typo 2023-12-29 20:02:24 +01:00
Matthias ce7061c934 Bump version to 2024.1-dev 2023-12-29 18:29:13 +01:00
Matthias 846b7734e1 Bump version to 2023.12 2023-12-29 18:24:18 +01:00
Matthias c72d18270e Merge branch 'stable' into new_release 2023-12-29 18:24:07 +01:00
Matthias 02836368fb add default --dist loadscope arg to pytest options 2023-12-28 11:07:41 +01:00
Matthias d282027858 Bump CI python version to 3.11 2023-12-26 17:49:01 +01:00
Matthias d78a5798e3 Fix further warning message due to old Parallel import 2023-12-25 16:09:42 +01:00
Matthias 16958eaef2 Update sklearn import 2023-12-25 16:04:02 +01:00
Matthias 2c5cca4be6 Reinforcement learning does support 3.11 just fine. 2023-12-25 15:58:33 +01:00
Matthias d329ad28c2 Merge pull request #9590 from freqtrade/enable/xdist
add pytest-xdist to speed up tests
2023-12-25 15:57:06 +01:00
Matthias 2de86af51e Merge pull request #9601 from freqtrade/dependabot/pip/develop/pyarrow-14.0.2
Bump pyarrow from 14.0.1 to 14.0.2
2023-12-25 15:34:20 +01:00
Matthias 97780ee5bf Revert build-online to 3.9 for now 2023-12-25 15:07:06 +01:00
Matthias e162f98cf5 Update pre-built wheels for pyarrow 2023-12-25 15:02:27 +01:00
Matthias c6967b11be Align spelling of "cancelling" 2023-12-25 11:53:50 +01:00
Matthias 1e5d353cf7 use safe_value_fallback when parsing orders
closes #9591
2023-12-25 11:44:14 +01:00
Matthias 17a538b5ba Merge pull request #9596 from freqtrade/dependabot/pip/develop/lightgbm-4.2.0
Bump lightgbm from 4.1.0 to 4.2.0
2023-12-25 11:36:35 +01:00
Matthias fc746214f6 Merge pull request #9600 from freqtrade/dependabot/pip/develop/ccxt-4.1.98
Bump ccxt from 4.1.91 to 4.1.98
2023-12-25 11:32:05 +01:00
dependabot[bot] 58432c1cfa Bump lightgbm from 4.1.0 to 4.2.0
Bumps [lightgbm](https://github.com/microsoft/LightGBM) from 4.1.0 to 4.2.0.
- [Release notes](https://github.com/microsoft/LightGBM/releases)
- [Commits](https://github.com/microsoft/LightGBM/compare/v4.1.0...v4.2.0)

---
updated-dependencies:
- dependency-name: lightgbm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-25 09:08:35 +00:00
Matthias 69119764bf Merge pull request #9594 from freqtrade/dependabot/pip/develop/xgboost-2.0.3
Bump xgboost from 2.0.2 to 2.0.3
2023-12-25 10:07:51 +01:00
Matthias a20e641bcd Merge pull request #9595 from freqtrade/dependabot/pip/develop/pydantic-2.5.3
Bump pydantic from 2.5.2 to 2.5.3
2023-12-25 08:17:04 +01:00
Matthias ad68eff8f4 Merge pull request #9592 from ArturoGamRod/docs/fix-typo
fix typo in stoploss_from_absolute code example doc
2023-12-25 08:16:40 +01:00
Matthias 68552a61bd Merge pull request #9598 from freqtrade/dependabot/pip/develop/mkdocs-material-9.5.3
Bump mkdocs-material from 9.5.2 to 9.5.3
2023-12-25 07:26:35 +01:00
Matthias b7419305d4 Merge pull request #9599 from freqtrade/dependabot/pip/develop/ruff-0.1.9
Bump ruff from 0.1.8 to 0.1.9
2023-12-25 07:16:11 +01:00
dependabot[bot] 8cc2c5010a Bump pydantic from 2.5.2 to 2.5.3
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.5.2 to 2.5.3.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/v2.5.3/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.5.2...v2.5.3)

---
updated-dependencies:
- dependency-name: pydantic
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-25 06:15:46 +00:00
Matthias 872154a6fc Merge pull request #9597 from freqtrade/dependabot/pip/develop/nbconvert-7.13.1
Bump nbconvert from 7.12.0 to 7.13.1
2023-12-25 07:15:07 +01:00
Matthias c8ee8e82f9 Merge pull request #9593 from freqtrade/dependabot/pip/develop/uvicorn-0.25.0
Bump uvicorn from 0.24.0.post1 to 0.25.0
2023-12-25 07:14:37 +01:00
dependabot[bot] 5cbcf72501 Bump pyarrow from 14.0.1 to 14.0.2
Bumps [pyarrow](https://github.com/apache/arrow) from 14.0.1 to 14.0.2.
- [Commits](https://github.com/apache/arrow/compare/go/v14.0.1...go/v14.0.2)

---
updated-dependencies:
- dependency-name: pyarrow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-25 03:43:48 +00:00
dependabot[bot] 35876cf8ee Bump ccxt from 4.1.91 to 4.1.98
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.1.91 to 4.1.98.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.1.91...4.1.98)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-25 03:43:41 +00:00
dependabot[bot] ac60871ff9 Bump ruff from 0.1.8 to 0.1.9
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.8 to 0.1.9.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.8...v0.1.9)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-25 03:43:34 +00:00
dependabot[bot] 866e34a983 Bump mkdocs-material from 9.5.2 to 9.5.3
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.2 to 9.5.3.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.2...9.5.3)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-25 03:43:17 +00:00
dependabot[bot] 7107971820 Bump nbconvert from 7.12.0 to 7.13.1
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 7.12.0 to 7.13.1.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Changelog](https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jupyter/nbconvert/compare/v7.12.0...v7.13.1)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-25 03:43:07 +00:00
dependabot[bot] 3484590640 Bump xgboost from 2.0.2 to 2.0.3
Bumps [xgboost](https://github.com/dmlc/xgboost) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/dmlc/xgboost/releases)
- [Changelog](https://github.com/dmlc/xgboost/blob/master/NEWS.md)
- [Commits](https://github.com/dmlc/xgboost/compare/v2.0.2...v2.0.3)

---
updated-dependencies:
- dependency-name: xgboost
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-25 03:42:48 +00:00
dependabot[bot] 971b7d074c Bump uvicorn from 0.24.0.post1 to 0.25.0
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.24.0.post1 to 0.25.0.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.24.0.post1...0.25.0)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-25 03:42:42 +00:00
agamboa-caylent ec89aad10b fix typo in stoploss_from_absolute code example 2023-12-24 21:02:22 -06:00
Matthias fc13a99b33 Use intelligent scheduling to improve online test performance 2023-12-24 16:27:18 +01:00
Matthias 03fb204408 use Loadscope to improve parallel test performance 2023-12-24 13:57:42 +01:00
Matthias 0a96aa69b9 Only run parallel on online tests 2023-12-24 12:15:36 +01:00
Matthias ddbfce01b5 Show slowest tests 2023-12-24 12:13:02 +01:00
Matthias 12e75e849d Don't do coverge on --longrun tests 2023-12-24 12:09:46 +01:00
Matthias 916a847639 add pytest-xdist to speed up tests 2023-12-24 08:30:21 +01:00
Matthias a39b329e3b Fix line-length 2023-12-23 15:30:24 +01:00
Matthias 68f9402384 Fix further test 2023-12-23 15:19:56 +01:00
Matthias 600e311b3e Fix test test_handle_stoploss_on_exchange_custom_stop 2023-12-23 15:19:56 +01:00
Matthias 33bd433c22 Don't run against all orders, only consider open sl orders. 2023-12-23 15:19:56 +01:00
Matthias 1db4732648 Fix some more tests 2023-12-23 15:19:56 +01:00
Matthias ae3f62cf9b Fix RPC tests 2023-12-23 15:19:56 +01:00
Matthias cbfebd397c Use a trade for test that actually has an open stop order 2023-12-23 15:19:41 +01:00
Matthias c6ffe82a7a Update more tests 2023-12-23 15:19:41 +01:00
Matthias 6427144934 Fix stoploss test 2023-12-23 15:19:41 +01:00
Matthias c35b308ada Fix some tests 2023-12-23 15:19:41 +01:00
Matthias 28e2bfaf1c Fix types of "has" calls 2023-12-23 15:19:41 +01:00
Matthias 15058d3ce6 Add type hints to manage_trade_orders,
fix content ...
2023-12-23 15:19:41 +01:00
Matthias 931704abcc Merge branch 'develop' into feature/update_sl_order_mgt 2023-12-23 15:19:15 +01:00
Matthias 4769b50709 Fix RPC tests 2023-12-23 15:17:26 +01:00
Matthias 18dd9cf803 Use a trade for test that actually has an open stop order 2023-12-23 15:17:26 +01:00
Matthias def204448a Merge pull request #9589 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2023-12-23 10:06:49 +01:00
Matthias 63e652619f Bump mypy to 1.8.0 2023-12-23 09:11:40 +01:00
Matthias 3cb4b10656 Specify python version for pre-commit update 2023-12-23 09:08:55 +01:00
xmatthias 23c3757c7a chore: update pre-commit hooks 2023-12-23 08:04:51 +00:00
Matthias 8234879b58 stoploss_order_id removal tests 2023-12-22 17:38:14 +01:00
Matthias b33a9059ab Fix some more tests 2023-12-22 17:35:02 +01:00
Matthias 13780d5963 Remove further usage 2023-12-22 17:22:33 +01:00
Matthias 279082b202 Merge branch 'develop' into pr/Axel-CH/9267 2023-12-22 17:21:05 +01:00
Matthias 39b2a096ab Ignore adjust_trade values that would invert position 2023-12-22 07:07:05 +01:00
Matthias b20aee7653 Merge pull request #9585 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2023-12-22 06:27:58 +01:00
Matthias 4d7c4352a7 Merge pull request #9519 from freqtrade/ci_mac_13
Add macos-13 to ci matrix
2023-12-21 20:24:08 +01:00
xmatthias a5c914951f chore: update pre-commit hooks 2023-12-21 19:18:40 +00:00
Matthias 9ab08d513a Update committer in pre-commit workflow 2023-12-21 20:13:52 +01:00
Matthias 87ce7dc02c Reduce permissions 2023-12-21 20:12:23 +01:00
Matthias 3c7c4bc02f Use repo scoped token 2023-12-21 19:54:11 +01:00
Matthias 0484b891f1 Add tech maintenance label 2023-12-21 19:39:45 +01:00
Matthias 71689d9d6f Allow write access to action to allow creating the branch 2023-12-21 19:34:21 +01:00
Matthias 881247a823 use isinstance for type checks 2023-12-21 19:26:52 +01:00
Matthias d26154f994 Import logging ... 2023-12-21 19:26:36 +01:00
Matthias 0e14dd6190 Set proper log-level for test 2023-12-21 19:20:27 +01:00
Matthias 3676514ba6 Add pre-commit auto-update workflow 2023-12-21 19:18:50 +01:00
Matthias 9ec23a0292 Improve rpc typing 2023-12-21 18:14:43 +01:00
Matthias 1272a15c35 Properly name Entry / exit types 2023-12-21 18:11:49 +01:00
Matthias a3a175e332 Reduce logging verbosity message in webhooks 2023-12-21 06:49:26 +01:00
Stefano Ariestasia f7c7990aff Merge branch 'freqtrade:develop' into bt-metrics 2023-12-20 20:33:45 +09:00
Matthias 71b777ef34 Fix missing rm line 2023-12-19 21:51:31 +01:00
Matthias c4cd547451 Merge pull request #9579 from slimatic/develop
typo (configuration.md) fixed value USDT value  in example for clarity
2023-12-19 19:57:34 +01:00
Matthias b4e8122fd3 Attempt to properly remove 3.12 symlinks 2023-12-19 19:55:18 +01:00
Thomas Joußen 3f44f56f6f Remove bool from get_required_startup because its unused. 2023-12-19 17:30:15 +00:00
Thomas Joußen cd28244cf1 Add and optimized test cases to verify consitent timerange behaviour within freqai. 2023-12-19 17:14:02 +00:00
slimatic b1393f1bd4 (configuration.md) fixed value USDT value in example for clarity 2023-12-19 10:58:22 -05:00
Matthias 34c5c68a91 Add macos-13 to ci matrix 2023-12-19 06:41:54 +01:00
Matthias c9a018cf0e Improve output if a strategy wasn't found in the backtest result 2023-12-19 06:30:40 +01:00
Matthias 94363061ae Attempt fix timerange problem 2023-12-18 20:06:49 +00:00
Matthias 4f2d7b858f Slightly enhance logging for clarity 2023-12-18 20:06:49 +00:00
Thomas Joußen 663b1e11f8 Add timeframe info into 'increase startup_candle_count' log message 2023-12-18 20:06:49 +00:00
Thomas Joußen 2d6a49013f Fix duplicated data loading and timerange for populate_features 2023-12-18 20:06:49 +00:00
Matthias 0333abcbdc Merge pull request #9576 from freqtrade/simplify-freqai-example
Make freqai example strat *even* simpler
2023-12-18 20:01:02 +01:00
Matthias 0440b3ef75 Merge pull request #9577 from freqtrade/feat/add-random-forest-classifier
Add SKLearnRandomForestClassifier
2023-12-18 18:15:55 +01:00
Matthias d9ed8c6560 Merge pull request #9568 from freqtrade/dependabot/pip/develop/ccxt-4.1.91
Bump ccxt from 4.1.84 to 4.1.91
2023-12-18 18:14:46 +01:00
robcaulk 2f2467256c feat: add SKLearnRandomForestClassifier 2023-12-18 12:56:04 +01:00
robcaulk 26f0fe2383 make example strat *even* simpler and make sure it buys and sells a lot ;) 2023-12-18 12:38:34 +01:00
Matthias 5e3da30ab9 Fix remaining bittrex instances 2023-12-18 07:15:24 +01:00
Matthias 651d2c06b9 Update tests to use new file 2023-12-18 07:15:24 +01:00
Matthias b371593084 Move previous test config to tests 2023-12-18 07:15:24 +01:00
Matthias 3096cddbcf further remove bittrex from docs 2023-12-18 07:15:24 +01:00
Matthias 5bbe6aacfd Remove Bittrex subclass 2023-12-18 07:15:24 +01:00
Matthias fe4bf271b4 Remove futher bittrex tests 2023-12-18 07:15:24 +01:00
Matthias 0d3d1e6d9a Remove bittrex from more tests 2023-12-18 07:15:24 +01:00
dependabot[bot] 57e01329ce Bump ccxt from 4.1.84 to 4.1.91
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.1.84 to 4.1.91.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.1.84...4.1.91)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 05:49:40 +00:00
Matthias 99359a7f85 Merge pull request #9575 from freqtrade/dependabot/github_actions/develop/actions/download-artifact-4
Bump actions/download-artifact from 3 to 4
2023-12-18 06:37:53 +01:00
Matthias 5f0932f5ed Merge pull request #9574 from freqtrade/dependabot/github_actions/develop/actions/upload-artifact-4
Bump actions/upload-artifact from 3 to 4
2023-12-18 06:37:35 +01:00
Matthias fece88e7cd Merge pull request #9570 from freqtrade/dependabot/pip/develop/fastapi-0.105.0
Bump fastapi from 0.104.1 to 0.105.0
2023-12-18 06:36:42 +01:00
Matthias c8eb2523ac Merge pull request #9564 from freqtrade/dependabot/pip/develop/torch-2.1.2
Bump torch from 2.1.1 to 2.1.2
2023-12-18 06:35:15 +01:00
Matthias 964b439119 Merge pull request #9569 from freqtrade/dependabot/pip/develop/isort-5.13.2
Bump isort from 5.13.0 to 5.13.2
2023-12-18 06:34:51 +01:00
Matthias ee4f4f2d0d Merge pull request #9566 from freqtrade/dependabot/pip/develop/ruff-0.1.8
Bump ruff from 0.1.7 to 0.1.8
2023-12-18 06:34:31 +01:00
Matthias 7c215688c0 Merge pull request #9565 from freqtrade/dependabot/pip/develop/python-rapidjson-1.14
Bump python-rapidjson from 1.13 to 1.14
2023-12-18 06:33:40 +01:00
Matthias 087ca2bd4a Merge pull request #9571 from freqtrade/dependabot/pip/develop/psutil-5.9.7
Bump psutil from 5.9.6 to 5.9.7
2023-12-18 06:33:20 +01:00
Matthias 6193df36a3 Merge pull request #9573 from freqtrade/dependabot/pip/develop/mkdocs-material-9.5.2
Bump mkdocs-material from 9.5.1 to 9.5.2
2023-12-18 06:33:08 +01:00
Matthias 893b43766f Merge pull request #9567 from freqtrade/dependabot/pip/develop/technical-1.4.2
Bump technical from 1.4.1 to 1.4.2
2023-12-18 06:32:56 +01:00
dependabot[bot] a70ca6f612 Bump actions/download-artifact from 3 to 4
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 03:50:19 +00:00
dependabot[bot] e5c783d2db Bump actions/upload-artifact from 3 to 4
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 03:50:16 +00:00
dependabot[bot] e1b652d890 Bump mkdocs-material from 9.5.1 to 9.5.2
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.5.1 to 9.5.2.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.5.1...9.5.2)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 03:17:18 +00:00
dependabot[bot] 4e98b5f710 Bump psutil from 5.9.6 to 5.9.7
Bumps [psutil](https://github.com/giampaolo/psutil) from 5.9.6 to 5.9.7.
- [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst)
- [Commits](https://github.com/giampaolo/psutil/compare/release-5.9.6...release-5.9.7)

---
updated-dependencies:
- dependency-name: psutil
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 03:17:09 +00:00
dependabot[bot] 901b3f6fe7 Bump fastapi from 0.104.1 to 0.105.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.104.1 to 0.105.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.104.1...0.105.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 03:17:03 +00:00
dependabot[bot] d0a9d927dd Bump isort from 5.13.0 to 5.13.2
Bumps [isort](https://github.com/pycqa/isort) from 5.13.0 to 5.13.2.
- [Release notes](https://github.com/pycqa/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pycqa/isort/compare/5.13.0...5.13.2)

---
updated-dependencies:
- dependency-name: isort
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 03:16:57 +00:00
dependabot[bot] 16eb95c71d Bump technical from 1.4.1 to 1.4.2
Bumps [technical](https://github.com/freqtrade/technical) from 1.4.1 to 1.4.2.
- [Release notes](https://github.com/freqtrade/technical/releases)
- [Commits](https://github.com/freqtrade/technical/compare/1.4.1...1.4.2)

---
updated-dependencies:
- dependency-name: technical
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 03:16:40 +00:00
dependabot[bot] 054ed0a7b6 Bump ruff from 0.1.7 to 0.1.8
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.7 to 0.1.8.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.7...v0.1.8)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 03:16:36 +00:00
dependabot[bot] 82853e37a1 Bump python-rapidjson from 1.13 to 1.14
Bumps [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) from 1.13 to 1.14.
- [Changelog](https://github.com/python-rapidjson/python-rapidjson/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-rapidjson/python-rapidjson/compare/v1.13...v1.14)

---
updated-dependencies:
- dependency-name: python-rapidjson
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 03:16:26 +00:00
dependabot[bot] 81c6336e11 Bump torch from 2.1.1 to 2.1.2
Bumps [torch](https://github.com/pytorch/pytorch) from 2.1.1 to 2.1.2.
- [Release notes](https://github.com/pytorch/pytorch/releases)
- [Changelog](https://github.com/pytorch/pytorch/blob/main/RELEASE.md)
- [Commits](https://github.com/pytorch/pytorch/compare/v2.1.1...v2.1.2)

---
updated-dependencies:
- dependency-name: torch
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-18 03:16:14 +00:00
Matthias 6404bd8b2b Merge pull request #9561 from freqtrade/revert/9450-freqai-startup-candle-mr
Revert "Merge pull request #9450 from freqtrade/fix/startup-candle-count"
2023-12-17 19:42:06 +01:00
robcaulk 9a9a6eaa63 Revert "Merge pull request #9450 from freqtrade/fix/startup-candle-count"
This reverts commit 15771043f7, reversing
changes made to b417a0297b.
2023-12-17 17:44:15 +01:00
Matthias 67cdab6ee9 Provide strategy timeframe via API 2023-12-17 15:03:11 +01:00
Matthias 546ea430c9 Merge pull request #9558 from freqtrade/pyproject_toml
Pyproject toml, improve release CI
2023-12-17 13:10:18 +01:00
Matthias 4cc4f0ffa2 Merge pull request #9559 from stevanStevic/improve-no-hyperopt-result-log
Improve log message when no good hyperopt result is found
2023-12-17 10:03:36 +01:00
Matthias 58470ba9d0 Fix missing files in wheels 2023-12-17 09:30:09 +01:00
Stevan Stevic c580e8783f fixup 2023-12-16 22:36:56 +01:00
Stevan Stevic bc1ad3acbd Improve logging 2023-12-16 22:09:02 +01:00
Matthias d2e328b8bd Update artifact name 2023-12-16 21:32:36 +01:00
Matthias 93e9c4fa65 Update job names in ci.yml 2023-12-16 21:14:06 +01:00
Matthias 8d231dbf31 Update build-system to use "build" insead of "setup.py" 2023-12-16 20:54:30 +01:00
Matthias b178cc5f31 Migrate from setup.cfg to pyproject.toml 2023-12-16 20:51:46 +01:00
Matthias 6ee0f16e4f Migrate flake8 config to pyproject.toml 2023-12-16 20:32:37 +01:00
Matthias 1d701967b7 exclude tests from build 2023-12-16 20:27:47 +01:00
Matthias d6b43c5eed re-work deploy CI 2023-12-16 20:06:18 +01:00
Matthias 3670699ea2 Add trusted publishing for next release 2023-12-16 17:31:48 +01:00
Matthias 9b11091fc7 Merge pull request #9555 from amargedon/mapping-btc
Add FIAT mapping for BTC
2023-12-16 08:13:46 +01:00
amargedon 58dfffe87a Add FIAT mapping for BTC 2023-12-15 09:09:31 +01:00
Matthias e573409925 Add windows ta-lib 3.12 wheels 2023-12-15 07:02:56 +01:00
Matthias e3fda16d16 Don't overpopulate points at the first iteration
improves hyperopt-performance quite some.
2023-12-15 06:19:50 +01:00
Matthias 9e2e60e7ad Correct conditions for remaining stake checking 2023-12-14 20:34:58 +01:00
Matthias bb2024f789 Add "full partial exit" logic to backtesting 2023-12-14 20:08:03 +01:00
Matthias e96f4f0e53 Improve adjust_trade_position documentation 2023-12-14 20:06:45 +01:00
Matthias 71d3572c27 Support webserver strategy without max_open_trades 2023-12-14 18:17:10 +01:00
Matthias 6218d732b1 Only download tradable pairs
(excludes futures pairs on spot configurations and viceversa).

closes #9548
2023-12-14 07:13:46 +01:00
Matthias 62667d123f Merge pull request #9540 from freqtrade/fix/issue_9538
Prevent config modification during webserver startup
2023-12-14 06:36:50 +01:00
Matthias cfd5af67ca Add max-open-trades param to get_trade_stake_amount 2023-12-13 06:51:26 +01:00
Matthias 47a952e41c Don't use config['stake_amount'] in wallets 2023-12-12 22:43:46 +01:00
Matthias c9f43587ec Bump binance leverage tiers 2023-12-12 21:30:52 +01:00
Matthias e79a58e1c4 Add test case to verify behavior in #9432 2023-12-12 19:59:56 +01:00
Matthias c62e52c759 Add test for dp_get_required_startup 2023-12-12 19:48:17 +01:00
Matthias 5ab61d9da4 Improve missing data output 2023-12-12 07:08:26 +01:00
Matthias 55efaec83d Merge pull request #9522 from freqtrade/bt/improve_futures_speed
Improve funding fee calculation
2023-12-12 06:33:57 +01:00
Matthias c5c2c8c185 Enforce kwargs for preliminary 2023-12-11 20:35:49 +01:00
Matthias 755ce3a858 Prevent config modification during webserver startup 2023-12-11 20:32:37 +01:00
Matthias 105cd99395 use max_open_trades from straetgy instead of config 2023-12-11 19:52:49 +01:00
Matthias db7799d2fb Use variable instead of config for startup_candle_count 2023-12-11 19:42:13 +01:00
Matthias 30f94ef5b7 Use LocalTrade for typehint 2023-12-11 19:12:08 +01:00
Matthias 6c259ddca1 Merge pull request #9536 from freqtrade/dependabot/pip/develop/ccxt-4.1.84
Bump ccxt from 4.1.76 to 4.1.84
2023-12-11 18:18:44 +01:00
Matthias 0f82ea8767 Merge pull request #9533 from freqtrade/dependabot/pip/develop/pre-commit-3.6.0
Bump pre-commit from 3.5.0 to 3.6.0
2023-12-11 15:45:51 +01:00
Matthias eac5d53a64 Add mock to backtest adjust position 2023-12-11 06:48:05 +01:00
dependabot[bot] 4b43ccae11 Bump ccxt from 4.1.76 to 4.1.84
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.1.76 to 4.1.84.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.1.76...4.1.84)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 05:29:11 +00:00
Matthias 8a2763d275 Merge pull request #9532 from freqtrade/dependabot/pip/develop/pandas-2.1.4
Bump pandas from 2.1.3 to 2.1.4
2023-12-11 06:28:16 +01:00
dependabot[bot] 4b3230689c Bump pre-commit from 3.5.0 to 3.6.0
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v3.5.0...v3.6.0)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 05:26:12 +00:00
Matthias aa86c49640 Merge pull request #9529 from freqtrade/dependabot/pip/develop/ruff-0.1.7
Bump ruff from 0.1.6 to 0.1.7
2023-12-11 06:25:25 +01:00
Matthias 1adc8836dd Merge pull request #9530 from freqtrade/dependabot/pip/develop/mkdocs-material-9.5.1
Bump mkdocs-material from 9.4.14 to 9.5.1
2023-12-11 06:22:05 +01:00
Matthias 92993c0c4c Merge pull request #9527 from freqtrade/dependabot/pip/develop/technical-1.4.1
Bump technical from 1.4.0 to 1.4.1
2023-12-11 06:21:53 +01:00
Matthias 9b2c116d9b Merge pull request #9528 from freqtrade/dependabot/pip/develop/isort-5.13.0
Bump isort from 5.12.0 to 5.13.0
2023-12-11 06:21:42 +01:00
Matthias 2ad85a6957 Merge pull request #9526 from freqtrade/dependabot/github_actions/develop/actions/setup-python-5
Bump actions/setup-python from 4 to 5
2023-12-11 06:21:20 +01:00
dependabot[bot] a0e92f5a47 Bump pandas from 2.1.3 to 2.1.4
Bumps [pandas](https://github.com/pandas-dev/pandas) from 2.1.3 to 2.1.4.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Commits](https://github.com/pandas-dev/pandas/compare/v2.1.3...v2.1.4)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 03:53:12 +00:00
dependabot[bot] 17f0697c43 Bump mkdocs-material from 9.4.14 to 9.5.1
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.4.14 to 9.5.1.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.4.14...9.5.1)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 03:52:56 +00:00
dependabot[bot] 199e3f91f2 Bump ruff from 0.1.6 to 0.1.7
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.6 to 0.1.7.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.6...v0.1.7)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 03:52:51 +00:00
dependabot[bot] cc14cf23b1 Bump isort from 5.12.0 to 5.13.0
Bumps [isort](https://github.com/pycqa/isort) from 5.12.0 to 5.13.0.
- [Release notes](https://github.com/pycqa/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pycqa/isort/compare/5.12.0...5.13.0)

---
updated-dependencies:
- dependency-name: isort
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 03:52:41 +00:00
dependabot[bot] 327f750ead Bump technical from 1.4.0 to 1.4.1
Bumps [technical](https://github.com/freqtrade/technical) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/freqtrade/technical/releases)
- [Commits](https://github.com/freqtrade/technical/compare/1.4.0...1.4.1)

---
updated-dependencies:
- dependency-name: technical
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 03:52:31 +00:00
dependabot[bot] a304080c08 Bump actions/setup-python from 4 to 5
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 03:33:18 +00:00
Robert Caulk 020d4b5b4d Merge pull request #9523 from freqtrade/fix/freqai-append-bug
Bugfix: ensure zeros are properly appended after each inference
2023-12-10 17:29:51 +01:00
robcaulk 78cb1e608f fix: ensure we have a row of zeros appended (not the function) 2023-12-10 15:30:19 +01:00
Matthias b84a2fcac7 Merge pull request #9521 from freqtrade/robcaulk-patch-1
Ensure the documentation gets read
2023-12-10 14:21:59 +01:00
Robert Caulk c0119d7baa Merge pull request #9449 from freqtrade/dependabot/pip/develop/torch-2.1.1
Bump torch from 2.0.1 to 2.1.1
2023-12-10 14:11:01 +01:00
Matthias 0bd513012a enhance further test for funding-fee checking 2023-12-10 14:00:21 +01:00
Matthias 3f6cd9ee51 Patch funding_fee calculation for unrelated test 2023-12-10 14:00:06 +01:00
Matthias 8964c138f1 Call funding fee calculation whenever a trade is closed 2023-12-10 14:00:06 +01:00
Matthias ef23f0fcba Fix test to account for new funding_fee count 2023-12-10 14:00:06 +01:00
Matthias 074343f0f1 Don't calculate funding_fees on every iteration 2023-12-10 14:00:06 +01:00
Matthias 966eb59fd3 Extract funding fee calculation to separate method 2023-12-10 14:00:06 +01:00
Matthias 778bd7b3b0 enhance further test for funding-fee checking 2023-12-10 13:57:52 +01:00
Matthias b4cd46d6db Further improve funding_Fee test 2023-12-10 13:21:05 +01:00
Matthias 1d73b57e8c Extract some assert values from bt test 2023-12-10 12:57:55 +01:00
Robert Caulk 476703bf76 Update data_kitchen.py
Ensure our exception is raised when users dont download the data
2023-12-10 12:26:39 +01:00
Stefano 9f1599b7f0 fix pre-commit 2023-12-10 17:34:02 +09:00
Stefano e541c95c46 fix partial exit test 2023-12-10 17:27:24 +09:00
Matthias cd09d3567f Add spy test on funding_fees in backtesting 2023-12-09 19:42:13 +01:00
Matthias 4c25e9d21a Merge pull request #9387 from freqtrade/dependabot/pip/develop/scikit-learn-1.3.2
Bump scikit-learn from 1.1.3 to 1.3.2
2023-12-09 14:20:15 +01:00
Matthias dd08c134b4 Remove macos 13 ci again 2023-12-09 13:40:00 +01:00
Matthias aa8bb27cf0 Merge branch 'develop' into dependabot/pip/develop/scikit-learn-1.3.2 2023-12-09 13:39:46 +01:00
Matthias d428d48393 Ease install dependencies for scikit-learn 2023-12-09 12:12:52 +01:00
Matthias 3bdfa85237 Update scikit-optimize to ft-scikit-optimize
Compatibility fork of scikit-optimize.
2023-12-09 12:12:30 +01:00
Matthias 95a824fbe7 Merge pull request #9509 from freqtrade/ci_mac_13
macos-13 CI
2023-12-09 07:55:42 +01:00
Matthias bb85efd6ad Add test for informative weekly merging
closes #9518
2023-12-08 20:41:57 +01:00
Matthias 7321a14c35 Fix generate-test-data for 1w data 2023-12-08 20:38:41 +01:00
Matthias 2745a5d334 Rename informative_pair test 2023-12-08 20:07:44 +01:00
Stefano Ariestasia bf8b3e831d Merge branch 'freqtrade:develop' into bt-metrics 2023-12-07 15:41:09 +09:00
Matthias d123d3bb82 Completely mock Torch on macos
we already skip tests - now we also need to skip it's imports.
2023-12-07 07:25:34 +01:00
Matthias b14873400d Fix odd import in freqai tests 2023-12-07 07:15:05 +01:00
Robert Caulk d9b95a4c27 Merge pull request #9514 from freqtrade/freqai/xgboost_activate
Remove "activate" kwarg to xgboost calls
2023-12-06 21:18:07 +01:00
Matthias 71178ff1d2 Remove "activate" activator
they raise warnings as they're unused.
2023-12-06 19:48:19 +01:00
Matthias d3d9f3281e Fix torch logging setup mess 2023-12-06 19:26:09 +01:00
Matthias 3b4b833dd0 Remove unused mock 2023-12-06 18:22:28 +01:00
Matthias fcc87399cd Merge pull request #9505 from freqtrade/fix/merge-warning
Fix multiple new Pandas 2.1 future warnings in FreqAI startup
2023-12-05 19:25:57 +01:00
Matthias 654f8a7573 Merge pull request #9508 from freqtrade/dependabot/pip/develop/nbconvert-7.12.0
Bump nbconvert from 7.11.0 to 7.12.0
2023-12-05 19:24:22 +01:00
Matthias 2fdb9663d7 Merge branch 'develop' into fix/merge-warning 2023-12-05 18:12:34 +01:00
dependabot[bot] 3739a10735 Bump nbconvert from 7.11.0 to 7.12.0
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 7.11.0 to 7.12.0.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Changelog](https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jupyter/nbconvert/compare/v7.11.0...v7.12.0)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-05 17:10:09 +00:00
Matthias 9a425af76f Remove unnecessary conditions in Ci run 2023-12-05 18:08:24 +01:00
Matthias 3c48208b31 Fix cache keys 2023-12-05 18:08:24 +01:00
Matthias 68db8d0201 install libomp 2023-12-05 18:08:24 +01:00
Matthias 2207773678 Attempt more granular cache for macos 2023-12-05 18:08:24 +01:00
Matthias cbe6d52a73 Try macos-13 CI 2023-12-05 18:08:24 +01:00
Matthias b7fc0190f7 Merge pull request #9512 from freqtrade/revert-9500-dependabot/pip/develop/tables-3.9.2
Revert "Bump tables from 3.9.1 to 3.9.2"
2023-12-05 18:04:56 +01:00
Matthias 4061eaf888 Remove online tests for bittrex 2023-12-05 18:03:55 +01:00
Matthias ef042ae5ec Remove exchange tests on bittrex 2023-12-05 18:03:48 +01:00
Matthias 6ee792069d Remove bitrex-specific section 2023-12-05 18:03:34 +01:00
Matthias 46c81d7018 Revert "Bump tables from 3.9.1 to 3.9.2" 2023-12-05 17:04:16 +01:00
Robert Caulk caac77c90b Update data_drawer.py 2023-12-05 12:16:08 +01:00
Stefano Ariestasia 90332128b1 allow trade to be closed via partial exit call if remaining amount is exactly 0 2023-12-05 17:10:15 +09:00
Matthias af05e3d747 Merge pull request #9506 from freqtrade/dependabot/pip/develop/ccxt-4.1.76
Bump ccxt from 4.1.75 to 4.1.76
2023-12-04 20:48:37 +01:00
dependabot[bot] 59a287106d Bump ccxt from 4.1.75 to 4.1.76
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.1.75 to 4.1.76.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.1.75...4.1.76)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 18:21:30 +00:00
robcaulk 8b5e6bf9be chore: fix pandas warning about merging on datetime. fix pandas warning about inconsistent key lists in concat 2023-12-04 16:23:55 +01:00
Matthias d9882978d5 Merge pull request #9500 from freqtrade/dependabot/pip/develop/tables-3.9.2
Bump tables from 3.9.1 to 3.9.2
2023-12-04 07:25:18 +01:00
Matthias 04f2b7bad6 Add support for different timeInForce for bybit 2023-12-04 07:23:52 +01:00
Matthias 8597709b2e Merge pull request #9501 from freqtrade/dependabot/pip/develop/ccxt-4.1.75
Bump ccxt from 4.1.66 to 4.1.75
2023-12-04 06:33:38 +01:00
Matthias 2fea75e312 Merge pull request #9498 from freqtrade/dependabot/github_actions/develop/pypa/gh-action-pypi-publish-1.8.11
Bump pypa/gh-action-pypi-publish from 1.8.10 to 1.8.11
2023-12-04 06:33:17 +01:00
Matthias 511e4d16d5 Merge pull request #9502 from freqtrade/dependabot/pip/develop/python-telegram-bot-20.7
Bump python-telegram-bot from 20.6 to 20.7
2023-12-04 06:32:46 +01:00
dependabot[bot] e0f780f10e Bump python-telegram-bot from 20.6 to 20.7
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 20.6 to 20.7.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v20.6...v20.7)

---
updated-dependencies:
- dependency-name: python-telegram-bot
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 03:35:49 +00:00
dependabot[bot] 44689d058b Bump ccxt from 4.1.66 to 4.1.75
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.1.66 to 4.1.75.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.1.66...4.1.75)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 03:35:42 +00:00
dependabot[bot] 1431b2b44a Bump tables from 3.9.1 to 3.9.2
Bumps [tables](https://github.com/PyTables/PyTables) from 3.9.1 to 3.9.2.
- [Release notes](https://github.com/PyTables/PyTables/releases)
- [Changelog](https://github.com/PyTables/PyTables/blob/master/RELEASE_NOTES.rst)
- [Commits](https://github.com/PyTables/PyTables/compare/v3.9.1...v3.9.2)

---
updated-dependencies:
- dependency-name: tables
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 03:35:27 +00:00
dependabot[bot] 106bda51d4 Bump pypa/gh-action-pypi-publish from 1.8.10 to 1.8.11
Bumps [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) from 1.8.10 to 1.8.11.
- [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases)
- [Commits](https://github.com/pypa/gh-action-pypi-publish/compare/v1.8.10...v1.8.11)

---
updated-dependencies:
- dependency-name: pypa/gh-action-pypi-publish
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 03:10:11 +00:00
Matthias 90e4eb59b2 Improve multi-strategy backtest docs 2023-12-03 15:27:33 +01:00
Matthias 701f6fc050 Update outdated docs
closes #9489
2023-12-03 15:27:03 +01:00
Matthias 0235db48a8 Prevent merge artifacts in "informative" pair 2023-12-03 13:31:16 +01:00
Matthias e9e7bf3caf Slight cleanup of unused comment 2023-12-03 13:31:16 +01:00
Matthias 4464b02719 Add handling to properly merge 1M data to
closes #9490
2023-12-03 13:31:16 +01:00
Matthias 4ed9ffbf31 Add test for behavior in #9490. 2023-12-03 13:31:16 +01:00
Matthias c017366086 Ensure testdata generation works for 1M data 2023-12-03 13:31:16 +01:00
Matthias 34bce4d251 Merge pull request #9493 from freqtrade/chore/future-warning-datadrawer
chore: fix future warning on pandas
2023-12-03 13:25:01 +01:00
Robert Caulk 6754072bca chore: fix future warning on pandas 2023-12-03 12:55:16 +01:00
Robert Caulk 15771043f7 Merge pull request #9450 from freqtrade/fix/startup-candle-count
Bug: freqai backtesting startup_candle_count handling
2023-12-02 21:01:11 +01:00
Robert Caulk b417a0297b Merge pull request #9468 from freqtrade/freqai/fix_dump
Use cloudpickle to pickle freqai models
2023-12-02 18:51:31 +01:00
Matthias 5daafaabc2 Add explicit test for "now_is_time_to_refresh 2023-12-01 07:05:33 +01:00
Matthias 08db2f05aa Merge pull request #9485 from stash86/bt-metrics
exposing bot_name to discord rpc field
2023-11-30 19:04:34 +01:00
Matthias 0654186400 Merge pull request #9486 from freqtrade/new_release
New release 2023.11
2023-11-30 17:25:25 +01:00
Matthias d85518ccb2 Improve release documentation 2023-11-30 07:10:20 +01:00
Matthias c34cb9eb12 Bump version to 2023.12-dev 2023-11-30 07:04:38 +01:00
Matthias cb01a46089 Version bump to 2023.11 2023-11-30 07:00:25 +01:00
Matthias 0bcbb28d51 Merge branch 'stable' into new_release 2023-11-30 07:00:11 +01:00
Matthias e2a47ee95a Merge pull request #9482 from freqtrade/bitmart
Add support for Bitmart
2023-11-30 06:49:41 +01:00
Stefano Ariestasia 36836ea803 add bot_name to discord rpc field 2023-11-30 14:11:09 +09:00
Matthias 19d9adaf9c Merge pull request #9483 from freqtrade/dependabot/pip/cryptography-41.0.6
Bump cryptography from 41.0.5 to 41.0.6
2023-11-29 12:43:15 +01:00
Matthias cf078f8093 Bump to 41.0.7 to avoid install problems 2023-11-29 06:57:00 +01:00
dependabot[bot] 5ddca4e9f9 Bump cryptography from 41.0.5 to 41.0.6
Bumps [cryptography](https://github.com/pyca/cryptography) from 41.0.5 to 41.0.6.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/41.0.5...41.0.6)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-29 05:27:01 +00:00
Matthias 6db66b1e58 Add bitmart to "official supported" exchanges 2023-11-28 18:18:19 +01:00
Matthias 0a903e45f2 Add Bitmart to list of supported exchnanges for spot 2023-11-28 18:14:42 +01:00
Matthias d0a2b9403e Fix typo 2023-11-28 18:14:33 +01:00
Matthias a18c85ec64 Explicitly disable stoploss on exchange for bitmart 2023-11-28 18:13:21 +01:00
Matthias 0914b8b5f4 Add note about verification on Bitmart 2023-11-28 18:13:21 +01:00
Matthias cb2a871538 Bitmart: add section in exchange docs 2023-11-28 18:13:21 +01:00
Matthias ef877b5fcc Add bitmart to ccxt compat tested exchanges 2023-11-28 18:13:21 +01:00
Matthias 2738f3e437 Add minimal Exchange class for bitmart 2023-11-28 18:13:21 +01:00
Matthias 41e40e6214 Update some initial tests 2023-11-28 06:48:27 +01:00
Matthias c2b32769a1 Remove further occurance in bot file 2023-11-28 06:48:20 +01:00
Matthias 42d75b0754 Merge branch 'develop' into pr/Axel-CH/9267 2023-11-28 06:45:37 +01:00
Matthias 79f765a930 Merge pull request #9472 from freqtrade/dependabot/pip/develop/ccxt-4.1.66
Bump ccxt from 4.1.57 to 4.1.66
2023-11-27 07:56:47 +01:00
Matthias 696f8b308a Merge pull request #9476 from freqtrade/dependabot/pip/develop/aiohttp-3.9.1
Bump aiohttp from 3.9.0 to 3.9.1
2023-11-27 07:40:39 +01:00
Matthias 4a2473e7e9 Merge pull request #9475 from freqtrade/dependabot/pip/develop/mkdocs-material-9.4.14
Bump mkdocs-material from 9.4.10 to 9.4.14
2023-11-27 07:02:54 +01:00
Matthias a0caa7c5a2 Merge pull request #9477 from freqtrade/dependabot/pip/develop/pydantic-2.5.2
Bump pydantic from 2.5.1 to 2.5.2
2023-11-27 07:02:25 +01:00
Matthias 388a0c605c Merge pull request #9470 from stash86/bt-metrics2
fix typo on API docs
2023-11-27 06:46:50 +01:00
Matthias 55e4d08fd8 Merge pull request #9436 from stash86/bt-metrics
Remove order list from /status, and add new /order command
2023-11-27 06:40:00 +01:00
Matthias 7c00a4ed13 Remove no longer existing exchange aliases from tests 2023-11-27 06:39:14 +01:00
dependabot[bot] 793cc1acc0 Bump mkdocs-material from 9.4.10 to 9.4.14
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.4.10 to 9.4.14.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.4.10...9.4.14)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-27 05:31:12 +00:00
Matthias 33d910ccea Merge pull request #9474 from freqtrade/dependabot/pip/develop/mypy-1.7.1
Bump mypy from 1.7.0 to 1.7.1
2023-11-27 06:29:46 +01:00
Matthias 8a44337c30 Merge pull request #9473 from freqtrade/dependabot/pip/develop/pymdown-extensions-10.5
Bump pymdown-extensions from 10.4 to 10.5
2023-11-27 06:28:44 +01:00
dependabot[bot] 35871d7b4b Bump pydantic from 2.5.1 to 2.5.2
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.5.1 to 2.5.2.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/v2.5.2/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.5.1...v2.5.2)

---
updated-dependencies:
- dependency-name: pydantic
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-27 03:20:23 +00:00
dependabot[bot] 786d4e03fc Bump aiohttp from 3.9.0 to 3.9.1
Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.9.0 to 3.9.1.
- [Release notes](https://github.com/aio-libs/aiohttp/releases)
- [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst)
- [Commits](https://github.com/aio-libs/aiohttp/compare/v3.9.0...v3.9.1)

---
updated-dependencies:
- dependency-name: aiohttp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-27 03:20:08 +00:00
dependabot[bot] 5e5b56e445 Bump mypy from 1.7.0 to 1.7.1
Bumps [mypy](https://github.com/python/mypy) from 1.7.0 to 1.7.1.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.7.0...v1.7.1)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-27 03:19:43 +00:00
dependabot[bot] 384ebc5b38 Bump pymdown-extensions from 10.4 to 10.5
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.4 to 10.5.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.4...10.5)

---
updated-dependencies:
- dependency-name: pymdown-extensions
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-27 03:19:35 +00:00
dependabot[bot] 8567af8d28 Bump ccxt from 4.1.57 to 4.1.66
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.1.57 to 4.1.66.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.1.57...4.1.66)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-27 03:19:22 +00:00
Stefano Ariestasia 88e818926a fix typo on API docs 2023-11-27 10:57:50 +09:00
Stefano Ariestasia 4bcb4fdd82 Merge branch 'freqtrade:develop' into bt-metrics 2023-11-27 10:46:21 +09:00
Matthias 0b3a6aa9de Merge pull request #9469 from freqtrade/ci/pi_image_3.11
Update various docker images
2023-11-26 19:23:03 +01:00
Matthias 12ea1cde80 Bump dockerfile to use bookworm (debian12) 2023-11-26 16:34:31 +01:00
Matthias df73b8288c Bump armhf image to bookworm 2023-11-26 14:53:34 +01:00
Matthias a50291cd90 RPI dockerfile - 3.11 2023-11-26 14:52:52 +01:00
Matthias be8ea685de Remove unused function in freqAI example 2023-11-26 13:37:02 +01:00
dependabot[bot] d050beb627 Bump torch from 2.0.1 to 2.1.1
Bumps [torch](https://github.com/pytorch/pytorch) from 2.0.1 to 2.1.1.
- [Release notes](https://github.com/pytorch/pytorch/releases)
- [Changelog](https://github.com/pytorch/pytorch/blob/main/RELEASE.md)
- [Commits](https://github.com/pytorch/pytorch/compare/v2.0.1...v2.1.1)

---
updated-dependencies:
- dependency-name: torch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-26 11:40:46 +00:00
Robert Caulk 1380cadf15 Merge pull request #9448 from freqtrade/dependabot/pip/develop/stable-baselines3-2.2.1
Bump stable-baselines3 from 2.1.0 to 2.2.1
2023-11-26 12:39:46 +01:00
Matthias 72eeb6561c use Cloudpickle also for reading 2023-11-25 19:37:49 +01:00
Matthias eeb460e55c Use cloudpickle throughout 2023-11-25 19:36:14 +01:00
Matthias e8d0b01991 Correctly import time 2023-11-25 16:17:43 +01:00
Matthias 94020a664b Add slight sleep to avoid random test failure on windows 2023-11-25 15:58:28 +01:00
Matthias 8c5194d5e2 force-reload markets when BadSymbol appears
closes #9463
2023-11-25 15:05:56 +01:00
Matthias 67e81c9018 Fix wrong/faulty docstring 2023-11-25 13:10:45 +01:00
Matthias 25ebdb4cb3 use strategy_wrapper for bot_loop_start in plotting
closes #9464
2023-11-25 12:51:17 +01:00
Matthias 1657fd1f0f Merge pull request #9435 from freqtrade/revisit_relative_intratrade
Improve trade close profit assertions
2023-11-23 20:02:02 +01:00
Stefano Ariestasia 63e702a3bf remove unused comments 2023-11-23 15:55:21 +09:00
Matthias e9f21d0209 Improve logging for #9460 2023-11-23 07:22:44 +01:00
Matthias a044649eef Also have "badrequest" act as InvalidOrderException
causing an emergencyexit.

closes #9456
2023-11-23 06:51:29 +01:00
dependabot[bot] 48317c2307 Bump scikit-learn from 1.1.3 to 1.3.2
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 1.1.3 to 1.3.2.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.1.3...1.3.2)

---
updated-dependencies:
- dependency-name: scikit-learn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-22 11:13:58 +00:00
Matthias d598c91de3 Merge pull request #9458 from freqtrade/hyperopt_tests
Improve hyperopt Tests
2023-11-22 12:13:14 +01:00
Matthias 5003c2af21 training_env is a property, also, so types can't be overridden 2023-11-22 07:22:40 +01:00
Matthias 6963a92332 Improve hyperopt Tests
ensure scikit-learn has to generate new random points by reducing initial points
this will uncover a failure in newer scikit-learn versions
2023-11-22 07:21:07 +01:00
Matthias e2863e1620 fix: logger has been converted to a property
so it can't be assigned anymore
https://github.com/DLR-RM/stable-baselines3/commit/e9f0f23ce4b4479968e40698b991b49b7f59bd90#diff-d668633497da171f21b8069c33d594b1ee2ad47c1be4848bea33292bc80b7f5c
2023-11-22 06:54:41 +01:00
Matthias 869756d87d Merge pull request #9454 from freqtrade/ci/bittrex_removal
Remove Bittrex from supported exchanges
2023-11-21 20:52:43 +01:00
Matthias 203890844b Remove non-existing pairs 2023-11-21 19:16:34 +01:00
Matthias ba76b87952 Merge pull request #9453 from chasdabigone/fixing-docs
Removed redundant 'cpu_count'
2023-11-21 18:06:24 +01:00
Matthias fbab18b081 Add missing config file 2023-11-21 18:01:18 +01:00
Matthias f7178ecd6f Update test config name and exchange 2023-11-21 07:10:23 +01:00
Matthias 59cbac7147 Merge pull request #9452 from chasdabigone/fix-hyperopt-typo
Removed redudant negative from sentence
2023-11-21 06:58:12 +01:00
Matthias fbc70a60f7 Update test with no bittrex ... 2023-11-21 06:57:18 +01:00
Matthias b45365d385 Update tests to run for binance 2023-11-21 06:47:50 +01:00
Matthias 9990780e6b Update binance config to be for usdt pairs 2023-11-21 06:44:44 +01:00
Matthias 65df2f30c1 Update some more docs with bittrex removal 2023-11-21 06:42:53 +01:00
Matthias e7aa706f73 Update samples with binance 2023-11-21 06:39:38 +01:00
Matthias 3619247123 Remove bittrex from code for suppored exchanges 2023-11-21 06:39:29 +01:00
Matthias 047dac7b7d Remove bittrex from supported exchanges 2023-11-21 06:37:58 +01:00
chas s 7646849405 Removed redundant 'cpu_count' 2023-11-20 23:25:28 -06:00
chas s 10ae0ed9c1 Removed redudant negative from sentence 2023-11-20 16:33:22 -06:00
Matthias e060e729df Merge pull request #9451 from freqtrade/remove_blosc
Remove dependency on blosc
2023-11-20 14:53:04 +01:00
Matthias d81bbba4c2 Remove dependency on blosc 2023-11-20 13:50:59 +01:00
robcaulk d52936fd42 chore: try to keep startup_candle_count behaving the same as a normal FT strat 2023-11-20 09:13:01 +01:00
robcaulk 21a5abf25d fix: make sure that get_required_startup is timeframe independent 2023-11-20 08:42:27 +01:00
Matthias c3980a2746 Merge pull request #9442 from freqtrade/dependabot/pip/develop/ccxt-4.1.57
Bump ccxt from 4.1.52 to 4.1.57
2023-11-20 07:57:19 +01:00
Matthias 2cadbd1229 Merge pull request #9443 from freqtrade/dependabot/pip/develop/ruff-0.1.6
Bump ruff from 0.1.5 to 0.1.6
2023-11-20 07:42:58 +01:00
Matthias 0f57291aa7 Merge pull request #9446 from freqtrade/dependabot/pip/develop/urllib3-2.1.0
Bump urllib3 from 2.0.7 to 2.1.0
2023-11-20 07:36:33 +01:00
Stefano 0e9169e1ec update docs 2023-11-20 15:35:06 +09:00
Stefano 8680b5faa0 fix some tests, add new tests 2023-11-20 14:48:18 +09:00
Matthias 03149cfa42 Merge pull request #9445 from freqtrade/dependabot/pip/develop/pydantic-2.5.1
Bump pydantic from 2.4.2 to 2.5.1
2023-11-20 06:37:47 +01:00
Matthias 4eb4732de7 Merge pull request #9441 from freqtrade/dependabot/pip/develop/rich-13.7.0
Bump rich from 13.6.0 to 13.7.0
2023-11-20 06:36:20 +01:00
Matthias 3a5b22c397 Merge pull request #9438 from freqtrade/dependabot/pip/develop/scipy-1.11.4
Bump scipy from 1.11.3 to 1.11.4
2023-11-20 06:35:25 +01:00
Matthias c3a5d4b4e4 Merge pull request #9439 from freqtrade/dependabot/pip/develop/mkdocs-material-9.4.10
Bump mkdocs-material from 9.4.8 to 9.4.10
2023-11-20 06:34:47 +01:00
dependabot[bot] b97ff3a784 Bump ccxt from 4.1.52 to 4.1.57
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.1.52 to 4.1.57.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.1.52...4.1.57)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 05:33:47 +00:00
dependabot[bot] 806af7d796 Bump urllib3 from 2.0.7 to 2.1.0
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.7 to 2.1.0.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.0.7...2.1.0)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 05:33:14 +00:00
Matthias 3c25737f38 Merge pull request #9440 from freqtrade/dependabot/pip/develop/aiohttp-3.9.0
Bump aiohttp from 3.8.6 to 3.9.0
2023-11-20 06:32:58 +01:00
Matthias bf98851dc1 Merge pull request #9444 from freqtrade/dependabot/pip/develop/jsonschema-4.20.0
Bump jsonschema from 4.19.2 to 4.20.0
2023-11-20 06:32:01 +01:00
dependabot[bot] 202b72fd8e Bump stable-baselines3 from 2.1.0 to 2.2.1
Bumps [stable-baselines3](https://github.com/DLR-RM/stable-baselines3) from 2.1.0 to 2.2.1.
- [Release notes](https://github.com/DLR-RM/stable-baselines3/releases)
- [Commits](https://github.com/DLR-RM/stable-baselines3/compare/v2.1.0...v2.2.1)

---
updated-dependencies:
- dependency-name: stable-baselines3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 03:12:31 +00:00
dependabot[bot] 6f60117319 Bump pydantic from 2.4.2 to 2.5.1
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.4.2 to 2.5.1.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.4.2...v2.5.1)

---
updated-dependencies:
- dependency-name: pydantic
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 03:12:12 +00:00
dependabot[bot] 7070ec30e4 Bump jsonschema from 4.19.2 to 4.20.0
Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.19.2 to 4.20.0.
- [Release notes](https://github.com/python-jsonschema/jsonschema/releases)
- [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.19.2...v4.20.0)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 03:12:05 +00:00
dependabot[bot] bf77019d1c Bump ruff from 0.1.5 to 0.1.6
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.5 to 0.1.6.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.5...v0.1.6)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 03:12:00 +00:00
dependabot[bot] b776e5a8e0 Bump rich from 13.6.0 to 13.7.0
Bumps [rich](https://github.com/Textualize/rich) from 13.6.0 to 13.7.0.
- [Release notes](https://github.com/Textualize/rich/releases)
- [Changelog](https://github.com/Textualize/rich/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Textualize/rich/compare/v13.6.0...v13.7.0)

---
updated-dependencies:
- dependency-name: rich
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 03:11:43 +00:00
dependabot[bot] ca208305a0 Bump aiohttp from 3.8.6 to 3.9.0
Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.8.6 to 3.9.0.
- [Release notes](https://github.com/aio-libs/aiohttp/releases)
- [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst)
- [Commits](https://github.com/aio-libs/aiohttp/compare/v3.8.6...v3.9.0)

---
updated-dependencies:
- dependency-name: aiohttp
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 03:11:37 +00:00
dependabot[bot] 972c5c327c Bump mkdocs-material from 9.4.8 to 9.4.10
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.4.8 to 9.4.10.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.4.8...9.4.10)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 03:11:28 +00:00
dependabot[bot] 80edfd1531 Bump scipy from 1.11.3 to 1.11.4
Bumps [scipy](https://github.com/scipy/scipy) from 1.11.3 to 1.11.4.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.11.3...v1.11.4)

---
updated-dependencies:
- dependency-name: scipy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-20 03:11:23 +00:00
Stefano Ariestasia 58cd455642 fix unused vars 2023-11-19 20:32:28 +09:00
Stefano Ariestasia caf59d25e8 forgot comma 2023-11-19 18:07:45 +09:00
Stefano Ariestasia 7df32a34a0 remove order list from /status and add new /order 2023-11-19 18:01:32 +09:00
Matthias 48097f4a7d Update tests according to calculation update 2023-11-18 19:47:20 +01:00
Matthias ca3f349d84 Update intermediate close_profit calculation 2023-11-18 19:47:09 +01:00
Matthias 0815bb6244 Improve trade close profit assertions 2023-11-18 18:18:29 +01:00
Matthias 835cb54876 Merge pull request #9427 from froggleston/frog-bt-analysis-fix-1
Fix backtesting-analysis when no trades for a pair
2023-11-15 19:46:32 +01:00
Matthias 08c2765633 Merge pull request #9429 from froggleston/frog-hyperopt-docs-1
Clarify hyperopt docs for parameter options
2023-11-15 18:27:14 +01:00
froggleston f9202c3f6b Clarify hyperopt docs for parameter options 2023-11-15 12:11:47 +00:00
froggleston eb186e22d6 Fix backtesting-analysis when no trades for a pair 2023-11-15 11:52:25 +00:00
Matthias cbc323875b Improve contribution wording 2023-11-15 07:12:11 +01:00
Matthias 736b583ff4 Merge pull request #9425 from freqtrade/dependabot/pip/develop/ccxt-4.1.52
Bump ccxt from 4.1.40 to 4.1.52
2023-11-14 20:56:58 +01:00
dependabot[bot] 757ec53877 Bump ccxt from 4.1.40 to 4.1.52
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.1.40 to 4.1.52.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.1.40...4.1.52)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-14 19:16:20 +00:00
Matthias 7814927dd1 Merge pull request #9418 from freqtrade/dependabot/pip/develop/mypy-1.7.0
Bump mypy from 1.6.1 to 1.7.0
2023-11-13 19:28:46 +01:00
Matthias 5f8ff373ab Update mypy to v1.7.0 in pre-commit-config.yaml 2023-11-13 18:15:10 +01:00
Matthias f286cb0a90 Use BaseException in exception check 2023-11-13 18:14:18 +01:00
Matthias 59bd1a1f1f Merge pull request #9309 from freqtrade/dependabot/pip/develop/tables-3.9.1
Bump tables from 3.8.0 to 3.9.1
2023-11-13 13:49:20 +01:00
Matthias e52f6ca6c0 Merge pull request #9421 from konradbeck/patch-2
Update strategy-customization.md
2023-11-13 13:48:58 +01:00
konradbeck e6663c0304 Update strategy-customization.md
Shouldn't the timeperiod be 100 when defining a ema100?
2023-11-13 13:50:32 +02:00
dependabot[bot] ced92300e0 Bump tables from 3.8.0 to 3.9.1
Bumps [tables](https://github.com/PyTables/PyTables) from 3.8.0 to 3.9.1.
- [Release notes](https://github.com/PyTables/PyTables/releases)
- [Changelog](https://github.com/PyTables/PyTables/blob/master/RELEASE_NOTES.rst)
- [Commits](https://github.com/PyTables/PyTables/compare/v3.8.0...v3.9.1)

---
updated-dependencies:
- dependency-name: tables
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-13 09:19:19 +00:00
Matthias f9d061b648 Merge pull request #9413 from freqtrade/dependabot/pip/develop/xgboost-2.0.2
Bump xgboost from 2.0.1 to 2.0.2
2023-11-13 08:01:41 +01:00
Matthias e6661a33f9 Merge pull request #9419 from freqtrade/dependabot/pip/develop/pandas-2.1.3
Bump pandas from 2.1.2 to 2.1.3
2023-11-13 07:26:36 +01:00
Matthias d2afe281bf Add cancel order to new exchange docs 2023-11-13 07:23:50 +01:00
Matthias c237aa00b8 Remove non-used imports 2023-11-13 07:15:35 +01:00
Matthias 23efa4c9c3 Remove deprecated json_encoders key from model_config 2023-11-13 07:15:35 +01:00
dependabot[bot] 8b028734c2 Bump pandas from 2.1.2 to 2.1.3
Bumps [pandas](https://github.com/pandas-dev/pandas) from 2.1.2 to 2.1.3.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Commits](https://github.com/pandas-dev/pandas/compare/v2.1.2...v2.1.3)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-13 05:29:27 +00:00
dependabot[bot] 51feeddc5c Bump mypy from 1.6.1 to 1.7.0
Bumps [mypy](https://github.com/python/mypy) from 1.6.1 to 1.7.0.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.6.1...v1.7.0)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-13 05:29:25 +00:00
Matthias af3e42f59d Merge pull request #9415 from freqtrade/dependabot/pip/develop/numpy-1.26.2
Bump numpy from 1.26.1 to 1.26.2
2023-11-13 06:28:52 +01:00
Matthias 34d58eb7d5 Merge pull request #9417 from freqtrade/dependabot/pip/develop/ruff-0.1.5
Bump ruff from 0.1.4 to 0.1.5
2023-11-13 06:28:32 +01:00
Matthias ca0a04fba5 Merge pull request #9416 from freqtrade/dependabot/pip/develop/pymdown-extensions-10.4
Bump pymdown-extensions from 10.3.1 to 10.4
2023-11-13 06:27:44 +01:00
dependabot[bot] 84b3f9924a Bump ruff from 0.1.4 to 0.1.5
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.4 to 0.1.5.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.4...v0.1.5)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-13 03:34:19 +00:00
dependabot[bot] 50b264c6f8 Bump pymdown-extensions from 10.3.1 to 10.4
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.3.1 to 10.4.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.3.1...10.4)

---
updated-dependencies:
- dependency-name: pymdown-extensions
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-13 03:34:07 +00:00
dependabot[bot] 88e8a9fe2b Bump numpy from 1.26.1 to 1.26.2
Bumps [numpy](https://github.com/numpy/numpy) from 1.26.1 to 1.26.2.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v1.26.1...v1.26.2)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-13 03:33:57 +00:00
dependabot[bot] d65aef72e8 Bump xgboost from 2.0.1 to 2.0.2
Bumps [xgboost](https://github.com/dmlc/xgboost) from 2.0.1 to 2.0.2.
- [Release notes](https://github.com/dmlc/xgboost/releases)
- [Changelog](https://github.com/dmlc/xgboost/blob/master/NEWS.md)
- [Commits](https://github.com/dmlc/xgboost/compare/v2.0.1...v2.0.2)

---
updated-dependencies:
- dependency-name: xgboost
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-13 03:33:44 +00:00
Matthias 8273c0c2cd Skip exchange validation in API server dependencies
Especially when validating pairlists for non-main exchanges (the exchange not in the config),
validation can mess with the exchange loading.
2023-11-12 17:34:16 +01:00
Matthias c7624b1ed6 Simplify LiveStats models 2023-11-11 17:18:18 +01:00
Matthias 54536a1c8e use profit_ratio for mix_tag_performance 2023-11-11 17:18:13 +01:00
Matthias 7daa06a207 Align mixtag response with other statistic models 2023-11-11 17:18:06 +01:00
Matthias da647735b6 Merge pull request #9407 from stash86/bt-metrics
add entries, exits, and mix_tags API endpoints
2023-11-11 16:10:10 +01:00
Matthias 7d0ecfde93 Add tests to ensure responses are as expected 2023-11-11 14:43:43 +01:00
Matthias 2ef716e94c Add response_models for new endpoints 2023-11-11 14:43:30 +01:00
Matthias de68850d28 Don't tag informative endpoints as "trading" 2023-11-11 14:31:18 +01:00
Matthias 59cefda283 Update strategy-callbacks.md with new information
on max_entry_position_adjustment
2023-11-11 13:11:17 +01:00
Matthias babcd5887f Merge pull request #9408 from konradbeck/patch-1
Update freqai-feature-engineering.md
2023-11-11 10:54:27 +01:00
Matthias c9a5e5a98c Fix another (identical) typo 2023-11-11 10:50:58 +01:00
konradbeck 51dc5811c2 Update freqai-feature-engineering.md
I cannot find any reference to 'include_periods_candles'
2023-11-11 09:38:52 +02:00
Stefano Ariestasia 05e36f7b21 increase API version 2023-11-11 15:33:15 +09:00
Stefano Ariestasia 0738cae4a0 fix pre-commit 2023-11-11 15:23:20 +09:00
Stefano Ariestasia da3c42bbbc add entries, exits, and mix_tags API endpoints 2023-11-11 15:16:40 +09:00
Matthias e728e3bc75 Merge pull request #9402 from freqtrade/dependabot/pip/pyarrow-14.0.1
Bump pyarrow from 14.0.0 to 14.0.1
2023-11-10 21:11:23 +01:00
Matthias 315783441d Update pyarrow wheels 2023-11-10 19:41:23 +01:00
dependabot[bot] 62f1421cfb Bump pyarrow from 14.0.0 to 14.0.1
Bumps [pyarrow](https://github.com/apache/arrow) from 14.0.0 to 14.0.1.
- [Commits](https://github.com/apache/arrow/compare/go/v14.0.0...apache-arrow-14.0.1)

---
updated-dependencies:
- dependency-name: pyarrow
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-09 22:48:16 +00:00
Matthias 52f12b704b Avoid time colision when creating orders in test
avoid flakyness of test.
2023-11-06 19:42:16 +01:00
Matthias ee5051f788 Merge pull request #9388 from freqtrade/dependabot/pip/develop/pyarrow-14.0.0
Bump pyarrow from 13.0.0 to 14.0.0
2023-11-06 17:46:19 +01:00
Matthias b30b1227e3 Merge pull request #9394 from freqtrade/dependabot/pip/develop/sqlalchemy-2.0.23
Bump sqlalchemy from 2.0.22 to 2.0.23
2023-11-06 17:45:36 +01:00
Matthias dd2f8db392 Merge pull request #9396 from freqtrade/dependabot/pip/develop/ccxt-4.1.40
Bump ccxt from 4.1.39 to 4.1.40
2023-11-06 17:45:20 +01:00
Matthias 5a76d81529 Merge pull request #9398 from freqtrade/dependabot/pip/develop/uvicorn-0.24.0.post1
Bump uvicorn from 0.23.2 to 0.24.0.post1
2023-11-06 17:21:57 +01:00
Matthias b9851c78ad Merge pull request #9397 from freqtrade/dependabot/pip/develop/nbconvert-7.11.0
Bump nbconvert from 7.10.0 to 7.11.0
2023-11-06 17:21:35 +01:00
Matthias 777cf2ae7a Merge pull request #9399 from freqtrade/dependabot/pip/develop/ruff-0.1.4
Bump ruff from 0.1.3 to 0.1.4
2023-11-06 17:21:17 +01:00
dependabot[bot] 3729b3d793 Bump ruff from 0.1.3 to 0.1.4
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.3...v0.1.4)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 14:54:26 +00:00
dependabot[bot] 39fc78205d Bump uvicorn from 0.23.2 to 0.24.0.post1
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.23.2 to 0.24.0.post1.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/CHANGELOG.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.23.2...0.24.0.post1)

---
updated-dependencies:
- dependency-name: uvicorn
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 14:54:11 +00:00
dependabot[bot] 46a67e8d4f Bump nbconvert from 7.10.0 to 7.11.0
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 7.10.0 to 7.11.0.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Changelog](https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jupyter/nbconvert/compare/v7.10.0...v7.11.0)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 14:54:05 +00:00
dependabot[bot] 69017805c0 Bump ccxt from 4.1.39 to 4.1.40
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.1.39 to 4.1.40.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.1.39...4.1.40)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 14:54:00 +00:00
Matthias bcec611973 Add pre-built wheels for pyarrow 14 2023-11-06 15:43:55 +01:00
Matthias fbb11a394a Bump sqlalchemy pre-commit 2023-11-06 15:42:18 +01:00
Matthias 5cb916977e Merge pull request #9390 from freqtrade/dependabot/pip/develop/cachetools-5.3.2
Bump cachetools from 5.3.1 to 5.3.2
2023-11-06 15:40:54 +01:00
Matthias 7d4c9bc0cf Merge pull request #9395 from freqtrade/dependabot/pip/develop/markdown-3.5.1
Bump markdown from 3.5 to 3.5.1
2023-11-06 15:40:39 +01:00
Matthias ea2beb46e7 Merge pull request #9392 from freqtrade/dependabot/pip/develop/mkdocs-material-9.4.8
Bump mkdocs-material from 9.4.7 to 9.4.8
2023-11-06 15:40:29 +01:00
Matthias 216ee8117a Merge pull request #9393 from freqtrade/dependabot/pip/develop/tensorboard-2.15.1
Bump tensorboard from 2.15.0 to 2.15.1
2023-11-06 15:40:12 +01:00
Matthias 9c1210b34e Merge pull request #9391 from freqtrade/dependabot/pip/develop/filelock-3.13.1
Bump filelock from 3.12.4 to 3.13.1
2023-11-06 06:44:40 +01:00
dependabot[bot] 921e034266 Bump sqlalchemy from 2.0.22 to 2.0.23
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 2.0.22 to 2.0.23.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 05:43:11 +00:00
Matthias 6f358b16c0 Merge pull request #9385 from freqtrade/dependabot/pip/develop/ccxt-4.1.39
Bump ccxt from 4.1.31 to 4.1.39
2023-11-06 06:42:10 +01:00
dependabot[bot] 264ab2c471 Bump pyarrow from 13.0.0 to 14.0.0
Bumps [pyarrow](https://github.com/apache/arrow) from 13.0.0 to 14.0.0.
- [Commits](https://github.com/apache/arrow/compare/go/v13.0.0...go/v14.0.0)

---
updated-dependencies:
- dependency-name: pyarrow
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 05:40:25 +00:00
Matthias a9d6f0023a Merge pull request #9384 from freqtrade/dependabot/pip/develop/py-find-1st-1.1.6
Bump py-find-1st from 1.1.5 to 1.1.6
2023-11-06 06:39:37 +01:00
dependabot[bot] 31af1d5dc7 Bump markdown from 3.5 to 3.5.1
Bumps [markdown](https://github.com/Python-Markdown/markdown) from 3.5 to 3.5.1.
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Changelog](https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.5...3.5.1)

---
updated-dependencies:
- dependency-name: markdown
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 05:38:40 +00:00
dependabot[bot] 588bbb45b5 Bump cachetools from 5.3.1 to 5.3.2
Bumps [cachetools](https://github.com/tkem/cachetools) from 5.3.1 to 5.3.2.
- [Changelog](https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/tkem/cachetools/compare/v5.3.1...v5.3.2)

---
updated-dependencies:
- dependency-name: cachetools
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 05:38:10 +00:00
Matthias 278c999f1f Merge pull request #9389 from freqtrade/dependabot/pip/develop/jsonschema-4.19.2
Bump jsonschema from 4.19.1 to 4.19.2
2023-11-06 06:38:09 +01:00
Matthias 825ae15109 Merge pull request #9386 from freqtrade/dependabot/pip/develop/nbconvert-7.10.0
Bump nbconvert from 7.9.2 to 7.10.0
2023-11-06 06:37:31 +01:00
Matthias 30cacc7cca Merge pull request #9383 from freqtrade/dependabot/pip/develop/fastapi-0.104.1
Bump fastapi from 0.104.0 to 0.104.1
2023-11-06 06:37:08 +01:00
dependabot[bot] 7ed037bad7 Bump tensorboard from 2.15.0 to 2.15.1
Bumps [tensorboard](https://github.com/tensorflow/tensorboard) from 2.15.0 to 2.15.1.
- [Release notes](https://github.com/tensorflow/tensorboard/releases)
- [Changelog](https://github.com/tensorflow/tensorboard/blob/2.15.1/RELEASE.md)
- [Commits](https://github.com/tensorflow/tensorboard/compare/2.15.0...2.15.1)

---
updated-dependencies:
- dependency-name: tensorboard
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 03:52:46 +00:00
dependabot[bot] 77b00b2a12 Bump mkdocs-material from 9.4.7 to 9.4.8
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.4.7 to 9.4.8.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.4.7...9.4.8)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 03:52:41 +00:00
dependabot[bot] 773bc386f7 Bump filelock from 3.12.4 to 3.13.1
Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.12.4 to 3.13.1.
- [Release notes](https://github.com/tox-dev/py-filelock/releases)
- [Changelog](https://github.com/tox-dev/filelock/blob/main/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/py-filelock/compare/3.12.4...3.13.1)

---
updated-dependencies:
- dependency-name: filelock
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 03:52:35 +00:00
dependabot[bot] 90dacaca09 Bump jsonschema from 4.19.1 to 4.19.2
Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.19.1 to 4.19.2.
- [Release notes](https://github.com/python-jsonschema/jsonschema/releases)
- [Changelog](https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/python-jsonschema/jsonschema/compare/v4.19.1...v4.19.2)

---
updated-dependencies:
- dependency-name: jsonschema
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 03:52:27 +00:00
dependabot[bot] 3689ad16b5 Bump nbconvert from 7.9.2 to 7.10.0
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 7.9.2 to 7.10.0.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Changelog](https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jupyter/nbconvert/compare/v7.9.2...v7.10.0)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 03:52:09 +00:00
dependabot[bot] ab9954350e Bump ccxt from 4.1.31 to 4.1.39
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.1.31 to 4.1.39.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.1.31...4.1.39)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 03:52:05 +00:00
dependabot[bot] 533f11d9eb Bump py-find-1st from 1.1.5 to 1.1.6
Bumps [py-find-1st](https://github.com/roebel/py_find_1st) from 1.1.5 to 1.1.6.
- [Release notes](https://github.com/roebel/py_find_1st/releases)
- [Commits](https://github.com/roebel/py_find_1st/commits)

---
updated-dependencies:
- dependency-name: py-find-1st
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 03:51:57 +00:00
dependabot[bot] 551033a7c3 Bump fastapi from 0.104.0 to 0.104.1
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.104.0 to 0.104.1.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.104.0...0.104.1)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 03:51:55 +00:00
Matthias e003930e18 Merge pull request #9382 from freqtrade/test_reduce_time
Reduce wait for ws test
2023-11-05 18:09:50 +01:00
Matthias 2efef72ec2 Reduce wait for ws test 2023-11-05 17:17:07 +01:00
Matthias eb40fc698d Merge pull request #9381 from freqtrade/test_refactor
Test refactor
2023-11-05 17:16:35 +01:00
Matthias 751db2be78 fix: test typo mishap 2023-11-05 16:35:49 +01:00
Matthias 6ea353447e use tmp_path instead of tmpdir 2023-11-05 16:25:36 +01:00
Matthias 5a3839320d Remove further usages of Path(tmpdir) 2023-11-05 16:25:23 +01:00
Matthias 555f4b51e1 Further improvements to test setup 2023-11-05 16:23:22 +01:00
Matthias be82248e01 Remove futher usages of Path(tmpdir) 2023-11-05 16:18:28 +01:00
Matthias 7bed7801cc Further test simplifications 2023-11-05 16:15:36 +01:00
Matthias eb409de916 use tmp_path instead of Path(tmpdir) 2023-11-05 16:15:21 +01:00
Matthias 8ce39a6d75 Merge pull request #9378 from freqtrade/fix/transformer-dimensions
Bugfix: PyTorchTransformer
2023-11-04 15:51:54 +01:00
robcaulk 72dc65cb6a fix: swap tensor dimension to play nicely with pandas 2023-11-04 14:29:51 +01:00
Matthias c94c667fb1 Merge pull request #9375 from freqtrade/ci/pi_cache_talib
Update Dockerfile.armhf to use prebuilt wheels
2023-11-03 06:52:08 +01:00
Matthias 2a0175f629 Add "empty" config to disable default discord messages
closes #9372
2023-11-02 18:09:41 +01:00
Matthias cd68173440 Update Dockerfile.armhf to use prebuilt wheels 2023-11-02 07:08:36 +01:00
Matthias c920e3a031 Bump Dockerfile to 3.11.6 2023-11-02 07:05:10 +01:00
Matthias 83afc4ac7e Add pyarrow 3.11 wheel 2023-11-02 07:04:33 +01:00
Matthias 19f62649ea use "noindex" to install pyarrow on armhf 2023-11-02 07:03:22 +01:00
Matthias e4186cde9e Merge pull request #9369 from freqtrade/feat/informative_base
informative assets -> {base}
2023-11-02 06:36:55 +01:00
Matthias 61ed6aee62 Add test for new formatting 2023-11-01 11:02:50 +01:00
Matthias 051b6e9458 Update documentation 2023-11-01 11:02:03 +01:00
Matthias 44a24685ac Add support for {base} and {quote} in informative decorator 2023-11-01 11:01:55 +01:00
Matthias 1cde980c08 Extract pair_formating options 2023-11-01 10:14:19 +01:00
Matthias 05ef4f9b6f Fix forceenter - cancel dialog not working
closes #9368
2023-11-01 09:10:21 +01:00
Matthias 53f00f248e Merge pull request #9362 from freqtrade/dependabot/pip/develop/pandas-2.1.2
Bump pandas from 2.0.3 to 2.1.2
2023-10-31 14:29:09 +01:00
Matthias a9cd282500 Merge pull request #9349 from freqtrade/fix/issue_9346
Fix/issue 9346
2023-10-31 06:44:37 +01:00
Matthias f142abfb76 Merge pull request #9348 from freqtrade/new_release
New release 2023.10
2023-10-31 06:42:58 +01:00
Matthias c98c6c38dc update binance leverage tiers 2023-10-30 20:10:07 +01:00
Matthias 26aa14dbfc update binance leverage tiers 2023-10-30 20:10:01 +01:00
Matthias 04cd931cc8 Pass explicit stringIO type to pandas read_json 2023-10-30 19:20:59 +01:00
Matthias b8a6330c3f Improve pandas handling 2023-10-30 19:16:22 +01:00
Matthias 949c3c660b Ignore "nan" enter and exit tags
these happen if strings are assigned to individual rows without initializing the whole column
2023-10-30 19:05:15 +01:00
Matthias 9297a90d7f Use proper indexing to avoid deprecation warnings 2023-10-30 18:26:25 +01:00
Matthias b19f17fdfa Improve handling of bt results in optimize_reports 2023-10-30 18:26:01 +01:00
Matthias bbdc6c0f5c improve pandas syntax to avoid deprecation error 2023-10-30 18:11:38 +01:00
dependabot[bot] 528c65c194 Bump pandas from 2.0.3 to 2.1.2
Bumps [pandas](https://github.com/pandas-dev/pandas) from 2.0.3 to 2.1.2.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Commits](https://github.com/pandas-dev/pandas/compare/v2.0.3...v2.1.2)

---
updated-dependencies:
- dependency-name: pandas
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 09:13:28 +00:00
Matthias a932df7320 Merge pull request #9356 from freqtrade/dependabot/pip/develop/orjson-3.9.10
Bump orjson from 3.9.9 to 3.9.10
2023-10-30 10:12:34 +01:00
Matthias 2d9b05a3ab Merge pull request #9354 from freqtrade/dependabot/pip/develop/ccxt-4.1.31
Bump ccxt from 4.1.22 to 4.1.31
2023-10-30 10:12:16 +01:00
Matthias 7cf1d25dc6 Merge pull request #9361 from freqtrade/dependabot/pip/develop/types-cachetools-5.3.0.7
Bump types-cachetools from 5.3.0.6 to 5.3.0.7
2023-10-30 10:11:57 +01:00
Matthias 19c955d505 Merge pull request #9358 from freqtrade/dependabot/pip/develop/pytest-7.4.3
Bump pytest from 7.4.2 to 7.4.3
2023-10-30 10:11:21 +01:00
Matthias bd243da47e Merge pull request #9352 from freqtrade/dependabot/pip/develop/plotly-5.18.0
Bump plotly from 5.17.0 to 5.18.0
2023-10-30 07:14:59 +01:00
Matthias bf24c3b279 BUmp cachetools types in pre-commit ocnfig 2023-10-30 07:07:51 +01:00
Matthias e9c72acff2 Merge pull request #9360 from freqtrade/dependabot/pip/develop/ast-comments-1.2.0
Bump ast-comments from 1.1.2 to 1.2.0
2023-10-30 06:55:35 +01:00
Matthias 09fd22c2f8 Merge pull request #9347 from freqtrade/ci/numpy_bump
Bump numpy on armhf devices
2023-10-30 06:48:46 +01:00
Matthias 45721ed62e Merge pull request #9355 from freqtrade/dependabot/pip/develop/xgboost-2.0.1
Bump xgboost from 2.0.0 to 2.0.1
2023-10-30 06:48:22 +01:00
dependabot[bot] 5182045cda Bump pytest from 7.4.2 to 7.4.3
Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.4.2 to 7.4.3.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.4.2...7.4.3)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 05:45:34 +00:00
Matthias 51ab8fecfc Merge pull request #9359 from freqtrade/dependabot/pip/develop/ruff-0.1.3
Bump ruff from 0.1.1 to 0.1.3
2023-10-30 06:44:45 +01:00
dependabot[bot] b36907133c Bump ccxt from 4.1.22 to 4.1.31
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.1.22 to 4.1.31.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.1.22...4.1.31)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 05:43:21 +00:00
Matthias b6d899344e Merge pull request #9357 from freqtrade/dependabot/pip/develop/mkdocs-material-9.4.7
Bump mkdocs-material from 9.4.6 to 9.4.7
2023-10-30 06:42:47 +01:00
Matthias 095f9fc1ab Merge pull request #9351 from freqtrade/dependabot/pip/develop/cryptography-41.0.5
Bump cryptography from 41.0.4 to 41.0.5
2023-10-30 06:42:32 +01:00
dependabot[bot] 0ab9eb7b05 Bump orjson from 3.9.9 to 3.9.10
Bumps [orjson](https://github.com/ijl/orjson) from 3.9.9 to 3.9.10.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.9.9...3.9.10)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 05:42:04 +00:00
Matthias d0c582e137 Merge pull request #9353 from freqtrade/dependabot/pip/develop/python-rapidjson-1.13
Bump python-rapidjson from 1.12 to 1.13
2023-10-30 06:40:54 +01:00
dependabot[bot] d3d4464983 Bump types-cachetools from 5.3.0.6 to 5.3.0.7
Bumps [types-cachetools](https://github.com/python/typeshed) from 5.3.0.6 to 5.3.0.7.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 03:37:57 +00:00
dependabot[bot] 1d0934074c Bump ast-comments from 1.1.2 to 1.2.0
Bumps [ast-comments](https://github.com/t3rn0/ast-comments) from 1.1.2 to 1.2.0.
- [Release notes](https://github.com/t3rn0/ast-comments/releases)
- [Commits](https://github.com/t3rn0/ast-comments/compare/1.1.2...1.2.0)

---
updated-dependencies:
- dependency-name: ast-comments
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 03:37:53 +00:00
dependabot[bot] 9382fb3be8 Bump ruff from 0.1.1 to 0.1.3
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.1.1 to 0.1.3.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.1.1...v0.1.3)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 03:37:49 +00:00
dependabot[bot] 223af95da7 Bump mkdocs-material from 9.4.6 to 9.4.7
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.4.6 to 9.4.7.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.4.6...9.4.7)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 03:37:23 +00:00
dependabot[bot] 8b68b55de4 Bump xgboost from 2.0.0 to 2.0.1
Bumps [xgboost](https://github.com/dmlc/xgboost) from 2.0.0 to 2.0.1.
- [Release notes](https://github.com/dmlc/xgboost/releases)
- [Changelog](https://github.com/dmlc/xgboost/blob/master/NEWS.md)
- [Commits](https://github.com/dmlc/xgboost/compare/v2.0.0...v2.0.1)

---
updated-dependencies:
- dependency-name: xgboost
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 03:37:06 +00:00
dependabot[bot] 99592d1a12 Bump python-rapidjson from 1.12 to 1.13
Bumps [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) from 1.12 to 1.13.
- [Changelog](https://github.com/python-rapidjson/python-rapidjson/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-rapidjson/python-rapidjson/compare/v1.12...v1.13)

---
updated-dependencies:
- dependency-name: python-rapidjson
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 03:36:47 +00:00
dependabot[bot] b69f5aaac3 Bump plotly from 5.17.0 to 5.18.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 5.17.0 to 5.18.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/master/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v5.17.0...v5.18.0)

---
updated-dependencies:
- dependency-name: plotly
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 03:36:34 +00:00
dependabot[bot] 0c1fefe6e7 Bump cryptography from 41.0.4 to 41.0.5
Bumps [cryptography](https://github.com/pyca/cryptography) from 41.0.4 to 41.0.5.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/41.0.4...41.0.5)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 03:36:27 +00:00
Matthias a049ff9371 Improve special testcase 2023-10-29 14:32:15 +01:00
Matthias 0c51e2637f Fix calculation issue for #9346
Closes #9346
2023-10-29 14:29:07 +01:00
Matthias 7492b75e1c Bump version to 2023.11-dev 2023-10-29 13:55:51 +01:00
Matthias 9a73f7a7b8 Bump version to 2023.10 2023-10-29 13:51:19 +01:00
Matthias 7813d1acd6 Merge branch 'stable' into new_release 2023-10-29 13:51:10 +01:00
Matthias 24dfd9b93b Add test for #9346, showing current behavior 2023-10-29 10:52:45 +01:00
Matthias 7d65b3e1b4 install libopenblas-base to base image 2023-10-29 10:48:19 +01:00
Matthias 2c20464983 Reinit orders list on "local" objects to instance variable 2023-10-29 09:18:00 +01:00
Matthias e97d9013d5 Avoid having orders leak after multiple "from_json" calls 2023-10-29 09:17:07 +01:00
Matthias cf43427be5 armhf: Move pip install to base image 2023-10-28 10:22:54 +02:00
Matthias 7ae41be975 Remove numpy armv7l lock since wheels are now available 2023-10-28 08:30:27 +02:00
Matthias 1e18b35f22 Change box type to tip 2023-10-27 07:08:38 +02:00
Matthias bb78285661 Add hint about helper commands to common mistakes section 2023-10-27 06:38:35 +02:00
Matthias b47ba8cfd3 Merge pull request #9339 from freqtrade/fix/returndf-bug
fix: bug in startup candle offset
2023-10-26 19:49:44 +02:00
Matthias 1dccdf0594 bump ruff in pre-commit 2023-10-26 19:49:25 +02:00
robcaulk 5da48d8ffc chore: fix tests 2023-10-25 18:38:30 +02:00
robcaulk 4f4b7c5625 fix: bug in startup candle offset 2023-10-23 20:31:51 +02:00
Matthias 9dcf236387 Align flake and ruff configs further 2023-10-23 18:06:31 +02:00
Matthias 97bc5804fd Merge pull request #9334 from freqtrade/dependabot/pip/develop/tensorboard-2.15.0
Bump tensorboard from 2.14.1 to 2.15.0
2023-10-23 09:00:42 +02:00
Matthias beab966851 Merge pull request #9328 from freqtrade/dependabot/pip/develop/websockets-12.0
Bump websockets from 11.0.3 to 12.0
2023-10-23 09:00:17 +02:00
Matthias 00a7e8f9a2 Merge pull request #9338 from freqtrade/dependabot/pip/develop/ccxt-4.1.22
Bump ccxt from 4.1.13 to 4.1.22
2023-10-23 08:57:12 +02:00
Matthias 59dc526683 Merge pull request #9335 from freqtrade/dependabot/pip/develop/types-requests-2.31.0.10
Bump types-requests from 2.31.0.9 to 2.31.0.10
2023-10-23 08:56:50 +02:00
Matthias aef7f9dc03 Merge pull request #9337 from freqtrade/dependabot/pip/develop/pytest-mock-3.12.0
Bump pytest-mock from 3.11.1 to 3.12.0
2023-10-23 08:56:36 +02:00
Matthias abc6a08397 Merge pull request #9336 from freqtrade/dependabot/pip/develop/fastapi-0.104.0
Bump fastapi from 0.103.2 to 0.104.0
2023-10-23 08:56:20 +02:00
Matthias eb4da8a6f6 Merge pull request #9332 from freqtrade/dependabot/pip/develop/ruff-0.1.1
Bump ruff from 0.0.292 to 0.1.1
2023-10-23 08:56:00 +02:00
dependabot[bot] 494fd734bc Bump ruff from 0.0.292 to 0.1.1
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.0.292 to 0.1.1.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.0.292...v0.1.1)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 04:47:44 +00:00
Matthias 9174f60b1d Merge pull request #9330 from freqtrade/dependabot/pip/develop/mypy-1.6.1
Bump mypy from 1.6.0 to 1.6.1
2023-10-23 06:46:57 +02:00
Matthias c2905a4522 use --output-format in ruff CI 2023-10-23 06:43:50 +02:00
Matthias adf03e2ee3 Merge pull request #9329 from freqtrade/dependabot/pip/develop/pymdown-extensions-10.3.1
Bump pymdown-extensions from 10.3 to 10.3.1
2023-10-23 06:32:13 +02:00
Matthias fe5f085ec1 types-requests pre-commit 2023-10-23 06:31:22 +02:00
dependabot[bot] 748ac50d83 Bump ccxt from 4.1.13 to 4.1.22
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.1.13 to 4.1.22.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.1.13...4.1.22)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 03:47:08 +00:00
dependabot[bot] d2069c1729 Bump pytest-mock from 3.11.1 to 3.12.0
Bumps [pytest-mock](https://github.com/pytest-dev/pytest-mock) from 3.11.1 to 3.12.0.
- [Release notes](https://github.com/pytest-dev/pytest-mock/releases)
- [Changelog](https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-mock/compare/v3.11.1...v3.12.0)

---
updated-dependencies:
- dependency-name: pytest-mock
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 03:47:01 +00:00
dependabot[bot] 38cf50830a Bump fastapi from 0.103.2 to 0.104.0
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.103.2 to 0.104.0.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.103.2...0.104.0)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 03:46:55 +00:00
dependabot[bot] bf96a43efb Bump types-requests from 2.31.0.9 to 2.31.0.10
Bumps [types-requests](https://github.com/python/typeshed) from 2.31.0.9 to 2.31.0.10.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 03:46:50 +00:00
dependabot[bot] 22b4555926 Bump tensorboard from 2.14.1 to 2.15.0
Bumps [tensorboard](https://github.com/tensorflow/tensorboard) from 2.14.1 to 2.15.0.
- [Release notes](https://github.com/tensorflow/tensorboard/releases)
- [Changelog](https://github.com/tensorflow/tensorboard/blob/2.15.0/RELEASE.md)
- [Commits](https://github.com/tensorflow/tensorboard/compare/2.14.1...2.15.0)

---
updated-dependencies:
- dependency-name: tensorboard
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 03:46:46 +00:00
dependabot[bot] 7fb3632e7b Bump mypy from 1.6.0 to 1.6.1
Bumps [mypy](https://github.com/python/mypy) from 1.6.0 to 1.6.1.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.6.0...v1.6.1)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 03:46:11 +00:00
dependabot[bot] e5f0fe288a Bump pymdown-extensions from 10.3 to 10.3.1
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.3 to 10.3.1.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.3...10.3.1)

---
updated-dependencies:
- dependency-name: pymdown-extensions
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 03:46:06 +00:00
dependabot[bot] 58aaaffe2b Bump websockets from 11.0.3 to 12.0
Bumps [websockets](https://github.com/python-websockets/websockets) from 11.0.3 to 12.0.
- [Release notes](https://github.com/python-websockets/websockets/releases)
- [Commits](https://github.com/python-websockets/websockets/compare/11.0.3...12.0)

---
updated-dependencies:
- dependency-name: websockets
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 03:46:02 +00:00
Matthias c62aefbfde Merge pull request #9327 from amargedon/mapping-fiat-usdc
Add FIAT mapping for USDC
2023-10-22 20:12:42 +02:00
amargedon 16dfde22fc Add FIAT mapping for USDC 2023-10-22 18:43:35 +02:00
Matthias bbbc8a760c Fix stop evaluation sequence to have stop before liquidation
Adjust test to have liquidation above stop
closes #9296
2023-10-22 09:24:28 +02:00
Matthias 9b45bb2e24 Merge pull request #9325 from freqtrade/revert-9281-dependabot/pip/develop/torch-2.1.0
Revert "Bump torch from 2.0.1 to 2.1.0"
2023-10-22 09:23:58 +02:00
Matthias e69c21c9f5 Revert "Bump torch from 2.0.1 to 2.1.0" 2023-10-22 08:59:23 +02:00
Robert Caulk 72933859cf Merge pull request #9281 from freqtrade/dependabot/pip/develop/torch-2.1.0
Bump torch from 2.0.1 to 2.1.0
2023-10-22 08:01:16 +02:00
Matthias 0a5cee6a73 Ensure we're not erroring on invalid custom_entry / exit prices
closes #9323
2023-10-19 22:06:21 +02:00
Matthias a80c979482 Improve behavior when downloading trades data on time-based pagination
closes #9307
2023-10-18 20:26:51 +02:00
Matthias 4a4b695b94 Merge pull request #9321 from freqtrade/dependabot/pip/urllib3-2.0.7
Bump urllib3 from 2.0.6 to 2.0.7
2023-10-18 06:26:10 +02:00
dependabot[bot] a8c246ce0d Bump urllib3 from 2.0.6 to 2.0.7
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.6 to 2.0.7.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/2.0.6...2.0.7)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-17 21:02:44 +00:00
Matthias c6e979ddda Merge pull request #9303 from freqtrade/fix/progressbarCallback
Improve freqAI RL (error) behavior
2023-10-17 18:01:31 +02:00
Matthias 1a78346cf1 Add further ebug log message for stopping clarity for --dl-data 2023-10-17 07:11:06 +02:00
Matthias e6d0d53e47 Add further ebug log message for stopping clarity 2023-10-17 07:03:03 +02:00
Matthias 68680bb2c6 Merge pull request #9314 from freqtrade/dependabot/pip/develop/numpy-1.26.1
Bump numpy from 1.25.2 to 1.26.1
2023-10-16 19:33:07 +02:00
Matthias 7de415a6a4 Don't bump numpy for armhf just yet 2023-10-16 18:28:00 +02:00
dependabot[bot] f46fa440f0 Bump numpy from 1.25.2 to 1.26.1
Bumps [numpy](https://github.com/numpy/numpy) from 1.25.2 to 1.26.1.
- [Release notes](https://github.com/numpy/numpy/releases)
- [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst)
- [Commits](https://github.com/numpy/numpy/compare/v1.25.2...v1.26.1)

---
updated-dependencies:
- dependency-name: numpy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 16:27:50 +00:00
Matthias 56177d7e92 Merge pull request #9317 from freqtrade/dependabot/pip/develop/ccxt-4.1.13
Bump ccxt from 4.1.8 to 4.1.13
2023-10-16 18:27:02 +02:00
Matthias 41584317e4 Merge pull request #9311 from freqtrade/dependabot/pip/develop/types-requests-2.31.0.9
Bump types-requests from 2.31.0.8 to 2.31.0.9
2023-10-16 14:52:35 +02:00
Matthias 3264e2c31d pre-commit requests bump 2023-10-16 13:38:01 +02:00
dependabot[bot] fadc7a2051 Bump types-requests from 2.31.0.8 to 2.31.0.9
Bumps [types-requests](https://github.com/python/typeshed) from 2.31.0.8 to 2.31.0.9.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 09:59:18 +00:00
Matthias cebc55687b Merge pull request #9316 from freqtrade/dependabot/pip/develop/mypy-1.6.0
Bump mypy from 1.5.1 to 1.6.0
2023-10-16 11:58:20 +02:00
dependabot[bot] 5940279f7b Bump mypy from 1.5.1 to 1.6.0
Bumps [mypy](https://github.com/python/mypy) from 1.5.1 to 1.6.0.
- [Commits](https://github.com/python/mypy/compare/v1.5.1...v1.6.0)

---
updated-dependencies:
- dependency-name: mypy
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 07:01:34 +00:00
dependabot[bot] 35f6333b67 Bump ccxt from 4.1.8 to 4.1.13
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.1.8 to 4.1.13.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.1.8...4.1.13)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 07:01:30 +00:00
Matthias 262b044969 Merge pull request #9312 from freqtrade/dependabot/pip/develop/sqlalchemy-2.0.22
Bump sqlalchemy from 2.0.21 to 2.0.22
2023-10-16 09:00:55 +02:00
Matthias a571df784c Merge pull request #9318 from freqtrade/dependabot/pip/develop/pre-commit-3.5.0
Bump pre-commit from 3.4.0 to 3.5.0
2023-10-16 09:00:36 +02:00
Matthias 078aa8327b Merge pull request #9315 from freqtrade/dependabot/pip/develop/ast-comments-1.1.2
Bump ast-comments from 1.1.0 to 1.1.2
2023-10-16 07:25:41 +02:00
Matthias 10945edbe6 Merge pull request #9313 from freqtrade/dependabot/pip/develop/mkdocs-material-9.4.6
Bump mkdocs-material from 9.4.4 to 9.4.6
2023-10-16 07:03:05 +02:00
Matthias 5d9b69cbfe sqlalchemy - precommit 2023-10-16 06:33:53 +02:00
Matthias 89117dd53f Merge pull request #9310 from freqtrade/dependabot/pip/develop/psutil-5.9.6
Bump psutil from 5.9.5 to 5.9.6
2023-10-16 06:33:03 +02:00
Matthias 4af9654696 Merge pull request #9308 from freqtrade/dependabot/pip/develop/orjson-3.9.9
Bump orjson from 3.9.7 to 3.9.9
2023-10-16 06:32:33 +02:00
dependabot[bot] 1e0ce7d47a Bump pre-commit from 3.4.0 to 3.5.0
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v3.4.0...v3.5.0)

---
updated-dependencies:
- dependency-name: pre-commit
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 03:49:38 +00:00
dependabot[bot] 27cd54b42c Bump ast-comments from 1.1.0 to 1.1.2
Bumps [ast-comments](https://github.com/t3rn0/ast-comments) from 1.1.0 to 1.1.2.
- [Release notes](https://github.com/t3rn0/ast-comments/releases)
- [Commits](https://github.com/t3rn0/ast-comments/compare/1.1.0...1.1.2)

---
updated-dependencies:
- dependency-name: ast-comments
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 03:49:12 +00:00
dependabot[bot] ec64a182f9 Bump mkdocs-material from 9.4.4 to 9.4.6
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.4.4 to 9.4.6.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.4.4...9.4.6)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 03:48:51 +00:00
dependabot[bot] dd30df7057 Bump sqlalchemy from 2.0.21 to 2.0.22
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 2.0.21 to 2.0.22.
- [Release notes](https://github.com/sqlalchemy/sqlalchemy/releases)
- [Changelog](https://github.com/sqlalchemy/sqlalchemy/blob/main/CHANGES.rst)
- [Commits](https://github.com/sqlalchemy/sqlalchemy/commits)

---
updated-dependencies:
- dependency-name: sqlalchemy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 03:48:44 +00:00
dependabot[bot] 4c6e33aa82 Bump psutil from 5.9.5 to 5.9.6
Bumps [psutil](https://github.com/giampaolo/psutil) from 5.9.5 to 5.9.6.
- [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst)
- [Commits](https://github.com/giampaolo/psutil/compare/release-5.9.5...release-5.9.6)

---
updated-dependencies:
- dependency-name: psutil
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 03:48:10 +00:00
dependabot[bot] 8cb934849a Bump orjson from 3.9.7 to 3.9.9
Bumps [orjson](https://github.com/ijl/orjson) from 3.9.7 to 3.9.9.
- [Release notes](https://github.com/ijl/orjson/releases)
- [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ijl/orjson/compare/3.9.7...3.9.9)

---
updated-dependencies:
- dependency-name: orjson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-16 03:47:58 +00:00
Matthias c627aee096 Merge pull request #9304 from stash86/bt-metrics
have to use bitwise operator on series comparison, otherwise ambiguous error is thrown
2023-10-15 13:07:54 +02:00
Stefano Ariestasia 9d552d45c2 have to use bitwise operator, otherwise ambiguous error is thrown 2023-10-15 19:32:03 +09:00
Matthias 1e1b8dbe53 Handle multiproc calls for now 2023-10-15 12:03:18 +02:00
Matthias 2d9d8dc976 Improve logic for progressbarcallback handling 2023-10-15 11:20:25 +02:00
Matthias ba674fc796 Type-ignore training-envs 2023-10-15 11:20:11 +02:00
Matthias 58550515ad Fix deprecation warning from tensorboard-callback 2023-10-15 11:04:05 +02:00
Matthias 27bae60b68 Fix typo 2023-10-15 10:51:36 +02:00
Matthias 646dd63faf Properly close out progressbarCallback
based on suggestions provided in https://github.com/DLR-RM/stable-baselines3/issues/1645
2023-10-15 10:41:07 +02:00
Matthias 8d2b389e27 Fix wording in log msg 2023-10-15 10:40:45 +02:00
Matthias fa174a392a Merge pull request #9298 from freqtrade/funding_fees
improve Funding fee behavior
2023-10-13 16:38:16 +02:00
Matthias 042e35e8d3 Improve funding fee startup behavior 2023-10-13 06:45:00 +02:00
Matthias b76513ce33 Fix typo in trade_model 2023-10-12 10:18:57 +00:00
Matthias 368bfcf476 Add comment for funding fees running 2023-10-12 07:25:46 +02:00
Matthias fee3c598d0 Move schedule to 1 minute after the hour
This will avoid congestion at :00, and make sure that the dry-run funding fees are actually already available
2023-10-12 07:16:56 +02:00
Matthias 69264cc164 Reduce funding fee update calls
Funding fees update every 4-8 hours - calling this every 15 minutes is way overboard.
2023-10-12 07:13:30 +02:00
Matthias e81929bc55 Have test use funding_fee_running 2023-10-12 07:01:43 +02:00
Matthias 0843b19b6c Implement logic around funding_fees runnign 2023-10-12 06:53:46 +02:00
Matthias 813b472c6c Add funding_fee_running column 2023-10-12 06:48:35 +02:00
Matthias 2f079711ec Add explicit test for get_funding_fees logic 2023-10-12 06:27:57 +02:00
Matthias 97e9d2dc42 Remove get_funding_fee error handling - it's no longer raising this error. 2023-10-12 06:27:35 +02:00
Matthias 7344f20803 Handle funding_fee error in exchange class 2023-10-12 06:27:29 +02:00
Matthias bfe04464b4 Handle funding fee errors for regular trades per trade 2023-10-11 20:27:54 +02:00
Matthias 2225f5661b Additional funding fee update after additional entry orders 2023-10-11 20:27:03 +02:00
Matthias 9e77c93a54 Tighten funding-fee variance for backtest 2023-10-11 19:49:33 +02:00
Matthias b65fa98cee Simplify backtesting by using current_time more consequently 2023-10-11 19:45:00 +02:00
Matthias b57821b273 Add set_funding_fees to backtesting 2023-10-11 19:38:58 +02:00
Matthias db7f9598b0 add set_funding_fees method 2023-10-11 19:38:46 +02:00
Matthias e547da10de Move funding fee assignment to update_trade 2023-10-11 18:28:15 +02:00
Matthias 5a0c15f377 Update Idem test 2023-10-10 18:21:52 +02:00
Matthias 0f5b69b4f2 Move from_json to LocalTrade class 2023-10-10 07:13:32 +02:00
Matthias 86d4497aaf Add additional test for from_json 2023-10-09 20:01:41 +02:00
Matthias 4b80961c65 Merge pull request #9276 from freqtrade/cancel_behavior
Improve Cancel order messaging behavior
2023-10-09 18:13:04 +02:00
Matthias 785cc9df85 Merge pull request #9293 from freqtrade/revert-9285-dependabot/pip/develop/tables-3.9.1
Revert "Bump tables from 3.8.0 to 3.9.1"
2023-10-09 18:11:16 +02:00
Matthias 1bfecb0313 Revert "Bump tables from 3.8.0 to 3.9.1" 2023-10-09 18:11:01 +02:00
Matthias b88a561eb5 Merge pull request #9283 from freqtrade/dependabot/pip/develop/types-requests-2.31.0.8
Bump types-requests from 2.31.0.7 to 2.31.0.8
2023-10-09 09:42:26 +02:00
Matthias 4bf026605e Merge pull request #9289 from freqtrade/dependabot/pip/develop/markdown-3.5
Bump markdown from 3.4.4 to 3.5
2023-10-09 09:42:13 +02:00
Matthias db6933856f Merge pull request #9288 from freqtrade/dependabot/pip/develop/aiohttp-3.8.6
Bump aiohttp from 3.8.5 to 3.8.6
2023-10-09 09:41:49 +02:00
Matthias 01107ffa59 Merge pull request #9282 from freqtrade/dependabot/pip/develop/python-telegram-bot-20.6
Bump python-telegram-bot from 20.5 to 20.6
2023-10-09 09:41:32 +02:00
dependabot[bot] 74f678a26f Bump markdown from 3.4.4 to 3.5
Bumps [markdown](https://github.com/Python-Markdown/markdown) from 3.4.4 to 3.5.
- [Changelog](https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.4.4...3.5)

---
updated-dependencies:
- dependency-name: markdown
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 06:13:16 +00:00
Matthias bf93648198 Merge pull request #9287 from freqtrade/dependabot/pip/develop/nbconvert-7.9.2
Bump nbconvert from 7.8.0 to 7.9.2
2023-10-09 08:12:34 +02:00
Matthias 51dccaeb4c Merge pull request #9280 from freqtrade/dependabot/pip/develop/mkdocs-material-9.4.4
Bump mkdocs-material from 9.4.2 to 9.4.4
2023-10-09 08:11:04 +02:00
Matthias ed4252af53 Merge pull request #9285 from freqtrade/dependabot/pip/develop/tables-3.9.1
Bump tables from 3.8.0 to 3.9.1
2023-10-09 08:09:33 +02:00
Matthias 2fde902c82 Merge pull request #9284 from freqtrade/dependabot/pip/develop/python-rapidjson-1.12
Bump python-rapidjson from 1.11 to 1.12
2023-10-09 08:07:24 +02:00
Matthias 4ea75af2d9 Merge pull request #9286 from freqtrade/dependabot/pip/develop/ruff-0.0.292
Bump ruff from 0.0.291 to 0.0.292
2023-10-09 08:07:00 +02:00
Matthias 1bba0cf7fc Bump pre-commit types-requests 2023-10-09 07:06:33 +02:00
Matthias b1fd0c73c7 Add additional test case for funding-fee calculation 2023-10-09 07:05:39 +02:00
Matthias 29eb6d938b Update test for fixed funding_fee logic 2023-10-09 07:04:13 +02:00
Matthias 19620470bd Improve funding fee cutof logic 2023-10-09 07:04:13 +02:00
Matthias 7a69b01b9b avoid edge-case in test 2023-10-09 07:04:13 +02:00
Matthias bc531cf846 Improve variable naming 2023-10-09 07:04:13 +02:00
Matthias 14908e52e2 Improv variable naming 2023-10-09 07:04:13 +02:00
dependabot[bot] a86bf8d6d7 Bump aiohttp from 3.8.5 to 3.8.6
Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.8.5 to 3.8.6.
- [Release notes](https://github.com/aio-libs/aiohttp/releases)
- [Changelog](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst)
- [Commits](https://github.com/aio-libs/aiohttp/compare/v3.8.5...v3.8.6)

---
updated-dependencies:
- dependency-name: aiohttp
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 05:02:10 +00:00
Matthias 3662ca3ca6 Merge pull request #9279 from freqtrade/dependabot/pip/develop/ccxt-4.1.8
Bump ccxt from 4.0.112 to 4.1.8
2023-10-09 07:01:04 +02:00
dependabot[bot] 5fae03f7be Bump nbconvert from 7.8.0 to 7.9.2
Bumps [nbconvert](https://github.com/jupyter/nbconvert) from 7.8.0 to 7.9.2.
- [Release notes](https://github.com/jupyter/nbconvert/releases)
- [Changelog](https://github.com/jupyter/nbconvert/blob/main/CHANGELOG.md)
- [Commits](https://github.com/jupyter/nbconvert/compare/v7.8.0...v7.9.2)

---
updated-dependencies:
- dependency-name: nbconvert
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 03:54:23 +00:00
dependabot[bot] f7f0f3bebb Bump ruff from 0.0.291 to 0.0.292
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.0.291 to 0.0.292.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/BREAKING_CHANGES.md)
- [Commits](https://github.com/astral-sh/ruff/compare/v0.0.291...v0.0.292)

---
updated-dependencies:
- dependency-name: ruff
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 03:54:13 +00:00
dependabot[bot] ccbab6ee6f Bump tables from 3.8.0 to 3.9.1
Bumps [tables](https://github.com/PyTables/PyTables) from 3.8.0 to 3.9.1.
- [Release notes](https://github.com/PyTables/PyTables/releases)
- [Changelog](https://github.com/PyTables/PyTables/blob/master/RELEASE_NOTES.rst)
- [Commits](https://github.com/PyTables/PyTables/compare/v3.8.0...v3.9.1)

---
updated-dependencies:
- dependency-name: tables
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 03:53:53 +00:00
dependabot[bot] ef12dafea8 Bump python-rapidjson from 1.11 to 1.12
Bumps [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) from 1.11 to 1.12.
- [Changelog](https://github.com/python-rapidjson/python-rapidjson/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-rapidjson/python-rapidjson/compare/v1.11...v1.12)

---
updated-dependencies:
- dependency-name: python-rapidjson
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 03:53:42 +00:00
dependabot[bot] 08a65b50aa Bump types-requests from 2.31.0.7 to 2.31.0.8
Bumps [types-requests](https://github.com/python/typeshed) from 2.31.0.7 to 2.31.0.8.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 03:53:37 +00:00
dependabot[bot] d28d6cbdb4 Bump python-telegram-bot from 20.5 to 20.6
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 20.5 to 20.6.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Changelog](https://github.com/python-telegram-bot/python-telegram-bot/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v20.5...v20.6)

---
updated-dependencies:
- dependency-name: python-telegram-bot
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 03:53:34 +00:00
dependabot[bot] 41a6709ece Bump torch from 2.0.1 to 2.1.0
Bumps [torch](https://github.com/pytorch/pytorch) from 2.0.1 to 2.1.0.
- [Release notes](https://github.com/pytorch/pytorch/releases)
- [Changelog](https://github.com/pytorch/pytorch/blob/main/RELEASE.md)
- [Commits](https://github.com/pytorch/pytorch/compare/v2.0.1...v2.1.0)

---
updated-dependencies:
- dependency-name: torch
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 03:53:23 +00:00
dependabot[bot] 756f5d5408 Bump mkdocs-material from 9.4.2 to 9.4.4
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.4.2 to 9.4.4.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.4.2...9.4.4)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 03:53:10 +00:00
dependabot[bot] 422b9c8fbc Bump ccxt from 4.0.112 to 4.1.8
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.0.112 to 4.1.8.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.0.112...4.1.8)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 03:53:01 +00:00
Matthias 40ec2c4921 Improve messaging in case of delayed exchange cancel 2023-10-08 11:17:29 +02:00
Matthias 5cf7ad85a0 Adjust tests for new interface to handle_cancel_* methods 2023-10-08 10:44:37 +02:00
Matthias f02c9f0435 Pass order object to handle_cancel* methods 2023-10-08 10:26:27 +02:00
Matthias c59b5e7781 Improve type hinting 2023-10-08 09:58:06 +02:00
Matthias e525c6694b Add ft_cancel_reason column to order object 2023-10-08 09:46:12 +02:00
Matthias 897c14e2e5 Don't check for "open orders" in handle_cancel_enter
it's actually irrelenant (closes #9273).
2023-10-08 09:40:46 +02:00
Matthias 6c00bf423b Fix comment 2023-10-08 08:59:18 +02:00
Matthias 094984eb2f Fix wrong typehint 2023-10-07 15:09:44 +02:00
Matthias 081411fba4 Improve bot typehints 2023-10-07 15:09:34 +02:00
Matthias 178c0972ff Read funding_fee on order objects in "from_json" 2023-10-07 08:43:06 +02:00
Axel-CH e8be011e2b update manage_trade_stoploss_orders: remove unrelevant TODO 2023-10-06 17:01:12 -04:00
Axel-CH aaa82e1fa9 remove all occurence of stoploss_order_id in trade_model, update api schemas, update rpc_delete 2023-10-06 16:34:03 -04:00
Axel-CH 2bb68ca53d remove stoploss_order_id from LocalTrade class 2023-10-06 16:08:40 -04:00
Axel-CH df8f1b9328 update manage_trade_stoploss_orders description 2023-10-06 15:58:51 -04:00
Axel-CH 9d82de15d4 first updated proposition of handle_stoploss_on_exchange, add sl_orders helper 2023-10-06 15:56:08 -04:00
Matthias 910e317a45 Fix unhandled exception
closes #9270
2023-10-06 20:13:37 +02:00
Matthias 1ef5adbb0e Test for #9270 2023-10-06 20:13:11 +02:00
Axel-CH ea828ccb4a remove legacy sl management code from create_stoploss_order 2023-10-06 10:40:23 -04:00
Axel-CH 2565d509a6 remove legacy sl management code from handle_insufficient_funds 2023-10-06 10:38:14 -04:00
Axel-CH d5a0759051 add open_sl_orders helper, use it in cancel_stoploss_on_exchange 2023-10-06 10:29:57 -04:00
Axel-CH 9214af6901 update cancel_stoploss_on_exchange to cancel all sl orders of trade 2023-10-05 22:24:17 -04:00
Matthias f5db856a75 re-align adjust_entry_price between backtest and live 2023-10-05 18:11:35 +02:00
Matthias b2ad40253f Hide most non-freqtrade logs in -v mode 2023-10-05 07:03:29 +02:00
Matthias 1e0d622d80 Don't run "recovery" when stop-orders are open 2023-10-05 06:45:00 +02:00
Matthias 1d941249ed Revert "Remove numpy armv7l lock since wheels are now available"
This reverts commit 04409602a6.
2023-10-04 19:57:26 +02:00
Axel-CH cac777cb21 add property has_open_sl_orders to trade model 2023-10-04 13:09:44 -04:00
Matthias 5bfd3fdc33 Add openblas to armhf image 2023-10-04 17:55:15 +02:00
Matthias 753b807a45 Merge pull request #9211 from freqtrade/dependabot/pip/cryptography-41.0.4
Bump cryptography from 41.0.3 to 41.0.4
2023-10-04 07:12:01 +02:00
Matthias 04409602a6 Remove numpy armv7l lock since wheels are now available 2023-10-04 07:10:51 +02:00
Matthias b2796b850b Add funding_fee export to order object
Helps debugging #9163
2023-10-04 06:36:39 +02:00
Matthias 8c633aab19 Merge pull request #9261 from stash86/bt-metrics
Fix visual issues and docs
2023-10-03 07:06:03 +02:00
Stefano Ariestasia f14b4133c3 fix wording 2023-10-03 13:36:31 +09:00
Matthias 8f2e4aa4fd Merge pull request #9262 from freqtrade/dependabot/pip/urllib3-2.0.6
Bump urllib3 from 2.0.5 to 2.0.6
2023-10-03 06:17:44 +02:00
dependabot[bot] 3c2e043e82 Bump urllib3 from 2.0.5 to 2.0.6
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.0.5 to 2.0.6.
- [Release notes](https://github.com/urllib3/urllib3/releases)
- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)
- [Commits](https://github.com/urllib3/urllib3/compare/v2.0.5...2.0.6)

---
updated-dependencies:
- dependency-name: urllib3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-03 00:22:39 +00:00
Stefano 609ed2d7b3 fix return values 2023-10-03 08:41:05 +09:00
Stefano Ariestasia 183166b3fb fix output if no variance, and fix docs 2023-10-03 08:27:28 +09:00
Matthias 12dc91719e Merge pull request #9247 from freqtrade/dependabot/pip/develop/pydantic-2.4.2
Bump pydantic from 2.3.0 to 2.4.2
2023-10-02 19:26:33 +02:00
dependabot[bot] cd071c3bdc Bump cryptography from 41.0.3 to 41.0.4
Bumps [cryptography](https://github.com/pyca/cryptography) from 41.0.3 to 41.0.4.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/41.0.3...41.0.4)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 17:21:57 +00:00
Matthias 0618ecce47 Merge pull request #9249 from freqtrade/dependabot/pip/develop/ccxt-4.0.112
Bump ccxt from 4.0.105 to 4.0.112
2023-10-02 19:21:00 +02:00
Matthias 13438ad8de Merge pull request #9260 from freqtrade/revert-9250-dependabot/pip/develop/ast-comments-1.1.1
Revert "Bump ast-comments from 1.1.0 to 1.1.1"
2023-10-02 18:30:22 +02:00
Matthias 60c2b1d6ca Revert "Bump ast-comments from 1.1.0 to 1.1.1" 2023-10-02 18:02:36 +02:00
Matthias eaf4ffcbaf Merge pull request #9253 from freqtrade/dependabot/pip/develop/types-requests-2.31.0.7
Bump types-requests from 2.31.0.4 to 2.31.0.7
2023-10-02 16:11:00 +02:00
Matthias 79e59bdda0 Bump types-requests pre-commit 2023-10-02 13:37:49 +02:00
dependabot[bot] b409ab5ead Bump pydantic from 2.3.0 to 2.4.2
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.3.0 to 2.4.2.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/main/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.3.0...v2.4.2)

---
updated-dependencies:
- dependency-name: pydantic
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 07:59:35 +00:00
Matthias 790c7036a1 Merge pull request #9258 from freqtrade/dependabot/pip/develop/fastapi-0.103.2
Bump fastapi from 0.103.1 to 0.103.2
2023-10-02 09:58:33 +02:00
Matthias 73902f507a Merge pull request #9250 from freqtrade/dependabot/pip/develop/ast-comments-1.1.1
Bump ast-comments from 1.1.0 to 1.1.1
2023-10-02 09:43:39 +02:00
Matthias 1a80f6bc4e Merge pull request #9257 from freqtrade/dependabot/pip/develop/arrow-1.3.0
Bump arrow from 1.2.3 to 1.3.0
2023-10-02 09:43:18 +02:00
dependabot[bot] 5feb7fe654 Bump ast-comments from 1.1.0 to 1.1.1
Bumps [ast-comments](https://github.com/t3rn0/ast-comments) from 1.1.0 to 1.1.1.
- [Release notes](https://github.com/t3rn0/ast-comments/releases)
- [Commits](https://github.com/t3rn0/ast-comments/compare/1.1.0...1.1.1)

---
updated-dependencies:
- dependency-name: ast-comments
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 06:19:59 +00:00
dependabot[bot] 980960bc6a Bump arrow from 1.2.3 to 1.3.0
Bumps [arrow](https://github.com/arrow-py/arrow) from 1.2.3 to 1.3.0.
- [Release notes](https://github.com/arrow-py/arrow/releases)
- [Changelog](https://github.com/arrow-py/arrow/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/arrow-py/arrow/compare/1.2.3...1.3.0)

---
updated-dependencies:
- dependency-name: arrow
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 06:18:56 +00:00
Matthias 52c614733f Merge pull request #9255 from freqtrade/dependabot/pip/develop/tensorboard-2.14.1
Bump tensorboard from 2.14.0 to 2.14.1
2023-10-02 08:18:48 +02:00
Matthias e913d12c71 Merge pull request #9252 from freqtrade/dependabot/pip/develop/mkdocs-material-9.4.2
Bump mkdocs-material from 9.4.1 to 9.4.2
2023-10-02 08:18:08 +02:00
Matthias 5dc24232ca Merge pull request #9254 from freqtrade/dependabot/pip/develop/packaging-23.2
Bump packaging from 23.1 to 23.2
2023-10-02 08:17:53 +02:00
Matthias ef2115d667 Merge pull request #9256 from freqtrade/dependabot/pip/develop/rich-13.6.0
Bump rich from 13.5.3 to 13.6.0
2023-10-02 08:17:31 +02:00
Matthias 74476eae43 Merge pull request #9251 from freqtrade/dependabot/pip/develop/scipy-1.11.3
Bump scipy from 1.11.2 to 1.11.3
2023-10-02 08:17:14 +02:00
Matthias 84335d58b3 Greatly speed up recursive by caching exchange 2023-10-02 06:34:35 +02:00
Matthias f175fc6e9b Merge pull request #9248 from freqtrade/dependabot/pip/develop/schedule-1.2.1
Bump schedule from 1.2.0 to 1.2.1
2023-10-02 06:20:44 +02:00
dependabot[bot] 9edd7e6bc8 Bump fastapi from 0.103.1 to 0.103.2
Bumps [fastapi](https://github.com/tiangolo/fastapi) from 0.103.1 to 0.103.2.
- [Release notes](https://github.com/tiangolo/fastapi/releases)
- [Commits](https://github.com/tiangolo/fastapi/compare/0.103.1...0.103.2)

---
updated-dependencies:
- dependency-name: fastapi
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 03:41:42 +00:00
dependabot[bot] 7478c56ca5 Bump rich from 13.5.3 to 13.6.0
Bumps [rich](https://github.com/Textualize/rich) from 13.5.3 to 13.6.0.
- [Release notes](https://github.com/Textualize/rich/releases)
- [Changelog](https://github.com/Textualize/rich/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Textualize/rich/compare/v13.5.3...v13.6.0)

---
updated-dependencies:
- dependency-name: rich
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 03:41:29 +00:00
dependabot[bot] 1f36f4802a Bump tensorboard from 2.14.0 to 2.14.1
Bumps [tensorboard](https://github.com/tensorflow/tensorboard) from 2.14.0 to 2.14.1.
- [Release notes](https://github.com/tensorflow/tensorboard/releases)
- [Changelog](https://github.com/tensorflow/tensorboard/blob/master/RELEASE.md)
- [Commits](https://github.com/tensorflow/tensorboard/compare/2.14.0...2.14.1)

---
updated-dependencies:
- dependency-name: tensorboard
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 03:41:23 +00:00
dependabot[bot] 4d920d7866 Bump packaging from 23.1 to 23.2
Bumps [packaging](https://github.com/pypa/packaging) from 23.1 to 23.2.
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/packaging/compare/23.1...23.2)

---
updated-dependencies:
- dependency-name: packaging
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 03:41:09 +00:00
dependabot[bot] 19fb3f9b54 Bump types-requests from 2.31.0.4 to 2.31.0.7
Bumps [types-requests](https://github.com/python/typeshed) from 2.31.0.4 to 2.31.0.7.
- [Commits](https://github.com/python/typeshed/commits)

---
updated-dependencies:
- dependency-name: types-requests
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 03:40:59 +00:00
dependabot[bot] fafc102573 Bump mkdocs-material from 9.4.1 to 9.4.2
Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.4.1 to 9.4.2.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.4.1...9.4.2)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 03:40:52 +00:00
dependabot[bot] 3868f9c698 Bump scipy from 1.11.2 to 1.11.3
Bumps [scipy](https://github.com/scipy/scipy) from 1.11.2 to 1.11.3.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.11.2...v1.11.3)

---
updated-dependencies:
- dependency-name: scipy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 03:40:40 +00:00
dependabot[bot] 0204f666b3 Bump ccxt from 4.0.105 to 4.0.112
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.0.105 to 4.0.112.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ccxt/ccxt/compare/4.0.105...4.0.112)

---
updated-dependencies:
- dependency-name: ccxt
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 03:40:23 +00:00
dependabot[bot] f32a13bfb0 Bump schedule from 1.2.0 to 1.2.1
Bumps [schedule](https://github.com/dbader/schedule) from 1.2.0 to 1.2.1.
- [Changelog](https://github.com/dbader/schedule/blob/master/HISTORY.rst)
- [Commits](https://github.com/dbader/schedule/compare/1.2.0...1.2.1)

---
updated-dependencies:
- dependency-name: schedule
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-02 03:40:10 +00:00
Matthias 4809c9f07a Adjust tests for new naming 2023-10-01 08:00:09 +02:00
Matthias 19af144b33 Improve of analysis files further 2023-10-01 07:58:46 +02:00
Matthias 4db7962048 Update tests to new structure 2023-10-01 07:55:03 +02:00
Matthias 7e6f2cba53 Move analysis command into their own subspace 2023-10-01 07:54:09 +02:00
Matthias c6199e5ca6 Merge pull request #9232 from freqtrade/kraken/dldata
Kraken - dataimport
2023-10-01 07:13:54 +02:00
Matthias f7ff1dc610 Bump develop version to 2023.10-dev 2023-09-30 13:13:18 +02:00
Matthias 8ad6eb9896 Update parameter value to be clearer 2023-09-25 19:55:58 +02:00
Matthias 74709461e3 Improve exception wording 2023-09-25 19:48:09 +02:00
Matthias 9e6cc5ebbd Improve comment on special handling 2023-09-25 19:46:27 +02:00
Matthias a2d8f92e05 Add rudimentary test for test_trade_converter 2023-09-25 19:46:15 +02:00
Matthias a7d90e2a25 Minor adjustments to conversions 2023-09-25 19:45:03 +02:00
Matthias 83b37e2f78 Add documentation for kraken data mode 2023-09-25 18:23:20 +02:00
Matthias 488629096b Improve logging in kraken-converter 2023-09-25 18:23:20 +02:00
Matthias a3f167f6df Split format-from for trades to allow for trades special case 2023-09-25 18:23:20 +02:00
Matthias 1e8814b43e Improve handling of kraken dataconvert 2023-09-25 18:23:20 +02:00
Matthias 2e430519e3 Call kraken-convert in special cases 2023-09-25 18:23:20 +02:00
Matthias 2164b02c66 Add initial code for trade_kraken import 2023-09-25 18:23:20 +02:00
eSeR1805 f755df2568 Merge branch 'develop' into feature_keyval_storage
Update rpc/telegram to use MAX_MESSAGE_LENGTH.
2022-08-11 11:26:45 +03:00
eSeR1805 c420304b33 Delete custom data before the trade. 2022-06-19 20:03:56 +03:00
eSeR1805 8494bea64f Handle max message length. 2022-06-19 19:59:14 +03:00
eSeR1805 c8ba8106e6 Update telegram reporting. 2022-06-19 17:24:13 +03:00
eSeR1805 ce9d9d7e60 Finish renaming persistant storage infrastructure. 2022-06-19 16:02:24 +03:00
eSeR1805 365527508b Rename files. 2022-06-19 15:59:21 +03:00
eSeR1805 9fdb8b07ac Rename persistant storage infrastructure. 2022-06-19 15:56:50 +03:00
eSeR1805 0009b987e4 Merge branch 'develop' into feature_keyval_storage 2022-06-19 13:32:25 +03:00
eSeR1805 24b6ce450b Further cleanup. 2022-06-14 13:27:50 +03:00
eSeR1805 3ad8111d11 Remove stray debug messages. 2022-06-14 13:26:45 +03:00
eSeR1805 4c6074062c Merge branch 'develop' into feature_keyval_storage 2022-06-13 20:05:45 +03:00
eSeR1805 4f799cc9db Add /list_kvals command for TG and underlying RPC. 2022-06-13 20:04:14 +03:00
eSeR1805 c719860a16 get_kval() -> get_kvals(). Update docs also. 2022-06-13 20:03:22 +03:00
eSeR1805 f3dee5ec4f Update handling for query_kv when no Key is supplied. 2022-06-13 20:02:06 +03:00
eSeR1805 be169a23f4 Add a new session for KeyValues. 2022-06-13 20:00:21 +03:00
eSeR1805 1551510c6f Merge branch 'develop' into feature_keyval_storage 2022-06-09 11:35:35 +03:00
eSeR1805 9f1a7209d6 Merge branch 'develop' into feature_keyval_storage 2022-06-05 12:18:30 +03:00
eSeR1805 abda02572b Fix KeyValue __repr__. 2022-06-05 12:18:07 +03:00
eSeR1805 de01aaf290 Add documentation details. 2022-05-31 16:17:31 +03:00
eSeR1805 096e98a68c Remove stray debug message. 2022-05-31 16:16:57 +03:00
eSeR1805 854bd9af2b Merge branch 'develop' into feature_keyval_storage 2022-05-31 12:28:58 +03:00
eSeR1805 10917a280a Add initial structure and wrapping. 2022-05-31 12:26:07 +03:00
284 changed files with 21387 additions and 10070 deletions
+9
View File
@@ -10,8 +10,17 @@ updates:
directory: "/"
schedule:
interval: weekly
time: "03:00"
timezone: "Etc/UTC"
open-pull-requests-limit: 15
target-branch: develop
groups:
types:
patterns:
- "types-*"
pytest:
patterns:
- "pytest*"
- package-ecosystem: "github-actions"
directory: "/"
@@ -0,0 +1,47 @@
name: Binance Leverage tiers update
on:
schedule:
- cron: "0 3 * * 4"
# on demand
workflow_dispatch:
permissions:
contents: read
jobs:
auto-update:
runs-on: ubuntu-latest
environment:
name: develop
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install ccxt
run: pip install ccxt
- name: Run leverage tier update
env:
CI_WEB_PROXY: ${{ secrets.CI_WEB_PROXY }}
FREQTRADE__EXCHANGE__KEY: ${{ secrets.BINANCE_EXCHANGE_KEY }}
FREQTRADE__EXCHANGE__SECRET: ${{ secrets.BINANCE_EXCHANGE_SECRET }}
run: python build_helpers/binance_update_lev_tiers.py
- uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.REPO_SCOPED_TOKEN }}
add-paths: freqtrade/exchange/binance_leverage_tiers.json
labels: |
Tech maintenance
Dependencies
branch: update/binance-leverage-tiers
title: Update Binance Leverage Tiers
commit-message: "chore: update pre-commit hooks"
committer: Freqtrade Bot <noreply@github.com>
body: Update binance leverage tiers.
delete-branch: true
+152 -87
View File
@@ -11,7 +11,7 @@ on:
types: [published]
pull_request:
schedule:
- cron: '0 5 * * 4'
- cron: '0 3 * * 4'
concurrency:
group: "${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}"
@@ -19,32 +19,31 @@ concurrency:
permissions:
repository-projects: read
jobs:
build_linux:
build-linux:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-20.04, ubuntu-22.04 ]
python-version: ["3.9", "3.10", "3.11"]
python-version: ["3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Cache_dependencies
uses: actions/cache@v3
uses: actions/cache@v4
id: cache
with:
path: ~/dependencies/
key: ${{ runner.os }}-dependencies
- name: pip cache (linux)
uses: actions/cache@v3
if: runner.os == 'Linux'
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: test-${{ matrix.os }}-${{ matrix.python-version }}-pip
@@ -55,18 +54,22 @@ jobs:
cd build_helpers && ./install_ta-lib.sh ${HOME}/dependencies/; cd ..
- name: Installation - *nix
if: runner.os == 'Linux'
run: |
python -m pip install --upgrade pip wheel
export LD_LIBRARY_PATH=${HOME}/dependencies/lib:$LD_LIBRARY_PATH
export TA_LIBRARY_PATH=${HOME}/dependencies/lib
export TA_INCLUDE_PATH=${HOME}/dependencies/include
pip install -r requirements-dev.txt
pip install -e ft_client/
pip install -e .
- name: Check for version alignment
run: |
python build_helpers/freqtrade_client_version_align.py
- name: Tests
run: |
pytest --random-order --cov=freqtrade --cov-config=.coveragerc
pytest --random-order --cov=freqtrade --cov=freqtrade_client --cov-config=.coveragerc
- name: Coveralls
if: (runner.os == 'Linux' && matrix.python-version == '3.10' && matrix.os == 'ubuntu-22.04')
@@ -90,7 +93,7 @@ jobs:
- name: Backtesting (multi)
run: |
cp config_examples/config_bittrex.example.json config.json
cp tests/testdata/config.tests.json config.json
freqtrade create-userdir --userdir user_data
freqtrade new-strategy -s AwesomeStrategy
freqtrade new-strategy -s AwesomeStrategyMin --template minimal
@@ -98,7 +101,7 @@ jobs:
- name: Hyperopt
run: |
cp config_examples/config_bittrex.example.json config.json
cp tests/testdata/config.tests.json config.json
freqtrade create-userdir --userdir user_data
freqtrade hyperopt --datadir tests/testdata -e 6 --strategy SampleStrategy --hyperopt-loss SharpeHyperOptLossDaily --print-all
@@ -108,7 +111,7 @@ jobs:
- name: Run Ruff
run: |
ruff check --format=github .
ruff check --output-format=github .
- name: Mypy
run: |
@@ -122,43 +125,44 @@ jobs:
details: Freqtrade CI failed on ${{ matrix.os }}
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
build_macos:
build-macos:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ macos-latest ]
python-version: ["3.9", "3.10", "3.11"]
os: [ "macos-latest", "macos-13", "macos-14" ]
python-version: ["3.9", "3.10", "3.11", "3.12"]
exclude:
- os: "macos-14"
python-version: "3.9"
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Cache_dependencies
uses: actions/cache@v3
uses: actions/cache@v4
id: cache
with:
path: ~/dependencies/
key: ${{ runner.os }}-dependencies
key: ${{ matrix.os }}-dependencies
- name: pip cache (macOS)
uses: actions/cache@v3
if: runner.os == 'macOS'
uses: actions/cache@v4
with:
path: ~/Library/Caches/pip
key: test-${{ matrix.os }}-${{ matrix.python-version }}-pip
key: ${{ matrix.os }}-${{ matrix.python-version }}-pip
- name: TA binary *nix
if: steps.cache.outputs.cache-hit != 'true'
run: |
cd build_helpers && ./install_ta-lib.sh ${HOME}/dependencies/; cd ..
- name: Installation - macOS
if: runner.os == 'macOS'
- name: Installation - macOS (Brew)
run: |
# brew update
# TODO: Should be the brew upgrade
@@ -166,21 +170,30 @@ jobs:
# https://github.com/actions/runner-images/issues/6817
rm /usr/local/bin/2to3 || true
rm /usr/local/bin/2to3-3.11 || true
rm /usr/local/bin/2to3-3.12 || true
rm /usr/local/bin/idle3 || true
rm /usr/local/bin/idle3.11 || true
rm /usr/local/bin/idle3.12 || true
rm /usr/local/bin/pydoc3 || true
rm /usr/local/bin/pydoc3.11 || true
rm /usr/local/bin/pydoc3.12 || true
rm /usr/local/bin/python3 || true
rm /usr/local/bin/python3.11 || true
rm /usr/local/bin/python3.12 || true
rm /usr/local/bin/python3-config || true
rm /usr/local/bin/python3.11-config || true
rm /usr/local/bin/python3.12-config || true
brew install hdf5 c-blosc
brew install hdf5 c-blosc libomp
- name: Installation (python)
run: |
python -m pip install --upgrade pip wheel
export LD_LIBRARY_PATH=${HOME}/dependencies/lib:$LD_LIBRARY_PATH
export TA_LIBRARY_PATH=${HOME}/dependencies/lib
export TA_INCLUDE_PATH=${HOME}/dependencies/include
pip install -r requirements-dev.txt
pip install -e ft_client/
pip install -e .
- name: Tests
@@ -200,14 +213,14 @@ jobs:
- name: Backtesting
run: |
cp config_examples/config_bittrex.example.json config.json
cp tests/testdata/config.tests.json config.json
freqtrade create-userdir --userdir user_data
freqtrade new-strategy -s AwesomeStrategyAdv --template advanced
freqtrade backtesting --datadir tests/testdata --strategy AwesomeStrategyAdv
- name: Hyperopt
run: |
cp config_examples/config_bittrex.example.json config.json
cp tests/testdata/config.tests.json config.json
freqtrade create-userdir --userdir user_data
freqtrade hyperopt --datadir tests/testdata -e 5 --strategy SampleStrategy --hyperopt-loss SharpeHyperOptLossDaily --print-all
@@ -217,7 +230,7 @@ jobs:
- name: Run Ruff
run: |
ruff check --format=github .
ruff check --output-format=github .
- name: Mypy
run: |
@@ -231,24 +244,24 @@ jobs:
details: Test Succeeded!
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
build_windows:
build-windows:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ windows-latest ]
python-version: ["3.9", "3.10", "3.11"]
python-version: ["3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Pip cache (Windows)
uses: actions/cache@v3
uses: actions/cache@v4
with:
path: ~\AppData\Local\pip\Cache
key: ${{ matrix.os }}-${{ matrix.python-version }}-pip
@@ -275,19 +288,19 @@ jobs:
- name: Backtesting
run: |
cp config_examples/config_bittrex.example.json config.json
cp tests/testdata/config.tests.json config.json
freqtrade create-userdir --userdir user_data
freqtrade backtesting --datadir tests/testdata --strategy SampleStrategy
- name: Hyperopt
run: |
cp config_examples/config_bittrex.example.json config.json
cp tests/testdata/config.tests.json config.json
freqtrade create-userdir --userdir user_data
freqtrade hyperopt --datadir tests/testdata -e 5 --strategy SampleStrategy --hyperopt-loss SharpeHyperOptLossDaily --print-all
- name: Run Ruff
run: |
ruff check --format=github .
ruff check --output-format=github .
- name: Mypy
run: |
@@ -301,13 +314,13 @@ jobs:
details: Test Failed
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
mypy_version_check:
mypy-version-check:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.10"
@@ -321,12 +334,12 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- uses: pre-commit/action@v3.0.0
- uses: pre-commit/action@v3.0.1
docs_check:
docs-check:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
@@ -336,7 +349,7 @@ jobs:
./tests/test_docs.sh
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.11"
@@ -355,27 +368,26 @@ jobs:
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
build_linux_online:
build-linux-online:
# Run pytest with "live" checks
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.9"
python-version: "3.11"
- name: Cache_dependencies
uses: actions/cache@v3
uses: actions/cache@v4
id: cache
with:
path: ~/dependencies/
key: ${{ runner.os }}-dependencies
- name: pip cache (linux)
uses: actions/cache@v3
if: runner.os == 'Linux'
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: test-${{ matrix.os }}-${{ matrix.python-version }}-pip
@@ -386,36 +398,36 @@ jobs:
cd build_helpers && ./install_ta-lib.sh ${HOME}/dependencies/; cd ..
- name: Installation - *nix
if: runner.os == 'Linux'
run: |
python -m pip install --upgrade pip wheel
export LD_LIBRARY_PATH=${HOME}/dependencies/lib:$LD_LIBRARY_PATH
export TA_LIBRARY_PATH=${HOME}/dependencies/lib
export TA_INCLUDE_PATH=${HOME}/dependencies/include
pip install -r requirements-dev.txt
pip install -e ft_client/
pip install -e .
- name: Tests incl. ccxt compatibility tests
env:
CI_WEB_PROXY: http://152.67.78.211:13128
run: |
pytest --random-order --cov=freqtrade --cov-config=.coveragerc --longrun
pytest --random-order --longrun --durations 20 -n auto
# Notify only once - when CI completes (and after deploy) in case it's successfull
notify-complete:
needs: [
build_linux,
build_macos,
build_windows,
docs_check,
mypy_version_check,
build-linux,
build-macos,
build-windows,
docs-check,
mypy-version-check,
pre-commit,
build_linux_online
build-linux-online
]
runs-on: ubuntu-22.04
# Discord notification can't handle schedule events
if: (github.event_name != 'schedule')
if: github.event_name != 'schedule' && github.repository == 'freqtrade/freqtrade'
permissions:
repository-projects: read
steps:
@@ -436,8 +448,78 @@ jobs:
details: Test Completed!
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
deploy:
needs: [ build_linux, build_macos, build_windows, docs_check, mypy_version_check, pre-commit ]
build:
name: "Build"
needs: [ build-linux, build-macos, build-windows, docs-check, mypy-version-check, pre-commit ]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Build distribution
run: |
pip install -U build
python -m build --sdist --wheel
- name: Upload artifacts 📦
uses: actions/upload-artifact@v4
with:
name: freqtrade-build
path: |
dist
retention-days: 10
- name: Build Client distribution
run: |
pip install -U build
python -m build --sdist --wheel ft_client
- name: Upload artifacts 📦
uses: actions/upload-artifact@v4
with:
name: freqtrade-client-build
path: |
ft_client/dist
retention-days: 10
deploy-pypi:
name: "Deploy to PyPI"
needs: [ build ]
runs-on: ubuntu-22.04
if: (github.event_name == 'release')
environment:
name: release
url: https://pypi.org/p/freqtrade
permissions:
id-token: write
steps:
- uses: actions/checkout@v4
- name: Download artifact 📦
uses: actions/download-artifact@v4
with:
pattern: freqtrade*-build
path: dist
merge-multiple: true
- name: Publish to PyPI (Test)
uses: pypa/gh-action-pypi-publish@v1.8.14
with:
repository-url: https://test.pypi.org/legacy/
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@v1.8.14
deploy-docker:
needs: [ build-linux, build-macos, build-windows, docs-check, mypy-version-check, pre-commit ]
runs-on: ubuntu-22.04
if: (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'release') && github.repository == 'freqtrade/freqtrade'
@@ -446,34 +528,15 @@ jobs:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Extract branch name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF##*/})"
id: extract_branch
- name: Build distribution
id: extract-branch
run: |
pip install -U setuptools wheel
python setup.py sdist bdist_wheel
- name: Publish to PyPI (Test)
uses: pypa/gh-action-pypi-publish@v1.8.10
if: (github.event_name == 'release')
with:
user: __token__
password: ${{ secrets.pypi_test_password }}
repository_url: https://test.pypi.org/legacy/
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@v1.8.10
if: (github.event_name == 'release')
with:
user: __token__
password: ${{ secrets.pypi_password }}
echo "GITHUB_REF='${GITHUB_REF}'"
echo "branch=${GITHUB_REF##*/}" >> "$GITHUB_OUTPUT"
- name: Dockerhub login
env:
@@ -502,14 +565,15 @@ jobs:
- name: Build and test and push docker images
env:
BRANCH_NAME: ${{ steps.extract_branch.outputs.branch }}
BRANCH_NAME: ${{ steps.extract-branch.outputs.branch }}
run: |
build_helpers/publish_docker_multi.sh
deploy_arm:
deploy-arm:
name: "Deploy Docker"
permissions:
packages: write
needs: [ deploy ]
needs: [ deploy-docker ]
# Only run on 64bit machines
runs-on: [self-hosted, linux, ARM64]
if: (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'release') && github.repository == 'freqtrade/freqtrade'
@@ -518,9 +582,10 @@ jobs:
- uses: actions/checkout@v4
- name: Extract branch name
shell: bash
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF##*/})"
id: extract_branch
id: extract-branch
run: |
echo "GITHUB_REF='${GITHUB_REF}'"
echo "branch=${GITHUB_REF##*/}" >> "$GITHUB_OUTPUT"
- name: Dockerhub login
env:
@@ -531,7 +596,7 @@ jobs:
- name: Build and test and push docker images
env:
BRANCH_NAME: ${{ steps.extract_branch.outputs.branch }}
BRANCH_NAME: ${{ steps.extract-branch.outputs.branch }}
GHCR_USERNAME: ${{ github.actor }}
GHCR_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
@@ -0,0 +1,18 @@
name: Update Docker Hub Description
on:
push:
branches:
- stable
jobs:
dockerHubDescription:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Docker Hub Description
uses: peter-evans/dockerhub-description@v4
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: freqtradeorg/freqtrade
@@ -1,17 +0,0 @@
name: Update Docker Hub Description
on:
push:
branches:
- stable
jobs:
dockerHubDescription:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Docker Hub Description
uses: peter-evans/dockerhub-description@v3
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKERHUB_REPOSITORY: freqtradeorg/freqtrade
+44
View File
@@ -0,0 +1,44 @@
name: Pre-commit auto-update
on:
schedule:
- cron: "0 3 * * 2"
# on demand
workflow_dispatch:
permissions:
contents: read
jobs:
auto-update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install pre-commit
run: pip install pre-commit
- name: Run auto-update
run: pre-commit autoupdate
- name: Run pre-commit
run: pre-commit run --all-files
- uses: peter-evans/create-pull-request@v6
with:
token: ${{ secrets.REPO_SCOPED_TOKEN }}
add-paths: .pre-commit-config.yaml
labels: |
Tech maintenance
Dependencies
branch: update/pre-commit-hooks
title: Update pre-commit hooks
commit-message: "chore: update pre-commit hooks"
committer: Freqtrade Bot <noreply@github.com>
body: Update versions of pre-commit hooks to latest version.
delete-branch: true
-1
View File
@@ -111,7 +111,6 @@ target/
#exceptions
!*.gitkeep
!config_examples/config_binance.example.json
!config_examples/config_bittrex.example.json
!config_examples/config_full.example.json
!config_examples/config_kraken.example.json
!config_examples/config_freqai.example.json
+11 -10
View File
@@ -2,27 +2,28 @@
# See https://pre-commit.com/hooks.html for more hooks
repos:
- repo: https://github.com/pycqa/flake8
rev: "6.0.0"
rev: "7.0.0"
hooks:
- id: flake8
additional_dependencies: [Flake8-pyproject]
# stages: [push]
- repo: https://github.com/pre-commit/mirrors-mypy
rev: "v1.5.1"
rev: "v1.9.0"
hooks:
- id: mypy
exclude: build_helpers
additional_dependencies:
- types-cachetools==5.3.0.6
- types-cachetools==5.3.0.7
- types-filelock==3.2.7
- types-requests==2.31.0.4
- types-tabulate==0.9.0.3
- types-python-dateutil==2.8.19.14
- SQLAlchemy==2.0.21
- types-requests==2.31.0.20240311
- types-tabulate==0.9.0.20240106
- types-python-dateutil==2.9.0.20240316
- SQLAlchemy==2.0.29
# stages: [push]
- repo: https://github.com/pycqa/isort
rev: "5.12.0"
rev: "5.13.2"
hooks:
- id: isort
name: isort (python)
@@ -30,12 +31,12 @@ repos:
- repo: https://github.com/charliermarsh/ruff-pre-commit
# Ruff version.
rev: 'v0.0.270'
rev: 'v0.3.4'
hooks:
- id: ruff
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
rev: v4.5.0
hooks:
- id: end-of-file-fixer
exclude: |
+2 -2
View File
@@ -48,7 +48,7 @@ pytest tests/test_<file_name>.py::test_<method_name>
#### Run Ruff
```bash
ruff .
ruff check .
```
We receive a lot of code that fails the `ruff` checks.
@@ -125,7 +125,7 @@ Exceptions:
Contributors may be given commit privileges. Preference will be given to those with:
1. Past contributions to Freqtrade and other related open-source projects. Contributions to Freqtrade include both code (both accepted and pending) and friendly participation in the issue tracker and Pull request reviews. Quantity and quality are considered.
1. Past contributions to Freqtrade and other related open-source projects. Contributions to Freqtrade include both code (both accepted and pending) and friendly participation in the issue tracker and Pull request reviews. Both quantity and quality are considered.
1. A coding style that the other core committers find simple, minimal, and clean.
1. Access to resources for cross-platform development and testing.
1. Time to devote to the project regularly.
+1 -1
View File
@@ -1,4 +1,4 @@
FROM python:3.11.5-slim-bullseye as base
FROM python:3.12.2-slim-bookworm as base
# Setup env
ENV LANG C.UTF-8
+2
View File
@@ -5,3 +5,5 @@ recursive-include freqtrade/templates/ *.j2 *.ipynb
include freqtrade/exchange/binance_leverage_tiers.json
include freqtrade/rpc/api_server/ui/fallback_file.html
include freqtrade/rpc/api_server/ui/favicon.ico
prune tests
+2 -2
View File
@@ -28,9 +28,9 @@ hesitate to read the source code and understand the mechanism of this bot.
Please read the [exchange specific notes](docs/exchanges.md) to learn about eventual, special configurations needed for each exchange.
- [X] [Binance](https://www.binance.com/)
- [X] [Bittrex](https://bittrex.com/)
- [X] [Bitmart](https://bitmart.com/)
- [X] [Gate.io](https://www.gate.io/ref/6266643)
- [X] [Huobi](http://huobi.com/)
- [X] [HTX](https://www.htx.com/) (Former Huobi)
- [X] [Kraken](https://kraken.com/)
- [X] [OKX](https://okx.com/) (Former OKEX)
- [ ] [potentially many others](https://github.com/ccxt/ccxt/). _(We cannot guarantee they will work)_
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/env python3
import json
import os
from pathlib import Path
import ccxt
key = os.environ.get('FREQTRADE__EXCHANGE__KEY')
secret = os.environ.get('FREQTRADE__EXCHANGE__SECRET')
proxy = os.environ.get('CI_WEB_PROXY')
exchange = ccxt.binance({
'apiKey': key,
'secret': secret,
'httpsProxy': proxy,
'options': {'defaultType': 'swap'}
})
_ = exchange.load_markets()
lev_tiers = exchange.fetch_leverage_tiers()
# Assumes this is running in the root of the repository.
file = Path('freqtrade/exchange/binance_leverage_tiers.json')
json.dump(dict(sorted(lev_tiers.items())), file.open('w'), indent=2)
+18
View File
@@ -0,0 +1,18 @@
#!/usr/bin/env python3
from freqtrade_client import __version__ as client_version
from freqtrade import __version__ as ft_version
def main():
if ft_version != client_version:
print(f"Versions do not match: \n"
f"ft: {ft_version} \n"
f"client: {client_version}")
exit(1)
print(f"Versions match: ft: {ft_version}, client: {client_version}")
exit(0)
if __name__ == '__main__':
main()
+1 -1
View File
@@ -54,7 +54,7 @@ docker tag freqtrade:$TAG_FREQAI_ARM ${CACHE_IMAGE}:$TAG_FREQAI_ARM
docker tag freqtrade:$TAG_FREQAI_RL_ARM ${CACHE_IMAGE}:$TAG_FREQAI_RL_ARM
# Run backtest
docker run --rm -v $(pwd)/config_examples/config_bittrex.example.json:/freqtrade/config.json:ro -v $(pwd)/tests:/tests freqtrade:${TAG_ARM} backtesting --datadir /tests/testdata --strategy-path /tests/strategy/strats/ --strategy StrategyTestV3
docker run --rm -v $(pwd)/tests/testdata/config.tests.json:/freqtrade/config.json:ro -v $(pwd)/tests:/tests freqtrade:${TAG_ARM} backtesting --datadir /tests/testdata --strategy-path /tests/strategy/strats/ --strategy StrategyTestV3
if [ $? -ne 0 ]; then
echo "failed running backtest"
+1 -1
View File
@@ -67,7 +67,7 @@ docker tag freqtrade:$TAG_FREQAI ${CACHE_IMAGE}:$TAG_FREQAI
docker tag freqtrade:$TAG_FREQAI_RL ${CACHE_IMAGE}:$TAG_FREQAI_RL
# Run backtest
docker run --rm -v $(pwd)/config_examples/config_bittrex.example.json:/freqtrade/config.json:ro -v $(pwd)/tests:/tests freqtrade:${TAG} backtesting --datadir /tests/testdata --strategy-path /tests/strategy/strats/ --strategy StrategyTestV3
docker run --rm -v $(pwd)/tests/testdata/config.tests.json:/freqtrade/config.json:ro -v $(pwd)/tests:/tests freqtrade:${TAG} backtesting --datadir /tests/testdata --strategy-path /tests/strategy/strats/ --strategy StrategyTestV3
if [ $? -ne 0 ]; then
echo "failed running backtest"
+16 -16
View File
@@ -1,6 +1,6 @@
{
"max_open_trades": 3,
"stake_currency": "BTC",
"stake_currency": "USDT",
"stake_amount": 0.05,
"tradable_balance_ratio": 0.99,
"fiat_display_currency": "USD",
@@ -36,21 +36,21 @@
"ccxt_async_config": {
},
"pair_whitelist": [
"ALGO/BTC",
"ATOM/BTC",
"BAT/BTC",
"BCH/BTC",
"BRD/BTC",
"EOS/BTC",
"ETH/BTC",
"IOTA/BTC",
"LINK/BTC",
"LTC/BTC",
"NEO/BTC",
"NXS/BTC",
"XMR/BTC",
"XRP/BTC",
"XTZ/BTC"
"ALGO/USDT",
"ATOM/USDT",
"BAT/USDT",
"BCH/USDT",
"BRD/USDT",
"EOS/USDT",
"ETH/USDT",
"IOTA/USDT",
"LINK/USDT",
"LTC/USDT",
"NEO/USDT",
"NXS/USDT",
"XMR/USDT",
"XRP/USDT",
"XTZ/USDT"
],
"pair_blacklist": [
"BNB/.*"
+1 -1
View File
@@ -52,7 +52,7 @@
"train_period_days": 15,
"backtest_period_days": 7,
"live_retrain_hours": 0,
"identifier": "uniqe-id",
"identifier": "unique-id",
"feature_parameters": {
"include_timeframes": [
"3m",
+6 -9
View File
@@ -1,4 +1,4 @@
FROM python:3.9.16-slim-bullseye as base
FROM python:3.11.8-slim-bookworm as base
# Setup env
ENV LANG C.UTF-8
@@ -11,12 +11,13 @@ ENV FT_APP_ENV="docker"
# Prepare environment
RUN mkdir /freqtrade \
&& apt-get update \
&& apt-get -y install sudo libatlas3-base curl sqlite3 libhdf5-dev libutf8proc-dev libsnappy-dev \
&& apt-get -y install sudo libatlas3-base libopenblas-dev curl sqlite3 libhdf5-dev libutf8proc-dev libsnappy-dev \
&& apt-get clean \
&& useradd -u 1000 -G sudo -U -m ftuser \
&& chown ftuser:ftuser /freqtrade \
# Allow sudoers
&& echo "ftuser ALL=(ALL) NOPASSWD: /bin/chown" >> /etc/sudoers
&& echo "ftuser ALL=(ALL) NOPASSWD: /bin/chown" >> /etc/sudoers \
&& pip install --upgrade pip
WORKDIR /freqtrade
@@ -25,20 +26,16 @@ FROM base as python-deps
RUN apt-get update \
&& apt-get -y install build-essential libssl-dev libffi-dev libgfortran5 pkg-config cmake gcc \
&& apt-get clean \
&& pip install --upgrade pip \
&& echo "[global]\nextra-index-url=https://www.piwheels.org/simple" > /etc/pip.conf
# Install TA-lib
COPY build_helpers/* /tmp/
RUN cd /tmp && /tmp/install_ta-lib.sh && rm -r /tmp/*ta-lib*
ENV LD_LIBRARY_PATH /usr/local/lib
# Install dependencies
COPY --chown=ftuser:ftuser requirements.txt /freqtrade/
USER ftuser
RUN pip install --user --no-cache-dir numpy==1.25.2 \
&& pip install --user /tmp/pyarrow-*.whl \
&& pip install --user --no-build-isolation TA-Lib==0.4.28 \
RUN pip install --user --no-cache-dir numpy \
&& pip install --user --no-index --find-links /tmp/ pyarrow TA-Lib==0.4.28 \
&& pip install --user --no-cache-dir -r requirements.txt
# Copy dependencies to runtime-image
+2 -2
View File
@@ -1,8 +1,8 @@
FROM freqtradeorg/freqtrade:develop_plot
# Pin jupyter-client to avoid tornado version conflict
RUN pip install jupyterlab jupyter-client==7.3.4 --user --no-cache-dir
# Pin prompt-toolkit to avoid questionary version conflict
RUN pip install jupyterlab "prompt-toolkit<=3.0.36" jupyter-client --user --no-cache-dir
# Empty the ENTRYPOINT to allow all commands
ENTRYPOINT []
+1 -1
View File
@@ -6,7 +6,7 @@ services:
context: ..
dockerfile: docker/Dockerfile.jupyter
restart: unless-stopped
container_name: freqtrade
# container_name: freqtrade
ports:
- "127.0.0.1:8888:8888"
volumes:
+2 -2
View File
@@ -109,12 +109,12 @@ automatically accessible by including them on the indicator-list, and these incl
- **open_date :** trade open datetime
- **close_date :** trade close datetime
- **min_rate :** minimum price seen throughout the position
- **max_rate :** maxiumum price seen throughout the position
- **max_rate :** maximum price seen throughout the position
- **open :** signal candle open price
- **close :** signal candle close price
- **high :** signal candle high price
- **low :** signal candle low price
- **volume :** signal candle volumne
- **volume :** signal candle volume
- **profit_ratio :** trade profit ratio
- **profit_abs :** absolute profit return of the trade
Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

+41 -41
View File
@@ -31,9 +31,9 @@ optional arguments:
Specify timeframe (`1m`, `5m`, `30m`, `1h`, `1d`).
--timerange TIMERANGE
Specify what timerange of data to use.
--data-format-ohlcv {json,jsongz,hdf5}
--data-format-ohlcv {json,jsongz,hdf5,feather,parquet}
Storage format for downloaded candle (OHLCV) data.
(default: `json`).
(default: `feather`).
--max-open-trades INT
Override the value of the `max_open_trades`
configuration setting.
@@ -170,11 +170,11 @@ freqtrade backtesting --strategy AwesomeStrategy --dry-run-wallet 1000
Using a different on-disk historical candle (OHLCV) data source
Assume you downloaded the history data from the Bittrex exchange and kept it in the `user_data/data/bittrex-20180101` directory.
Assume you downloaded the history data from the Binance exchange and kept it in the `user_data/data/binance-20180101` directory.
You can then use this data for backtesting as follows:
```bash
freqtrade backtesting --strategy AwesomeStrategy --datadir user_data/data/bittrex-20180101
freqtrade backtesting --strategy AwesomeStrategy --datadir user_data/data/binance-20180101
```
---
@@ -252,34 +252,34 @@ The most important in the backtesting is to understand the result.
A backtesting result will look like that:
```
========================================================= BACKTESTING REPORT =========================================================
| Pair | Entries | Avg Profit % | Cum Profit % | Tot Profit BTC | Tot Profit % | Avg Duration | Wins Draws Loss Win% |
|:---------|--------:|---------------:|---------------:|-----------------:|---------------:|:-------------|-------------------------:|
| ADA/BTC | 35 | -0.11 | -3.88 | -0.00019428 | -1.94 | 4:35:00 | 14 0 21 40.0 |
| ARK/BTC | 11 | -0.41 | -4.52 | -0.00022647 | -2.26 | 2:03:00 | 3 0 8 27.3 |
| BTS/BTC | 32 | 0.31 | 9.78 | 0.00048938 | 4.89 | 5:05:00 | 18 0 14 56.2 |
| DASH/BTC | 13 | -0.08 | -1.07 | -0.00005343 | -0.53 | 4:39:00 | 6 0 7 46.2 |
| ENG/BTC | 18 | 1.36 | 24.54 | 0.00122807 | 12.27 | 2:50:00 | 8 0 10 44.4 |
| EOS/BTC | 36 | 0.08 | 3.06 | 0.00015304 | 1.53 | 3:34:00 | 16 0 20 44.4 |
| ETC/BTC | 26 | 0.37 | 9.51 | 0.00047576 | 4.75 | 6:14:00 | 11 0 15 42.3 |
| ETH/BTC | 33 | 0.30 | 9.96 | 0.00049856 | 4.98 | 7:31:00 | 16 0 17 48.5 |
| IOTA/BTC | 32 | 0.03 | 1.09 | 0.00005444 | 0.54 | 3:12:00 | 14 0 18 43.8 |
| LSK/BTC | 15 | 1.75 | 26.26 | 0.00131413 | 13.13 | 2:58:00 | 6 0 9 40.0 |
| LTC/BTC | 32 | -0.04 | -1.38 | -0.00006886 | -0.69 | 4:49:00 | 11 0 21 34.4 |
| NANO/BTC | 17 | 1.26 | 21.39 | 0.00107058 | 10.70 | 1:55:00 | 10 0 7 58.5 |
| NEO/BTC | 23 | 0.82 | 18.97 | 0.00094936 | 9.48 | 2:59:00 | 10 0 13 43.5 |
| REQ/BTC | 9 | 1.17 | 10.54 | 0.00052734 | 5.27 | 3:47:00 | 4 0 5 44.4 |
| XLM/BTC | 16 | 1.22 | 19.54 | 0.00097800 | 9.77 | 3:15:00 | 7 0 9 43.8 |
| XMR/BTC | 23 | -0.18 | -4.13 | -0.00020696 | -2.07 | 5:30:00 | 12 0 11 52.2 |
| XRP/BTC | 35 | 0.66 | 22.96 | 0.00114897 | 11.48 | 3:49:00 | 12 0 23 34.3 |
| ZEC/BTC | 22 | -0.46 | -10.18 | -0.00050971 | -5.09 | 2:22:00 | 7 0 15 31.8 |
| TOTAL | 429 | 0.36 | 152.41 | 0.00762792 | 76.20 | 4:12:00 | 186 0 243 43.4 |
====================================================== LEFT OPEN TRADES REPORT ======================================================
| Pair | Entries | Avg Profit % | Cum Profit % | Tot Profit BTC | Tot Profit % | Avg Duration | Win Draw Loss Win% |
|:---------|---------:|---------------:|---------------:|-----------------:|---------------:|:---------------|--------------------:|
| ADA/BTC | 1 | 0.89 | 0.89 | 0.00004434 | 0.44 | 6:00:00 | 1 0 0 100 |
| LTC/BTC | 1 | 0.68 | 0.68 | 0.00003421 | 0.34 | 2:00:00 | 1 0 0 100 |
| TOTAL | 2 | 0.78 | 1.57 | 0.00007855 | 0.78 | 4:00:00 | 2 0 0 100 |
================================================ BACKTESTING REPORT =================================================
| Pair | Entries | Avg Profit % | Tot Profit BTC | Tot Profit % | Avg Duration | Wins Draws Loss Win% |
|:---------|--------:|---------------:|-----------------:|---------------:|:-------------|-------------------------:|
| ADA/BTC | 35 | -0.11 | -0.00019428 | -1.94 | 4:35:00 | 14 0 21 40.0 |
| ARK/BTC | 11 | -0.41 | -0.00022647 | -2.26 | 2:03:00 | 3 0 8 27.3 |
| BTS/BTC | 32 | 0.31 | 0.00048938 | 4.89 | 5:05:00 | 18 0 14 56.2 |
| DASH/BTC | 13 | -0.08 | -0.00005343 | -0.53 | 4:39:00 | 6 0 7 46.2 |
| ENG/BTC | 18 | 1.36 | 0.00122807 | 12.27 | 2:50:00 | 8 0 10 44.4 |
| EOS/BTC | 36 | 0.08 | 0.00015304 | 1.53 | 3:34:00 | 16 0 20 44.4 |
| ETC/BTC | 26 | 0.37 | 0.00047576 | 4.75 | 6:14:00 | 11 0 15 42.3 |
| ETH/BTC | 33 | 0.30 | 0.00049856 | 4.98 | 7:31:00 | 16 0 17 48.5 |
| IOTA/BTC | 32 | 0.03 | 0.00005444 | 0.54 | 3:12:00 | 14 0 18 43.8 |
| LSK/BTC | 15 | 1.75 | 0.00131413 | 13.13 | 2:58:00 | 6 0 9 40.0 |
| LTC/BTC | 32 | -0.04 | -0.00006886 | -0.69 | 4:49:00 | 11 0 21 34.4 |
| NANO/BTC | 17 | 1.26 | 0.00107058 | 10.70 | 1:55:00 | 10 0 7 58.5 |
| NEO/BTC | 23 | 0.82 | 0.00094936 | 9.48 | 2:59:00 | 10 0 13 43.5 |
| REQ/BTC | 9 | 1.17 | 0.00052734 | 5.27 | 3:47:00 | 4 0 5 44.4 |
| XLM/BTC | 16 | 1.22 | 0.00097800 | 9.77 | 3:15:00 | 7 0 9 43.8 |
| XMR/BTC | 23 | -0.18 | -0.00020696 | -2.07 | 5:30:00 | 12 0 11 52.2 |
| XRP/BTC | 35 | 0.66 | 0.00114897 | 11.48 | 3:49:00 | 12 0 23 34.3 |
| ZEC/BTC | 22 | -0.46 | -0.00050971 | -5.09 | 2:22:00 | 7 0 15 31.8 |
| TOTAL | 429 | 0.36 | 0.00762792 | 76.20 | 4:12:00 | 186 0 243 43.4 |
============================================= LEFT OPEN TRADES REPORT =============================================
| Pair | Entries | Avg Profit % | Tot Profit BTC | Tot Profit % | Avg Duration | Win Draw Loss Win% |
|:---------|---------:|---------------:|-----------------:|---------------:|:---------------|--------------------:|
| ADA/BTC | 1 | 0.89 | 0.00004434 | 0.44 | 6:00:00 | 1 0 0 100 |
| LTC/BTC | 1 | 0.68 | 0.00003421 | 0.34 | 2:00:00 | 1 0 0 100 |
| TOTAL | 2 | 0.78 | 0.00007855 | 0.78 | 4:00:00 | 2 0 0 100 |
==================== EXIT REASON STATS ====================
| Exit Reason | Exits | Wins | Draws | Losses |
|:-------------------|--------:|------:|-------:|--------:|
@@ -358,7 +358,7 @@ here:
The bot has made `429` trades for an average duration of `4:12:00`, with a performance of `76.20%` (profit), that means it has
earned a total of `0.00762792 BTC` starting with a capital of 0.01 BTC.
The column `Avg Profit %` shows the average profit for all trades made while the column `Cum Profit %` sums up all the profits/losses.
The column `Avg Profit %` shows the average profit for all trades made.
The column `Tot Profit %` shows instead the total profit % in relation to the starting balance.
In the above results, we have a starting balance of 0.01 BTC and an absolute profit of 0.00762792 BTC - so the `Tot Profit %` will be `(0.00762792 / 0.01) * 100 ~= 76.2%`.
@@ -464,7 +464,7 @@ It contains some useful key metrics about performance of your strategy on backte
- `Profit factor`: profit / loss.
- `Avg. stake amount`: Average stake amount, either `stake_amount` or the average when using dynamic stake amount.
- `Total trade volume`: Volume generated on the exchange to reach the above profit.
- `Best Pair` / `Worst Pair`: Best and worst performing pair, and it's corresponding `Cum Profit %`.
- `Best Pair` / `Worst Pair`: Best and worst performing pair, and it's corresponding `Tot Profit %`.
- `Best Trade` / `Worst Trade`: Biggest single winning trade and biggest single losing trade.
- `Best day` / `Worst day`: Best and worst day based on daily profit.
- `Days win/draw/lose`: Winning / Losing days (draws are usually days without closed trade).
@@ -618,22 +618,22 @@ To compare multiple strategies, a list of Strategies can be provided to backtest
This is limited to 1 timeframe value per run. However, data is only loaded once from disk so if you have multiple
strategies you'd like to compare, this will give a nice runtime boost.
All listed Strategies need to be in the same directory.
All listed Strategies need to be in the same directory, unless also `--recursive-strategy-search` is specified, where sub-directories within the strategy directory are also considered.
``` bash
freqtrade backtesting --timerange 20180401-20180410 --timeframe 5m --strategy-list Strategy001 Strategy002 --export trades
```
This will save the results to `user_data/backtest_results/backtest-result-<strategy>.json`, injecting the strategy-name into the target filename.
This will save the results to `user_data/backtest_results/backtest-result-<datetime>.json`, including results for both `Strategy001` and `Strategy002`.
There will be an additional table comparing win/losses of the different strategies (identical to the "Total" row in the first table).
Detailed output for all strategies one after the other will be available, so make sure to scroll up to see the details per strategy.
```
=========================================================== STRATEGY SUMMARY ===========================================================================
| Strategy | Entries | Avg Profit % | Cum Profit % | Tot Profit BTC | Tot Profit % | Avg Duration | Wins | Draws | Losses | Drawdown % |
|:------------|---------:|---------------:|---------------:|-----------------:|---------------:|:---------------|------:|-------:|-------:|-----------:|
| Strategy1 | 429 | 0.36 | 152.41 | 0.00762792 | 76.20 | 4:12:00 | 186 | 0 | 243 | 45.2 |
| Strategy2 | 1487 | -0.13 | -197.58 | -0.00988917 | -98.79 | 4:43:00 | 662 | 0 | 825 | 241.68 |
================================================== STRATEGY SUMMARY ===================================================================
| Strategy | Entries | Avg Profit % | Tot Profit BTC | Tot Profit % | Avg Duration | Wins | Draws | Losses | Drawdown % |
|:------------|---------:|---------------:|-----------------:|---------------:|:---------------|------:|-------:|-------:|-----------:|
| Strategy1 | 429 | 0.36 | 0.00762792 | 76.20 | 4:12:00 | 186 | 0 | 243 | 45.2 |
| Strategy2 | 1487 | -0.13 | -0.00988917 | -98.79 | 4:43:00 | 662 | 0 | 825 | 241.68 |
```
## Next step
+8 -5
View File
@@ -33,7 +33,6 @@ For spot pairs, naming will be `base/quote` (e.g. `ETH/USDT`).
For futures pairs, naming will be `base/quote:settle` (e.g. `ETH/USDT:USDT`).
## Bot execution logic
Starting freqtrade in dry-run or live mode (using `freqtrade trade`) will start the bot and start the bot iteration loop.
@@ -50,10 +49,12 @@ By default, the bot loop runs every few seconds (`internals.process_throttle_sec
* Call `populate_indicators()`
* Call `populate_entry_trend()`
* Call `populate_exit_trend()`
* Check timeouts for open orders.
* Calls `check_entry_timeout()` strategy callback for open entry orders.
* Calls `check_exit_timeout()` strategy callback for open exit orders.
* Calls `adjust_entry_price()` strategy callback for open entry orders.
* Update trades open order state from exchange.
* Call `order_filled()` strategy callback for filled orders.
* Check timeouts for open orders.
* Calls `check_entry_timeout()` strategy callback for open entry orders.
* Calls `check_exit_timeout()` strategy callback for open exit orders.
* Calls `adjust_entry_price()` strategy callback for open entry orders.
* Verifies existing positions and eventually places exit orders.
* Considers stoploss, ROI and exit-signal, `custom_exit()` and `custom_stoploss()`.
* Determine exit-price based on `exit_pricing` configuration setting or by using the `custom_exit_price()` callback.
@@ -86,8 +87,10 @@ This loop will be repeated again and again until the bot is stopped.
* In Margin and Futures mode, `leverage()` strategy callback is called to determine the desired leverage.
* Determine stake size by calling the `custom_stake_amount()` callback.
* Check position adjustments for open trades if enabled and call `adjust_trade_position()` to determine if an additional order is requested.
* Call `order_filled()` strategy callback for filled entry orders.
* Call `custom_stoploss()` and `custom_exit()` to find custom exit points.
* For exits based on exit-signal, custom-exit and partial exits: Call `custom_exit_price()` to determine exit price (Prices are moved to be within the closing candle).
* Call `order_filled()` strategy callback for filled exit orders.
* Generate backtest report output
!!! Note
+22 -8
View File
@@ -14,7 +14,7 @@ You can specify a different configuration file used by the bot with the `-c/--co
If you used the [Quick start](docker_quickstart.md#docker-quick-start) method for installing
the bot, the installation script should have already created the default configuration file (`config.json`) for you.
If the default configuration file is not created we recommend to use `freqtrade new-config --config config.json` to generate a basic configuration file.
If the default configuration file is not created we recommend to use `freqtrade new-config --config user_data/config.json` to generate a basic configuration file.
The Freqtrade configuration file is to be written in JSON format.
@@ -49,6 +49,13 @@ FREQTRADE__EXCHANGE__SECRET=<yourExchangeSecret>
!!! Note
Environment variables detected are logged at startup - so if you can't find why a value is not what you think it should be based on the configuration, make sure it's not loaded from an environment variable.
!!! Tip "Validate combined result"
You can use the [show-config subcommand](utils.md#show-config) to see the final, combined configuration.
??? Warning "Loading sequence"
Environment variables are loaded after the initial configuration. As such, you cannot provide the path to the configuration through environment variables. Please use `--config path/to/config.json` for that.
This also applies to user_dir to some degree. while the user directory can be set through environment variables - the configuration will **not** be loaded from that location.
### Multiple configuration files
Multiple configuration files can be specified and used by the bot or the bot can read its configuration parameters from the process standard input stream.
@@ -56,6 +63,9 @@ Multiple configuration files can be specified and used by the bot or the bot can
You can specify additional configuration files in `add_config_files`. Files specified in this parameter will be loaded and merged with the initial config file. The files are resolved relative to the initial configuration file.
This is similar to using multiple `--config` parameters, but simpler in usage as you don't have to specify all files for all commands.
!!! Tip "Validate combined result"
You can use the [show-config subcommand](utils.md#show-config) to see the final, combined configuration.
!!! Tip "Use multiple configuration files to keep secrets secret"
You can use a 2nd configuration file containing your secrets. That way you can share your "primary" configuration file, while still keeping your API keys for yourself.
The 2nd file should only specify what you intend to override.
@@ -321,11 +331,13 @@ For example, if you have 10 ETH available in your wallet on the exchange and `tr
To fully utilize compounding profits when using multiple bots on the same exchange account, you'll want to limit each bot to a certain starting balance.
This can be accomplished by setting `available_capital` to the desired starting balance.
Assuming your account has 10.000 USDT and you want to run 2 different strategies on this exchange.
Assuming your account has 10000 USDT and you want to run 2 different strategies on this exchange.
You'd set `available_capital=5000` - granting each bot an initial capital of 5000 USDT.
The bot will then split this starting balance equally into `max_open_trades` buckets.
Profitable trades will result in increased stake-sizes for this bot - without affecting the stake-sizes of the other bot.
Adjusting `available_capital` requires reloading the configuration to take effect. Adjusting the `available_capital` adds the difference between the previous `available_capital` and the new `available_capital`. Decreasing the available capital when trades are open doesn't exit the trades. The difference is returned to the wallet when the trades conclude. The outcome of this differs depending on the price movement between the adjustment and exiting the trades.
!!! Warning "Incompatible with `tradable_balance_ratio`"
Setting this option will replace any configuration of `tradable_balance_ratio`.
@@ -503,13 +515,13 @@ Configuration:
Please carefully read the section [Market order pricing](#market-order-pricing) section when using market orders.
!!! Note "Stoploss on exchange"
`stoploss_on_exchange_interval` is not mandatory. Do not change its value if you are
`order_types.stoploss_on_exchange_interval` is not mandatory. Do not change its value if you are
unsure of what you are doing. For more information about how stoploss works please
refer to [the stoploss documentation](stoploss.md).
If `stoploss_on_exchange` is enabled and the stoploss is cancelled manually on the exchange, then the bot will create a new stoploss order.
If `order_types.stoploss_on_exchange` is enabled and the stoploss is cancelled manually on the exchange, then the bot will create a new stoploss order.
!!! Warning "Warning: stoploss_on_exchange failures"
!!! Warning "Warning: order_types.stoploss_on_exchange failures"
If stoploss on exchange creation fails for some reason, then an "emergency exit" is initiated. By default, this will exit the trade using a market order. The order-type for the emergency-exit can be changed by setting the `emergency_exit` value in the `order_types` dictionary - however, this is not advised.
### Understand order_time_in_force
@@ -572,9 +584,11 @@ In addition to fiat currencies, a range of crypto currencies is supported.
The valid values are:
```json
"BTC", "ETH", "XRP", "LTC", "BCH", "USDT"
"BTC", "ETH", "XRP", "LTC", "BCH", "BNB"
```
Removing `fiat_display_currency` completely from the configuration will skip initializing coingecko, and will not show any FIAT currency conversion. This has no importance for the correct functioning of the bot.
## Using Dry-run mode
We recommend starting the bot in the Dry-run mode to see how your bot will
@@ -594,7 +608,7 @@ creating trades on the exchange.
```json
"exchange": {
"name": "bittrex",
"name": "binance",
"key": "key",
"secret": "secret",
...
@@ -644,7 +658,7 @@ API Keys are usually only required for live trading (trading for real money, bot
```json
{
"exchange": {
"name": "bittrex",
"name": "binance",
"key": "af8ddd35195e9dc500b9a6f799f6f5c93d89193b",
"secret": "08a9dc6db3d7b53e1acebd9275677f4b0a04f1a5",
//"password": "", // Optional, not needed by all exchanges)
+8 -5
View File
@@ -129,6 +129,8 @@ Below is an outline of exception inheritance hierarchy:
+ FreqtradeException
|
+---+ OperationalException
| |
| +---+ ConfigurationError
|
+---+ DependencyException
| |
@@ -318,6 +320,7 @@ Additional tests / steps to complete:
* Check if balance shows correctly (*)
* Create market order (*)
* Create limit order (*)
* Cancel order (*)
* Complete trade (enter + exit) (*)
* Compare result calculation between exchange and bot
* Ensure fees are applied correctly (check the database against the exchange)
@@ -375,7 +378,7 @@ from pathlib import Path
exchange = ccxt.binance({
'apiKey': '<apikey>',
'secret': '<secret>'
'secret': '<secret>',
'options': {'defaultType': 'swap'}
})
_ = exchange.load_markets()
@@ -418,6 +421,9 @@ This part of the documentation is aimed at maintainers, and shows how to create
### Create release branch
!!! Note
Make sure that the `stable` branch is up-to-date!
First, pick a commit that's about one week old (to not include latest additions to releases).
``` bash
@@ -430,14 +436,11 @@ Determine if crucial bugfixes have been made between this commit and the current
* Merge the release branch (stable) into this branch.
* Edit `freqtrade/__init__.py` and add the version matching the current date (for example `2019.7` for July 2019). Minor versions can be `2019.7.1` should we need to do a second release that month. Version numbers must follow allowed versions from PEP0440 to avoid failures pushing to pypi.
* Commit this part.
* push that branch to the remote and create a PR against the stable branch.
* Push that branch to the remote and create a PR against the **stable branch**.
* Update develop version to next version following the pattern `2019.8-dev`.
### Create changelog from git commits
!!! Note
Make sure that the `stable` branch is up-to-date!
``` bash
# Needs to be done before merging / pulling that branch.
git log --oneline --no-decorate --no-merges stable..new_release
+61 -44
View File
@@ -68,6 +68,8 @@ Binance supports [time_in_force](configuration.md#understand-order_time_in_force
For Binance, it is suggested to add `"BNB/<STAKE>"` to your blacklist to avoid issues, unless you are willing to maintain enough extra `BNB` on the account or unless you're willing to disable using `BNB` for fees.
Binance accounts may use `BNB` for fees, and if a trade happens to be on `BNB`, further trades may consume this position and make the initial BNB trade unsellable as the expected amount is not there anymore.
If not enough `BNB` is available to cover transaction fees, then fees will not be covered by `BNB` and no fee reduction will occur. Freqtrade will never buy BNB to cover for fees. BNB needs to be bought and monitored manually to this end.
### Binance sites
Binance has been split into 2, and users must use the correct ccxt exchange ID for their exchange, otherwise API keys are not recognized.
@@ -127,6 +129,8 @@ Freqtrade will not attempt to change these settings.
## Kraken
Kraken supports [time_in_force](configuration.md#understand-order_time_in_force) with settings "GTC" (good till cancelled), "IOC" (immediate-or-cancel) and "PO" (Post only) settings.
!!! Tip "Stoploss on Exchange"
Kraken supports `stoploss_on_exchange` and can use both stop-loss-market and stop-loss-limit orders. It provides great advantages, so we recommend to benefit from it.
You can use either `"limit"` or `"market"` in the `order_types.stoploss` configuration setting to decide which type to use.
@@ -136,6 +140,43 @@ Freqtrade will not attempt to change these settings.
The Kraken API does only provide 720 historic candles, which is sufficient for Freqtrade dry-run and live trade modes, but is a problem for backtesting.
To download data for the Kraken exchange, using `--dl-trades` is mandatory, otherwise the bot will download the same 720 candles over and over, and you'll not have enough backtest data.
To speed up downloading, you can download the [trades zip files](https://support.kraken.com/hc/en-us/articles/360047543791-Downloadable-historical-market-data-time-and-sales-) kraken provides.
These are usually updated once per quarter. Freqtrade expects these files to be placed in `user_data/data/kraken/trades_csv`.
A structure as follows can make sense if using incremental files, with the "full" history in one directory, and incremental files in different directories.
The assumption for this mode is that the data is downloaded and unzipped keeping filenames as they are.
Duplicate content will be ignored (based on timestamp) - though the assumption is that there is no gap in the data.
This means, if your "full" history ends in Q4 2022 - then both incremental updates Q1 2023 and Q2 2023 are available.
Not having this will lead to incomplete data, and therefore invalid results while using the data.
```
└── trades_csv
    ├── Kraken_full_history
   │   ├── BCHEUR.csv
   │   └── XBTEUR.csv
   ├── Kraken_Trading_History_Q1_2023
   │   ├── BCHEUR.csv
   │   └── XBTEUR.csv
   └── Kraken_Trading_History_Q2_2023
      ├── BCHEUR.csv
      └── XBTEUR.csv
```
You can convert these files into freqtrade files:
``` bash
freqtrade convert-trade-data --exchange kraken --format-from kraken_csv --format-to feather
# Convert trade data to different ohlcv timeframes
freqtrade trades-to-ohlcv -p BTC/EUR BCH/EUR --exchange kraken -t 1m 5m 15m 1h
```
The converted data also makes downloading data possible, and will start the download after the latest loaded trade.
``` bash
freqtrade download-data --exchange kraken --dl-trades -p BTC/EUR BCH/EUR
```
!!! Warning "Downloading data from kraken"
Downloading kraken data will require significantly more memory (RAM) than any other exchange, as the trades-data needs to be converted into candles on your machine.
It will also take a long time, as freqtrade will need to download every single trade that happened on the exchange for the pair / timerange combination, therefore please be patient.
@@ -144,48 +185,6 @@ To download data for the Kraken exchange, using `--dl-trades` is mandatory, othe
Please pay attention that rateLimit configuration entry holds delay in milliseconds between requests, NOT requests\sec rate.
So, in order to mitigate Kraken API "Rate limit exceeded" exception, this configuration should be increased, NOT decreased.
## Bittrex
### Order types
Bittrex does not support market orders. If you have a message at the bot startup about this, you should change order type values set in your configuration and/or in the strategy from `"market"` to `"limit"`. See some more details on this [here in the FAQ](faq.md#im-getting-the-exchange-bittrex-does-not-support-market-orders-message-and-cannot-run-my-strategy).
Bittrex also does not support `VolumePairlist` due to limited / split API constellation at the moment.
Please use `StaticPairlist`. Other pairlists (other than `VolumePairlist`) should not be affected.
### Volume pairlist
Bittrex does not support the direct usage of VolumePairList. This can however be worked around by using the advanced mode with `lookback_days: 1` (or more), which will emulate 24h volume.
Read more in the [pairlist documentation](plugins.md#volumepairlist-advanced-mode).
### Restricted markets
Bittrex split its exchange into US and International versions.
The International version has more pairs available, however the API always returns all pairs, so there is currently no automated way to detect if you're affected by the restriction.
If you have restricted pairs in your whitelist, you'll get a warning message in the log on Freqtrade startup for each restricted pair.
The warning message will look similar to the following:
``` output
[...] Message: bittrex {"success":false,"message":"RESTRICTED_MARKET","result":null,"explanation":null}"
```
If you're an "International" customer on the Bittrex exchange, then this warning will probably not impact you.
If you're a US customer, the bot will fail to create orders for these pairs, and you should remove them from your whitelist.
You can get a list of restricted markets by using the following snippet:
``` python
import ccxt
ct = ccxt.bittrex()
lm = ct.load_markets()
res = [p for p, x in lm.items() if 'US' in x['info']['prohibitedIn']]
print(res)
```
## Kucoin
Kucoin requires a passphrase for each api key, you will therefore need to add this key into the configuration so your exchange section looks as follows:
@@ -211,10 +210,10 @@ Kucoin supports [time_in_force](configuration.md#understand-order_time_in_force)
For Kucoin, it is suggested to add `"KCS/<STAKE>"` to your blacklist to avoid issues, unless you are willing to maintain enough extra `KCS` on the account or unless you're willing to disable using `KCS` for fees.
Kucoin accounts may use `KCS` for fees, and if a trade happens to be on `KCS`, further trades may consume this position and make the initial `KCS` trade unsellable as the expected amount is not there anymore.
## Huobi
## HTX (formerly Huobi)
!!! Tip "Stoploss on Exchange"
Huobi supports `stoploss_on_exchange` and uses `stop-limit` orders. It provides great advantages, so we recommend to benefit from it by enabling stoploss on exchange.
HTX supports `stoploss_on_exchange` and uses `stop-limit` orders. It provides great advantages, so we recommend to benefit from it by enabling stoploss on exchange.
## OKX (former OKEX)
@@ -265,6 +264,24 @@ We do strongly recommend to limit all API keys to the IP you're going to use it
Bybit (futures only) supports `stoploss_on_exchange` and uses `stop-loss-limit` orders. It provides great advantages, so we recommend to benefit from it by enabling stoploss on exchange.
On futures, Bybit supports both `stop-limit` as well as `stop-market` orders. You can use either `"limit"` or `"market"` in the `order_types.stoploss` configuration setting to decide which type to use.
## Bitmart
Bitmart requires the API key Memo (the name you give the API key) to go along with the exchange key and secret.
It's therefore required to pass the UID as well.
```json
"exchange": {
"name": "bitmart",
"uid": "your_bitmart_api_key_memo",
"secret": "your_exchange_secret",
"password": "your_exchange_api_key_password",
// ...
}
```
!!! Warning "Necessary Verification"
Bitmart requires Verification Lvl2 to successfully trade on the spot market through the API - even though trading via UI works just fine with just Lvl1 verification.
## All exchanges
Should you experience constant errors with Nonce (like `InvalidNonce`), it is best to regenerate the API keys. Resetting Nonce is difficult and it's usually easier to regenerate the API keys.
+1 -7
View File
@@ -128,15 +128,9 @@ This warning can point to one of the below problems:
* Barely traded pair -> Check the pair on the exchange webpage, look at the timeframe your strategy uses. If the pair does not have any volume in some candles (usually visualized with a "volume 0" bar, and a "_" as candle), this pair did not have any trades in this timeframe. These pairs should ideally be avoided, as they can cause problems with order-filling.
* API problem -> API returns wrong data (this only here for completeness, and should not happen with supported exchanges).
### I'm getting the "RESTRICTED_MARKET" message in the log
Currently known to happen for US Bittrex users.
Read [the Bittrex section about restricted markets](exchanges.md#restricted-markets) for more information.
### I'm getting the "Exchange XXX does not support market orders." message and cannot run my strategy
As the message says, your exchange does not support market orders and you have one of the [order types](configuration.md/#understand-order_types) set to "market". Your strategy was probably written with other exchanges in mind and sets "market" orders for "stoploss" orders, which is correct and preferable for most of the exchanges supporting market orders (but not for Bittrex and Gate.io).
As the message says, your exchange does not support market orders and you have one of the [order types](configuration.md/#understand-order_types) set to "market". Your strategy was probably written with other exchanges in mind and sets "market" orders for "stoploss" orders, which is correct and preferable for most of the exchanges supporting market orders (but not for Gate.io).
To fix this, redefine order types in the strategy to use "limit" instead of "market":
+5 -1
View File
@@ -32,6 +32,9 @@ FreqAI is configured through the typical [Freqtrade config file](configuration.m
A full example config is available in `config_examples/config_freqai.example.json`.
!!! Note
The `identifier` is commonly overlooked by newcomers, however, this value plays an important role in your configuration. This value is a unique ID that you choose to describe one of your runs. Keeping it the same allows you to maintain crash resilience as well as faster backtesting. As soon as you want to try a new run (new features, new model, etc.), you should change this value (or delete the `user_data/models/unique-id` folder. More details available in the [parameter table](freqai-parameter-table.md#feature-parameters).
## Building a FreqAI strategy
The FreqAI strategy requires including the following lines of code in the standard [Freqtrade strategy](strategy-customization.md):
@@ -162,7 +165,8 @@ Below are the values you can expect to include/use inside a typical strategy dat
| `df['&*_std/mean']` | Standard deviation and mean values of the defined labels during training (or live tracking with `fit_live_predictions_candles`). Commonly used to understand the rarity of a prediction (use the z-score as shown in `templates/FreqaiExampleStrategy.py` and explained [here](#creating-a-dynamic-target-threshold) to evaluate how often a particular prediction was observed during training or historically with `fit_live_predictions_candles`). <br> **Datatype:** Float.
| `df['do_predict']` | Indication of an outlier data point. The return value is integer between -2 and 2, which lets you know if the prediction is trustworthy or not. `do_predict==1` means that the prediction is trustworthy. If the Dissimilarity Index (DI, see details [here](freqai-feature-engineering.md#identifying-outliers-with-the-dissimilarity-index-di)) of the input data point is above the threshold defined in the config, FreqAI will subtract 1 from `do_predict`, resulting in `do_predict==0`. If `use_SVM_to_remove_outliers` is active, the Support Vector Machine (SVM, see details [here](freqai-feature-engineering.md#identifying-outliers-using-a-support-vector-machine-svm)) may also detect outliers in training and prediction data. In this case, the SVM will also subtract 1 from `do_predict`. If the input data point was considered an outlier by the SVM but not by the DI, or vice versa, the result will be `do_predict==0`. If both the DI and the SVM considers the input data point to be an outlier, the result will be `do_predict==-1`. As with the SVM, if `use_DBSCAN_to_remove_outliers` is active, DBSCAN (see details [here](freqai-feature-engineering.md#identifying-outliers-with-dbscan)) may also detect outliers and subtract 1 from `do_predict`. Hence, if both the SVM and DBSCAN are active and identify a datapoint that was above the DI threshold as an outlier, the result will be `do_predict==-2`. A particular case is when `do_predict == 2`, which means that the model has expired due to exceeding `expired_hours`. <br> **Datatype:** Integer between -2 and 2.
| `df['DI_values']` | Dissimilarity Index (DI) values are proxies for the level of confidence FreqAI has in the prediction. A lower DI means the prediction is close to the training data, i.e., higher prediction confidence. See details about the DI [here](freqai-feature-engineering.md#identifying-outliers-with-the-dissimilarity-index-di). <br> **Datatype:** Float.
| `df['%*']` | Any dataframe column prepended with `%` in `feature_engineering_*()` is treated as a training feature. For example, you can include the RSI in the training feature set (similar to in `templates/FreqaiExampleStrategy.py`) by setting `df['%-rsi']`. See more details on how this is done [here](freqai-feature-engineering.md). <br> **Note:** Since the number of features prepended with `%` can multiply very quickly (10s of thousands of features are easily engineered using the multiplictative functionality of, e.g., `include_shifted_candles` and `include_timeframes` as described in the [parameter table](freqai-parameter-table.md)), these features are removed from the dataframe that is returned from FreqAI to the strategy. To keep a particular type of feature for plotting purposes, you would prepend it with `%%`. <br> **Datatype:** Depends on the output of the model.
| `df['%*']` | Any dataframe column prepended with `%` in `feature_engineering_*()` is treated as a training feature. For example, you can include the RSI in the training feature set (similar to in `templates/FreqaiExampleStrategy.py`) by setting `df['%-rsi']`. See more details on how this is done [here](freqai-feature-engineering.md). <br> **Note:** Since the number of features prepended with `%` can multiply very quickly (10s of thousands of features are easily engineered using the multiplictative functionality of, e.g., `include_shifted_candles` and `include_timeframes` as described in the [parameter table](freqai-parameter-table.md)), these features are removed from the dataframe that is returned from FreqAI to the strategy. To keep a particular type of feature for plotting purposes, you would prepend it with `%%` (see details below). <br> **Datatype:** Depends on the feature created by the user.
| `df['%%*']` | Any dataframe column prepended with `%%` in `feature_engineering_*()` is treated as a training feature, just the same as the above `%` prepend. However, in this case, the features are returned back to the strategy for FreqUI/plot-dataframe plotting and monitoring in Dry/Live/Backtesting <br> **Datatype:** Depends on the feature created by the user. Please note that features created in `feature_engineering_expand()` will have automatic FreqAI naming schemas depending on the expansions that you configured (i.e. `include_timeframes`, `include_corr_pairlist`, `indicators_periods_candles`, `include_shifted_candles`). So if you want to plot `%%-rsi` from `feature_engineering_expand_all()`, the final naming scheme for your plotting config would be: `%%-rsi-period_10_ETH/USDT:USDT_1h` for the `rsi` feature with `period=10`, `timeframe=1h`, and `pair=ETH/USDT:USDT` (the `:USDT` is added if you are using futures pairs). It is useful to simply add `print(dataframe.columns)` in your `populate_indicators()` after `self.freqai.start()` to see the full list of available features that are returned to the strategy for plotting purposes.
## Setting the `startup_candle_count`
+1 -1
View File
@@ -7,7 +7,7 @@ Low level feature engineering is performed in the user strategy within a set of
| Function | Description |
|---------------|-------------|
| `feature_engineering_expand_all()` | This optional function will automatically expand the defined features on the config defined `indicator_periods_candles`, `include_timeframes`, `include_shifted_candles`, and `include_corr_pairs`.
| `feature_engineering_expand_basic()` | This optional function will automatically expand the defined features on the config defined `include_timeframes`, `include_shifted_candles`, and `include_corr_pairs`. Note: this function does *not* expand across `include_periods_candles`.
| `feature_engineering_expand_basic()` | This optional function will automatically expand the defined features on the config defined `include_timeframes`, `include_shifted_candles`, and `include_corr_pairs`. Note: this function does *not* expand across `indicator_periods_candles`.
| `feature_engineering_standard()` | This optional function will be called once with the dataframe of the base timeframe. This is the final function to be called, which means that the dataframe entering this function will contain all the features and columns from the base asset created by the other `feature_engineering_expand` functions. This function is a good place to do custom exotic feature extractions (e.g. tsfresh). This function is also a good place for any feature that should not be auto-expanded upon (e.g., day of the week).
| `set_freqai_targets()` | Required function to set the targets for the model. All targets must be prepended with `&` to be recognized by the FreqAI internals.
+1 -2
View File
@@ -74,9 +74,8 @@ Mandatory parameters are marked as **Required** and have to be set in one of the
| | **Reinforcement Learning Parameters within the `freqai.rl_config` sub dictionary**
| `rl_config` | A dictionary containing the control parameters for a Reinforcement Learning model. <br> **Datatype:** Dictionary.
| `train_cycles` | Training time steps will be set based on the `train_cycles * number of training data points. <br> **Datatype:** Integer.
| `cpu_count` | Number of processors to dedicate to the Reinforcement Learning training process. <br> **Datatype:** int.
| `max_trade_duration_candles`| Guides the agent training to keep trades below desired length. Example usage shown in `prediction_models/ReinforcementLearner.py` within the customizable `calculate_reward()` function. <br> **Datatype:** int.
| `model_type` | Model string from stable_baselines3 or SBcontrib. Available strings include: `'TRPO', 'ARS', 'RecurrentPPO', 'MaskablePPO', 'PPO', 'A2C', 'DQN'`. User should ensure that `model_training_parameters` match those available to the corresponding stable_baselines3 model by visiting their documentaiton. [PPO doc](https://stable-baselines3.readthedocs.io/en/master/modules/ppo.html) (external website) <br> **Datatype:** string.
| `model_type` | Model string from stable_baselines3 or SBcontrib. Available strings include: `'TRPO', 'ARS', 'RecurrentPPO', 'MaskablePPO', 'PPO', 'A2C', 'DQN'`. User should ensure that `model_training_parameters` match those available to the corresponding stable_baselines3 model by visiting their documentation. [PPO doc](https://stable-baselines3.readthedocs.io/en/master/modules/ppo.html) (external website) <br> **Datatype:** string.
| `policy_type` | One of the available policy types from stable_baselines3 <br> **Datatype:** string.
| `max_training_drawdown_pct` | The maximum drawdown that the agent is allowed to experience during training. <br> **Datatype:** float. <br> Default: 0.8
| `cpu_count` | Number of threads/cpus to dedicate to the Reinforcement Learning training process (depending on if `ReinforcementLearning_multiproc` is selected or not). Recommended to leave this untouched, by default, this value is set to the total number of physical cores minus 1. <br> **Datatype:** int.
+1 -1
View File
@@ -142,7 +142,7 @@ Parameter details can be found [here](freqai-parameter-table.md), but in general
As you begin to modify the strategy and the prediction model, you will quickly realize some important differences between the Reinforcement Learner and the Regressors/Classifiers. Firstly, the strategy does not set a target value (no labels!). Instead, you set the `calculate_reward()` function inside the `MyRLEnv` class (see below). A default `calculate_reward()` is provided inside `prediction_models/ReinforcementLearner.py` to demonstrate the necessary building blocks for creating rewards, but this is *not* designed for production. Users *must* create their own custom reinforcement learning model class or use a pre-built one from outside the Freqtrade source code and save it to `user_data/freqaimodels`. It is inside the `calculate_reward()` where creative theories about the market can be expressed. For example, you can reward your agent when it makes a winning trade, and penalize the agent when it makes a losing trade. Or perhaps, you wish to reward the agent for entering trades, and penalize the agent for sitting in trades too long. Below we show examples of how these rewards are all calculated:
!!! note "Hint"
The best reward functions are ones that are continuously differentiable, and well scaled. In other words, adding a single large negative penalty to a rare event is not a good idea, and the neural net will not be able to learn that function. Instead, it is better to add a small negative penalty to a common event. This will help the agent learn faster. Not only this, but you can help improve the continuity of your rewards/penalties by having them scale with severity according to some linear/exponential functions. In other words, you'd slowly scale the penalty as the duration of the trade increases. This is better than a single large penalty occuring at a single point in time.
The best reward functions are ones that are continuously differentiable, and well scaled. In other words, adding a single large negative penalty to a rare event is not a good idea, and the neural net will not be able to learn that function. Instead, it is better to add a small negative penalty to a common event. This will help the agent learn faster. Not only this, but you can help improve the continuity of your rewards/penalties by having them scale with severity according to some linear/exponential functions. In other words, you'd slowly scale the penalty as the duration of the trade increases. This is better than a single large penalty occurring at a single point in time.
```python
from freqtrade.freqai.prediction_models.ReinforcementLearner import ReinforcementLearner
+3 -3
View File
@@ -41,11 +41,11 @@ FreqAI stores new model files after each successful training. These files become
```json
"freqai": {
"purge_old_models": true,
"purge_old_models": 4,
}
```
This will automatically purge all models older than the two most recently trained ones to save disk space.
This will automatically purge all models older than the four most recently trained ones to save disk space. Inputing "0" will never purge any models.
## Backtesting
@@ -68,7 +68,7 @@ Backtesting mode requires [downloading the necessary data](#downloading-data-to-
This way, you can return to using any model you wish by simply specifying the `identifier`.
!!! Note
Backtesting calls `set_freqai_targets()` one time for each backtest window (where the number of windows is the full backtest timerange divided by the `backtest_period_days` parameter). Doing this means that the targets simulate dry/live behavior without look ahead bias. However, the definition of the features in `feature_engineering_*()` is performed once on the entire backtest timerange. This means that you should be sure that features do look-ahead into the future.
Backtesting calls `set_freqai_targets()` one time for each backtest window (where the number of windows is the full backtest timerange divided by the `backtest_period_days` parameter). Doing this means that the targets simulate dry/live behavior without look ahead bias. However, the definition of the features in `feature_engineering_*()` is performed once on the entire training timerange. This means that you should be sure that features do not look-ahead into the future.
More details about look-ahead bias can be found in [Common Mistakes](strategy-customization.md#common-mistakes-when-developing-strategies).
---
+5
View File
@@ -114,6 +114,11 @@ Here we compile some external materials that provide deeper looks into various c
- [Real-time head-to-head: Adaptive modeling of financial market data using XGBoost and CatBoost](https://emergentmethods.medium.com/real-time-head-to-head-adaptive-modeling-of-financial-market-data-using-xgboost-and-catboost-995a115a7495)
- [FreqAI - from price to prediction](https://emergentmethods.medium.com/freqai-from-price-to-prediction-6fadac18b665)
## Support
You can find support for FreqAI in a variety of places, including the [Freqtrade discord](https://discord.gg/Jd8JYeWHc4), the dedicated [FreqAI discord](https://discord.gg/7AMWACmbjT), and in [github issues](https://github.com/freqtrade/freqtrade/issues).
## Credits
FreqAI is developed by a group of individuals who all contribute specific skillsets to the project.
+19 -9
View File
@@ -337,11 +337,15 @@ There are four parameter types each suited for different purposes.
* `CategoricalParameter` - defines a parameter with a predetermined number of choices.
* `BooleanParameter` - Shorthand for `CategoricalParameter([True, False])` - great for "enable" parameters.
!!! Tip "Disabling parameter optimization"
Each parameter takes two boolean parameters:
* `load` - when set to `False` it will not load values configured in `buy_params` and `sell_params`.
* `optimize` - when set to `False` parameter will not be included in optimization process.
Use these parameters to quickly prototype various ideas.
### Parameter options
There are two parameter options that can help you to quickly test various ideas:
* `optimize` - when set to `False`, the parameter will not be included in optimization process. (Default: True)
* `load` - when set to `False`, results of a previous hyperopt run (in `buy_params` and `sell_params` either in your strategy or the JSON output file) will not be used as the starting value for subsequent hyperopts. The default value specified in the parameter will be used instead. (Default: True)
!!! Tip "Effects of `load=False` on backtesting"
Be aware that setting the `load` option to `False` will mean backtesting will also use the default value specified in the parameter and *not* the value found through hyperoptimisation.
!!! Warning
Hyperoptable parameters cannot be used in `populate_indicators` - as hyperopt does not recalculate indicators for each epoch, so the starting value would be used in this case.
@@ -435,7 +439,7 @@ While this strategy is most likely too simple to provide consistent profit, it s
??? Hint "Performance tip"
During normal hyperopting, indicators are calculated once and supplied to each epoch, linearly increasing RAM usage as a factor of increasing cores. As this also has performance implications, there are two alternatives to reduce RAM usage
* Move `ema_short` and `ema_long` calculations from `populate_indicators()` to `populate_entry_trend()`. Since `populate_entry_trend()` gonna be calculated every epochs, you don't need to use `.range` functionality.
* Move `ema_short` and `ema_long` calculations from `populate_indicators()` to `populate_entry_trend()`. Since `populate_entry_trend()` will be calculated every epoch, you don't need to use `.range` functionality.
* hyperopt provides `--analyze-per-epoch` which will move the execution of `populate_indicators()` to the epoch process, calculating a single value per parameter per epoch instead of using the `.range` functionality. In this case, `.range` functionality will only return the actually used value.
These alternatives will reduce RAM usage, but increase CPU usage. However, your hyperopting run will be less likely to fail due to Out Of Memory (OOM) issues.
@@ -922,6 +926,12 @@ Once the optimized strategy has been implemented into your strategy, you should
To achieve same the results (number of trades, their durations, profit, etc.) as during Hyperopt, please use the same configuration and parameters (timerange, timeframe, ...) used for hyperopt `--dmmp`/`--disable-max-market-positions` and `--eps`/`--enable-position-stacking` for Backtesting.
Should results not match, please double-check to make sure you transferred all conditions correctly.
Pay special care to the stoploss, max_open_trades and trailing stoploss parameters, as these are often set in configuration files, which override changes to the strategy.
You should also carefully review the log of your backtest to ensure that there were no parameters inadvertently set by the configuration (like `stoploss`, `max_open_trades` or `trailing_stop`).
### Why do my backtest results not match my hyperopt results?
Should results not match, check the following factors:
* You may have added parameters to hyperopt in `populate_indicators()` where they will be calculated only once **for all epochs**. If you are, for example, trying to optimise multiple SMA timeperiod values, the hyperoptable timeperiod parameter should be placed in `populate_entry_trend()` which is calculated every epoch. See [Optimizing an indicator parameter](https://www.freqtrade.io/en/stable/hyperopt/#optimizing-an-indicator-parameter).
* If you have disabled the auto-export of hyperopt parameters into the JSON parameters file, double-check to make sure you transferred all hyperopted values into your strategy correctly.
* Check the logs to verify what parameters are being set and what values are being used.
* Pay special care to the stoploss, max_open_trades and trailing stoploss parameters, as these are often set in configuration files, which override changes to the strategy. Check the logs of your backtest to ensure that there were no parameters inadvertently set by the configuration (like `stoploss`, `max_open_trades` or `trailing_stop`).
* Verify that you do not have an unexpected parameters JSON file overriding the parameters or the default hyperopt settings in your strategy.
* Verify that any protections that are enabled in backtesting are also enabled when hyperopting, and vice versa. When using `--space protection`, protections are auto-enabled for hyperopting.
+75 -7
View File
@@ -6,7 +6,7 @@ In your configuration, you can use Static Pairlist (defined by the [`StaticPairL
Additionally, [`AgeFilter`](#agefilter), [`PrecisionFilter`](#precisionfilter), [`PriceFilter`](#pricefilter), [`ShuffleFilter`](#shufflefilter), [`SpreadFilter`](#spreadfilter) and [`VolatilityFilter`](#volatilityfilter) act as Pairlist Filters, removing certain pairs and/or moving their positions in the pairlist.
If multiple Pairlist Handlers are used, they are chained and a combination of all Pairlist Handlers forms the resulting pairlist the bot uses for trading and backtesting. Pairlist Handlers are executed in the sequence they are configured. You should always configure either `StaticPairList` or `VolumePairList` as the starting Pairlist Handler.
If multiple Pairlist Handlers are used, they are chained and a combination of all Pairlist Handlers forms the resulting pairlist the bot uses for trading and backtesting. Pairlist Handlers are executed in the sequence they are configured. You can define either `StaticPairList`, `VolumePairList`, `ProducerPairList`, `RemotePairList` or `MarketCapPairList` as the starting Pairlist Handler.
Inactive markets are always removed from the resulting pairlist. Explicitly blacklisted pairs (those in the `pair_blacklist` configuration setting) are also always removed from the resulting pairlist.
@@ -24,6 +24,7 @@ You may also use something like `.*DOWN/BTC` or `.*UP/BTC` to exclude leveraged
* [`VolumePairList`](#volume-pair-list)
* [`ProducerPairList`](#producerpairlist)
* [`RemotePairList`](#remotepairlist)
* [`MarketCapPairList`](#marketcappairlist)
* [`AgeFilter`](#agefilter)
* [`FullTradesFilter`](#fulltradesfilter)
* [`OffsetFilter`](#offsetfilter)
@@ -67,7 +68,7 @@ When used in the leading position of the chain of Pairlist Handlers, the `pair_w
The `refresh_period` setting allows to define the period (in seconds), at which the pairlist will be refreshed. Defaults to 1800s (30 minutes).
The pairlist cache (`refresh_period`) on `VolumePairList` is only applicable to generating pairlists.
Filtering instances (not the first position in the list) will not apply any cache and will always use up-to-date data.
Filtering instances (not the first position in the list) will not apply any cache (beyond caching candles for the duration of the candle in advanced mode) and will always use up-to-date data.
`VolumePairList` is per default based on the ticker data from exchange, as reported by the ccxt library:
@@ -80,12 +81,14 @@ Filtering instances (not the first position in the list) will not apply any cach
"number_assets": 20,
"sort_key": "quoteVolume",
"min_value": 0,
"max_value": 8000000,
"refresh_period": 1800
}
],
```
You can define a minimum volume with `min_value` - which will filter out pairs with a volume lower than the specified value in the specified timerange.
In addition to that, you can also define a maximum volume with `max_value` - which will filter out pairs with a volume higher than the specified value in the specified timerange.
##### VolumePairList Advanced mode
@@ -112,8 +115,8 @@ For convenience `lookback_days` can be specified, which will imply that 1d candl
!!! Warning "Performance implications when using lookback range"
If used in first position in combination with lookback, the computation of the range based volume can be time and resource consuming, as it downloads candles for all tradable pairs. Hence it's highly advised to use the standard approach with `VolumeFilter` to narrow the pairlist down for further range volume calculation.
??? Tip "Unsupported exchanges (Bittrex, Gemini)"
On some exchanges (like Bittrex and Gemini), regular VolumePairList does not work as the api does not natively provide 24h volume. This can be worked around by using candle data to build the volume.
??? Tip "Unsupported exchanges"
On some exchanges (like Gemini), regular VolumePairList does not work as the api does not natively provide 24h volume. This can be worked around by using candle data to build the volume.
To roughly simulate 24h volume, you can use the following configuration.
Please note that These pairlists will only refresh once per day.
@@ -192,14 +195,15 @@ The RemotePairList is defined in the pairlists section of the configuration sett
"refresh_period": 1800,
"keep_pairlist_on_failure": true,
"read_timeout": 60,
"bearer_token": "my-bearer-token"
"bearer_token": "my-bearer-token",
"save_to_file": "user_data/filename.json"
}
]
```
The optional `mode` option specifies if the pairlist should be used as a `blacklist` or as a `whitelist`. The default value is "whitelist".
The optional `processing_mode` option in the RemotePairList configuration determines how the retrieved pairlist is processed. It can have two values: "filter" or "append".
The optional `processing_mode` option in the RemotePairList configuration determines how the retrieved pairlist is processed. It can have two values: "filter" or "append". The default value is "filter".
In "filter" mode, the retrieved pairlist is used as a filter. Only the pairs present in both the original pairlist and the retrieved pairlist are included in the final pairlist. Other pairs are filtered out.
@@ -207,6 +211,42 @@ In "append" mode, the retrieved pairlist is added to the original pairlist. All
The `pairlist_url` option specifies the URL of the remote server where the pairlist is located, or the path to a local file (if file:/// is prepended). This allows the user to use either a remote server or a local file as the source for the pairlist.
The `save_to_file` option, when provided with a valid filename, saves the processed pairlist to that file in JSON format. This option is optional, and by default, the pairlist is not saved to a file.
??? Example "Multi bot with shared pairlist example"
`save_to_file` can be used to save the pairlist to a file with Bot1:
```json
"pairlists": [
{
"method": "RemotePairList",
"mode": "whitelist",
"pairlist_url": "https://example.com/pairlist",
"number_assets": 10,
"refresh_period": 1800,
"keep_pairlist_on_failure": true,
"read_timeout": 60,
"save_to_file": "user_data/filename.json"
}
]
```
This saved pairlist file can be loaded by Bot2, or any additional bot with this configuration:
```json
"pairlists": [
{
"method": "RemotePairList",
"mode": "whitelist",
"pairlist_url": "file:///user_data/filename.json",
"number_assets": 10,
"refresh_period": 10,
"keep_pairlist_on_failure": true,
}
]
```
The user is responsible for providing a server or local file that returns a JSON object with the following structure:
```json
@@ -227,6 +267,25 @@ The optional `bearer_token` will be included in the requests Authorization Heade
!!! Note
In case of a server error the last received pairlist will be kept if `keep_pairlist_on_failure` is set to true, when set to false a empty pairlist is returned.
#### MarketCapPairList
`MarketCapPairList` employs sorting/filtering of pairs by their marketcap rank based of CoinGecko. It will only recognize coins up to the coin placed at rank 250. The returned pairlist will be sorted based of their marketcap ranks.
```json
"pairlists": [
{
"method": "MarketCapPairList",
"number_assets": 20,
"max_rank": 50,
"refresh_period": 86400
}
]
```
`number_assets` defines the maximum number of pairs returned by the pairlist. `max_rank` will determine the maximum rank used in creating/filtering the pairlist. It's expected that some coins within the top `max_rank` marketcap will not be included in the resulting pairlist since not all pairs will have active trading pairs in your preferred market/stake/exchange combination.
`refresh_period` setting defines the period (in seconds) at which the marketcap rank data will be refreshed. Defaults to 86,400s (1 day). The pairlist cache (`refresh_period`) is applicable on both generating pairlists (first position in the list) and filtering instances (not the first position in the list).
#### AgeFilter
Removes pairs that have been listed on the exchange for less than `min_days_listed` days (defaults to `10`) or more than `max_days_listed` days (defaults `None` mean infinity).
@@ -312,6 +371,11 @@ As this Filter uses past performance of the bot, it'll have some startup-period
Filters low-value coins which would not allow setting stoplosses.
Namely, pairs are blacklisted if a variance of one percent or more in the stop price would be caused by precision rounding on the exchange, i.e. `rounded(stop_price) <= rounded(stop_price * 0.99)`. The idea is to avoid coins with a value VERY close to their lower trading boundary, not allowing setting of proper stoploss.
!!! Tip "PerformanceFilter is pointless for futures trading"
The above does not apply to shorts. And for longs, in theory the trade will be liquidated first.
!!! Warning "Backtesting"
`PrecisionFilter` does not support backtesting mode using multiple strategies.
@@ -393,6 +457,8 @@ If the trading range over the last 10 days is <1% or >99%, remove the pair from
]
```
Adding `"sort_direction": "asc"` or `"sort_direction": "desc"` enables sorting for this pairlist.
!!! Tip
This Filter can be used to automatically remove stable coin pairs, which have a very low trading range, and are therefore extremely difficult to trade with profit.
Additionally, it can also be used to automatically remove pairs with extreme high/low variance over a given amount of time.
@@ -403,7 +469,7 @@ Volatility is the degree of historical variation of a pairs over time, it is mea
This filter removes pairs if the average volatility over a `lookback_days` days is below `min_volatility` or above `max_volatility`. Since this is a filter that requires additional data, the results are cached for `refresh_period`.
This filter can be used to narrow down your pairs to a certain volatility or avoid very volatile pairs.
This filter can be used to narrow down your pairs to a certain volatility or avoid very volatile pairs.
In the below example:
If the volatility over the last 10 days is not in the range of 0.05-0.50, remove the pair from the whitelist. The filter is applied every 24h.
@@ -420,6 +486,8 @@ If the volatility over the last 10 days is not in the range of 0.05-0.50, remove
]
```
Adding `"sort_direction": "asc"` or `"sort_direction": "desc"` enables sorting mode for this pairlist.
### Full example of Pairlist Handlers
The below example blacklists `BNB/BTC`, uses `VolumePairList` with `20` assets, sorting pairs by `quoteVolume` and applies [`PrecisionFilter`](#precisionfilter) and [`PriceFilter`](#pricefilter), filtering all assets where 1 price unit is > 1%. Then the [`SpreadFilter`](#spreadfilter) and [`VolatilityFilter`](#volatilityfilter) is applied and pairs are finally shuffled with the random seed set to some predefined value.
+1 -1
View File
@@ -5,7 +5,7 @@ This section will highlight a few projects from members of the community.
- [Example freqtrade strategies](https://github.com/freqtrade/freqtrade-strategies/)
- [FrequentHippo - Grafana dashboard with dry/live runs and backtests](http://frequenthippo.ddns.net:3000/) (by hippocritical).
- [Online pairlist generator](https://remotepairlist.com/) (by Blood4rc).
- [Freqtrade Backtesting Project](https://bt.robot.co.network/) (by Blood4rc).
- [Freqtrade Backtesting Project](https://strat.ninja/) (by Blood4rc).
- [Freqtrade analysis notebook](https://github.com/froggleston/freqtrade_analysis_notebook) (by Froggleston).
- [TUI for freqtrade](https://github.com/froggleston/freqtrade-frogtrade9000) (by Froggleston).
- [Bot Academy](https://botacademy.ddns.net/) (by stash86) - Blog about crypto bot projects.
+2 -2
View File
@@ -40,9 +40,9 @@ Freqtrade is a free and open source crypto trading bot written in Python. It is
Please read the [exchange specific notes](exchanges.md) to learn about eventual, special configurations needed for each exchange.
- [X] [Binance](https://www.binance.com/)
- [X] [Bittrex](https://bittrex.com/)
- [X] [Bitmart](https://bitmart.com/)
- [X] [Gate.io](https://www.gate.io/ref/6266643)
- [X] [Huobi](http://huobi.com/)
- [X] [HTX](https://www.htx.com/) (Former Huobi)
- [X] [Kraken](https://kraken.com/)
- [X] [OKX](https://okx.com/) (Former OKEX)
- [ ] [potentially many others through <img alt="ccxt" width="30px" src="assets/ccxt-logo.svg" />](https://github.com/ccxt/ccxt/). _(We cannot guarantee they will work)_
+1 -1
View File
@@ -23,6 +23,7 @@ It also supports the lookahead-analysis of freqai strategies.
- `--max-open-trades` is forced to be at least equal to the number of pairs.
- `--dry-run-wallet` is forced to be basically infinite (1 billion).
- `--stake-amount` is forced to be a static 10000 (10k).
- `--enable-protections` is forced to be off.
Those are set to avoid users accidentally generating false positives.
@@ -40,7 +41,6 @@ usage: freqtrade lookahead-analysis [-h] [-v] [--logfile FILE] [-V] [-c PATH]
[--max-open-trades INT]
[--stake-amount STAKE_AMOUNT]
[--fee FLOAT] [-p PAIRS [PAIRS ...]]
[--enable-protections]
[--dry-run-wallet DRY_RUN_WALLET]
[--timeframe-detail TIMEFRAME_DETAIL]
[--strategy-list STRATEGY_LIST [STRATEGY_LIST ...]]
+32 -2
View File
@@ -40,11 +40,41 @@ usage: freqtrade recursive-analysis [-h] [-v] [--logfile FILE] [-V] [-c PATH]
[--startup-candle STARTUP_CANDLES [STARTUP_CANDLES ...]]
optional arguments:
-p PAIR, --pairs PAIR
-h, --help show this help message and exit
-i TIMEFRAME, --timeframe TIMEFRAME
Specify timeframe (`1m`, `5m`, `30m`, `1h`, `1d`).
--data-format-ohlcv {json,jsongz,hdf5,feather,parquet}
Storage format for downloaded candle (OHLCV) data.
(default: `feather`).
-p PAIR, --pairs PAIR
Limit command to this pair.
--startup-candle STARTUP_CANDLE [STARTUP_CANDLE ...]
--startup-candle STARTUP_CANDLE [STARTUP_CANDLE ...]
Provide a space-separated list of startup_candle_count to
be checked. Default : `199 399 499 999 1999`.
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--logfile FILE Log to the file specified. Special values are:
'syslog', 'journald'. See the documentation for more
details.
-V, --version show program's version number and exit
-c PATH, --config PATH
Specify configuration file (default:
`userdir/config.json` or `config.json` whichever
exists). Multiple --config options may be used. Can be
set to `-` to read config from stdin.
-d PATH, --datadir PATH
Path to directory with historical backtesting data.
--userdir PATH, --user-data-dir PATH
Path to userdata directory.
Strategy arguments:
-s NAME, --strategy NAME
Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
--timerange TIMERANGE
Specify what timerange of data to use.
```
### Why are odd-numbered default startup candles used?
+4 -4
View File
@@ -1,6 +1,6 @@
markdown==3.4.4
markdown==3.6
mkdocs==1.5.3
mkdocs-material==9.4.1
mkdocs-material==9.5.15
mdx_truly_sane_lists==1.3
pymdown-extensions==10.3
jinja2==3.1.2
pymdown-extensions==10.7.1
jinja2==3.1.3
+31 -8
View File
@@ -95,11 +95,13 @@ Make sure that the following 2 lines are available in your docker-compose file:
### Consuming the API
You can consume the API by using the script `scripts/rest_client.py`.
The client script only requires the `requests` module, so Freqtrade does not need to be installed on the system.
You can consume the API by using `freqtrade-client` (also available as `scripts/rest_client.py`).
This command can be installed independent of the bot by using `pip install freqtrade-client`.
This module is designed to be lightweight, and only depends on the `requests` and `python-rapidjson` modules, skipping all heavy dependencies freqtrade otherwise needs.
``` bash
python3 scripts/rest_client.py <command> [optional parameters]
freqtrade-client <command> [optional parameters]
```
By default, the script assumes `127.0.0.1` (localhost) and port `8080` to be used, however you can specify a configuration file to override this behaviour.
@@ -120,9 +122,27 @@ By default, the script assumes `127.0.0.1` (localhost) and port `8080` to be use
```
``` bash
python3 scripts/rest_client.py --config rest_config.json <command> [optional parameters]
freqtrade-client --config rest_config.json <command> [optional parameters]
```
??? Note "Programmatic use"
The `freqtrade-client` package (installable independent of freqtrade) can be used in your own scripts to interact with the freqtrade API.
to do so, please use the following:
``` python
from freqtrade_client import FtRestClient
client = FtRestClient(server_url, username, password)
# Get the status of the bot
ping = client.ping()
print(ping)
# ...
```
For a full list of available commands, please refer to the list below.
### Available endpoints
| Command | Description |
@@ -134,13 +154,16 @@ python3 scripts/rest_client.py --config rest_config.json <command> [optional par
| `reload_config` | Reloads the configuration file.
| `trades` | List last trades. Limited to 500 trades per call.
| `trade/<tradeid>` | Get specific trade.
| `trade/<tradeid>` | DELETE - Remove trade from the database. Tries to close open orders. Requires manual handling of this trade on the exchange.
| `trade/<tradeid>/open-order` | DELETE - Cancel open order for this trade.
| `trade/<tradeid>/reload` | GET - Reload a trade from the Exchange. Only works in live, and can potentially help recover a trade that was manually sold on the exchange.
| `trades/<tradeid>` | DELETE - Remove trade from the database. Tries to close open orders. Requires manual handling of this trade on the exchange.
| `trades/<tradeid>/open-order` | DELETE - Cancel open order for this trade.
| `trades/<tradeid>/reload` | GET - Reload a trade from the Exchange. Only works in live, and can potentially help recover a trade that was manually sold on the exchange.
| `show_config` | Shows part of the current configuration with relevant settings to operation.
| `logs` | Shows last log messages.
| `status` | Lists all open trades.
| `count` | Displays number of trades used and available.
| `entries [pair]` | Shows profit statistics for each enter tags for given pair (or all pairs if pair isn't given). Pair is optional.
| `exits [pair]` | Shows profit statistics for each exit reasons for given pair (or all pairs if pair isn't given). Pair is optional.
| `mix_tags [pair]` | Shows profit statistics for each combinations of enter tag + exit reasons for given pair (or all pairs if pair isn't given). Pair is optional.
| `locks` | Displays currently locked pairs.
| `delete_lock <lock_id>` | Deletes (disables) the lock by id.
| `profit` | Display a summary of your profit/loss from close trades and some stats about your performance.
@@ -173,7 +196,7 @@ python3 scripts/rest_client.py --config rest_config.json <command> [optional par
Possible commands can be listed from the rest-client script using the `help` command.
``` bash
python3 scripts/rest_client.py help
freqtrade-client help
```
``` output
+1 -1
View File
@@ -109,7 +109,7 @@ Freqtrade does not depend or install any additional database driver. Please refe
The following systems have been tested and are known to work with freqtrade:
* sqlite (default)
* PostgreSQL)
* PostgreSQL
* MariaDB
!!! Warning
+1 -1
View File
@@ -30,7 +30,7 @@ The Order-type will be ignored if only one mode is available.
|----------|-------------|
| Binance | limit |
| Binance Futures | market, limit |
| Huobi | limit |
| HTX (former Huobi) | limit |
| kraken | market, limit |
| Gate | limit |
| Okx | limit |
+112 -17
View File
@@ -11,34 +11,129 @@ The call sequence of the methods described here is covered under [bot execution
!!! Tip
Start off with a strategy template containing all available callback methods by running `freqtrade new-strategy --strategy MyAwesomeStrategy --template advanced`
## Storing information
## Storing information (Persistent)
Storing information can be accomplished by creating a new dictionary within the strategy class.
Freqtrade allows storing/retrieving user custom information associated with a specific trade in the database.
The name of the variable can be chosen at will, but should be prefixed with `custom_` to avoid naming collisions with predefined strategy variables.
Using a trade object, information can be stored using `trade.set_custom_data(key='my_key', value=my_value)` and retrieved using `trade.get_custom_data(key='my_key')`. Each data entry is associated with a trade and a user supplied key (of type `string`). This means that this can only be used in callbacks that also provide a trade object.
For the data to be able to be stored within the database, freqtrade must serialized the data. This is done by converting the data to a JSON formatted string.
Freqtrade will attempt to reverse this action on retrieval, so from a strategy perspective, this should not be relevant.
```python
from freqtrade.persistence import Trade
from datetime import timedelta
class AwesomeStrategy(IStrategy):
# Create custom dictionary
custom_info = {}
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# Check if the entry already exists
if not metadata["pair"] in self.custom_info:
# Create empty entry for this pair
self.custom_info[metadata["pair"]] = {}
def bot_loop_start(self, **kwargs) -> None:
for trade in Trade.get_open_order_trades():
fills = trade.select_filled_orders(trade.entry_side)
if trade.pair == 'ETH/USDT':
trade_entry_type = trade.get_custom_data(key='entry_type')
if trade_entry_type is None:
trade_entry_type = 'breakout' if 'entry_1' in trade.enter_tag else 'dip'
elif fills > 1:
trade_entry_type = 'buy_up'
trade.set_custom_data(key='entry_type', value=trade_entry_type)
return super().bot_loop_start(**kwargs)
if "crosstime" in self.custom_info[metadata["pair"]]:
self.custom_info[metadata["pair"]]["crosstime"] += 1
else:
self.custom_info[metadata["pair"]]["crosstime"] = 1
def adjust_entry_price(self, trade: Trade, order: Optional[Order], pair: str,
current_time: datetime, proposed_rate: float, current_order_rate: float,
entry_tag: Optional[str], side: str, **kwargs) -> float:
# Limit orders to use and follow SMA200 as price target for the first 10 minutes since entry trigger for BTC/USDT pair.
if (
pair == 'BTC/USDT'
and entry_tag == 'long_sma200'
and side == 'long'
and (current_time - timedelta(minutes=10)) > trade.open_date_utc
and order.filled == 0.0
):
dataframe, _ = self.dp.get_analyzed_dataframe(pair=pair, timeframe=self.timeframe)
current_candle = dataframe.iloc[-1].squeeze()
# store information about entry adjustment
existing_count = trade.get_custom_data('num_entry_adjustments', default=0)
if not existing_count:
existing_count = 1
else:
existing_count += 1
trade.set_custom_data(key='num_entry_adjustments', value=existing_count)
# adjust order price
return current_candle['sma_200']
# default: maintain existing order
return current_order_rate
def custom_exit(self, pair: str, trade: Trade, current_time: datetime, current_rate: float, current_profit: float, **kwargs):
entry_adjustment_count = trade.get_custom_data(key='num_entry_adjustments')
trade_entry_type = trade.get_custom_data(key='entry_type')
if entry_adjustment_count is None:
if current_profit > 0.01 and (current_time - timedelta(minutes=100) > trade.open_date_utc):
return True, 'exit_1'
else
if entry_adjustment_count > 0 and if current_profit > 0.05:
return True, 'exit_2'
if trade_entry_type == 'breakout' and current_profit > 0.1:
return True, 'exit_3
return False, None
```
!!! Warning
The data is not persisted after a bot-restart (or config-reload). Also, the amount of data should be kept smallish (no DataFrames and such), otherwise the bot will start to consume a lot of memory and eventually run out of memory and crash.
The above is a simple example - there are simpler ways to retrieve trade data like entry-adjustments.
!!! Note
If the data is pair-specific, make sure to use pair as one of the keys in the dictionary.
It is recommended that simple data types are used `[bool, int, float, str]` to ensure no issues when serializing the data that needs to be stored.
Storing big junks of data may lead to unintended side-effects, like a database becoming big (and as a consequence, also slow).
!!! Warning "Non-serializable data"
If supplied data cannot be serialized a warning is logged and the entry for the specified `key` will contain `None` as data.
??? Note "All attributes"
custom-data has the following accessors through the Trade object (assumed as `trade` below):
* `trade.get_custom_data(key='something', default=0)` - Returns the actual value given in the type provided.
* `trade.get_custom_data_entry(key='something')` - Returns the entry - including metadata. The value is accessible via `.value` property.
* `trade.set_custom_data(key='something', value={'some': 'value'})` - set or update the corresponding key for this trade. Value must be serializable - and we recommend to keep the stored data relatively small.
"value" can be any type (both in setting and receiving) - but must be json serializable.
## Storing information (Non-Persistent)
!!! Warning "Deprecated"
This method of storing information is deprecated and we do advise against using non-persistent storage.
Please use [Persistent Storage](#storing-information-persistent) instead.
It's content has therefore been collapsed.
??? Abstract "Storing information"
Storing information can be accomplished by creating a new dictionary within the strategy class.
The name of the variable can be chosen at will, but should be prefixed with `custom_` to avoid naming collisions with predefined strategy variables.
```python
class AwesomeStrategy(IStrategy):
# Create custom dictionary
custom_info = {}
def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
# Check if the entry already exists
if not metadata["pair"] in self.custom_info:
# Create empty entry for this pair
self.custom_info[metadata["pair"]] = {}
if "crosstime" in self.custom_info[metadata["pair"]]:
self.custom_info[metadata["pair"]]["crosstime"] += 1
else:
self.custom_info[metadata["pair"]]["crosstime"] = 1
```
!!! Warning
The data is not persisted after a bot-restart (or config-reload). Also, the amount of data should be kept smallish (no DataFrames and such), otherwise the bot will start to consume a lot of memory and eventually run out of memory and crash.
!!! Note
If the data is pair-specific, make sure to use pair as one of the keys in the dictionary.
## Dataframe access
+61 -11
View File
@@ -19,6 +19,7 @@ Currently available callbacks:
* [`adjust_trade_position()`](#adjust-trade-position)
* [`adjust_entry_price()`](#adjust-entry-price)
* [`leverage()`](#leverage-callback)
* [`order_filled()`](#order-filled-callback)
!!! Tip "Callback calling sequence"
You can find the callback calling sequence in [bot-basics](bot-basics.md#bot-execution-logic)
@@ -489,7 +490,7 @@ The helper function `stoploss_from_absolute()` can be used to convert from an ab
dataframe, _ = self.dp.get_analyzed_dataframe(pair, self.timeframe)
trade_date = timeframe_to_prev_date(self.timeframe, trade.open_date_utc)
candle = dataframe.iloc[-1].squeeze()
sign = 1 if trade.is_short else -1
side = 1 if trade.is_short else -1
return stoploss_from_absolute(current_rate + (side * candle['atr'] * 2),
current_rate, is_short=trade.is_short,
leverage=trade.leverage)
@@ -760,26 +761,38 @@ The `position_adjustment_enable` strategy property enables the usage of `adjust_
For performance reasons, it's disabled by default and freqtrade will show a warning message on startup if enabled.
`adjust_trade_position()` can be used to perform additional orders, for example to manage risk with DCA (Dollar Cost Averaging) or to increase or decrease positions.
`max_entry_position_adjustment` property is used to limit the number of additional buys per trade (on top of the first buy) that the bot can execute. By default, the value is -1 which means the bot have no limit on number of adjustment buys.
The strategy is expected to return a stake_amount (in stake currency) between `min_stake` and `max_stake` if and when an additional buy order should be made (position is increased).
If there are not enough funds in the wallet (the return value is above `max_stake`) then the signal will be ignored.
Additional orders also result in additional fees and those orders don't count towards `max_open_trades`.
This callback is **not** called when there is an open order (either buy or sell) waiting for execution.
`adjust_trade_position()` is called very frequently for the duration of a trade, so you must keep your implementation as performant as possible.
Additional Buys are ignored once you have reached the maximum amount of extra buys that you have set on `max_entry_position_adjustment`, but the callback is called anyway looking for partial exits.
Position adjustments will always be applied in the direction of the trade, so a positive value will always increase your position (negative values will decrease your position), no matter if it's a long or short trade.
Adjustment orders can be assigned with a tag by returning a 2 element Tuple, with the first element being the adjustment amount, and the 2nd element the tag (e.g. `return 250, 'increase_favorable_conditions'`).
Position adjustments will always be applied in the direction of the trade, so a positive value will always increase your position (negative values will decrease your position), no matter if it's a long or short trade. Modifications to leverage are not possible, and the stake-amount is assumed to be before applying leverage.
Modifications to leverage are not possible, and the stake-amount returned is assumed to be before applying leverage.
### Increase position
The strategy is expected to return a positive **stake_amount** (in stake currency) between `min_stake` and `max_stake` if and when an additional entry order should be made (position is increased -> buy order for long trades, sell order for short trades).
If there are not enough funds in the wallet (the return value is above `max_stake`) then the signal will be ignored.
`max_entry_position_adjustment` property is used to limit the number of additional entries per trade (on top of the first entry order) that the bot can execute. By default, the value is -1 which means the bot have no limit on number of adjustment entries.
Additional entries are ignored once you have reached the maximum amount of extra entries that you have set on `max_entry_position_adjustment`, but the callback is called anyway looking for partial exits.
### Decrease position
The strategy is expected to return a negative stake_amount (in stake currency) for a partial exit.
Returning the full owned stake at that point (`-trade.stake_amount`) results in a full exit.
Returning a value more than the above (so remaining stake_amount would become negative) will result in the bot ignoring the signal.
!!! Note "About stake size"
Using fixed stake size means it will be the amount used for the first order, just like without position adjustment.
If you wish to buy additional orders with DCA, then make sure to leave enough funds in the wallet for that.
Using 'unlimited' stake amount with DCA orders requires you to also implement the `custom_stake_amount()` callback to avoid allocating all funds to the initial order.
!!! Warning
!!! Warning "Stoploss calculation"
Stoploss is still calculated from the initial opening price, not averaged price.
Regular stoploss rules still apply (cannot move down).
@@ -789,6 +802,11 @@ Position adjustments will always be applied in the direction of the trade, so a
During backtesting this callback is called for each candle in `timeframe` or `timeframe_detail`, so run-time performance will be affected.
This can also cause deviating results between live and backtesting, since backtesting can adjust the trade only once per candle, whereas live could adjust the trade multiple times per candle.
!!! Warning "Performance with many position adjustments"
Position adjustments can be a good approach to increase a strategy's output - but it can also have drawbacks if using this feature extensively.
Each of the orders will be attached to the trade object for the duration of the trade - hence increasing memory usage.
Trades with long duration and 10s or even 100ds of position adjustments are therefore not recommended, and should be closed at regular intervals to not affect performance.
``` python
from freqtrade.persistence import Trade
@@ -822,7 +840,8 @@ class DigDeeperStrategy(IStrategy):
min_stake: Optional[float], max_stake: float,
current_entry_rate: float, current_exit_rate: float,
current_entry_profit: float, current_exit_profit: float,
**kwargs) -> Optional[float]:
**kwargs
) -> Union[Optional[float], Tuple[Optional[float], Optional[str]]]:
"""
Custom trade adjustment logic, returning the stake amount that a trade should be
increased or decreased.
@@ -848,11 +867,12 @@ class DigDeeperStrategy(IStrategy):
:return float: Stake amount to adjust your trade,
Positive values to increase position, Negative values to decrease position.
Return None for no action.
Optionally, return a tuple with a 2nd element with an order reason
"""
if current_profit > 0.05 and trade.nr_of_successful_exits == 0:
# Take half of the profit at +5%
return -(trade.stake_amount / 2)
return -(trade.stake_amount / 2), 'half_profit_5%'
if current_profit > -0.05:
return None
@@ -880,7 +900,7 @@ class DigDeeperStrategy(IStrategy):
stake_amount = filled_entries[0].stake_amount
# This then calculates current safety order size
stake_amount = stake_amount * (1 + (count_of_entries * 0.25))
return stake_amount
return stake_amount, '1/3rd_increase'
except Exception as exception:
return None
@@ -1003,3 +1023,33 @@ class AwesomeStrategy(IStrategy):
All profit calculations include leverage. Stoploss / ROI also include leverage in their calculation.
Defining a stoploss of 10% at 10x leverage would trigger the stoploss with a 1% move to the downside.
## Order filled Callback
The `order_filled()` callback may be used to perform specific actions based on the current trade state after an order is filled.
It will be called independent of the order type (entry, exit, stoploss or position adjustment).
Assuming that your strategy needs to store the high value of the candle at trade entry, this is possible with this callback as the following example show.
``` python
class AwesomeStrategy(IStrategy):
def order_filled(self, pair: str, trade: Trade, order: Order, current_time: datetime, **kwargs) -> None:
"""
Called right after an order fills.
Will be called for all order types (entry, exit, stoploss, position adjustment).
:param pair: Pair for trade
:param trade: trade object.
:param order: Order object.
:param current_time: datetime object, containing the current datetime
:param **kwargs: Ensure to keep this here so updates to this won't break your strategy.
"""
# Obtain pair dataframe (just to show how to access it)
dataframe, _ = self.dp.get_analyzed_dataframe(trade.pair, self.timeframe)
last_candle = dataframe.iloc[-1].squeeze()
if (trade.nr_of_successful_entries == 1) and (order.ft_order_side == trade.entry_side):
trade.set_custom_data(key='entry_candle_high', value=last_candle['high'])
return None
```
+20 -10
View File
@@ -156,9 +156,9 @@ def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame
Out of the box, freqtrade installs the following technical libraries:
* [ta-lib](http://mrjbq7.github.io/ta-lib/)
* [pandas-ta](https://twopirllc.github.io/pandas-ta/)
* [technical](https://github.com/freqtrade/technical/)
- [ta-lib](https://ta-lib.github.io/ta-lib-python/)
- [pandas-ta](https://twopirllc.github.io/pandas-ta/)
- [technical](https://github.com/freqtrade/technical/)
Additional technical libraries can be installed as necessary, or custom indicators may be written / invented by the strategy author.
@@ -173,7 +173,7 @@ You can use [recursive-analysis](recursive-analysis.md) to check and find the co
In this example strategy, this should be set to 400 (`startup_candle_count = 400`), since the minimum needed history for ema100 calculation to make sure the value is correct is 400 candles.
``` python
dataframe['ema100'] = ta.EMA(dataframe, timeperiod=400)
dataframe['ema100'] = ta.EMA(dataframe, timeperiod=100)
```
By letting the bot know how much history is needed, backtest trades can start at the specified timerange during backtesting and hyperopt.
@@ -367,6 +367,11 @@ class AwesomeStrategy(IStrategy):
}
```
??? info "Orders that don't fill immediately"
`minimal_roi` will take the `trade.open_date` as reference, which is the time the trade was initialized / the first order for this trade was placed.
This will also hold true for limit orders that don't fill immediately (usually in combination with "off-spot" prices through `custom_entry_price()`), as well as for cases where the initial order is replaced through `adjust_entry_price()`.
The time used will still be from the initial `trade.open_date` (when the initial order was first placed), not from the newly placed order date.
### Stoploss
Setting a stoploss is highly recommended to protect your capital from strong moves against you.
@@ -486,17 +491,18 @@ for more information.
:param timeframe: Informative timeframe. Must always be equal or higher than strategy timeframe.
:param asset: Informative asset, for example BTC, BTC/USDT, ETH/BTC. Do not specify to use
current pair.
current pair. Also supports limited pair format strings (see below)
:param fmt: Column format (str) or column formatter (callable(name, asset, timeframe)). When not
specified, defaults to:
* {base}_{quote}_{column}_{timeframe} if asset is specified.
* {base}_{quote}_{column}_{timeframe} if asset is specified.
* {column}_{timeframe} if asset is not specified.
Format string supports these format variables:
* {asset} - full name of the asset, for example 'BTC/USDT'.
Pair format supports these format variables:
* {base} - base currency in lower case, for example 'eth'.
* {BASE} - same as {base}, except in upper case.
* {quote} - quote currency in lower case, for example 'usdt'.
* {QUOTE} - same as {quote}, except in upper case.
Format string additionally supports this variables.
* {asset} - full name of the asset, for example 'BTC/USDT'.
* {column} - name of dataframe column.
* {timeframe} - timeframe of informative dataframe.
:param ffill: ffill dataframe after merging informative pair.
@@ -1003,11 +1009,15 @@ This is a common pain-point, which can cause huge differences between backtestin
The following lists some common patterns which should be avoided to prevent frustration:
- don't use `shift(-1)`. This uses data from the future, which is not available.
- don't use `.iloc[-1]` or any other absolute position in the dataframe, this will be different between dry-run and backtesting.
- don't use `shift(-1)` or other negative values. This uses data from the future in backtesting, which is not available in dry or live modes.
- don't use `.iloc[-1]` or any other absolute position in the dataframe within `populate_` functions, as this will be different between dry-run and backtesting. Absolute `iloc` indexing is safe to use in callbacks however - see [Strategy Callbacks](strategy-callbacks.md).
- don't use `dataframe['volume'].mean()`. This uses the full DataFrame for backtesting, including data from the future. Use `dataframe['volume'].rolling(<window>).mean()` instead
- don't use `.resample('1h')`. This uses the left border of the interval, so moves data from an hour to the start of the hour. Use `.resample('1h', label='right')` instead.
!!! Tip "Identifying problems"
You may also want to check the 2 helper commands [lookahead-analysis](lookahead-analysis.md) and [recursive-analysis](recursive-analysis.md), which can each help you figure out problems with your strategy in different ways.
Please treat them as what they are - helpers to identify most common problems. A negative result of each does not guarantee that there's none of the above errors included.
### Colliding signals
When conflicting signals collide (e.g. both `'enter_long'` and `'exit_long'` are 1), freqtrade will do nothing and ignore the entry signal. This will avoid trades that enter, and exit immediately. Obviously, this can potentially lead to missed entries.
+1 -1
View File
@@ -19,7 +19,7 @@ from pathlib import Path
project_root = "somedir/freqtrade"
i=0
try:
os.chdirdir(project_root)
os.chdir(project_root)
assert Path('LICENSE').is_file()
except:
while i<4 and (not Path('LICENSE').is_file()):
+1 -1
View File
@@ -570,7 +570,7 @@ def populate_any_indicators(
```
1. Features - Move to `feature_engineering_expand_all`
2. Basic features, not expanded across `include_periods_candles` - move to`feature_engineering_expand_basic()`.
2. Basic features, not expanded across `indicator_periods_candles` - move to`feature_engineering_expand_basic()`.
3. Standard features which should not be expanded - move to `feature_engineering_standard()`.
4. Targets - Move this part to `set_freqai_targets()`.
+3 -1
View File
@@ -59,7 +59,7 @@ For the Freqtrade configuration, you can then use the the full value (including
"chat_id": "-1001332619709"
```
!!! Warning "Using telegram groups"
When using telegram groups, you're giving every member of the telegram group access to your freqtrade bot and to all commands possible via telegram. Please make sure that you can trust everyone in the telegram group to avoid unpleasent surprises.
When using telegram groups, you're giving every member of the telegram group access to your freqtrade bot and to all commands possible via telegram. Please make sure that you can trust everyone in the telegram group to avoid unpleasant surprises.
## Control telegram noise
@@ -175,11 +175,13 @@ official commands. You can ask at any moment for help with `/help`.
| `/status` | Lists all open trades
| `/status <trade_id>` | Lists one or more specific trade. Separate multiple <trade_id> with a blank space.
| `/status table` | List all open trades in a table format. Pending buy orders are marked with an asterisk (*) Pending sell orders are marked with a double asterisk (**)
| `/order <trade_id>` | Lists orders of one or more specific trade. Separate multiple <trade_id> with a blank space.
| `/trades [limit]` | List all recently closed trades in a table format.
| `/count` | Displays number of trades used and available
| `/locks` | Show currently locked pairs.
| `/unlock <pair or lock_id>` | Remove the lock for this pair (or for this lock id).
| `/marketdir [long | short | even | none]` | Updates the user managed variable that represents the current market direction. If no direction is provided, the currently set direction will be displayed.
| `/list_custom_data <trade_id> [key]` | List custom_data for Trade ID & Key combination. If no Key is supplied it will list all key-value pairs found for that Trade ID.
| **Modify Trade states** |
| `/forceexit <trade_id> | /fx <tradeid>` | Instantly exits the given trade (Ignoring `minimum_roi`).
| `/forceexit all | /fx all` | Instantly exits all open trades (Ignoring `minimum_roi`).
+1 -1
View File
@@ -6,7 +6,7 @@ To update your freqtrade installation, please use one of the below methods, corr
Breaking changes / changed behavior will be documented in the changelog that is posted alongside every release.
For the develop branch, please follow PR's to avoid being surprised by changes.
## docker
## Docker
!!! Note "Legacy installations using the `master` image"
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`
+109 -220
View File
@@ -54,7 +54,7 @@ optional arguments:
### Create config examples
```
$ freqtrade new-config --config config_binance.json
$ freqtrade new-config --config user_data/config_binance.json
? Do you want to enable Dry-run (simulated trades)? Yes
? Please insert your stake currency: BTC
@@ -66,6 +66,53 @@ $ freqtrade new-config --config config_binance.json
? Do you want to enable Telegram? No
```
## Show config
Show configuration file (with sensitive values redacted by default).
Especially useful with [split configuration files](configuration.md#multiple-configuration-files) or [environment variables](configuration.md#environment-variables), where this command will show the merged configuration.
![Show config output](assets/show-config-output.png)
```
usage: freqtrade show-config [-h] [--userdir PATH] [-c PATH]
[--show-sensitive]
options:
-h, --help show this help message and exit
--userdir PATH, --user-data-dir PATH
Path to userdata directory.
-c PATH, --config PATH
Specify configuration file (default:
`userdir/config.json` or `config.json` whichever
exists). Multiple --config options may be used. Can be
set to `-` to read config from stdin.
--show-sensitive Show secrets in the output.
```
``` output
Your combined configuration is:
{
"exit_pricing": {
"price_side": "other",
"use_order_book": true,
"order_book_top": 1
},
"stake_currency": "USDT",
"exchange": {
"name": "binance",
"key": "REDACTED",
"secret": "REDACTED",
"ccxt_config": {},
"ccxt_async_config": {},
}
// ...
}
```
!!! Warning "Sharing information provided by this command"
We try to remove all known sensitive information from the default output (without `--show-sensitive`).
Yet, please do double-check for sensitive values in your output to make sure you're not accidentally exposing some private info.
## Create new strategy
Creates a new strategy from a template similar to SampleStrategy.
@@ -219,233 +266,81 @@ optional arguments:
-a, --all Print all exchanges known to the ccxt library.
```
* Example: see exchanges available for the bot:
Example: see exchanges available for the bot:
```
$ freqtrade list-exchanges
Exchanges available for Freqtrade:
Exchange name Valid reason
--------------- ------- --------------------------------------------
aax True
ascendex True missing opt: fetchMyTrades
bequant True
bibox True
bigone True
binance True
binanceus True
bitbank True missing opt: fetchTickers
bitcoincom True
bitfinex True
bitforex True missing opt: fetchMyTrades, fetchTickers
bitget True
bithumb True missing opt: fetchMyTrades
bitkk True missing opt: fetchMyTrades
bitmart True
bitmax True missing opt: fetchMyTrades
bitpanda True
bittrex True
bitvavo True
bitz True missing opt: fetchMyTrades
btcalpha True missing opt: fetchTicker, fetchTickers
btcmarkets True missing opt: fetchTickers
buda True missing opt: fetchMyTrades, fetchTickers
bw True missing opt: fetchMyTrades, fetchL2OrderBook
bybit True
bytetrade True
cdax True
cex True missing opt: fetchMyTrades
coinbaseprime True missing opt: fetchTickers
coinbasepro True missing opt: fetchTickers
coinex True
crex24 True
deribit True
digifinex True
equos True missing opt: fetchTicker, fetchTickers
eterbase True
fcoin True missing opt: fetchMyTrades, fetchTickers
fcoinjp True missing opt: fetchMyTrades, fetchTickers
gateio True
gemini True
gopax True
hbtc True
hitbtc True
huobijp True
huobipro True
idex True
kraken True
kucoin True
lbank True missing opt: fetchMyTrades
mercado True missing opt: fetchTickers
ndax True missing opt: fetchTickers
novadax True
okcoin True
okex True
probit True
qtrade True
stex True
timex True
upbit True missing opt: fetchMyTrades
vcc True
zb True missing opt: fetchMyTrades
Exchange name Supported Markets Reason
------------------ ----------- ---------------------- ------------------------------------------------------------------------
binance Official spot, isolated futures
bitmart Official spot
bybit spot, isolated futures
gate Official spot, isolated futures
htx Official spot
huobi spot
kraken Official spot
okx Official spot, isolated futures
```
!!! info ""
Output reduced for clarity - supported and available exchanges may change over time.
!!! Note "missing opt exchanges"
Values with "missing opt:" might need special configuration (e.g. using orderbook if `fetchTickers` is missing) - but should in theory work (although we cannot guarantee they will).
* Example: see all exchanges supported by the ccxt library (including 'bad' ones, i.e. those that are known to not work with Freqtrade):
Example: see all exchanges supported by the ccxt library (including 'bad' ones, i.e. those that are known to not work with Freqtrade)
```
$ freqtrade list-exchanges -a
All exchanges supported by the ccxt library:
Exchange name Valid reason
------------------ ------- ---------------------------------------------------------------------------------------
aax True
aofex False missing: fetchOrder
ascendex True missing opt: fetchMyTrades
bequant True
bibox True
bigone True
binance True
binanceus True
bit2c False missing: fetchOrder, fetchOHLCV
bitbank True missing opt: fetchTickers
bitbay False missing: fetchOrder
bitcoincom True
bitfinex True
bitfinex2 False missing: fetchOrder
bitflyer False missing: fetchOrder, fetchOHLCV
bitforex True missing opt: fetchMyTrades, fetchTickers
bitget True
bithumb True missing opt: fetchMyTrades
bitkk True missing opt: fetchMyTrades
bitmart True
bitmax True missing opt: fetchMyTrades
bitmex False Various reasons.
bitpanda True
bitso False missing: fetchOHLCV
bitstamp True missing opt: fetchTickers
bitstamp1 False missing: fetchOrder, fetchOHLCV
bittrex True
bitvavo True
bitz True missing opt: fetchMyTrades
bl3p False missing: fetchOrder, fetchOHLCV
bleutrade False missing: fetchOrder
braziliex False missing: fetchOHLCV
btcalpha True missing opt: fetchTicker, fetchTickers
btcbox False missing: fetchOHLCV
btcmarkets True missing opt: fetchTickers
btctradeua False missing: fetchOrder, fetchOHLCV
btcturk False missing: fetchOrder
buda True missing opt: fetchMyTrades, fetchTickers
bw True missing opt: fetchMyTrades, fetchL2OrderBook
bybit True
bytetrade True
cdax True
cex True missing opt: fetchMyTrades
chilebit False missing: fetchOrder, fetchOHLCV
coinbase False missing: fetchOrder, cancelOrder, createOrder, fetchOHLCV
coinbaseprime True missing opt: fetchTickers
coinbasepro True missing opt: fetchTickers
coincheck False missing: fetchOrder, fetchOHLCV
coinegg False missing: fetchOHLCV
coinex True
coinfalcon False missing: fetchOHLCV
coinfloor False missing: fetchOrder, fetchOHLCV
coingi False missing: fetchOrder, fetchOHLCV
coinmarketcap False missing: fetchOrder, cancelOrder, createOrder, fetchBalance, fetchOHLCV
coinmate False missing: fetchOHLCV
coinone False missing: fetchOHLCV
coinspot False missing: fetchOrder, cancelOrder, fetchOHLCV
crex24 True
currencycom False missing: fetchOrder
delta False missing: fetchOrder
deribit True
digifinex True
equos True missing opt: fetchTicker, fetchTickers
eterbase True
exmo False missing: fetchOrder
exx False missing: fetchOHLCV
fcoin True missing opt: fetchMyTrades, fetchTickers
fcoinjp True missing opt: fetchMyTrades, fetchTickers
flowbtc False missing: fetchOrder, fetchOHLCV
foxbit False missing: fetchOrder, fetchOHLCV
gateio True
gemini True
gopax True
hbtc True
hitbtc True
hollaex False missing: fetchOrder
huobijp True
huobipro True
idex True
independentreserve False missing: fetchOHLCV
indodax False missing: fetchOHLCV
itbit False missing: fetchOHLCV
kraken True
kucoin True
kuna False missing: fetchOHLCV
lakebtc False missing: fetchOrder, fetchOHLCV
latoken False missing: fetchOrder, fetchOHLCV
lbank True missing opt: fetchMyTrades
liquid False missing: fetchOHLCV
luno False missing: fetchOHLCV
lykke False missing: fetchOHLCV
mercado True missing opt: fetchTickers
mixcoins False missing: fetchOrder, fetchOHLCV
ndax True missing opt: fetchTickers
novadax True
oceanex False missing: fetchOHLCV
okcoin True
okex True
paymium False missing: fetchOrder, fetchOHLCV
phemex False Does not provide history.
poloniex False missing: fetchOrder
probit True
qtrade True
rightbtc False missing: fetchOrder
ripio False missing: fetchOHLCV
southxchange False missing: fetchOrder, fetchOHLCV
stex True
surbitcoin False missing: fetchOrder, fetchOHLCV
therock False missing: fetchOHLCV
tidebit False missing: fetchOrder
tidex False missing: fetchOHLCV
timex True
upbit True missing opt: fetchMyTrades
vbtc False missing: fetchOrder, fetchOHLCV
vcc True
wavesexchange False missing: fetchOrder
whitebit False missing: fetchOrder, cancelOrder, createOrder, fetchBalance
xbtce False missing: fetchOrder, fetchOHLCV
xena False missing: fetchOrder
yobit False missing: fetchOHLCV
zaif False missing: fetchOrder, fetchOHLCV
zb True missing opt: fetchMyTrades
Exchange name Valid Supported Markets Reason
------------------ ------- ----------- ---------------------- ---------------------------------------------------------------------------------
binance True Official spot, isolated futures
bitflyer False spot missing: fetchOrder. missing opt: fetchTickers.
bitmart True Official spot
bybit True spot, isolated futures
gate True Official spot, isolated futures
htx True Official spot
kraken True Official spot
okx True Official spot, isolated futures
```
!!! info ""
Reduced output - supported and available exchanges may change over time.
## List Timeframes
Use the `list-timeframes` subcommand to see the list of timeframes available for the exchange.
```
usage: freqtrade list-timeframes [-h] [-v] [--logfile FILE] [-V] [-c PATH] [-d PATH] [--userdir PATH] [--exchange EXCHANGE] [-1]
usage: freqtrade list-timeframes [-h] [-v] [--logfile FILE] [-V] [-c PATH]
[-d PATH] [--userdir PATH]
[--exchange EXCHANGE] [-1]
optional arguments:
options:
-h, --help show this help message and exit
--exchange EXCHANGE Exchange name (default: `bittrex`). Only valid if no config is provided.
--exchange EXCHANGE Exchange name. Only valid if no config is provided.
-1, --one-column Print output in one column.
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--logfile FILE Log to the file specified. Special values are: 'syslog', 'journald'. See the documentation for more details.
--logfile FILE, --log-file FILE
Log to the file specified. Special values are:
'syslog', 'journald'. See the documentation for more
details.
-V, --version show program's version number and exit
-c PATH, --config PATH
Specify configuration file (default: `config.json`). Multiple --config options may be used. Can be set to `-`
to read config from stdin.
-d PATH, --datadir PATH
Specify configuration file (default:
`userdir/config.json` or `config.json` whichever
exists). Multiple --config options may be used. Can be
set to `-` to read config from stdin.
-d PATH, --datadir PATH, --data-dir PATH
Path to directory with historical backtesting data.
--userdir PATH, --user-data-dir PATH
Path to userdata directory.
```
* Example: see the timeframes for the 'binance' exchange, set in the configuration file:
@@ -479,20 +374,17 @@ usage: freqtrade list-markets [-h] [-v] [--logfile FILE] [-V] [-c PATH]
[-d PATH] [--userdir PATH] [--exchange EXCHANGE]
[--print-list] [--print-json] [-1] [--print-csv]
[--base BASE_CURRENCY [BASE_CURRENCY ...]]
[--quote QUOTE_CURRENCY [QUOTE_CURRENCY ...]] [-a]
[--trading-mode {spot,margin,futures}]
[--quote QUOTE_CURRENCY [QUOTE_CURRENCY ...]]
[-a] [--trading-mode {spot,margin,futures}]
usage: freqtrade list-pairs [-h] [-v] [--logfile FILE] [-V] [-c PATH]
[-d PATH] [--userdir PATH] [--exchange EXCHANGE]
[--print-list] [--print-json] [-1] [--print-csv]
[--base BASE_CURRENCY [BASE_CURRENCY ...]]
[--quote QUOTE_CURRENCY [QUOTE_CURRENCY ...]] [-a]
[--trading-mode {spot,margin,futures}]
optional arguments:
options:
-h, --help show this help message and exit
--exchange EXCHANGE Exchange name (default: `bittrex`). Only valid if no
config is provided.
--exchange EXCHANGE Exchange name. Only valid if no config is provided.
--print-list Print list of pairs or market symbols. By default data
is printed in the tabular format.
--print-json Print list of pairs or market symbols in JSON format.
@@ -504,20 +396,22 @@ optional arguments:
Specify quote currency(-ies). Space-separated list.
-a, --all Print all pairs or market symbols. By default only
active ones are shown.
--trading-mode {spot,margin,futures}
--trading-mode {spot,margin,futures}, --tradingmode {spot,margin,futures}
Select Trading mode
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--logfile FILE Log to the file specified. Special values are:
--logfile FILE, --log-file FILE
Log to the file specified. Special values are:
'syslog', 'journald'. See the documentation for more
details.
-V, --version show program's version number and exit
-c PATH, --config PATH
Specify configuration file (default: `config.json`).
Multiple --config options may be used. Can be set to
`-` to read config from stdin.
-d PATH, --datadir PATH
Specify configuration file (default:
`userdir/config.json` or `config.json` whichever
exists). Multiple --config options may be used. Can be
set to `-` to read config from stdin.
-d PATH, --datadir PATH, --data-dir PATH
Path to directory with historical backtesting data.
--userdir PATH, --user-data-dir PATH
Path to userdata directory.
@@ -532,7 +426,7 @@ Pairs/markets are sorted by its symbol string in the printed output.
### Examples
* Print the list of active pairs with quote currency USD on exchange, specified in the default
configuration file (i.e. pairs on the "Bittrex" exchange) in JSON format:
configuration file (i.e. pairs on the "Binance" exchange) in JSON format:
```
$ freqtrade list-pairs --quote USD --print-json
@@ -564,7 +458,7 @@ usage: freqtrade test-pairlist [-h] [--userdir PATH] [-v] [-c PATH]
[--quote QUOTE_CURRENCY [QUOTE_CURRENCY ...]]
[-1] [--print-json] [--exchange EXCHANGE]
optional arguments:
options:
-h, --help show this help message and exit
--userdir PATH, --user-data-dir PATH
Path to userdata directory.
@@ -578,8 +472,7 @@ optional arguments:
Specify quote currency(-ies). Space-separated list.
-1, --one-column Print output in one column.
--print-json Print list of pairs or market symbols in JSON format.
--exchange EXCHANGE Exchange name (default: `bittrex`). Only valid if no
config is provided.
--exchange EXCHANGE Exchange name. Only valid if no config is provided.
```
@@ -986,11 +879,7 @@ options:
-h, --help show this help message and exit
--strategy-list STRATEGY_LIST [STRATEGY_LIST ...]
Provide a space-separated list of strategies to
backtest. Please note that timeframe needs to be set
either in config or via command line. When using this
together with `--export trades`, the strategy-name is
injected into the filename (so `backtest-data.json`
becomes `backtest-data-SampleStrategy.json`
be converted.
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
+8 -1
View File
@@ -65,7 +65,7 @@ You can set the POST body format to Form-Encoded (default), JSON-Encoded, or raw
The result would be a POST request with e.g. `{"text":"Status: running"}` body and `Content-Type: application/json` header which results `Status: running` message in the Mattermost channel.
When using the Form-Encoded or JSON-Encoded configuration you can configure any number of payload values, and both the key and value will be ouput in the POST request. However, when using the raw data format you can only configure one value and it **must** be named `"data"`. In this instance the data key will not be output in the POST request, only the value. For example:
When using the Form-Encoded or JSON-Encoded configuration you can configure any number of payload values, and both the key and value will be output in the POST request. However, when using the raw data format you can only configure one value and it **must** be named `"data"`. In this instance the data key will not be output in the POST request, only the value. For example:
```json
"webhook": {
@@ -134,6 +134,7 @@ Possible parameters are:
* `stake_amount`
* `stake_currency`
* `base_currency`
* `quote_currency`
* `fiat_currency`
* `order_type`
* `current_rate`
@@ -155,6 +156,7 @@ Possible parameters are:
* `stake_amount`
* `stake_currency`
* `base_currency`
* `quote_currency`
* `fiat_currency`
* `order_type`
* `current_rate`
@@ -176,6 +178,7 @@ Possible parameters are:
* `stake_amount`
* `stake_currency`
* `base_currency`
* `quote_currency`
* `fiat_currency`
* `order_type`
* `current_rate`
@@ -199,6 +202,7 @@ Possible parameters are:
* `profit_ratio`
* `stake_currency`
* `base_currency`
* `quote_currency`
* `fiat_currency`
* `exit_reason`
* `order_type`
@@ -224,6 +228,7 @@ Possible parameters are:
* `profit_ratio`
* `stake_currency`
* `base_currency`
* `quote_currency`
* `fiat_currency`
* `exit_reason`
* `order_type`
@@ -249,6 +254,7 @@ Possible parameters are:
* `profit_ratio`
* `stake_currency`
* `base_currency`
* `quote_currency`
* `fiat_currency`
* `exit_reason`
* `order_type`
@@ -302,6 +308,7 @@ You can configure this as follows:
```
The above represents the default (`exit_fill` and `entry_fill` are optional and will default to the above configuration) - modifications are obviously possible.
To disable either of the two default values (`entry_fill` / `exit_fill`), you can assign them an empty array (`exit_fill: []`).
Available fields correspond to the fields for webhooks and are documented in the corresponding webhook sections.
+1 -1
View File
@@ -22,7 +22,7 @@ git clone https://github.com/freqtrade/freqtrade.git
### 2. Install ta-lib
Install ta-lib according to the [ta-lib documentation](https://github.com/mrjbq7/ta-lib#windows).
Install ta-lib according to the [ta-lib documentation](https://github.com/TA-Lib/ta-lib-python#windows).
As compiling from source on windows has heavy dependencies (requires a partial visual studio installation), Freqtrade provides these dependencies (in the binary wheel format) for the latest 3 Python versions (3.9, 3.10 and 3.11) and for 64bit Windows.
These Wheels are also used by CI running on windows, and are therefore tested together with freqtrade.
+1 -1
View File
@@ -1,5 +1,5 @@
""" Freqtrade bot """
__version__ = '2023.9'
__version__ = '2024.3'
if 'dev' in __version__:
from pathlib import Path
+1 -1
View File
@@ -8,7 +8,7 @@ Note: Be careful with file-scoped imports in these subfiles.
"""
from freqtrade.commands.analyze_commands import start_analysis_entries_exits
from freqtrade.commands.arguments import Arguments
from freqtrade.commands.build_config_commands import start_new_config
from freqtrade.commands.build_config_commands import start_new_config, start_show_config
from freqtrade.commands.data_commands import (start_convert_data, start_convert_trades,
start_download_data, start_list_data)
from freqtrade.commands.db_commands import start_convert_db
+3 -3
View File
@@ -4,7 +4,7 @@ from typing import Any, Dict
from freqtrade.configuration import setup_utils_configuration
from freqtrade.enums import RunMode
from freqtrade.exceptions import OperationalException
from freqtrade.exceptions import ConfigurationError, OperationalException
logger = logging.getLogger(__name__)
@@ -34,9 +34,9 @@ def setup_analyze_configuration(args: Dict[str, Any], method: RunMode) -> Dict[s
btfile = Path(config['exportfilename'])
signals_file = f"{btfile.parent}/{btfile.stem}_signals.pkl"
else:
raise OperationalException(f"{config['exportfilename']} does not exist.")
raise ConfigurationError(f"{config['exportfilename']} does not exist.")
else:
raise OperationalException('exportfilename not in config.')
raise ConfigurationError('exportfilename not in config.')
if (not Path(signals_file).exists()):
raise OperationalException(
+67 -35
View File
@@ -62,14 +62,16 @@ ARGS_TEST_PAIRLIST = ["user_data_dir", "verbosity", "config", "quote_currencies"
ARGS_CREATE_USERDIR = ["user_data_dir", "reset"]
ARGS_BUILD_CONFIG = ["config"]
ARGS_SHOW_CONFIG = ["user_data_dir", "config", "show_sensitive"]
ARGS_BUILD_STRATEGY = ["user_data_dir", "strategy", "template"]
ARGS_CONVERT_DATA_TRADES = ["pairs", "format_from_trades", "format_to", "erase", "exchange"]
ARGS_CONVERT_DATA = ["pairs", "format_from", "format_to", "erase", "exchange"]
ARGS_CONVERT_DATA_OHLCV = ARGS_CONVERT_DATA + ["timeframes", "trading_mode", "candle_types"]
ARGS_CONVERT_TRADES = ["pairs", "timeframes", "exchange", "dataformat_ohlcv", "dataformat_trades"]
ARGS_CONVERT_TRADES = ["pairs", "timeframes", "exchange", "dataformat_ohlcv", "dataformat_trades",
"trading_mode"]
ARGS_LIST_DATA = ["exchange", "dataformat_ohlcv", "pairs", "trading_mode", "show_timerange"]
@@ -208,9 +210,9 @@ class Arguments:
start_list_strategies, start_list_timeframes,
start_lookahead_analysis, start_new_config,
start_new_strategy, start_plot_dataframe, start_plot_profit,
start_recursive_analysis, start_show_trades,
start_strategy_update, start_test_pairlist, start_trading,
start_webserver)
start_recursive_analysis, start_show_config,
start_show_trades, start_strategy_update,
start_test_pairlist, start_trading, start_webserver)
subparsers = self.parser.add_subparsers(dest='command',
# Use custom message when no subhandler is added
@@ -219,27 +221,43 @@ class Arguments:
)
# Add trade subcommand
trade_cmd = subparsers.add_parser('trade', help='Trade module.',
parents=[_common_parser, _strategy_parser])
trade_cmd = subparsers.add_parser(
'trade',
help='Trade module.',
parents=[_common_parser, _strategy_parser]
)
trade_cmd.set_defaults(func=start_trading)
self._build_args(optionlist=ARGS_TRADE, parser=trade_cmd)
# add create-userdir subcommand
create_userdir_cmd = subparsers.add_parser('create-userdir',
help="Create user-data directory.",
)
create_userdir_cmd = subparsers.add_parser(
'create-userdir',
help="Create user-data directory.",
)
create_userdir_cmd.set_defaults(func=start_create_userdir)
self._build_args(optionlist=ARGS_CREATE_USERDIR, parser=create_userdir_cmd)
# add new-config subcommand
build_config_cmd = subparsers.add_parser('new-config',
help="Create new config")
build_config_cmd = subparsers.add_parser(
'new-config',
help="Create new config",
)
build_config_cmd.set_defaults(func=start_new_config)
self._build_args(optionlist=ARGS_BUILD_CONFIG, parser=build_config_cmd)
# add show-config subcommand
show_config_cmd = subparsers.add_parser(
'show-config',
help="Show resolved config",
)
show_config_cmd.set_defaults(func=start_show_config)
self._build_args(optionlist=ARGS_SHOW_CONFIG, parser=show_config_cmd)
# add new-strategy subcommand
build_strategy_cmd = subparsers.add_parser('new-strategy',
help="Create new strategy")
build_strategy_cmd = subparsers.add_parser(
'new-strategy',
help="Create new strategy",
)
build_strategy_cmd.set_defaults(func=start_new_strategy)
self._build_args(optionlist=ARGS_BUILD_STRATEGY, parser=build_strategy_cmd)
@@ -268,7 +286,7 @@ class Arguments:
parents=[_common_parser],
)
convert_trade_data_cmd.set_defaults(func=partial(start_convert_data, ohlcv=False))
self._build_args(optionlist=ARGS_CONVERT_DATA, parser=convert_trade_data_cmd)
self._build_args(optionlist=ARGS_CONVERT_DATA_TRADES, parser=convert_trade_data_cmd)
# Add trades-to-ohlcv subcommand
convert_trade_data_cmd = subparsers.add_parser(
@@ -289,8 +307,11 @@ class Arguments:
self._build_args(optionlist=ARGS_LIST_DATA, parser=list_data_cmd)
# Add backtesting subcommand
backtesting_cmd = subparsers.add_parser('backtesting', help='Backtesting module.',
parents=[_common_parser, _strategy_parser])
backtesting_cmd = subparsers.add_parser(
'backtesting',
help='Backtesting module.',
parents=[_common_parser, _strategy_parser]
)
backtesting_cmd.set_defaults(func=start_backtesting)
self._build_args(optionlist=ARGS_BACKTEST, parser=backtesting_cmd)
@@ -304,22 +325,29 @@ class Arguments:
self._build_args(optionlist=ARGS_BACKTEST_SHOW, parser=backtesting_show_cmd)
# Add backtesting analysis subcommand
analysis_cmd = subparsers.add_parser('backtesting-analysis',
help='Backtest Analysis module.',
parents=[_common_parser])
analysis_cmd = subparsers.add_parser(
'backtesting-analysis',
help='Backtest Analysis module.',
parents=[_common_parser]
)
analysis_cmd.set_defaults(func=start_analysis_entries_exits)
self._build_args(optionlist=ARGS_ANALYZE_ENTRIES_EXITS, parser=analysis_cmd)
# Add edge subcommand
edge_cmd = subparsers.add_parser('edge', help='Edge module.',
parents=[_common_parser, _strategy_parser])
edge_cmd = subparsers.add_parser(
'edge',
help='Edge module.',
parents=[_common_parser, _strategy_parser]
)
edge_cmd.set_defaults(func=start_edge)
self._build_args(optionlist=ARGS_EDGE, parser=edge_cmd)
# Add hyperopt subcommand
hyperopt_cmd = subparsers.add_parser('hyperopt', help='Hyperopt module.',
parents=[_common_parser, _strategy_parser],
)
hyperopt_cmd = subparsers.add_parser(
'hyperopt',
help='Hyperopt module.',
parents=[_common_parser, _strategy_parser],
)
hyperopt_cmd.set_defaults(func=start_hyperopt)
self._build_args(optionlist=ARGS_HYPEROPT, parser=hyperopt_cmd)
@@ -447,16 +475,20 @@ class Arguments:
self._build_args(optionlist=ARGS_PLOT_PROFIT, parser=plot_profit_cmd)
# Add webserver subcommand
webserver_cmd = subparsers.add_parser('webserver', help='Webserver module.',
parents=[_common_parser])
webserver_cmd = subparsers.add_parser(
'webserver',
help='Webserver module.',
parents=[_common_parser]
)
webserver_cmd.set_defaults(func=start_webserver)
self._build_args(optionlist=ARGS_WEBSERVER, parser=webserver_cmd)
# Add strategy_updater subcommand
strategy_updater_cmd = subparsers.add_parser('strategy-updater',
help='updates outdated strategy'
'files to the current version',
parents=[_common_parser])
strategy_updater_cmd = subparsers.add_parser(
'strategy-updater',
help='updates outdated strategy files to the current version',
parents=[_common_parser]
)
strategy_updater_cmd.set_defaults(func=start_strategy_update)
self._build_args(optionlist=ARGS_STRATEGY_UPDATER, parser=strategy_updater_cmd)
@@ -464,8 +496,8 @@ class Arguments:
lookahead_analayis_cmd = subparsers.add_parser(
'lookahead-analysis',
help="Check for potential look ahead bias.",
parents=[_common_parser, _strategy_parser])
parents=[_common_parser, _strategy_parser]
)
lookahead_analayis_cmd.set_defaults(func=start_lookahead_analysis)
self._build_args(optionlist=ARGS_LOOKAHEAD_ANALYSIS,
@@ -475,8 +507,8 @@ class Arguments:
recursive_analayis_cmd = subparsers.add_parser(
'recursive-analysis',
help="Check for potential recursive formula issue.",
parents=[_common_parser, _strategy_parser])
parents=[_common_parser, _strategy_parser]
)
recursive_analayis_cmd.set_defaults(func=start_recursive_analysis)
self._build_args(optionlist=ARGS_RECURSIVE_ANALYSIS,
+20 -2
View File
@@ -5,9 +5,12 @@ from typing import Any, Dict, List
from questionary import Separator, prompt
from freqtrade.configuration import sanitize_config
from freqtrade.configuration.config_setup import setup_utils_configuration
from freqtrade.configuration.detect_environment import running_in_docker
from freqtrade.configuration.directory_operations import chown_user_directory
from freqtrade.constants import UNLIMITED_STAKE_AMOUNT
from freqtrade.enums import RunMode
from freqtrade.exceptions import OperationalException
from freqtrade.exchange import MAP_EXCHANGE_CHILDCLASS, available_exchanges
from freqtrade.util import render_template
@@ -108,9 +111,8 @@ def ask_user_config() -> Dict[str, Any]:
"choices": [
"binance",
"binanceus",
"bittrex",
"gate",
"huobi",
"htx",
"kraken",
"kucoin",
"okx",
@@ -265,3 +267,19 @@ def start_new_config(args: Dict[str, Any]) -> None:
"Please delete it or use a different configuration file name.")
selections = ask_user_config()
deploy_new_config(config_path, selections)
def start_show_config(args: Dict[str, Any]) -> None:
config = setup_utils_configuration(args, RunMode.UTIL_EXCHANGE, set_dry=False)
# TODO: Sanitize from sensitive info before printing
print("Your combined configuration is:")
config_sanitized = sanitize_config(
config['original_config'],
show_sensitive=args.get('show_sensitive', False)
)
from rich import print_json
print_json(data=config_sanitized)
+12
View File
@@ -421,6 +421,12 @@ AVAILABLE_CLI_OPTIONS = {
'desired timeframe as specified as --timeframes/-t.',
action='store_true',
),
"format_from_trades": Arg(
'--format-from',
help='Source format for data conversion.',
choices=constants.AVAILABLE_DATAHANDLERS + ['kraken_csv'],
required=True,
),
"format_from": Arg(
'--format-from',
help='Source format for data conversion.',
@@ -710,4 +716,10 @@ AVAILABLE_CLI_OPTIONS = {
help='Specify startup candles to be checked (`199`, `499`, `999`, `1999`).',
nargs='+',
),
"show_sensitive": Arg(
'--show-sensitive',
help='Show secrets in the output.',
action='store_true',
default=False,
),
}
+22 -13
View File
@@ -8,11 +8,12 @@ from freqtrade.constants import DATETIME_PRINT_FORMAT, DL_DATA_TIMEFRAMES, Confi
from freqtrade.data.converter import (convert_ohlcv_format, convert_trades_format,
convert_trades_to_ohlcv)
from freqtrade.data.history import download_data_main
from freqtrade.enums import RunMode, TradingMode
from freqtrade.exceptions import OperationalException
from freqtrade.enums import CandleType, RunMode, TradingMode
from freqtrade.exceptions import ConfigurationError
from freqtrade.exchange import timeframe_to_minutes
from freqtrade.plugins.pairlist.pairlist_helpers import dynamic_expand_pairlist
from freqtrade.resolvers import ExchangeResolver
from freqtrade.util.binance_mig import migrate_binance_futures_data
from freqtrade.util.migrations import migrate_data
logger = logging.getLogger(__name__)
@@ -20,11 +21,11 @@ logger = logging.getLogger(__name__)
def _check_data_config_download_sanity(config: Config) -> None:
if 'days' in config and 'timerange' in config:
raise OperationalException("--days and --timerange are mutually exclusive. "
"You can only specify one or the other.")
raise ConfigurationError("--days and --timerange are mutually exclusive. "
"You can only specify one or the other.")
if 'pairs' not in config:
raise OperationalException(
raise ConfigurationError(
"Downloading data requires a list of pairs. "
"Please check the documentation on how to configure this.")
@@ -62,13 +63,21 @@ def start_convert_trades(args: Dict[str, Any]) -> None:
for timeframe in config['timeframes']:
exchange.validate_timeframes(timeframe)
available_pairs = [
p for p in exchange.get_markets(
tradable_only=True, active_only=not config.get('include_inactive')
).keys()
]
expanded_pairs = dynamic_expand_pairlist(config, available_pairs)
# Convert downloaded trade data to different timeframes
convert_trades_to_ohlcv(
pairs=config.get('pairs', []), timeframes=config['timeframes'],
pairs=expanded_pairs, timeframes=config['timeframes'],
datadir=config['datadir'], timerange=timerange, erase=bool(config.get('erase')),
data_format_ohlcv=config['dataformat_ohlcv'],
data_format_trades=config['dataformat_trades'],
candle_type=config.get('candle_type_def', CandleType.SPOT)
)
@@ -78,14 +87,14 @@ def start_convert_data(args: Dict[str, Any], ohlcv: bool = True) -> None:
"""
config = setup_utils_configuration(args, RunMode.UTIL_NO_EXCHANGE)
if ohlcv:
migrate_binance_futures_data(config)
migrate_data(config)
convert_ohlcv_format(config,
convert_from=args['format_from'],
convert_to=args['format_to'],
erase=args['erase'])
else:
convert_trades_format(config,
convert_from=args['format_from'], convert_to=args['format_to'],
convert_from=args['format_from_trades'], convert_to=args['format_to'],
erase=args['erase'])
@@ -98,7 +107,7 @@ def start_list_data(args: Dict[str, Any]) -> None:
from tabulate import tabulate
from freqtrade.data.history.idatahandler import get_datahandler
from freqtrade.data.history import get_datahandler
dhc = get_datahandler(config['datadir'], config['dataformat_ohlcv'])
paircombs = dhc.ohlcv_get_available_data(
@@ -134,10 +143,10 @@ def start_list_data(args: Dict[str, Any]) -> None:
print(tabulate([
(pair, timeframe, candle_type,
start.strftime(DATETIME_PRINT_FORMAT),
end.strftime(DATETIME_PRINT_FORMAT))
for pair, timeframe, candle_type, start, end in sorted(
end.strftime(DATETIME_PRINT_FORMAT), length)
for pair, timeframe, candle_type, start, end, length in sorted(
paircombs1,
key=lambda x: (x[0], timeframe_to_minutes(x[1]), x[2]))
],
headers=("Pair", "Timeframe", "Type", 'From', 'To'),
headers=("Pair", "Timeframe", "Type", 'From', 'To', 'Candles'),
tablefmt='psql', stralign='right'))
+2 -2
View File
@@ -9,7 +9,7 @@ from freqtrade.configuration import setup_utils_configuration
from freqtrade.configuration.directory_operations import copy_sample_files, create_userdata_dir
from freqtrade.constants import USERPATH_STRATEGIES
from freqtrade.enums import RunMode
from freqtrade.exceptions import OperationalException
from freqtrade.exceptions import ConfigurationError, OperationalException
from freqtrade.util import render_template, render_template_with_fallback
@@ -89,7 +89,7 @@ def start_new_strategy(args: Dict[str, Any]) -> None:
deploy_new_strategy(args['strategy'], new_path, args['template'])
else:
raise OperationalException("`new-strategy` requires --strategy to be set.")
raise ConfigurationError("`new-strategy` requires --strategy to be set.")
def clean_ui_subdir(directory: Path):
+2 -2
View File
@@ -10,7 +10,7 @@ from tabulate import tabulate
from freqtrade.configuration import setup_utils_configuration
from freqtrade.enums import RunMode
from freqtrade.exceptions import OperationalException
from freqtrade.exceptions import ConfigurationError, OperationalException
from freqtrade.exchange import list_available_exchanges, market_is_active
from freqtrade.misc import parse_db_uri_for_logging, plural
from freqtrade.resolvers import ExchangeResolver, StrategyResolver
@@ -246,7 +246,7 @@ def start_show_trades(args: Dict[str, Any]) -> None:
config = setup_utils_configuration(args, RunMode.UTIL_NO_EXCHANGE)
if 'db_url' not in config:
raise OperationalException("--db-url is required for this command.")
raise ConfigurationError("--db-url is required for this command.")
logger.info(f'Using DB: "{parse_db_uri_for_logging(config["db_url"])}"')
init_db(config['db_url'])
+7 -7
View File
@@ -4,8 +4,8 @@ from typing import Any, Dict
from freqtrade import constants
from freqtrade.configuration import setup_utils_configuration
from freqtrade.enums import RunMode
from freqtrade.exceptions import OperationalException
from freqtrade.misc import round_coin_value
from freqtrade.exceptions import ConfigurationError, OperationalException
from freqtrade.util import fmt_coin
logger = logging.getLogger(__name__)
@@ -29,9 +29,9 @@ def setup_optimize_configuration(args: Dict[str, Any], method: RunMode) -> Dict[
# tradable_balance_ratio
if (config['stake_amount'] != constants.UNLIMITED_STAKE_AMOUNT
and config['stake_amount'] > wallet_size):
wallet = round_coin_value(wallet_size, config['stake_currency'])
stake = round_coin_value(config['stake_amount'], config['stake_currency'])
raise OperationalException(
wallet = fmt_coin(wallet_size, config['stake_currency'])
stake = fmt_coin(config['stake_amount'], config['stake_currency'])
raise ConfigurationError(
f"Starting balance ({wallet}) is smaller than stake_amount {stake}. "
f"Wallet is calculated as `dry_run_wallet * tradable_balance_ratio`."
)
@@ -140,7 +140,7 @@ def start_lookahead_analysis(args: Dict[str, Any]) -> None:
:param args: Cli args from Arguments()
:return: None
"""
from freqtrade.optimize.lookahead_analysis_helpers import LookaheadAnalysisSubFunctions
from freqtrade.optimize.analysis.lookahead_helpers import LookaheadAnalysisSubFunctions
config = setup_utils_configuration(args, RunMode.UTIL_NO_EXCHANGE)
LookaheadAnalysisSubFunctions.start(config)
@@ -152,7 +152,7 @@ def start_recursive_analysis(args: Dict[str, Any]) -> None:
:param args: Cli args from Arguments()
:return: None
"""
from freqtrade.optimize.recursive_analysis_helpers import RecursiveAnalysisSubFunctions
from freqtrade.optimize.analysis.recursive_helpers import RecursiveAnalysisSubFunctions
config = setup_utils_configuration(args, RunMode.UTIL_NO_EXCHANGE)
RecursiveAnalysisSubFunctions.start(config)
+7 -5
View File
@@ -15,6 +15,7 @@ def start_test_pairlist(args: Dict[str, Any]) -> None:
"""
Test Pairlist configuration
"""
from freqtrade.persistence import FtNoDBContext
from freqtrade.plugins.pairlistmanager import PairListManager
config = setup_utils_configuration(args, RunMode.UTIL_EXCHANGE)
@@ -24,11 +25,12 @@ def start_test_pairlist(args: Dict[str, Any]) -> None:
if not quote_currencies:
quote_currencies = [config.get('stake_currency')]
results = {}
for curr in quote_currencies:
config['stake_currency'] = curr
pairlists = PairListManager(exchange, config)
pairlists.refresh_pairlist()
results[curr] = pairlists.whitelist
with FtNoDBContext():
for curr in quote_currencies:
config['stake_currency'] = curr
pairlists = PairListManager(exchange, config)
pairlists.refresh_pairlist()
results[curr] = pairlists.whitelist
for curr, pairlist in results.items():
if not args.get('print_one_column', False) and not args.get('list_pairs_print_json', False):
+2 -2
View File
@@ -2,12 +2,12 @@ from typing import Any, Dict
from freqtrade.configuration import setup_utils_configuration
from freqtrade.enums import RunMode
from freqtrade.exceptions import OperationalException
from freqtrade.exceptions import ConfigurationError
def validate_plot_args(args: Dict[str, Any]) -> None:
if not args.get('datadir') and not args.get('config'):
raise OperationalException(
raise ConfigurationError(
"You need to specify either `--datadir` or `--config` "
"for plot-profit and plot-dataframe.")
-5
View File
@@ -23,11 +23,6 @@ def start_trading(args: Dict[str, Any]) -> int:
signal.signal(signal.SIGTERM, term_handler)
worker = Worker(args)
worker.run()
except Exception as e:
logger.error(str(e))
logger.exception("Fatal exception!")
except (KeyboardInterrupt):
logger.info('SIGINT received, aborting ...')
finally:
if worker:
logger.info("worker found ... calling exit")
+1
View File
@@ -1,5 +1,6 @@
# flake8: noqa: F401
from freqtrade.configuration.config_secrets import sanitize_config
from freqtrade.configuration.config_setup import setup_utils_configuration
from freqtrade.configuration.config_validation import validate_config_consistency
from freqtrade.configuration.configuration import Configuration
+36
View File
@@ -0,0 +1,36 @@
from copy import deepcopy
from freqtrade.constants import Config
def sanitize_config(config: Config, *, show_sensitive: bool = False) -> Config:
"""
Remove sensitive information from the config.
:param config: Configuration
:param show_sensitive: Show sensitive information
:return: Configuration
"""
if show_sensitive:
return config
keys_to_remove = [
"exchange.key",
"exchange.secret",
"exchange.password",
"exchange.uid",
"telegram.token",
"telegram.chat_id",
"discord.webhook_url",
"api_server.password",
]
config = deepcopy(config)
for key in keys_to_remove:
if '.' in key:
nested_keys = key.split('.')
nested_config = config
for nested_key in nested_keys[:-1]:
nested_config = nested_config.get(nested_key, {})
nested_config[nested_keys[-1]] = 'REDACTED'
else:
config[key] = 'REDACTED'
return config
+4 -2
View File
@@ -10,7 +10,8 @@ from .configuration import Configuration
logger = logging.getLogger(__name__)
def setup_utils_configuration(args: Dict[str, Any], method: RunMode) -> Dict[str, Any]:
def setup_utils_configuration(
args: Dict[str, Any], method: RunMode, *, set_dry: bool = True) -> Dict[str, Any]:
"""
Prepare the configuration for utils subcommands
:param args: Cli args from Arguments()
@@ -21,7 +22,8 @@ def setup_utils_configuration(args: Dict[str, Any], method: RunMode) -> Dict[str
config = configuration.get_config()
# Ensure these modes are using Dry-run
config['dry_run'] = True
if set_dry:
config['dry_run'] = True
validate_config_consistency(config, preliminary=True)
return config
+30 -30
View File
@@ -9,7 +9,7 @@ from jsonschema.exceptions import ValidationError, best_match
from freqtrade import constants
from freqtrade.configuration.deprecated_settings import process_deprecated_setting
from freqtrade.enums import RunMode, TradingMode
from freqtrade.exceptions import OperationalException
from freqtrade.exceptions import ConfigurationError
logger = logging.getLogger(__name__)
@@ -67,13 +67,13 @@ def validate_config_schema(conf: Dict[str, Any], preliminary: bool = False) -> D
)
def validate_config_consistency(conf: Dict[str, Any], preliminary: bool = False) -> None:
def validate_config_consistency(conf: Dict[str, Any], *, preliminary: bool = False) -> None:
"""
Validate the configuration consistency.
Should be ran after loading both configuration and strategy,
since strategies can set certain configuration settings too.
:param conf: Config in JSON format
:return: Returns None if everything is ok, otherwise throw an OperationalException
:return: Returns None if everything is ok, otherwise throw an ConfigurationError
"""
# validating trailing stoploss
@@ -86,7 +86,7 @@ def validate_config_consistency(conf: Dict[str, Any], preliminary: bool = False)
_validate_ask_orderbook(conf)
_validate_freqai_hyperopt(conf)
_validate_freqai_backtest(conf)
_validate_freqai_include_timeframes(conf)
_validate_freqai_include_timeframes(conf, preliminary=preliminary)
_validate_consumers(conf)
validate_migrated_strategy_settings(conf)
@@ -98,12 +98,12 @@ def validate_config_consistency(conf: Dict[str, Any], preliminary: bool = False)
def _validate_unlimited_amount(conf: Dict[str, Any]) -> None:
"""
If edge is disabled, either max_open_trades or stake_amount need to be set.
:raise: OperationalException if config validation failed
:raise: ConfigurationError if config validation failed
"""
if (not conf.get('edge', {}).get('enabled')
and conf.get('max_open_trades') == float('inf')
and conf.get('stake_amount') == constants.UNLIMITED_STAKE_AMOUNT):
raise OperationalException("`max_open_trades` and `stake_amount` cannot both be unlimited.")
raise ConfigurationError("`max_open_trades` and `stake_amount` cannot both be unlimited.")
def _validate_price_config(conf: Dict[str, Any]) -> None:
@@ -113,18 +113,18 @@ def _validate_price_config(conf: Dict[str, Any]) -> None:
# TODO: The below could be an enforced setting when using market orders
if (conf.get('order_types', {}).get('entry') == 'market'
and conf.get('entry_pricing', {}).get('price_side') not in ('ask', 'other')):
raise OperationalException(
raise ConfigurationError(
'Market entry orders require entry_pricing.price_side = "other".')
if (conf.get('order_types', {}).get('exit') == 'market'
and conf.get('exit_pricing', {}).get('price_side') not in ('bid', 'other')):
raise OperationalException('Market exit orders require exit_pricing.price_side = "other".')
raise ConfigurationError('Market exit orders require exit_pricing.price_side = "other".')
def _validate_trailing_stoploss(conf: Dict[str, Any]) -> None:
if conf.get('stoploss') == 0.0:
raise OperationalException(
raise ConfigurationError(
'The config stoploss needs to be different from 0 to avoid problems with sell orders.'
)
# Skip if trailing stoploss is not activated
@@ -137,17 +137,17 @@ def _validate_trailing_stoploss(conf: Dict[str, Any]) -> None:
if tsl_only_offset:
if tsl_positive == 0.0:
raise OperationalException(
raise ConfigurationError(
'The config trailing_only_offset_is_reached needs '
'trailing_stop_positive_offset to be more than 0 in your config.')
if tsl_positive > 0 and 0 < tsl_offset <= tsl_positive:
raise OperationalException(
raise ConfigurationError(
'The config trailing_stop_positive_offset needs '
'to be greater than trailing_stop_positive in your config.')
# Fetch again without default
if 'trailing_stop_positive' in conf and float(conf['trailing_stop_positive']) == 0.0:
raise OperationalException(
raise ConfigurationError(
'The config trailing_stop_positive needs to be different from 0 '
'to avoid problems with sell orders.'
)
@@ -162,7 +162,7 @@ def _validate_edge(conf: Dict[str, Any]) -> None:
return
if not conf.get('use_exit_signal', True):
raise OperationalException(
raise ConfigurationError(
"Edge requires `use_exit_signal` to be True, otherwise no sells will happen."
)
@@ -178,7 +178,7 @@ def _validate_whitelist(conf: Dict[str, Any]) -> None:
for pl in conf.get('pairlists', [{'method': 'StaticPairList'}]):
if (isinstance(pl, dict) and pl.get('method') == 'StaticPairList'
and not conf.get('exchange', {}).get('pair_whitelist')):
raise OperationalException("StaticPairList requires pair_whitelist to be set.")
raise ConfigurationError("StaticPairList requires pair_whitelist to be set.")
def _validate_protections(conf: Dict[str, Any]) -> None:
@@ -188,13 +188,13 @@ def _validate_protections(conf: Dict[str, Any]) -> None:
for prot in conf.get('protections', []):
if ('stop_duration' in prot and 'stop_duration_candles' in prot):
raise OperationalException(
raise ConfigurationError(
"Protections must specify either `stop_duration` or `stop_duration_candles`.\n"
f"Please fix the protection {prot.get('method')}"
)
if ('lookback_period' in prot and 'lookback_period_candles' in prot):
raise OperationalException(
raise ConfigurationError(
"Protections must specify either `lookback_period` or `lookback_period_candles`.\n"
f"Please fix the protection {prot.get('method')}"
)
@@ -206,7 +206,7 @@ def _validate_ask_orderbook(conf: Dict[str, Any]) -> None:
ob_max = ask_strategy.get('order_book_max')
if ob_min is not None and ob_max is not None and ask_strategy.get('use_order_book'):
if ob_min != ob_max:
raise OperationalException(
raise ConfigurationError(
"Using order_book_max != order_book_min in exit_pricing is no longer supported."
"Please pick one value and use `order_book_top` in the future."
)
@@ -234,7 +234,7 @@ def _validate_time_in_force(conf: Dict[str, Any]) -> None:
time_in_force = conf.get('order_time_in_force', {})
if 'buy' in time_in_force or 'sell' in time_in_force:
if conf.get('trading_mode', TradingMode.SPOT) != TradingMode.SPOT:
raise OperationalException(
raise ConfigurationError(
"Please migrate your time_in_force settings to use 'entry' and 'exit'.")
else:
logger.warning(
@@ -255,7 +255,7 @@ def _validate_order_types(conf: Dict[str, Any]) -> None:
'forcesell', 'emergencyexit', 'forceexit', 'forceentry']
if any(x in order_types for x in old_order_types):
if conf.get('trading_mode', TradingMode.SPOT) != TradingMode.SPOT:
raise OperationalException(
raise ConfigurationError(
"Please migrate your order_types settings to use the new wording.")
else:
logger.warning(
@@ -280,7 +280,7 @@ def _validate_unfilledtimeout(conf: Dict[str, Any]) -> None:
unfilledtimeout = conf.get('unfilledtimeout', {})
if any(x in unfilledtimeout for x in ['buy', 'sell']):
if conf.get('trading_mode', TradingMode.SPOT) != TradingMode.SPOT:
raise OperationalException(
raise ConfigurationError(
"Please migrate your unfilledtimeout settings to use the new wording.")
else:
@@ -300,7 +300,7 @@ def _validate_pricing_rules(conf: Dict[str, Any]) -> None:
if conf.get('ask_strategy') or conf.get('bid_strategy'):
if conf.get('trading_mode', TradingMode.SPOT) != TradingMode.SPOT:
raise OperationalException(
raise ConfigurationError(
"Please migrate your pricing settings to use the new wording.")
else:
@@ -331,11 +331,11 @@ def _validate_freqai_hyperopt(conf: Dict[str, Any]) -> None:
freqai_enabled = conf.get('freqai', {}).get('enabled', False)
analyze_per_epoch = conf.get('analyze_per_epoch', False)
if analyze_per_epoch and freqai_enabled:
raise OperationalException(
raise ConfigurationError(
'Using analyze-per-epoch parameter is not supported with a FreqAI strategy.')
def _validate_freqai_include_timeframes(conf: Dict[str, Any]) -> None:
def _validate_freqai_include_timeframes(conf: Dict[str, Any], preliminary: bool) -> None:
freqai_enabled = conf.get('freqai', {}).get('enabled', False)
if freqai_enabled:
main_tf = conf.get('timeframe', '5m')
@@ -350,12 +350,12 @@ def _validate_freqai_include_timeframes(conf: Dict[str, Any]) -> None:
if tf_s < main_tf_s:
offending_lines.append(tf)
if offending_lines:
raise OperationalException(
raise ConfigurationError(
f"Main timeframe of {main_tf} must be smaller or equal to FreqAI "
f"`include_timeframes`.Offending include-timeframes: {', '.join(offending_lines)}")
# Ensure that the base timeframe is included in the include_timeframes list
if main_tf not in freqai_include_timeframes:
if not preliminary and main_tf not in freqai_include_timeframes:
feature_parameters = conf.get('freqai', {}).get('feature_parameters', {})
include_timeframes = [main_tf] + freqai_include_timeframes
conf.get('freqai', {}).get('feature_parameters', {}) \
@@ -368,17 +368,17 @@ def _validate_freqai_backtest(conf: Dict[str, Any]) -> None:
timerange = conf.get('timerange')
freqai_backtest_live_models = conf.get('freqai_backtest_live_models', False)
if freqai_backtest_live_models and freqai_enabled and timerange:
raise OperationalException(
raise ConfigurationError(
'Using timerange parameter is not supported with '
'--freqai-backtest-live-models parameter.')
if freqai_backtest_live_models and not freqai_enabled:
raise OperationalException(
raise ConfigurationError(
'Using --freqai-backtest-live-models parameter is only '
'supported with a FreqAI strategy.')
if freqai_enabled and not freqai_backtest_live_models and not timerange:
raise OperationalException(
raise ConfigurationError(
'Please pass --timerange if you intend to use FreqAI for backtesting.')
@@ -386,12 +386,12 @@ def _validate_consumers(conf: Dict[str, Any]) -> None:
emc_conf = conf.get('external_message_consumer', {})
if emc_conf.get('enabled', False):
if len(emc_conf.get('producers', [])) < 1:
raise OperationalException("You must specify at least 1 Producer to connect to.")
raise ConfigurationError("You must specify at least 1 Producer to connect to.")
producer_names = [p['name'] for p in emc_conf.get('producers', [])]
duplicates = [item for item, count in Counter(producer_names).items() if count > 1]
if duplicates:
raise OperationalException(
raise ConfigurationError(
f"Producer names must be unique. Duplicate: {', '.join(duplicates)}")
if conf.get('process_only_new_candles', True):
# Warning here or require it?
+110 -218
View File
@@ -5,7 +5,7 @@ import logging
import warnings
from copy import deepcopy
from pathlib import Path
from typing import Any, Callable, Dict, List, Optional
from typing import Any, Callable, Dict, List, Optional, Tuple
from freqtrade import constants
from freqtrade.configuration.deprecated_settings import process_temporary_deprecated_settings
@@ -68,8 +68,10 @@ class Configuration:
config: Config = load_from_files(self.args.get("config", []))
# Load environment variables
env_data = enironment_vars_to_dict()
config = deep_merge_dicts(env_data, config)
from freqtrade.commands.arguments import NO_CONF_ALLOWED
if self.args.get('command') not in NO_CONF_ALLOWED:
env_data = enironment_vars_to_dict()
config = deep_merge_dicts(env_data, config)
# Normalize config
if 'internals' not in config:
@@ -198,6 +200,12 @@ class Configuration:
config['exportfilename'] = (config['user_data_dir']
/ 'backtest_results')
if self.args.get('show_sensitive'):
logger.warning(
"Sensitive information will be shown in the upcomming output. "
"Please make sure to never share this output without redacting "
"the information yourself.")
def _process_optimize_options(self, config: Config) -> None:
# This will override the strategy configuration
@@ -233,54 +241,37 @@ class Configuration:
except ValueError:
pass
self._args_to_config(config, argname='timeframe_detail',
logstring='Parameter --timeframe-detail detected, '
'using {} for intra-candle backtesting ...')
configurations = [
('timeframe_detail',
'Parameter --timeframe-detail detected, using {} for intra-candle backtesting ...'),
('backtest_show_pair_list', 'Parameter --show-pair-list detected.'),
('stake_amount',
'Parameter --stake-amount detected, overriding stake_amount to: {} ...'),
('dry_run_wallet',
'Parameter --dry-run-wallet detected, overriding dry_run_wallet to: {} ...'),
('fee', 'Parameter --fee detected, setting fee to: {} ...'),
('timerange', 'Parameter --timerange detected: {} ...'),
]
self._args_to_config(config, argname='backtest_show_pair_list',
logstring='Parameter --show-pair-list detected.')
self._args_to_config(config, argname='stake_amount',
logstring='Parameter --stake-amount detected, '
'overriding stake_amount to: {} ...')
self._args_to_config(config, argname='dry_run_wallet',
logstring='Parameter --dry-run-wallet detected, '
'overriding dry_run_wallet to: {} ...')
self._args_to_config(config, argname='fee',
logstring='Parameter --fee detected, '
'setting fee to: {} ...')
self._args_to_config(config, argname='timerange',
logstring='Parameter --timerange detected: {} ...')
self._args_to_config_loop(config, configurations)
self._process_datadir_options(config)
self._args_to_config(config, argname='strategy_list',
logstring='Using strategy list of {} strategies', logfun=len)
self._args_to_config(
config,
argname='recursive_strategy_search',
logstring='Recursively searching for a strategy in the strategies folder.',
)
self._args_to_config(config, argname='timeframe',
logstring='Overriding timeframe with Command line argument')
self._args_to_config(config, argname='export',
logstring='Parameter --export detected: {} ...')
self._args_to_config(config, argname='backtest_breakdown',
logstring='Parameter --breakdown detected ...')
self._args_to_config(config, argname='backtest_cache',
logstring='Parameter --cache={} detected ...')
self._args_to_config(config, argname='disableparamexport',
logstring='Parameter --disableparamexport detected: {} ...')
self._args_to_config(config, argname='freqai_backtest_live_models',
logstring='Parameter --freqai-backtest-live-models detected ...')
configurations = [
('recursive_strategy_search',
'Recursively searching for a strategy in the strategies folder.'),
('timeframe', 'Overriding timeframe with Command line argument'),
('export', 'Parameter --export detected: {} ...'),
('backtest_breakdown', 'Parameter --breakdown detected ...'),
('backtest_cache', 'Parameter --cache={} detected ...'),
('disableparamexport', 'Parameter --disableparamexport detected: {} ...'),
('freqai_backtest_live_models',
'Parameter --freqai-backtest-live-models detected ...'),
]
self._args_to_config_loop(config, configurations)
# Edge section:
if 'stoploss_range' in self.args and self.args["stoploss_range"]:
@@ -291,31 +282,18 @@ class Configuration:
logger.info('Parameter --stoplosses detected: %s ...', self.args["stoploss_range"])
# Hyperopt section
self._args_to_config(config, argname='hyperopt',
logstring='Using Hyperopt class name: {}')
self._args_to_config(config, argname='hyperopt_path',
logstring='Using additional Hyperopt lookup path: {}')
self._args_to_config(config, argname='hyperoptexportfilename',
logstring='Using hyperopt file: {}')
self._args_to_config(config, argname='lookahead_analysis_exportfilename',
logstring='Saving lookahead analysis results into {} ...')
self._args_to_config(config, argname='epochs',
logstring='Parameter --epochs detected ... '
'Will run Hyperopt with for {} epochs ...'
)
self._args_to_config(config, argname='spaces',
logstring='Parameter -s/--spaces detected: {}')
self._args_to_config(config, argname='analyze_per_epoch',
logstring='Parameter --analyze-per-epoch detected.')
self._args_to_config(config, argname='print_all',
logstring='Parameter --print-all detected ...')
configurations = [
('hyperopt', 'Using Hyperopt class name: {}'),
('hyperopt_path', 'Using additional Hyperopt lookup path: {}'),
('hyperoptexportfilename', 'Using hyperopt file: {}'),
('lookahead_analysis_exportfilename', 'Saving lookahead analysis results into {} ...'),
('epochs', 'Parameter --epochs detected ... Will run Hyperopt with for {} epochs ...'),
('spaces', 'Parameter -s/--spaces detected: {}'),
('analyze_per_epoch', 'Parameter --analyze-per-epoch detected.'),
('print_all', 'Parameter --print-all detected ...'),
]
self._args_to_config_loop(config, configurations)
if 'print_colorized' in self.args and not self.args["print_colorized"]:
logger.info('Parameter --no-color detected ...')
@@ -323,123 +301,55 @@ class Configuration:
else:
config.update({'print_colorized': True})
self._args_to_config(config, argname='print_json',
logstring='Parameter --print-json detected ...')
configurations = [
('print_json', 'Parameter --print-json detected ...'),
('export_csv', 'Parameter --export-csv detected: {}'),
('hyperopt_jobs', 'Parameter -j/--job-workers detected: {}'),
('hyperopt_random_state', 'Parameter --random-state detected: {}'),
('hyperopt_min_trades', 'Parameter --min-trades detected: {}'),
('hyperopt_loss', 'Using Hyperopt loss class name: {}'),
('hyperopt_show_index', 'Parameter -n/--index detected: {}'),
('hyperopt_list_best', 'Parameter --best detected: {}'),
('hyperopt_list_profitable', 'Parameter --profitable detected: {}'),
('hyperopt_list_min_trades', 'Parameter --min-trades detected: {}'),
('hyperopt_list_max_trades', 'Parameter --max-trades detected: {}'),
('hyperopt_list_min_avg_time', 'Parameter --min-avg-time detected: {}'),
('hyperopt_list_max_avg_time', 'Parameter --max-avg-time detected: {}'),
('hyperopt_list_min_avg_profit', 'Parameter --min-avg-profit detected: {}'),
('hyperopt_list_max_avg_profit', 'Parameter --max-avg-profit detected: {}'),
('hyperopt_list_min_total_profit', 'Parameter --min-total-profit detected: {}'),
('hyperopt_list_max_total_profit', 'Parameter --max-total-profit detected: {}'),
('hyperopt_list_min_objective', 'Parameter --min-objective detected: {}'),
('hyperopt_list_max_objective', 'Parameter --max-objective detected: {}'),
('hyperopt_list_no_details', 'Parameter --no-details detected: {}'),
('hyperopt_show_no_header', 'Parameter --no-header detected: {}'),
('hyperopt_ignore_missing_space', 'Paramter --ignore-missing-space detected: {}'),
]
self._args_to_config(config, argname='export_csv',
logstring='Parameter --export-csv detected: {}')
self._args_to_config(config, argname='hyperopt_jobs',
logstring='Parameter -j/--job-workers detected: {}')
self._args_to_config(config, argname='hyperopt_random_state',
logstring='Parameter --random-state detected: {}')
self._args_to_config(config, argname='hyperopt_min_trades',
logstring='Parameter --min-trades detected: {}')
self._args_to_config(config, argname='hyperopt_loss',
logstring='Using Hyperopt loss class name: {}')
self._args_to_config(config, argname='hyperopt_show_index',
logstring='Parameter -n/--index detected: {}')
self._args_to_config(config, argname='hyperopt_list_best',
logstring='Parameter --best detected: {}')
self._args_to_config(config, argname='hyperopt_list_profitable',
logstring='Parameter --profitable detected: {}')
self._args_to_config(config, argname='hyperopt_list_min_trades',
logstring='Parameter --min-trades detected: {}')
self._args_to_config(config, argname='hyperopt_list_max_trades',
logstring='Parameter --max-trades detected: {}')
self._args_to_config(config, argname='hyperopt_list_min_avg_time',
logstring='Parameter --min-avg-time detected: {}')
self._args_to_config(config, argname='hyperopt_list_max_avg_time',
logstring='Parameter --max-avg-time detected: {}')
self._args_to_config(config, argname='hyperopt_list_min_avg_profit',
logstring='Parameter --min-avg-profit detected: {}')
self._args_to_config(config, argname='hyperopt_list_max_avg_profit',
logstring='Parameter --max-avg-profit detected: {}')
self._args_to_config(config, argname='hyperopt_list_min_total_profit',
logstring='Parameter --min-total-profit detected: {}')
self._args_to_config(config, argname='hyperopt_list_max_total_profit',
logstring='Parameter --max-total-profit detected: {}')
self._args_to_config(config, argname='hyperopt_list_min_objective',
logstring='Parameter --min-objective detected: {}')
self._args_to_config(config, argname='hyperopt_list_max_objective',
logstring='Parameter --max-objective detected: {}')
self._args_to_config(config, argname='hyperopt_list_no_details',
logstring='Parameter --no-details detected: {}')
self._args_to_config(config, argname='hyperopt_show_no_header',
logstring='Parameter --no-header detected: {}')
self._args_to_config(config, argname="hyperopt_ignore_missing_space",
logstring="Paramter --ignore-missing-space detected: {}")
self._args_to_config_loop(config, configurations)
def _process_plot_options(self, config: Config) -> None:
self._args_to_config(config, argname='pairs',
logstring='Using pairs {}')
self._args_to_config(config, argname='indicators1',
logstring='Using indicators1: {}')
self._args_to_config(config, argname='indicators2',
logstring='Using indicators2: {}')
self._args_to_config(config, argname='trade_ids',
logstring='Filtering on trade_ids: {}')
self._args_to_config(config, argname='plot_limit',
logstring='Limiting plot to: {}')
self._args_to_config(config, argname='plot_auto_open',
logstring='Parameter --auto-open detected.')
self._args_to_config(config, argname='trade_source',
logstring='Using trades from: {}')
self._args_to_config(config, argname='prepend_data',
logstring='Prepend detected. Allowing data prepending.')
self._args_to_config(config, argname='erase',
logstring='Erase detected. Deleting existing data.')
self._args_to_config(config, argname='no_trades',
logstring='Parameter --no-trades detected.')
self._args_to_config(config, argname='timeframes',
logstring='timeframes --timeframes: {}')
self._args_to_config(config, argname='days',
logstring='Detected --days: {}')
self._args_to_config(config, argname='include_inactive',
logstring='Detected --include-inactive-pairs: {}')
self._args_to_config(config, argname='download_trades',
logstring='Detected --dl-trades: {}')
self._args_to_config(config, argname='dataformat_ohlcv',
logstring='Using "{}" to store OHLCV data.')
self._args_to_config(config, argname='dataformat_trades',
logstring='Using "{}" to store trades data.')
self._args_to_config(config, argname='show_timerange',
logstring='Detected --show-timerange')
configurations = [
('pairs', 'Using pairs {}'),
('indicators1', 'Using indicators1: {}'),
('indicators2', 'Using indicators2: {}'),
('trade_ids', 'Filtering on trade_ids: {}'),
('plot_limit', 'Limiting plot to: {}'),
('plot_auto_open', 'Parameter --auto-open detected.'),
('trade_source', 'Using trades from: {}'),
('prepend_data', 'Prepend detected. Allowing data prepending.'),
('erase', 'Erase detected. Deleting existing data.'),
('no_trades', 'Parameter --no-trades detected.'),
('timeframes', 'timeframes --timeframes: {}'),
('days', 'Detected --days: {}'),
('include_inactive', 'Detected --include-inactive-pairs: {}'),
('download_trades', 'Detected --dl-trades: {}'),
('dataformat_ohlcv', 'Using "{}" to store OHLCV data.'),
('dataformat_trades', 'Using "{}" to store trades data.'),
('show_timerange', 'Detected --show-timerange'),
]
self._args_to_config_loop(config, configurations)
def _process_data_options(self, config: Config) -> None:
self._args_to_config(config, argname='new_pairs_days',
@@ -453,45 +363,27 @@ class Configuration:
logstring='Detected --candle-types: {}')
def _process_analyze_options(self, config: Config) -> None:
self._args_to_config(config, argname='analysis_groups',
logstring='Analysis reason groups: {}')
configurations = [
('analysis_groups', 'Analysis reason groups: {}'),
('enter_reason_list', 'Analysis enter tag list: {}'),
('exit_reason_list', 'Analysis exit tag list: {}'),
('indicator_list', 'Analysis indicator list: {}'),
('timerange', 'Filter trades by timerange: {}'),
('analysis_rejected', 'Analyse rejected signals: {}'),
('analysis_to_csv', 'Store analysis tables to CSV: {}'),
('analysis_csv_path', 'Path to store analysis CSVs: {}'),
# Lookahead analysis results
('targeted_trade_amount', 'Targeted Trade amount: {}'),
('minimum_trade_amount', 'Minimum Trade amount: {}'),
('lookahead_analysis_exportfilename', 'Path to store lookahead-analysis-results: {}'),
('startup_candle', 'Startup candle to be used on recursive analysis: {}'),
]
self._args_to_config_loop(config, configurations)
self._args_to_config(config, argname='enter_reason_list',
logstring='Analysis enter tag list: {}')
def _args_to_config_loop(self, config, configurations: List[Tuple[str, str]]) -> None:
self._args_to_config(config, argname='exit_reason_list',
logstring='Analysis exit tag list: {}')
self._args_to_config(config, argname='indicator_list',
logstring='Analysis indicator list: {}')
self._args_to_config(config, argname='timerange',
logstring='Filter trades by timerange: {}')
self._args_to_config(config, argname='analysis_rejected',
logstring='Analyse rejected signals: {}')
self._args_to_config(config, argname='analysis_to_csv',
logstring='Store analysis tables to CSV: {}')
self._args_to_config(config, argname='analysis_csv_path',
logstring='Path to store analysis CSVs: {}')
self._args_to_config(config, argname='analysis_csv_path',
logstring='Path to store analysis CSVs: {}')
# Lookahead analysis results
self._args_to_config(config, argname='targeted_trade_amount',
logstring='Targeted Trade amount: {}')
self._args_to_config(config, argname='minimum_trade_amount',
logstring='Minimum Trade amount: {}')
self._args_to_config(config, argname='lookahead_analysis_exportfilename',
logstring='Path to store lookahead-analysis-results: {}')
self._args_to_config(config, argname='startup_candle',
logstring='Startup candle to be used on recursive analysis: {}')
for argname, logstring in configurations:
self._args_to_config(config, argname=argname, logstring=logstring)
def _process_runmode(self, config: Config) -> None:
@@ -6,7 +6,7 @@ import logging
from typing import Optional
from freqtrade.constants import Config
from freqtrade.exceptions import OperationalException
from freqtrade.exceptions import ConfigurationError, OperationalException
logger = logging.getLogger(__name__)
@@ -41,7 +41,7 @@ def process_removed_setting(config: Config,
section1_config = config.get(section1, {})
if name1 in section1_config:
section_2 = f"{section2}.{name2}" if section2 else f"{name2}"
raise OperationalException(
raise ConfigurationError(
f"Setting `{section1}.{name1}` has been moved to `{section_2}. "
f"Please delete it from your configuration and use the `{section_2}` "
"setting instead."
@@ -122,7 +122,7 @@ def process_temporary_deprecated_settings(config: Config) -> None:
None, 'ignore_roi_if_entry_signal')
if (config.get('edge', {}).get('enabled', False)
and 'capital_available_percentage' in config.get('edge', {})):
raise OperationalException(
raise ConfigurationError(
"DEPRECATED: "
"Using 'edge.capital_available_percentage' has been deprecated in favor of "
"'tradable_balance_ratio'. Please migrate your configuration to "
@@ -131,7 +131,7 @@ def process_temporary_deprecated_settings(config: Config) -> None:
)
if 'ticker_interval' in config:
raise OperationalException(
raise ConfigurationError(
"DEPRECATED: 'ticker_interval' detected. "
"Please use 'timeframe' instead of 'ticker_interval."
)
+4 -4
View File
@@ -9,7 +9,7 @@ from freqtrade.misc import deep_merge_dicts
logger = logging.getLogger(__name__)
def get_var_typed(val):
def _get_var_typed(val):
try:
return int(val)
except ValueError:
@@ -24,7 +24,7 @@ def get_var_typed(val):
return val
def flat_vars_to_nested_dict(env_dict: Dict[str, Any], prefix: str) -> Dict[str, Any]:
def _flat_vars_to_nested_dict(env_dict: Dict[str, Any], prefix: str) -> Dict[str, Any]:
"""
Environment variables must be prefixed with FREQTRADE.
FREQTRADE__{section}__{key}
@@ -40,7 +40,7 @@ def flat_vars_to_nested_dict(env_dict: Dict[str, Any], prefix: str) -> Dict[str,
logger.info(f"Loading variable '{env_var}'")
key = env_var.replace(prefix, '')
for k in reversed(key.split('__')):
val = {k.lower(): get_var_typed(val)
val = {k.lower(): _get_var_typed(val)
if not isinstance(val, dict) and k not in no_convert else val}
relevant_vars = deep_merge_dicts(val, relevant_vars)
return relevant_vars
@@ -52,4 +52,4 @@ def enironment_vars_to_dict() -> Dict[str, Any]:
Relevant variables must follow the FREQTRADE__{section}__{key} pattern
:return: Nested dict based on available and relevant variables.
"""
return flat_vars_to_nested_dict(os.environ.copy(), ENV_VAR_PREFIX)
return _flat_vars_to_nested_dict(os.environ.copy(), ENV_VAR_PREFIX)
+5 -5
View File
@@ -11,7 +11,7 @@ from typing import Any, Dict, List, Optional
import rapidjson
from freqtrade.constants import MINIMAL_CONFIG, Config
from freqtrade.exceptions import OperationalException
from freqtrade.exceptions import ConfigurationError, OperationalException
from freqtrade.misc import deep_merge_dicts
@@ -46,7 +46,7 @@ def load_file(path: Path) -> Dict[str, Any]:
with path.open('r') as file:
config = rapidjson.load(file, parse_mode=CONFIG_PARSE_MODE)
except FileNotFoundError:
raise OperationalException(f'File "{path}" not found!')
raise OperationalException(f'File "{path}" not found!') from None
return config
@@ -63,10 +63,10 @@ def load_config_file(path: str) -> Dict[str, Any]:
except FileNotFoundError:
raise OperationalException(
f'Config file "{path}" not found!'
' Please create a config file or check whether it exists.')
' Please create a config file or check whether it exists.') from None
except rapidjson.JSONDecodeError as e:
err_range = log_config_error_range(path, str(e))
raise OperationalException(
raise ConfigurationError(
f'{e}\n'
f'Please verify the following segment of your configuration:\n{err_range}'
if err_range else 'Please verify your configuration file for syntax errors.'
@@ -83,7 +83,7 @@ def load_from_files(
"""
config: Config = {}
if level > 5:
raise OperationalException("Config loop detected.")
raise ConfigurationError("Config loop detected.")
if not files:
return deepcopy(MINIMAL_CONFIG)
+3 -3
View File
@@ -9,7 +9,7 @@ from typing import Optional
from typing_extensions import Self
from freqtrade.constants import DATETIME_PRINT_FORMAT
from freqtrade.exceptions import OperationalException
from freqtrade.exceptions import ConfigurationError
logger = logging.getLogger(__name__)
@@ -156,7 +156,7 @@ class TimeRange:
else:
stop = int(stops)
if start > stop > 0:
raise OperationalException(
raise ConfigurationError(
f'Start date is after stop date for timerange "{text}"')
return cls(stype[0], stype[1], start, stop)
raise OperationalException(f'Incorrect syntax for timerange "{text}"')
raise ConfigurationError(f'Incorrect syntax for timerange "{text}"')
+5 -4
View File
@@ -33,9 +33,10 @@ HYPEROPT_LOSS_BUILTIN = ['ShortTradeDurHyperOptLoss', 'OnlyProfitHyperOptLoss',
'MaxDrawDownHyperOptLoss', 'MaxDrawDownRelativeHyperOptLoss',
'ProfitDrawDownHyperOptLoss']
AVAILABLE_PAIRLISTS = ['StaticPairList', 'VolumePairList', 'ProducerPairList', 'RemotePairList',
'AgeFilter', "FullTradesFilter", 'OffsetFilter', 'PerformanceFilter',
'PrecisionFilter', 'PriceFilter', 'RangeStabilityFilter',
'ShuffleFilter', 'SpreadFilter', 'VolatilityFilter']
'MarketCapPairList', 'AgeFilter', "FullTradesFilter", 'OffsetFilter',
'PerformanceFilter', 'PrecisionFilter', 'PriceFilter',
'RangeStabilityFilter', 'ShuffleFilter', 'SpreadFilter',
'VolatilityFilter']
AVAILABLE_PROTECTIONS = ['CooldownPeriod',
'LowProfitPairs', 'MaxDrawdown', 'StoplossGuard']
AVAILABLE_DATAHANDLERS = ['json', 'jsongz', 'hdf5', 'feather', 'parquet']
@@ -105,7 +106,7 @@ SUPPORTED_FIAT = [
"EUR", "GBP", "HKD", "HUF", "IDR", "ILS", "INR", "JPY",
"KRW", "MXN", "MYR", "NOK", "NZD", "PHP", "PKR", "PLN",
"RUB", "UAH", "SEK", "SGD", "THB", "TRY", "TWD", "ZAR",
"USD", "BTC", "ETH", "XRP", "LTC", "BCH"
"USD", "BTC", "ETH", "XRP", "LTC", "BCH", "BNB"
]
MINIMAL_CONFIG = {
+29 -22
View File
@@ -11,7 +11,7 @@ import numpy as np
import pandas as pd
from freqtrade.constants import LAST_BT_RESULT_FN, IntOrInf
from freqtrade.exceptions import OperationalException
from freqtrade.exceptions import ConfigurationError, OperationalException
from freqtrade.misc import file_dump_json, json_load
from freqtrade.optimize.backtest_caching import get_backtest_metadata_filename
from freqtrade.persistence import LocalTrade, Trade, init_db
@@ -106,7 +106,7 @@ def get_latest_hyperopt_file(
directory = Path(directory)
if predef_filename:
if Path(predef_filename).is_absolute():
raise OperationalException(
raise ConfigurationError(
"--hyperopt-filename expects only the filename, not an absolute path.")
return directory / predef_filename
return directory / get_latest_hyperopt_filename(directory)
@@ -175,36 +175,40 @@ def _get_backtest_files(dirname: Path) -> List[Path]:
return list(reversed(sorted(dirname.glob('backtest-result-*-[0-9][0-9].json'))))
def get_backtest_result(filename: Path) -> List[BacktestHistoryEntryType]:
"""
Get backtest result read from metadata file
"""
def _extract_backtest_result(filename: Path) -> List[BacktestHistoryEntryType]:
metadata = load_backtest_metadata(filename)
return [
{
'filename': filename.stem,
'strategy': s,
'notes': v.get('notes', ''),
'run_id': v['run_id'],
'notes': v.get('notes', ''),
# Backtest "run" time
'backtest_start_time': v['backtest_start_time'],
} for s, v in load_backtest_metadata(filename).items()
# Backtest timerange
'backtest_start_ts': v.get('backtest_start_ts', None),
'backtest_end_ts': v.get('backtest_end_ts', None),
'timeframe': v.get('timeframe', None),
'timeframe_detail': v.get('timeframe_detail', None),
} for s, v in metadata.items()
]
def get_backtest_result(filename: Path) -> List[BacktestHistoryEntryType]:
"""
Get backtest result read from metadata file
"""
return _extract_backtest_result(filename)
def get_backtest_resultlist(dirname: Path) -> List[BacktestHistoryEntryType]:
"""
Get list of backtest results read from metadata files
"""
return [
{
'filename': filename.stem,
'strategy': s,
'run_id': v['run_id'],
'notes': v.get('notes', ''),
'backtest_start_time': v['backtest_start_time'],
}
result
for filename in _get_backtest_files(dirname)
for s, v in load_backtest_metadata(filename).items()
if v
for result in _extract_backtest_result(filename)
]
@@ -326,7 +330,10 @@ def load_backtest_data(filename: Union[Path, str], strategy: Optional[str] = Non
"Please specify a strategy.")
if strategy not in data['strategy']:
raise ValueError(f"Strategy {strategy} not available in the backtest result.")
raise ValueError(
f"Strategy {strategy} not available in the backtest result. "
f"Available strategies are '{','.join(data['strategy'].keys())}'"
)
data = data['strategy'][strategy]['trades']
df = pd.DataFrame(data)
@@ -350,10 +357,10 @@ def analyze_trade_parallelism(results: pd.DataFrame, timeframe: str) -> pd.DataF
:param timeframe: Timeframe used for backtest
:return: dataframe with open-counts per time-period in timeframe
"""
from freqtrade.exchange import timeframe_to_minutes
timeframe_min = timeframe_to_minutes(timeframe)
from freqtrade.exchange import timeframe_to_resample_freq
timeframe_freq = timeframe_to_resample_freq(timeframe)
dates = [pd.Series(pd.date_range(row[1]['open_date'], row[1]['close_date'],
freq=f"{timeframe_min}min"))
freq=timeframe_freq))
for row in results[['open_date', 'close_date']].iterrows()]
deltas = [len(x) for x in dates]
dates = pd.Series(pd.concat(dates).values, name='date')
@@ -361,7 +368,7 @@ def analyze_trade_parallelism(results: pd.DataFrame, timeframe: str) -> pd.DataF
df2 = pd.concat([dates, df2], axis=1)
df2 = df2.set_index('date')
df_final = df2.resample(f"{timeframe_min}min")[['pair']].count()
df_final = df2.resample(timeframe_freq)[['pair']].count()
df_final = df_final.rename({'pair': 'open_trades'}, axis=1)
return df_final
+5 -11
View File
@@ -84,7 +84,7 @@ def ohlcv_fill_up_missing_data(dataframe: DataFrame, timeframe: str, pair: str)
using the previous close as price for "open", "high" "low" and "close", volume is set to 0
"""
from freqtrade.exchange import timeframe_to_minutes
from freqtrade.exchange import timeframe_to_resample_freq
ohlcv_dict = {
'open': 'first',
@@ -93,13 +93,7 @@ def ohlcv_fill_up_missing_data(dataframe: DataFrame, timeframe: str, pair: str)
'close': 'last',
'volume': 'sum'
}
timeframe_minutes = timeframe_to_minutes(timeframe)
resample_interval = f'{timeframe_minutes}min'
if timeframe_minutes >= 43200 and timeframe_minutes < 525600:
# Monthly candles need special treatment to stick to the 1st of the month
resample_interval = f'{timeframe}S'
elif timeframe_minutes > 43200:
resample_interval = timeframe
resample_interval = timeframe_to_resample_freq(timeframe)
# Resample to create "NAN" values
df = dataframe.resample(resample_interval, on='date').agg(ohlcv_dict)
@@ -116,8 +110,8 @@ def ohlcv_fill_up_missing_data(dataframe: DataFrame, timeframe: str, pair: str)
len_after = len(df)
pct_missing = (len_after - len_before) / len_before if len_before > 0 else 0
if len_before != len_after:
message = (f"Missing data fillup for {pair}: before: {len_before} - after: {len_after}"
f" - {pct_missing:.2%}")
message = (f"Missing data fillup for {pair}, {timeframe}: "
f"before: {len_before} - after: {len_after} - {pct_missing:.2%}")
if pct_missing > 0.01:
logger.info(message)
else:
@@ -206,7 +200,7 @@ def convert_ohlcv_format(
:param convert_to: Target format
:param erase: Erase source data (does not apply if source and target format are identical)
"""
from freqtrade.data.history.idatahandler import get_datahandler
from freqtrade.data.history import get_datahandler
src = get_datahandler(config['datadir'], convert_from)
trg = get_datahandler(config['datadir'], convert_to)
timeframes = config.get('timeframes', [config.get('timeframe')])
+30 -21
View File
@@ -11,7 +11,8 @@ from pandas import DataFrame, to_datetime
from freqtrade.configuration import TimeRange
from freqtrade.constants import (DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS, TRADES_DTYPES,
Config, TradeList)
from freqtrade.enums import CandleType
from freqtrade.enums import CandleType, TradingMode
from freqtrade.exceptions import OperationalException
logger = logging.getLogger(__name__)
@@ -69,14 +70,13 @@ def trades_to_ohlcv(trades: DataFrame, timeframe: str) -> DataFrame:
:return: OHLCV Dataframe.
:raises: ValueError if no trades are provided
"""
from freqtrade.exchange import timeframe_to_minutes
timeframe_minutes = timeframe_to_minutes(timeframe)
from freqtrade.exchange import timeframe_to_resample_freq
if trades.empty:
raise ValueError('Trade-list empty.')
df = trades.set_index('date', drop=True)
df_new = df['price'].resample(f'{timeframe_minutes}min').ohlc()
df_new['volume'] = df['amount'].resample(f'{timeframe_minutes}min').sum()
resample_interval = timeframe_to_resample_freq(timeframe)
df_new = df['price'].resample(resample_interval).ohlc()
df_new['volume'] = df['amount'].resample(resample_interval).sum()
df_new['date'] = df_new.index
# Drop 0 volume rows
df_new = df_new.dropna()
@@ -88,25 +88,23 @@ def convert_trades_to_ohlcv(
timeframes: List[str],
datadir: Path,
timerange: TimeRange,
erase: bool = False,
data_format_ohlcv: str = 'feather',
data_format_trades: str = 'feather',
candle_type: CandleType = CandleType.SPOT
erase: bool,
data_format_ohlcv: str,
data_format_trades: str,
candle_type: CandleType,
) -> None:
"""
Convert stored trades data to ohlcv data
"""
from freqtrade.data.history.idatahandler import get_datahandler
from freqtrade.data.history import get_datahandler
data_handler_trades = get_datahandler(datadir, data_format=data_format_trades)
data_handler_ohlcv = get_datahandler(datadir, data_format=data_format_ohlcv)
if not pairs:
pairs = data_handler_trades.trades_get_pairs(datadir)
logger.info(f"About to convert pairs: '{', '.join(pairs)}', "
f"intervals: '{', '.join(timeframes)}' to {datadir}")
trading_mode = TradingMode.FUTURES if candle_type != CandleType.SPOT else TradingMode.SPOT
for pair in pairs:
trades = data_handler_trades.trades_load(pair)
trades = data_handler_trades.trades_load(pair, trading_mode)
for timeframe in timeframes:
if erase:
if data_handler_ohlcv.ohlcv_purge(pair, timeframe, candle_type=candle_type):
@@ -116,7 +114,7 @@ def convert_trades_to_ohlcv(
# Store ohlcv
data_handler_ohlcv.ohlcv_store(pair, timeframe, data=ohlcv, candle_type=candle_type)
except ValueError:
logger.exception(f'Could not convert {pair} to OHLCV.')
logger.warning(f'Could not convert {pair} to OHLCV.')
def convert_trades_format(config: Config, convert_from: str, convert_to: str, erase: bool):
@@ -127,18 +125,29 @@ def convert_trades_format(config: Config, convert_from: str, convert_to: str, er
:param convert_to: Target format
:param erase: Erase source data (does not apply if source and target format are identical)
"""
from freqtrade.data.history.idatahandler import get_datahandler
if convert_from == 'kraken_csv':
if config['exchange']['name'] != 'kraken':
raise OperationalException(
'Converting from csv is only supported for kraken.'
'Please refer to the documentation for details about this special mode.'
)
from freqtrade.data.converter.trade_converter_kraken import import_kraken_trades_from_csv
import_kraken_trades_from_csv(config, convert_to)
return
from freqtrade.data.history import get_datahandler
src = get_datahandler(config['datadir'], convert_from)
trg = get_datahandler(config['datadir'], convert_to)
if 'pairs' not in config:
config['pairs'] = src.trades_get_pairs(config['datadir'])
logger.info(f"Converting trades for {config['pairs']}")
trading_mode: TradingMode = config.get('trading_mode', TradingMode.SPOT)
for pair in config['pairs']:
data = src.trades_load(pair=pair)
data = src.trades_load(pair, trading_mode)
logger.info(f"Converting {len(data)} trades for {pair}")
trg.trades_store(pair, data)
trg.trades_store(pair, data, trading_mode)
if erase and convert_from != convert_to:
logger.info(f"Deleting source Trade data for {pair}.")
src.trades_purge(pair=pair)
src.trades_purge(pair, trading_mode)
@@ -0,0 +1,83 @@
import logging
from pathlib import Path
import pandas as pd
from freqtrade.constants import DATETIME_PRINT_FORMAT, DEFAULT_TRADES_COLUMNS, Config
from freqtrade.data.converter.trade_converter import (trades_convert_types,
trades_df_remove_duplicates)
from freqtrade.data.history import get_datahandler
from freqtrade.enums import TradingMode
from freqtrade.exceptions import OperationalException
from freqtrade.plugins.pairlist.pairlist_helpers import expand_pairlist
from freqtrade.resolvers import ExchangeResolver
logger = logging.getLogger(__name__)
KRAKEN_CSV_TRADE_COLUMNS = ['timestamp', 'price', 'amount']
def import_kraken_trades_from_csv(config: Config, convert_to: str):
"""
Import kraken trades from csv
"""
if config['exchange']['name'] != 'kraken':
raise OperationalException('This function is only for the kraken exchange.')
datadir: Path = config['datadir']
data_handler = get_datahandler(datadir, data_format=convert_to)
tradesdir: Path = config['datadir'] / 'trades_csv'
exchange = ExchangeResolver.load_exchange(config, validate=False)
# iterate through directories in this directory
data_symbols = {p.stem for p in tradesdir.rglob('*.csv')}
# create pair/filename mapping
markets = {
(m['symbol'], m['altname']) for m in exchange.markets.values()
if m.get('altname') in data_symbols
}
logger.info(f"Found csv files for {', '.join(data_symbols)}.")
if pairs_raw := config.get('pairs'):
pairs = expand_pairlist(pairs_raw, [m[0] for m in markets])
markets = {m for m in markets if m[0] in pairs}
if not markets:
logger.info(f"No data found for pairs {', '.join(pairs_raw)}.")
return
logger.info(f"Converting pairs: {', '.join(m[0] for m in markets)}.")
for pair, name in markets:
logger.debug(f"Converting pair {pair}, files */{name}.csv")
dfs = []
# Load and combine all csv files for this pair
for f in tradesdir.rglob(f"{name}.csv"):
df = pd.read_csv(f, names=KRAKEN_CSV_TRADE_COLUMNS)
if not df.empty:
dfs.append(df)
# Load existing trades data
if not dfs:
# edgecase, can only happen if the file was deleted between the above glob and here
logger.info(f"No data found for pair {pair}")
continue
trades = pd.concat(dfs, ignore_index=True)
del dfs
trades.loc[:, 'timestamp'] = trades['timestamp'] * 1e3
trades.loc[:, 'cost'] = trades['price'] * trades['amount']
for col in DEFAULT_TRADES_COLUMNS:
if col not in trades.columns:
trades.loc[:, col] = ''
trades = trades[DEFAULT_TRADES_COLUMNS]
trades = trades_convert_types(trades)
trades_df = trades_df_remove_duplicates(trades)
del trades
logger.info(f"{pair}: {len(trades_df)} trades, from "
f"{trades_df['date'].min():{DATETIME_PRINT_FORMAT}} to "
f"{trades_df['date'].max():{DATETIME_PRINT_FORMAT}}")
data_handler.trades_store(pair, trades_df, TradingMode.SPOT)
+10 -9
View File
@@ -311,11 +311,13 @@ class DataProvider:
timerange = TimeRange.parse_timerange(None if self._config.get(
'timerange') is None else str(self._config.get('timerange')))
# It is not necessary to add the training candles, as they
# were already added at the beginning of the backtest.
startup_candles = self.get_required_startup(str(timeframe), False)
startup_candles = self.get_required_startup(str(timeframe))
tf_seconds = timeframe_to_seconds(str(timeframe))
timerange.subtract_start(tf_seconds * startup_candles)
logger.info(f"Loading data for {pair} {timeframe} "
f"from {timerange.start_fmt} to {timerange.stop_fmt}")
self.__cached_pairs_backtesting[saved_pair] = load_pair_history(
pair=pair,
timeframe=timeframe,
@@ -327,7 +329,7 @@ class DataProvider:
)
return self.__cached_pairs_backtesting[saved_pair].copy()
def get_required_startup(self, timeframe: str, add_train_candles: bool = True) -> int:
def get_required_startup(self, timeframe: str) -> int:
freqai_config = self._config.get('freqai', {})
if not freqai_config.get('enabled', False):
return self._config.get('startup_candle_count', 0)
@@ -337,12 +339,11 @@ class DataProvider:
# make sure the startupcandles is at least the set maximum indicator periods
self._config['startup_candle_count'] = max(startup_candles, max(indicator_periods))
tf_seconds = timeframe_to_seconds(timeframe)
train_candles = 0
if add_train_candles:
train_candles = freqai_config['train_period_days'] * 86400 / tf_seconds
train_candles = freqai_config['train_period_days'] * 86400 / tf_seconds
total_candles = int(self._config['startup_candle_count'] + train_candles)
logger.info(f'Increasing startup_candle_count for freqai to {total_candles}')
return total_candles
logger.info(
f'Increasing startup_candle_count for freqai on {timeframe} to {total_candles}')
return total_candles
def get_pair_dataframe(
self,
+3 -2
View File
@@ -211,8 +211,9 @@ def prepare_results(analysed_trades, stratname,
timerange=None):
res_df = pd.DataFrame()
for pair, trades in analysed_trades[stratname].items():
trades.dropna(subset=['close_date'], inplace=True)
res_df = pd.concat([res_df, trades], ignore_index=True)
if (trades.shape[0] > 0):
trades.dropna(subset=['close_date'], inplace=True)
res_df = pd.concat([res_df, trades], ignore_index=True)
res_df = _select_rows_within_dates(res_df, timerange)
+1 -1
View File
@@ -6,7 +6,7 @@ Includes:
* download data from exchange and store to disk
"""
# flake8: noqa: F401
from .datahandlers import get_datahandler
from .history_utils import (convert_trades_to_ohlcv, download_data_main, get_timerange, load_data,
load_pair_history, refresh_backtest_ohlcv_data,
refresh_backtest_trades_data, refresh_data, validate_backtest_data)
from .idatahandler import get_datahandler
@@ -0,0 +1,2 @@
# flake8: noqa: F401
from .idatahandler import IDataHandler, get_datahandler
@@ -5,7 +5,7 @@ from pandas import DataFrame, read_feather, to_datetime
from freqtrade.configuration import TimeRange
from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS
from freqtrade.enums import CandleType
from freqtrade.enums import CandleType, TradingMode
from .idatahandler import IDataHandler
@@ -82,14 +82,15 @@ class FeatherDataHandler(IDataHandler):
"""
raise NotImplementedError()
def _trades_store(self, pair: str, data: DataFrame) -> None:
def _trades_store(self, pair: str, data: DataFrame, trading_mode: TradingMode) -> None:
"""
Store trades data (list of Dicts) to file
:param pair: Pair - used for filename
:param data: Dataframe containing trades
column sequence as in DEFAULT_TRADES_COLUMNS
:param trading_mode: Trading mode to use (used to determine the filename)
"""
filename = self._pair_trades_filename(self._datadir, pair)
filename = self._pair_trades_filename(self._datadir, pair, trading_mode)
self.create_dir_if_needed(filename)
data.reset_index(drop=True).to_feather(filename, compression_level=9, compression='lz4')
@@ -102,15 +103,18 @@ class FeatherDataHandler(IDataHandler):
"""
raise NotImplementedError()
def _trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> DataFrame:
def _trades_load(
self, pair: str, trading_mode: TradingMode, timerange: Optional[TimeRange] = None
) -> DataFrame:
"""
Load a pair from file, either .json.gz or .json
# TODO: respect timerange ...
:param pair: Load trades for this pair
:param trading_mode: Trading mode to use (used to determine the filename)
:param timerange: Timerange to load trades for - currently not implemented
:return: Dataframe containing trades
"""
filename = self._pair_trades_filename(self._datadir, pair)
filename = self._pair_trades_filename(self._datadir, pair, trading_mode)
if not filename.exists():
return DataFrame(columns=DEFAULT_TRADES_COLUMNS)
@@ -6,7 +6,7 @@ import pandas as pd
from freqtrade.configuration import TimeRange
from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS
from freqtrade.enums import CandleType
from freqtrade.enums import CandleType, TradingMode
from .idatahandler import IDataHandler
@@ -35,7 +35,7 @@ class HDF5DataHandler(IDataHandler):
self.create_dir_if_needed(filename)
_data.loc[:, self._columns].to_hdf(
filename, key, mode='a', complevel=9, complib='blosc',
filename, key=key, mode='a', complevel=9, complib='blosc',
format='table', data_columns=['date']
)
@@ -100,17 +100,18 @@ class HDF5DataHandler(IDataHandler):
"""
raise NotImplementedError()
def _trades_store(self, pair: str, data: pd.DataFrame) -> None:
def _trades_store(self, pair: str, data: pd.DataFrame, trading_mode: TradingMode) -> None:
"""
Store trades data (list of Dicts) to file
:param pair: Pair - used for filename
:param data: Dataframe containing trades
column sequence as in DEFAULT_TRADES_COLUMNS
:param trading_mode: Trading mode to use (used to determine the filename)
"""
key = self._pair_trades_key(pair)
data.to_hdf(
self._pair_trades_filename(self._datadir, pair), key,
self._pair_trades_filename(self._datadir, pair, trading_mode), key=key,
mode='a', complevel=9, complib='blosc',
format='table', data_columns=['timestamp']
)
@@ -124,15 +125,18 @@ class HDF5DataHandler(IDataHandler):
"""
raise NotImplementedError()
def _trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> pd.DataFrame:
def _trades_load(
self, pair: str, trading_mode: TradingMode, timerange: Optional[TimeRange] = None
) -> pd.DataFrame:
"""
Load a pair from h5 file.
:param pair: Load trades for this pair
:param trading_mode: Trading mode to use (used to determine the filename)
:param timerange: Timerange to load trades for - currently not implemented
:return: Dataframe containing trades
"""
key = self._pair_trades_key(pair)
filename = self._pair_trades_filename(self._datadir, pair)
filename = self._pair_trades_filename(self._datadir, pair, trading_mode)
if not filename.exists():
return pd.DataFrame(columns=DEFAULT_TRADES_COLUMNS)
@@ -94,21 +94,22 @@ class IDataHandler(ABC):
"""
def ohlcv_data_min_max(self, pair: str, timeframe: str,
candle_type: CandleType) -> Tuple[datetime, datetime]:
candle_type: CandleType) -> Tuple[datetime, datetime, int]:
"""
Returns the min and max timestamp for the given pair and timeframe.
:param pair: Pair to get min/max for
:param timeframe: Timeframe to get min/max for
:param candle_type: Any of the enum CandleType (must match trading mode!)
:return: (min, max)
:return: (min, max, len)
"""
data = self._ohlcv_load(pair, timeframe, None, candle_type)
if data.empty:
df = self._ohlcv_load(pair, timeframe, None, candle_type)
if df.empty:
return (
datetime.fromtimestamp(0, tz=timezone.utc),
datetime.fromtimestamp(0, tz=timezone.utc)
datetime.fromtimestamp(0, tz=timezone.utc),
0,
)
return data.iloc[0]['date'].to_pydatetime(), data.iloc[-1]['date'].to_pydatetime()
return df.iloc[0]['date'].to_pydatetime(), df.iloc[-1]['date'].to_pydatetime(), len(df)
@abstractmethod
def _ohlcv_load(self, pair: str, timeframe: str, timerange: Optional[TimeRange],
@@ -171,12 +172,13 @@ class IDataHandler(ABC):
return [cls.rebuild_pair_from_filename(match[0]) for match in _tmp if match]
@abstractmethod
def _trades_store(self, pair: str, data: DataFrame) -> None:
def _trades_store(self, pair: str, data: DataFrame, trading_mode: TradingMode) -> None:
"""
Store trades data (list of Dicts) to file
:param pair: Pair - used for filename
:param data: Dataframe containing trades
column sequence as in DEFAULT_TRADES_COLUMNS
:param trading_mode: Trading mode to use (used to determine the filename)
"""
@abstractmethod
@@ -189,45 +191,55 @@ class IDataHandler(ABC):
"""
@abstractmethod
def _trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> DataFrame:
def _trades_load(
self, pair: str, trading_mode: TradingMode, timerange: Optional[TimeRange] = None
) -> DataFrame:
"""
Load a pair from file, either .json.gz or .json
:param pair: Load trades for this pair
:param trading_mode: Trading mode to use (used to determine the filename)
:param timerange: Timerange to load trades for - currently not implemented
:return: Dataframe containing trades
"""
def trades_store(self, pair: str, data: DataFrame) -> None:
def trades_store(self, pair: str, data: DataFrame, trading_mode: TradingMode) -> None:
"""
Store trades data (list of Dicts) to file
:param pair: Pair - used for filename
:param data: Dataframe containing trades
column sequence as in DEFAULT_TRADES_COLUMNS
:param trading_mode: Trading mode to use (used to determine the filename)
"""
# Filter on expected columns (will remove the actual date column).
self._trades_store(pair, data[DEFAULT_TRADES_COLUMNS])
self._trades_store(pair, data[DEFAULT_TRADES_COLUMNS], trading_mode)
def trades_purge(self, pair: str) -> bool:
def trades_purge(self, pair: str, trading_mode: TradingMode) -> bool:
"""
Remove data for this pair
:param pair: Delete data for this pair.
:param trading_mode: Trading mode to use (used to determine the filename)
:return: True when deleted, false if file did not exist.
"""
filename = self._pair_trades_filename(self._datadir, pair)
filename = self._pair_trades_filename(self._datadir, pair, trading_mode)
if filename.exists():
filename.unlink()
return True
return False
def trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> DataFrame:
def trades_load(
self, pair: str, trading_mode: TradingMode, timerange: Optional[TimeRange] = None
) -> DataFrame:
"""
Load a pair from file, either .json.gz or .json
Removes duplicates in the process.
:param pair: Load trades for this pair
:param trading_mode: Trading mode to use (used to determine the filename)
:param timerange: Timerange to load trades for - currently not implemented
:return: List of trades
"""
trades = trades_df_remove_duplicates(self._trades_load(pair, timerange=timerange))
trades = trades_df_remove_duplicates(
self._trades_load(pair, trading_mode, timerange=timerange)
)
trades = trades_convert_types(trades)
return trades
@@ -263,8 +275,12 @@ class IDataHandler(ABC):
return filename
@classmethod
def _pair_trades_filename(cls, datadir: Path, pair: str) -> Path:
def _pair_trades_filename(cls, datadir: Path, pair: str, trading_mode: TradingMode) -> Path:
pair_s = misc.pair_to_filename(pair)
if trading_mode == TradingMode.FUTURES:
# Futures pair ...
datadir = datadir.joinpath('futures')
filename = datadir.joinpath(f'{pair_s}-trades.{cls._get_file_extension()}')
return filename
@@ -403,6 +419,34 @@ class IDataHandler(ABC):
return
file_old.rename(file_new)
def fix_funding_fee_timeframe(self, ff_timeframe: str):
"""
Temporary method to migrate data from old funding fee timeframe to the correct timeframe
Applies to bybit and okx, where funding-fee and mark candles have different timeframes.
"""
paircombs = self.ohlcv_get_available_data(self._datadir, TradingMode.FUTURES)
funding_rate_combs = [
f for f in paircombs if f[2] == CandleType.FUNDING_RATE and f[1] != ff_timeframe
]
if funding_rate_combs:
logger.warning(
f'Migrating {len(funding_rate_combs)} funding fees to correct timeframe.')
for pair, timeframe, candletype in funding_rate_combs:
old_name = self._pair_data_filename(self._datadir, pair, timeframe, candletype)
new_name = self._pair_data_filename(self._datadir, pair, ff_timeframe, candletype)
if not Path(old_name).exists():
logger.warning(f'{old_name} does not exist, skipping.')
continue
if Path(new_name).exists():
logger.warning(f'{new_name} already exists, Removing.')
Path(new_name).unlink()
Path(old_name).rename(new_name)
def get_datahandlerclass(datatype: str) -> Type[IDataHandler]:
"""
@@ -8,7 +8,7 @@ from freqtrade import misc
from freqtrade.configuration import TimeRange
from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS
from freqtrade.data.converter import trades_dict_to_list, trades_list_to_df
from freqtrade.enums import CandleType
from freqtrade.enums import CandleType, TradingMode
from .idatahandler import IDataHandler
@@ -37,7 +37,7 @@ class JsonDataHandler(IDataHandler):
self.create_dir_if_needed(filename)
_data = data.copy()
# Convert date to int
_data['date'] = _data['date'].view(np.int64) // 1000 // 1000
_data['date'] = _data['date'].astype(np.int64) // 1000 // 1000
# Reset index, select only appropriate columns and save as json
_data.reset_index(drop=True).loc[:, self._columns].to_json(
@@ -94,14 +94,15 @@ class JsonDataHandler(IDataHandler):
"""
raise NotImplementedError()
def _trades_store(self, pair: str, data: DataFrame) -> None:
def _trades_store(self, pair: str, data: DataFrame, trading_mode: TradingMode) -> None:
"""
Store trades data (list of Dicts) to file
:param pair: Pair - used for filename
:param data: Dataframe containing trades
column sequence as in DEFAULT_TRADES_COLUMNS
:param trading_mode: Trading mode to use (used to determine the filename)
"""
filename = self._pair_trades_filename(self._datadir, pair)
filename = self._pair_trades_filename(self._datadir, pair, trading_mode)
trades = data.values.tolist()
misc.file_dump_json(filename, trades, is_zip=self._use_zip)
@@ -114,15 +115,18 @@ class JsonDataHandler(IDataHandler):
"""
raise NotImplementedError()
def _trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> DataFrame:
def _trades_load(
self, pair: str, trading_mode: TradingMode, timerange: Optional[TimeRange] = None
) -> DataFrame:
"""
Load a pair from file, either .json.gz or .json
# TODO: respect timerange ...
:param pair: Load trades for this pair
:param trading_mode: Trading mode to use (used to determine the filename)
:param timerange: Timerange to load trades for - currently not implemented
:return: Dataframe containing trades
"""
filename = self._pair_trades_filename(self._datadir, pair)
filename = self._pair_trades_filename(self._datadir, pair, trading_mode)
tradesdata = misc.file_load_json(filename)
if not tradesdata:
@@ -4,8 +4,8 @@ from typing import Optional
from pandas import DataFrame, read_parquet, to_datetime
from freqtrade.configuration import TimeRange
from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS, TradeList
from freqtrade.enums import CandleType
from freqtrade.constants import DEFAULT_DATAFRAME_COLUMNS, DEFAULT_TRADES_COLUMNS
from freqtrade.enums import CandleType, TradingMode
from .idatahandler import IDataHandler
@@ -81,14 +81,15 @@ class ParquetDataHandler(IDataHandler):
"""
raise NotImplementedError()
def _trades_store(self, pair: str, data: DataFrame) -> None:
def _trades_store(self, pair: str, data: DataFrame, trading_mode: TradingMode) -> None:
"""
Store trades data (list of Dicts) to file
:param pair: Pair - used for filename
:param data: Dataframe containing trades
column sequence as in DEFAULT_TRADES_COLUMNS
:param trading_mode: Trading mode to use (used to determine the filename)
"""
filename = self._pair_trades_filename(self._datadir, pair)
filename = self._pair_trades_filename(self._datadir, pair, trading_mode)
self.create_dir_if_needed(filename)
data.reset_index(drop=True).to_parquet(filename)
@@ -101,15 +102,18 @@ class ParquetDataHandler(IDataHandler):
"""
raise NotImplementedError()
def _trades_load(self, pair: str, timerange: Optional[TimeRange] = None) -> TradeList:
def _trades_load(
self, pair: str, trading_mode: TradingMode, timerange: Optional[TimeRange] = None
) -> DataFrame:
"""
Load a pair from file, either .json.gz or .json
# TODO: respect timerange ...
:param pair: Load trades for this pair
:param trading_mode: Trading mode to use (used to determine the filename)
:param timerange: Timerange to load trades for - currently not implemented
:return: List of trades
"""
filename = self._pair_trades_filename(self._datadir, pair)
filename = self._pair_trades_filename(self._datadir, pair, trading_mode)
if not filename.exists():
return DataFrame(columns=DEFAULT_TRADES_COLUMNS)
+33 -18
View File
@@ -8,18 +8,18 @@ from pandas import DataFrame, concat
from freqtrade.configuration import TimeRange
from freqtrade.constants import (DATETIME_PRINT_FORMAT, DEFAULT_DATAFRAME_COLUMNS,
DL_DATA_TIMEFRAMES, Config)
DL_DATA_TIMEFRAMES, DOCS_LINK, Config)
from freqtrade.data.converter import (clean_ohlcv_dataframe, convert_trades_to_ohlcv,
ohlcv_to_dataframe, trades_df_remove_duplicates,
trades_list_to_df)
from freqtrade.data.history.idatahandler import IDataHandler, get_datahandler
from freqtrade.enums import CandleType
from freqtrade.data.history.datahandlers import IDataHandler, get_datahandler
from freqtrade.enums import CandleType, TradingMode
from freqtrade.exceptions import OperationalException
from freqtrade.exchange import Exchange
from freqtrade.plugins.pairlist.pairlist_helpers import dynamic_expand_pairlist
from freqtrade.util import dt_ts, format_ms_time
from freqtrade.util.binance_mig import migrate_binance_futures_data
from freqtrade.util.datetime_helpers import dt_now
from freqtrade.util.migrations import migrate_data
logger = logging.getLogger(__name__)
@@ -311,15 +311,19 @@ def refresh_backtest_ohlcv_data(exchange: Exchange, pairs: List[str], timeframes
# Predefined candletype (and timeframe) depending on exchange
# Downloads what is necessary to backtest based on futures data.
tf_mark = exchange.get_option('mark_ohlcv_timeframe')
tf_funding_rate = exchange.get_option('funding_fee_timeframe')
fr_candle_type = CandleType.from_string(exchange.get_option('mark_ohlcv_price'))
# All exchanges need FundingRate for futures trading.
# The timeframe is aligned to the mark-price timeframe.
for funding_candle_type in (CandleType.FUNDING_RATE, fr_candle_type):
combs = ((CandleType.FUNDING_RATE, tf_funding_rate), (fr_candle_type, tf_mark))
for candle_type_f, tf in combs:
logger.debug(f'Downloading pair {pair}, {candle_type_f}, interval {tf}.')
_download_pair_history(pair=pair, process=process,
datadir=datadir, exchange=exchange,
timerange=timerange, data_handler=data_handler,
timeframe=str(tf_mark), new_pairs_days=new_pairs_days,
candle_type=funding_candle_type,
timeframe=str(tf), new_pairs_days=new_pairs_days,
candle_type=candle_type_f,
erase=erase, prepend=prepend)
return pairs_not_available
@@ -329,7 +333,8 @@ def _download_trades_history(exchange: Exchange,
pair: str, *,
new_pairs_days: int = 30,
timerange: Optional[TimeRange] = None,
data_handler: IDataHandler
data_handler: IDataHandler,
trading_mode: TradingMode,
) -> bool:
"""
Download trade history from the exchange.
@@ -345,7 +350,7 @@ def _download_trades_history(exchange: Exchange,
if timerange.stoptype == 'date':
until = timerange.stopts * 1000
trades = data_handler.trades_load(pair)
trades = data_handler.trades_load(pair, trading_mode)
# TradesList columns are defined in constants.DEFAULT_TRADES_COLUMNS
# DEFAULT_TRADES_COLUMNS: 0 -> timestamp
@@ -384,7 +389,7 @@ def _download_trades_history(exchange: Exchange,
trades = concat([trades, new_trades_df], axis=0)
# Remove duplicates to make sure we're not storing data we don't need
trades = trades_df_remove_duplicates(trades)
data_handler.trades_store(pair, data=trades)
data_handler.trades_store(pair, trades, trading_mode)
logger.debug("New Start: %s", 'None' if trades.empty else
f"{trades.iloc[0]['date']:{DATETIME_PRINT_FORMAT}}")
@@ -401,8 +406,10 @@ def _download_trades_history(exchange: Exchange,
def refresh_backtest_trades_data(exchange: Exchange, pairs: List[str], datadir: Path,
timerange: TimeRange, new_pairs_days: int = 30,
erase: bool = False, data_format: str = 'feather') -> List[str]:
timerange: TimeRange, trading_mode: TradingMode,
new_pairs_days: int = 30,
erase: bool = False, data_format: str = 'feather',
) -> List[str]:
"""
Refresh stored trades data for backtesting and hyperopt operations.
Used by freqtrade download-data subcommand.
@@ -417,7 +424,7 @@ def refresh_backtest_trades_data(exchange: Exchange, pairs: List[str], datadir:
continue
if erase:
if data_handler.trades_purge(pair):
if data_handler.trades_purge(pair, trading_mode):
logger.info(f'Deleting existing data for pair {pair}.')
logger.info(f'Downloading trades for pair {pair}.')
@@ -425,7 +432,8 @@ def refresh_backtest_trades_data(exchange: Exchange, pairs: List[str], datadir:
pair=pair,
new_pairs_days=new_pairs_days,
timerange=timerange,
data_handler=data_handler)
data_handler=data_handler,
trading_mode=trading_mode)
return pairs_not_available
@@ -500,18 +508,24 @@ def download_data_main(config: Config) -> None:
logger.info(f"About to download pairs: {expanded_pairs}, "
f"intervals: {config['timeframes']} to {config['datadir']}")
if len(expanded_pairs) == 0:
logger.warning(
"No pairs available for download. "
"Please make sure you're using the correct Pair naming for your selected trade mode. \n"
f"More info: {DOCS_LINK}/bot-basics/#pair-naming")
for timeframe in config['timeframes']:
exchange.validate_timeframes(timeframe)
# Start downloading
try:
if config.get('download_trades'):
if config.get('trading_mode') == 'futures':
raise OperationalException("Trade download not supported for futures.")
pairs_not_available = refresh_backtest_trades_data(
exchange, pairs=expanded_pairs, datadir=config['datadir'],
timerange=timerange, new_pairs_days=config['new_pairs_days'],
erase=bool(config.get('erase')), data_format=config['dataformat_trades'])
erase=bool(config.get('erase')), data_format=config['dataformat_trades'],
trading_mode=config.get('trading_mode', TradingMode.SPOT),
)
# Convert downloaded trade data to different timeframes
convert_trades_to_ohlcv(
@@ -519,6 +533,7 @@ def download_data_main(config: Config) -> None:
datadir=config['datadir'], timerange=timerange, erase=bool(config.get('erase')),
data_format_ohlcv=config['dataformat_ohlcv'],
data_format_trades=config['dataformat_trades'],
candle_type=config.get('candle_type_def', CandleType.SPOT),
)
else:
if not exchange.get_option('ohlcv_has_history', True):
@@ -527,7 +542,7 @@ def download_data_main(config: Config) -> None:
"Please use `--dl-trades` instead for this exchange "
"(will unfortunately take a long time)."
)
migrate_binance_futures_data(config)
migrate_data(config, exchange)
pairs_not_available = refresh_backtest_ohlcv_data(
exchange, pairs=expanded_pairs, timeframes=config['timeframes'],
datadir=config['datadir'], timerange=timerange,
+10 -5
View File
@@ -61,10 +61,10 @@ def create_cum_profit(df: pd.DataFrame, trades: pd.DataFrame, col_name: str,
"""
if len(trades) == 0:
raise ValueError("Trade dataframe empty.")
from freqtrade.exchange import timeframe_to_minutes
timeframe_minutes = timeframe_to_minutes(timeframe)
from freqtrade.exchange import timeframe_to_resample_freq
timeframe_freq = timeframe_to_resample_freq(timeframe)
# Resample to timeframe to make sure trades match candles
_trades_sum = trades.resample(f'{timeframe_minutes}min', on='close_date'
_trades_sum = trades.resample(timeframe_freq, on='close_date'
)[['profit_abs']].sum()
df.loc[:, col_name] = _trades_sum['profit_abs'].cumsum()
# Set first value to 0
@@ -143,8 +143,10 @@ def calculate_max_drawdown(trades: pd.DataFrame, *, date_col: str = 'close_date'
starting_balance=starting_balance
)
idxmin = max_drawdown_df['drawdown_relative'].idxmax() if relative \
else max_drawdown_df['drawdown'].idxmin()
idxmin = (
max_drawdown_df['drawdown_relative'].idxmax()
if relative else max_drawdown_df['drawdown'].idxmin()
)
if idxmin == 0:
raise ValueError("No losing trade, therefore no drawdown.")
high_date = profit_results.loc[max_drawdown_df.iloc[:idxmin]['high_value'].idxmax(), date_col]
@@ -191,6 +193,9 @@ def calculate_cagr(days_passed: int, starting_balance: float, final_balance: flo
:param final_balance: Final balance to calculate CAGR against
:return: CAGR
"""
if final_balance < 0:
# With leveraged trades, final_balance can become negative.
return 0
return (final_balance / starting_balance) ** (1 / (days_passed / 365)) - 1
+6
View File
@@ -12,6 +12,12 @@ class OperationalException(FreqtradeException):
"""
class ConfigurationError(OperationalException):
"""
Configuration error. Usually caused by invalid configuration.
"""
class DependencyException(FreqtradeException):
"""
Indicates that an assumed dependency is not met.
+8 -5
View File
@@ -4,8 +4,8 @@ from freqtrade.exchange.common import remove_exchange_credentials, MAP_EXCHANGE_
from freqtrade.exchange.exchange import Exchange
# isort: on
from freqtrade.exchange.binance import Binance
from freqtrade.exchange.bitmart import Bitmart
from freqtrade.exchange.bitpanda import Bitpanda
from freqtrade.exchange.bittrex import Bittrex
from freqtrade.exchange.bitvavo import Bitvavo
from freqtrade.exchange.bybit import Bybit
from freqtrade.exchange.coinbasepro import Coinbasepro
@@ -15,12 +15,15 @@ from freqtrade.exchange.exchange_utils import (ROUND_DOWN, ROUND_UP, amount_to_c
contracts_to_amount, date_minus_candles,
is_exchange_known_ccxt, list_available_exchanges,
market_is_active, price_to_precision,
timeframe_to_minutes, timeframe_to_msecs,
timeframe_to_next_date, timeframe_to_prev_date,
timeframe_to_seconds, validate_exchange)
validate_exchange)
from freqtrade.exchange.exchange_utils_timeframe import (timeframe_to_minutes, timeframe_to_msecs,
timeframe_to_next_date,
timeframe_to_prev_date,
timeframe_to_resample_freq,
timeframe_to_seconds)
from freqtrade.exchange.gate import Gate
from freqtrade.exchange.hitbtc import Hitbtc
from freqtrade.exchange.huobi import Huobi
from freqtrade.exchange.htx import Htx
from freqtrade.exchange.kraken import Kraken
from freqtrade.exchange.kucoin import Kucoin
from freqtrade.exchange.okx import Okx

Some files were not shown because too many files have changed in this diff Show More