Compare commits

...

1938 Commits

Author SHA1 Message Date
Matthias
67beeb6f26 Merge pull request #12553 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-11-25 06:34:42 +01:00
Freqtrade Bot
f94acc9173 chore: update pre-commit hooks 2025-11-25 03:23:56 +00:00
Matthias
4eea0cca08 Merge pull request #12546 from freqtrade/dependabot/pip/develop/time-machine-3.0.0
chore(deps-dev): bump time-machine from 2.19.0 to 3.0.0
2025-11-24 08:11:34 +01:00
Matthias
8274a6c3a9 chore: update usage of TTLCache to FtTTLCache 2025-11-24 07:07:13 +01:00
Matthias
f0a5b95ec0 feat: add FtTTLCache to avoid mocking issues
overrides timer in a central location.
2025-11-24 07:05:49 +01:00
Matthias
e4dd3b2821 Merge pull request #12544 from freqtrade/dependabot/pip/develop/types-2e6adcc4ce
chore(deps-dev): bump types-python-dateutil from 2.9.0.20251108 to 2.9.0.20251115 in the types group
2025-11-24 07:02:11 +01:00
Matthias
7698ee9f3d Merge pull request #12549 from freqtrade/dependabot/pip/develop/numpy-2.3.5
chore(deps): bump numpy from 2.3.4 to 2.3.5
2025-11-24 06:50:52 +01:00
Matthias
c5127ba522 Merge pull request #12548 from freqtrade/dependabot/pip/develop/ruff-0.14.5
chore(deps-dev): bump ruff from 0.14.4 to 0.14.5
2025-11-24 06:50:13 +01:00
Matthias
024d2db2e2 chore: bump pre-commit config dateutil types 2025-11-24 06:37:39 +01:00
Matthias
f2498df99b Merge pull request #12550 from freqtrade/dependabot/pip/develop/plotly-6.5.0
chore(deps): bump plotly from 6.4.0 to 6.5.0
2025-11-24 06:35:18 +01:00
Matthias
37ce645bad Merge pull request #12545 from freqtrade/dependabot/pip/develop/cachetools-6.2.2
chore(deps): bump cachetools from 6.2.1 to 6.2.2
2025-11-24 06:32:43 +01:00
Matthias
d4188a093b Merge pull request #12547 from freqtrade/dependabot/pip/develop/fastapi-0.121.3
chore(deps): bump fastapi from 0.121.1 to 0.121.3
2025-11-24 06:32:14 +01:00
dependabot[bot]
bc3342b4d2 chore(deps): bump plotly from 6.4.0 to 6.5.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 6.4.0 to 6.5.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v6.4.0...v6.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 03:02:27 +00:00
dependabot[bot]
64cf284c07 chore(deps): bump numpy from 2.3.4 to 2.3.5
Bumps [numpy](https://github.com/numpy/numpy) from 2.3.4 to 2.3.5.
- [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/v2.3.4...v2.3.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 03:02:23 +00:00
dependabot[bot]
15b0cc28f8 chore(deps-dev): bump ruff from 0.14.4 to 0.14.5
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.4 to 0.14.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/0.14.4...0.14.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 03:02:14 +00:00
dependabot[bot]
a647ceb753 chore(deps): bump fastapi from 0.121.1 to 0.121.3
Bumps [fastapi](https://github.com/fastapi/fastapi) from 0.121.1 to 0.121.3.
- [Release notes](https://github.com/fastapi/fastapi/releases)
- [Commits](https://github.com/fastapi/fastapi/compare/0.121.1...0.121.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 03:01:54 +00:00
dependabot[bot]
54840a3f7e chore(deps-dev): bump time-machine from 2.19.0 to 3.0.0
Bumps [time-machine](https://github.com/adamchainz/time-machine) from 2.19.0 to 3.0.0.
- [Changelog](https://github.com/adamchainz/time-machine/blob/main/docs/changelog.rst)
- [Commits](https://github.com/adamchainz/time-machine/compare/2.19.0...3.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 03:01:50 +00:00
dependabot[bot]
2b1ef1bf59 chore(deps): bump cachetools from 6.2.1 to 6.2.2
Bumps [cachetools](https://github.com/tkem/cachetools) from 6.2.1 to 6.2.2.
- [Changelog](https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/tkem/cachetools/compare/v6.2.1...v6.2.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 03:01:45 +00:00
dependabot[bot]
757439a594 chore(deps-dev): bump types-python-dateutil in the types group
Bumps the types group with 1 update: [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader).


Updates `types-python-dateutil` from 2.9.0.20251108 to 2.9.0.20251115
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 03:01:12 +00:00
Matthias
73dccb0780 test: Add test case for no parallel on 1 combo 2025-11-23 15:43:17 +01:00
Matthias
aa7aac3a14 feat: don't jump into parallel mode for single pair/timeframe downloads 2025-11-23 15:43:17 +01:00
Matthias
2015ccc727 test: update parallel-history test 2025-11-23 15:43:17 +01:00
Matthias
47301830b6 fix: be more selective before activating parallel download 2025-11-23 15:43:17 +01:00
Matthias
b7b280de96 Merge pull request #12542 from freqtrade/feat/no_data
Fix telegram crash during exchange downtime and improve percentage formatting
2025-11-23 15:43:07 +01:00
Matthias
7edc2e8c94 fix: improved realized profit telegram condition 2025-11-23 13:23:18 +01:00
Matthias
972e25a6a7 feat: Improve conditions to not exclude 0.0 profits 2025-11-23 08:33:11 +01:00
Matthias
649db69314 test: add tests for N/A when formatting prices 2025-11-23 08:30:24 +01:00
Matthias
d0fb4cdc37 feat: use N/A for round value 2025-11-23 08:30:10 +01:00
Matthias
efabcef330 feat: use pct formatting helper throughout telegram module 2025-11-23 08:23:05 +01:00
Matthias
a4e6ac0c7f test: update test for new status table behavior 2025-11-23 08:18:51 +01:00
Matthias
0ce9149ddd feat: use helper method to format for pct 2025-11-23 08:18:17 +01:00
Matthias
2750643e07 test: add tests for format_pct 2025-11-23 08:14:39 +01:00
Matthias
b92535deea feat: Add format_pct helper method 2025-11-23 08:13:48 +01:00
Matthias
2fa0503993 fix: telegram crash during exchange downtime 2025-11-23 08:09:37 +01:00
Matthias
3932470190 Merge pull request #12541 from stash86/main-stash
make sure the strat's startup count don't get replaced
2025-11-23 08:09:25 +01:00
Stefano
d901f4b10b make sure the strat's starupt count don't get replaced 2025-11-23 14:01:36 +09:00
Matthias
8269384077 fix: missing space in template
closes #12539
2025-11-22 19:51:16 +01:00
Matthias
b364153d02 feat: add nr_of_successful_* to api 2025-11-22 15:46:34 +01:00
Matthias
916d8324cb test: update tests with new fields 2025-11-22 13:48:57 +01:00
Matthias
60309b9e57 chore: move num_entries/exits to trade model 2025-11-22 13:40:57 +01:00
Matthias
a05d142af6 chore: remove unneeded formatting 2025-11-22 13:38:33 +01:00
Matthias
1feb11bac0 refactor: use fstring for telegram sending 2025-11-22 13:32:38 +01:00
Matthias
93936c9946 refactor: use fstrings for /order telegram message 2025-11-22 13:29:27 +01:00
Matthias
ce78039ea8 refactor: don't do delayed formatting on status message 2025-11-22 13:26:50 +01:00
Matthias
1db871e42d Merge pull request #12536 from stash86/add-liq-price
Add liq price info on telegram message
2025-11-22 13:05:01 +01:00
Matthias
1513ba9af9 chore: Move liquidation up a line 2025-11-22 12:48:51 +01:00
Stefano
22b88249ff Merge branch 'add-liq-price' of https://github.com/stash86/freqtrade into add-liq-price 2025-11-22 16:52:47 +09:00
Stefano
18f73af6e6 use get to return None on trade with no liq price 2025-11-22 16:52:43 +09:00
Stefano
b8c835e24e Merge branch 'freqtrade:develop' into add-liq-price 2025-11-22 16:40:25 +09:00
Stefano
2f392b483c add liq line 2025-11-22 16:39:35 +09:00
Matthias
220480327c test: add explicit test for dry_order_filled 2025-11-21 07:11:05 +01:00
Matthias
2c6ff3f018 docs: update supported exchanges for Delist Filter 2025-11-20 20:30:43 +01:00
Matthias
56a8fb4aae Merge pull request #12532 from stash86/bitget-delist
add delisting check for bitget futures
2025-11-20 19:51:05 +01:00
Matthias
3f782fc482 Merge pull request #12531 from stash86/bybit-delist
add delisting check for bybit futures
2025-11-20 19:48:11 +01:00
Matthias
d02e5f2b90 chore: simplify imports 2025-11-20 19:34:51 +01:00
Matthias
92fd9411e5 chore: simplify import 2025-11-20 19:31:28 +01:00
Stefano
650cdf5eb3 change to exclude optimize mode 2025-11-20 15:16:11 +09:00
Stefano
060a1543e9 change to exclude optimize mode 2025-11-20 15:13:56 +09:00
Matthias
50402c5cdc test: add explicit tests for price_crossed 2025-11-20 06:54:22 +01:00
Matthias
0835414f24 Merge pull request #12533 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-11-20 06:30:14 +01:00
Freqtrade Bot
6449074658 chore: update pre-commit hooks 2025-11-20 03:20:59 +00:00
Stefano
b8d558a455 remove unnecessary check because it will be catch anyway 2025-11-20 09:41:57 +09:00
Stefano
4017b010f4 add test 2025-11-20 09:36:17 +09:00
Stefano
7e178cb032 add test 2025-11-20 09:26:16 +09:00
Stefano
e17936c407 use dt_ts 2025-11-19 14:55:31 +09:00
Stefano
f437d4a55b use dt_ts 2025-11-19 14:53:57 +09:00
Stefano
a731b73457 add delisting check for bitget futures 2025-11-19 12:36:34 +09:00
Stefano
b5be462dd1 add delisting check for bybit futures 2025-11-19 12:25:35 +09:00
Matthias
b55e7bcf4e chore: Improve fetch_dry_run_order 2025-11-18 19:45:43 +01:00
Matthias
d1e71544af test: imrpove testcase 2025-11-18 19:45:32 +01:00
Matthias
6e1367fa94 test: enable gate futures test 2025-11-18 19:16:32 +01:00
Matthias
58452ebc7c chore: bump ccxt to 4.5.20
closes #12516
2025-11-18 19:15:50 +01:00
Matthias
7b1dd61ae4 Merge pull request #12530 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-11-18 06:28:09 +01:00
Freqtrade Bot
1321991fca chore: update pre-commit hooks 2025-11-18 03:22:24 +00:00
Matthias
8ae8b615b2 Merge pull request #12518 from freqtrade/dependabot/pip/develop/pytest-9513a616b5
chore(deps-dev): bump the pytest group with 2 updates
2025-11-17 19:23:24 +01:00
Matthias
1c96dfd58f chore: add TODO comment for pytest migration 2025-11-17 18:24:10 +01:00
Matthias
e67c2eefff test: live test "get_fee" for futures exchange 2025-11-17 07:20:44 +01:00
Matthias
2ea19f2ab0 Merge pull request #12517 from freqtrade/dependabot/pip/develop/types-ee32193104
chore(deps-dev): bump types-python-dateutil from 2.9.0.20251008 to 2.9.0.20251108 in the types group
2025-11-17 06:57:29 +01:00
Matthias
44a6d2ead7 Merge pull request #12520 from freqtrade/dependabot/pip/develop/fastapi-0.121.1
chore(deps): bump fastapi from 0.121.0 to 0.121.1
2025-11-17 06:57:00 +01:00
Matthias
5fa314e4a8 Merge pull request #12522 from freqtrade/dependabot/pip/develop/certifi-2025.11.12
chore(deps): bump certifi from 2025.10.5 to 2025.11.12
2025-11-17 06:52:58 +01:00
dependabot[bot]
89a8adcbcf chore(deps-dev): 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.4.2 to 9.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.4.2...9.0.1)

Updates `pytest-asyncio` from 1.2.0 to 1.3.0
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v1.2.0...v1.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 05:39:17 +00:00
Matthias
57f216e9c7 chore: bump dateutil in pre-commit config 2025-11-17 06:32:18 +01:00
Matthias
927a771f2e Merge pull request #12526 from freqtrade/dependabot/pip/develop/optuna-4.6.0
chore(deps): bump optuna from 4.5.0 to 4.6.0
2025-11-17 06:30:19 +01:00
Matthias
3a1fffeeb7 Merge pull request #12521 from freqtrade/dependabot/pip/develop/torch-2.9.1
chore(deps): bump torch from 2.9.0 to 2.9.1
2025-11-17 06:30:00 +01:00
Matthias
9a5622fe33 Merge pull request #12527 from freqtrade/dependabot/pip/develop/ccxt-4.5.19
chore(deps): bump ccxt from 4.5.17 to 4.5.19
2025-11-17 06:29:09 +01:00
Matthias
ec51820074 Merge pull request #12519 from freqtrade/dependabot/pip/develop/mkdocs-a50e39aa08
chore(deps): bump mkdocs-material from 9.6.23 to 9.7.0 in the mkdocs group
2025-11-17 06:28:14 +01:00
Matthias
4425e0cd40 Merge pull request #12525 from freqtrade/dependabot/pip/develop/pymdown-extensions-10.17.1
chore(deps): bump pymdown-extensions from 10.16.1 to 10.17.1
2025-11-17 06:27:34 +01:00
Matthias
97a830b4f0 Merge pull request #12523 from freqtrade/dependabot/pip/develop/pre-commit-4.4.0
chore(deps-dev): bump pre-commit from 4.3.0 to 4.4.0
2025-11-17 06:27:20 +01:00
Matthias
cb28498890 Merge pull request #12524 from freqtrade/dependabot/pip/develop/ruff-0.14.4
chore(deps-dev): bump ruff from 0.14.3 to 0.14.4
2025-11-17 06:27:09 +01:00
dependabot[bot]
1747114b57 chore(deps): bump ccxt from 4.5.17 to 4.5.19
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.5.17 to 4.5.19.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/v4.5.17...v4.5.19)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 03:02:58 +00:00
dependabot[bot]
1056b2562e chore(deps): bump optuna from 4.5.0 to 4.6.0
Bumps [optuna](https://github.com/optuna/optuna) from 4.5.0 to 4.6.0.
- [Release notes](https://github.com/optuna/optuna/releases)
- [Commits](https://github.com/optuna/optuna/compare/v4.5.0...v4.6.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 03:02:48 +00:00
dependabot[bot]
64f680ed86 chore(deps): bump pymdown-extensions from 10.16.1 to 10.17.1
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.16.1 to 10.17.1.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.16.1...10.17.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 03:02:44 +00:00
dependabot[bot]
028c60ce5a chore(deps-dev): bump ruff from 0.14.3 to 0.14.4
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.3 to 0.14.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/0.14.3...0.14.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 03:02:36 +00:00
dependabot[bot]
d27ee227cb chore(deps-dev): bump pre-commit from 4.3.0 to 4.4.0
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 4.3.0 to 4.4.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/v4.3.0...v4.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 03:02:21 +00:00
dependabot[bot]
81c49136d1 chore(deps): bump certifi from 2025.10.5 to 2025.11.12
Bumps [certifi](https://github.com/certifi/python-certifi) from 2025.10.5 to 2025.11.12.
- [Commits](https://github.com/certifi/python-certifi/compare/2025.10.05...2025.11.12)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 03:02:18 +00:00
dependabot[bot]
4297207226 chore(deps): bump torch from 2.9.0 to 2.9.1
Bumps [torch](https://github.com/pytorch/pytorch) from 2.9.0 to 2.9.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.9.0...v2.9.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 03:02:14 +00:00
dependabot[bot]
3877fb46de chore(deps): bump fastapi from 0.121.0 to 0.121.1
Bumps [fastapi](https://github.com/fastapi/fastapi) from 0.121.0 to 0.121.1.
- [Release notes](https://github.com/fastapi/fastapi/releases)
- [Commits](https://github.com/fastapi/fastapi/compare/0.121.0...0.121.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 03:01:56 +00:00
dependabot[bot]
22707b8664 chore(deps): bump mkdocs-material in the mkdocs group
Bumps the mkdocs group with 1 update: [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `mkdocs-material` from 9.6.23 to 9.7.0
- [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.6.23...9.7.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 03:01:46 +00:00
dependabot[bot]
d2c380c83b chore(deps-dev): bump types-python-dateutil in the types group
Bumps the types group with 1 update: [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader).


Updates `types-python-dateutil` from 2.9.0.20251008 to 2.9.0.20251108
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 03:01:12 +00:00
Matthias
bc516db3f8 refactor: add generic "migrate" method 2025-11-16 09:11:02 +01:00
Matthias
5c0cf8f228 chore: prevent execution of command partials on python <3.13 2025-11-16 08:41:14 +01:00
Matthias
b753231d3c Merge pull request #12512 from mrpabloyeah/fix-high_value-calculation-in-calculate_max_drawdown
Fix high_value calculation in calculate_max_drawdown()
2025-11-15 16:03:35 +01:00
Matthias
af728f8224 chore: update command partial 2025-11-15 15:50:58 +01:00
Matthias
5000927939 test: add tests for new list-timeframes behavior 2025-11-15 15:49:45 +01:00
Matthias
89274bfcdb test: update tests for new timeframe approach 2025-11-15 15:46:09 +01:00
Matthias
ef86b4113d feat: add trading-mode to list-timeframes
some exchanges provide different timeframe configurations depending on the market type
2025-11-15 13:11:10 +01:00
Matthias
38ff755533 fix: start drawdown series with a 0 row
This will account for edge-cases with no winning / losing trades
2025-11-15 09:52:24 +01:00
Matthias
70ec376657 test: further expand drawdown test 2025-11-15 09:51:27 +01:00
Matthias
1a506dc4b4 test: add tests for high/low logic 2025-11-14 19:41:52 +01:00
mrpabloyeah
47451dd989 Fix high_value calculation in calculate_max_drawdown() 2025-11-13 20:14:39 +01:00
Matthias
705849db3d Merge pull request #12511 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-11-13 06:55:06 +01:00
Freqtrade Bot
14d3096a22 chore: update pre-commit hooks 2025-11-13 03:22:53 +00:00
Matthias
72889e2edb Merge pull request #12504 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-11-11 06:32:49 +01:00
Freqtrade Bot
0f17b04b2f chore: update pre-commit hooks 2025-11-11 03:23:01 +00:00
Matthias
179a5ba6ed Merge pull request #12498 from freqtrade/dependabot/pip/develop/fastapi-0.121.0
chore(deps): bump fastapi from 0.120.2 to 0.121.0
2025-11-10 07:04:54 +01:00
Matthias
ed65b012b8 Merge pull request #12501 from freqtrade/dependabot/pip/develop/ccxt-4.5.17
chore(deps): bump ccxt from 4.5.16 to 4.5.17
2025-11-10 06:59:48 +01:00
dependabot[bot]
625629b9db chore(deps): bump fastapi from 0.120.2 to 0.121.0
Bumps [fastapi](https://github.com/fastapi/fastapi) from 0.120.2 to 0.121.0.
- [Release notes](https://github.com/fastapi/fastapi/releases)
- [Commits](https://github.com/fastapi/fastapi/compare/0.120.2...0.121.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 05:48:14 +00:00
Matthias
9fa9f0860c chore: remove coincurve - ccxt depends directly on it 2025-11-10 06:43:05 +01:00
Matthias
5970881bb8 Merge pull request #12500 from freqtrade/dependabot/pip/develop/markdown-3.10
chore(deps): bump markdown from 3.9 to 3.10
2025-11-10 06:38:31 +01:00
Matthias
bed93429cd Merge pull request #12493 from freqtrade/dependabot/pip/develop/plotly-6.4.0
chore(deps): bump plotly from 6.3.1 to 6.4.0
2025-11-10 06:38:11 +01:00
Matthias
3af9089d51 Merge pull request #12499 from freqtrade/dependabot/pip/develop/gymnasium-1.2.2
chore(deps): bump gymnasium from 1.2.1 to 1.2.2
2025-11-10 06:37:56 +01:00
Matthias
3aed562806 Merge pull request #12497 from freqtrade/dependabot/pip/develop/pydantic-2.12.4
chore(deps): bump pydantic from 2.12.3 to 2.12.4
2025-11-10 06:36:58 +01:00
Matthias
7f32ce498b Merge pull request #12496 from freqtrade/dependabot/pip/develop/ruff-0.14.3
chore(deps-dev): bump ruff from 0.14.2 to 0.14.3
2025-11-10 06:36:30 +01:00
Matthias
9e89ba6eed Merge pull request #12495 from freqtrade/dependabot/pip/develop/psutil-7.1.3
chore(deps): bump psutil from 7.1.2 to 7.1.3
2025-11-10 06:36:12 +01:00
Matthias
82309c3f47 Merge pull request #12494 from freqtrade/dependabot/github_actions/develop/docker/setup-qemu-action-3.7.0
chore(deps): bump docker/setup-qemu-action from 3.6.0 to 3.7.0
2025-11-10 06:35:59 +01:00
Matthias
d5613cf471 Merge pull request #12492 from freqtrade/dependabot/pip/develop/mkdocs-30218cca00
chore(deps): bump mkdocs-material from 9.6.22 to 9.6.23 in the mkdocs group
2025-11-10 06:35:34 +01:00
dependabot[bot]
73f91eab15 chore(deps): bump ccxt from 4.5.16 to 4.5.17
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.5.16 to 4.5.17.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/v4.5.16...v4.5.17)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 03:03:06 +00:00
dependabot[bot]
35fb598017 chore(deps): bump markdown from 3.9 to 3.10
Bumps [markdown](https://github.com/Python-Markdown/markdown) from 3.9 to 3.10.
- [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.9.0...3.10.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 03:02:56 +00:00
dependabot[bot]
40b9a836eb chore(deps): bump gymnasium from 1.2.1 to 1.2.2
Bumps [gymnasium](https://github.com/Farama-Foundation/Gymnasium) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/Farama-Foundation/Gymnasium/releases)
- [Commits](https://github.com/Farama-Foundation/Gymnasium/compare/v1.2.1...v1.2.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 03:02:44 +00:00
dependabot[bot]
7189c0ff35 chore(deps): bump pydantic from 2.12.3 to 2.12.4
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.12.3 to 2.12.4.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/v2.12.4/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 03:02:34 +00:00
dependabot[bot]
0eb206c7b3 chore(deps-dev): bump ruff from 0.14.2 to 0.14.3
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.2 to 0.14.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/0.14.2...0.14.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 03:02:27 +00:00
dependabot[bot]
728d2c9bcb chore(deps): bump psutil from 7.1.2 to 7.1.3
Bumps [psutil](https://github.com/giampaolo/psutil) from 7.1.2 to 7.1.3.
- [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst)
- [Commits](https://github.com/giampaolo/psutil/compare/release-7.1.2...release-7.1.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 03:02:16 +00:00
dependabot[bot]
f22feb7dee chore(deps): bump docker/setup-qemu-action from 3.6.0 to 3.7.0
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 3.6.0 to 3.7.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](29109295f8...c7c5346462)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 03:02:07 +00:00
dependabot[bot]
c6bf0e1843 chore(deps): bump plotly from 6.3.1 to 6.4.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 6.3.1 to 6.4.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v6.3.1...v6.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 03:02:04 +00:00
dependabot[bot]
68836cb7be chore(deps): bump mkdocs-material in the mkdocs group
Bumps the mkdocs group with 1 update: [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `mkdocs-material` from 9.6.22 to 9.6.23
- [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.6.22...9.6.23)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 03:01:51 +00:00
Matthias
706955e5fc Merge pull request #12489 from freqtrade/partials-3.13
Partials with python 3.13
2025-11-09 09:02:37 +01:00
Matthias
9aec10b0f3 docs: update badge link to point to CI workflow directly 2025-11-09 08:43:16 +01:00
Matthias
b6b817e051 chore: re-export all command partials 2025-11-09 08:41:02 +01:00
Matthias
40107b9380 feat: format partials codeblock as outputs 2025-11-09 08:40:35 +01:00
Matthias
8804850170 refactor: extract partial-file writing 2025-11-09 08:38:32 +01:00
Matthias
d246933c28 refactor: improve partials script 2025-11-09 08:37:39 +01:00
Matthias
777ff1938e feat: extract freqtrade-client to auto-use help 2025-11-09 08:36:42 +01:00
Matthias
2846d9478e chore: fix ci condition 2025-11-09 08:30:38 +01:00
Matthias
5d494eac51 docs: update command partials to be created with python 3.13 2025-11-09 08:07:37 +01:00
Matthias
e26c3cbe5a chore: update CI to create partials on 3.13 2025-11-09 08:07:16 +01:00
Matthias
81a5056e1b fix: support ft-client help and ft-client show commands 2025-11-09 08:03:07 +01:00
Matthias
1876656afc Merge pull request #12488 from stash86/main-stash
update docs regarding forceenter endpoint
2025-11-09 07:59:37 +01:00
Stefano
889ab7ea00 update docs regarding forceenter endpoint 2025-11-09 13:33:07 +09:00
Matthias
2d4b02f7e5 refactor: align wording from category to space 2025-11-08 19:24:11 +01:00
Matthias
c5a339eaf3 refactor: improve wording from category to space 2025-11-08 16:34:12 +01:00
Matthias
1e50a2da53 refactor: simplify hyperopt-auto 2025-11-08 16:26:05 +01:00
Matthias
7d1c2d3a1b test: Update test mock approach for hyperopt 2025-11-08 16:25:07 +01:00
Matthias
a9f9b73a3a Merge pull request #12479 from freqtrade/feat/hyperopt_custom_spaces
Add support for custom hyperopt spaces
2025-11-08 16:01:42 +01:00
Matthias
236df5be6f chore: remove unnecessary pip flag
closes #12487
2025-11-07 19:45:05 +01:00
Matthias
6ea83ba0e7 docs: clarify space naming prevalence 2025-11-06 20:58:12 +01:00
Matthias
992c2f9e3e feat: improve code for list-strategies 2025-11-06 20:51:30 +01:00
Matthias
5e74700e31 chore: don't use conflicting spaces in sample strategy 2025-11-06 20:45:33 +01:00
Matthias
4a225cab23 test: update test for new "conflicting" behavior 2025-11-06 20:43:57 +01:00
Matthias
524ceebcbb fix: don't restrict spaces - explicitly defined space should win 2025-11-06 20:43:46 +01:00
Matthias
f93c906614 test: improve tests for new builtin spaces 2025-11-06 20:36:40 +01:00
Matthias
b32ba68a6e docs: at enter/exit spaces as builtin spaces 2025-11-06 20:33:09 +01:00
Matthias
649aff8076 feat: add builtin spaces enter and exit 2025-11-06 20:30:38 +01:00
Matthias
a3efba019f docs: update documentation for new hyperopt spaces 2025-11-06 20:06:52 +01:00
Matthias
ff4230af8a chore: update space parameter docstring 2025-11-06 19:43:35 +01:00
Matthias
d1014ce3ce Merge pull request #12448 from stash86/main-stash
Add blacklist mode to MarketcapPairlist
2025-11-06 07:30:37 +01:00
Matthias
3bad6d3341 chore: switch white/blacklist to option 2025-11-06 07:10:05 +01:00
Matthias
7526fd0e0d test: Add additional test
shows the difference between max_rank 2 and max_rank6 in blacklist mode.
2025-11-06 07:05:36 +01:00
Matthias
a2ec085dab Merge pull request #12484 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-11-06 06:28:25 +01:00
Freqtrade Bot
cce7702e9c chore: update pre-commit hooks 2025-11-06 03:23:16 +00:00
Matthias
1cf7f4f9d8 Merge pull request #12480 from freqtrade/feat/add_coincurve
Add coincurve for faster ECDSA signing
2025-11-05 21:05:45 +01:00
Matthias
1328df772b feat: ensure spaces are valid identifiers 2025-11-05 21:05:15 +01:00
Matthias
68dea691c2 chore: improve help wording 2025-11-05 20:59:39 +01:00
Matthias
f214942ff1 fix: improve error message for missing hyperopt parameters 2025-11-05 20:49:32 +01:00
Matthias
91866c1165 refactor: move lookup dictionary outside of loop 2025-11-05 20:46:53 +01:00
Matthias
f73cbed843 chore: update ccxt version to 4.5.16 2025-11-05 20:43:36 +01:00
Matthias
5ad817f59e chore: add coincurve to support faster ECDSA signing 2025-11-05 20:41:19 +01:00
Matthias
4a8f487b68 chore: update json schema 2025-11-05 20:38:55 +01:00
Matthias
d1b553cecc test: add custom parameter to test strategy 2025-11-05 20:14:28 +01:00
Matthias
1a2f261ee2 feat: support "--spaces all" with custom spaces 2025-11-05 20:12:56 +01:00
Matthias
cfd4926f47 chore: fix odd indentation error 2025-11-05 20:03:03 +01:00
Matthias
36593ec593 Merge pull request #12477 from fengyuchuanshen/develop
chore: minor improvement for docs
2025-11-05 19:42:11 +01:00
fengyuchuanshen
dc5f646f24 chore: minor improvement for docs
Signed-off-by: fengyuchuanshen <fengyuchuanshen@outlook.com>
2025-11-05 22:32:32 +08:00
Matthias
d7e4965cde feat: improve list-strategies command output 2025-11-04 07:21:43 +01:00
Matthias
e22bf5c681 chore: non-loaded strategies shouldn't show as hyperoptable 2025-11-04 07:16:57 +01:00
Matthias
007ab1b796 test: some cleanup 2025-11-04 07:14:01 +01:00
Matthias
c748ac2aa2 chore: be more precise in type 2025-11-04 07:13:07 +01:00
Matthias
c091426c44 feat: improve Auto-space detection logic 2025-11-04 07:07:55 +01:00
Matthias
ab28e43050 test: update tests to new behavior 2025-11-04 07:07:55 +01:00
Matthias
74a18bdb11 chore: improve output wording/formatting 2025-11-04 07:07:55 +01:00
Matthias
367b9fa7f6 test: fix failing test 2025-11-04 07:07:55 +01:00
Matthias
8269333d9c feat: improve output wording 2025-11-04 07:07:55 +01:00
Matthias
d83f222a13 chore: remove unused imports 2025-11-04 07:07:55 +01:00
Matthias
2ba9172526 feat: Assign all matching parameters 2025-11-04 07:07:55 +01:00
Matthias
465af62c16 feat: further updates 2025-11-04 07:07:55 +01:00
Matthias
231a145716 refactor: improve parameter storage 2025-11-04 07:07:55 +01:00
Matthias
4cabbe4d52 test: remove detect_parameters from tests 2025-11-04 07:07:55 +01:00
Matthias
72c87b7cbd chore: remove no longer used function 2025-11-04 07:07:55 +01:00
Matthias
3da6006a44 feat: improve hyperopt detection logic 2025-11-04 07:07:55 +01:00
Matthias
6f48b82297 test: slight update to test ... 2025-11-04 07:07:55 +01:00
Matthias
ac51b41fdf refactor: remove pointless wrapper 2025-11-04 07:07:55 +01:00
Matthias
4b0b306c44 fix: hyperoptable should work whenever there's any space detected. 2025-11-04 07:07:55 +01:00
Matthias
fd0acc074c feat: improve parameter detection to detect random named spaces 2025-11-04 07:07:55 +01:00
Matthias
39c37980d5 fix: improve resiliance 2025-11-04 07:07:55 +01:00
Matthias
6dc2547177 feat: Update output for random space names 2025-11-04 07:07:55 +01:00
Matthias
d1224367e5 feat: further enable dynamic hyperopt parameters 2025-11-04 07:07:55 +01:00
Matthias
c88a92b4f9 feat: allow init of random spaces 2025-11-04 07:07:55 +01:00
Matthias
ffab6c3c50 test: Add test for "no hyperopt parameters found" error 2025-11-04 07:07:55 +01:00
Matthias
cb7e04bfb0 feat: add explicit scenario testing if any parameter is selected 2025-11-04 07:07:55 +01:00
Matthias
c6a7b84684 test: update test for new init sequence 2025-11-04 07:07:55 +01:00
Matthias
97afb4a56a chore: remove no longer used helper methods 2025-11-04 07:07:55 +01:00
Matthias
886c15a7fb test: update test asserting no longer existing metric 2025-11-04 07:07:55 +01:00
Matthias
e34e84c5c6 refactor: further refactor of hyperopt spaces 2025-11-04 07:07:55 +01:00
Matthias
4cac68d774 chore: refactor buy/sell spaces slightly 2025-11-04 07:07:55 +01:00
Matthias
a792744c0d refactor: improve get_indicator space naming 2025-11-04 07:07:55 +01:00
Matthias
384ed3fafb feat: don't limit spaces to builtin spaces 2025-11-04 07:07:54 +01:00
Matthias
80ea476497 Merge pull request #12461 from freqtrade/feat/stringread_strategyload
improve strategy loading with huge strategy libraries
2025-11-04 06:37:28 +01:00
Matthias
8ddbf4ba08 Merge pull request #12476 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-11-04 06:29:07 +01:00
Freqtrade Bot
041d93a254 chore: update pre-commit hooks 2025-11-04 03:20:44 +00:00
Matthias
167f264bc4 Merge pull request #12470 from freqtrade/dependabot/pip/develop/ccxt-4.5.14
chore(deps): bump ccxt from 4.5.12 to 4.5.14
2025-11-03 17:12:19 +01:00
Matthias
5c036f5fcc Merge pull request #12474 from freqtrade/dependabot/pip/develop/pyarrow-22.0.0
chore(deps): bump pyarrow from 20.0.0 to 22.0.0
2025-11-03 16:54:29 +01:00
Matthias
964ed8099c chore: remove workaround dependency pin for aarch64 2025-11-03 11:59:18 +01:00
Matthias
71b169616f chore: update pyarrow armhf wheel 2025-11-03 11:58:59 +01:00
Matthias
d824755597 Merge pull request #12468 from freqtrade/dependabot/github_actions/develop/actions/upload-artifact-5
chore(deps): bump actions/upload-artifact from 4 to 5
2025-11-03 07:15:06 +01:00
Matthias
8e41699348 Merge pull request #12466 from freqtrade/dependabot/pip/develop/scipy-16e6c1b478
chore(deps): bump the scipy group with 2 updates
2025-11-03 07:13:59 +01:00
dependabot[bot]
a580ba1903 chore(deps): bump pyarrow from 20.0.0 to 22.0.0
Bumps [pyarrow](https://github.com/apache/arrow) from 20.0.0 to 22.0.0.
- [Release notes](https://github.com/apache/arrow/releases)
- [Commits](https://github.com/apache/arrow/compare/apache-arrow-20.0.0...apache-arrow-22.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 06:04:07 +00:00
Matthias
edcb3696f1 Merge pull request #12472 from freqtrade/dependabot/pip/develop/orjson-3.11.4
chore(deps): bump orjson from 3.11.3 to 3.11.4
2025-11-03 07:00:57 +01:00
dependabot[bot]
f1f07a1764 chore(deps): bump ccxt from 4.5.12 to 4.5.14
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.5.12 to 4.5.14.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/v4.5.12...v4.5.14)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 05:38:09 +00:00
Matthias
5139ea4e1c chore: bump scipy-stubs in pre-commit config 2025-11-03 06:35:10 +01:00
dependabot[bot]
fdf9d4da81 chore(deps): bump orjson from 3.11.3 to 3.11.4
Bumps [orjson](https://github.com/ijl/orjson) from 3.11.3 to 3.11.4.
- [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.11.3...3.11.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 05:34:32 +00:00
Matthias
65267b2bb7 Merge pull request #12471 from freqtrade/dependabot/pip/develop/psutil-7.1.2
chore(deps): bump psutil from 7.1.1 to 7.1.2
2025-11-03 06:32:12 +01:00
Matthias
420bb720c1 Merge pull request #12473 from freqtrade/dependabot/pip/develop/aiohttp-3.13.2
chore(deps): bump aiohttp from 3.13.1 to 3.13.2
2025-11-03 06:31:54 +01:00
Matthias
bfbb6404e6 Merge pull request #12469 from freqtrade/dependabot/pip/develop/ruff-0.14.2
chore(deps-dev): bump ruff from 0.14.1 to 0.14.2
2025-11-03 06:31:39 +01:00
Matthias
6ffc88b3b3 Merge pull request #12464 from freqtrade/dependabot/github_actions/develop/actions/download-artifact-6
chore(deps): bump actions/download-artifact from 5 to 6
2025-11-03 06:31:30 +01:00
Matthias
54501b5c16 Merge pull request #12465 from freqtrade/dependabot/github_actions/develop/astral-sh/setup-uv-7.1.2
chore(deps): bump astral-sh/setup-uv from 7.1.0 to 7.1.2
2025-11-03 06:31:11 +01:00
Matthias
d7ef5e8bd2 Merge pull request #12467 from freqtrade/dependabot/pip/develop/fastapi-0.120.2
chore(deps): bump fastapi from 0.119.1 to 0.120.2
2025-11-03 06:30:28 +01:00
dependabot[bot]
c7e64360cd chore(deps): bump aiohttp from 3.13.1 to 3.13.2
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.13.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 03:03:15 +00:00
dependabot[bot]
55b66ca5e6 chore(deps): bump psutil from 7.1.1 to 7.1.2
Bumps [psutil](https://github.com/giampaolo/psutil) from 7.1.1 to 7.1.2.
- [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst)
- [Commits](https://github.com/giampaolo/psutil/compare/release-7.1.1...release-7.1.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 03:02:52 +00:00
dependabot[bot]
1fc6cf4c89 chore(deps-dev): bump ruff from 0.14.1 to 0.14.2
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.1 to 0.14.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/0.14.1...0.14.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 03:02:33 +00:00
dependabot[bot]
918e7c4bf8 chore(deps): bump actions/upload-artifact from 4 to 5
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 03:02:20 +00:00
dependabot[bot]
cfc406709c chore(deps): bump fastapi from 0.119.1 to 0.120.2
Bumps [fastapi](https://github.com/fastapi/fastapi) from 0.119.1 to 0.120.2.
- [Release notes](https://github.com/fastapi/fastapi/releases)
- [Commits](https://github.com/fastapi/fastapi/compare/0.119.1...0.120.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 03:02:20 +00:00
dependabot[bot]
9f55dac605 chore(deps): bump the scipy group with 2 updates
Bumps the scipy group with 2 updates: [scipy](https://github.com/scipy/scipy) and [scipy-stubs](https://github.com/scipy/scipy-stubs).


Updates `scipy` from 1.16.2 to 1.16.3
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.16.2...v1.16.3)

Updates `scipy-stubs` from 1.16.2.4 to 1.16.3.0
- [Release notes](https://github.com/scipy/scipy-stubs/releases)
- [Commits](https://github.com/scipy/scipy-stubs/compare/v1.16.2.4...v1.16.3.0)

---
updated-dependencies:
- dependency-name: scipy
  dependency-version: 1.16.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: scipy
- dependency-name: scipy-stubs
  dependency-version: 1.16.3.0
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: scipy
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 03:02:11 +00:00
dependabot[bot]
00a6575fb4 chore(deps): bump astral-sh/setup-uv from 7.1.0 to 7.1.2
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 7.1.0 to 7.1.2.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](3259c6206f...85856786d1)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 7.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 03:02:01 +00:00
dependabot[bot]
c6eb63ab77 chore(deps): bump actions/download-artifact from 5 to 6
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 5 to 6.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 03:01:53 +00:00
Matthias
db63d433f7 chore: improve log message 2025-11-02 16:49:07 +01:00
Matthias
635af046bf test: add test for string loading skipping 2025-11-02 16:48:53 +01:00
Matthias
86381955a3 feat: use text-analysis to short-circuit strategy loading 2025-11-02 16:30:38 +01:00
Matthias
3cfa366ec9 fix: validate trading-mode support when downloading data
closes #12458
2025-11-02 09:40:15 +01:00
Matthias
baa5b1a58e feat: support validating trading mode only 2025-11-02 09:38:27 +01:00
Matthias
5be0a9c069 test: update test trading-mode validation test 2025-11-02 09:38:10 +01:00
Matthias
8978da7c20 Merge pull request #12457 from luckynick/patch-2
Update exchanges.md - clarify Hyperliquid docs on subaccounts usage
2025-11-02 09:23:05 +01:00
Matthias
b3bbb92358 docs: slight rewording of hyperliquid subaccount docs 2025-11-02 09:08:43 +01:00
luckynick
06ac40fdbb Update exchanges.md 2025-11-01 14:05:20 +01:00
Matthias
d38d8167d8 chore: update command-partials 2025-11-01 11:49:16 +01:00
Matthias
5684d0de0b chore: improve description formatting 2025-11-01 11:05:08 +01:00
Matthias
a2f887aabb chore: update config schema 2025-11-01 09:47:23 +01:00
Matthias
f72e708627 chore: move some setting-validations to config-schema 2025-11-01 09:47:23 +01:00
Stefano
781d8501cb update docs 2025-11-01 08:41:47 +09:00
Stefano
015f1055a7 add tests 2025-10-31 17:22:46 +09:00
Matthias
2466cf85a1 Merge branch 'new_release' into develop 2025-10-31 07:16:45 +01:00
Matthias
e6ddeef07f chore: update version to 2025.11-dev 2025-10-31 07:16:33 +01:00
Matthias
e23a211503 chore: bump version to 2025.10 2025-10-31 07:05:04 +01:00
Matthias
2e78440ef1 Merge branch 'stable' into new_release 2025-10-31 07:04:49 +01:00
Matthias
cbaba293b5 fix: more complete fix for #12451 2025-10-31 07:02:53 +01:00
Matthias
cdd9968831 test: use realistic arguments for tests 2025-10-31 07:02:53 +01:00
Matthias
6b4318a801 fix: trade.id must be checked as int
fixes problem with psycopg3

closes #12451
2025-10-31 07:02:53 +01:00
Matthias
95f2cc0f88 Merge pull request #12449 from stash86/develop-copy
throw error on recursive analysis on 0 startup candle
2025-10-31 06:28:56 +01:00
Stefano
1d652d1284 throw error on recursive analysis on 0 startup candle 2025-10-31 08:51:56 +09:00
Stefano
614b85e833 add blacklist mode 2025-10-30 15:49:48 +09:00
Matthias
758f1eea93 test: consistent use of "spaces" in tests 2025-10-30 06:38:43 +01:00
Matthias
f952502af5 Merge pull request #12447 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-10-30 06:37:31 +01:00
Freqtrade Bot
b17a274ee8 chore: update pre-commit hooks 2025-10-30 03:21:28 +00:00
Matthias
4adab37b2a test: update test for removal of --hyperopt argument 2025-10-29 17:58:00 +01:00
Matthias
ff7b1e0edc chore: remove long-deprecated "--hyperopt" argument 2025-10-29 17:57:51 +01:00
Matthias
b2aa392a98 fix: log level setup 2025-10-28 20:00:39 +01:00
Matthias
0c1b892713 chore: add parameter descriptions to load_object 2025-10-28 19:41:35 +01:00
Matthias
ee0952a848 chore: simplify iResolver 2025-10-28 19:35:18 +01:00
Matthias
a166f452cb chore: move comment to right place 2025-10-28 19:32:57 +01:00
Matthias
a458264bc5 fix: improve resilience in strategy wrapper 2025-10-28 19:09:09 +01:00
Matthias
13919054ac Merge pull request #12439 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-10-28 06:20:17 +01:00
Freqtrade Bot
8e4aeb62d3 chore: update pre-commit hooks 2025-10-28 03:19:47 +00:00
Matthias
609ac560fb Merge pull request #12434 from freqtrade/dependabot/pip/develop/ccxt-4.5.12
chore(deps): bump ccxt from 4.5.11 to 4.5.12
2025-10-27 20:06:12 +01:00
Matthias
5ae0328722 chore: fix redundant import 2025-10-27 19:49:49 +01:00
Matthias
89802da1c7 test: update tests for new okx limits 2025-10-27 19:45:21 +01:00
Matthias
43be6eef67 chore: re-align okx limits with ccxt 2025-10-27 19:45:15 +01:00
Matthias
dc736da971 Merge pull request #12423 from freqtrade/dependabot/pip/develop/scipy-8c88e3b5d9
chore(deps-dev): bump scipy-stubs from 1.16.2.3 to 1.16.2.4 in the scipy group
2025-10-27 13:35:54 +01:00
Matthias
aae1731e3b chore: bump scipy-stubs in pre-commit config 2025-10-27 13:20:37 +01:00
dependabot[bot]
f39acd5585 chore(deps-dev): bump scipy-stubs in the scipy group
Bumps the scipy group with 1 update: [scipy-stubs](https://github.com/scipy/scipy-stubs).


Updates `scipy-stubs` from 1.16.2.3 to 1.16.2.4
- [Release notes](https://github.com/scipy/scipy-stubs/releases)
- [Commits](https://github.com/scipy/scipy-stubs/compare/v1.16.2.3...v1.16.2.4)

---
updated-dependencies:
- dependency-name: scipy-stubs
  dependency-version: 1.16.2.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: scipy
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 08:05:24 +00:00
Matthias
50f32ee56a Merge pull request #12435 from samgermain/cross-docs
cross leverage docs fix
2025-10-27 09:04:07 +01:00
Matthias
7d62e97024 Merge pull request #12425 from freqtrade/dependabot/pip/develop/types-c656cdcffe
chore(deps-dev): bump types-cachetools from 6.2.0.20250827 to 6.2.0.20251022 in the types group
2025-10-27 09:02:44 +01:00
Matthias
15eb454103 Merge pull request #12433 from freqtrade/dependabot/pip/develop/pydantic-2.12.3
chore(deps): bump pydantic from 2.12.2 to 2.12.3
2025-10-27 08:37:21 +01:00
Sam
179cefa89f cross leverage docs fix 2025-10-27 00:33:33 -06:00
dependabot[bot]
c251877aba chore(deps): bump ccxt from 4.5.11 to 4.5.12
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.5.11 to 4.5.12.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/v4.5.11...v4.5.12)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 06:25:41 +00:00
Matthias
8352b0fe07 Merge pull request #12426 from freqtrade/dependabot/pip/develop/aiohttp-3.13.1
chore(deps): bump aiohttp from 3.13.0 to 3.13.1
2025-10-27 07:23:46 +01:00
Matthias
2a7859b3df Merge pull request #12431 from freqtrade/dependabot/pip/develop/ta-lib-0.6.8
chore(deps): bump ta-lib from 0.6.7 to 0.6.8
2025-10-27 07:18:43 +01:00
dependabot[bot]
4064586d18 chore(deps): bump pydantic from 2.12.2 to 2.12.3
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.12.2 to 2.12.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.12.2...v2.12.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 05:46:12 +00:00
Matthias
7ddb6d3554 Merge pull request #12429 from freqtrade/dependabot/pip/develop/xgboost-3.1.1
chore(deps): bump xgboost from 3.0.5 to 3.1.1
2025-10-27 06:45:15 +01:00
Matthias
9206c0086f chore: add ta-lib armhf wheels 2025-10-27 06:43:22 +01:00
Matthias
0c6e5ace59 chore: bump types-cachetools in pre-commit config 2025-10-27 06:42:10 +01:00
Matthias
47f5b25265 Merge pull request #12430 from freqtrade/dependabot/pip/develop/uvicorn-0.38.0
chore(deps): bump uvicorn from 0.37.0 to 0.38.0
2025-10-27 06:41:13 +01:00
Matthias
e3c8ef19c3 Merge pull request #12424 from freqtrade/dependabot/pip/develop/ruff-0.14.1
chore(deps-dev): bump ruff from 0.14.0 to 0.14.1
2025-10-27 06:40:42 +01:00
Matthias
803ef41a75 Merge pull request #12427 from freqtrade/dependabot/pip/develop/psutil-7.1.1
chore(deps): bump psutil from 7.1.0 to 7.1.1
2025-10-27 06:40:30 +01:00
Matthias
984f505fa6 Merge pull request #12428 from freqtrade/dependabot/pip/develop/fastapi-0.119.1
chore(deps): bump fastapi from 0.119.0 to 0.119.1
2025-10-27 06:40:15 +01:00
Matthias
b89266225d Merge pull request #12432 from freqtrade/dependabot/pip/develop/python-rapidjson-1.22
chore(deps): bump python-rapidjson from 1.21 to 1.22
2025-10-27 06:39:58 +01:00
dependabot[bot]
a45930a5cf chore(deps): bump python-rapidjson from 1.21 to 1.22
Bumps [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) from 1.21 to 1.22.
- [Changelog](https://github.com/python-rapidjson/python-rapidjson/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-rapidjson/python-rapidjson/compare/v1.21...v1.22)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 03:04:33 +00:00
dependabot[bot]
fe06a87aa2 chore(deps): bump ta-lib from 0.6.7 to 0.6.8
Bumps [ta-lib](https://github.com/ta-lib/ta-lib-python) from 0.6.7 to 0.6.8.
- [Release notes](https://github.com/ta-lib/ta-lib-python/releases)
- [Changelog](https://github.com/TA-Lib/ta-lib-python/blob/master/CHANGELOG)
- [Commits](https://github.com/ta-lib/ta-lib-python/compare/v0.6.7...v0.6.8)

---
updated-dependencies:
- dependency-name: ta-lib
  dependency-version: 0.6.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 03:04:32 +00:00
dependabot[bot]
f9940c4f1f chore(deps): bump uvicorn from 0.37.0 to 0.38.0
Bumps [uvicorn](https://github.com/Kludex/uvicorn) from 0.37.0 to 0.38.0.
- [Release notes](https://github.com/Kludex/uvicorn/releases)
- [Changelog](https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md)
- [Commits](https://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 03:04:11 +00:00
dependabot[bot]
5c3ebd3761 chore(deps): bump xgboost from 3.0.5 to 3.1.1
Bumps [xgboost](https://github.com/dmlc/xgboost) from 3.0.5 to 3.1.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/v3.0.5...v3.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 03:03:53 +00:00
dependabot[bot]
9050325fda chore(deps): bump fastapi from 0.119.0 to 0.119.1
Bumps [fastapi](https://github.com/fastapi/fastapi) from 0.119.0 to 0.119.1.
- [Release notes](https://github.com/fastapi/fastapi/releases)
- [Commits](https://github.com/fastapi/fastapi/compare/0.119.0...0.119.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 03:03:03 +00:00
dependabot[bot]
9ca2342a0b chore(deps): bump psutil from 7.1.0 to 7.1.1
Bumps [psutil](https://github.com/giampaolo/psutil) from 7.1.0 to 7.1.1.
- [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst)
- [Commits](https://github.com/giampaolo/psutil/compare/release-7.1.0...release-7.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 03:02:56 +00:00
dependabot[bot]
ad9bb75fd5 chore(deps): bump aiohttp from 3.13.0 to 3.13.1
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 03:02:51 +00:00
dependabot[bot]
f96dfd04f7 chore(deps-dev): bump types-cachetools in the types group
Bumps the types group with 1 update: [types-cachetools](https://github.com/typeshed-internal/stub_uploader).


Updates `types-cachetools` from 6.2.0.20250827 to 6.2.0.20251022
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 03:02:40 +00:00
dependabot[bot]
d63982c32c chore(deps-dev): bump ruff from 0.14.0 to 0.14.1
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.14.0 to 0.14.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/0.14.0...0.14.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 03:02:36 +00:00
Matthias
14b5392d5f Merge pull request #12420 from qinhanlei/uv-pip
Add support for uv in setup.sh
2025-10-26 09:47:48 +01:00
Matthias
16dd4073ff docs: update setup script docs for uv support 2025-10-26 09:32:36 +01:00
Matthias
9595936d73 chore: fix uv only install 2025-10-26 09:04:30 +01:00
Matthias
c18a52fd2d test: update tests for new error formatting 2025-10-25 13:15:41 +02:00
Matthias
75c39d3617 feat: improve strategy error warning
closes #12418
2025-10-25 13:15:24 +02:00
Matthias
911a803a56 fix: improve error-handling for odd configurations 2025-10-25 09:49:55 +02:00
Matthias
f04315fa8f fix: gracefully handle custom stake returning string
closes #12421
2025-10-25 09:42:45 +02:00
Matthias
89e68d7d4d test: add test case for string custom stake amount 2025-10-25 09:42:45 +02:00
Hanlei Qin
4fc5f33fa1 fix an omission 2025-10-25 15:16:20 +08:00
Matthias
c2056085c9 Merge pull request #12419 from stash86/main-stash
Fix typo
2025-10-25 08:49:17 +02:00
Hanlei Qin
9f7b7ef889 Use uv instead of pip if available 2025-10-25 12:33:14 +08:00
Stefano
cdb194a363 fix typo 2025-10-25 13:13:40 +09:00
Stefano
0986350f05 fix typo 2025-10-25 13:11:11 +09:00
Hanlei Qin
119cadcb2b Replace pip with uv for package installations in setup.sh 2025-10-24 19:55:57 +08:00
Matthias
803db3b55b Merge pull request #12413 from hippocritical/develop
add np.NAN to strategy updater conversion (which worked in 1.x but not in 2.x anymore)
2025-10-24 08:41:51 +02:00
hippocritical
c2fd6e3237 NAN is sometimes used by some programmers when numpy was 1.x but now on 2.x the caps version is disallowed.
Added the caps conversion to lower case nan to fix that automatically.

Source:
https://numpy.org/doc/2.0/reference/constants.html?utm_source=chatgpt.com
NaN and NAN are aliases of nan.
2025-10-24 08:11:44 +02:00
Matthias
bf7fc79519 Merge pull request #12412 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-10-23 19:46:01 +02:00
Freqtrade Bot
cded5bcb4c chore: update pre-commit hooks 2025-10-23 17:29:57 +00:00
Matthias
f8d3373e13 docs: update documentation to refer to psycopg3
It's the newer version with broader support for new packages (e.g. numpy2).

closes #12409
2025-10-23 19:11:43 +02:00
Matthias
f1d48c8189 test: explicitly test for psycopg3 2025-10-23 07:11:15 +02:00
Matthias
866bda8606 test: update test string for psycopg3 2025-10-23 07:06:36 +02:00
Matthias
78a00ef249 Merge pull request #12398 from freqtrade/fix/remove_deprecation_warning
Work around os.fork deprecation
2025-10-21 06:34:28 +02:00
Matthias
b6bc3042b4 Merge pull request #12408 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-10-21 06:25:23 +02:00
Freqtrade Bot
4ee699d27b chore: update pre-commit hooks 2025-10-21 03:19:09 +00:00
Matthias
2effa7a31b Merge branch 'develop' into fix/remove_deprecation_warning 2025-10-20 20:23:08 +02:00
Matthias
c50b77303d Merge pull request #12400 from qinhanlei/patch-1
Update sb3_contrib dependency condition
2025-10-20 20:20:55 +02:00
Matthias
40bfaa6245 chore: align pyproject.toml platform limitations 2025-10-20 19:41:50 +02:00
Matthias
f4656a0c6e test: ensure mp_start runs on startup 2025-10-20 19:30:32 +02:00
Matthias
161e5e3dfa refactor: switch mp-method to forkserver globally 2025-10-20 19:28:17 +02:00
Robert Caulk
023da4fc29 Merge pull request #12299 from freqtrade/dependabot/pip/develop/gymnasium-1.2.1
chore(deps): bump gymnasium from 0.29.1 to 1.2.1
2025-10-20 17:07:49 +02:00
dependabot[bot]
5c8261f8d1 chore(deps): bump gymnasium from 0.29.1 to 1.2.1
Bumps [gymnasium](https://github.com/Farama-Foundation/Gymnasium) from 0.29.1 to 1.2.1.
- [Release notes](https://github.com/Farama-Foundation/Gymnasium/releases)
- [Commits](https://github.com/Farama-Foundation/Gymnasium/compare/v0.29.1...v1.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 04:30:27 +00:00
Matthias
080aafa1da Merge pull request #12406 from freqtrade/dependabot/pip/develop/torch-2.9.0
chore(deps): bump torch from 2.8.0 to 2.9.0
2025-10-20 06:26:48 +02:00
Matthias
43d6a6782a Merge pull request #12402 from freqtrade/dependabot/pip/develop/cryptography-46.0.3
chore(deps): bump cryptography from 46.0.2 to 46.0.3
2025-10-20 06:25:52 +02:00
Matthias
f0028a6b6e Merge pull request #12407 from freqtrade/dependabot/pip/develop/humanize-4.14.0
chore(deps): bump humanize from 4.13.0 to 4.14.0
2025-10-20 06:25:09 +02:00
Matthias
98439f4e48 Merge pull request #12405 from freqtrade/dependabot/pip/develop/numpy-2.3.4
chore(deps): bump numpy from 2.3.3 to 2.3.4
2025-10-20 06:24:54 +02:00
Matthias
78802ae9aa Merge pull request #12404 from freqtrade/dependabot/pip/develop/numexpr-2.14.1
chore(deps): bump numexpr from 2.13.1 to 2.14.1
2025-10-20 06:24:24 +02:00
Matthias
99b4e5382e Merge pull request #12401 from freqtrade/dependabot/pip/develop/pydantic-2.12.2
chore(deps): bump pydantic from 2.12.0 to 2.12.2
2025-10-20 06:24:08 +02:00
Matthias
2b24f939da Merge pull request #12403 from freqtrade/dependabot/pip/develop/mkdocs-3c1a69b1c7
chore(deps): bump mkdocs-material from 9.6.21 to 9.6.22 in the mkdocs group
2025-10-20 06:23:24 +02:00
dependabot[bot]
3271e5cd43 chore(deps): bump humanize from 4.13.0 to 4.14.0
Bumps [humanize](https://github.com/python-humanize/humanize) from 4.13.0 to 4.14.0.
- [Release notes](https://github.com/python-humanize/humanize/releases)
- [Commits](https://github.com/python-humanize/humanize/compare/4.13.0...4.14.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 03:02:42 +00:00
dependabot[bot]
94bd6b7142 chore(deps): bump torch from 2.8.0 to 2.9.0
Bumps [torch](https://github.com/pytorch/pytorch) from 2.8.0 to 2.9.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.8.0...v2.9.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 03:02:37 +00:00
dependabot[bot]
b59c4caf81 chore(deps): bump numpy from 2.3.3 to 2.3.4
Bumps [numpy](https://github.com/numpy/numpy) from 2.3.3 to 2.3.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/v2.3.3...v2.3.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 03:02:21 +00:00
dependabot[bot]
8bfa3a5d11 chore(deps): bump numexpr from 2.13.1 to 2.14.1
Bumps [numexpr](https://github.com/pydata/numexpr) from 2.13.1 to 2.14.1.
- [Release notes](https://github.com/pydata/numexpr/releases)
- [Changelog](https://github.com/pydata/numexpr/blob/master/RELEASE_NOTES.rst)
- [Commits](https://github.com/pydata/numexpr/compare/v2.13.1...v2.14.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 03:02:14 +00:00
dependabot[bot]
b161924941 chore(deps): bump mkdocs-material in the mkdocs group
Bumps the mkdocs group with 1 update: [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `mkdocs-material` from 9.6.21 to 9.6.22
- [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.6.21...9.6.22)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 03:02:09 +00:00
dependabot[bot]
aad125211e chore(deps): bump cryptography from 46.0.2 to 46.0.3
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.2 to 46.0.3.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.2...46.0.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 03:02:03 +00:00
dependabot[bot]
39f8149e27 chore(deps): bump pydantic from 2.12.0 to 2.12.2
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.12.0 to 2.12.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.12.0...v2.12.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 03:02:00 +00:00
WingStone
d6541d81c3 Update sb3_contrib dependency condition
Install dependencies for development on macOS with Intel x86_64 Chip.
2025-10-20 10:49:35 +08:00
Matthias
763f08a08e test: test catboost on aarch64 runners 2025-10-19 16:46:33 +02:00
Matthias
886d5d1db6 chore: update catboost install 2025-10-19 16:45:13 +02:00
Matthias
9b1fc7a6d4 Merge pull request #12394 from freqtrade/feat/bitget_futures
Add support for bitget futures
2025-10-19 16:32:39 +02:00
Matthias
8d95ca3506 chore: disable deprecationWarning
Very targeted at  'CatBoostClassifier' object has no attribute '__sklearn_tags__'
2025-10-19 16:32:25 +02:00
Matthias
44ec500744 test: add Test-case to ensure hyperopt logging 2025-10-19 12:59:08 +02:00
Matthias
8526733b36 chore: update hyperopt test strategy to new interface 2025-10-19 12:55:00 +02:00
Matthias
9041000bc4 fix: attempt to work around deprecation message 2025-10-19 12:05:52 +02:00
Matthias
be16ffea23 fix: move logging setup to hyperopter
restores hyperopt logging functionality
2025-10-19 09:09:59 +02:00
Matthias
a0c4b520fc fix: okxus doesn't support futures trading 2025-10-19 08:24:06 +02:00
Matthias
dcd9e2ef14 feat: bitget stop orders don't block assets 2025-10-18 13:02:33 +02:00
Matthias
46dc378472 test: add bitget leverage prep test 2025-10-18 09:53:42 +02:00
Matthias
d1e73c1916 test: add test for cross liquidation price not supported 2025-10-18 09:48:48 +02:00
Matthias
0f60ee8763 feat: add bitget as supported exchange 2025-10-18 08:53:18 +02:00
Matthias
5b45f1bbc8 docs: add bitget as supported exchange 2025-10-18 08:52:52 +02:00
Matthias
d283252ac7 fix: bitget only provides 100 funding rate candles per call 2025-10-18 08:47:55 +02:00
Matthias
02a0ce8c49 test: enable online bitget tests 2025-10-18 08:47:55 +02:00
Matthias
f82d8f3b52 test: refactor _get_params test for simpler reading 2025-10-18 08:47:55 +02:00
Matthias
1f620257f9 test: test for get_params 2025-10-18 08:47:55 +02:00
Matthias
16e9109e96 test: add test for bitget exchange init 2025-10-18 08:47:55 +02:00
Matthias
0c65c915a4 feat: more settings for bitget futures 2025-10-18 08:47:55 +02:00
Matthias
7aca82b590 docs: clarify exchange warning 2025-10-18 08:47:55 +02:00
Matthias
99566b4d9b docs: slight refactor to exchanges structure 2025-10-18 08:47:55 +02:00
Matthias
eb31581c7b docs(bitget): Add futures notes for bitget 2025-10-18 08:47:55 +02:00
Matthias
d46af09c10 docs: add bitget to support matrix 2025-10-18 08:47:55 +02:00
Matthias
badc7ed18c feat(bitget): fix liquidation formula 2025-10-18 08:47:55 +02:00
Matthias
3da36eae31 feat: bitget futures order parameters 2025-10-18 08:47:55 +02:00
Matthias
fcbe58e971 feat: Add bitget exchange init 2025-10-18 08:47:55 +02:00
Matthias
572ce0b739 feat: bitget liquidation price calc 2025-10-18 08:47:55 +02:00
Matthias
0f31607617 feat: Enable bitget futures trading 2025-10-18 08:47:55 +02:00
Matthias
6a15f0c271 chore: update exchange docstrings 2025-10-18 08:45:56 +02:00
Matthias
d77bcf0e18 chore: update web proxy url 2025-10-16 20:51:57 +02:00
Matthias
5df0530223 Merge pull request #12389 from mrpabloyeah/add-day-of-week-to-backtest-breakdowns
Add day of week to backtest breakdowns
2025-10-16 20:16:02 +02:00
Matthias
522fa092ba test: add explicit weekday test 2025-10-16 19:23:53 +02:00
Matthias
8f6f2ab872 test: add explicit test for weekday change 2025-10-16 19:21:31 +02:00
Matthias
7185026378 chore: revert unnecessary period name customization 2025-10-16 19:17:10 +02:00
Matthias
db11844661 Merge pull request #12392 from freqtrade/dependabot/pip/develop/ccxt-4.5.11
chore(deps): bump ccxt from 4.5.10 to 4.5.11
2025-10-16 07:03:08 +02:00
Matthias
163d8a0e10 Merge pull request #12391 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-10-16 06:45:34 +02:00
dependabot[bot]
7a38423c1e chore(deps): bump ccxt from 4.5.10 to 4.5.11
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.5.10 to 4.5.11.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/v4.5.10...v4.5.11)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-16 04:43:09 +00:00
Matthias
46e0219040 chore: add devcontainer update to dependabot 2025-10-16 06:38:08 +02:00
Freqtrade Bot
1ff49aa614 chore: update pre-commit hooks 2025-10-16 03:17:22 +00:00
Matthias
c878c673ab fix: improve datetime for trade_list_to_dataframe
closes #12388
2025-10-15 19:36:06 +02:00
Matthias
642f24eba5 chore: fix odd debug message wording 2025-10-15 19:31:10 +02:00
Matthias
bdd60ecbbd fix: Set use_db for historic analysis
closes #12390
2025-10-15 18:27:20 +02:00
Matthias
4cf736911d fix: cleanup backtest after it ran 2025-10-15 18:19:02 +02:00
Matthias
0bf83f8744 chore: improved reset_backtest function 2025-10-15 18:17:55 +02:00
Matthias
6bd7fdb8ac chore: improved naming for method 2025-10-15 18:17:30 +02:00
Matthias
a745136190 chore: fix action version missmatch 2025-10-15 06:59:37 +02:00
Matthias
a672c32d6a chore: add dependabot cooldown configs 2025-10-15 06:58:31 +02:00
mrpabloyeah
1294724ee8 Add day of week to backtest breakdowns 2025-10-14 21:13:48 +02:00
Matthias
b13af0e88b Merge pull request #12385 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-10-14 06:50:12 +02:00
Matthias
0041bf5e4e test: use ft_additional_exchange_init in tests 2025-10-14 06:30:05 +02:00
Matthias
d7c027fc7a test: add ft_additional_exchange_init to simplify test setups 2025-10-14 06:29:59 +02:00
Matthias
b3ceaa87d7 chore: remove redundant comment 2025-10-14 06:29:44 +02:00
Freqtrade Bot
d237974ebe chore: update pre-commit hooks 2025-10-14 03:16:08 +00:00
Matthias
a82c852675 Merge pull request #12370 from freqtrade/dependabot/pip/develop/scipy-78fb2d86bd
chore(deps-dev): bump scipy-stubs from 1.16.2.0 to 1.16.2.3 in the scipy group
2025-10-13 08:45:48 +02:00
Matthias
bb76099b5a Merge pull request #12381 from freqtrade/dependabot/pip/develop/aiohttp-3.13.0
chore(deps): bump aiohttp from 3.12.15 to 3.13.0
2025-10-13 08:18:11 +02:00
Matthias
01ca34ebee chore: bump scipy-stubs in pre-commit config 2025-10-13 08:17:53 +02:00
dependabot[bot]
4af18a3471 chore(deps): bump aiohttp from 3.12.15 to 3.13.0
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 05:32:12 +00:00
dependabot[bot]
5d8500ff7f chore(deps-dev): bump scipy-stubs in the scipy group
Bumps the scipy group with 1 update: [scipy-stubs](https://github.com/scipy/scipy-stubs).


Updates `scipy-stubs` from 1.16.2.0 to 1.16.2.3
- [Release notes](https://github.com/scipy/scipy-stubs/releases)
- [Commits](https://github.com/scipy/scipy-stubs/compare/v1.16.2.0...v1.16.2.3)

---
updated-dependencies:
- dependency-name: scipy-stubs
  dependency-version: 1.16.2.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: scipy
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 05:25:30 +00:00
Matthias
8a59dfd495 Merge pull request #12380 from freqtrade/dependabot/pip/develop/pydantic-2.12.0
chore(deps): bump pydantic from 2.11.10 to 2.12.0
2025-10-13 07:24:30 +02:00
Matthias
f4da8edb90 Merge pull request #12376 from freqtrade/dependabot/pip/develop/sqlalchemy-2.0.44
chore(deps): bump sqlalchemy from 2.0.43 to 2.0.44
2025-10-13 07:20:41 +02:00
Matthias
f1824f6f2e Merge pull request #12368 from freqtrade/dependabot/pip/develop/types-42ec8c0646
chore(deps-dev): bump types-python-dateutil from 2.9.0.20250822 to 2.9.0.20251008 in the types group
2025-10-13 07:09:57 +02:00
dependabot[bot]
54b01bd44d chore(deps): bump pydantic from 2.11.10 to 2.12.0
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.11.10 to 2.12.0.
- [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.11.10...v2.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 04:48:24 +00:00
Matthias
634be642f2 Merge pull request #12377 from freqtrade/dependabot/pip/develop/aiofiles-25.1.0
chore(deps): bump aiofiles from 24.1.0 to 25.1.0
2025-10-13 06:47:28 +02:00
Matthias
2e5000a016 chore: bump sqlalchemy in pre-commit config 2025-10-13 06:47:14 +02:00
dependabot[bot]
b51ed49dbf chore(deps): bump sqlalchemy from 2.0.43 to 2.0.44
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 2.0.43 to 2.0.44.
- [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-version: 2.0.44
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 04:43:22 +00:00
Matthias
92d2bde559 chore: bump pre-commit python-dateutil stubs 2025-10-13 06:39:38 +02:00
Matthias
92ae444026 Merge pull request #12375 from freqtrade/dependabot/pip/develop/ccxt-4.5.10
chore(deps): bump ccxt from 4.5.7 to 4.5.10
2025-10-13 06:36:23 +02:00
Matthias
51795474d7 Merge pull request #12373 from freqtrade/dependabot/pip/develop/isort-7.0.0
chore(deps-dev): bump isort from 6.1.0 to 7.0.0
2025-10-13 06:35:04 +02:00
Matthias
63a37fc2d3 Merge pull request #12374 from freqtrade/dependabot/pip/develop/rich-14.2.0
chore(deps): bump rich from 14.1.0 to 14.2.0
2025-10-13 06:34:42 +02:00
Matthias
7d79ac1e56 Merge pull request #12378 from freqtrade/dependabot/pip/develop/ruff-0.14.0
chore(deps-dev): bump ruff from 0.13.3 to 0.14.0
2025-10-13 06:34:25 +02:00
Matthias
acf6d94ee1 Merge pull request #12371 from freqtrade/dependabot/pip/develop/cachetools-6.2.1
chore(deps): bump cachetools from 6.2.0 to 6.2.1
2025-10-13 06:34:05 +02:00
Matthias
a03e726aad Merge pull request #12372 from freqtrade/dependabot/pip/develop/filelock-3.20.0
chore(deps): bump filelock from 3.19.1 to 3.20.0
2025-10-13 06:33:45 +02:00
Matthias
6ce27e50f0 Merge pull request #12379 from freqtrade/dependabot/pip/develop/fastapi-0.119.0
chore(deps): bump fastapi from 0.118.0 to 0.119.0
2025-10-13 06:33:33 +02:00
Matthias
d3bdf1ab96 Merge pull request #12369 from freqtrade/dependabot/github_actions/develop/astral-sh/setup-uv-7.1.0
chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.0
2025-10-13 06:33:18 +02:00
dependabot[bot]
a0ec5f6fe2 chore(deps): bump fastapi from 0.118.0 to 0.119.0
Bumps [fastapi](https://github.com/fastapi/fastapi) from 0.118.0 to 0.119.0.
- [Release notes](https://github.com/fastapi/fastapi/releases)
- [Commits](https://github.com/fastapi/fastapi/compare/0.118.0...0.119.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 03:03:46 +00:00
dependabot[bot]
d512ae6c86 chore(deps-dev): bump ruff from 0.13.3 to 0.14.0
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.13.3 to 0.14.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/0.13.3...0.14.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 03:03:33 +00:00
dependabot[bot]
612790c730 chore(deps): bump aiofiles from 24.1.0 to 25.1.0
Bumps [aiofiles](https://github.com/Tinche/aiofiles) from 24.1.0 to 25.1.0.
- [Release notes](https://github.com/Tinche/aiofiles/releases)
- [Changelog](https://github.com/Tinche/aiofiles/blob/main/CHANGELOG.md)
- [Commits](https://github.com/Tinche/aiofiles/compare/v24.1.0...v25.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 03:03:25 +00:00
dependabot[bot]
0e84c203e6 chore(deps): bump ccxt from 4.5.7 to 4.5.10
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.5.7 to 4.5.10.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/v4.5.7...v4.5.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 03:02:24 +00:00
dependabot[bot]
61119d60b9 chore(deps): bump rich from 14.1.0 to 14.2.0
Bumps [rich](https://github.com/Textualize/rich) from 14.1.0 to 14.2.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/v14.1.0...v14.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 03:02:10 +00:00
dependabot[bot]
3870758ab8 chore(deps-dev): bump isort from 6.1.0 to 7.0.0
Bumps [isort](https://github.com/PyCQA/isort) from 6.1.0 to 7.0.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/6.1.0...7.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 03:02:06 +00:00
dependabot[bot]
1b76900b9e chore(deps): bump filelock from 3.19.1 to 3.20.0
Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.19.1 to 3.20.0.
- [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.19.1...3.20.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 03:02:00 +00:00
dependabot[bot]
b63d61f2b2 chore(deps): bump cachetools from 6.2.0 to 6.2.1
Bumps [cachetools](https://github.com/tkem/cachetools) from 6.2.0 to 6.2.1.
- [Changelog](https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/tkem/cachetools/compare/v6.2.0...v6.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 03:01:54 +00:00
dependabot[bot]
90e36700c3 chore(deps): bump astral-sh/setup-uv from 6.8.0 to 7.1.0
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.8.0 to 7.1.0.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](d0cc045d04...3259c6206f)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 7.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 03:01:30 +00:00
dependabot[bot]
d79b82d24e chore(deps-dev): bump types-python-dateutil in the types group
Bumps the types group with 1 update: [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader).


Updates `types-python-dateutil` from 2.9.0.20250822 to 2.9.0.20251008
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 03:01:15 +00:00
Matthias
b8e288e613 Merge pull request #12282 from mrpabloyeah/update-documentation-for-trade-and-order-objects
Update documentation for Trade and Order objects
2025-10-12 15:36:58 +02:00
Matthias
ca76ccb6af docs: improve some documentation wording 2025-10-12 15:22:36 +02:00
Matthias
bb6e33c8c4 docs: remove methods that are not considered as public interface 2025-10-12 10:29:07 +02:00
Matthias
f529b7b526 docs: Update trade-object documentation
partially reverts c1cd14 - includes a few enhancements to it
2025-10-12 10:25:56 +02:00
Matthias
ea0c51c498 Merge pull request #12201 from mihalt/fix_merge_informative_pair
Fix the truncation of values by merge_ordered in merge_informative_pair
2025-10-12 10:15:47 +02:00
Matthias
a9447e7edf Merge branch 'develop' into fix_merge_informative_pair 2025-10-12 09:51:43 +02:00
Matthias
93b87696c6 fix: handle case where informative does not overlap with the main data 2025-10-12 09:51:31 +02:00
Matthias
876875cff2 test: add test-case for no overlap merges 2025-10-12 09:51:15 +02:00
Matthias
2649ba0916 docs (freqAI): align docs with actual model name 2025-10-11 16:04:04 +02:00
Matthias
923f687a33 Merge pull request #12354 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-10-09 06:31:22 +02:00
Freqtrade Bot
613fdad671 chore: update pre-commit hooks 2025-10-09 03:15:03 +00:00
Matthias
d8a89a3a42 chore: re-add type requirement 2025-10-08 07:08:48 +02:00
Matthias
34cba1480e test: improved line-annotation test-case 2025-10-08 07:07:39 +02:00
Matthias
9ea249180a test: add annotation line test 2025-10-08 06:42:53 +02:00
Matthias
4ba13a4254 fic: Improve type safety for annotationType 2025-10-08 06:42:38 +02:00
Matthias
e6371f38fd chore: bump docker image to 3.13.8 2025-10-08 06:36:15 +02:00
Matthias
e55a196e8f docs: update docs for line annotations
closes #12307
2025-10-07 19:29:52 +02:00
Matthias
f9696d557c feat: Add line chart type 2025-10-07 19:29:52 +02:00
Matthias
0715f46a4a docs: fix broken doc example 2025-10-07 19:29:52 +02:00
Matthias
a5450672b1 feat: add line annotations 2025-10-07 19:29:52 +02:00
Matthias
39bf71680c test: Update test case description wording 2025-10-07 07:12:58 +02:00
Matthias
372cfeee33 fix: timeout exit count should consider remaining amount
closes #12343
2025-10-07 06:50:54 +02:00
Matthias
ca4e4efeb8 test: Add test scenario for partially filled exit
* followed by exit_timeout_count
* shouldn't place order for the full amount

part of #12343
2025-10-07 06:48:35 +02:00
Matthias
4c9e608a1a chore: bump version to 2025.9.1 2025-10-07 06:33:59 +02:00
Matthias
90665731c1 fix: bitvavo is now using tick-size for pricing and amount rounding 2025-10-07 06:33:35 +02:00
Matthias
7a9ea40d72 chore: bump ccxt to 4.5.7 2025-10-07 06:33:27 +02:00
Matthias
96c65dacdd Merge pull request #12345 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-10-07 06:27:24 +02:00
Freqtrade Bot
c46080f0b2 chore: update pre-commit hooks 2025-10-07 03:13:29 +00:00
Matthias
cfd7d0a38b test: add ccxt parse test for kraken
part of #12326
2025-10-06 19:13:20 +02:00
Matthias
0df1650f2d Merge pull request #12338 from freqtrade/dependabot/pip/develop/pydantic-2.11.10
chore(deps): bump pydantic from 2.11.9 to 2.11.10
2025-10-06 08:17:06 +02:00
Matthias
8bba3081ab Merge pull request #12330 from freqtrade/dependabot/pip/develop/mkdocs-d51531eb39
chore(deps): bump mkdocs-material from 9.6.20 to 9.6.21 in the mkdocs group
2025-10-06 07:06:38 +02:00
Matthias
d5f23bb5a8 Merge pull request #12336 from freqtrade/dependabot/pip/develop/certifi-2025.10.5
chore(deps): bump certifi from 2025.8.3 to 2025.10.5
2025-10-06 06:57:46 +02:00
Matthias
b81df43132 Merge pull request #12332 from freqtrade/dependabot/github_actions/develop/peter-evans/dockerhub-description-5.0.0
chore(deps): bump peter-evans/dockerhub-description from 4.0.2 to 5.0.0
2025-10-06 06:52:28 +02:00
Matthias
c5f303f0c4 Merge pull request #12339 from freqtrade/dependabot/pip/develop/pandas-2.3.3
chore(deps): bump pandas from 2.3.2 to 2.3.3
2025-10-06 06:51:51 +02:00
Matthias
3a51db79c9 docs: update open-source spelling to open source
based on https://opensource.org/blog/is-open-source-ever-hyphenated
2025-10-06 06:38:18 +02:00
dependabot[bot]
bda9606ae3 chore(deps): bump pydantic from 2.11.9 to 2.11.10
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.11.9 to 2.11.10.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/v2.11.10/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.11.9...v2.11.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 04:34:03 +00:00
Matthias
b59e208468 Merge pull request #12341 from freqtrade/dependabot/pip/develop/isort-6.1.0
chore(deps-dev): bump isort from 6.0.1 to 6.1.0
2025-10-06 06:30:41 +02:00
dependabot[bot]
6b6f0a1d87 chore(deps): bump pandas from 2.3.2 to 2.3.3
Bumps [pandas](https://github.com/pandas-dev/pandas) from 2.3.2 to 2.3.3.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Commits](https://github.com/pandas-dev/pandas/compare/v2.3.2...v2.3.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 04:30:26 +00:00
Matthias
5676dd89af Merge pull request #12337 from freqtrade/dependabot/pip/develop/cryptography-46.0.2
chore(deps): bump cryptography from 46.0.1 to 46.0.2
2025-10-06 06:30:25 +02:00
Matthias
3ec26e169e Merge pull request #12340 from freqtrade/dependabot/pip/develop/ruff-0.13.3
chore(deps-dev): bump ruff from 0.13.2 to 0.13.3
2025-10-06 06:29:25 +02:00
Matthias
2115af3857 Merge pull request #12342 from freqtrade/dependabot/pip/develop/plotly-6.3.1
chore(deps): bump plotly from 6.3.0 to 6.3.1
2025-10-06 06:29:07 +02:00
Matthias
ed3f619db6 Merge pull request #12335 from freqtrade/dependabot/pip/develop/numexpr-2.13.1
chore(deps): bump numexpr from 2.13.0 to 2.13.1
2025-10-06 06:28:52 +02:00
Matthias
e58f42de21 Merge pull request #12334 from freqtrade/dependabot/pip/develop/fastapi-0.118.0
chore(deps): bump fastapi from 0.117.1 to 0.118.0
2025-10-06 06:28:35 +02:00
Matthias
0f26fe4bc9 Merge pull request #12333 from freqtrade/dependabot/github_actions/develop/docker/login-action-3.6.0
chore(deps): bump docker/login-action from 3.5.0 to 3.6.0
2025-10-06 06:27:53 +02:00
Matthias
69a715dff1 Merge pull request #12331 from freqtrade/dependabot/github_actions/develop/astral-sh/setup-uv-6.8.0
chore(deps): bump astral-sh/setup-uv from 6.7.0 to 6.8.0
2025-10-06 06:27:36 +02:00
dependabot[bot]
dba758b5e4 chore(deps): bump plotly from 6.3.0 to 6.3.1
Bumps [plotly](https://github.com/plotly/plotly.py) from 6.3.0 to 6.3.1.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v6.3.0...v6.3.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 03:03:03 +00:00
dependabot[bot]
d6218892bf chore(deps-dev): bump isort from 6.0.1 to 6.1.0
Bumps [isort](https://github.com/PyCQA/isort) from 6.0.1 to 6.1.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/6.0.1...6.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 03:02:55 +00:00
dependabot[bot]
4608279305 chore(deps-dev): bump ruff from 0.13.2 to 0.13.3
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.13.2 to 0.13.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/0.13.2...0.13.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 03:02:49 +00:00
dependabot[bot]
bbd7a19ef9 chore(deps): bump cryptography from 46.0.1 to 46.0.2
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.1 to 46.0.2.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.1...46.0.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 03:02:24 +00:00
dependabot[bot]
9a95ad1435 chore(deps): bump certifi from 2025.8.3 to 2025.10.5
Bumps [certifi](https://github.com/certifi/python-certifi) from 2025.8.3 to 2025.10.5.
- [Commits](https://github.com/certifi/python-certifi/compare/2025.08.03...2025.10.05)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 03:02:19 +00:00
dependabot[bot]
5bd42d5625 chore(deps): bump numexpr from 2.13.0 to 2.13.1
Bumps [numexpr](https://github.com/pydata/numexpr) from 2.13.0 to 2.13.1.
- [Release notes](https://github.com/pydata/numexpr/releases)
- [Changelog](https://github.com/pydata/numexpr/blob/master/RELEASE_NOTES.rst)
- [Commits](https://github.com/pydata/numexpr/compare/v2.13.0...v2.13.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 03:02:07 +00:00
dependabot[bot]
0c446d45df chore(deps): bump fastapi from 0.117.1 to 0.118.0
Bumps [fastapi](https://github.com/fastapi/fastapi) from 0.117.1 to 0.118.0.
- [Release notes](https://github.com/fastapi/fastapi/releases)
- [Commits](https://github.com/fastapi/fastapi/compare/0.117.1...0.118.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 03:02:01 +00:00
dependabot[bot]
2bfc8d86a9 chore(deps): bump docker/login-action from 3.5.0 to 3.6.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.5.0 to 3.6.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](184bdaa072...5e57cd1181)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 3.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 03:01:53 +00:00
dependabot[bot]
98ab14f67e chore(deps): bump peter-evans/dockerhub-description from 4.0.2 to 5.0.0
Bumps [peter-evans/dockerhub-description](https://github.com/peter-evans/dockerhub-description) from 4.0.2 to 5.0.0.
- [Release notes](https://github.com/peter-evans/dockerhub-description/releases)
- [Commits](432a30c9e0...1b9a80c056)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 03:01:48 +00:00
dependabot[bot]
845e96f12e chore(deps): bump astral-sh/setup-uv from 6.7.0 to 6.8.0
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.7.0 to 6.8.0.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](b75a909f75...d0cc045d04)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 6.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 03:01:45 +00:00
dependabot[bot]
1ad75f5ec5 chore(deps): bump mkdocs-material in the mkdocs group
Bumps the mkdocs group with 1 update: [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `mkdocs-material` from 9.6.20 to 9.6.21
- [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.6.20...9.6.21)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 03:01:44 +00:00
Matthias
89b6e69340 Merge pull request #12311 from freqtrade/fix/allow-override
fix: Allow users to override the exchange check for FreqAI incase the…
2025-10-05 08:09:28 +02:00
Matthias
2d40807b66 chore: fix description typo 2025-10-05 07:56:42 +02:00
Matthias
8e44bc48b8 docs: update IOC documentation
related: #12322
2025-10-04 11:45:09 +02:00
Matthias
082fd0fd8b fix: "taker" may not always be filled for futures pairs
Gate fee removal:  https://github.com/ccxt/ccxt/pull/14271
2025-10-03 18:25:13 +02:00
Matthias
9e4af4f8ad Merge pull request #12321 from stash86/main-stash
fix typo
2025-10-03 18:02:05 +02:00
Stefano
0740f87a32 fix typo 2025-10-03 15:38:19 +09:00
Matthias
5542febef6 Merge pull request #12309 from freqtrade/feat/hyperliquid_cross
hyperliquid cross futures support
2025-10-02 18:06:47 +02:00
Matthias
4eba2c6a24 fix: bitvavo is now using tick-size for pricing and amount rounding 2025-10-02 07:20:30 +02:00
Matthias
e654c29c82 chore: bump ccxt to 4.5.7 2025-10-02 07:20:30 +02:00
Matthias
0bcd6e078b Merge pull request #12316 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-10-02 06:39:42 +02:00
Freqtrade Bot
4698c0a066 chore: update pre-commit hooks 2025-10-02 03:12:18 +00:00
Robert Caulk
70fa12f1b2 chore: log a warning that the user is in territory that might not work. 2025-10-01 16:36:55 +02:00
Robert Caulk
8d86cc1173 fix: Allow users to override the exchange check for FreqAI incase they know that they dont need historic data for their system 2025-10-01 16:34:10 +02:00
Matthias
c7aaa77e44 test: test cross margin calc for hyperliquid 2025-09-30 20:39:40 +02:00
Matthias
1e8252ffcc test: simplify hyperliquid test 2025-09-30 20:33:13 +02:00
Matthias
361b34641c chore: simplify hyperliquid dry-run calc 2025-09-30 20:33:03 +02:00
Matthias
88c0c3503f docs: Add cross margin warning note 2025-09-30 19:50:50 +02:00
Matthias
102fc3e184 test: add basic online tests for coinex exchange 2025-09-30 19:23:02 +02:00
Matthias
abd02979dd feat: add coinex subclass
closes #12306
2025-09-30 19:22:52 +02:00
Matthias
f6c4227ca6 feat: Add documentation to hyperliquid liquidation calc 2025-09-30 07:05:32 +02:00
Matthias
d6bc8f4a24 docs: enable hyperliquid cross 2025-09-30 06:47:09 +02:00
Matthias
a9c3799547 feat: enable hyperliquid cross futures 2025-09-30 06:34:05 +02:00
Matthias
3ea4603d1c Merge pull request #12305 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-09-30 06:26:21 +02:00
Freqtrade Bot
84dfb035b1 chore: update pre-commit hooks 2025-09-30 03:14:01 +00:00
Matthias
aacd8f49f4 chore: bump develop version to 2025.10-dev 2025-09-29 19:36:39 +02:00
Matthias
c66e221012 Merge pull request #12304 from freqtrade/new_release
New release 2025.9
2025-09-29 19:33:25 +02:00
Matthias
f38d2466df chore: bump version to 2025.9 2025-09-29 18:18:46 +02:00
Matthias
1cc92c645a Merge branch 'stable' into new_release 2025-09-29 18:18:35 +02:00
Matthias
ab764df411 chore(deps): bump ft-pandas-ta from 0.3.15 to 0.3.16 2025-09-29 18:16:35 +02:00
Matthias
5363ee7198 chore(deps): bump ft-pandas-ta from 0.3.15 to 0.3.16 2025-09-29 18:16:03 +02:00
Matthias
4b78ba42b1 Merge pull request #12302 from freqtrade/dependabot/pip/develop/ccxt-4.5.6
chore(deps): bump ccxt from 4.5.5 to 4.5.6
2025-09-29 06:32:55 +02:00
dependabot[bot]
567f118ce1 chore(deps): bump ccxt from 4.5.5 to 4.5.6
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.5.5 to 4.5.6.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/v4.5.5...v4.5.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-29 04:32:53 +00:00
Matthias
230e892482 Merge pull request #12298 from freqtrade/dependabot/pip/develop/uvicorn-0.37.0
chore(deps): bump uvicorn from 0.36.0 to 0.37.0
2025-09-29 06:32:02 +02:00
Matthias
9e616e81ad Merge pull request #12303 from freqtrade/dependabot/pip/develop/python-telegram-bot-22.5
chore(deps): bump python-telegram-bot from 22.4 to 22.5
2025-09-29 06:31:39 +02:00
Matthias
d1e055c015 Merge pull request #12301 from freqtrade/dependabot/pip/develop/ruff-0.13.2
chore(deps-dev): bump ruff from 0.13.1 to 0.13.2
2025-09-29 06:30:26 +02:00
Matthias
3bcd6694b7 Merge pull request #12300 from freqtrade/dependabot/pip/develop/numexpr-2.13.0
chore(deps): bump numexpr from 2.12.1 to 2.13.0
2025-09-29 06:30:18 +02:00
dependabot[bot]
86d8fc5ee3 chore(deps): bump python-telegram-bot from 22.4 to 22.5
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 22.4 to 22.5.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v22.4...v22.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-29 03:17:24 +00:00
dependabot[bot]
78f291264e chore(deps-dev): bump ruff from 0.13.1 to 0.13.2
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.13.1 to 0.13.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/0.13.1...0.13.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-29 03:13:53 +00:00
dependabot[bot]
fdc3c7ba09 chore(deps): bump numexpr from 2.12.1 to 2.13.0
Bumps [numexpr](https://github.com/pydata/numexpr) from 2.12.1 to 2.13.0.
- [Release notes](https://github.com/pydata/numexpr/releases)
- [Changelog](https://github.com/pydata/numexpr/blob/master/RELEASE_NOTES.rst)
- [Commits](https://github.com/pydata/numexpr/compare/v2.12.1...v2.13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-29 03:12:41 +00:00
dependabot[bot]
f8621e850f chore(deps): bump uvicorn from 0.36.0 to 0.37.0
Bumps [uvicorn](https://github.com/Kludex/uvicorn) from 0.36.0 to 0.37.0.
- [Release notes](https://github.com/Kludex/uvicorn/releases)
- [Changelog](https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md)
- [Commits](https://github.com/Kludex/uvicorn/compare/0.36.0...0.37.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-29 03:11:27 +00:00
Matthias
87c5f89b6c fix: ensure exportFilename is a path object 2025-09-28 11:36:46 +02:00
Matthias
780c794ef0 Merge pull request #12292 from freqtrade/maint/combine_ci
Combine CI definition
2025-09-27 18:23:39 +02:00
Matthias
8b4070dbcf chore(ci): parallel tests 2025-09-27 18:04:43 +02:00
Matthias
4e089fd17e chore(ci): split check between windows and linux 2025-09-27 17:23:16 +02:00
Matthias
f454006ec3 chore(ci): combine windows ci into generic test runner 2025-09-27 16:51:10 +02:00
Matthias
f5002929ee chore(ci): name some jobs properly 2025-09-27 16:03:00 +02:00
Matthias
4e1d75a3e1 chore(ci): improved job naming 2025-09-27 16:01:04 +02:00
Matthias
d4462ba5d8 chore(ci): remove useless alias 2025-09-27 15:55:23 +02:00
Matthias
6dc71269a2 chore(ci): simplify actions by combining linux and macOS runs 2025-09-27 15:54:27 +02:00
Matthias
730ccba535 chore: fix return type 2025-09-27 15:28:14 +02:00
Matthias
1175721579 docs: use exchange features include 2025-09-27 13:11:04 +02:00
Matthias
e5157d5471 docs: enhance exchange-features table 2025-09-27 13:10:18 +02:00
Matthias
7fcb23e0c7 docs: add exchange overview 2025-09-27 13:02:04 +02:00
Matthias
f075d90d99 chore: slight refactor in ft_has initialization 2025-09-27 12:14:34 +02:00
Matthias
bf94748058 docs: update showcase, update outdated link 2025-09-27 08:58:36 +02:00
Matthias
2890d13d92 feat: Improve styling of list-exchanges table 2025-09-27 08:54:25 +02:00
Matthias
9232778732 docs: add support policy to FAQ 2025-09-27 08:48:56 +02:00
Matthias
70a25f9837 Merge pull request #12259 from stash86/delist
Implement delisting check on futures market
2025-09-26 07:14:01 +02:00
Matthias
4434df1999 docs: improve doc wording 2025-09-26 06:59:22 +02:00
Matthias
b9e9f6f040 refactor: indicate private methods by convention 2025-09-26 06:47:36 +02:00
Matthias
f92caf0f1f chore: add response sample to private endpoint 2025-09-26 06:44:10 +02:00
Matthias
55b90917e4 docs: Improve documentation clarity 2025-09-26 06:38:02 +02:00
Matthias
d0546e998a chore: further restructuring to contributing guide 2025-09-25 19:21:13 +02:00
Matthias
e9f414b29c chore: improve contributing wording 2025-09-25 19:17:48 +02:00
Matthias
7638261e8f chore: update contributing documentation 2025-09-25 19:10:41 +02:00
Matthias
a049d6eab1 feat: add magin_mode to show_config response 2025-09-25 07:20:27 +02:00
Matthias
61f46b959e Merge pull request #12286 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-09-25 06:42:43 +02:00
Stefano
ccb1e4af02 Merge branch 'freqtrade:develop' into delist 2025-09-25 12:27:21 +09:00
Freqtrade Bot
06424cae28 chore: update pre-commit hooks 2025-09-25 03:15:49 +00:00
Matthias
9aeb2eaabd feat: add z-level to annotations 2025-09-24 18:13:42 +02:00
Matthias
c6061daec4 test: rename tests to match scheme 2025-09-23 20:17:36 +02:00
Matthias
5be0352705 test: add binance spot-delist test 2025-09-23 20:17:30 +02:00
Matthias
06995f26fd chore: improve reliability of binance spot delisting 2025-09-23 20:16:49 +02:00
Matthias
7b45844670 test: ensure non-unified ccxt method ain't going away. 2025-09-23 19:57:43 +02:00
Matthias
0a0c2adf7d chore: capture missing exception 2025-09-23 19:55:18 +02:00
Matthias
7aab3b34d6 test: add more tests for delist exchange code 2025-09-23 19:55:11 +02:00
Matthias
c4aa221c9b Merge pull request #12276 from freqtrade/dependabot/pip/develop/mypy-1.18.2
chore(deps-dev): bump mypy from 1.18.1 to 1.18.2
2025-09-23 06:36:42 +02:00
dependabot[bot]
da12071d8f chore(deps-dev): bump mypy from 1.18.1 to 1.18.2
Bumps [mypy](https://github.com/python/mypy) from 1.18.1 to 1.18.2.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.18.1...v1.18.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-23 06:16:26 +02:00
Matthias
581a9bb1c9 Merge pull request #12274 from freqtrade/dependabot/pip/develop/cryptography-46.0.1
chore(deps): bump cryptography from 45.0.7 to 46.0.1
2025-09-23 06:15:46 +02:00
Matthias
f5258510cc Merge pull request #12283 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-09-23 06:14:51 +02:00
Freqtrade Bot
99401f9d69 chore: update pre-commit hooks 2025-09-23 03:13:37 +00:00
mrpabloyeah
c1cd14cad2 Remove internal or useless attributes and unnecessary text 2025-09-23 01:01:36 +02:00
dependabot[bot]
729bea2d8e chore(deps): bump cryptography from 45.0.7 to 46.0.1
Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.7 to 46.0.1.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/45.0.7...46.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-22 20:21:39 +02:00
Matthias
8b72e4f23e chore: fix line-lengths 2025-09-22 20:16:46 +02:00
Matthias
17202c6d29 test: add test for DelistFilter 2025-09-22 19:59:12 +02:00
Matthias
567d4331fd test: initial delistFilter tests 2025-09-22 19:44:03 +02:00
mrpabloyeah
565b343dee Update documentation for Trade and Order objects 2025-09-22 19:38:49 +02:00
Matthias
92c9f443e8 test: add test for dp.check_delisting 2025-09-22 19:30:19 +02:00
Matthias
dd2d7bb863 docs: slightly restructure documentation 2025-09-22 19:22:22 +02:00
Stefano
9c0d612729 add example, make sure to raise error on unsupported exchanges and/or trading mode 2025-09-22 15:55:36 +09:00
Stefano
07d5636d1e Merge branch 'freqtrade:develop' into delist 2025-09-22 13:38:03 +09:00
Matthias
977cabb580 Merge pull request #12272 from freqtrade/dependabot/pip/develop/fastapi-0.117.1
chore(deps): bump fastapi from 0.116.1 to 0.117.1
2025-09-22 06:30:46 +02:00
Matthias
15a7e1d9d1 Merge pull request #12278 from freqtrade/dependabot/pip/develop/psutil-7.1.0
chore(deps): bump psutil from 7.0.0 to 7.1.0
2025-09-22 06:29:54 +02:00
Matthias
953ffcf204 Merge pull request #12277 from freqtrade/dependabot/pip/develop/uvicorn-0.36.0
chore(deps): bump uvicorn from 0.35.0 to 0.36.0
2025-09-22 06:29:31 +02:00
Matthias
b24e6e72c7 Merge pull request #12273 from freqtrade/dependabot/pip/develop/ccxt-4.5.5
chore(deps): bump ccxt from 4.5.4 to 4.5.5
2025-09-22 06:28:45 +02:00
Matthias
82b05f6b5a Merge pull request #12271 from freqtrade/dependabot/pip/develop/mkdocs-aa22fc2ea5
chore(deps): bump mkdocs-material from 9.6.19 to 9.6.20 in the mkdocs group
2025-09-22 06:28:33 +02:00
Matthias
a662802011 Merge pull request #12275 from freqtrade/dependabot/pip/develop/ruff-0.13.1
chore(deps-dev): bump ruff from 0.13.0 to 0.13.1
2025-09-22 06:28:14 +02:00
Matthias
5483ade786 Merge pull request #12270 from freqtrade/dependabot/pip/develop/pytest-8796ca11bd
chore(deps-dev): bump pytest-mock from 3.15.0 to 3.15.1 in the pytest group
2025-09-22 06:27:53 +02:00
dependabot[bot]
ae02a7007b chore(deps): bump psutil from 7.0.0 to 7.1.0
Bumps [psutil](https://github.com/giampaolo/psutil) from 7.0.0 to 7.1.0.
- [Changelog](https://github.com/giampaolo/psutil/blob/master/HISTORY.rst)
- [Commits](https://github.com/giampaolo/psutil/compare/release-7.0.0...release-7.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-22 03:02:47 +00:00
dependabot[bot]
3c6e058b00 chore(deps): bump uvicorn from 0.35.0 to 0.36.0
Bumps [uvicorn](https://github.com/Kludex/uvicorn) from 0.35.0 to 0.36.0.
- [Release notes](https://github.com/Kludex/uvicorn/releases)
- [Changelog](https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md)
- [Commits](https://github.com/Kludex/uvicorn/compare/0.35.0...0.36.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-22 03:02:44 +00:00
dependabot[bot]
ad3ddcaadb chore(deps-dev): bump ruff from 0.13.0 to 0.13.1
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.13.0 to 0.13.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/0.13.0...0.13.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-22 03:02:23 +00:00
dependabot[bot]
be56052417 chore(deps): bump ccxt from 4.5.4 to 4.5.5
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.5.4 to 4.5.5.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/v4.5.4...v4.5.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-22 03:02:06 +00:00
dependabot[bot]
9a888d9896 chore(deps): bump fastapi from 0.116.1 to 0.117.1
Bumps [fastapi](https://github.com/fastapi/fastapi) from 0.116.1 to 0.117.1.
- [Release notes](https://github.com/fastapi/fastapi/releases)
- [Commits](https://github.com/fastapi/fastapi/compare/0.116.1...0.117.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-22 03:01:51 +00:00
dependabot[bot]
24a7e585e4 chore(deps): bump mkdocs-material in the mkdocs group
Bumps the mkdocs group with 1 update: [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `mkdocs-material` from 9.6.19 to 9.6.20
- [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.6.19...9.6.20)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-22 03:01:42 +00:00
dependabot[bot]
2120f1ed5b chore(deps-dev): bump pytest-mock in the pytest group
Bumps the pytest group with 1 update: [pytest-mock](https://github.com/pytest-dev/pytest-mock).


Updates `pytest-mock` from 3.15.0 to 3.15.1
- [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.15.0...v3.15.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-22 03:01:33 +00:00
Matthias
3a2bb22cb3 Merge pull request #12268 from freqtrade/maint/cache
changes to CI caching
2025-09-21 17:40:32 +02:00
Matthias
a7c4ec6eaf chore: try without brew python fixes
Should work now since we're using UV...
2025-09-21 16:51:13 +02:00
Matthias
f7b934b306 chore(ci): try to not prune uv cache 2025-09-21 16:21:32 +02:00
Matthias
d34e7a1e8e chore: don't retry bootstrap indefinitely
better behavior is to stop after a couple  of attempts
2025-09-21 15:02:34 +02:00
Matthias
4804ec986a chore: cleanup unused (and now unsupported) comments 2025-09-21 15:02:24 +02:00
Matthias
16117e5b6c chore: remove obsolete todo 2025-09-20 20:23:43 +02:00
Matthias
985805e0d5 test: add test for order_book_to_dataframe 2025-09-20 20:23:23 +02:00
Matthias
78acaf8f4c Merge pull request #12214 from mrpabloyeah/fix-shufflefilter-behavior-in-backtesting
Fix ShuffleFilter behavior in backtesting
2025-09-19 20:36:37 +02:00
Matthias
a1dad065b2 docs: enhance doc wording around pairlists 2025-09-19 20:32:01 +02:00
Matthias
3b03d4346c docs: enhance freqUI documentation page structure 2025-09-19 20:31:03 +02:00
Matthias
c6551819cd chore: re-word help string 2025-09-19 20:23:36 +02:00
Matthias
e58635a881 test: minor adjustments to new tests 2025-09-19 20:23:07 +02:00
Matthias
8e3331d0db chore: rename variable for clarity 2025-09-19 20:16:44 +02:00
Matthias
8391a0612d chore: use ccxt's "set_markets_from_exchange" instead of manual logic 2025-09-18 07:11:55 +02:00
Matthias
68c00d1c4d chore: bump ccxt min-version requirement
this will allow us to use new features
e.g. `.set_markets_from_exchange()`
2025-09-18 07:11:55 +02:00
Matthias
f48f24ce2e Merge pull request #12263 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-09-18 06:29:06 +02:00
Freqtrade Bot
9d5a88416a chore: update pre-commit hooks 2025-09-18 03:12:21 +00:00
Stefano
a314786056 Merge branch 'delist' of https://github.com/stash86/freqtrade into delist 2025-09-17 13:38:14 +09:00
Stefano
aee9b2c749 remove lock 2025-09-17 13:38:09 +09:00
Stefano
3fffee3b05 Merge branch 'freqtrade:develop' into delist 2025-09-17 11:55:26 +09:00
Stefano
72abae7b94 disable delisting check on non-trading mode 2025-09-17 11:38:28 +09:00
Stefano
a300df7ff3 fix precommit 2025-09-17 09:22:21 +09:00
Stefano
8e500d4601 add DelistFilter 2025-09-17 09:16:05 +09:00
Matthias
f6e1442fdf Merge pull request #12257 from stash86/main-stash
Update API docs
2025-09-16 21:26:44 +02:00
Stefano
d8d8260d76 remove logger 2025-09-16 16:11:23 +09:00
Stefano
72dd0d062b add spot check for binance 2025-09-16 15:52:19 +09:00
Stefano
03c67d6a3b switch to use dataprovider to give flexibility to users 2025-09-16 14:59:44 +09:00
Matthias
314cd10e27 Merge pull request #12260 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-09-16 06:28:36 +02:00
Freqtrade Bot
6e6a929fac chore: update pre-commit hooks 2025-09-16 03:12:05 +00:00
Stefano
d069f5477e add delisted pair to blacklist 2025-09-16 11:06:34 +09:00
Stefano
a4a5fbe4a8 add column name for bybit and okx 2025-09-16 10:53:00 +09:00
Stefano
01e288297a fix precommit 2025-09-16 09:33:48 +09:00
Stefano
7564b1e6df remove extra log, fix delivery time check for binance 2025-09-16 09:23:20 +09:00
Stefano
cf010c3f17 initial concept 2025-09-16 08:54:47 +09:00
Stefano
5ff95db9e1 move the example of blacklist to Programmatic Use card 2025-09-16 08:17:35 +09:00
Matthias
ada72d2264 Merge pull request #12247 from freqtrade/dependabot/pip/develop/ruff-0.13.0
chore(deps-dev): bump ruff from 0.12.12 to 0.13.0
2025-09-15 20:21:40 +02:00
Matthias
9f436dcd1e chore: fix RUF043 violations 2025-09-15 19:20:20 +02:00
Matthias
95a710d4a8 chore: fix RUF059 violations 2025-09-15 19:15:43 +02:00
Matthias
bf5d300a54 Merge pull request #12248 from freqtrade/dependabot/pip/develop/pydantic-2.11.9
chore(deps): bump pydantic from 2.11.7 to 2.11.9
2025-09-15 11:45:52 +02:00
Matthias
f7a1325339 Merge pull request #12246 from freqtrade/dependabot/pip/develop/scipy-26573e6263
chore(deps): bump the scipy group with 2 updates
2025-09-15 11:29:03 +02:00
Stefano
e13152715c Merge branch 'freqtrade:develop' into main-stash 2025-09-15 17:32:04 +09:00
Stefano
19a35ed111 add examples on API docs. Fix some params name 2025-09-15 17:29:33 +09:00
Matthias
e62ba8ed1e chore: update scipy-stubs in pre-commit 2025-09-15 08:52:49 +02:00
Matthias
f62ded94bb Merge pull request #12251 from freqtrade/dependabot/pip/develop/numpy-2.3.3
chore(deps): bump numpy from 2.3.2 to 2.3.3
2025-09-15 08:27:25 +02:00
dependabot[bot]
74f459d7ed chore(deps): bump numpy from 2.3.2 to 2.3.3
Bumps [numpy](https://github.com/numpy/numpy) from 2.3.2 to 2.3.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/v2.3.2...v2.3.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 05:59:20 +00:00
dependabot[bot]
815a351435 chore(deps): bump the scipy group with 2 updates
Bumps the scipy group with 2 updates: [scipy](https://github.com/scipy/scipy) and [scipy-stubs](https://github.com/scipy/scipy-stubs).


Updates `scipy` from 1.16.1 to 1.16.2
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.16.1...v1.16.2)

Updates `scipy-stubs` from 1.16.1.1 to 1.16.2.0
- [Release notes](https://github.com/scipy/scipy-stubs/releases)
- [Commits](https://github.com/scipy/scipy-stubs/compare/v1.16.1.1...v1.16.2.0)

---
updated-dependencies:
- dependency-name: scipy
  dependency-version: 1.16.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: scipy
- dependency-name: scipy-stubs
  dependency-version: 1.16.2.0
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: scipy
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 05:59:02 +00:00
Matthias
9857f30703 Merge pull request #12252 from freqtrade/dependabot/pip/develop/numexpr-2.12.1
chore(deps): bump numexpr from 2.11.0 to 2.12.1
2025-09-15 07:58:08 +02:00
Matthias
a7de2cf682 Merge pull request #12242 from freqtrade/dependabot/pip/develop/types-91b7a93ceb
chore(deps-dev): bump types-requests from 2.32.4.20250809 to 2.32.4.20250913 in the types group
2025-09-15 07:57:40 +02:00
dependabot[bot]
5e2f4924d6 chore(deps-dev): bump ruff from 0.12.12 to 0.13.0
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.12 to 0.13.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/0.12.12...0.13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 05:48:27 +00:00
Matthias
b74a334f25 Merge pull request #12250 from freqtrade/dependabot/pip/develop/mypy-1.18.1
chore(deps-dev): bump mypy from 1.17.1 to 1.18.1
2025-09-15 07:43:37 +02:00
Matthias
58c9a61cf0 Merge pull request #12253 from freqtrade/dependabot/pip/develop/scikit-learn-1.7.2
chore(deps): bump scikit-learn from 1.7.1 to 1.7.2
2025-09-15 07:18:23 +02:00
Matthias
d5620cf8b5 chore: bump types-requests in pre-commit config 2025-09-15 07:12:06 +02:00
Matthias
2e50c100f9 Merge pull request #12254 from freqtrade/dependabot/pip/develop/python-telegram-bot-22.4
chore(deps): bump python-telegram-bot from 22.3 to 22.4
2025-09-15 07:00:27 +02:00
dependabot[bot]
776d9ac5e0 chore(deps): bump numexpr from 2.11.0 to 2.12.1
Bumps [numexpr](https://github.com/pydata/numexpr) from 2.11.0 to 2.12.1.
- [Release notes](https://github.com/pydata/numexpr/releases)
- [Changelog](https://github.com/pydata/numexpr/blob/master/RELEASE_NOTES.rst)
- [Commits](https://github.com/pydata/numexpr/compare/v2.11.0...v2.12.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 05:00:16 +00:00
Matthias
301e348789 Merge pull request #12243 from freqtrade/dependabot/github_actions/develop/astral-sh/setup-uv-6.7.0
chore(deps): bump astral-sh/setup-uv from 6.6.1 to 6.7.0
2025-09-15 06:59:54 +02:00
Matthias
6467d85059 Merge pull request #12244 from freqtrade/dependabot/github_actions/develop/zizmorcore/zizmor-action-0.2.0
chore(deps): bump zizmorcore/zizmor-action from 0.1.2 to 0.2.0
2025-09-15 06:59:15 +02:00
dependabot[bot]
4b4d090d39 chore(deps-dev): bump mypy from 1.17.1 to 1.18.1
Bumps [mypy](https://github.com/python/mypy) from 1.17.1 to 1.18.1.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.17.1...v1.18.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 04:56:25 +00:00
Matthias
2ddafa28f2 Merge pull request #12249 from freqtrade/dependabot/pip/develop/bottleneck-1.6.0
chore(deps): bump bottleneck from 1.5.0 to 1.6.0
2025-09-15 06:56:10 +02:00
Matthias
d6bb47816c Merge pull request #12256 from freqtrade/dependabot/pip/develop/ccxt-4.5.4
chore(deps): bump ccxt from 4.5.3 to 4.5.4
2025-09-15 06:55:30 +02:00
Matthias
f40d90cf08 Merge pull request #12245 from freqtrade/dependabot/pip/develop/pytest-b85b31bc10
chore(deps-dev): bump the pytest group with 2 updates
2025-09-15 06:54:51 +02:00
dependabot[bot]
ab7c1ec24f chore(deps): bump ccxt from 4.5.3 to 4.5.4
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.5.3 to 4.5.4.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/v4.5.3...v4.5.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 03:54:21 +00:00
dependabot[bot]
be5969a1e1 chore(deps): bump python-telegram-bot from 22.3 to 22.4
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 22.3 to 22.4.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v22.3...v22.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 03:03:48 +00:00
dependabot[bot]
992d173adc chore(deps): bump scikit-learn from 1.7.1 to 1.7.2
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 1.7.1 to 1.7.2.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.7.1...1.7.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 03:03:41 +00:00
dependabot[bot]
5396519b20 chore(deps): bump bottleneck from 1.5.0 to 1.6.0
Bumps [bottleneck](https://github.com/pydata/bottleneck) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/pydata/bottleneck/releases)
- [Changelog](https://github.com/pydata/bottleneck/blob/master/RELEASE.rst)
- [Commits](https://github.com/pydata/bottleneck/compare/v1.5.0...v1.6.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 03:02:30 +00:00
dependabot[bot]
d8122f5d33 chore(deps): bump pydantic from 2.11.7 to 2.11.9
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.11.7 to 2.11.9.
- [Release notes](https://github.com/pydantic/pydantic/releases)
- [Changelog](https://github.com/pydantic/pydantic/blob/v2.11.9/HISTORY.md)
- [Commits](https://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 03:02:26 +00:00
dependabot[bot]
92f8b2dd02 chore(deps-dev): bump the pytest group with 2 updates
Bumps the pytest group with 2 updates: [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) and [pytest-cov](https://github.com/pytest-dev/pytest-cov).


Updates `pytest-asyncio` from 1.1.0 to 1.2.0
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v1.1.0...v1.2.0)

Updates `pytest-cov` from 6.3.0 to 7.0.0
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v6.3.0...v7.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 03:01:47 +00:00
dependabot[bot]
29e35cf824 chore(deps): bump zizmorcore/zizmor-action from 0.1.2 to 0.2.0
Bumps [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) from 0.1.2 to 0.2.0.
- [Release notes](https://github.com/zizmorcore/zizmor-action/releases)
- [Commits](5ca5fc7a47...e673c3917a)

---
updated-dependencies:
- dependency-name: zizmorcore/zizmor-action
  dependency-version: 0.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 03:01:45 +00:00
dependabot[bot]
26ff88c71a chore(deps): bump astral-sh/setup-uv from 6.6.1 to 6.7.0
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.6.1 to 6.7.0.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](557e51de59...b75a909f75)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 6.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 03:01:42 +00:00
dependabot[bot]
7b3951f1e5 chore(deps-dev): bump types-requests in the types group
Bumps the types group with 1 update: [types-requests](https://github.com/typeshed-internal/stub_uploader).


Updates `types-requests` from 2.32.4.20250809 to 2.32.4.20250913
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 03:01:24 +00:00
mrpabloyeah
5dbfc92c5a Add --enable-dynamic-pairlist option in backtesting 2025-09-14 13:58:53 +02:00
Matthias
0ca846b2c5 test: update test comment 2025-09-14 10:34:11 +02:00
Matthias
747eac0417 chore: update code to use at
which has better performance than chaining iloc and column selection
2025-09-14 10:33:43 +02:00
Matthias
88cc24c5b9 chore: fix odd code comment 2025-09-14 10:33:28 +02:00
Matthias
0111e97856 test: update test 2025-09-14 10:33:09 +02:00
Matthias
a14281722a chore: remove no longer necessary TODO comments 2025-09-14 10:12:59 +02:00
Matthias
a80f3ae919 fix: re-add candle_type_def to configuration
Temporary fix for now ...
closes #12239
2025-09-13 13:59:25 +02:00
mrpabloyeah
5f558137d3 Add cache for expanded_blacklist() in PairListManager in backtest mode 2025-09-12 13:01:50 +02:00
Matthias
ecd66f8a64 fix: backtesting through UI not working consecutive times
closes #12239
2025-09-11 20:14:12 +02:00
Matthias
8d965d4833 docs: Add link to storing custom data from order_filled
part of #12238
2025-09-11 19:29:23 +02:00
Matthias
25a3de653c Merge pull request #12237 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-09-11 06:31:23 +02:00
Freqtrade Bot
ac519a273b chore: update pre-commit hooks 2025-09-11 03:14:58 +00:00
Matthias
68429f9c37 fix: improve wording for config overriding strategy values
closes #12212
2025-09-10 20:17:53 +02:00
Matthias
5cb41badc1 chore: don't log timeframe from cli twice
part of #12212
2025-09-10 20:16:21 +02:00
Matthias
54bebeabb7 Merge pull request #12229 from freqtrade/lookahead_analysis_12168
Lookahead analysis - fix false positives
2025-09-10 19:46:29 +02:00
Matthias
3a17c2b55c Merge pull request #12232 from stash86/main-stash
correctly handle pairlist that use wildcard
2025-09-10 06:51:22 +02:00
Stefano
7b7b8b8f8b correctly handle pairlist that use wildcard 2025-09-10 09:09:24 +09:00
mrpabloyeah
55201b6224 Fix: Hyperopt breaks when self.dynamic_pairlist is set to True 2025-09-09 20:17:14 +02:00
Matthias
49b9296cd9 test: Add futures to test matrix 2025-09-09 19:43:00 +02:00
Matthias
09fabd911e test: simplify and improve fetch_ohlcv test
Also adress okx mark oddity - which didn't show up before due to odd
test setup (using "" instead of "spot").
2025-09-09 19:42:17 +02:00
mrpabloyeah
43be752847 Do not verify the backlist if it is empty 2025-09-09 19:24:32 +02:00
Matthias
6cfd31c705 fix: "price" shouldn't be sent for regular futures candles 2025-09-09 19:18:28 +02:00
mrpabloyeah
3bce9278bd Add cache for gen_pairlist() in StaticPairList in backtest mode 2025-09-09 14:37:08 +02:00
Matthias
068caf159d test: update test for new okx candle limits 2025-09-09 07:12:03 +02:00
Matthias
eb8875b64b feat: adjust okx ohlcv candle limits 2025-09-09 07:11:42 +02:00
Matthias
97578c0831 Merge pull request #12231 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-09-09 06:31:08 +02:00
Freqtrade Bot
7219f71bc1 chore: update pre-commit hooks 2025-09-09 03:15:50 +00:00
mrpabloyeah
eea9133b3f test_time_pair_generator_open_trades_first() 2025-09-09 03:03:07 +02:00
mrpabloyeah
a8f543ce62 Add test_time_pair_generator_refresh_pairlist() 2025-09-09 03:01:46 +02:00
Matthias
b35172a3b8 chore: export lookahead command partial 2025-09-08 20:43:58 +02:00
Matthias
7b8f0583a4 test: add test for order_type force behavior 2025-09-08 20:02:09 +02:00
Matthias
7ae89711dd docs: update docs for lookahead analysis override 2025-09-08 19:52:38 +02:00
Matthias
a2c3729254 feat: Override order types for lookahead analysis
this avoids false positives - but could cause false-negatives
if the problem is in a pricing callback.
`--allow-limit-orders` can re-allow limit orders to test for this scenario.

part of #12168
2025-09-08 19:52:15 +02:00
Matthias
14c9f783d5 refactor: Improve clarity of method name 2025-09-08 19:40:20 +02:00
Matthias
6c9c709c65 chore: use fstring in strategy helper 2025-09-08 19:37:46 +02:00
Matthias
1c2ffc6aaa chore: improve log message 2025-09-08 19:32:20 +02:00
Matthias
a6d2bc5238 chore: fix docker armhf build 2025-09-08 19:12:27 +02:00
mrpabloyeah
737d2804d2 Fix spelling mistake 2025-09-08 17:47:33 +02:00
Matthias
3e14c2664e Merge pull request #12218 from freqtrade/dependabot/pip/develop/pytest-85bdb35c79
chore(deps-dev): bump the pytest group with 3 updates
2025-09-08 07:40:23 +02:00
Matthias
78bd8554aa Merge pull request #12221 from freqtrade/dependabot/pip/develop/ta-lib-0.6.7
chore(deps): bump ta-lib from 0.6.6 to 0.6.7
2025-09-08 07:39:43 +02:00
Matthias
f1d5679fba Merge pull request #12223 from freqtrade/dependabot/pip/develop/cryptography-45.0.7
chore(deps): bump cryptography from 45.0.6 to 45.0.7
2025-09-08 07:30:47 +02:00
dependabot[bot]
a9e82b7fc2 chore(deps-dev): bump the pytest group with 3 updates
Bumps the pytest group with 3 updates: [pytest](https://github.com/pytest-dev/pytest), [pytest-cov](https://github.com/pytest-dev/pytest-cov) and [pytest-mock](https://github.com/pytest-dev/pytest-mock).


Updates `pytest` from 8.4.1 to 8.4.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.4.1...8.4.2)

Updates `pytest-cov` from 6.2.1 to 6.3.0
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v6.2.1...v6.3.0)

Updates `pytest-mock` from 3.14.1 to 3.15.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.14.1...v3.15.0)

---
updated-dependencies:
- dependency-name: pytest
  dependency-version: 8.4.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: pytest
- dependency-name: pytest-cov
  dependency-version: 6.3.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: pytest
- dependency-name: pytest-mock
  dependency-version: 3.15.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 05:09:00 +00:00
dependabot[bot]
21f77f9c5d chore(deps): bump cryptography from 45.0.6 to 45.0.7
Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.6 to 45.0.7.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/45.0.6...45.0.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 05:05:45 +00:00
Matthias
c4c0198d20 chore: Update ta-lib armhf wheel 2025-09-08 07:04:19 +02:00
dependabot[bot]
d72d13ed58 chore(deps): bump ta-lib from 0.6.6 to 0.6.7
Bumps [ta-lib](https://github.com/ta-lib/ta-lib-python) from 0.6.6 to 0.6.7.
- [Release notes](https://github.com/ta-lib/ta-lib-python/releases)
- [Changelog](https://github.com/TA-Lib/ta-lib-python/blob/master/CHANGELOG)
- [Commits](https://github.com/ta-lib/ta-lib-python/compare/v0.6.6...v0.6.7)

---
updated-dependencies:
- dependency-name: ta-lib
  dependency-version: 0.6.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 05:01:16 +00:00
Matthias
5ea0705547 Merge pull request #12225 from freqtrade/dependabot/pip/develop/ruff-0.12.12
chore(deps-dev): bump ruff from 0.12.11 to 0.12.12
2025-09-08 06:55:33 +02:00
Matthias
575b50deda Merge pull request #12224 from freqtrade/dependabot/pip/develop/xgboost-3.0.5
chore(deps): bump xgboost from 3.0.4 to 3.0.5
2025-09-08 06:51:35 +02:00
Matthias
a0d1a04605 Merge pull request #12219 from freqtrade/dependabot/pip/develop/mkdocs-9523af169b
chore(deps): bump mkdocs-material from 9.6.18 to 9.6.19 in the mkdocs group
2025-09-08 06:51:14 +02:00
Matthias
aa4704e37d Merge pull request #12220 from freqtrade/dependabot/pip/develop/markdown-3.9
chore(deps): bump markdown from 3.8.2 to 3.9
2025-09-08 06:51:00 +02:00
Matthias
4143a2559a Merge pull request #12215 from freqtrade/dependabot/github_actions/develop/astral-sh/setup-uv-6.6.1
chore(deps): bump astral-sh/setup-uv from 6.6.0 to 6.6.1
2025-09-08 06:50:35 +02:00
Matthias
693a8fa979 Merge pull request #12217 from freqtrade/dependabot/github_actions/develop/actions/setup-python-6
chore(deps): bump actions/setup-python from 5 to 6
2025-09-08 06:50:12 +02:00
Matthias
6ec639d347 Merge pull request #12216 from freqtrade/dependabot/github_actions/develop/pypa/gh-action-pypi-publish-1.13.0
chore(deps): bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0
2025-09-08 06:49:56 +02:00
Matthias
52d5d35afb Merge pull request #12222 from freqtrade/dependabot/pip/develop/ccxt-4.5.3
chore(deps): bump ccxt from 4.5.2 to 4.5.3
2025-09-08 06:47:36 +02:00
dependabot[bot]
8a21cc6d18 chore(deps-dev): bump ruff from 0.12.11 to 0.12.12
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.11 to 0.12.12.
- [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/0.12.11...0.12.12)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 03:02:47 +00:00
dependabot[bot]
b6bedf20ce chore(deps): bump xgboost from 3.0.4 to 3.0.5
Bumps [xgboost](https://github.com/dmlc/xgboost) from 3.0.4 to 3.0.5.
- [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/v3.0.4...v3.0.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 03:02:37 +00:00
dependabot[bot]
9f02279d5a chore(deps): bump ccxt from 4.5.2 to 4.5.3
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.5.2 to 4.5.3.
- [Release notes](https://github.com/ccxt/ccxt/releases)
- [Changelog](https://github.com/ccxt/ccxt/blob/master/exchanges.cfg)
- [Commits](https://github.com/ccxt/ccxt/compare/v4.5.2...v4.5.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 03:02:26 +00:00
dependabot[bot]
6f9906e935 chore(deps): bump markdown from 3.8.2 to 3.9
Bumps [markdown](https://github.com/Python-Markdown/markdown) from 3.8.2 to 3.9.
- [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.8.2...3.9.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 03:02:10 +00:00
dependabot[bot]
e934c3934d chore(deps): bump mkdocs-material in the mkdocs group
Bumps the mkdocs group with 1 update: [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `mkdocs-material` from 9.6.18 to 9.6.19
- [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.6.18...9.6.19)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 03:01:58 +00:00
dependabot[bot]
d6f78e4cc8 chore(deps): bump actions/setup-python from 5 to 6
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 03:01:46 +00:00
dependabot[bot]
f9cc05b202 chore(deps): bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0
Bumps [pypa/gh-action-pypi-publish](https://github.com/pypa/gh-action-pypi-publish) from 1.12.4 to 1.13.0.
- [Release notes](https://github.com/pypa/gh-action-pypi-publish/releases)
- [Commits](76f52bc884...ed0c53931b)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 03:01:42 +00:00
dependabot[bot]
76eb92b821 chore(deps): bump astral-sh/setup-uv from 6.6.0 to 6.6.1
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.6.0 to 6.6.1.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](4959332f0f...557e51de59)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 6.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 03:01:38 +00:00
mrpabloyeah
e749051dbc Fix ShuffleFilter behavior in backtesting 2025-09-07 23:28:33 +02:00
Matthias
6de7c70e7e Merge pull request #11625 from alisalama/develop
Parallelisation of iterative data downloads for speed improvement
2025-09-07 19:31:52 +02:00
Matthias
74f52b14cd chore(ci): disable package cleanup on pull requests 2025-09-07 19:31:12 +02:00
Matthias
e33363bf6c feat: allow disabling parallel data-download per exchange 2025-09-07 18:18:34 +02:00
Matthias
7d77e63b81 chore: simplify comment 2025-09-07 15:54:16 +02:00
Matthias
cfa855dec8 test: remove missleading comment 2025-09-07 15:53:56 +02:00
Matthias
34a72a0555 feat: doin't drop last candle for funding fees 2025-09-07 15:52:44 +02:00
Matthias
a9db7d0286 chore: improve log wording 2025-09-07 15:35:00 +02:00
Matthias
19140e9cfa doc: fix funding fee doc sample 2025-09-07 12:01:32 +02:00
Matthias
b0c3f2ff7f chore(ci): fix actions permission 2025-09-07 09:21:22 +02:00
Matthias
8686b56b9e chore(ci): automatically cleanup untagged images 2025-09-07 09:16:58 +02:00
Matthias
6ab731acdb chore(ci): Try simpler syntax 2025-09-07 09:10:44 +02:00
Matthias
8ca63cf0ee chore(ci): Improved workflow syntax 2025-09-07 09:04:27 +02:00
Matthias
5774c08b4a chore(ci): use proper input syntax 2025-09-07 09:01:22 +02:00
Matthias
b731cdef56 chore(ci): use proper input syntax 2025-09-07 08:59:57 +02:00
Matthias
b51c93fbc1 chore(ci): attempt at package-cleanup 2025-09-07 08:57:06 +02:00
Matthias
e948839fb5 feat: have timerange have a default display way 2025-09-06 19:18:12 +02:00
Matthias
587ec513db fix: Odd error downloading wrong timerange when using --days via UI 2025-09-06 19:17:01 +02:00
Matthias
efed5700be fix: handle RuntimeError on trades download
asyncio raises RuntimeError if the handler is not set on
the main thread.

closes #12211
2025-09-06 18:09:26 +02:00
Matthias
5ddaea7efc chore: improve log message 2025-09-06 18:01:35 +02:00
Matthias
66577b741f doc: improve orderbook wording 2025-09-06 17:52:20 +02:00
Matthias
09017980b6 docs: add live funding rate documentation 2025-09-06 17:52:20 +02:00
Matthias
3a7721ebe8 test: add test for fetch_funding_rate
part of #12206
2025-09-06 17:52:14 +02:00
Matthias
35cc3efd5a feat: improve docstring and error handling
part of #12206
2025-09-06 17:52:09 +02:00
Matthias
95ad756909 feat: add "current funding fee" endpoint
part of #12206
2025-09-06 17:51:50 +02:00
Matthias
816ca2ea15 feat: add error in case of non-available informative dataframe 2025-09-06 09:38:23 +02:00
Matthias
246891a8f6 feat: limit downloadable funding rates to funding rate interval
Limit using wrong funding-rate timeframes, which can cause wrong
information and assumptions in the strategy

Part of #12206
2025-09-06 09:21:28 +02:00
Matthias
25fd63c6d0 chore: make internal attribute really private 2025-09-06 09:10:44 +02:00
Matthias
cadbbd0e2e chore: improve variable naming for clarity 2025-09-06 09:08:01 +02:00
Matthias
65b83c46fb Merge pull request #12208 from freqtrade/test_flat_dockerbuild
Restructure docker builds
2025-09-05 11:44:32 +02:00
Matthias
31204a37a5 chore(ci): set missed env 2025-09-05 07:09:22 +02:00
Matthias
67774c71e5 chore(ci): set composite action outputs 2025-09-04 20:01:29 +02:00
Matthias
44b65daf1c chore(ci): Switch to use outputs instead of global environments 2025-09-04 19:51:30 +02:00
Matthias
48ff0c5744 chore(ci): Use buildx imagetools only 2025-09-04 07:06:28 +02:00
Matthias
3934aa118f chore(ci): use docker buildx imagetool create 2025-09-04 07:06:27 +02:00
Matthias
d40efb883c chore(ci): use proper manifest command 2025-09-04 07:06:27 +02:00
Matthias
84ec09565a chore(ci): Fix docker github login 2025-09-04 07:06:27 +02:00
Matthias
387431e4df chore(ci): use docker manifest to copy to ghcr 2025-09-04 07:06:27 +02:00
Matthias
662747c06c chore(ci): enable aliases 2025-09-04 07:06:27 +02:00
Matthias
89272e9ddb chore(ci): don't cache qemu image 2025-09-04 07:06:27 +02:00
Matthias
23d4d25e39 chore(ci): move everything to docker build action 2025-09-04 07:06:27 +02:00
Matthias
488a608c90 chore(ci): simplify build steps 2025-09-04 07:06:27 +02:00
Matthias
a94d18a10b chore(ci): use composite action to extract docker variables 2025-09-04 07:06:27 +02:00
Matthias
94aba0f9ac chore(ci) fix step naming 2025-09-04 07:06:27 +02:00
Matthias
35c3ca91eb chore(ci): fix small typo 2025-09-04 07:06:27 +02:00
Matthias
53328bc595 chore(ci): allow failure on pull 2025-09-04 07:06:27 +02:00
Matthias
bb7a4c4739 chore(ci): move CI build to action
* Reduce the need for a helper script
* increase visibility into individual build times
2025-09-04 07:06:27 +02:00
Matthias
7d38963c61 chore(ci): extract environment parts to ci file 2025-09-04 07:06:27 +02:00
Matthias
a7e7c17134 Merge pull request #12207 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-09-04 06:51:27 +02:00
Freqtrade Bot
0544af1f68 chore: update pre-commit hooks 2025-09-04 03:10:44 +00:00
Mihail
70d7dcd189 Made test_merge_informative_pair_monthly asserts data dependent. 2025-09-03 19:55:37 +00:00
Mihail
d36fdc1d69 Added exact dates to test_merge_informative_pair_monthly. 2025-09-03 12:20:38 +00:00
Mihail
b9482f420d Changed test_merge_informative_pair_monthly test to contain the data from previous informative candle on start too. 2025-09-02 19:25:08 +00:00
Matthias
ba87f3e7d7 chore: exclude .venv and userdata from dockerfiles 2025-09-02 20:59:23 +02:00
Mihail
3fe721a772 Fix for merge_informative_pair fix. 2025-09-02 18:33:23 +00:00
Matthias
b60a3802e7 feat: remove numpy and pandas downgrade for armhf 2025-09-02 19:21:01 +02:00
Matthias
4beb6a8049 Merge pull request #12198 from hustrust/develop
chore: remove redundant word in docs/freq-ui.md
2025-09-02 18:18:20 +02:00
Mihail
a53c4a3ed1 Fix the truncation of values by merge_ordered in the merge_informative_pair helper. 2025-09-02 15:35:20 +03:00
Robert Caulk
bd10afc796 Merge pull request #12195 from Kritoooo/fix-skip-empty-test-labels
feat: warn user with clear message when test labels empty
2025-09-02 12:19:56 +02:00
hustrust
2868efa779 chore: remove redundant word in docs/freq-ui.md
Signed-off-by: hustrust <hustrust@outlook.com>
2025-09-02 16:28:51 +08:00
Matthias
fe466e2e86 chore(ci): set environment variables directly 2025-09-02 07:23:10 +02:00
Matthias
6c5771b40c chore(ci): remove some redundant environment variables 2025-09-02 07:16:10 +02:00
Matthias
5c81d31bd1 chore(ci): Updated docker hub login 2025-09-02 07:13:18 +02:00
Matthias
b1b3b42489 Merge pull request #12196 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-09-02 06:58:52 +02:00
Freqtrade Bot
5b03fc1a89 chore: update pre-commit hooks 2025-09-02 03:18:44 +00:00
Matthias
dd73c724c4 Merge pull request #12183 from freqtrade/dependabot/pip/develop/ta-lib-0.6.6
chore(deps): bump ta-lib from 0.6.5 to 0.6.6
2025-09-01 20:01:50 +02:00
Matthias
5cbcd68446 chore: update armhf binary 2025-09-01 19:47:45 +02:00
Kritoooo
3bc1afd149 feat: warn user with clear message when test labels empty 2025-09-01 21:21:24 +08:00
Matthias
877761ecd3 Merge pull request #12185 from freqtrade/dependabot/pip/develop/cachetools-6.2.0
chore(deps): bump cachetools from 6.1.0 to 6.2.0
2025-09-01 11:00:55 +02:00
Matthias
9ef464e002 Merge pull request #12188 from freqtrade/dependabot/pip/develop/questionary-2.1.1
chore(deps): bump questionary from 2.1.0 to 2.1.1
2025-09-01 10:49:48 +02:00
dependabot[bot]
3deb089d64 chore(deps): bump cachetools from 6.1.0 to 6.2.0
Bumps [cachetools](https://github.com/tkem/cachetools) from 6.1.0 to 6.2.0.
- [Changelog](https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/tkem/cachetools/compare/v6.1.0...v6.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 08:40:20 +00:00
Matthias
f4f2249447 Merge pull request #12187 from freqtrade/dependabot/pip/develop/types-562fd16d2b
chore(deps-dev): bump types-cachetools from 6.1.0.20250717 to 6.2.0.20250827 in the types group
2025-09-01 10:36:57 +02:00
dependabot[bot]
1c5a4f4f39 chore(deps): bump questionary from 2.1.0 to 2.1.1
Bumps [questionary](https://github.com/tmbo/questionary) from 2.1.0 to 2.1.1.
- [Commits](https://github.com/tmbo/questionary/compare/2.1.0...2.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 08:10:19 +00:00
Matthias
1909fc3139 chore: update pre-commit cachetools 2025-09-01 10:05:43 +02:00
Matthias
2de831f1b2 Merge pull request #12189 from freqtrade/dependabot/pip/develop/orjson-3.11.3
chore(deps): bump orjson from 3.11.2 to 3.11.3
2025-09-01 10:03:51 +02:00
Matthias
1739200ee4 Merge pull request #12191 from freqtrade/dependabot/pip/develop/humanize-4.13.0
chore(deps): bump humanize from 4.12.3 to 4.13.0
2025-09-01 10:03:38 +02:00
Matthias
31a44178a4 Merge pull request #12193 from freqtrade/dependabot/pip/develop/prompt-toolkit-3.0.52
chore(deps): bump prompt-toolkit from 3.0.51 to 3.0.52
2025-09-01 10:02:22 +02:00
Matthias
eb9f233a78 Merge pull request #12192 from freqtrade/dependabot/pip/develop/ruff-0.12.11
chore(deps-dev): bump ruff from 0.12.10 to 0.12.11
2025-09-01 10:01:05 +02:00
dependabot[bot]
3986dc2617 chore(deps): bump prompt-toolkit from 3.0.51 to 3.0.52
Bumps [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) from 3.0.51 to 3.0.52.
- [Release notes](https://github.com/prompt-toolkit/python-prompt-toolkit/releases)
- [Changelog](https://github.com/prompt-toolkit/python-prompt-toolkit/blob/main/CHANGELOG)
- [Commits](https://github.com/prompt-toolkit/python-prompt-toolkit/compare/3.0.51...3.0.52)

---
updated-dependencies:
- dependency-name: prompt-toolkit
  dependency-version: 3.0.52
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 06:24:42 +00:00
dependabot[bot]
1f7f2ee3dd chore(deps-dev): bump ruff from 0.12.10 to 0.12.11
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.10 to 0.12.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/0.12.10...0.12.11)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 06:22:56 +00:00
dependabot[bot]
6e0da1aa3a chore(deps): bump humanize from 4.12.3 to 4.13.0
Bumps [humanize](https://github.com/python-humanize/humanize) from 4.12.3 to 4.13.0.
- [Release notes](https://github.com/python-humanize/humanize/releases)
- [Commits](https://github.com/python-humanize/humanize/compare/4.12.3...4.13.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 06:22:50 +00:00
dependabot[bot]
af3b0ed39f chore(deps): bump orjson from 3.11.2 to 3.11.3
Bumps [orjson](https://github.com/ijl/orjson) from 3.11.2 to 3.11.3.
- [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.11.2...3.11.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 06:21:23 +00:00
dependabot[bot]
1302b67772 chore(deps-dev): bump types-cachetools in the types group
Bumps the types group with 1 update: [types-cachetools](https://github.com/typeshed-internal/stub_uploader).


Updates `types-cachetools` from 6.1.0.20250717 to 6.2.0.20250827
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 06:20:24 +00:00
dependabot[bot]
6d44248607 chore(deps): bump ta-lib from 0.6.5 to 0.6.6
Bumps [ta-lib](https://github.com/ta-lib/ta-lib-python) from 0.6.5 to 0.6.6.
- [Release notes](https://github.com/ta-lib/ta-lib-python/releases)
- [Changelog](https://github.com/TA-Lib/ta-lib-python/blob/master/CHANGELOG)
- [Commits](https://github.com/ta-lib/ta-lib-python/compare/v0.6.5...v0.6.6)

---
updated-dependencies:
- dependency-name: ta-lib
  dependency-version: 0.6.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 06:18:21 +00:00
Matthias
5f1d9cbab1 Merge pull request #12151 from mpagnoulle/feat/trades-timerange-filtering
Trades TimeRange filtering for FeatherDataHandler and _if_enabled_populate_trades
2025-08-31 10:00:23 +02:00
Matthias
aad21195df docs: document nested webhook functionality 2025-08-31 08:41:30 +02:00
Matthias
739a67fdcb test: add test for new webhook functionality 2025-08-31 08:41:12 +02:00
Matthias
48bd5cb2c0 feat: add nested webhook message support 2025-08-31 08:41:05 +02:00
Matthias
9c079ccdfd Merge pull request #12182 from freqtrade/new_release
New release 2025.8
2025-08-31 08:25:25 +02:00
Matthias
2542102280 test: Test telegram init exception handling 2025-08-30 20:02:03 +02:00
Matthias
5407c2efec fix: list-data --trades no longer working when used with --pairs filter 2025-08-30 19:58:37 +02:00
Matthias
81a5d49687 fix: list-data --trades no longer working when used with --pairs filter 2025-08-30 19:58:24 +02:00
Matthias
321b44b779 chore: fix 2025-08-30 19:57:47 +02:00
Matthias
61a1ed897f chore: bump pyright minimum version 2025-08-30 18:10:21 +02:00
Matthias
5bb4cffa21 chore: clarify deprecation message 2025-08-30 18:02:26 +02:00
Matthias
5c314b6f1c chore: bump dev version to 2025.9-dev 2025-08-30 17:56:49 +02:00
Matthias
cee8855dca chore: bump version to 2025.8 2025-08-30 17:45:29 +02:00
Matthias
1196237f82 Merge branch 'stable' into new_release 2025-08-30 17:45:09 +02:00
Maxime Pagnoulle
9d5295fdb4 feat: Support for unbounded start and/or end in timerange filtering, added associated tests 2025-08-30 17:38:23 +02:00
Matthias
71e1c91148 docs: wider docs page 2025-08-30 17:26:16 +02:00
Matthias
e9718e064f chore: remove outdated comment about ta-lib 2025-08-30 15:40:52 +02:00
Matthias
3e8bb29c9f test: move test to usdt 2025-08-30 15:40:52 +02:00
Matthias
2fd703fcc5 Merge pull request #12170 from mrpabloyeah/some-improvements-to-backtest-summary-metrics
Some improvements to backtest summary metrics
2025-08-30 15:40:35 +02:00
Matthias
2a84b00dad docs: fix/improve developer docs 2025-08-30 15:17:06 +02:00
Matthias
711ebfea28 docs: update backtest-result to reproducible result 2025-08-30 15:12:54 +02:00
Matthias
8cd2ee95f9 feat: add developer documentation to generate backtest results 2025-08-30 14:56:23 +02:00
Matthias
539937c0eb refactor: move base_analysis to where it belongs 2025-08-30 11:47:38 +02:00
Matthias
fefd698e96 Merge pull request #12179 from freqtrade/deps/loky
CI: Bump joblib to latest version
2025-08-30 11:39:00 +02:00
Matthias
3512d788dc chore: bump technical to 1.5.3 to align talib version 2025-08-30 11:19:36 +02:00
Matthias
54c4dd1ce6 chore: run CI against 3.13 unconditionally again
Pinning to 3.13.6 was a workaround for the loky bug
2025-08-30 11:18:02 +02:00
Matthias
daaff66ff0 chore: Bump joblib dependency to 1.5.2 2025-08-30 11:14:15 +02:00
Matthias
8610f9883d feat: enable PostOnly orders for binance futures 2025-08-30 10:13:10 +02:00
Matthias
e503d4a9c0 fix: downgrade pyarrow to 20 to work around pyarrow compilation error
related: https://github.com/apache/arrow/issues/47229
2025-08-29 20:31:06 +02:00
Matthias
eaf3fc8833 test: add negative test for parallel download 2025-08-29 20:06:03 +02:00
Matthias
94c5ddc13d test: add test covering parallel pair merging 2025-08-29 07:26:05 +02:00
Matthias
a3fedbaba7 docs: update outdated comments 2025-08-29 07:11:19 +02:00
Matthias
1cf1d9e3d7 chore: remove unused ignore 2025-08-28 20:37:41 +02:00
Matthias
6b250f9dfe feat: reduce log verbosity of recursive and lookahead bias commands 2025-08-28 20:19:47 +02:00
Matthias
3d24ef66d8 refactor: have backtesting init use self.config instead of the passed in config 2025-08-28 20:13:27 +02:00
Matthias
ef0fc13235 chore: reduce data-load verbosity 2025-08-28 20:11:28 +02:00
Matthias
394ff1bbf6 chore: improve variable wording 2025-08-28 19:51:43 +02:00
Matthias
5cdd087465 fix: type error 2025-08-28 19:34:45 +02:00
Matthias
93051f4f97 test: update test for dynamic pairlist expansion in list-data 2025-08-28 19:21:54 +02:00
mrpabloyeah
1c2eed1421 Merge branch 'freqtrade:develop' into some-improvements-to-backtest-summary-metrics 2025-08-28 18:44:37 +02:00
mrpabloyeah
532f5ab080 Update backtesting documentation 2025-08-28 18:32:24 +02:00
Matthias
e3ffe56549 feat: add dynamic PL expansion to list-data 2025-08-28 18:29:44 +02:00
Matthias
564634be45 docs: update exported help messages 2025-08-28 07:08:36 +02:00
Matthias
ab3ae3dc62 chore: Update cli help 2025-08-28 07:08:25 +02:00
Matthias
d037f67f74 test: add parallel download test 2025-08-28 07:07:27 +02:00
Matthias
b1b6341a6e test: improve parallel test to capture caching 2025-08-28 06:50:17 +02:00
Matthias
8c92f9407d chore: use candle_type as argument for parallel-download 2025-08-28 06:50:08 +02:00
Matthias
e0aa660b56 chore: improve docstring wording 2025-08-28 06:46:45 +02:00
Matthias
25d4cabe3b Merge pull request #12171 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-08-28 06:36:39 +02:00
Freqtrade Bot
7539b6ffda chore: update pre-commit hooks 2025-08-28 03:16:20 +00:00
mrpabloyeah
8e623ee64c Some improvements to backtest summary metrics 2025-08-28 02:04:39 +02:00
Matthias
59ab51c06c test: Update basic test for calls to parallel-download 2025-08-27 20:19:47 +02:00
Matthias
2eb2617b6f chore: make condition more logical 2025-08-27 20:19:31 +02:00
Matthias
b284572ea7 chore: update docstring 2025-08-27 19:44:39 +02:00
Matthias
1e5d9ecfa3 chore: improved logstring 2025-08-27 10:22:40 +02:00
Matthias
e8bda298e3 Merge branch 'develop' into pr/alisalama/11625 2025-08-27 10:15:07 +02:00
Matthias
489cd008d6 chore: invert "parallel download" option 2025-08-27 10:15:04 +02:00
Matthias
22ddd9a7d4 Merge pull request #12169 from freqtrade/deps/ccxt
Bump ccxt version to 4.5.2
2025-08-27 10:00:44 +02:00
Matthias
128ea45fee chore: bump ccxt version to 4.5.2 2025-08-27 09:42:42 +02:00
Matthias
3ff1e31a81 test: don't use fixture if it's only used once 2025-08-27 08:31:14 +02:00
Matthias
2495f68751 chore: remove no-longer working badge 2025-08-26 20:47:31 +02:00
Matthias
70ee652be5 fix: cut-off (too short) timeframe-detail bug
If the detail data stops short, this shouldn't cause an exception.
instead, we should continue with "parent only" logic.
2025-08-26 19:39:15 +02:00
Matthias
bb1d34c33d Merge pull request #12077 from mrpabloyeah/allow-pairs-with-prefix-in-marketcap-pairList
Allow pairs with prefix in MarketCapPairList
2025-08-26 19:12:46 +02:00
Matthias
8f6d64f5e1 test: add test for 1000 / k logic 2025-08-26 07:21:09 +02:00
Matthias
b40848373d docs: add line about 1000 / K testing logic 2025-08-26 07:13:17 +02:00
Matthias
2824bcff41 chore(ci): prevent failure on PR's 2025-08-26 07:08:12 +02:00
Matthias
e8b967d634 Merge pull request #12167 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-08-26 06:02:10 +02:00
Freqtrade Bot
12d617cf8d chore: update pre-commit hooks 2025-08-26 03:20:03 +00:00
mrpabloyeah
48ab5ed990 Replace get_markets_cache() with get_markets_exchange() 2025-08-25 14:24:38 +02:00
mrpabloyeah
3363b1062e Merge branch 'freqtrade:develop' into allow-pairs-with-prefix-in-marketcap-pairList 2025-08-25 13:51:16 +02:00
Matthias
d35dde6757 Merge pull request #12158 from freqtrade/dependabot/pip/develop/pandas-2.3.2
chore(deps): bump pandas from 2.3.1 to 2.3.2
2025-08-25 10:20:51 +02:00
Matthias
6016d4886e Merge pull request #12155 from freqtrade/dependabot/pip/develop/jsonschema-4.25.1
chore(deps): bump jsonschema from 4.25.0 to 4.25.1
2025-08-25 09:40:16 +02:00
Matthias
f77eaa4083 chore: bump pre-commit scipy-stubs 2025-08-25 09:39:00 +02:00
Matthias
460d88ced7 Merge pull request #12154 from freqtrade/dependabot/pip/develop/types-eabe4663e9
chore(deps-dev): bump types-python-dateutil from 2.9.0.20250809 to 2.9.0.20250822 in the types group
2025-08-25 09:37:03 +02:00
Matthias
6bb559f1b0 Merge pull request #12163 from freqtrade/dependabot/pip/develop/time-machine-2.19.0
chore(deps-dev): bump time-machine from 2.17.0 to 2.19.0
2025-08-25 09:30:12 +02:00
Matthias
7c91eb0091 Merge pull request #12161 from freqtrade/dependabot/pip/develop/optuna-4.5.0
chore(deps): bump optuna from 4.4.0 to 4.5.0
2025-08-25 09:29:51 +02:00
Matthias
ae672e1110 Merge pull request #12164 from freqtrade/dependabot/github_actions/develop/astral-sh/setup-uv-6.6.0
chore(deps): bump astral-sh/setup-uv from 6.5.0 to 6.6.0
2025-08-25 09:12:32 +02:00
dependabot[bot]
1c4bf67e29 chore(deps): bump jsonschema from 4.25.0 to 4.25.1
Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.25.0 to 4.25.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.25.0...v4.25.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 07:12:10 +00:00
Matthias
c4e671fdc3 Merge pull request #12162 from freqtrade/dependabot/pip/develop/requests-2.32.5
chore(deps): bump requests from 2.32.4 to 2.32.5
2025-08-25 09:03:46 +02:00
Matthias
c5c5198fb3 Merge pull request #12160 from freqtrade/dependabot/pip/develop/ccxt-4.5.1
chore(deps): bump ccxt from 4.5.0 to 4.5.1
2025-08-25 09:03:07 +02:00
dependabot[bot]
634ec3c85f chore(deps-dev): bump time-machine from 2.17.0 to 2.19.0
Bumps [time-machine](https://github.com/adamchainz/time-machine) from 2.17.0 to 2.19.0.
- [Changelog](https://github.com/adamchainz/time-machine/blob/main/docs/changelog.rst)
- [Commits](https://github.com/adamchainz/time-machine/compare/2.17.0...2.19.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 07:02:34 +00:00
Matthias
d15aa4b337 Merge pull request #12157 from freqtrade/dependabot/pip/develop/ruff-0.12.10
chore(deps-dev): bump ruff from 0.12.9 to 0.12.10
2025-08-25 08:59:07 +02:00
Matthias
e160739a28 Merge pull request #12159 from freqtrade/dependabot/pip/develop/mkdocs-c7429a2ade
chore(deps): bump mkdocs-material from 9.6.17 to 9.6.18 in the mkdocs group
2025-08-25 08:51:58 +02:00
Matthias
030e07030c Merge pull request #12156 from freqtrade/dependabot/pip/develop/scipy-420df9eef1
chore(deps-dev): bump scipy-stubs from 1.16.1.0 to 1.16.1.1 in the scipy group
2025-08-25 08:40:44 +02:00
Matthias
a50a15ebc6 chore(deps): Don't bump pandas for armv7 for now. 2025-08-25 08:11:16 +02:00
Matthias
514452c4ec chore: update date-util in pre-commit config 2025-08-25 08:07:14 +02:00
dependabot[bot]
f091db3b0e chore(deps): bump astral-sh/setup-uv from 6.5.0 to 6.6.0
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.5.0 to 6.6.0.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](d9e0f98d3f...4959332f0f)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 6.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 05:45:29 +00:00
dependabot[bot]
caf1d6e7f2 chore(deps): bump requests from 2.32.4 to 2.32.5
Bumps [requests](https://github.com/psf/requests) from 2.32.4 to 2.32.5.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.4...v2.32.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 05:30:18 +00:00
dependabot[bot]
81f6637803 chore(deps): bump optuna from 4.4.0 to 4.5.0
Bumps [optuna](https://github.com/optuna/optuna) from 4.4.0 to 4.5.0.
- [Release notes](https://github.com/optuna/optuna/releases)
- [Commits](https://github.com/optuna/optuna/compare/v4.4.0...v4.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 05:30:01 +00:00
dependabot[bot]
f764f1fc10 chore(deps): bump ccxt from 4.5.0 to 4.5.1
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.5.0 to 4.5.1.
- [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/v4.5.0...v4.5.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 05:29:10 +00:00
dependabot[bot]
9a8ef17c73 chore(deps): bump mkdocs-material in the mkdocs group
Bumps the mkdocs group with 1 update: [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `mkdocs-material` from 9.6.17 to 9.6.18
- [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.6.17...9.6.18)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 05:27:30 +00:00
dependabot[bot]
8fe582a7a7 chore(deps): bump pandas from 2.2.3 to 2.3.2
Bumps [pandas](https://github.com/pandas-dev/pandas) from 2.2.3 to 2.3.2.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Commits](https://github.com/pandas-dev/pandas/compare/v2.2.3...v2.3.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 05:27:29 +00:00
dependabot[bot]
5cf3a2256a chore(deps-dev): bump ruff from 0.12.9 to 0.12.10
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.9 to 0.12.10.
- [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/0.12.9...0.12.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 05:27:10 +00:00
dependabot[bot]
caf4ffbc0b chore(deps-dev): bump scipy-stubs in the scipy group
Bumps the scipy group with 1 update: [scipy-stubs](https://github.com/scipy/scipy-stubs).


Updates `scipy-stubs` from 1.16.1.0 to 1.16.1.1
- [Release notes](https://github.com/scipy/scipy-stubs/releases)
- [Commits](https://github.com/scipy/scipy-stubs/compare/v1.16.1.0...v1.16.1.1)

---
updated-dependencies:
- dependency-name: scipy-stubs
  dependency-version: 1.16.1.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: scipy
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 05:25:49 +00:00
dependabot[bot]
d156f36f99 chore(deps-dev): bump types-python-dateutil in the types group
Bumps the types group with 1 update: [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader).


Updates `types-python-dateutil` from 2.9.0.20250809 to 2.9.0.20250822
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 05:24:53 +00:00
Matthias
4390324d22 docs: improve exchange doc for time_in_force 2025-08-25 07:03:25 +02:00
Matthias
8d7ef1929e docs: improve bybit documentation structure 2025-08-25 07:00:56 +02:00
Matthias
08fb8e42f7 docs: improve time_in_force section 2025-08-25 06:57:37 +02:00
Matthias
eaf6abecc8 fix: DecimalParameter shouldn't have floating point errors
closes #12152
2025-08-24 17:03:55 +02:00
Matthias
b4796cbf73 test: improve decimal parameter test 2025-08-24 17:03:11 +02:00
Matthias
e042b2e07b test: improve parameter naming 2025-08-24 16:12:10 +02:00
Matthias
9f021cbee6 test: remove combined test 2025-08-24 16:11:46 +02:00
Matthias
bf615e415b test: split parameter tests to one test per parameter 2025-08-24 16:11:44 +02:00
Matthias
c72f5b79fe refactor: extract hyperopt-params test to separate file 2025-08-24 16:02:59 +02:00
Matthias
51c1674663 Merge pull request #12153 from freqtrade/update_action
Update_action
2025-08-24 15:54:36 +02:00
Matthias
e445452d35 Merge pull request #12128 from freqtrade/windows_ci
Windows ci against 2022 and 2025 respectively
2025-08-24 15:45:38 +02:00
Matthias
9fff38d0a3 chore: update Permission check action to supported version 2025-08-24 15:34:16 +02:00
Matthias
bdd69dbfbc Merge pull request #12146 from stash86/main-stash
Fix calc_profit_ratio
2025-08-24 15:28:42 +02:00
Matthias
ec4767acd5 chore: Simplify code slightly 2025-08-24 14:44:22 +02:00
Matthias
78c8054954 chore(ci): Split windows ci tests to 2022 and 2025 respectively 2025-08-24 14:36:24 +02:00
Maxime Pagnoulle
f21c5ea88a feat: Remove redundant filtering, add tests for pyarrow trade filtering, use date utils for date to ts conversion 2025-08-24 11:59:56 +02:00
Maxime Pagnoulle
82903cc567 feat: Filter trades based on timerange 2025-08-23 20:25:26 +02:00
Maxime Pagnoulle
0233c38711 feat: Only load trades needed for specified timerange 2025-08-23 20:24:10 +02:00
Stefano
24f5096ec6 modify test_handle_trade to test several cases of calc_profit_ratio 2025-08-23 17:23:56 +09:00
Stefano
030bc8641b Merge branch 'main-stash' of https://github.com/stash86/freqtrade into main-stash 2025-08-22 08:40:17 +09:00
Stefano
c9403eb946 fix calc_profit_ratio to correctly fallback to available values when amount or open_rate is None 2025-08-22 08:40:14 +09:00
Matthias
87b0a6d3f3 Merge pull request #12144 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-08-21 07:15:18 +02:00
Matthias
c0d404edb5 chore: try downgrading python on windows ci 2025-08-21 06:59:20 +02:00
Freqtrade Bot
a7a16d1e1e chore: update pre-commit hooks 2025-08-21 03:18:27 +00:00
Matthias
1f21d5e2c2 Merge pull request #12126 from stash86/main-stash
Improve lookahead analysis to use full dataframe comparison instead of just the last row
2025-08-20 06:45:13 +02:00
Stefano
a531f8644d update the docs to show the modified approach in comparing dataframes 2025-08-20 09:32:02 +09:00
Matthias
765a0b52cb fix: api-pairlist bug with candle-type-def 2025-08-19 21:14:11 +02:00
Matthias
4919d6944e chore: use available attribute 2025-08-19 21:14:11 +02:00
Matthias
ac20596f10 chore: remove unused property 2025-08-19 21:14:11 +02:00
Matthias
5e79a93235 Merge pull request #12143 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-08-19 07:01:18 +02:00
Freqtrade Bot
2e8decbb6d chore: update pre-commit hooks 2025-08-19 03:20:42 +00:00
Matthias
196e599dc8 Merge pull request #12131 from freqtrade/dependabot/pip/develop/mkdocs-ed34fe0103
chore(deps): bump mkdocs-material from 9.6.16 to 9.6.17 in the mkdocs group
2025-08-18 09:01:41 +02:00
Matthias
485cad2dc6 Merge pull request #12140 from freqtrade/dependabot/github_actions/develop/zizmorcore/zizmor-action-0.1.2
chore(deps): bump zizmorcore/zizmor-action from 0.1.1 to 0.1.2
2025-08-18 08:46:18 +02:00
Matthias
61cbe0c4b1 Merge pull request #12133 from freqtrade/dependabot/pip/develop/sqlalchemy-2.0.43
chore(deps): bump sqlalchemy from 2.0.42 to 2.0.43
2025-08-18 08:40:44 +02:00
Matthias
5510e138db Merge pull request #12135 from freqtrade/dependabot/pip/develop/plotly-6.3.0
chore(deps): bump plotly from 6.2.0 to 6.3.0
2025-08-18 08:31:57 +02:00
Matthias
c9e9f9bd82 Merge pull request #12141 from freqtrade/dependabot/github_actions/develop/astral-sh/setup-uv-6.5.0
chore(deps): bump astral-sh/setup-uv from 6.4.3 to 6.5.0
2025-08-18 08:25:46 +02:00
Matthias
768ba1baaf Merge pull request #12137 from freqtrade/dependabot/pip/develop/xgboost-3.0.4
chore(deps): bump xgboost from 3.0.3 to 3.0.4
2025-08-18 08:24:21 +02:00
Matthias
ad25a60149 Merge pull request #12132 from freqtrade/dependabot/pip/develop/ccxt-4.5.0
chore(deps): bump ccxt from 4.4.99 to 4.5.0
2025-08-18 08:23:09 +02:00
Matthias
3fdcd6e8f1 Merge pull request #12138 from freqtrade/dependabot/pip/develop/filelock-3.19.1
chore(deps): bump filelock from 3.18.0 to 3.19.1
2025-08-18 08:20:59 +02:00
Matthias
be0c0761e3 Merge pull request #12139 from freqtrade/dependabot/github_actions/develop/actions/checkout-5
chore(deps): bump actions/checkout from 4 to 5
2025-08-18 08:18:16 +02:00
Matthias
00dd3f05ac Merge pull request #12134 from freqtrade/dependabot/pip/develop/ruff-0.12.9
chore(deps-dev): bump ruff from 0.12.8 to 0.12.9
2025-08-18 08:12:29 +02:00
Matthias
c6f30989c9 Merge pull request #12136 from freqtrade/dependabot/pip/develop/orjson-3.11.2
chore(deps): bump orjson from 3.11.1 to 3.11.2
2025-08-18 08:00:40 +02:00
Matthias
4ab6fba9e7 chore: bump sqlalchemy in pre-commit-config 2025-08-18 07:04:44 +02:00
dependabot[bot]
3ef082e2d9 chore(deps): bump astral-sh/setup-uv from 6.4.3 to 6.5.0
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.4.3 to 6.5.0.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](e92bafb625...d9e0f98d3f)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 6.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 04:56:09 +00:00
dependabot[bot]
cccf44cd68 chore(deps): bump zizmorcore/zizmor-action from 0.1.1 to 0.1.2
Bumps [zizmorcore/zizmor-action](https://github.com/zizmorcore/zizmor-action) from 0.1.1 to 0.1.2.
- [Release notes](https://github.com/zizmorcore/zizmor-action/releases)
- [Commits](f52a838cfa...5ca5fc7a47)

---
updated-dependencies:
- dependency-name: zizmorcore/zizmor-action
  dependency-version: 0.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 04:55:35 +00:00
dependabot[bot]
506d665a43 chore(deps): bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 04:54:29 +00:00
dependabot[bot]
8514e35ad0 chore(deps): bump filelock from 3.18.0 to 3.19.1
Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.18.0 to 3.19.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.18.0...3.19.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 04:53:25 +00:00
dependabot[bot]
af0a3f9a8d chore(deps): bump xgboost from 3.0.3 to 3.0.4
Bumps [xgboost](https://github.com/dmlc/xgboost) from 3.0.3 to 3.0.4.
- [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/v3.0.3...v3.0.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 04:52:18 +00:00
dependabot[bot]
2df1a93dfc chore(deps): bump orjson from 3.11.1 to 3.11.2
Bumps [orjson](https://github.com/ijl/orjson) from 3.11.1 to 3.11.2.
- [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.11.1...3.11.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 04:52:11 +00:00
dependabot[bot]
75e39d3154 chore(deps): bump plotly from 6.2.0 to 6.3.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 6.2.0 to 6.3.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v6.2.0...v6.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 04:52:04 +00:00
dependabot[bot]
5d755e3ca0 chore(deps-dev): bump ruff from 0.12.8 to 0.12.9
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.8 to 0.12.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/0.12.8...0.12.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 04:51:11 +00:00
dependabot[bot]
fbeb2e4789 chore(deps): bump sqlalchemy from 2.0.42 to 2.0.43
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 2.0.42 to 2.0.43.
- [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-version: 2.0.43
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 04:50:46 +00:00
dependabot[bot]
6b288d46af chore(deps): bump ccxt from 4.4.99 to 4.5.0
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.4.99 to 4.5.0.
- [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/v4.4.99...v4.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 04:50:30 +00:00
dependabot[bot]
394cdfcc15 chore(deps): bump mkdocs-material in the mkdocs group
Bumps the mkdocs group with 1 update: [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `mkdocs-material` from 9.6.16 to 9.6.17
- [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.6.16...9.6.17)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 04:50:09 +00:00
Matthias
28df02da82 Merge pull request #12129 from freqtrade/dependabot/docker/python-3.13.7-slim-bookworm
chore(deps): bump python from 3.13.6-slim-bookworm to 3.13.7-slim-bookworm
2025-08-18 06:49:59 +02:00
Matthias
d4ee725747 Merge pull request #12127 from freqtrade/backtest-filename
Backtest filename
2025-08-18 06:47:12 +02:00
dependabot[bot]
6617d3bb46 chore(deps): bump python
Bumps python from 3.13.6-slim-bookworm to 3.13.7-slim-bookworm.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.13.7-slim-bookworm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 04:35:05 +00:00
Matthias
2453e344f4 docs: improve documentation 2025-08-17 17:25:06 +02:00
Matthias
7f0e886cfd chore: update config message naming 2025-08-17 15:31:48 +02:00
Matthias
e34ea393d9 docs: improved help wording 2025-08-17 15:15:55 +02:00
Matthias
a00a5e52c4 docs: update backtest-filename wording 2025-08-17 15:15:37 +02:00
Matthias
6abc0a3fb9 docs: update wording in documentation 2025-08-17 15:13:05 +02:00
Matthias
7e4b9d7481 docs: update doc segments with new help text 2025-08-17 15:09:12 +02:00
Matthias
e3f241acb7 chore: improve help text wording 2025-08-17 15:08:55 +02:00
Matthias
eee233f894 fix: ensure exportfilename is always set 2025-08-17 15:02:28 +02:00
Matthias
615095c780 feat: add exportdirectory to entry/exit analysis 2025-08-17 15:02:28 +02:00
Matthias
b22bce3dd8 feat: Support split directory and filename for backteststats loading 2025-08-17 15:02:28 +02:00
Matthias
9f1d9add18 chore: improve docstring 2025-08-17 15:02:28 +02:00
Matthias
36f2bef6b8 test: update test for split backtest-show reality 2025-08-17 15:02:28 +02:00
Matthias
07906d2576 test: update api backtest test 2025-08-17 15:02:28 +02:00
Matthias
5c977c212b test: drop test part using --export-filename to determine backtest result naming 2025-08-17 15:02:28 +02:00
Matthias
09b084e85a chore: adjust backtest-optimize reports tests 2025-08-17 15:02:28 +02:00
Matthias
aefc72554a chore: ensure filename is a path object 2025-08-17 15:02:28 +02:00
Matthias
33c2cc806a refactor: extract bt file normalization to separate function 2025-08-17 15:02:28 +02:00
Matthias
74aa17d534 feat: support both relative filenames, as well as just the filename 2025-08-17 15:02:28 +02:00
Matthias
4de1501c68 fix: argument load stability 2025-08-17 15:02:28 +02:00
Matthias
dc12b3e750 feat: improved support for split "export-directory" and export-filenames 2025-08-17 15:02:28 +02:00
Matthias
dacd09db8b chore: improved code logic 2025-08-17 15:02:28 +02:00
Matthias
c63d0e167c chore: switch to using exportdirectory 2025-08-17 15:02:28 +02:00
Matthias
6ccd98d795 feat: introduce --export-directory 2025-08-17 15:02:28 +02:00
Stefano
52b0e64950 revert back to use list instead of set 2025-08-17 16:25:01 +09:00
Stefano
5e5137edc1 compare full dataframe instead of only last row 2025-08-17 16:05:22 +09:00
Matthias
5d4edb5ec0 fix: list-strategies shouldn't fail when no strategy is found
closes #12124
2025-08-16 19:38:45 +02:00
Matthias
6dccab9bfe refactor: simplify backtest analysis data loading 2025-08-16 14:50:36 +02:00
Matthias
653c160d76 chore: analyze-commands shouldn't identify as backtest 2025-08-16 13:27:29 +02:00
Matthias
3f65ed452e chore: improve typesafety 2025-08-16 13:23:51 +02:00
Matthias
09cdc7ceca chore: improve docker job namings 2025-08-15 19:41:49 +02:00
Matthias
e98e6d8aee chore: remove --no-build-isolation from docker builds 2025-08-15 18:29:01 +02:00
Matthias
f10223bf13 chore: temporarily downgrade armhf dependencies
Allow piwheels to apply - which should make the armhf build a lot faster.
2025-08-15 18:29:01 +02:00
Matthias
38b3062653 chore: fix armhf build 2025-08-15 16:18:24 +02:00
Matthias
6063e4accb Merge pull request #12101 from freqtrade/dependabot/pip/develop/ta-lib-0.6.5
chore(deps): bump ta-lib from 0.5.5 to 0.6.5
2025-08-15 13:10:22 +02:00
Matthias
06e249f569 chore: bump pre-built armhf ta-lib binary 2025-08-15 08:22:25 +02:00
Matthias
d064bd4f34 chore: prefer --backtest-filename over --export-filename! 2025-08-14 15:20:46 +02:00
Matthias
765d2c332c docs: update Documentation about export-filename 2025-08-14 15:20:12 +02:00
Matthias
8857c77645 Merge pull request #12116 from stash86/fix-recursive
move strategy load to after candle_type_def has been defined
2025-08-14 14:20:38 +02:00
Matthias
1ff4e40824 chore: remove ta-lib install scripts and helpers 2025-08-14 11:15:48 +02:00
Matthias
09d59c79a7 chore(ci): cleanup CI ta-lib specials 2025-08-14 11:15:36 +02:00
Matthias
dd6ac4b196 chore: remove ta-lib install from dockerfile 2025-08-14 10:22:56 +02:00
Matthias
67fe3682b5 docs: remove ta-lib special steps 2025-08-14 10:22:50 +02:00
Matthias
a07e6183bb chore: simplify setup.sh 2025-08-14 10:17:53 +02:00
Matthias
ac99537c25 chore: simplify setup.ps1 removing ta-lib install 2025-08-14 10:16:46 +02:00
Matthias
734a6f0442 chore: remove ta-lib install workaround for windows 2025-08-14 10:15:41 +02:00
Matthias
da52ef8729 chore: hot-fix ta-lib install on windows 2025-08-14 10:12:31 +02:00
Matthias
c934535dc8 chore: remove now pointless ta-lib wheels 2025-08-14 10:07:10 +02:00
Matthias
3e3f092f0c test: reduce ta-lib test accuracy to align with ta-lib 0.6.5
Precision for ta-lib 0.6.x was increased
but is lower by 0001 than what was in the freqtrade ta-lib fix

https://github.com/TA-Lib/ta-lib/blob/main/src/ta_func/ta_utility.h#L257

This won't be a problem for any normal usdt pair.
shitcoins on some exchanges (e.g gate) with 12 zeros before the first significant digit wouldn't have worked today, either.
2025-08-14 09:59:07 +02:00
Matthias
834aafb8f2 test: non-freqai tests should run without torch installed 2025-08-14 09:37:07 +02:00
Stefano
df19c77bcf better fallback 2025-08-14 16:09:43 +09:00
Stefano
6edcda1e42 fallback if strat don't specify startup candle 2025-08-14 16:06:15 +09:00
Matthias
fe8c367bce Merge pull request #12115 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-08-14 07:47:26 +02:00
Stefano
a37edf8c62 remove unused import 2025-08-14 12:51:27 +09:00
Stefano
09ef2c9dea move strategy load after candle type has been defined 2025-08-14 12:45:34 +09:00
Freqtrade Bot
42b1d8ecf8 chore: update pre-commit hooks 2025-08-14 03:26:18 +00:00
Matthias
32437a95f3 chore: remove unused import 2025-08-13 19:42:01 +02:00
Matthias
2e29d3523b test: empty pairlist is now handled by config schema 2025-08-13 13:17:16 +02:00
Matthias
530300a951 chore: clearer validation error handling 2025-08-13 13:15:02 +02:00
Matthias
612a09634c test: use appropriate error handlers 2025-08-13 13:08:58 +02:00
Matthias
fd6a2456d0 chore: improved validation error handling 2025-08-13 13:08:51 +02:00
Matthias
1ad0e7e365 fix: force one pairlist handler via config
closes #12112
2025-08-13 13:08:41 +02:00
Matthias
055ee5c88f fix: gracefully handle telegram startup error
closes #12112
2025-08-13 12:02:12 +02:00
Matthias
ae676d8e03 chore: small code refactoring, simplifying the code 2025-08-12 07:09:37 +02:00
Matthias
0dc665e45b Merge pull request #12098 from freqtrade/feat/bitget_stoploss
add bitget stoploss  support
2025-08-12 06:57:36 +02:00
Matthias
bc6ea16db8 Merge pull request #12108 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-08-12 06:43:59 +02:00
Freqtrade Bot
a1d0528adb chore: update pre-commit hooks 2025-08-12 03:24:31 +00:00
mrpabloyeah
ecfa1fd5b5 Adjust expectation for get_markets calls in test_MarketCapPairList_timing 2025-08-11 23:54:50 +02:00
mrpabloyeah
eaf76047e3 Correct syntax 2025-08-11 22:51:35 +02:00
mrpabloyeah
761d3f216e Simplify resolve_marketcap_pair() 2025-08-11 22:40:49 +02:00
mrpabloyeah
e7d9ac2247 Merge branch 'freqtrade:develop' into allow-pairs-with-prefix-in-marketcap-pairList 2025-08-11 22:36:37 +02:00
Matthias
842e651928 Merge pull request #12103 from freqtrade/dependabot/pip/develop/types-aabf979877
chore(deps-dev): bump the types group with 2 updates
2025-08-11 08:36:55 +02:00
dependabot[bot]
091d1c2d55 chore(deps): bump ta-lib from 0.5.5 to 0.6.5
Bumps [ta-lib](https://github.com/ta-lib/ta-lib-python) from 0.5.5 to 0.6.5.
- [Release notes](https://github.com/ta-lib/ta-lib-python/releases)
- [Changelog](https://github.com/TA-Lib/ta-lib-python/blob/master/CHANGELOG)
- [Commits](https://github.com/ta-lib/ta-lib-python/compare/v0.5.5...v0.6.5)

---
updated-dependencies:
- dependency-name: ta-lib
  dependency-version: 0.6.5
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 06:16:57 +00:00
Matthias
47bf2d1f26 chore: bump types in pre-commit config 2025-08-11 08:14:42 +02:00
Matthias
758392c206 Merge pull request #12100 from freqtrade/dependabot/pip/develop/torch-2.8.0
chore(deps): bump torch from 2.7.1 to 2.8.0
2025-08-11 08:13:48 +02:00
Matthias
647011bf0c Merge pull request #12106 from freqtrade/dependabot/github_actions/develop/actions/download-artifact-5
chore(deps): bump actions/download-artifact from 4 to 5
2025-08-11 08:13:34 +02:00
Matthias
580413b5f8 Merge pull request #12099 from freqtrade/dependabot/pip/develop/cryptography-45.0.6
chore(deps): bump cryptography from 45.0.5 to 45.0.6
2025-08-11 08:12:47 +02:00
Matthias
c8c9e5167e Merge pull request #12105 from freqtrade/dependabot/pip/develop/pre-commit-4.3.0
chore(deps-dev): bump pre-commit from 4.2.0 to 4.3.0
2025-08-11 08:02:17 +02:00
dependabot[bot]
2e8707059d chore(deps): bump actions/download-artifact from 4 to 5
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 5.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 05:40:44 +00:00
dependabot[bot]
e0d9d01493 chore(deps-dev): bump pre-commit from 4.2.0 to 4.3.0
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 4.2.0 to 4.3.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/v4.2.0...v4.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 05:38:29 +00:00
Matthias
45bf1ace7d Merge pull request #12102 from freqtrade/dependabot/pip/develop/time-machine-2.17.0
chore(deps-dev): bump time-machine from 2.16.0 to 2.17.0
2025-08-11 07:36:46 +02:00
Matthias
39a5328f5a Merge pull request #12104 from freqtrade/dependabot/pip/develop/ruff-0.12.8
chore(deps-dev): bump ruff from 0.12.7 to 0.12.8
2025-08-11 07:36:38 +02:00
dependabot[bot]
9f82738c96 chore(deps-dev): bump ruff from 0.12.7 to 0.12.8
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.7 to 0.12.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/0.12.7...0.12.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 04:47:32 +00:00
dependabot[bot]
f69f6ec8be chore(deps-dev): bump the types group with 2 updates
Bumps the types group with 2 updates: [types-requests](https://github.com/typeshed-internal/stub_uploader) and [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader).


Updates `types-requests` from 2.32.4.20250611 to 2.32.4.20250809
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

Updates `types-python-dateutil` from 2.9.0.20250708 to 2.9.0.20250809
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 04:47:15 +00:00
dependabot[bot]
8b3fb11f14 chore(deps-dev): bump time-machine from 2.16.0 to 2.17.0
Bumps [time-machine](https://github.com/adamchainz/time-machine) from 2.16.0 to 2.17.0.
- [Changelog](https://github.com/adamchainz/time-machine/blob/main/docs/changelog.rst)
- [Commits](https://github.com/adamchainz/time-machine/compare/2.16.0...2.17.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 04:46:55 +00:00
dependabot[bot]
b0f4c57fa8 chore(deps): bump torch from 2.7.1 to 2.8.0
Bumps [torch](https://github.com/pytorch/pytorch) from 2.7.1 to 2.8.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.7.1...v2.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 04:43:29 +00:00
dependabot[bot]
d759deae8f chore(deps): bump cryptography from 45.0.5 to 45.0.6
Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.5 to 45.0.6.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/45.0.5...45.0.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 04:41:22 +00:00
Matthias
b695b5a83c Merge pull request #12095 from freqtrade/dependabot/docker/python-3.13.6-slim-bookworm
chore(deps): bump python from 3.13.5-slim-bookworm to 3.13.6-slim-bookworm
2025-08-10 16:39:27 +02:00
Matthias
b8883b790e test: adjust stoploss order getting for bitget 2025-08-10 16:35:53 +02:00
dependabot[bot]
423197cb23 chore(deps): bump python
Bumps python from 3.13.5-slim-bookworm to 3.13.6-slim-bookworm.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.13.6-slim-bookworm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-10 06:52:45 +00:00
Matthias
38107664b5 feat(bitget): Add triggered stoploss detection logic 2025-08-09 17:40:21 +02:00
Matthias
42d3f557bc chore(ci): fix windows install
temporarily pin ta-lib to <0.6.0 when searching for wheels
2025-08-09 16:11:42 +02:00
Matthias
1a3c913176 feat(bitget): Align bitget candle limits 2025-08-09 15:49:44 +02:00
Matthias
83de41ad0e test(bitget): add test for bitget ohlcv limit 2025-08-09 15:49:29 +02:00
Matthias
8cc4664823 chore: fix imports 2025-08-07 20:10:01 +02:00
Matthias
aaecbc2206 test(bitget): add test for stoploss emulation 2025-08-07 20:10:01 +02:00
Matthias
e36df7eff5 feat(bitget): correctly cancel stop orders 2025-08-07 20:10:01 +02:00
Matthias
95f58b2b8c feat(bitget): add stoploss support properly 2025-08-07 20:10:01 +02:00
Matthias
8df0ce3fb5 docs: add stoploss on exchange bitget 2025-08-07 20:10:01 +02:00
Matthias
4177809f71 feat(bitget): stoploss order fetching attempts 2025-08-07 20:10:01 +02:00
Matthias
96aa214fc5 Merge pull request #12092 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-08-07 06:01:21 +02:00
Matthias
a3c1c8c1b4 Merge pull request #12091 from freqtrade/deps/ccxt
Bump ccxt to 4.4.99
2025-08-07 06:00:35 +02:00
Freqtrade Bot
2bf3494cbc chore: update pre-commit hooks 2025-08-07 03:31:40 +00:00
Matthias
e3dd3478bb chore: bump ccxt to 4.4.99 2025-08-06 21:12:29 +02:00
Matthias
457af15b35 chore: safe basic freqAI infos to backtest result 2025-08-06 20:24:43 +02:00
Matthias
1eef1675cc Merge pull request #12084 from freqtrade/fix/backtest_feature_handling
fix: Ensure pipelines that modify feature set are supported for fast backtesting
2025-08-05 20:19:18 +02:00
Robert Caulk
89ef31b381 fix: Ensure pipelines that modify feature set are supported for fast backtesting 2025-08-05 12:49:27 +02:00
mrpabloyeah
c00472c42d Merge branch 'freqtrade:develop' into allow-pairs-with-prefix-in-marketcap-pairList 2025-08-05 11:25:15 +02:00
mrpabloyeah
c0143b04c8 Refactor pair resolution logic for improved clarity and modularity 2025-08-05 11:14:02 +02:00
Matthias
d1c901ae94 Merge pull request #12083 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-08-05 07:16:42 +02:00
Matthias
dd0aeaf380 Merge pull request #12080 from freqtrade/dependabot/github_actions/develop/docker/login-action-3.5.0
chore(deps): bump docker/login-action from 3.4.0 to 3.5.0
2025-08-05 07:10:25 +02:00
Freqtrade Bot
3e8e250a65 chore: update pre-commit hooks 2025-08-05 04:46:39 +00:00
dependabot[bot]
a34b580444 chore(deps): bump docker/login-action from 3.4.0 to 3.5.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](74a5d14239...184bdaa072)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 3.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-05 04:46:30 +00:00
Matthias
e7ea9d09c9 chore: fix typo 2025-08-05 06:45:35 +02:00
Matthias
e4e11be331 chore: temporarily disable htx due to certificate issues 2025-08-05 06:34:56 +02:00
Matthias
9774c51a97 Merge pull request #12074 from freqtrade/dependabot/pip/develop/scipy-stubs-1.16.1.0
chore(deps-dev): bump scipy-stubs from 1.16.0.2 to 1.16.1.0
2025-08-04 19:57:46 +02:00
Matthias
87ff8dc7bc chore(deps-dev): update scipy-stubs in pre-commit config 2025-08-04 19:34:43 +02:00
Matthias
2434ae5476 chore: make scipy it's own group to update scipy-stubs together 2025-08-04 19:34:27 +02:00
dependabot[bot]
e474294d55 chore(deps-dev): bump scipy-stubs from 1.16.0.2 to 1.16.1.0
Bumps [scipy-stubs](https://github.com/scipy/scipy-stubs) from 1.16.0.2 to 1.16.1.0.
- [Release notes](https://github.com/scipy/scipy-stubs/releases)
- [Commits](https://github.com/scipy/scipy-stubs/compare/v1.16.0.2...v1.16.1.0)

---
updated-dependencies:
- dependency-name: scipy-stubs
  dependency-version: 1.16.1.0
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-04 17:33:34 +00:00
Matthias
b081716df7 Merge pull request #12075 from freqtrade/dependabot/pip/develop/sqlalchemy-2.0.42
chore(deps): bump sqlalchemy from 2.0.41 to 2.0.42
2025-08-04 19:31:26 +02:00
Matthias
e1af43b133 Merge branch 'develop' into dependabot/pip/develop/sqlalchemy-2.0.42 2025-08-04 19:17:39 +02:00
mrpabloyeah
1ea6a99c48 Allow pairs with prefix in MarketCapPairList 2025-08-04 11:54:03 +02:00
Matthias
79fc80957f Merge pull request #12071 from freqtrade/dependabot/pip/develop/ruff-0.12.7
chore(deps-dev): bump ruff from 0.12.5 to 0.12.7
2025-08-04 08:42:02 +02:00
Matthias
937eedd8ca Merge pull request #12073 from freqtrade/dependabot/pip/develop/aiohttp-3.12.15
chore(deps): bump aiohttp from 3.12.14 to 3.12.15
2025-08-04 07:37:51 +02:00
dependabot[bot]
93ae45dcbb chore(deps): bump aiohttp from 3.12.14 to 3.12.15
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.12.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-04 05:13:21 +00:00
Matthias
1adbd525bc Merge pull request #12072 from freqtrade/dependabot/pip/develop/pymdown-extensions-10.16.1
chore(deps): bump pymdown-extensions from 10.16 to 10.16.1
2025-08-04 07:13:09 +02:00
Matthias
ced7465c1f Merge pull request #12069 from freqtrade/dependabot/pip/develop/xgboost-3.0.3
chore(deps): bump xgboost from 3.0.2 to 3.0.3
2025-08-04 07:04:25 +02:00
Matthias
d635cb8516 Merge pull request #12068 from freqtrade/dependabot/pip/develop/ccxt-4.4.98
chore(deps): bump ccxt from 4.4.96 to 4.4.98
2025-08-04 07:01:33 +02:00
Matthias
2b578633ab Merge pull request #12070 from freqtrade/dependabot/pip/develop/certifi-2025.8.3
chore(deps): bump certifi from 2025.7.14 to 2025.8.3
2025-08-04 06:52:59 +02:00
dependabot[bot]
824f555d48 chore(deps-dev): bump ruff from 0.12.5 to 0.12.7
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.5 to 0.12.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/0.12.5...0.12.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-04 04:50:05 +00:00
Matthias
999fd15bee Merge pull request #12067 from freqtrade/dependabot/pip/develop/mypy-1.17.1
chore(deps-dev): bump mypy from 1.17.0 to 1.17.1
2025-08-04 06:42:38 +02:00
Matthias
be07879a1e chore: bump sqlalchemy in pre-commit-config 2025-08-04 06:25:36 +02:00
dependabot[bot]
ab543c2680 chore(deps): bump sqlalchemy from 2.0.41 to 2.0.42
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 2.0.41 to 2.0.42.
- [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-version: 2.0.42
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-04 04:06:27 +00:00
dependabot[bot]
79aa0bce5a chore(deps): bump pymdown-extensions from 10.16 to 10.16.1
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.16 to 10.16.1.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.16...10.16.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-04 03:59:05 +00:00
dependabot[bot]
05a76c0297 chore(deps): bump certifi from 2025.7.14 to 2025.8.3
Bumps [certifi](https://github.com/certifi/python-certifi) from 2025.7.14 to 2025.8.3.
- [Commits](https://github.com/certifi/python-certifi/compare/2025.07.14...2025.08.03)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-04 03:58:33 +00:00
dependabot[bot]
15eeac3c48 chore(deps): bump xgboost from 3.0.2 to 3.0.3
Bumps [xgboost](https://github.com/dmlc/xgboost) from 3.0.2 to 3.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/v3.0.2...v3.0.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-04 03:57:56 +00:00
dependabot[bot]
d8a84a7d6b chore(deps): bump ccxt from 4.4.96 to 4.4.98
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.4.96 to 4.4.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/v4.4.96...v4.4.98)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-04 03:54:29 +00:00
dependabot[bot]
863a5b7b81 chore(deps-dev): bump mypy from 1.17.0 to 1.17.1
Bumps [mypy](https://github.com/python/mypy) from 1.17.0 to 1.17.1.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.17.0...v1.17.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-04 03:53:13 +00:00
Matthias
4ad049aec3 test: add test-case for futures filter 2025-08-03 19:50:24 +02:00
Matthias
03c16d034d test: add test for --dex filter 2025-08-03 19:46:43 +02:00
Matthias
c1f8dce109 docs: re-extract list-exchanges command partial 2025-08-03 19:46:31 +02:00
Matthias
887f513438 feat: filter list-exchanges by dex 2025-08-03 19:44:52 +02:00
Matthias
12fbae7204 chore: remove pointless dockerfile template
Noticed in #12063 - it serves no paractical use.
Developers should use the devcontainer instead.
2025-08-03 19:38:34 +02:00
Matthias
a05cb8f1c5 feat: support filtering exchanges by trade mode 2025-08-03 18:25:51 +02:00
Matthias
cffee80b0e chore: remove binanceje mapping 2025-08-03 17:41:55 +02:00
Matthias
0c0f2e43e8 feat: disable myOkx futures support
it's a product that doesn't exist.
2025-08-03 17:38:22 +02:00
Matthias
35456a1f32 feat: link okxus to the okx freqtrade base class
closes #12061
2025-08-03 17:34:22 +02:00
Matthias
b6a6bca41b Merge pull request #12060 from freqtrade/test/kraken
Improved kraken test
2025-08-03 09:47:32 +02:00
Matthias
102cc87618 Merge pull request #12059 from freqtrade/feat/bitget
Add bitget base support
2025-08-03 09:47:19 +02:00
Matthias
1ec45dcf19 test: improve kraken fetch trades compatibility test 2025-08-03 09:15:45 +02:00
Matthias
f2fb1b7919 docs(bitget): fix typo 2025-08-03 09:01:03 +02:00
Matthias
78c5b18937 docs(bitget): add bitget documentation 2025-08-03 08:51:53 +02:00
Matthias
86de1dee29 feat(bitget): add support for order time in force 2025-08-03 08:51:53 +02:00
Matthias
7afd3cb730 feat(bitget): configure mark timeframe 2025-08-03 08:51:53 +02:00
Matthias
b887e2ad21 test: cleanup conftest file 2025-08-03 08:51:53 +02:00
Matthias
ea2350f1ed test: add test for bitget ohlcv specifics 2025-08-03 08:51:53 +02:00
Matthias
786c858452 test: enable testing bitget spot markets 2025-08-03 08:51:53 +02:00
Matthias
a6b643a33f feat: add ohlcv candle limit specific for bitget 2025-08-03 08:51:53 +02:00
Matthias
0e5235e6dc chore: add basic bitget exchange 2025-08-03 08:51:53 +02:00
Matthias
c93c97c2de fix: tick_size_over_time must not use scientific notion
closes 12054
2025-08-02 11:22:19 +02:00
Matthias
271ba462b1 test: improved formatting for simplified digestion
part of #12054
2025-08-02 11:22:14 +02:00
Matthias
690918f8d3 test: add test for historic_tick_size with small numbers
part of #12054
2025-08-02 11:22:04 +02:00
Matthias
de5dd66512 fix: update decimal_to_precision usage to new interface
The keyword parameter name changed in
https://github.com/ccxt/ccxt/pull/26289
Breaking how we call decimal_to_precision.
2025-08-01 06:58:32 +02:00
Matthias
c8593b2307 feat: add missing keys to config schema 2025-08-01 06:58:32 +02:00
Matthias
fc21757e40 Merge pull request #12055 from stash86/fix-recursive
Temporary fix in recursive analysis for candle_type_def issue
2025-08-01 06:39:20 +02:00
Stefano
b6d0cde29f temporary fix until better solution is found 2025-08-01 11:24:45 +09:00
Matthias
f0dfc23a5f chore: bump dev version to 2025.8 2025-07-31 19:48:24 +02:00
Matthias
c9dda3480d Merge pull request #12052 from freqtrade/new_release
New release 2025.7
2025-07-31 19:47:30 +02:00
Matthias
45804e1bef chore: bump version to 2025.7 2025-07-31 06:29:50 +02:00
Matthias
6dd5dc5d2c Merge branch 'stable' into new_release 2025-07-31 06:29:29 +02:00
Matthias
a5db75d361 Merge pull request #12050 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-07-31 06:22:09 +02:00
Freqtrade Bot
4c4bc2be9b chore: update pre-commit hooks 2025-07-31 03:31:12 +00:00
Matthias
e9cc9bb38a test: add explaining comment about mark price test
closes #12046
2025-07-30 07:13:35 +02:00
Matthias
3b6395ddb8 test: improve ccxt compat test teardown 2025-07-29 20:12:00 +02:00
Matthias
fdcbb3c0d0 chore: enable test checking funding-fee returned is not 0. 2025-07-29 20:05:54 +02:00
Matthias
b07ffbf721 test: remove unused argument 2025-07-29 18:30:46 +02:00
Matthias
a7b7e10c09 docs: update and simplify webhook docs 2025-07-29 07:23:03 +02:00
Matthias
f18472479a chore: align rpc message fields to use order_rate 2025-07-29 07:23:03 +02:00
Matthias
18c37b9b8f Merge pull request #12044 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-07-29 06:42:24 +02:00
Freqtrade Bot
d28abc18ea chore: update pre-commit hooks 2025-07-29 03:34:34 +00:00
Matthias
80b50141ee Merge pull request #12037 from freqtrade/dependabot/pip/develop/ruff-0.12.5
chore(deps-dev): bump ruff from 0.12.4 to 0.12.5
2025-07-28 07:40:37 +02:00
Matthias
b15d49f9ae Merge pull request #12039 from freqtrade/dependabot/github_actions/develop/astral-sh/setup-uv-6.4.3
chore(deps): bump astral-sh/setup-uv from 6.4.1 to 6.4.3
2025-07-28 07:39:37 +02:00
Matthias
668635892c Merge pull request #12038 from freqtrade/dependabot/pip/develop/ccxt-4.4.96
chore(deps): bump ccxt from 4.4.95 to 4.4.96
2025-07-28 07:35:43 +02:00
Matthias
670a29d420 Merge pull request #12035 from freqtrade/dependabot/pip/develop/cmaes-0.12.0
chore(deps): bump cmaes from 0.11.1 to 0.12.0
2025-07-28 07:33:28 +02:00
Matthias
fd0d089f43 Merge pull request #12034 from freqtrade/dependabot/pip/develop/numpy-2.3.2
chore(deps): bump numpy from 2.3.1 to 2.3.2
2025-07-28 07:27:12 +02:00
Matthias
b5fb6888f0 Merge pull request #12032 from freqtrade/dependabot/pip/develop/orjson-3.11.1
chore(deps): bump orjson from 3.11.0 to 3.11.1
2025-07-28 07:20:35 +02:00
Matthias
edc23dcd2f Merge pull request #12031 from freqtrade/dependabot/pip/develop/rich-14.1.0
chore(deps): bump rich from 14.0.0 to 14.1.0
2025-07-28 07:16:11 +02:00
Matthias
1dc299f6f4 Merge pull request #12036 from freqtrade/dependabot/pip/develop/scipy-1.16.1
chore(deps): bump scipy from 1.16.0 to 1.16.1
2025-07-28 07:12:44 +02:00
Matthias
99d2423534 Merge pull request #12033 from freqtrade/dependabot/pip/develop/mkdocs-9c6b142b23
chore(deps): bump mkdocs-material from 9.6.15 to 9.6.16 in the mkdocs group
2025-07-28 07:09:41 +02:00
Matthias
b8b8da2eb2 Merge pull request #12030 from freqtrade/dependabot/pip/develop/stable-baselines3-2.7.0
chore(deps): bump stable-baselines3 from 2.6.0 to 2.7.0
2025-07-28 06:52:25 +02:00
dependabot[bot]
4237d9fd11 chore(deps): bump astral-sh/setup-uv from 6.4.1 to 6.4.3
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.4.1 to 6.4.3.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](7edac99f96...e92bafb625)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 6.4.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 04:21:49 +00:00
dependabot[bot]
b98a91ba4c chore(deps): bump ccxt from 4.4.95 to 4.4.96
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.4.95 to 4.4.96.
- [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/v4.4.95...v4.4.96)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 04:06:42 +00:00
dependabot[bot]
e74db3e024 chore(deps-dev): bump ruff from 0.12.4 to 0.12.5
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.4 to 0.12.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/0.12.4...0.12.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 04:05:08 +00:00
dependabot[bot]
ead3282229 chore(deps): bump scipy from 1.16.0 to 1.16.1
Bumps [scipy](https://github.com/scipy/scipy) from 1.16.0 to 1.16.1.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.16.0...v1.16.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 04:03:27 +00:00
dependabot[bot]
dfd9e7e777 chore(deps): bump cmaes from 0.11.1 to 0.12.0
Bumps [cmaes](https://github.com/CyberAgentAILab/cmaes) from 0.11.1 to 0.12.0.
- [Release notes](https://github.com/CyberAgentAILab/cmaes/releases)
- [Commits](https://github.com/CyberAgentAILab/cmaes/compare/v0.11.1...v0.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 04:02:06 +00:00
dependabot[bot]
71362c9140 chore(deps): bump numpy from 2.3.1 to 2.3.2
Bumps [numpy](https://github.com/numpy/numpy) from 2.3.1 to 2.3.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/v2.3.1...v2.3.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 04:01:45 +00:00
dependabot[bot]
68114691c6 chore(deps): bump mkdocs-material in the mkdocs group
Bumps the mkdocs group with 1 update: [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `mkdocs-material` from 9.6.15 to 9.6.16
- [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.6.15...9.6.16)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 04:01:08 +00:00
dependabot[bot]
37a3bdd507 chore(deps): bump orjson from 3.11.0 to 3.11.1
Bumps [orjson](https://github.com/ijl/orjson) from 3.11.0 to 3.11.1.
- [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.11.0...3.11.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 04:00:32 +00:00
dependabot[bot]
50389cbbf4 chore(deps): bump rich from 14.0.0 to 14.1.0
Bumps [rich](https://github.com/Textualize/rich) from 14.0.0 to 14.1.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/v14.0.0...v14.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 04:00:17 +00:00
dependabot[bot]
a7e5d3e427 chore(deps): bump stable-baselines3 from 2.6.0 to 2.7.0
Bumps [stable-baselines3](https://github.com/DLR-RM/stable-baselines3) from 2.6.0 to 2.7.0.
- [Release notes](https://github.com/DLR-RM/stable-baselines3/releases)
- [Commits](https://github.com/DLR-RM/stable-baselines3/compare/v2.6.0...v2.7.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 03:58:59 +00:00
Matthias
48d1106546 fix: undefined candle_type_def in lookahead-analysis 2025-07-27 14:43:19 +02:00
Matthias
6452521002 Merge pull request #12026 from hippocritical/develop
Add Numpy2.0 np.NaN => np.nan conversion to strategy_updater
2025-07-26 13:19:28 +02:00
hippocritical
52374b39f2 adds numpy.NaN => np.nan conversion to the strategy updater since numpy2.0 changed that, now it throws errors.
To adjust more of those we can now easily expand on it.
This includes aliases for imports as well.
2025-07-26 11:22:07 +02:00
Matthias
300a866aac test: update test for new logic 2025-07-26 09:48:12 +02:00
Matthias
9873a862e0 fix: improve startup_candle_count assignment 2025-07-26 09:48:06 +02:00
Matthias
1c8bbc14b8 fix: initialize exchange before strategy 2025-07-26 09:21:02 +02:00
Matthias
afa1311ff8 chore: fix odd comment formatting 2025-07-26 09:12:46 +02:00
Matthias
3ecc9c30cb Merge pull request #12021 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-07-24 06:50:02 +02:00
Freqtrade Bot
a85bb040f2 chore: update pre-commit hooks 2025-07-24 03:30:04 +00:00
Matthias
841e480ff5 test: add test for get_dry_run_wallet 2025-07-22 07:14:37 +02:00
Matthias
a0e9b77f75 fix: fix problem in for dict based wallets 2025-07-22 07:14:37 +02:00
Matthias
47d59f8ff4 Merge pull request #12003 from freqtrade/dependabot/pip/develop/pyarrow-21.0.0
chore(deps): bump pyarrow from 20.0.0 to 21.0.0
2025-07-22 07:04:46 +02:00
Matthias
676c48411b Merge pull request #12014 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-07-22 06:52:41 +02:00
Matthias
954950c8cb chore: update pyarrow pre-compiled wheel 2025-07-22 06:43:50 +02:00
Matthias
2520b7cd51 chore: add missing fields 2025-07-22 06:43:16 +02:00
Matthias
f9d7f05d38 chore: sort conf_required alphabetically 2025-07-22 06:41:57 +02:00
Freqtrade Bot
46d4ff3d36 chore: update pre-commit hooks 2025-07-22 03:30:48 +00:00
Matthias
9347d823fc chore: re-word variable to match it's purpose
closes #12013
2025-07-21 21:08:42 +02:00
Matthias
5e8bd359c8 Merge pull request #12009 from freqtrade/dependabot/pip/develop/jsonschema-4.25.0
chore(deps): bump jsonschema from 4.24.0 to 4.25.0
2025-07-21 12:34:08 +02:00
Matthias
bae8a55f81 Merge pull request #12012 from freqtrade/dependabot/pip/develop/mypy-1.17.0
chore(deps-dev): bump mypy from 1.16.1 to 1.17.0
2025-07-21 10:42:31 +02:00
dependabot[bot]
56c672b6d2 chore(deps-dev): bump mypy from 1.16.1 to 1.17.0
---
updated-dependencies:
- dependency-name: mypy
  dependency-version: 1.17.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 06:35:33 +00:00
Matthias
de3956f2f9 Merge pull request #12008 from freqtrade/dependabot/pip/develop/ruff-0.12.4
chore(deps-dev): bump ruff from 0.12.3 to 0.12.4
2025-07-21 08:30:43 +02:00
Matthias
ddd7009fa8 Merge pull request #12011 from freqtrade/dependabot/pip/develop/types-83c738a83e
chore(deps-dev): bump types-cachetools from 6.0.0.20250525 to 6.1.0.20250717 in the types group
2025-07-21 08:11:10 +02:00
dependabot[bot]
31891b25af chore(deps-dev): bump ruff from 0.12.3 to 0.12.4
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.3 to 0.12.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/0.12.3...0.12.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 05:57:17 +00:00
Matthias
187b19b1d6 Merge pull request #12010 from freqtrade/dependabot/pip/develop/pytest-b7c466671f
chore(deps-dev): bump pytest-asyncio from 1.0.0 to 1.1.0 in the pytest group
2025-07-21 07:55:50 +02:00
dependabot[bot]
e55d8512e7 chore(deps): bump pyarrow from 20.0.0 to 21.0.0
Bumps [pyarrow](https://github.com/apache/arrow) from 20.0.0 to 21.0.0.
- [Release notes](https://github.com/apache/arrow/releases)
- [Commits](https://github.com/apache/arrow/compare/apache-arrow-20.0.0...apache-arrow-21.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 05:46:12 +00:00
Matthias
697912f244 Merge pull request #12006 from freqtrade/dependabot/pip/develop/technical-1.5.2
chore(deps): bump technical from 1.5.1 to 1.5.2
2025-07-21 07:45:47 +02:00
Matthias
2f3ad09cf5 Merge pull request #12004 from freqtrade/dependabot/pip/develop/scikit-learn-1.7.1
chore(deps): bump scikit-learn from 1.7.0 to 1.7.1
2025-07-21 07:45:06 +02:00
Matthias
523dd305ba Merge pull request #12007 from freqtrade/dependabot/pip/develop/python-telegram-bot-22.3
chore(deps): bump python-telegram-bot from 22.2 to 22.3
2025-07-21 07:39:23 +02:00
Matthias
2d87d74829 Merge pull request #12005 from freqtrade/dependabot/pip/develop/orjson-3.11.0
chore(deps): bump orjson from 3.10.18 to 3.11.0
2025-07-21 07:30:59 +02:00
Matthias
820791e889 Merge pull request #12002 from freqtrade/dependabot/pip/develop/tensorboard-2.20.0
chore(deps): bump tensorboard from 2.19.0 to 2.20.0
2025-07-21 07:10:24 +02:00
Matthias
a130122cc6 chore: bump pre-commit types for cachetools 2025-07-21 06:49:52 +02:00
Matthias
3a58297a8d docs: improve hyperliquid doc clarity further 2025-07-21 06:29:32 +02:00
Matthias
65d22f9f1c Merge pull request #12001 from freqtrade/dependabot/github_actions/develop/astral-sh/setup-uv-6.4.1
chore(deps): bump astral-sh/setup-uv from 6.3.1 to 6.4.1
2025-07-21 06:22:12 +02:00
dependabot[bot]
ec5df87318 chore(deps-dev): bump types-cachetools in the types group
Bumps the types group with 1 update: [types-cachetools](https://github.com/typeshed-internal/stub_uploader).


Updates `types-cachetools` from 6.0.0.20250525 to 6.1.0.20250717
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 04:22:04 +00:00
dependabot[bot]
cf1533c478 chore(deps-dev): bump pytest-asyncio in the pytest group
Bumps the pytest group with 1 update: [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio).


Updates `pytest-asyncio` from 1.0.0 to 1.1.0
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v1.0.0...v1.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 04:22:03 +00:00
dependabot[bot]
fc34f8cad2 chore(deps): bump jsonschema from 4.24.0 to 4.25.0
Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.24.0 to 4.25.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.24.0...v4.25.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 04:21:50 +00:00
dependabot[bot]
3fbb38730c chore(deps): bump python-telegram-bot from 22.2 to 22.3
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 22.2 to 22.3.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v22.2...v22.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 04:20:43 +00:00
dependabot[bot]
6a327440e0 chore(deps): bump technical from 1.5.1 to 1.5.2
---
updated-dependencies:
- dependency-name: technical
  dependency-version: 1.5.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 04:20:25 +00:00
dependabot[bot]
f1c8d8325b chore(deps): bump orjson from 3.10.18 to 3.11.0
Bumps [orjson](https://github.com/ijl/orjson) from 3.10.18 to 3.11.0.
- [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.10.18...3.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 04:20:24 +00:00
dependabot[bot]
d2557a70d7 chore(deps): bump scikit-learn from 1.7.0 to 1.7.1
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 1.7.0 to 1.7.1.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.7.0...1.7.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 04:20:08 +00:00
dependabot[bot]
bf76347751 chore(deps): bump tensorboard from 2.19.0 to 2.20.0
Bumps [tensorboard](https://github.com/tensorflow/tensorboard) from 2.19.0 to 2.20.0.
- [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.19.0...2.20.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 04:17:28 +00:00
dependabot[bot]
a99a49e2af chore(deps): bump astral-sh/setup-uv from 6.3.1 to 6.4.1
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.3.1 to 6.4.1.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](bd01e18f51...7edac99f96)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 6.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 03:32:53 +00:00
Matthias
b7fc924e82 docs: update backtest docs to explain missing metrics 2025-07-20 10:06:51 +02:00
Matthias
ef55bf6800 fix: use absolute daily profit instead of relative
closes #11987
2025-07-20 10:06:43 +02:00
Matthias
25ffc76655 docs(hyperliquid): documentation for hyperliquid vault / subaccount
closes #11500
2025-07-20 09:45:59 +02:00
Matthias
15b1cff9c2 docs: hyperliquid - clarify walletAddress further ... 2025-07-20 08:35:33 +02:00
Matthias
c1ba2936ec test: update ccxt_config test to set defaultSettle for bybit 2025-07-19 16:14:27 +02:00
Matthias
f08c0c9870 feat: bybit - set defaultSettle to allow fetchPositions to work in usdc markets 2025-07-19 15:58:18 +02:00
Matthias
3b5b8bd007 feat: enable USDC futures for bybit
closes #11809
2025-07-19 15:34:27 +02:00
Matthias
74067d454b feat: Update bybit liquidation price docstring 2025-07-19 15:26:19 +02:00
Matthias
16359d617d chore: disable ws tests for hyperliquid for now 2025-07-19 15:08:32 +02:00
Matthias
ae9f83ed30 refactor: simplify ws_test 2025-07-19 15:07:53 +02:00
Matthias
49626ca31c Merge pull request #11997 from freqtrade/bump/ccxt
Bump ccxt to 4.4.95
2025-07-19 09:41:12 +02:00
Matthias
884f543fb7 chore: bump ccxt to 4.4.95 2025-07-19 09:03:50 +02:00
Matthias
29df7499c5 chore: improve error output 2025-07-19 08:30:10 +02:00
Matthias
5e64416dfa test: add test for profit_all 2025-07-18 20:17:19 +02:00
Matthias
1118032c1f feat: add /profit_all endpoint 2025-07-18 20:17:11 +02:00
Matthias
277828b1d4 chore(tests): reduce hyperliquid timeframe
UBTC wasn't listed for long enough
2025-07-18 18:27:36 +02:00
Matthias
47dcf7bc93 chore(ci): Switch hyperliquid tests to a more active pair 2025-07-18 07:17:31 +02:00
Matthias
75081ab046 docs: add /profit_long and short to telegram docs 2025-07-18 06:58:20 +02:00
Matthias
571497e58b Merge pull request #11974 from qqqqqf-q/feat/telegram-profit-direction
feat(telegram): Add /profit long and /profit short commands
2025-07-18 06:54:21 +02:00
Matthias
d710c85cda chore: simplify profit-callback logic 2025-07-17 21:02:46 +02:00
Matthias
978f9c804b chore: improved code structure and types 2025-07-17 20:59:04 +02:00
Matthias
31522c681e feat: update get_best_pair to allow better filtering 2025-07-17 20:28:31 +02:00
Matthias
a5ac8a95a7 feat: update get_trading_volume interface to allow filtering for more props 2025-07-17 20:23:59 +02:00
Matthias
35dab9b566 test: fix typo in test name 2025-07-17 07:28:53 +02:00
Matthias
2b05a49671 test: Update telegram /profit tests 2025-07-17 07:26:45 +02:00
Matthias
b79b5b6c32 refactor: move profit test next to each other 2025-07-17 07:21:05 +02:00
Matthias
78124cd025 feat: support /profit long, too 2025-07-17 07:20:15 +02:00
Matthias
7c4c789711 chore: fix message formatting issue 2025-07-17 07:10:32 +02:00
Matthias
30b32a0d2e fix: don't call stoploss-adjust after trade has closed
closes #11990
2025-07-17 06:59:53 +02:00
Matthias
d33768ecee Merge pull request #11992 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-07-17 06:38:42 +02:00
Freqtrade Bot
ccf20b2fe1 chore: update pre-commit hooks 2025-07-17 03:29:45 +00:00
Matthias
23bbbddcdb chore: improve backtest doc clarity 2025-07-16 20:24:48 +02:00
Matthias
c6ed64746c chore: sort pairs by absolute profit 2025-07-16 20:22:56 +02:00
Matthias
8f4dfbf55d chore: remove long-deprecated and pointless metric 2025-07-16 20:18:26 +02:00
Matthias
5296a3be23 fix: order_filled errors must be ignored 2025-07-16 20:18:26 +02:00
qqqqqf
c92c64bac2 Modify the duplicate functions.
Modify the original three duplicate functions (_profit_short, _profit_long, _profit), and add _profit_handler and _format_profit_message.

Refactor telegram.py and rpc.py.

Sorry for the duplicate functions yesterday, I was a bit rushed.

Both pytest and ruff have passed.
2025-07-16 11:43:51 +08:00
Matthias
aaca904455 chore: improved pull request template wording 2025-07-15 20:11:00 +02:00
qqqqqf
19b57ad87e Add /profit long and /profit short commands#2
# Added `/profit_long` and `/profit_short` Commands

Users can now use commands like:

- `/profit_long [<n>]`
- `/profit_short [<n>]`
- `/profit [<n>]`

---

## Key Changes Implemented

### `freqtrade/rpc/telegram.py`:

- The `_profit` command handler has been updated to robustly parse `long` or `short` as optional arguments.
  - **Translation:** The `_profit` command handler has been improved to reliably interpret `long` or `short` as optional parameters.

- The determined direction is passed to the RPC layer.
  - **Translation:** The direction determined (either `long` or `short`) is passed to the RPC layer.

- The `/help` command documentation is updated.
  - **Translation:** The documentation for the `/help` command has been updated accordingly.

---

### `freqtrade/rpc/rpc.py`:

- The `_rpc_trade_statistics` method now accepts a direction parameter.
  - **Translation:** The `_rpc_trade_statistics` method has been updated to accept a `direction` parameter.

- The method has been refactored into a main function and a `_process_trade_stats` helper function to reduce complexity and improve readability.
  - **Translation:** The method has been refactored into a main function and a helper function, `_process_trade_stats`, to reduce complexity and improve readability.

- The database query filter is dynamically modified to include a condition on `Trade.is_short` when a direction is provided.
  - **Translation:** The database query filter dynamically adjusts to include a condition on `Trade.is_short` when a direction is specified.

---

### `tests/rpc/test_rpc_telegram.py`:

- Existing tests for `_profit` have been updated to match the new message format.
  - **Translation:** Existing tests for the `_profit` function have been updated to match the new message format.

- New test cases have been added to specifically validate the `long` and `short` filtering functionality.
  - **Translation:** New test cases have been added to specifically validate the filtering functionality for `long` and `short` trades.

---

## Testing

- All local `pytest` tests pass successfully.
  - **Translation:** All local `pytest` tests have passed successfully.

- All `ruff` linter checks pass.
  - **Translation:** All `ruff` code checks have passed.

- As I do not have a full local deployment, I am relying on the CI pipeline for final validation.
  - **Translation:** Since I don't have a complete local deployment, I am relying on the CI pipeline for final validation.

---
This time, only a little AI was used :)
Except for the translation.
2025-07-15 19:15:04 +08:00
qqqqqf
583738040c Merge branch 'freqtrade:develop' into feat/telegram-profit-direction 2025-07-15 16:49:02 +08:00
Matthias
6e38b72601 chore: Improve pull request template to be clear against AI 2025-07-15 07:05:41 +02:00
Matthias
8bf8ccfe50 Merge pull request #11985 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-07-15 06:25:00 +02:00
Freqtrade Bot
e721a741ca chore: update pre-commit hooks 2025-07-15 03:31:05 +00:00
Matthias
19e9effae4 Merge pull request #11980 from freqtrade/dependabot/pip/develop/python-rapidjson-1.21
chore(deps): bump python-rapidjson from 1.20 to 1.21
2025-07-14 18:16:13 +02:00
Matthias
84100ca7ae Merge pull request #11976 from freqtrade/dependabot/pip/develop/types-1a612854d0
chore(deps-dev): bump types-python-dateutil from 2.9.0.20250516 to 2.9.0.20250708 in the types group
2025-07-14 08:20:49 +02:00
Matthias
a6f94f7d24 Merge pull request #11978 from freqtrade/dependabot/pip/develop/certifi-2025.7.14
chore(deps): bump certifi from 2025.6.15 to 2025.7.14
2025-07-14 08:17:42 +02:00
Matthias
0a32be3fc3 Merge pull request #11982 from freqtrade/dependabot/pip/develop/pandas-2.3.1
chore(deps): bump pandas from 2.3.0 to 2.3.1
2025-07-14 08:11:32 +02:00
Matthias
065203c3db Merge pull request #11983 from freqtrade/dependabot/pip/develop/aiohttp-3.12.14
chore(deps): bump aiohttp from 3.12.13 to 3.12.14
2025-07-14 08:03:44 +02:00
Matthias
758ae42092 Merge pull request #11979 from freqtrade/dependabot/pip/develop/fastapi-0.116.1
chore(deps): bump fastapi from 0.115.14 to 0.116.1
2025-07-14 07:47:55 +02:00
dependabot[bot]
6fdc0f1b22 chore(deps): bump aiohttp from 3.12.13 to 3.12.14
Bumps [aiohttp](https://github.com/aio-libs/aiohttp) from 3.12.13 to 3.12.14.
- [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.12.13...v3.12.14)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 05:37:47 +00:00
dependabot[bot]
7c9fe22b9f chore(deps): bump pandas from 2.3.0 to 2.3.1
Bumps [pandas](https://github.com/pandas-dev/pandas) from 2.3.0 to 2.3.1.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Commits](https://github.com/pandas-dev/pandas/compare/v2.3.0...v2.3.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 05:37:46 +00:00
Matthias
53aecfa856 Merge pull request #11981 from freqtrade/dependabot/pip/develop/ccxt-4.4.94
chore(deps): bump ccxt from 4.4.92 to 4.4.94
2025-07-14 07:36:31 +02:00
Matthias
bf511f12d4 Merge pull request #11977 from freqtrade/dependabot/pip/develop/ruff-0.12.3
chore(deps-dev): bump ruff from 0.12.2 to 0.12.3
2025-07-14 07:19:19 +02:00
Matthias
0eed655e7c chore: bump types-dateutil in pre-commit config 2025-07-14 06:42:42 +02:00
dependabot[bot]
d2d283a4b2 chore(deps): bump ccxt from 4.4.92 to 4.4.94
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.4.92 to 4.4.94.
- [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/v4.4.92...v4.4.94)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 04:28:22 +00:00
dependabot[bot]
85492c1084 chore(deps): bump python-rapidjson from 1.20 to 1.21
Bumps [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) from 1.20 to 1.21.
- [Changelog](https://github.com/python-rapidjson/python-rapidjson/blob/master/CHANGES.rst)
- [Commits](https://github.com/python-rapidjson/python-rapidjson/compare/v1.20...v1.21)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 04:28:21 +00:00
dependabot[bot]
f07134bf66 chore(deps): bump fastapi from 0.115.14 to 0.116.1
Bumps [fastapi](https://github.com/fastapi/fastapi) from 0.115.14 to 0.116.1.
- [Release notes](https://github.com/fastapi/fastapi/releases)
- [Commits](https://github.com/fastapi/fastapi/compare/0.115.14...0.116.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 04:28:19 +00:00
dependabot[bot]
7678a59b1f chore(deps): bump certifi from 2025.6.15 to 2025.7.14
Bumps [certifi](https://github.com/certifi/python-certifi) from 2025.6.15 to 2025.7.14.
- [Commits](https://github.com/certifi/python-certifi/compare/2025.06.15...2025.07.14)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 04:27:14 +00:00
dependabot[bot]
daced63d00 chore(deps-dev): bump ruff from 0.12.2 to 0.12.3
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.2 to 0.12.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/0.12.2...0.12.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 04:25:44 +00:00
dependabot[bot]
002d8c4022 chore(deps-dev): bump types-python-dateutil in the types group
Bumps the types group with 1 update: [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader).


Updates `types-python-dateutil` from 2.9.0.20250516 to 2.9.0.20250708
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 04:21:02 +00:00
Matthias
8c85448ed7 chore: remove unused import 2025-07-13 16:04:25 +02:00
Matthias
2236b08fc2 refactor: improved exchange init sequence 2025-07-13 16:03:51 +02:00
Matthias
24f904efc4 test: fix failing test 2025-07-13 15:41:00 +02:00
Matthias
3eaa862caf chore: remove modetrade wrong imports 2025-07-13 13:34:03 +02:00
Matthias
469587e656 feat: add modetrade exchange base config 2025-07-13 13:08:47 +02:00
Matthias
b24064d706 refactor: move default trading mode determination to exchange 2025-07-13 13:04:37 +02:00
Matthias
c4a29a0178 test: ensure candle_type_def is set properly 2025-07-13 13:04:37 +02:00
Matthias
aedbe0d1d2 chore: add spot to available trading modes 2025-07-13 13:04:37 +02:00
Matthias
c5e3f7d0ba chore: default trading-mode to first in supported list 2025-07-13 13:04:37 +02:00
Matthias
bc019d6b6d chore: Explicitly type variable 2025-07-13 13:04:33 +02:00
Matthias
f889061b95 refactor: don't assume all exchanges support spot markets 2025-07-13 10:27:33 +02:00
Matthias
1f52ff3f94 feat: enable websocket support for hyperliquid
This should be treated as experimental (experimental).
2025-07-13 10:20:48 +02:00
Matthias
d0c3b30289 docs: add explanation message about "couldn't reuse" 2025-07-13 09:55:36 +02:00
Matthias
e77feafee0 fix: avoid unnecessary log message when filling ws message 2025-07-13 09:52:05 +02:00
Matthias
1889a315a3 chore: fix comment location 2025-07-13 09:41:48 +02:00
Matthias
cc998afb44 chore: explicitly disable hyperliquid websockets
Add comment explaining the reason
2025-07-13 09:37:05 +02:00
qqqqqf
97f30cf13d feat(telegram): Add /profit long and /profit short commands
This commit enhances the /profit Telegram command to allow filtering by trade direction.

- The `_profit` handler in `telegram.py` now parses 'long'/'short' arguments and passes the direction to the RPC layer.
- The `_rpc_trade_statistics` method in `rpc.py` is updated to filter trades based on the provided direction. It has also been refactored for lower complexity.
- The `/help` command documentation is updated to reflect the new functionality.
- Corresponding unit tests in `test_rpc_telegram.py` are updated and extended to cover the new cases.
2025-07-12 08:41:39 +08:00
Matthias
ccbc48b590 refactor: improve method ordering 2025-07-10 07:08:35 +02:00
Matthias
dde6001ad0 Merge pull request #11972 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-07-10 06:30:36 +02:00
Freqtrade Bot
aae3ab23ac chore: update pre-commit hooks 2025-07-10 03:27:16 +00:00
Matthias
604e08382e Merge pull request #11899 from mrpabloyeah/add-current-drawdown-in-telegram-profit-command
Add current drawdown in telegram profit command
2025-07-09 06:40:28 +02:00
Matthias
2ecadabd92 chore: align API endpoints 2025-07-08 20:09:17 +02:00
Matthias
17c7826756 Merge branch 'develop' into add-current-drawdown-in-telegram-profit-command 2025-07-08 19:59:42 +02:00
Matthias
fe92df7842 chore: revert unnecessary edits 2025-07-08 19:59:37 +02:00
mrpabloyeah
e6dd932436 Expand calculate_max_drawdown() to return the current drawdown data and use it instead of calculate_current_drawdown() 2025-07-08 13:00:48 +02:00
Matthias
8acc05bb2d chore: update wording in exception message 2025-07-08 06:59:52 +02:00
Matthias
c39f6f892b Merge pull request #11968 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-07-08 06:54:38 +02:00
Freqtrade Bot
f13b51cf91 chore: update pre-commit hooks 2025-07-08 03:26:25 +00:00
Matthias
e90c60c940 chore: improved response on delete order 2025-07-07 19:26:35 +02:00
Matthias
60029c2a8b fix: improved message when nonexisting trade is deleted
part of #11967
2025-07-07 19:20:24 +02:00
Matthias
14429d449c Merge pull request #11965 from freqtrade/dependabot/pip/develop/scipy-stubs-1.16.0.2
chore(deps-dev): bump scipy-stubs from 1.15.3.0 to 1.16.0.2
2025-07-07 07:15:41 +02:00
Matthias
cba9d6078c Merge pull request #11964 from freqtrade/dependabot/pip/develop/cryptography-45.0.5
chore(deps): bump cryptography from 45.0.4 to 45.0.5
2025-07-07 07:09:44 +02:00
Matthias
2dfad98ed6 Merge pull request #11962 from freqtrade/dependabot/pip/develop/mkdocs-7fcd3881cb
chore(deps): bump mkdocs-material from 9.6.14 to 9.6.15 in the mkdocs group
2025-07-07 06:55:46 +02:00
Matthias
9de9cac23a chore: bump scipy-stubs in pre-commit config 2025-07-07 06:46:39 +02:00
dependabot[bot]
d1fd7c3f6e chore(deps): bump cryptography from 45.0.4 to 45.0.5
Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.4 to 45.0.5.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/45.0.4...45.0.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-07 04:45:48 +00:00
Matthias
8fd5b93127 Merge pull request #11961 from freqtrade/dependabot/pip/develop/pytest-21071ef1ad
chore(deps-dev): bump pytest-xdist from 3.7.0 to 3.8.0 in the pytest group
2025-07-07 06:44:58 +02:00
Matthias
dafa5d4bac Merge pull request #11966 from freqtrade/dependabot/pip/develop/ccxt-4.4.92
chore(deps): bump ccxt from 4.4.91 to 4.4.92
2025-07-07 06:44:34 +02:00
Matthias
d29cd5b9d9 Merge pull request #11963 from freqtrade/dependabot/pip/develop/ruff-0.12.2
chore(deps-dev): bump ruff from 0.12.1 to 0.12.2
2025-07-07 06:44:18 +02:00
dependabot[bot]
60094c6581 chore(deps): bump ccxt from 4.4.91 to 4.4.92
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.4.91 to 4.4.92.
- [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/v4.4.91...v4.4.92)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-07 03:58:24 +00:00
dependabot[bot]
dd32e228ce chore(deps-dev): bump scipy-stubs from 1.15.3.0 to 1.16.0.2
Bumps [scipy-stubs](https://github.com/scipy/scipy-stubs) from 1.15.3.0 to 1.16.0.2.
- [Release notes](https://github.com/scipy/scipy-stubs/releases)
- [Commits](https://github.com/scipy/scipy-stubs/compare/v1.15.3.0...v1.16.0.2)

---
updated-dependencies:
- dependency-name: scipy-stubs
  dependency-version: 1.16.0.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-07 03:58:09 +00:00
dependabot[bot]
81639c61a8 chore(deps-dev): bump ruff from 0.12.1 to 0.12.2
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.1 to 0.12.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/0.12.1...0.12.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-07 03:55:54 +00:00
dependabot[bot]
ae1fcbcffb chore(deps): bump mkdocs-material in the mkdocs group
Bumps the mkdocs group with 1 update: [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `mkdocs-material` from 9.6.14 to 9.6.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.6.14...9.6.15)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-07 03:55:33 +00:00
dependabot[bot]
263d035181 chore(deps-dev): bump pytest-xdist in the pytest group
Bumps the pytest group with 1 update: [pytest-xdist](https://github.com/pytest-dev/pytest-xdist).


Updates `pytest-xdist` from 3.7.0 to 3.8.0
- [Release notes](https://github.com/pytest-dev/pytest-xdist/releases)
- [Changelog](https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-xdist/compare/v3.7.0...v3.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-07 03:51:40 +00:00
Matthias
8ecd7011cb Merge pull request #11953 from freqtrade/drop_3.10
Drop support for python 3.10
2025-07-06 08:58:54 +02:00
Matthias
f7d42ba60d chore: add TODO to eventually remove warning 2025-07-05 19:58:47 +02:00
Matthias
701cf47c4b fix: implement fall-through for leverage tier finding
We'll for now issue a warning about this - and use the "current" tier
This way, gaps in tier data (between maxNotional and the next
minNotional) no longer cause an operational exception.

closes #11923
2025-07-05 19:56:52 +02:00
Matthias
315009a7f0 chore: move comment to correct location 2025-07-05 19:50:26 +02:00
Matthias
6e98a369de test: add test case for #11923 2025-07-05 19:44:24 +02:00
Matthias
fa69b7017b test: add TIA/USDT:USDT test leverage tier
part of #11923
2025-07-05 19:44:12 +02:00
Matthias
e98f3cfedf docs: Update "tag" examples with advanced examples 2025-07-05 08:56:10 +02:00
Matthias
5f4184536a docs: update max enter_tag length 2025-07-05 08:41:08 +02:00
Matthias
ac904c60c8 fix: powershell syntax error 2025-07-05 08:38:02 +02:00
Matthias
16defdbfdf chore: autoformat actual code 2025-07-04 19:29:12 +02:00
Matthias
d010a050d3 chore: autoformat tests 2025-07-04 19:29:12 +02:00
Matthias
7b541ff958 test: refactor test to use asyncio.timeout 2025-07-04 19:29:12 +02:00
Matthias
78a47920ef chore: Update dockerfile syntax 2025-07-04 19:26:38 +02:00
Matthias
e5a2011a85 ci: don't switch docker to experimental 2025-07-04 18:29:15 +02:00
Matthias
640cab2ca8 refactor: tests - update timezone.utc to UTC 2025-07-04 18:22:42 +02:00
Matthias
deb8bde078 refactor: tests - update timezone.utc to UTC 2025-07-04 18:22:42 +02:00
Matthias
79f0271720 refactor: Asyncio timeoutError update 2025-07-04 18:22:42 +02:00
Matthias
5b8b80cf59 refactor: Update timezone.utc to UTC 2025-07-04 18:22:42 +02:00
Matthias
a7ee45a0ba refactor: Update timezone.utc to UTC 2025-07-04 18:22:42 +02:00
Matthias
37cc949d94 refactor: Update utc to UTC 2025-07-04 18:22:42 +02:00
Matthias
5f59e1435e chore: bump known 3.11+ dependencies 2025-07-04 18:22:42 +02:00
Matthias
e1f26aeb4e chore!: drop support for python 3.10 2025-07-04 18:22:42 +02:00
Matthias
b49dafc412 docs: update to 3.11+ version requirement 2025-07-04 18:22:42 +02:00
Matthias
7c84059b3a chore: drop support for pytohn 3.10 in setup scripts 2025-07-04 18:22:42 +02:00
Matthias
10a0bf386b ci: Don't test against 3.10 2025-07-04 18:22:42 +02:00
Matthias
2936cb425d Merge pull request #11948 from jorenham/scipy-stubs
Add `scipy-stubs` as dev dependency
2025-07-04 15:55:56 +02:00
Matthias
e5a9c65e66 ci: improve pre-commit-update check 2025-07-04 15:25:27 +02:00
Matthias
81fdff1039 chore: simplify exchangews_ohlcv further 2025-07-04 15:24:44 +02:00
Matthias
5101b1767b test: slightly cleanup ws_ohlcv test 2025-07-04 15:04:24 +02:00
Matthias
e90aa6abda test: Increased asyncio.sleep for ws_ohlcv test 2025-07-04 14:39:19 +02:00
Matthias
1dd56df5d8 chore: improve sorting in mypy deps 2025-07-04 14:24:30 +02:00
Matthias
9bd8b7acf5 test: use event based init for telegram 2025-07-03 21:08:09 +02:00
Matthias
2a5a422079 test: attempt to fix test_exchangews_ohlcv flakyness 2025-07-03 21:08:09 +02:00
Matthias
e92afb74c6 test: improve event-loop mocking 2025-07-03 21:08:09 +02:00
Matthias
4421e54cde fix: don't disable existing loggers when reinitializing logging
closes #11944
2025-07-03 17:44:23 +02:00
Matthias
b5938985f2 fix: don't log at "root" level. 2025-07-03 15:21:51 +02:00
jorenham
0601f15bd0 Add scipy-stubs as dev dependency
https://github.com/scipy/scipy-stubs
2025-07-03 13:58:12 +02:00
Matthias
66020d250c test: update test trades pagination handling to use _ft_has 2025-07-03 09:00:27 +02:00
Matthias
909286c0f7 chore: luno - remove unnecessary config 2025-07-03 08:58:16 +02:00
Matthias
5efad94d3d chore: add zizmor github action 2025-07-03 08:41:59 +02:00
Matthias
1e24653e79 feat: add luno basic exchange configuration
closes #11928
2025-07-03 08:37:54 +02:00
Matthias
c9bc2b880a feat: add always_require_api_keys to ft_has 2025-07-03 08:33:15 +02:00
Matthias
545cd3a994 chore: ft_has should be before remove_credentials 2025-07-03 08:33:12 +02:00
Matthias
51a09585db refactor: extract final ft_has construction to it's own method 2025-07-03 08:19:04 +02:00
Matthias
b98816635d chore: simplify exchange class setup
remove attributes that are only used once.
2025-07-03 08:18:58 +02:00
Matthias
f6ed609134 Merge pull request #11946 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-07-03 07:34:36 +02:00
Freqtrade Bot
aec2dc5bb0 chore: update pre-commit hooks 2025-07-03 03:27:09 +00:00
Matthias
cc807d1cf9 Merge pull request #11945 from freqtrade/new_release
New release 2025.6
2025-07-02 21:08:03 +02:00
Matthias
15c836c566 chore: bump version to 2025.7-dev 2025-07-02 20:18:15 +02:00
Matthias
5f907a4b1a chore: bump version to 2025.6 2025-07-02 20:03:29 +02:00
Matthias
a464a2fdbc Merge branch 'stable' into new_release 2025-07-02 20:03:16 +02:00
Matthias
fa3d95fd89 Merge pull request #11919 from freqtrade/stash86-patch-1
Fix example config
2025-07-02 18:16:51 +02:00
Matthias
ba8778b181 chore: revert max_open_trades in sample config for now 2025-07-02 17:55:28 +02:00
Matthias
6421f767c6 chore: remove github buttons js code 2025-07-02 16:49:36 +02:00
Matthias
f18c7f0cad docs: make sure github buttons render 2025-07-02 16:49:36 +02:00
Matthias
e63017a2b9 docs: enable "edit" functionality for docs 2025-07-02 16:49:36 +02:00
Matthias
049cc10169 docs: improved github icon for docs 2025-07-02 16:49:36 +02:00
Matthias
595db54ac7 Merge pull request #11917 from froggleston/frog-contrib-exch-1
Add short explanation of where exchange files are
2025-07-02 09:16:54 +02:00
Matthias
bfa9c818e6 chore: update margin/trading mode exception to be a configuration error 2025-07-02 07:47:38 +02:00
Matthias
30afedd4f8 chore: use value instead of string to avoid "none" output in "marginmode" 2025-07-02 07:47:19 +02:00
Matthias
6049ac1561 docs: update wording of developer docs 2025-07-02 07:35:02 +02:00
Matthias
25c24ddc9c chore: improve error message
part of #11923
2025-07-01 20:48:32 +02:00
Matthias
03df35b49b Merge pull request #11930 from freqtrade/dependabot/pip/develop/ast-comments-1.2.3
chore(deps): bump ast-comments from 1.2.2 to 1.2.3
2025-07-01 07:26:15 +02:00
Matthias
3b441cd08f Merge pull request #11942 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-07-01 07:22:09 +02:00
Freqtrade Bot
0f67d32b75 chore: update pre-commit hooks 2025-07-01 03:31:30 +00:00
Matthias
820a83c96f Merge pull request #11934 from freqtrade/dependabot/pip/develop/ccxt-4.4.91
chore(deps): bump ccxt from 4.4.90 to 4.4.91
2025-06-30 10:46:44 +02:00
dependabot[bot]
fae30c6ff9 chore(deps): bump ccxt from 4.4.90 to 4.4.91
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.4.90 to 4.4.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/v4.4.90...v4.4.91)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-30 07:54:13 +00:00
Matthias
3e4ffb9c1d Merge pull request #11939 from freqtrade/dependabot/pip/develop/uvicorn-0.35.0
chore(deps): bump uvicorn from 0.34.3 to 0.35.0
2025-06-30 09:53:10 +02:00
Matthias
f6d10dad6a Merge pull request #11931 from freqtrade/dependabot/pip/develop/plotly-6.2.0
chore(deps): bump plotly from 6.1.2 to 6.2.0
2025-06-30 09:49:27 +02:00
Matthias
79b530d98e Merge pull request #11933 from freqtrade/dependabot/pip/develop/python-telegram-bot-22.2
chore(deps): bump python-telegram-bot from 22.1 to 22.2
2025-06-30 09:48:49 +02:00
Matthias
3b8e521b81 Merge pull request #11938 from freqtrade/dependabot/github_actions/develop/astral-sh/setup-uv-6.3.1
chore(deps): bump astral-sh/setup-uv from 6.3.0 to 6.3.1
2025-06-30 09:48:17 +02:00
Matthias
7e228ba7ab Merge pull request #11937 from freqtrade/dependabot/pip/develop/ruff-0.12.1
chore(deps-dev): bump ruff from 0.12.0 to 0.12.1
2025-06-30 08:23:56 +02:00
Matthias
6050d09ed8 Merge pull request #11936 from freqtrade/dependabot/github_actions/develop/rjstone/discord-webhook-notify-2.2.1
chore(deps): bump rjstone/discord-webhook-notify from 2.1.1 to 2.2.1
2025-06-30 08:23:18 +02:00
dependabot[bot]
b7f158a79e chore(deps): bump uvicorn from 0.34.3 to 0.35.0
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.34.3 to 0.35.0.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/docs/release-notes.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.34.3...0.35.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-30 06:13:21 +00:00
Matthias
bc13d1636c Merge pull request #11935 from freqtrade/dependabot/pip/develop/fastapi-0.115.14
chore(deps): bump fastapi from 0.115.13 to 0.115.14
2025-06-30 08:11:30 +02:00
dependabot[bot]
021fdcab43 chore(deps): bump astral-sh/setup-uv from 6.3.0 to 6.3.1
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.3.0 to 6.3.1.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](445689ea25...bd01e18f51)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 6.3.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-30 04:40:04 +00:00
dependabot[bot]
d206b601b3 chore(deps-dev): bump ruff from 0.12.0 to 0.12.1
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.12.0 to 0.12.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/0.12.0...0.12.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-30 04:39:33 +00:00
dependabot[bot]
949c7318f4 chore(deps): bump rjstone/discord-webhook-notify from 2.1.1 to 2.2.1
Bumps [rjstone/discord-webhook-notify](https://github.com/rjstone/discord-webhook-notify) from 2.1.1 to 2.2.1.
- [Release notes](https://github.com/rjstone/discord-webhook-notify/releases)
- [Commits](a975c85e53...c259727348)

---
updated-dependencies:
- dependency-name: rjstone/discord-webhook-notify
  dependency-version: 2.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-30 04:39:19 +00:00
dependabot[bot]
3666362479 chore(deps): bump fastapi from 0.115.13 to 0.115.14
Bumps [fastapi](https://github.com/fastapi/fastapi) from 0.115.13 to 0.115.14.
- [Release notes](https://github.com/fastapi/fastapi/releases)
- [Commits](https://github.com/fastapi/fastapi/compare/0.115.13...0.115.14)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-30 04:39:08 +00:00
dependabot[bot]
f27540d221 chore(deps): bump python-telegram-bot from 22.1 to 22.2
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 22.1 to 22.2.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v22.1...v22.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-30 04:39:00 +00:00
dependabot[bot]
31dc0fe327 chore(deps): bump plotly from 6.1.2 to 6.2.0
Bumps [plotly](https://github.com/plotly/plotly.py) from 6.1.2 to 6.2.0.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v6.1.2...v6.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-30 04:37:03 +00:00
dependabot[bot]
1125c60f07 chore(deps): bump ast-comments from 1.2.2 to 1.2.3
Bumps [ast-comments](https://github.com/t3rn0/ast-comments) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/t3rn0/ast-comments/releases)
- [Commits](https://github.com/t3rn0/ast-comments/compare/1.2.2...1.2.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-30 04:36:19 +00:00
Matthias
9f5fd574b4 Merge pull request #11922 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-06-26 10:47:19 +02:00
Freqtrade Bot
74eb0d9f88 chore: update pre-commit hooks 2025-06-26 03:24:41 +00:00
Stefano
52c78966ef Fix example config
- Fix the low stake anount
- Set max open trades to unlimited, as a good practice
2025-06-25 19:21:00 +09:00
froggleston
1641f56956 Add short explanation of where exchange files are 2025-06-24 15:23:45 +01:00
Matthias
d27981f8cf Merge pull request #11915 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-06-24 09:06:24 +02:00
Freqtrade Bot
6031ccabac chore: update pre-commit hooks 2025-06-24 03:25:22 +00:00
Matthias
c64b6b0d69 Merge pull request #11901 from freqtrade/dependabot/pip/develop/ruff-0.12.0
chore(deps-dev): bump ruff from 0.11.13 to 0.12.0
2025-06-23 15:16:57 +02:00
Matthias
4203693428 chore: Ruf ignore extension 2025-06-23 15:01:59 +02:00
Matthias
c76c26cc34 Merge pull request #11910 from freqtrade/dependabot/github_actions/develop/astral-sh/setup-uv-6.3.0
chore(deps): bump astral-sh/setup-uv from 6.1.0 to 6.3.0
2025-06-23 09:14:13 +02:00
Matthias
1c87748b99 Merge pull request #11906 from freqtrade/dependabot/pip/develop/optuna-4.4.0
chore(deps): bump optuna from 4.3.0 to 4.4.0
2025-06-23 08:58:31 +02:00
Matthias
4ae80423e0 Merge pull request #11903 from freqtrade/dependabot/pip/develop/markdown-3.8.2
chore(deps): bump markdown from 3.8 to 3.8.2
2025-06-23 08:09:38 +02:00
Matthias
4e6ae88557 Merge pull request #11911 from freqtrade/dependabot/pip/develop/fastapi-0.115.13
chore(deps): bump fastapi from 0.115.12 to 0.115.13
2025-06-23 07:56:52 +02:00
dependabot[bot]
102c33d68b chore(deps-dev): bump ruff from 0.11.13 to 0.12.0
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.11.13 to 0.12.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/0.11.13...0.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 05:41:30 +00:00
Matthias
12a72fa161 Merge pull request #11909 from freqtrade/dependabot/pip/develop/mypy-1.16.1
chore(deps-dev): bump mypy from 1.16.0 to 1.16.1
2025-06-23 07:41:01 +02:00
dependabot[bot]
3a5b555f1e chore(deps): bump markdown from 3.8 to 3.8.2
---
updated-dependencies:
- dependency-name: markdown
  dependency-version: 3.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 05:40:59 +00:00
Matthias
8f2ee28395 Merge pull request #11908 from freqtrade/dependabot/pip/develop/pytest-4784b1c68e
chore(deps-dev): bump the pytest group with 2 updates
2025-06-23 07:40:07 +02:00
Matthias
e57d0e3bc4 Merge pull request #11905 from freqtrade/dependabot/pip/develop/pymdown-extensions-10.16
chore(deps): bump pymdown-extensions from 10.15 to 10.16
2025-06-23 07:38:53 +02:00
Matthias
f5205da459 Merge pull request #11902 from freqtrade/dependabot/pip/develop/cachetools-6.1.0
chore(deps): bump cachetools from 6.0.0 to 6.1.0
2025-06-23 07:27:09 +02:00
Matthias
bd773b9baf Merge pull request #11907 from freqtrade/dependabot/pip/develop/ccxt-4.4.90
chore(deps): bump ccxt from 4.4.89 to 4.4.90
2025-06-23 07:20:53 +02:00
Matthias
7b4a6a48ee Merge pull request #11904 from freqtrade/dependabot/github_actions/develop/docker/setup-buildx-action-3.11.1
chore(deps): bump docker/setup-buildx-action from 3.10.0 to 3.11.1
2025-06-23 07:16:40 +02:00
dependabot[bot]
24a3a29360 chore(deps): bump fastapi from 0.115.12 to 0.115.13
---
updated-dependencies:
- dependency-name: fastapi
  dependency-version: 0.115.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 03:46:28 +00:00
dependabot[bot]
6a279043fa chore(deps): bump astral-sh/setup-uv from 6.1.0 to 6.3.0
---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 03:45:59 +00:00
dependabot[bot]
60764500db chore(deps-dev): bump mypy from 1.16.0 to 1.16.1
Bumps [mypy](https://github.com/python/mypy) from 1.16.0 to 1.16.1.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.16.0...v1.16.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 03:45:07 +00:00
dependabot[bot]
ba5a64aa34 chore(deps-dev): bump the pytest group with 2 updates
Bumps the pytest group with 2 updates: [pytest](https://github.com/pytest-dev/pytest) and [pytest-random-order](https://github.com/jbasko/pytest-random-order).


Updates `pytest` from 8.4.0 to 8.4.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.4.0...8.4.1)

Updates `pytest-random-order` from 1.1.1 to 1.2.0
- [Release notes](https://github.com/jbasko/pytest-random-order/releases)
- [Changelog](https://github.com/pytest-dev/pytest-random-order/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/jbasko/pytest-random-order/compare/v1.1.1...v1.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 03:44:37 +00:00
dependabot[bot]
f40576091a chore(deps): bump ccxt from 4.4.89 to 4.4.90
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.4.89 to 4.4.90.
- [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/v4.4.89...v4.4.90)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 03:43:55 +00:00
dependabot[bot]
de3eedb39e chore(deps): bump optuna from 4.3.0 to 4.4.0
---
updated-dependencies:
- dependency-name: optuna
  dependency-version: 4.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 03:43:46 +00:00
dependabot[bot]
fded8bf43e chore(deps): bump pymdown-extensions from 10.15 to 10.16
Bumps [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) from 10.15 to 10.16.
- [Release notes](https://github.com/facelessuser/pymdown-extensions/releases)
- [Commits](https://github.com/facelessuser/pymdown-extensions/compare/10.15...10.16)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 03:42:57 +00:00
dependabot[bot]
5a45b4a3e1 chore(deps): bump docker/setup-buildx-action from 3.10.0 to 3.11.1
---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: 3.11.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 03:39:03 +00:00
dependabot[bot]
0b3ea4d0ed chore(deps): bump cachetools from 6.0.0 to 6.1.0
Bumps [cachetools](https://github.com/tkem/cachetools) from 6.0.0 to 6.1.0.
- [Changelog](https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/tkem/cachetools/compare/v6.0.0...v6.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-23 03:38:14 +00:00
Matthias
822dce09b7 tests: keys are no longer added to the dict 2025-06-22 11:29:45 +00:00
mrpabloyeah
2ebc5374f4 Add current drawdown in telegram profit command 2025-06-21 12:10:53 +02:00
Matthias
3465f35d75 feat: reuse exchange secrets for exchange credential removal 2025-06-20 20:23:22 +02:00
Matthias
2165c3e542 tests: update tests to ues new module 2025-06-20 20:19:38 +02:00
Matthias
5e059660d4 chore: move remove_exchange_credentials to config module 2025-06-20 20:19:20 +02:00
Matthias
5ca69687dc chore: minor refactor of config cleanup 2025-06-20 20:12:50 +02:00
Matthias
d042085b24 chore: remove macos-13 from CI
(it's slow and going to be EOL in November 2025 anyway)
2025-06-19 20:16:18 +02:00
Matthias
effd989796 Merge pull request #11895 from freqtrade/dependabot/pip/urllib3-2.5.0
chore(deps): bump urllib3 from 2.4.0 to 2.5.0
2025-06-19 06:26:04 +02:00
Matthias
ca85deafb8 Merge pull request #11896 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-06-19 06:25:34 +02:00
Freqtrade Bot
d46cc552be chore: update pre-commit hooks 2025-06-19 03:23:34 +00:00
dependabot[bot]
1dc2bcb47e chore(deps): bump urllib3 from 2.4.0 to 2.5.0
Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.4.0 to 2.5.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.4.0...2.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 18:33:07 +00:00
Matthias
d6bf20b7b4 Merge pull request #11889 from racequite/develop
docs: Fix comment
2025-06-18 07:07:20 +02:00
Matthias
2d842ea129 Merge pull request #11891 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-06-17 06:30:06 +02:00
Freqtrade Bot
76d5423eee chore: update pre-commit hooks 2025-06-17 03:24:27 +00:00
racequite
489b7e6d18 docs: Fix comment
Signed-off-by: racequite <quiterace@gmail.com>
2025-06-16 22:16:14 +08:00
Matthias
18dfb0fe39 Merge pull request #11886 from freqtrade/dependabot/pip/develop/numexpr-2.11.0
chore(deps): bump numexpr from 2.10.2 to 2.11.0
2025-06-16 09:47:45 +02:00
Matthias
63efed736c Merge pull request #11885 from freqtrade/dependabot/pip/develop/aiohttp-3.12.13
chore(deps): bump aiohttp from 3.12.11 to 3.12.13
2025-06-16 09:44:14 +02:00
Matthias
4c568e40c2 Merge pull request #11879 from freqtrade/dependabot/pip/develop/types-8fad52cb21
chore(deps-dev): bump types-requests from 2.32.0.20250602 to 2.32.4.20250611 in the types group
2025-06-16 09:20:14 +02:00
dependabot[bot]
b54d231b79 chore(deps): bump numexpr from 2.10.2 to 2.11.0
Bumps [numexpr](https://github.com/pydata/numexpr) from 2.10.2 to 2.11.0.
- [Release notes](https://github.com/pydata/numexpr/releases)
- [Changelog](https://github.com/pydata/numexpr/blob/master/RELEASE_NOTES.rst)
- [Commits](https://github.com/pydata/numexpr/compare/v2.10.2...v2.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 07:09:21 +00:00
Matthias
58f361f8b3 Merge pull request #11888 from freqtrade/dependabot/pip/develop/bottleneck-1.5.0
chore(deps): bump bottleneck from 1.4.2 to 1.5.0
2025-06-16 09:08:13 +02:00
Matthias
f78d383448 Merge pull request #11887 from freqtrade/dependabot/pip/develop/scikit-learn-1.7.0
chore(deps): bump scikit-learn from 1.6.1 to 1.7.0
2025-06-16 09:04:43 +02:00
Matthias
1be9a79e96 Merge pull request #11884 from freqtrade/dependabot/pip/develop/stable-baselines3-2.6.0
chore(deps): bump stable-baselines3 from 2.5.0 to 2.6.0
2025-06-16 09:00:54 +02:00
Matthias
d9e98bb687 Merge pull request #11882 from freqtrade/dependabot/pip/develop/certifi-2025.6.15
chore(deps): bump certifi from 2025.4.26 to 2025.6.15
2025-06-16 08:37:07 +02:00
Matthias
7fd7061304 Merge pull request #11880 from freqtrade/dependabot/pip/develop/pytest-ed2313a973
chore(deps-dev): bump the pytest group with 2 updates
2025-06-16 08:36:20 +02:00
dependabot[bot]
db50d2b85d chore(deps): bump aiohttp from 3.12.11 to 3.12.13
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.12.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 06:29:44 +00:00
Matthias
d2a1e52d79 Merge pull request #11883 from freqtrade/dependabot/pip/develop/cryptography-45.0.4
chore(deps): bump cryptography from 45.0.3 to 45.0.4
2025-06-16 08:28:28 +02:00
Matthias
70e78e6521 Merge pull request #11881 from freqtrade/dependabot/pip/develop/pydantic-2.11.7
chore(deps): bump pydantic from 2.11.5 to 2.11.7
2025-06-16 07:59:13 +02:00
Matthias
913148bf1d Merge pull request #11877 from freqtrade/dependabot/github_actions/develop/rjstone/discord-webhook-notify-2.1.1
chore(deps): bump rjstone/discord-webhook-notify from 1.1.1 to 2.1.1
2025-06-16 06:40:30 +02:00
Matthias
0ecb3e45f6 chore: bump types-requests in pre-commit config 2025-06-16 06:39:55 +02:00
dependabot[bot]
74f870c435 chore(deps): bump bottleneck from 1.4.2 to 1.5.0
Bumps [bottleneck](https://github.com/pydata/bottleneck) from 1.4.2 to 1.5.0.
- [Release notes](https://github.com/pydata/bottleneck/releases)
- [Changelog](https://github.com/pydata/bottleneck/blob/master/RELEASE.rst)
- [Commits](https://github.com/pydata/bottleneck/compare/v1.4.2...v1.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 03:35:14 +00:00
dependabot[bot]
8f62462e15 chore(deps): bump scikit-learn from 1.6.1 to 1.7.0
Bumps [scikit-learn](https://github.com/scikit-learn/scikit-learn) from 1.6.1 to 1.7.0.
- [Release notes](https://github.com/scikit-learn/scikit-learn/releases)
- [Commits](https://github.com/scikit-learn/scikit-learn/compare/1.6.1...1.7.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 03:35:06 +00:00
dependabot[bot]
38183fe952 chore(deps): bump stable-baselines3 from 2.5.0 to 2.6.0
Bumps [stable-baselines3](https://github.com/DLR-RM/stable-baselines3) from 2.5.0 to 2.6.0.
- [Release notes](https://github.com/DLR-RM/stable-baselines3/releases)
- [Commits](https://github.com/DLR-RM/stable-baselines3/compare/v2.5.0...v2.6.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 03:34:39 +00:00
dependabot[bot]
215b111cff chore(deps): bump cryptography from 45.0.3 to 45.0.4
Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.3 to 45.0.4.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/45.0.3...45.0.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 03:34:35 +00:00
dependabot[bot]
4ea9d70743 chore(deps): bump certifi from 2025.4.26 to 2025.6.15
Bumps [certifi](https://github.com/certifi/python-certifi) from 2025.4.26 to 2025.6.15.
- [Commits](https://github.com/certifi/python-certifi/compare/2025.04.26...2025.06.15)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 03:34:29 +00:00
dependabot[bot]
0893350285 chore(deps): bump pydantic from 2.11.5 to 2.11.7
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.11.5 to 2.11.7.
- [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.11.5...v2.11.7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 03:34:20 +00:00
dependabot[bot]
27bd34c3be chore(deps-dev): bump the pytest group with 2 updates
Bumps the pytest group with 2 updates: [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) and [pytest-cov](https://github.com/pytest-dev/pytest-cov).


Updates `pytest-asyncio` from 0.26.0 to 1.0.0
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.26.0...v1.0.0)

Updates `pytest-cov` from 6.1.1 to 6.2.1
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v6.1.1...v6.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 03:34:05 +00:00
dependabot[bot]
ebf6ca1a5f chore(deps-dev): bump types-requests in the types group
Bumps the types group with 1 update: [types-requests](https://github.com/typeshed-internal/stub_uploader).


Updates `types-requests` from 2.32.0.20250602 to 2.32.4.20250611
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 03:33:36 +00:00
dependabot[bot]
a91ed0b4d9 chore(deps): bump rjstone/discord-webhook-notify from 1.1.1 to 2.1.1
Bumps [rjstone/discord-webhook-notify](https://github.com/rjstone/discord-webhook-notify) from 1.1.1 to 2.1.1.
- [Release notes](https://github.com/rjstone/discord-webhook-notify/releases)
- [Commits](1399c1b2d5...a975c85e53)

---
updated-dependencies:
- dependency-name: rjstone/discord-webhook-notify
  dependency-version: 2.1.1
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-16 03:07:41 +00:00
Matthias
097b27208d chore: remove pointless TODO 2025-06-15 09:36:53 +02:00
Matthias
136623b3f5 Merge pull request #11874 from freqtrade/deps/ccxt_update
chore: bump ccxt to 4.4.89
2025-06-13 08:54:41 +02:00
Matthias
02648e29c4 chore: bump ccxt to 4.4.89 2025-06-13 06:43:10 +02:00
Matthias
beb6d41360 chore: remove py_find_1st from requirements
this was only required by edge
2025-06-13 06:38:21 +02:00
Matthias
a1207eca56 Merge pull request #11872 from freqtrade/dependabot/docker/python-3.13.5-slim-bookworm
chore(deps): bump python from 3.13.4-slim-bookworm to 3.13.5-slim-bookworm
2025-06-13 06:12:21 +02:00
dependabot[bot]
1a247a1035 chore(deps): bump python
Bumps python from 3.13.4-slim-bookworm to 3.13.5-slim-bookworm.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.13.5-slim-bookworm
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-13 03:37:34 +00:00
Matthias
4e0203d4af Merge pull request #11870 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-06-12 06:24:48 +02:00
Freqtrade Bot
332518c1a0 chore: update pre-commit hooks 2025-06-12 03:22:52 +00:00
Matthias
15353f44f0 fix: improve "missing fee" recovery
closes #11813
2025-06-11 06:43:51 +02:00
Matthias
093cdae39c chore: add explaining comments to some columns 2025-06-11 06:41:46 +02:00
Matthias
5dd5b95d6a Merge pull request #11867 from freqtrade/maint/remove_edge
Remove Edge from Freqtrade
2025-06-10 20:19:53 +02:00
Matthias
20e0b542e3 docs: update command partials 2025-06-10 19:36:02 +02:00
Matthias
1d24f9047c Merge pull request #11869 from mrpabloyeah/fix-telegram-balance-command-when-fiat_display_currency-is-not-set
Fix Telegram balance command when fiat_display_currency is not set
2025-06-10 19:30:16 +02:00
Matthias
f2c37e2575 test: remove missed test 2025-06-10 19:27:23 +02:00
Matthias
95fbe04225 test: add tests for edge startup errors 2025-06-10 18:24:47 +02:00
Matthias
43c5b8d0ed test: remove final edge test occurance 2025-06-10 18:21:45 +02:00
Matthias
301d85ef4f test: remove edge tests 2025-06-10 18:20:02 +02:00
mrpabloyeah
48f3d612e9 Fix Telegram balance command when fiat_display_currency is not set 2025-06-10 13:35:49 +02:00
Matthias
c53c70d597 tests: further test cleanup 2025-06-10 07:27:03 +02:00
Matthias
aa89ce80ab test: remove edge from tests (initial round) 2025-06-10 07:15:02 +02:00
Matthias
971dfef0ee chore: remove edge from RPC modules 2025-06-10 07:09:30 +02:00
Matthias
5d8a3cdb31 feat: fail if edge is in config 2025-06-10 07:09:20 +02:00
Matthias
5246eecaf6 chore: remove edge runmode 2025-06-10 07:09:10 +02:00
Matthias
18b6f374d6 chore: remove edge_cli module 2025-06-10 07:06:31 +02:00
Matthias
95c6997209 chore: remove edge as RunMode 2025-06-10 07:05:36 +02:00
Matthias
ca79b84e4a docs: reword section around edge in utility subcommands 2025-06-10 07:05:36 +02:00
Matthias
3670df8771 chore: remove edge from ft_rest_client 2025-06-10 07:05:24 +02:00
Matthias
ff06d58ace chore: remove edge module and config options 2025-06-10 07:01:33 +02:00
Matthias
1b4592a2f3 chore: remove edge from full_config 2025-06-10 07:00:11 +02:00
Matthias
5138e97b70 docs: remove edge from FAQ 2025-06-10 06:53:44 +02:00
Matthias
340cad3707 chore: remove edge from freqtradebot 2025-06-10 06:53:07 +02:00
Matthias
ca32cb9e61 docs: remove further edge usages 2025-06-10 06:50:55 +02:00
Matthias
c911b7fa70 chore: remove edge from config schema 2025-06-10 06:49:42 +02:00
Matthias
9323b6b946 chore: fail to start edge command. 2025-06-10 06:48:31 +02:00
Matthias
92ef1ef761 docs: deprecated: removal of Edge module 2025-06-10 06:46:39 +02:00
Matthias
e38504b9db chore: remove edge from docs 2025-06-10 06:44:14 +02:00
Matthias
e437847916 Merge pull request #11865 from freqtrade/dependabot/pip/requests-2.32.4
chore(deps): bump requests from 2.32.3 to 2.32.4
2025-06-10 06:28:18 +02:00
Matthias
a3a30f9046 Merge pull request #11866 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-06-10 06:28:09 +02:00
Freqtrade Bot
df507e2335 chore: update pre-commit hooks 2025-06-10 03:24:54 +00:00
dependabot[bot]
2f1f60a8fc chore(deps): bump requests from 2.32.3 to 2.32.4
Bumps [requests](https://github.com/psf/requests) from 2.32.3 to 2.32.4.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.32.3...v2.32.4)

---
updated-dependencies:
- dependency-name: requests
  dependency-version: 2.32.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 21:15:23 +00:00
Matthias
1c1a165ba4 chore(ci): improve docker-build action 2025-06-09 19:20:48 +02:00
Matthias
00fe02c854 feat(ci): extract docker container building 2025-06-09 19:20:48 +02:00
Matthias
6ff26b075e fix: error during logging shutdown 2025-06-09 19:12:57 +02:00
Matthias
03a46ec784 chore: reorder requirements logically 2025-06-09 18:06:09 +02:00
Matthias
ec31764aed chore: update technical to 1.5.1 2025-06-09 18:05:07 +02:00
Matthias
1ba411cccf tests: Update empty error match 2025-06-09 18:04:21 +02:00
Matthias
7957231ce4 Merge pull request #11864 from freqtrade/deps/pip/talib
Update ta-lib to version 0.5.5
2025-06-09 12:10:19 +02:00
Matthias
6b88c49e0a chore: revert ta-lib install workarounds 2025-06-09 09:37:36 +02:00
Matthias
4fe99e0333 chore: update binary files for ta-lib 2025-06-09 09:37:36 +02:00
Matthias
9a38dfcc26 Merge pull request #11859 from freqtrade/dependabot/pip/develop/pytest-5ee6585723
chore(deps-dev): bump pytest from 8.3.5 to 8.4.0 in the pytest group
2025-06-09 09:27:04 +02:00
Matthias
3ecbfeb1d5 chore: bump ta-lib to 0.5.5 2025-06-09 09:20:37 +02:00
Matthias
02229c959f Merge pull request #11863 from freqtrade/dependabot/pip/develop/aiohttp-3.12.11
chore(deps): bump aiohttp from 3.12.6 to 3.12.11
2025-06-09 09:15:28 +02:00
Matthias
2a2f205fbe Merge pull request #11858 from freqtrade/dependabot/pip/develop/pandas-2.3.0
chore(deps): bump pandas from 2.2.3 to 2.3.0
2025-06-09 09:09:17 +02:00
dependabot[bot]
c415dab846 chore(deps-dev): bump pytest from 8.3.5 to 8.4.0 in the pytest group
Bumps the pytest group with 1 update: [pytest](https://github.com/pytest-dev/pytest).


Updates `pytest` from 8.3.5 to 8.4.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.3.5...8.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 06:11:09 +00:00
dependabot[bot]
5b47960567 chore(deps): bump aiohttp from 3.12.6 to 3.12.11
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.12.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 06:09:32 +00:00
dependabot[bot]
3f9749b03b chore(deps): bump pandas from 2.2.3 to 2.3.0
Bumps [pandas](https://github.com/pandas-dev/pandas) from 2.2.3 to 2.3.0.
- [Release notes](https://github.com/pandas-dev/pandas/releases)
- [Commits](https://github.com/pandas-dev/pandas/compare/v2.2.3...v2.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 06:09:32 +00:00
Matthias
528b11af07 Merge pull request #11861 from freqtrade/dependabot/pip/develop/ruff-0.11.13
chore(deps-dev): bump ruff from 0.11.12 to 0.11.13
2025-06-09 08:08:29 +02:00
Matthias
0a31ff3747 Merge pull request #11860 from freqtrade/dependabot/pip/develop/ccxt-4.4.88
chore(deps): bump ccxt from 4.4.87 to 4.4.88
2025-06-09 08:08:17 +02:00
dependabot[bot]
e1ee566634 chore(deps-dev): bump ruff from 0.11.12 to 0.11.13
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.11.12 to 0.11.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/0.11.12...0.11.13)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 03:41:24 +00:00
dependabot[bot]
1cff4d13de chore(deps): bump ccxt from 4.4.87 to 4.4.88
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.4.87 to 4.4.88.
- [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/v4.4.87...v4.4.88)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-09 03:41:22 +00:00
Matthias
22b1bc7210 Merge pull request #11855 from hippocritical/develop
fix parsing trade-data for kraken_csv
2025-06-08 19:57:05 +02:00
hippocritical
c741c168e8 Merge remote-tracking branch 'origin/develop' into develop 2025-06-08 19:33:50 +02:00
hippocritical
c997f02085 removed %1 = 0 since it was not truly necessary 2025-06-08 19:31:17 +02:00
hippocritical
ead6d89e35 Merge branch 'freqtrade:develop' into develop 2025-06-08 14:07:49 +02:00
hippocritical
985c15bdd9 checking kraken data for any rows not having a timestamp in the timestamp column, purging those
(there was a text in the 1st row of USDGEUR.csv, making the conversion fail previously)
2025-06-08 14:07:31 +02:00
Matthias
7fb7c43e45 chore: pip_constraint fix for dockerfile 2025-06-08 12:52:06 +02:00
Matthias
0e68de0c6d feat: document --notes usage 2025-06-08 12:51:38 +02:00
Matthias
ba5f771e65 chore: update documentation command 2025-06-08 12:46:25 +02:00
Matthias
e0f147e076 feat: add "--notes" to backtest command
closes #11847
2025-06-08 12:42:26 +02:00
Matthias
b874ceaf2f chore: improved "pins" for numpy 2025-06-08 11:11:15 +02:00
Matthias
11f339f802 chore(ci): UV workaround for build-online 2025-06-08 10:25:41 +02:00
Matthias
9d46fd21dc chore(ci): clean up after pip install 2025-06-08 10:17:14 +02:00
Matthias
286f385f99 chore(ci): use proper directory 2025-06-08 10:07:01 +02:00
Matthias
69cca13d15 chore: use UV_BUILD_CONSTRAINT 2025-06-08 10:05:56 +02:00
Matthias
37d03a5b44 chore: proper naming for environment var 2025-06-08 10:04:04 +02:00
Matthias
0e1d3e279c chore: attempt CI workaround for ta-lib build failure 2025-06-08 10:02:52 +02:00
Matthias
ae671c736e feat: don't lowercase ccxt_config keys
closes #11852
2025-06-08 09:52:58 +02:00
Matthias
28064d013c feat: add ccxt_sync_config to json schema 2025-06-08 09:36:38 +02:00
Matthias
5b9c03e7e2 fix: don't filter min duration on > 0
closes #11838
2025-06-08 09:15:52 +02:00
Matthias
f2569e36e8 chore: develop doesn't need to depend on coveralls
closes #11848
2025-06-07 20:58:13 +02:00
Matthias
bf2092977c chore: add docstring 2025-06-07 16:53:14 +02:00
Matthias
613e31a9a5 chore: simplify handle_order_fee code 2025-06-07 08:43:26 +02:00
Matthias
326a4f17d2 chore: update missleading comment 2025-06-07 08:39:08 +02:00
Matthias
a8d617d747 chore: load ft_fee_base when loading from_json 2025-06-07 08:35:19 +02:00
Matthias
ba9f795df5 fix: Order is not bound to a Session
closes #11831
2025-06-06 20:54:34 +02:00
Matthias
dbccc69f05 Merge pull request #11841 from freqtrade/dependabot/docker/python-3.13.4-slim-bookworm
chore(deps): bump python from 3.12.10-slim-bookworm to 3.13.4-slim-bookworm
2025-06-06 06:35:38 +02:00
Matthias
db80318946 Merge pull request #11843 from freqtrade/dependabot/pip/torch-2.7.1
chore(deps): bump torch from 2.7.0 to 2.7.1
2025-06-05 16:00:20 +02:00
dependabot[bot]
5698793dcc chore(deps): bump torch from 2.7.0 to 2.7.1
Bumps [torch](https://github.com/pytorch/pytorch) from 2.7.0 to 2.7.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.7.0...v2.7.1)

---
updated-dependencies:
- dependency-name: torch
  dependency-version: 2.7.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-05 13:32:25 +00:00
Matthias
bf96be2b71 chore: bump ccxt to 4.4.87 2025-06-05 06:46:17 +02:00
dependabot[bot]
2af454333b chore(deps): bump python
Bumps python from 3.12.10-slim-bookworm to 3.13.4-slim-bookworm.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.13.4-slim-bookworm
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-05 04:32:28 +00:00
Matthias
cb869a2e4d chore: bump armhf dockerfile to 3.11.13 2025-06-05 06:31:29 +02:00
Matthias
afc5205bea Merge pull request #11840 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-06-05 06:26:34 +02:00
Freqtrade Bot
842f3a2a36 chore: update pre-commit hooks 2025-06-05 03:23:11 +00:00
Matthias
582871b0d5 Merge pull request #11837 from freqtrade/feat/python_13
Add support for python 3.13
2025-06-04 18:24:35 +02:00
Matthias
c6c2934741 chore(ci): fix 3.13 tests and incompatibilities 2025-06-04 08:18:50 +02:00
Matthias
d3b5be6cb6 chore: update docs and ft_client taxonomy 2025-06-04 07:21:13 +02:00
Matthias
473a15c4ef chore: scripts should support 3.13 2025-06-04 07:20:58 +02:00
Matthias
2c4452453a chore: update pyproject for python 3.13 2025-06-04 07:19:40 +02:00
Matthias
da6affcd6a chore: run CI against 3.13 2025-06-04 07:18:24 +02:00
Matthias
3ebbe2b56c chore: pin ta-lib<0.6 to avoid false installs 2025-06-04 07:16:29 +02:00
Matthias
8f13a5db29 Merge pull request #11834 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-06-03 06:41:42 +02:00
Matthias
3155dfc14c Merge pull request #11789 from freqtrade/fix/customdata_sessions
fix: improved session handling for custom_data sessions
2025-06-03 06:30:39 +02:00
Freqtrade Bot
cc30e71ab2 chore: update pre-commit hooks 2025-06-03 03:23:16 +00:00
Matthias
f5cb486f5e Merge pull request #11828 from freqtrade/dependabot/pip/develop/mypy-1.16.0
chore(deps-dev): bump mypy from 1.15.0 to 1.16.0
2025-06-02 11:03:05 +02:00
Matthias
42c8795141 Merge pull request #11827 from freqtrade/dependabot/pip/develop/types-59cf8d3746
chore(deps-dev): bump types-requests from 2.32.0.20250515 to 2.32.0.20250602 in the types group
2025-06-02 09:40:14 +02:00
Matthias
f878d051df Merge pull request #11823 from freqtrade/dependabot/pip/develop/ccxt-4.4.86
chore(deps): bump ccxt from 4.4.85 to 4.4.86
2025-06-02 09:13:28 +02:00
Matthias
aefa7e401c chore: bump mypy in pre-commit config 2025-06-02 08:54:19 +02:00
Matthias
dc06510d4a chore: adjust type-ignores for new mypy version 2025-06-02 08:54:19 +02:00
Matthias
7740b61f02 chore: remove unused #type-ignore settings 2025-06-02 08:54:19 +02:00
dependabot[bot]
950f5a722e chore(deps-dev): bump mypy from 1.15.0 to 1.16.0
Bumps [mypy](https://github.com/python/mypy) from 1.15.0 to 1.16.0.
- [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/python/mypy/compare/v1.15.0...v1.16.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 06:49:06 +00:00
Matthias
9b56245b1d Merge pull request #11830 from freqtrade/dependabot/pip/develop/ruff-0.11.12
chore(deps-dev): bump ruff from 0.11.11 to 0.11.12
2025-06-02 08:47:43 +02:00
Matthias
b05fb57fb7 chore: huobijp rename to bittrade
aligned with https://github.com/ccxt/ccxt/pull/26036
2025-06-02 08:40:05 +02:00
Matthias
1a4db77131 chore: types-requests update 2025-06-02 08:34:52 +02:00
dependabot[bot]
71920cefb1 chore(deps): bump ccxt from 4.4.85 to 4.4.86
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.4.85 to 4.4.86.
- [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/v4.4.85...v4.4.86)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 06:34:10 +00:00
Matthias
b5cbbd7c30 Merge pull request #11822 from freqtrade/dependabot/pip/develop/pytest-6fa8ff6387
chore(deps-dev): bump the pytest group with 2 updates
2025-06-02 08:33:40 +02:00
Matthias
f75a0817a6 Merge pull request #11826 from freqtrade/dependabot/pip/develop/plotly-6.1.2
chore(deps): bump plotly from 6.1.1 to 6.1.2
2025-06-02 08:33:17 +02:00
Matthias
d12132ae7a Merge pull request #11829 from freqtrade/dependabot/pip/develop/aiohttp-3.12.6
chore(deps): bump aiohttp from 3.11.18 to 3.12.6
2025-06-02 08:32:17 +02:00
Matthias
a81bec0da2 Merge pull request #11825 from freqtrade/dependabot/pip/develop/jsonschema-4.24.0
chore(deps): bump jsonschema from 4.23.0 to 4.24.0
2025-06-02 08:31:50 +02:00
Matthias
cc41cb831f Merge pull request #11824 from freqtrade/dependabot/pip/develop/uvicorn-0.34.3
chore(deps): bump uvicorn from 0.34.2 to 0.34.3
2025-06-02 08:31:35 +02:00
dependabot[bot]
2b70ec896d chore(deps-dev): bump ruff from 0.11.11 to 0.11.12
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.11.11 to 0.11.12.
- [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/0.11.11...0.11.12)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 03:40:08 +00:00
dependabot[bot]
470dbb6060 chore(deps): bump aiohttp from 3.11.18 to 3.12.6
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.12.6
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 03:39:55 +00:00
dependabot[bot]
afc61ca788 chore(deps-dev): bump types-requests in the types group
Bumps the types group with 1 update: [types-requests](https://github.com/typeshed-internal/stub_uploader).


Updates `types-requests` from 2.32.0.20250515 to 2.32.0.20250602
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 03:37:48 +00:00
dependabot[bot]
ba62e5e007 chore(deps): bump plotly from 6.1.1 to 6.1.2
Bumps [plotly](https://github.com/plotly/plotly.py) from 6.1.1 to 6.1.2.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v6.1.1...v6.1.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 03:37:38 +00:00
dependabot[bot]
9af401b091 chore(deps): bump jsonschema from 4.23.0 to 4.24.0
Bumps [jsonschema](https://github.com/python-jsonschema/jsonschema) from 4.23.0 to 4.24.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.23.0...v4.24.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 03:37:22 +00:00
dependabot[bot]
1fdbace02d chore(deps): bump uvicorn from 0.34.2 to 0.34.3
Bumps [uvicorn](https://github.com/encode/uvicorn) from 0.34.2 to 0.34.3.
- [Release notes](https://github.com/encode/uvicorn/releases)
- [Changelog](https://github.com/encode/uvicorn/blob/master/docs/release-notes.md)
- [Commits](https://github.com/encode/uvicorn/compare/0.34.2...0.34.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 03:37:05 +00:00
dependabot[bot]
cfeda4493b chore(deps-dev): bump the pytest group with 2 updates
Bumps the pytest group with 2 updates: [pytest-mock](https://github.com/pytest-dev/pytest-mock) and [pytest-xdist](https://github.com/pytest-dev/pytest-xdist).


Updates `pytest-mock` from 3.14.0 to 3.14.1
- [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.14.0...v3.14.1)

Updates `pytest-xdist` from 3.6.1 to 3.7.0
- [Release notes](https://github.com/pytest-dev/pytest-xdist/releases)
- [Changelog](https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-xdist/compare/v3.6.1...v3.7.0)

---
updated-dependencies:
- dependency-name: pytest-mock
  dependency-version: 3.14.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: pytest
- dependency-name: pytest-xdist
  dependency-version: 3.7.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-02 03:35:48 +00:00
Matthias
0de48d90f8 Merge pull request #11820 from mrpabloyeah/fix-telegram-profit-stats-when-fiat_display_currency-is-not-set
Fix telegram profit stats when fiat_display_currency is not set
2025-06-01 14:53:24 +02:00
mrpabloyeah
c4eb26be9d Fix telegram profit stats when fiat_display_currency is not set 2025-06-01 13:53:17 +02:00
Matthias
04a8539f10 Merge pull request #11819 from arenstar/patch-3
fix: order_by_id always true
2025-06-01 13:28:05 +02:00
David Arena
d600461a84 fix: order_by_id always true 2025-06-01 12:03:44 +02:00
Matthias
ce46cd7343 Merge pull request #11646 from freqtrade/deps/numpy2
Bump numpy to 2.x
2025-06-01 09:13:58 +02:00
Matthias
d1cca4ac51 Merge pull request #11796 from freqtrade/dependabot/pip/develop/ccxt-4.4.85
chore(deps): bump ccxt from 4.4.82 to 4.4.85
2025-05-31 17:57:26 +02:00
Matthias
28399aaab2 Merge pull request #11814 from freqtrade/new_release
New release 2025.5
2025-05-31 17:37:56 +02:00
Matthias
eb5d5e0d3f chore: bump dev version to 2025.6-dev 2025-05-31 16:39:46 +02:00
Matthias
560085ab92 chore: bump version to 2025.5 2025-05-31 16:34:27 +02:00
Matthias
17c315bf4a Merge branch 'stable' into new_release 2025-05-31 16:34:04 +02:00
Matthias
e8145e0057 Merge pull request #11805 from viotemp1/optuna_addons
fix hyperopt repeated parameters between batches
2025-05-31 16:26:32 +02:00
Matthias
ae9073885f chore: Update log wording, only log "duplicate parameters" once 2025-05-31 16:05:39 +02:00
Matthias
61886942c5 chore: fix log message missing space 2025-05-31 09:04:17 +02:00
viotemp1
12d31c4acb keep INITIAL_POINTS only in hyperopt_optimizer.py 2025-05-31 08:21:44 +03:00
viotemp1
14cfdb13c5 add back INITIAL_POINTS (default 30) for Samplers which support this 2025-05-30 18:17:15 +03:00
Matthias
e58ab7852a docs: add operatorId to bitvavo docs
closes #11748
2025-05-30 07:32:36 +02:00
Matthias
77dcc5354c test: update hyperliquid test for new load_markets behavior 2025-05-30 07:08:58 +02:00
Matthias
3ac4a872b1 Merge remote-tracking branch 'origin/develop' into dependabot/pip/develop/ccxt-4.4.85 2025-05-29 20:14:05 +02:00
Matthias
b8b94d58c4 test: update tests for new reload_markets behavior 2025-05-29 20:12:59 +02:00
viotemp1
dfae7ca2ec fix duplicate params in same batch also 2025-05-29 15:41:47 +03:00
vio
17cd0452ec Merge branch 'freqtrade:develop' into optuna_addons 2025-05-29 14:22:17 +03:00
Matthias
33b5482065 fix: memory leak on binance in combination with aiohttp>3.10
apparently, returning big data through
run_until_complete can cause this (or

closes #11317
2025-05-29 07:06:57 +02:00
Matthias
9fe361f6fc Merge pull request #11808 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-05-29 06:44:07 +02:00
Freqtrade Bot
da7f35db8d chore: update pre-commit hooks 2025-05-29 03:21:16 +00:00
Matthias
4f216eb861 Merge pull request #11790 from freqtrade/docs/compare_exit_callbacks
docs: add "exit logic comparisons" table
2025-05-28 15:22:15 +02:00
viotemp1
53383f3184 add up to 5 retries for ask in case of duplicate params 2025-05-28 09:35:20 +02:00
viotemp1
b51c937e87 fix hyperopt repeated parameters between batches 2025-05-27 13:38:03 +02:00
Matthias
f3d7f67671 Merge pull request #11803 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-05-27 06:31:54 +02:00
Freqtrade Bot
87001d0806 chore: update pre-commit hooks 2025-05-27 03:20:40 +00:00
Matthias
ffce0dfb2e Merge pull request #11800 from freqtrade/dependabot/github_actions/develop/astral-sh/setup-uv-6.1.0
chore(deps): bump astral-sh/setup-uv from 6.0.1 to 6.1.0
2025-05-26 08:21:17 +02:00
Matthias
c1d08019d9 Merge pull request #11798 from freqtrade/dependabot/pip/develop/ruff-0.11.11
chore(deps-dev): bump ruff from 0.11.10 to 0.11.11
2025-05-26 08:18:26 +02:00
Matthias
bfa95ad976 Merge pull request #11799 from freqtrade/dependabot/pip/develop/joblib-1.5.1
chore(deps): bump joblib from 1.5.0 to 1.5.1
2025-05-26 08:14:39 +02:00
Matthias
4a4b39f898 Merge pull request #11795 from freqtrade/dependabot/pip/develop/pydantic-2.11.5
chore(deps): bump pydantic from 2.11.4 to 2.11.5
2025-05-26 08:12:58 +02:00
Matthias
215499a3f8 Merge pull request #11793 from freqtrade/dependabot/pip/develop/plotly-6.1.1
chore(deps): bump plotly from 6.0.1 to 6.1.1
2025-05-26 08:08:58 +02:00
Matthias
8c11974644 Merge pull request #11791 from freqtrade/dependabot/pip/develop/types-af298ab694
chore(deps-dev): bump types-cachetools from 5.5.0.20240820 to 6.0.0.20250525 in the types group
2025-05-26 08:08:33 +02:00
Matthias
7dcbd8108e Merge pull request #11797 from freqtrade/dependabot/pip/develop/cryptography-45.0.3
chore(deps): bump cryptography from 45.0.2 to 45.0.3
2025-05-26 07:58:27 +02:00
Matthias
43fea43363 chore: bump aiohttp to 3.11.18
Aligns dependency with ccxt requirements.
2025-05-26 07:15:38 +02:00
Matthias
e00b74c0e0 fix: capture ws edge-case on reconnect 2025-05-26 07:06:56 +02:00
Matthias
5ef439dd0f Merge pull request #11794 from freqtrade/dependabot/pip/develop/cachetools-6.0.0
chore(deps): bump cachetools from 5.5.2 to 6.0.0
2025-05-26 07:00:18 +02:00
dependabot[bot]
538c7b3c97 chore(deps): bump joblib from 1.5.0 to 1.5.1
Bumps [joblib](https://github.com/joblib/joblib) from 1.5.0 to 1.5.1.
- [Release notes](https://github.com/joblib/joblib/releases)
- [Changelog](https://github.com/joblib/joblib/blob/main/CHANGES.rst)
- [Commits](https://github.com/joblib/joblib/compare/1.5.0...1.5.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 04:55:08 +00:00
Matthias
81456b2340 Merge pull request #11792 from freqtrade/dependabot/pip/develop/xgboost-3.0.2
chore(deps): bump xgboost from 3.0.1 to 3.0.2
2025-05-26 06:52:38 +02:00
Matthias
dfec3f16ab chore: Bump pre-commit types-cachetools 2025-05-26 06:34:46 +02:00
dependabot[bot]
e67499e6cc chore(deps): bump astral-sh/setup-uv from 6.0.1 to 6.1.0
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.0.1 to 6.1.0.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](6b9c6063ab...f0ec1fc3b3)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 6.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 03:45:35 +00:00
dependabot[bot]
a1b5e7899f chore(deps-dev): bump ruff from 0.11.10 to 0.11.11
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.11.10 to 0.11.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/0.11.10...0.11.11)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 03:13:45 +00:00
dependabot[bot]
a88a149999 chore(deps): bump cryptography from 45.0.2 to 45.0.3
Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.2 to 45.0.3.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/45.0.2...45.0.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 03:13:38 +00:00
dependabot[bot]
168593d7af chore(deps): bump ccxt from 4.4.82 to 4.4.85
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.4.82 to 4.4.85.
- [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/v4.4.82...v4.4.85)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 03:13:34 +00:00
dependabot[bot]
c646abc05d chore(deps): bump pydantic from 2.11.4 to 2.11.5
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.11.4 to 2.11.5.
- [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.11.4...v2.11.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 03:13:27 +00:00
dependabot[bot]
f2a1561d31 chore(deps): bump cachetools from 5.5.2 to 6.0.0
Bumps [cachetools](https://github.com/tkem/cachetools) from 5.5.2 to 6.0.0.
- [Changelog](https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/tkem/cachetools/compare/v5.5.2...v6.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 03:13:20 +00:00
dependabot[bot]
d7a3aeaa1b chore(deps): bump plotly from 6.0.1 to 6.1.1
Bumps [plotly](https://github.com/plotly/plotly.py) from 6.0.1 to 6.1.1.
- [Release notes](https://github.com/plotly/plotly.py/releases)
- [Changelog](https://github.com/plotly/plotly.py/blob/main/CHANGELOG.md)
- [Commits](https://github.com/plotly/plotly.py/compare/v6.0.1...v6.1.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 03:13:18 +00:00
dependabot[bot]
4b9a63de19 chore(deps): bump xgboost from 3.0.1 to 3.0.2
Bumps [xgboost](https://github.com/dmlc/xgboost) from 3.0.1 to 3.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/v3.0.1...v3.0.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 03:13:10 +00:00
dependabot[bot]
07985c2cae chore(deps-dev): bump types-cachetools in the types group
Bumps the types group with 1 update: [types-cachetools](https://github.com/typeshed-internal/stub_uploader).


Updates `types-cachetools` from 5.5.0.20240820 to 6.0.0.20250525
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

---
updated-dependencies:
- dependency-name: types-cachetools
  dependency-version: 6.0.0.20250525
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: types
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-26 03:12:22 +00:00
Robert Davey
0c13414f14 Slight rewording for clarity 2025-05-25 12:47:19 +01:00
Robert Davey
1021c7a7af Minor typo 2025-05-25 12:41:31 +01:00
Robert Davey
5306fb3709 Add clarification to the exit table 2025-05-25 12:40:11 +01:00
Matthias
1afddf9db4 docs: no dots on exit comparison 2025-05-25 10:01:39 +02:00
Matthias
929538dd5f docs: refactor exit logic comparisons to includes file
this might allow us to reuse this in other parts of the docs.
2025-05-25 09:44:52 +02:00
Matthias
f432e65a14 docs: add "exit logic comparisons" table 2025-05-25 09:42:37 +02:00
Matthias
dfc1193c52 Merge pull request #11656 from mrpabloyeah/add-custom-roi-strategy-callback
Add custom_roi() strategy callback
2025-05-25 09:13:32 +02:00
Matthias
25077a1008 feat: write empty "custom_roi" with advanced strategy template 2025-05-25 08:56:39 +02:00
Matthias
b3b3bf6c1d feat: allow break-even (0.0) as valid return from custom_roi 2025-05-25 08:54:11 +02:00
Matthias
29ae71333a fix: improved session handling for custom_data sessions 2025-05-25 08:37:01 +02:00
Matthias
a7ebbd89c0 feat: add strategy-ResultValidator to backtesting
helps issues such as #11781
2025-05-24 16:46:29 +02:00
Matthias
ee25635c79 test: update tests for new StrategyValidator 2025-05-24 16:35:12 +02:00
Matthias
b8e19ae78a refactor: move dataframe assertion to it's own class 2025-05-24 16:10:15 +02:00
Matthias
937bd892fd fix: workaround for ccxt bybit stop_order bug 2025-05-24 11:20:47 +02:00
Matthias
adce6e4f68 fix: don't try to place stoploss orders with blocking assets 2025-05-24 11:20:47 +02:00
Robert Caulk
0b1ba0458d Merge pull request #11490 from freqtrade/fix/continual_learning_pytorch
Fix continual learning pytorch
2025-05-24 11:12:05 +02:00
Robert Caulk
7668b95900 Merge pull request #11588 from skyoo2003/develop
fix: remove spaces from rename_dict/rename_dict_old in BaseReinforcementLearningModel
2025-05-24 10:47:31 +02:00
Robert Caulk
47465f198c Merge pull request #11772 from freqtrade/dependabot/pip/develop/xgboost-3.0.1
chore(deps): bump xgboost from 2.1.4 to 3.0.1
2025-05-24 10:35:26 +02:00
Matthias
f3d03dd26a feat: ensure uniqueness among fetched orders
closes #11786
2025-05-23 07:39:35 +02:00
Matthias
ecdd84efd8 fix: "until" shouldn't be in the future.
part of #11786
2025-05-23 07:26:39 +02:00
Matthias
0ad6a6a951 docs: fix broken links 2025-05-22 20:25:59 +02:00
Matthias
dc97f709d7 docs: exclude "import only" links 2025-05-22 20:23:11 +02:00
Matthias
34ccf141d1 test: enhance now_is_time_to_refresh test 2025-05-22 20:03:43 +02:00
Matthias
f0b16c277c docs: add "sold the bots capital" FAQ entry 2025-05-22 19:22:59 +02:00
Matthias
68061444d8 chore: remove unused imports 2025-05-22 19:11:04 +02:00
Matthias
93356286d8 fix: Activate fetch-orders pagination for binance
potential fix for #11786
2025-05-22 19:10:53 +02:00
Matthias
84e816fc5b refactor: fetch_orders pagination to base class 2025-05-22 19:07:10 +02:00
Matthias
12a482a6ba Merge pull request #11785 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-05-22 06:25:35 +02:00
Freqtrade Bot
a26a40d00f chore: update pre-commit hooks 2025-05-22 03:20:06 +00:00
Matthias
64c6b4718d Merge pull request #11758 from mrpabloyeah/add-max-trade-duration-to-backtest-results
Add min/max trade duration to backtest results
2025-05-21 20:45:24 +02:00
Matthias
d1ebdf5df2 chore: remove polyfill.io from mkdocs 2025-05-21 19:36:15 +02:00
Matthias
496c4947bd chore: Fix lint error 2025-05-21 19:34:30 +02:00
Matthias
82f98746bd test: update test for new behavior 2025-05-21 19:27:23 +02:00
hippocritical
65418c7c00 changed the text a bit 2025-05-20 21:32:21 +02:00
hippocritical
bbf6bade7c Fixed a bug where the pairlist was just .*/USDT (with a length of 1.)
The bug happened since it just checked the length of the list itself, not what it represents. in this case .*/USDT could be any amount of pairs

when the user sets a max_open_trades of let's say 3 then the pairs only have 3 trade slots of whatever amount of pairs it really has and thereby creating a bottleneck.

This just sets the max_open_trades to -1 without even checking it, letting freqtrade itself handle the amount of trades allowed at a given time.
2025-05-20 21:30:41 +02:00
Matthias
b6cde05f0d chore: remove unused import 2025-05-20 19:39:07 +02:00
Matthias
0a3a1d7eca fix: remove unnecessary kraken workaround
fixes "list-pairs" command for kraken.
2025-05-20 19:22:05 +02:00
Matthias
947cbdd858 test: add format_duration test 2025-05-20 18:15:54 +02:00
Matthias
7a84d1ecba chore: bump numpy to 2.2.6 2025-05-20 07:14:55 +02:00
Matthias
8c999cd60c chore: treat webhook.url as secret 2025-05-20 07:05:08 +02:00
Matthias
ad5d2a36bc feat: Further ENV recommendations to config schema 2025-05-20 07:05:08 +02:00
Matthias
1666746692 feat: recommend setting secrets via environment variable 2025-05-20 07:05:08 +02:00
Matthias
3a74fc85b4 chore: update schema.json 2025-05-20 07:05:08 +02:00
Matthias
92a1c304a8 feat: add additional supported keys to config schema 2025-05-20 07:05:08 +02:00
Matthias
d8c24663fc Merge pull request #11736 from viotemp1/optuna_addons
add early stopping for hyperopt
2025-05-20 06:45:15 +02:00
Matthias
195c15c8dc Merge pull request #11778 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-05-20 06:27:41 +02:00
Freqtrade Bot
44c06f6d20 chore: update pre-commit hooks 2025-05-20 03:20:51 +00:00
Matthias
c268f20d18 Merge pull request #11776 from freqtrade/dependabot/pip/develop/sqlalchemy-2.0.41
chore(deps): bump sqlalchemy from 2.0.40 to 2.0.41
2025-05-19 16:26:48 +02:00
Matthias
83c92f3ac1 chore: Bump sqlalchemy in pre-commit 2025-05-19 14:36:11 +02:00
dependabot[bot]
b4a3eccfa3 chore(deps): bump sqlalchemy from 2.0.40 to 2.0.41
Bumps [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) from 2.0.40 to 2.0.41.
- [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-version: 2.0.41
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 11:59:40 +00:00
Matthias
837d006e11 Merge pull request #11774 from freqtrade/dependabot/pip/develop/ccxt-4.4.82
chore(deps): bump ccxt from 4.4.80 to 4.4.82
2025-05-19 13:58:26 +02:00
dependabot[bot]
c1f1639807 chore(deps): bump ccxt from 4.4.80 to 4.4.82
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.4.80 to 4.4.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/v4.4.80...v4.4.82)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 06:29:16 +00:00
Matthias
8f71e45666 Merge pull request #11775 from freqtrade/dependabot/pip/develop/cryptography-45.0.2
chore(deps): bump cryptography from 44.0.3 to 45.0.2
2025-05-19 08:28:06 +02:00
Matthias
17fa2c9933 Merge pull request #11768 from freqtrade/dependabot/pip/develop/types-462239796a
chore(deps-dev): bump the types group with 2 updates
2025-05-19 08:10:35 +02:00
dependabot[bot]
22fdf157ef chore(deps): bump cryptography from 44.0.3 to 45.0.2
Bumps [cryptography](https://github.com/pyca/cryptography) from 44.0.3 to 45.0.2.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/44.0.3...45.0.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 05:10:41 +00:00
Matthias
6c8b39d32a Merge pull request #11770 from freqtrade/dependabot/pip/develop/python-telegram-bot-22.1
chore(deps): bump python-telegram-bot from 22.0 to 22.1
2025-05-19 07:09:30 +02:00
Matthias
5a2b3d9d87 chore: show the actually used value 2025-05-19 07:04:11 +02:00
Matthias
8641796d04 test: Add test for early-stop config adjustment 2025-05-19 07:03:41 +02:00
Matthias
c5c5cfb4d5 Merge pull request #11771 from freqtrade/dependabot/pip/develop/ruff-0.11.10
chore(deps-dev): bump ruff from 0.11.9 to 0.11.10
2025-05-19 06:53:50 +02:00
Matthias
c74033d7f1 chore: bump types for pre-commit 2025-05-19 06:49:45 +02:00
Matthias
d8c6873ee9 Merge pull request #11769 from freqtrade/dependabot/pip/develop/mkdocs-90ecda04c5
chore(deps): bump mkdocs-material from 9.6.13 to 9.6.14 in the mkdocs group
2025-05-19 06:34:43 +02:00
Matthias
b0cc2a2a1d chore: slightly improve comment wording 2025-05-19 06:32:09 +02:00
Matthias
226f9b7857 Merge pull request #11766 from AchmadFathoni/develop
docs: trades space not included in default spaces
2025-05-19 06:31:11 +02:00
dependabot[bot]
1abf72855e chore(deps): bump xgboost from 2.1.4 to 3.0.1
Bumps [xgboost](https://github.com/dmlc/xgboost) from 2.1.4 to 3.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.1.4...v3.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 03:10:25 +00:00
dependabot[bot]
b044410e42 chore(deps-dev): bump ruff from 0.11.9 to 0.11.10
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.11.9 to 0.11.10.
- [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/0.11.9...0.11.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 03:10:15 +00:00
dependabot[bot]
b64052850f chore(deps): bump python-telegram-bot from 22.0 to 22.1
Bumps [python-telegram-bot](https://github.com/python-telegram-bot/python-telegram-bot) from 22.0 to 22.1.
- [Release notes](https://github.com/python-telegram-bot/python-telegram-bot/releases)
- [Commits](https://github.com/python-telegram-bot/python-telegram-bot/compare/v22.0...v22.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 03:10:08 +00:00
dependabot[bot]
8868b10042 chore(deps): bump mkdocs-material in the mkdocs group
Bumps the mkdocs group with 1 update: [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `mkdocs-material` from 9.6.13 to 9.6.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.6.13...9.6.14)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 03:10:04 +00:00
dependabot[bot]
b18190891d chore(deps-dev): bump the types group with 2 updates
Bumps the types group with 2 updates: [types-requests](https://github.com/typeshed-internal/stub_uploader) and [types-python-dateutil](https://github.com/typeshed-internal/stub_uploader).


Updates `types-requests` from 2.32.0.20250328 to 2.32.0.20250515
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

Updates `types-python-dateutil` from 2.9.0.20241206 to 2.9.0.20250516
- [Commits](https://github.com/typeshed-internal/stub_uploader/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-19 03:09:28 +00:00
Achmad Fathoni
5b001eec3e docs: trades space not included in default spaces 2025-05-18 21:26:57 +07:00
mrpabloyeah
882ca44816 Fix test_optimize_reports 2025-05-18 14:19:10 +02:00
mrpabloyeah
60157606fe Format only winner/loser durations 2025-05-18 13:39:50 +02:00
mrpabloyeah
cbb0294cd2 Format duration to make results more readable 2025-05-18 13:02:47 +02:00
Matthias
1b4802ab73 chore: Improved wording in issue templates 2025-05-18 08:38:27 +02:00
Matthias
6b7f210ef3 chore: Improve bug report template about AI
AI generated strategies and configs cause a lot of noise.
we should be clear that people shall read the documentation first
(this will also allow us to point people at this within the issue).
2025-05-18 08:35:59 +02:00
Matthias
571b154345 Merge pull request #11763 from emmanuel-ferdman/develop
fix: display pair information in message
2025-05-17 19:37:09 +02:00
Emmanuel Ferdman
9a2b5a1219 Display pair information in message
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
2025-05-17 07:51:03 -07:00
Matthias
fe9de41d58 docs: fix Note boxes not rendering correctly 2025-05-17 16:16:27 +02:00
Matthias
daff50e79e test: improve admotion test by skipping empty lines 2025-05-17 16:16:19 +02:00
Matthias
09b687d66f test: add test checking proper admotion logic 2025-05-17 16:12:19 +02:00
Matthias
665ff9f14e test: extend test_docs for collapsed info boxes 2025-05-17 15:36:32 +02:00
viotemp1
bd1a12ceaa fix formatting 2025-05-17 16:27:33 +03:00
viotemp1
d33e931a0d early stop - replace values lower than 20 with 20 and display a warning. 2025-05-17 16:23:25 +03:00
mrpabloyeah
fbe38c362c Fix typo 2025-05-17 15:10:04 +02:00
mrpabloyeah
718efc828a Also add min trade duration and display the info horizontally 2025-05-17 14:22:25 +02:00
mrpabloyeah
6d3ed84807 Add max trade duration to backtest results 2025-05-17 02:50:10 +02:00
viotemp1
28e5efc902 fix docs 2025-05-17 01:15:10 +03:00
Matthias
510c47bd78 docs: update doc wording in custom_exit callback 2025-05-16 06:39:24 +02:00
Matthias
2e0065216f Merge pull request #11755 from Silur/develop
fix binance futures candle type hardcoding for trades data
2025-05-15 19:52:58 +02:00
silur
ce024c74e1 fix binance futures candle type hardcoding 2025-05-15 21:31:01 +04:00
mrpabloyeah
90e2935abf Add trade_duration parameter to custom_roi 2025-05-15 11:53:48 +02:00
mrpabloyeah
12cd654bce Merge branch 'freqtrade:develop' into add-custom-roi-strategy-callback 2025-05-15 10:14:53 +02:00
Matthias
c3ea793abb Merge branch 'develop' into add-custom-roi-strategy-callback 2025-05-15 07:22:25 +02:00
Matthias
c901f6d1dd test: add test for custom_roi behavior 2025-05-15 07:22:18 +02:00
Matthias
193cfb634c Merge pull request #11754 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-05-15 06:28:13 +02:00
Freqtrade Bot
a2b7620b64 chore: update pre-commit hooks 2025-05-15 03:19:37 +00:00
Matthias
9d91a4a298 fix: default max_open_trades to inf instead of -1
Without this, the auto-conversion doesn't backpopulate to the config

closes #11752
2025-05-14 20:14:10 +02:00
Matthias
3b6dbaccf8 test: add failing test for #11752 2025-05-14 20:12:33 +02:00
Matthias
3fe9e6b82b fix: don't use exchange.precision_mode_price
closes #11751
2025-05-14 06:59:51 +02:00
Matthias
b6614045aa Merge pull request #11738 from snussik/patch-1
Update strategy-callbacks.md
2025-05-13 20:03:57 +02:00
Matthias
cbf27f0bdb docs: Simplify doc examples 2025-05-13 19:38:06 +02:00
Matthias
bc78e2e1b9 feat: update to ft-pandas-ta
Freqtrade's compatibility fork of pandas-ta
available at https://github.com/freqtrade/pandas-ta/
2025-05-13 07:03:52 +02:00
Matthias
deafe39f76 Merge pull request #11750 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-05-13 07:03:13 +02:00
Freqtrade Bot
1f63eca1a8 chore: update pre-commit hooks 2025-05-13 03:20:47 +00:00
Matthias
3fb6bc888b chore: Mypy-exclusions to account for ta-lib import problem 2025-05-12 18:22:01 +02:00
Matthias
2c0db908b5 Merge pull request #11747 from nisuhw/patch-1
Update installation.md for older Raspberry Pi 2
2025-05-12 13:14:58 +02:00
nisuhw
ca9403f981 Update installation.md for older Raspberry Pi 2
I got the following error on Pi 2 (using Debian Bookworm armhf arch)
```
...
            running bdist_wheel
            running build
            running build_py
            creating build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/lock.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/backend_ctypes.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/_imp_emulation.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/model.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/ffiplatform.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/setuptools_ext.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/error.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/vengine_gen.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/api.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/__init__.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/recompiler.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/cffi_opcode.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/pkgconfig.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/verifier.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/cparser.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/_shimmed_dist_utils.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/commontypes.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/vengine_cpy.py -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/_cffi_include.h -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/parse_c_type.h -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/_embedding.h -> build/lib.linux-armv7l-cpython-311/cffi
            copying src/cffi/_cffi_errors.h -> build/lib.linux-armv7l-cpython-311/cffi
            running build_ext
            building '_cffi_backend' extension
            creating build/temp.linux-armv7l-cpython-311/src/c
            arm-linux-gnueabihf-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -DFFI_BUILDING=1 -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/freqtrade/.venv/include -I/usr/include/python3.11 -c src/c/_cffi_backend.c -o build/temp.linux-armv7l-cpython-311/src/c/_cffi_backend.o
            src/c/_cffi_backend.c:15:10: fatal error: ffi.h: No such file or directory
               15 | #include <ffi.h>
                  |          ^~~~~~~
            compilation terminated.
            error: command '/usr/bin/arm-linux-gnueabihf-gcc' failed with exit code 1
            [end of output]
      
        note: This error originates from a subprocess, and is likely not a problem with pip.
        ERROR: Failed building wheel for cffi
      Failed to build cffi
      ERROR: Failed to build installable wheels for some pyproject.toml based projects (cffi)
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.
Failed installing dependencies
```

It can be Easily solved by installing libffi-dev before hand
2025-05-12 16:01:25 +07:00
Matthias
a8d96087c1 Merge pull request #11743 from freqtrade/dependabot/pip/develop/ccxt-4.4.80
chore(deps): bump ccxt from 4.4.78 to 4.4.80
2025-05-12 08:50:16 +02:00
Matthias
1649505121 Merge pull request #11741 from freqtrade/dependabot/pip/develop/optuna-4.3.0
chore(deps): bump optuna from 4.2.1 to 4.3.0
2025-05-12 08:03:05 +02:00
Matthias
41a063e2ac Merge pull request #11745 from freqtrade/dependabot/pip/develop/datasieve-0.1.9
chore(deps): bump datasieve from 0.1.7 to 0.1.9
2025-05-12 07:45:57 +02:00
dependabot[bot]
ba019ad143 chore(deps): bump optuna from 4.2.1 to 4.3.0
Bumps [optuna](https://github.com/optuna/optuna) from 4.2.1 to 4.3.0.
- [Release notes](https://github.com/optuna/optuna/releases)
- [Commits](https://github.com/optuna/optuna/compare/v4.2.1...v4.3.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 05:35:28 +00:00
Matthias
6f3071f6ce Merge pull request #11742 from freqtrade/dependabot/pip/develop/scipy-1.15.3
chore(deps): bump scipy from 1.15.2 to 1.15.3
2025-05-12 07:34:16 +02:00
Matthias
5cdb2dd601 Merge pull request #11744 from freqtrade/dependabot/pip/develop/ruff-0.11.9
chore(deps-dev): bump ruff from 0.11.8 to 0.11.9
2025-05-12 07:21:22 +02:00
Matthias
4db41f0225 Merge pull request #11740 from freqtrade/dependabot/pip/develop/mkdocs-b2e01260d9
chore(deps): bump mkdocs-material from 9.6.12 to 9.6.13 in the mkdocs group
2025-05-12 06:46:32 +02:00
Matthias
cc8581164d Merge pull request #11739 from freqtrade/dependabot/pip/develop/pytest-5fb0fe6743
chore(deps-dev): bump pytest-timeout from 2.3.1 to 2.4.0 in the pytest group
2025-05-12 06:26:25 +02:00
dependabot[bot]
7d50353697 chore(deps): bump datasieve from 0.1.7 to 0.1.9
Bumps [datasieve](https://github.com/emergentmethods/datasieve) from 0.1.7 to 0.1.9.
- [Release notes](https://github.com/emergentmethods/datasieve/releases)
- [Commits](https://github.com/emergentmethods/datasieve/compare/v0.1.7...v0.1.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 03:43:51 +00:00
dependabot[bot]
d742f8b88f chore(deps-dev): bump ruff from 0.11.8 to 0.11.9
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.11.8 to 0.11.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/0.11.8...0.11.9)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 03:43:39 +00:00
dependabot[bot]
22bf036a66 chore(deps): bump ccxt from 4.4.78 to 4.4.80
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.4.78 to 4.4.80.
- [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/v4.4.78...v4.4.80)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 03:43:28 +00:00
dependabot[bot]
c45351beff chore(deps): bump scipy from 1.15.2 to 1.15.3
Bumps [scipy](https://github.com/scipy/scipy) from 1.15.2 to 1.15.3.
- [Release notes](https://github.com/scipy/scipy/releases)
- [Commits](https://github.com/scipy/scipy/compare/v1.15.2...v1.15.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 03:43:14 +00:00
dependabot[bot]
6d1d0751e8 chore(deps): bump mkdocs-material in the mkdocs group
Bumps the mkdocs group with 1 update: [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `mkdocs-material` from 9.6.12 to 9.6.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.6.12...9.6.13)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 03:42:57 +00:00
dependabot[bot]
15012ec58c chore(deps-dev): bump pytest-timeout in the pytest group
Bumps the pytest group with 1 update: [pytest-timeout](https://github.com/pytest-dev/pytest-timeout).


Updates `pytest-timeout` from 2.3.1 to 2.4.0
- [Commits](https://github.com/pytest-dev/pytest-timeout/compare/2.3.1...2.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 03:42:46 +00:00
snussik
fed91ff5a1 Update strategy-callbacks.md
Taking leverage into account https://github.com/freqtrade/freqtrade-strategies/issues/322
2025-05-11 17:58:10 +03:00
Matthias
0228ec796b chore: bump datasieve to 0.1.9 2025-05-11 16:28:15 +02:00
viotemp1
5b92af6a90 fix some spelling errors 2025-05-10 19:45:16 +03:00
viotemp1
442a1ba50d add early stopping for hyperopt 2025-05-10 19:36:48 +03:00
Matthias
c3f6aa17ee Merge pull request #11711 from freqtrade/feat/bt_historic_precision
Improve price precision logic and add significant digits calculation
2025-05-10 16:03:38 +02:00
Matthias
69de7b4045 chore: bump datasieve to 0.1.8 2025-05-10 13:51:37 +02:00
Matthias
8dc278f1a0 refactor: simplify ws exchange handling 2025-05-10 13:30:26 +02:00
Matthias
5f907d4219 chore: move candletype check to can_use_websocket. 2025-05-10 11:43:52 +02:00
Matthias
c39c5f254f Extract "can use websocket" method 2025-05-10 11:31:30 +02:00
Matthias
0dfc4ed696 refactor: extract websocket builder logic to it's own function 2025-05-10 11:24:54 +02:00
Matthias
950a0df8b1 docs: improved documentation of order object 2025-05-10 08:38:45 +02:00
Matthias
2a0dd4cf55 Merge pull request #11558 from viotemp1/optuna
switch hyperopt from scikit-optimize to  Optuna
2025-05-09 09:53:13 +02:00
Matthias
575c381e65 chore: fix mypy error 2025-05-09 09:36:08 +02:00
Matthias
87061bcce8 docs: adopt autosampler example as advanced hyperopt approach 2025-05-09 06:42:37 +02:00
Matthias
a6d3995013 feat: Improved typing, exception if neither step nor decimals is set 2025-05-09 06:34:59 +02:00
Matthias
d0d40f4fce test: Improve skdecimal test 2025-05-09 06:34:33 +02:00
Matthias
ce7d81325d chore: improved docstring for skdecimal 2025-05-09 06:32:43 +02:00
Matthias
7cfecab7e2 Merge branch 'develop' into optuna 2025-05-08 19:25:33 +02:00
Matthias
8f8da51808 feat: round hyperopt results to 13 digits (this removes floating point errors) 2025-05-08 19:24:31 +02:00
Matthias
f94fd7d5fc chore: minor formatting 2025-05-08 07:07:22 +02:00
Matthias
befc41ae54 Merge pull request #11717 from freqtrade/dependabot/pip/develop/certifi-2025.4.26
chore(deps): bump certifi from 2025.01.31 to 2025.4.26
2025-05-08 07:03:09 +02:00
dependabot[bot]
02092926ab chore(deps): bump certifi from 2025.01.31 to 2025.4.26
Bumps [certifi](https://github.com/certifi/python-certifi) from 2025.01.31 to 2025.4.26.
- [Commits](https://github.com/certifi/python-certifi/compare/2025.01.31...2025.04.26)

---
updated-dependencies:
- dependency-name: certifi
  dependency-version: 2025.4.26
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-08 04:44:37 +00:00
Matthias
a49b4ab93a Merge pull request #11731 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-05-08 06:23:36 +02:00
Freqtrade Bot
bd7549bc8b chore: update pre-commit hooks 2025-05-08 03:19:45 +00:00
viotemp1
47e1d209db round to decimals low and high 2025-05-08 05:49:34 +03:00
viotemp1
5d2f5ec12f change SKDecimal low/high to be rounded by decimals 2025-05-07 21:57:56 +03:00
viotemp1
2d2dc7f14a Merge remote-tracking branch 'refs/remotes/origin/optuna' into optuna 2025-05-07 17:25:14 +03:00
viotemp1
43bd2a060c fix optuna userwarning the range is not divisible by step 2025-05-07 17:20:17 +03:00
Matthias
b518d66aa2 chore: improve docstring for get_Trades_proxy. 2025-05-06 19:37:06 +02:00
Matthias
2ba59cebe3 Merge pull request #11724 from freqtrade/update/pre-commit-hooks
Update pre-commit hooks
2025-05-06 06:33:06 +02:00
Freqtrade Bot
f165c85e69 chore: update pre-commit hooks 2025-05-06 03:18:59 +00:00
Matthias
fca454bba3 Merge pull request #11708 from hippocritical/develop
lookahead-analysis docs changed to better explain the output table
2025-05-05 19:52:45 +02:00
Matthias
3dc1adfad4 docs: slight formatting tweaks 2025-05-05 19:35:04 +02:00
Robert Davey
38754e0598 Small tweaks to lookahead docs 2025-05-05 11:50:29 +01:00
Matthias
8fb4446d82 Merge pull request #11716 from freqtrade/dependabot/pip/develop/cryptography-44.0.3
chore(deps): bump cryptography from 44.0.2 to 44.0.3
2025-05-05 09:37:47 +02:00
Matthias
3725ac145b Merge pull request #11720 from freqtrade/dependabot/pip/develop/humanize-4.12.3
chore(deps): bump humanize from 4.12.2 to 4.12.3
2025-05-05 08:08:13 +02:00
Matthias
7df0d06005 Merge pull request #11719 from freqtrade/dependabot/pip/develop/orjson-3.10.18
chore(deps): bump orjson from 3.10.16 to 3.10.18
2025-05-05 08:00:50 +02:00
Matthias
4e855b638b Merge pull request #11721 from freqtrade/dependabot/github_actions/develop/astral-sh/setup-uv-6.0.1
chore(deps): bump astral-sh/setup-uv from 6.0.0 to 6.0.1
2025-05-05 07:32:06 +02:00
Matthias
9783aba09c Merge pull request #11718 from freqtrade/dependabot/pip/develop/pydantic-2.11.4
chore(deps): bump pydantic from 2.11.3 to 2.11.4
2025-05-05 07:20:59 +02:00
Matthias
1936b20309 Merge pull request #11715 from freqtrade/dependabot/pip/develop/ruff-0.11.8
chore(deps-dev): bump ruff from 0.11.7 to 0.11.8
2025-05-05 06:58:02 +02:00
dependabot[bot]
69de9687d0 chore(deps): bump cryptography from 44.0.2 to 44.0.3
Bumps [cryptography](https://github.com/pyca/cryptography) from 44.0.2 to 44.0.3.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/44.0.2...44.0.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 04:49:45 +00:00
Matthias
bdeeca7d43 Merge pull request #11714 from freqtrade/dependabot/pip/develop/ccxt-4.4.78
chore(deps): bump ccxt from 4.4.77 to 4.4.78
2025-05-05 06:48:36 +02:00
Matthias
a7ba3cad85 Merge pull request #11713 from freqtrade/dependabot/pip/develop/joblib-1.5.0
chore(deps): bump joblib from 1.4.2 to 1.5.0
2025-05-05 06:30:45 +02:00
dependabot[bot]
ef5fcad8cf chore(deps): bump astral-sh/setup-uv from 6.0.0 to 6.0.1
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](c7f87aa956...6b9c6063ab)

---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 03:57:55 +00:00
dependabot[bot]
d8de6c8f7b chore(deps): bump humanize from 4.12.2 to 4.12.3
Bumps [humanize](https://github.com/python-humanize/humanize) from 4.12.2 to 4.12.3.
- [Release notes](https://github.com/python-humanize/humanize/releases)
- [Commits](https://github.com/python-humanize/humanize/compare/4.12.2...4.12.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 03:26:59 +00:00
dependabot[bot]
c3239da266 chore(deps): bump orjson from 3.10.16 to 3.10.18
Bumps [orjson](https://github.com/ijl/orjson) from 3.10.16 to 3.10.18.
- [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.10.16...3.10.18)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 03:26:54 +00:00
dependabot[bot]
1edf948e49 chore(deps): bump pydantic from 2.11.3 to 2.11.4
Bumps [pydantic](https://github.com/pydantic/pydantic) from 2.11.3 to 2.11.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.11.3...v2.11.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 03:26:49 +00:00
dependabot[bot]
224c4a717b chore(deps-dev): bump ruff from 0.11.7 to 0.11.8
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.11.7 to 0.11.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/0.11.7...0.11.8)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 03:26:29 +00:00
dependabot[bot]
6202436bfd chore(deps): bump ccxt from 4.4.77 to 4.4.78
Bumps [ccxt](https://github.com/ccxt/ccxt) from 4.4.77 to 4.4.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/v4.4.77...v4.4.78)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 03:26:19 +00:00
dependabot[bot]
122144857e chore(deps): bump joblib from 1.4.2 to 1.5.0
Bumps [joblib](https://github.com/joblib/joblib) from 1.4.2 to 1.5.0.
- [Release notes](https://github.com/joblib/joblib/releases)
- [Changelog](https://github.com/joblib/joblib/blob/main/CHANGES.rst)
- [Commits](https://github.com/joblib/joblib/compare/1.4.2...1.5.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-05 03:26:13 +00:00
Matthias
92bcf672fb docs: document consumer's initial_candle_limit 2025-05-04 19:53:09 +02:00
Matthias
6f4ffa0758 chore: minor cleanup 2025-05-04 19:32:09 +02:00
Matthias
82186c8a7f docs: fix typo in docs causing note-box to not render 2025-05-04 19:26:26 +02:00
hippocritical
50596e1a6a fixed typo 2025-05-04 17:53:23 +02:00
hippocritical
9edcbbb9a8 Changed formatting to be more readable in source
Added
- How to find and remove bias? How can I salvage the strategy?
- Examples of lookahead-bias
2025-05-04 16:59:24 +02:00
Matthias
a59805d739 docs: small formatting 2025-05-04 14:05:23 +02:00
Robert Davey
b96c06ffdc Update lookahead-analysis.md
Englishified.
2025-05-04 12:34:48 +01:00
Matthias
8abe358c1e docs: improved rendering 2025-05-04 11:57:03 +02:00
Matthias
2142b2aea3 chore: fix type-check 2025-05-04 11:49:03 +02:00
Matthias
53ba3ced06 test: add test for backtest "get price precision" logic 2025-05-04 11:47:42 +02:00
hippocritical
a0f336c31f changed lookahead-analysis.md to better explain the output of the command 2025-05-03 22:12:25 +02:00
Matthias
081fa2209a refactor: correct naming of new function 2025-05-03 20:45:52 +02:00
Matthias
ca67d3fb2c chore: improve price_precision logic resiliancy 2025-05-03 20:44:14 +02:00
Matthias
5a6b43da46 feat: use hsitoric price precision for improved accuracy
closes #11203
2025-05-03 20:37:57 +02:00
Matthias
7d3fa41911 test: add tests for get_significant_digits_over_time 2025-05-03 20:30:25 +02:00
Matthias
b8f3f5e8d2 fix: use month-start for the resample 2025-05-03 20:28:10 +02:00
Matthias
4849d5413f feat: add function to count "significant digits over time". 2025-05-03 20:14:37 +02:00
Matthias
8b8bf6f97d refactor: automatically load detailed bt data 2025-05-03 20:01:13 +02:00
viotemp1
9eea958e17 remove unwrap 2025-05-03 16:55:41 +03:00
Matthias
f8a151c2a5 feat: Add funding_fee to backtest results
closes #11699
2025-05-03 14:14:32 +02:00
Matthias
1013c32316 fix: duplicate generate_optimizer to have a non-delayed alternative 2025-05-03 09:19:50 +02:00
viotemp1
d9ed7e1fb2 remove backtest from assign_params 2025-05-03 09:49:34 +03:00
Matthias
689da4c479 Merge pull request #11158 from freqtrade/feat/plot_annotations
add support for plot_annotations
2025-05-03 08:25:57 +02:00
Matthias
87d954a322 refactor: fix variable typo 2025-05-03 08:03:16 +02:00
Matthias
74f601b352 docs: Improved plot annotations sample 2025-05-03 08:02:09 +02:00
Matthias
a3359b62d4 feat: validate annotation-type before returning
this avoids breaking the whole chart due to annotations.
2025-05-02 20:58:13 +02:00
Matthias
064708a354 feat: validate annotations and only return valid ones to avoid breaking the whole chart 2025-05-02 20:45:42 +02:00
Matthias
066a46d7aa Switch annotationType to Pydantic 2025-05-02 20:41:43 +02:00
Matthias
333660e628 feat: improved doc-string for plot-annotations 2025-05-02 20:41:30 +02:00
Matthias
81f80a6b22 docs: add visual documentation for plot annotations 2025-05-02 20:28:32 +02:00
viotemp1
dd613ac86c fix formatting 2025-05-02 21:07:34 +03:00
viotemp1
73c28890d7 move @delayed and @wrap_non_picklable_objects in hyperopt_optimizer.py
one test with analyze_per_epoch is failing
2025-05-02 21:03:51 +03:00
Matthias
61dd94ceb0 test: add tests for annotations feature 2025-05-02 19:59:23 +02:00
Matthias
1fec5a873e Merge branch 'develop' into feat/plot_annotations 2025-05-02 19:48:50 +02:00
Matthias
9c4abcc927 refactor: improve variable naming 2025-05-02 13:17:16 +02:00
Matthias
b74e38ef63 refactor: improve variable naming 2025-05-02 13:17:03 +02:00
Matthias
86f640627f Merge pull request #11692 from freqtrade/reenable_htx
chore(ci): reenable htx online tests
2025-05-01 16:46:29 +02:00
Matthias
e27568a9d8 chore: pin certifi until upstream issue is fixed
problematic point: https://github.com/certifi/python-certifi/issues/349
2025-05-01 16:22:47 +02:00
Matthias
149133cc44 refactor: remove _get_params_dict method 2025-05-01 12:03:04 +02:00
Matthias
1b2d5a357f test: change level of test mock 2025-05-01 11:57:17 +02:00
Matthias
ecc6371733 test: reduce amount of mocking 2025-05-01 10:19:20 +02:00
Matthias
0c66180cf3 chore: add optuna to hyperopt optional dependencies 2025-05-01 10:15:35 +02:00
Matthias
5954c64cc3 chore: use ubuntu 24.04 for online tests 2025-05-01 08:55:35 +02:00
Matthias
d0b7a52202 Merge pull request #11703 from freqtrade/update/binance-leverage-tiers
Update Binance Leverage Tiers
2025-05-01 08:10:03 +02:00
Freqtrade Bot
c18085d173 chore: update pre-commit hooks 2025-05-01 03:22:32 +00:00
Matthias
67f88ea97a Merge pull request #11681 from JamesLinxun/develop
skip trade-related columns
2025-04-30 17:59:54 +02:00
Matthias
14353afa78 chore: bump develop version to 2025.5-dev 2025-04-30 07:02:57 +02:00
James Lin
a77618cc6b fix 2025-04-29 12:09:13 -04:00
JamesLinxun
cac2c363fa Merge branch 'freqtrade:develop' into develop 2025-04-29 10:18:13 -04:00
viotemp1
ced1ce340a fix some formatting issues 2025-04-29 17:09:16 +03:00
James Lin
1d99b7d0f9 move ORDERFLOW_ADDED_COLUMNS to constant 2025-04-29 09:18:07 -04:00
viotemp1
5c47a75f63 move back delayed and wrap_non_picklable_objects from hyperopt_optimizer to hyperopt.
There are tests failing when using delayed and wrap_non_picklable_objects as decorator.
until I'll find a solution to run generate_optimizer standalone for analyze_per_epoch=True
2025-04-29 08:16:44 +03:00
Matthias
1ef2eeb456 chore(ci): reenable htx online tests through proxy 2025-04-29 06:58:59 +02:00
viotemp1
c32f8e972a move delayed and wrap_non_picklable_objects from hyperopt to hyperopt_optimizer 2025-04-28 18:50:09 +03:00
viotemp1
04492e75b2 remove # Suppress optuna ExperimentalWarning from skopt
with warnings.catch_warnings():
    from optuna.exceptions import ExperimentalWarning
    warnings.filterwarnings("ignore", category=FutureWarning)
this should be when importing sampler
2025-04-27 22:02:39 +03:00
viotemp1
8d0ca7f5c1 remove backtesting from generate_optimizer 2025-04-27 21:26:06 +03:00
James Lin
0a4f82bc22 update columns from ORDERFLOW_ADDED_COLUMNS 2025-04-26 10:24:53 -04:00
James Lin
5ee7f8037d fix 2025-04-26 10:20:09 -04:00
James Lin
12728c0fcc fix 2025-04-26 10:18:39 -04:00
James Lin
362f0895f4 skip trade-related columns 2025-04-25 16:13:33 -04:00
Ali Salama
4e2ccfc091 Added use_parallel_download command line option 2025-04-25 15:50:56 +01:00
Ali Salama
e4b1e1118b Changed filter to pop 2025-04-25 10:33:39 +01:00
Matthias
fb64ac942b chore: raise freqtrade exception so upstream handling is in place 2025-04-23 20:18:58 +02:00
Matthias
3fc40f45b3 chore: simplify diff in hyperopt-tinterface
Use aliases where possible.
2025-04-23 20:15:24 +02:00
Matthias
ca5ccc8799 chore: cleanup some code 2025-04-23 20:07:40 +02:00
Matthias
057cc2538e chore: use optuna distribution aliases in parameters 2025-04-23 20:02:58 +02:00
Matthias
ed22789a1a chore: cleanup unused import 2025-04-23 19:53:07 +02:00
Matthias
2abf22e37b chore: simplify usage of data_pickle_file 2025-04-23 19:50:17 +02:00
Matthias
9b08b51ad8 chore: cleanup dead code 2025-04-23 19:50:17 +02:00
Matthias
83cdf76636 chore: simplify import/exports 2025-04-23 19:50:17 +02:00
Matthias
f545113840 chore: improve EstimatorType type 2025-04-23 19:50:17 +02:00
Matthias
f86bc71c43 chore: cleanup some test code 2025-04-23 19:19:55 +02:00
Matthias
8af9875d45 docs: remove scikit-optimize references from docs 2025-04-23 19:17:43 +02:00
Matthias
8a9b31eccd chore: remove scikit-optimize dependency 2025-04-23 19:16:17 +02:00
mrpabloyeah
b4a5f66f29 Return the trade duration along with the profit threshold returned by custom_roi 2025-04-20 13:39:35 +02:00
mrpabloyeah
e105ea660b Improve documentation 2025-04-20 13:16:27 +02:00
mrpabloyeah
1149393789 Fix LocalTrade compatibility correctly 2025-04-20 01:33:34 +02:00
mrpabloyeah
d4655660f4 Fix LocalTrade compatibility in custom_roi and min_roi_reached_entry 2025-04-19 16:36:13 +02:00
mrpabloyeah
e656063771 Add custom_roi strategy callback 2025-04-19 15:42:44 +02:00
Matthias
825c059c2e chore: update ta-lib binaries 2025-04-16 07:12:56 +02:00
Matthias
8e8f4dbdd3 chore: drop stable-baselines install from mac x64
in line with #11541
2025-04-15 06:38:08 +02:00
Matthias
865c253922 chore: bump dockerfile and windows install numpy 2025-04-15 06:31:16 +02:00
Matthias
cd6e06c86e chore: bump ta-lib to 0.5.4
This version supports numpy2 - while still remaining on ta-lib C of 0.4
This will avoid huge update problems, as the underlying library doesn't need to be updated
2025-04-15 06:30:34 +02:00
Matthias
422f225e8e chore: update numpy pyproject lock range 2025-04-15 06:29:26 +02:00
Matthias
9921c54882 chore: bump nunmpy to 2.2.4 2025-04-15 06:28:40 +02:00
viotemp1
20fca07d8f fixed mypy errors
freqtrade/optimize/space/optunaspaces.py:39: error: Argument 1 to "__init__" of "IntDistribution" has incompatible type "int | float"; expected "int"  [arg-type]
	freqtrade/optimize/space/optunaspaces.py:39: error: Argument 2 to "__init__" of "IntDistribution" has incompatible type "int | float"; expected "int"  [arg-type]
remove all references for ExtraTreesRegressor and skopt.space
2025-04-13 12:39:44 +03:00
viotemp1
8ee40ade45 update docs/advanced-hyperopt.md 2025-04-13 11:27:33 +03:00
viotemp1
30ead79e11 fixed freqtrade/optimize/space/__init__.py:1:66: RUF100 [*] Unused noqa directive (unused: F401) 2025-04-13 11:22:07 +03:00
viotemp1
5c859d929b add optunaspaces.py 2025-04-13 11:06:39 +03:00
viotemp1
c89058788e remove decimal module 2025-04-13 09:49:33 +03:00
viotemp1
35c3868c56 change for SKDecimal and othercomments 2025-04-13 08:58:42 +03:00
Matthias
85689ebc1c test: update skdecimal test to use optuna 2025-04-12 12:37:17 +02:00
Ali Salama
ba2e798f7d Added data.empty / new pair check 2025-04-12 11:35:23 +01:00
Matthias
4fcc9dd587 feat: use floatDistribution for SKDecimal 2025-04-12 12:10:48 +02:00
Ali Salama
85edef8394 Changed to use refresh_latest_ohlcv 2025-04-12 10:15:31 +01:00
Matthias
05f19d574a chore: remove commented skopt usages 2025-04-12 10:13:42 +02:00
Matthias
1a24559729 chore: cleanup old usages 2025-04-12 10:08:41 +02:00
Matthias
7a51c9d540 types: slightly improved typing 2025-04-12 10:05:11 +02:00
Matthias
1d22377cad chore: remove some skopt usages 2025-04-12 09:58:44 +02:00
Ali Salama
559f6e2791 Parallelisation of iterative data downloads 2025-04-11 16:16:07 +01:00
viotemp1
90aaaa50fc fix increasing memory usage. 2025-04-02 18:45:49 +03:00
Sung-Kyu Yoo
bffb3120c1 fix: remove space in rename_dict/rename_dict_old 2025-04-01 22:18:26 +09:00
viotemp1
3fcf6559ab change from skopt.space.Real to optuna.distributions.FloatDistribution 2025-03-31 13:48:12 +03:00
viotemp1
85f4a8daea fix formatting 2025-03-31 00:10:52 +03:00
viotemp1
2595479e43 change CategoricalParameter and IntParameter in parameters.py to use optuna.distributions CategoricalDistribution and IntDistribution instead of skopt 2025-03-30 21:13:15 +03:00
viotemp1
b603771242 Merge branch 'freqtrade:develop' into optuna 2025-03-30 16:19:16 +03:00
viotemp1
9c1183bc59 fix formatting requirements-hyperopt.txt 2025-03-28 08:12:37 +02:00
viotemp1
6b78b1c882 fix formatting 2025-03-26 21:30:18 +02:00
viotemp1
ee3d46c8fa change default optimizer to NSGAIIISampler - best results so far 2025-03-26 21:25:56 +02:00
viotemp1
59e52bb601 fix type-errors by declaring the type of o_dimensions in convert_dimensions_to_optuna_space 2025-03-26 16:55:43 +02:00
viotemp1
553dbccec7 simplify get_optimizer 2025-03-26 16:42:09 +02:00
viotemp1
2e06eb0e7b update docs for optuna sampler 2025-03-26 08:46:05 +02:00
viotemp1
31c4d35932 update docs for optuna sampler 2025-03-26 08:44:46 +02:00
viotemp1
eb03382b2d remove SKOPT_MODEL_QUEUE_SIZE comments 2025-03-26 08:36:55 +02:00
viotemp1
fcd0c1d606 formatting fix 2025-03-25 19:16:08 +02:00
viotemp1
276ef6cdde Merge branch 'freqtrade:develop' into optuna 2025-03-25 15:08:03 +02:00
viotemp1
c5088e6b66 fix formatting 2025-03-25 15:07:09 +02:00
viotemp1
62f05964b4 change optimizer to optuna 2025-03-25 14:06:35 +02:00
Matthias
b6a65ce125 fix: pickle error due to Lock object
tb_logger get's closed after training.
So we need to re-assign the new one, otherwise pickling fails.

closes #10034
2025-03-11 19:53:41 +01:00
Matthias
315421037f Merge branch 'develop' into feat/plot_annotations 2025-02-10 07:13:55 +01:00
Matthias
4ff200d315 docs: clarify docs about plot annotation callback 2024-12-28 16:38:40 +01:00
Matthias
5700f789e2 chore: improve type-safety 2024-12-28 15:49:41 +01:00
Matthias
689767e3ca chore: rename response model attribute 2024-12-28 15:46:38 +01:00
Matthias
66efc9a469 docs: add documentation for plot_annotations 2024-12-28 15:43:45 +01:00
Matthias
4c3e477667 chore: rename Annotation type 2024-12-28 15:41:10 +01:00
Matthias
8cdae5f56e feat: add plot_annotations interface 2024-12-28 15:26:37 +01:00
Matthias
347295ecaf feat: Expand pair_candles with plot_annotations call 2024-12-28 15:18:02 +01:00
Matthias
7272204d58 feat: add MarkArea type 2024-12-28 15:17:16 +01:00
352 changed files with 71885 additions and 40661 deletions

View File

@@ -14,10 +14,11 @@ MANIFEST.in
README.md
freqtrade.service
freqtrade.egg-info
.venv/
config.json*
*.sqlite
user_data
user_data/
*.log
.vscode

View File

@@ -1,6 +1,6 @@
---
name: Bug report
about: Create a report to help us improve
about: Create a report to help us improve. Do not use this for strategy assistance.
title: ''
labels: "Triage Needed"
assignees: ''
@@ -12,6 +12,10 @@ Have you searched for similar issues before posting it?
If you have discovered a bug in the bot, please [search the issue tracker](https://github.com/freqtrade/freqtrade/issues?q=is%3Aissue).
If it hasn't been reported, please create a new issue.
Has your strategy or configuration been generated by an AI model, and is now not working?
This is almost certainly NOT a bug in Freqtrade, but a problem with the code your AI model generated.
Please consult the documentation. We'll close such issues and point to the documentation.
Please do not use the bug report template to request new features.
-->

View File

@@ -1,6 +1,6 @@
---
name: Feature request
about: Suggest an idea for this project
about: Suggest a new feature or idea for this project
title: ''
labels: ''
assignees: ''

View File

@@ -1,6 +1,6 @@
---
name: Question
about: Ask a question you could not find an answer in the docs
about: Ask a question you could not find an answer in the docs. Use this template if you've got problems with your strategy.
title: ''
labels: "Question"
assignees: ''

View File

@@ -1,5 +1,10 @@
<!-- Thank you for sending your pull request. But first, have you included
unit tests, and is your code PEP8 conformant? [More details](https://github.com/freqtrade/freqtrade/blob/develop/CONTRIBUTING.md)
Did you use AI to create your changes?
If so, please state it clearly in the PR description (failing to do so may result in your PR being closed).
Also, please do a self review of the changes made before submitting the PR to make sure only relevant changes are included.
-->
## Summary

92
.github/actions/docker-tags/action.yml vendored Normal file
View File

@@ -0,0 +1,92 @@
name: 'docker-tags'
description: 'Set Docker default Tag environment variables'
# inputs:
outputs:
BRANCH_NAME:
description: 'The branch name'
value: ${{ steps.tags.outputs.BRANCH_NAME }}
TAG:
description: 'The Docker tag'
value: ${{ steps.tags.outputs.TAG }}
TAG_PLOT:
description: 'The Docker tag for the plot'
value: ${{ steps.tags.outputs.TAG_PLOT }}
TAG_FREQAI:
description: 'The Docker tag for the freqai'
value: ${{ steps.tags.outputs.TAG_FREQAI }}
TAG_FREQAI_RL:
description: 'The Docker tag for the freqai_rl'
value: ${{ steps.tags.outputs.TAG_FREQAI_RL }}
TAG_FREQAI_TORCH:
description: 'The Docker tag for the freqai_torch'
value: ${{ steps.tags.outputs.TAG_FREQAI_TORCH }}
TAG_ARM:
description: 'The Docker tag for the arm'
value: ${{ steps.tags.outputs.TAG_ARM }}
TAG_PLOT_ARM:
description: 'The Docker tag for the plot arm'
value: ${{ steps.tags.outputs.TAG_PLOT_ARM }}
TAG_FREQAI_ARM:
description: 'The Docker tag for the freqai arm'
value: ${{ steps.tags.outputs.TAG_FREQAI_ARM }}
TAG_FREQAI_RL_ARM:
description: 'The Docker tag for the freqai_rl arm'
value: ${{ steps.tags.outputs.TAG_FREQAI_RL_ARM }}
TAG_PI:
description: 'The Docker tag for the pi'
value: ${{ steps.tags.outputs.TAG_PI }}
CACHE_TAG_PI:
description: 'The Docker cache tag for the pi'
value: ${{ steps.tags.outputs.CACHE_TAG_PI }}
runs:
using: "composite"
steps:
- name: Extract branch name
shell: bash
id: tags
env:
BRANCH_NAME_INPUT: ${{ github.event.inputs.branch_name }}
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
BRANCH_NAME="${BRANCH_NAME_INPUT}"
else
BRANCH_NAME="${GITHUB_REF##*/}"
fi
# Replace / with _ to create a valid tag
TAG=$(echo "${BRANCH_NAME}" | sed -e "s/\//_/g")
TAG_PLOT=${TAG}_plot
TAG_FREQAI=${TAG}_freqai
TAG_FREQAI_RL=${TAG_FREQAI}rl
TAG_FREQAI_TORCH=${TAG_FREQAI}torch
TAG_ARM=${TAG}_arm
TAG_PLOT_ARM=${TAG_PLOT}_arm
TAG_FREQAI_ARM=${TAG_FREQAI}_arm
TAG_FREQAI_RL_ARM=${TAG_FREQAI_RL}_arm
TAG_PI="${TAG}_pi"
CACHE_TAG_PI=${CACHE_IMAGE}:${TAG_PI}_cache
echo "BRANCH_NAME=${BRANCH_NAME}" >> "$GITHUB_OUTPUT"
echo "TAG=${TAG}" >> "$GITHUB_OUTPUT"
echo "TAG_PLOT=${TAG_PLOT}" >> "$GITHUB_OUTPUT"
echo "TAG_FREQAI=${TAG_FREQAI}" >> "$GITHUB_OUTPUT"
echo "TAG_FREQAI_RL=${TAG_FREQAI_RL}" >> "$GITHUB_OUTPUT"
echo "TAG_FREQAI_TORCH=${TAG_FREQAI_TORCH}" >> "$GITHUB_OUTPUT"
echo "TAG_ARM=${TAG_ARM}" >> "$GITHUB_OUTPUT"
echo "TAG_PLOT_ARM=${TAG_PLOT_ARM}" >> "$GITHUB_OUTPUT"
echo "TAG_FREQAI_ARM=${TAG_FREQAI_ARM}" >> "$GITHUB_OUTPUT"
echo "TAG_FREQAI_RL_ARM=${TAG_FREQAI_RL_ARM}" >> "$GITHUB_OUTPUT"
echo "TAG_PI=${TAG_PI}" >> "$GITHUB_OUTPUT"
echo "CACHE_TAG_PI=${CACHE_TAG_PI}" >> "$GITHUB_OUTPUT"
cat "$GITHUB_OUTPUT"
- name: Save commit SHA to file
shell: bash
# Add commit to docker container
run: |
echo "${GITHUB_SHA}" > freqtrade_commit

View File

@@ -1,6 +1,8 @@
version: 2
updates:
- package-ecosystem: docker
cooldown:
default-days: 4
directories:
- "/"
- "/docker"
@@ -11,8 +13,20 @@ updates:
update-types: ["version-update:semver-major"]
open-pull-requests-limit: 10
- package-ecosystem: devcontainers
directory: "/"
cooldown:
default-days: 4
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: pip
directory: "/"
cooldown:
default-days: 4
exclude:
- ccxt
schedule:
interval: weekly
time: "03:00"
@@ -29,9 +43,15 @@ updates:
mkdocs:
patterns:
- "mkdocs*"
scipy:
patterns:
- "scipy"
- "scipy-stubs"
- package-ecosystem: "github-actions"
directory: "/"
cooldown:
default-days: 4
schedule:
interval: "weekly"
open-pull-requests-limit: 10

View File

@@ -15,11 +15,11 @@ jobs:
environment:
name: develop
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
persist-credentials: false
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version: "3.12"

View File

@@ -19,52 +19,43 @@ concurrency:
permissions:
repository-projects: read
jobs:
build-linux:
tests:
name: "Tests and Linting"
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ "ubuntu-22.04", "ubuntu-24.04" ]
python-version: ["3.10", "3.11", "3.12"]
os: [ "ubuntu-22.04", "ubuntu-24.04", "macos-14", "macos-15" , "windows-2022", "windows-2025" ]
python-version: ["3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@c7f87aa956e4c323abf06d5dec078e358f6b4d04 # v6.0.0
uses: astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
with:
activate-environment: true
enable-cache: true
python-version: ${{ matrix.python-version }}
cache-dependency-glob: "requirements**.txt"
cache-suffix: "${{ matrix.python-version }}"
prune-cache: false
- name: Cache_dependencies
uses: actions/cache@v4
id: cache
with:
path: ~/dependencies/
key: ${{ runner.os }}-dependencies
- name: TA binary *nix
if: steps.cache.outputs.cache-hit != 'true'
- name: Installation - macOS (Brew)
if: ${{ runner.os == 'macOS' }}
run: |
cd build_helpers && ./install_ta-lib.sh ${HOME}/dependencies/; cd ..
# brew update
# TODO: Should be the brew upgrade
brew install libomp
- name: Installation - *nix
- name: Installation (python)
run: |
uv pip install --upgrade 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
uv pip install -r requirements-dev.txt
uv pip install -e ft_client/
uv pip install -e .
@@ -76,7 +67,7 @@ jobs:
- name: Tests
if: (!(runner.os == 'Linux' && matrix.python-version == '3.12' && matrix.os == 'ubuntu-24.04'))
run: |
pytest --random-order
pytest --random-order --durations 20 -n auto
- name: Tests with Coveralls
if: (runner.os == 'Linux' && matrix.python-version == '3.12' && matrix.os == 'ubuntu-24.04')
@@ -90,6 +81,7 @@ jobs:
COVERALLS_REPO_TOKEN: 6D1m0xupS3FgutfuGao8keFf9Hc0FpIXu
run: |
# Allow failure for coveralls
uv pip install coveralls
coveralls || true
- name: Run json schema extract
@@ -99,10 +91,12 @@ jobs:
- name: Run command docs partials extract
# This should be kept before the repository check to ensure that the docs are up-to-date
if: ${{ (matrix.python-version == '3.13') }}
run: |
python build_helpers/create_command_partials.py
- name: Check for repository changes
- name: Check for repository changes - *nix
if: ${{ (runner.os != 'Windows') }}
run: |
if [ -n "$(git status --porcelain)" ]; then
echo "Repository is dirty, changes detected:"
@@ -113,13 +107,27 @@ jobs:
echo "Repository is clean, no changes detected."
fi
- name: Check for repository changes - Windows
if: ${{ runner.os == 'Windows' && (matrix.python-version != '3.13') }}
run: |
if (git status --porcelain) {
Write-Host "Repository is dirty, changes detected:"
git status
git diff
exit 1
}
else {
Write-Host "Repository is clean, no changes detected."
}
- name: Backtesting (multi)
run: |
cp tests/testdata/config.tests.json config.json
freqtrade create-userdir --userdir user_data
cp tests/testdata/config.tests.json user_data/config.json
freqtrade new-strategy -s AwesomeStrategy
freqtrade new-strategy -s AwesomeStrategyMin --template minimal
freqtrade backtesting --datadir tests/testdata --strategy-list AwesomeStrategy AwesomeStrategyMin -i 5m
freqtrade new-strategy -s AwesomeStrategyAdv --template advanced
freqtrade backtesting --datadir tests/testdata --strategy-list AwesomeStrategy AwesomeStrategyMin AwesomeStrategyAdv -i 5m
- name: Hyperopt
run: |
@@ -140,221 +148,13 @@ jobs:
ruff format --check
- name: Mypy
if: matrix.os == 'ubuntu-24.04'
run: |
mypy freqtrade scripts tests
- name: Discord notification
uses: rjstone/discord-webhook-notify@1399c1b2d57cc05894d506d2cfdc33c5f012b993 #v1.1.1
if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false)
with:
severity: error
details: Freqtrade CI failed on ${{ matrix.os }}
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
build-macos:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ "macos-13", "macos-14", "macos-15" ]
python-version: ["3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- name: Install uv
uses: astral-sh/setup-uv@c7f87aa956e4c323abf06d5dec078e358f6b4d04 # v6.0.0
with:
activate-environment: true
enable-cache: true
python-version: ${{ matrix.python-version }}
cache-dependency-glob: "requirements**.txt"
cache-suffix: "${{ matrix.python-version }}"
prune-cache: false
- name: Cache_dependencies
uses: actions/cache@v4
id: cache
with:
path: ~/dependencies/
key: ${{ matrix.os }}-dependencies
- 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 (Brew)
run: |
# brew update
# TODO: Should be the brew upgrade
# homebrew fails to update python due to unlinking failures
# 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 libomp
- name: Installation (python)
run: |
uv pip install 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
uv pip install -r requirements-dev.txt
uv pip install -e ft_client/
uv pip install -e .
- name: Tests
run: |
pytest --random-order
- name: Check for repository changes
run: |
if [ -n "$(git status --porcelain)" ]; then
echo "Repository is dirty, changes detected:"
git status
git diff
exit 1
else
echo "Repository is clean, no changes detected."
fi
- name: Backtesting
run: |
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 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: Sort imports (isort)
run: |
isort --check .
- name: Run Ruff
run: |
ruff check --output-format=github
- name: Run Ruff format check
run: |
ruff format --check
- name: Mypy
if: matrix.os == 'macos-15'
run: |
mypy freqtrade scripts
- name: Discord notification
uses: rjstone/discord-webhook-notify@1399c1b2d57cc05894d506d2cfdc33c5f012b993 #v1.1.1
if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false)
with:
severity: info
details: Test Succeeded!
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
build-windows:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ windows-latest ]
python-version: ["3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install uv
uses: astral-sh/setup-uv@c7f87aa956e4c323abf06d5dec078e358f6b4d04 # v6.0.0
with:
activate-environment: true
enable-cache: true
python-version: ${{ matrix.python-version }}
cache-dependency-glob: "requirements**.txt"
cache-suffix: "${{ matrix.python-version }}"
prune-cache: false
- name: Installation
run: |
function uvpipFunction { uv pip $args }
Set-Alias -name pip -value uvpipFunction
./build_helpers/install_windows.ps1
- name: Tests
run: |
pytest --random-order --durations 20 -n auto
- name: Check for repository changes
run: |
if (git status --porcelain) {
Write-Host "Repository is dirty, changes detected:"
git status
git diff
exit 1
}
else {
Write-Host "Repository is clean, no changes detected."
}
- name: Backtesting
run: |
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 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 --output-format=github
- name: Run Ruff format check
run: |
ruff format --check
- name: Mypy
if: ${{ matrix.os == 'ubuntu-24.04' || matrix.os == 'macos-15' }}
run: |
mypy freqtrade scripts tests
- name: Run Pester tests (PowerShell)
if: ${{ runner.os == 'Windows' }}
shell: powershell
run: |
$PSVersionTable
Set-PSRepository psgallery -InstallationPolicy trusted
@@ -363,25 +163,24 @@ jobs:
Invoke-Pester -Path "tests" -CI
if ($Error.Length -gt 0) {exit 1}
shell: powershell
- name: Discord notification
uses: rjstone/discord-webhook-notify@1399c1b2d57cc05894d506d2cfdc33c5f012b993 #v1.1.1
if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false)
uses: rjstone/discord-webhook-notify@c2597273488aeda841dd1e891321952b51f7996f #v2.2.1
if: ${{ failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) }}
with:
severity: error
details: Test Failed
details: Freqtrade CI failed on ${{ matrix.os }} with Python ${{ matrix.python-version }}!
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
mypy-version-check:
runs-on: ubuntu-22.04
name: "Mypy Version Check"
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: "3.12"
@@ -391,21 +190,23 @@ jobs:
python build_helpers/pre_commit_update.py
pre-commit:
name: "Pre-commit checks"
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
persist-credentials: false
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version: "3.12"
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1
docs-check:
name: "Documentation build"
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
persist-credentials: false
@@ -414,7 +215,7 @@ jobs:
./tests/test_docs.sh
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: "3.12"
@@ -424,7 +225,7 @@ jobs:
mkdocs build
- name: Discord notification
uses: rjstone/discord-webhook-notify@1399c1b2d57cc05894d506d2cfdc33c5f012b993 #v1.1.1
uses: rjstone/discord-webhook-notify@c2597273488aeda841dd1e891321952b51f7996f #v2.2.1
if: failure() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false)
with:
severity: error
@@ -434,53 +235,37 @@ jobs:
build-linux-online:
# Run pytest with "live" checks
runs-on: ubuntu-22.04
name: "Tests and Linting - Online tests"
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: "3.12"
- name: Install uv
uses: astral-sh/setup-uv@c7f87aa956e4c323abf06d5dec078e358f6b4d04 # v6.0.0
uses: astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
with:
activate-environment: true
enable-cache: true
python-version: "3.12"
cache-dependency-glob: "requirements**.txt"
cache-suffix: "3.12"
prune-cache: false
- name: Cache_dependencies
uses: actions/cache@v4
id: cache
with:
path: ~/dependencies/
key: ${{ runner.os }}-dependencies
- name: TA binary *nix
if: steps.cache.outputs.cache-hit != 'true'
run: |
cd build_helpers && ./install_ta-lib.sh ${HOME}/dependencies/; cd ..
- name: Installation - *nix
run: |
uv pip install --upgrade 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
uv pip install -r requirements-dev.txt
uv pip install -e ft_client/
uv pip install -e .
- name: Tests incl. ccxt compatibility tests
env:
CI_WEB_PROXY: http://152.67.78.211:13128
CI_WEB_PROXY: http://152.67.66.8:13128
run: |
pytest --random-order --longrun --durations 20 -n auto
@@ -488,9 +273,7 @@ jobs:
# Notify only once - when CI completes (and after deploy) in case it's successful
notify-complete:
needs: [
build-linux,
build-macos,
build-windows,
tests,
docs-check,
mypy-version-check,
pre-commit,
@@ -505,15 +288,16 @@ jobs:
- name: Check user permission
id: check
uses: scherermichael-oss/action-has-permission@136e061bfe093832d87f090dd768e14e27a740d3 # 1.0.6
continue-on-error: true
uses: prince-chrismc/check-actor-permissions-action@d504e74ba31658f4cdf4fcfeb509d4c09736d88e # v3.0.2
with:
required-permission: write
permission: "write"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Discord notification
uses: rjstone/discord-webhook-notify@1399c1b2d57cc05894d506d2cfdc33c5f012b993 #v1.1.1
if: always() && steps.check.outputs.has-permission && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false)
uses: rjstone/discord-webhook-notify@c2597273488aeda841dd1e891321952b51f7996f #v2.2.1
if: steps.check.outputs.permitted == 'true' && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false)
with:
severity: info
details: Test Completed!
@@ -521,16 +305,16 @@ jobs:
build:
name: "Build"
needs: [ build-linux, build-macos, build-windows, docs-check, mypy-version-check, pre-commit ]
needs: [ tests, docs-check, mypy-version-check, pre-commit ]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: "3.12"
@@ -540,7 +324,7 @@ jobs:
python -m build --sdist --wheel
- name: Upload artifacts 📦
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v5
with:
name: freqtrade-build
path: |
@@ -553,7 +337,7 @@ jobs:
python -m build --sdist --wheel ft_client
- name: Upload artifacts 📦
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v5
with:
name: freqtrade-client-build
path: |
@@ -572,19 +356,19 @@ jobs:
id-token: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Download artifact 📦
uses: actions/download-artifact@v4
uses: actions/download-artifact@v6
with:
pattern: freqtrade*-build
path: dist
merge-multiple: true
- name: Publish to PyPI (Test)
uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc # v1.12.4
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
with:
repository-url: https://test.pypi.org/legacy/
@@ -601,115 +385,46 @@ jobs:
id-token: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Download artifact 📦
uses: actions/download-artifact@v4
uses: actions/download-artifact@v6
with:
pattern: freqtrade*-build
path: dist
merge-multiple: true
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc # v1.12.4
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
deploy-docker:
needs: [ build-linux, build-macos, build-windows, docs-check, mypy-version-check, pre-commit ]
runs-on: ubuntu-22.04
docker-build:
name: "Docker Build and Deploy"
needs: [
tests,
docs-check,
mypy-version-check,
pre-commit
]
if: (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'release') && github.repository == 'freqtrade/freqtrade'
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Extract branch name
id: extract-branch
run: |
echo "GITHUB_REF='${GITHUB_REF}'"
echo "branch=${GITHUB_REF##*/}" >> "$GITHUB_OUTPUT"
- name: Dockerhub login
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
run: |
echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin
# We need docker experimental to pull the ARM image.
- name: Switch docker to experimental
run: |
docker version -f '{{.Server.Experimental}}'
echo $'{\n "experimental": true\n}' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker
docker version -f '{{.Server.Experimental}}'
- name: Set up QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 #v3.10.0
- name: Available platforms
run: echo ${PLATFORMS}
env:
PLATFORMS: ${{ steps.buildx.outputs.platforms }}
- name: Build and test and push docker images
env:
BRANCH_NAME: ${{ steps.extract-branch.outputs.branch }}
run: |
build_helpers/publish_docker_multi.sh
deploy-arm:
name: "Deploy Docker"
uses: ./.github/workflows/docker-build.yml
permissions:
packages: write
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'
contents: read
secrets:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Extract branch name
id: extract-branch
run: |
echo "GITHUB_REF='${GITHUB_REF}'"
echo "branch=${GITHUB_REF##*/}" >> "$GITHUB_OUTPUT"
- name: Dockerhub login
env:
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
run: |
echo "${DOCKER_PASSWORD}" | docker login --username ${DOCKER_USERNAME} --password-stdin
- name: Build and test and push docker images
env:
BRANCH_NAME: ${{ steps.extract-branch.outputs.branch }}
GHCR_USERNAME: ${{ github.actor }}
GHCR_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
build_helpers/publish_docker_arm64.sh
- name: Discord notification
uses: rjstone/discord-webhook-notify@1399c1b2d57cc05894d506d2cfdc33c5f012b993 #v1.1.1
if: always() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) && (github.event_name != 'schedule')
with:
severity: info
details: Deploy Succeeded!
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}
packages-cleanup:
name: "Docker Package Cleanup"
uses: ./.github/workflows/packages-cleanup.yml
# Only run on push, schedule, or release events
if: (github.event_name == 'push' || github.event_name == 'schedule') && github.repository == 'freqtrade/freqtrade'
permissions:
packages: write
with:
package_name: 'freqtrade'

View File

@@ -19,12 +19,12 @@ jobs:
name: Deploy Docs through mike
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
persist-credentials: true
- name: Set up Python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: '3.12'

View File

@@ -24,11 +24,11 @@ jobs:
packages: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Login to GitHub Container Registry
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: ghcr.io
username: ${{ github.actor }}

295
.github/workflows/docker-build.yml vendored Normal file
View File

@@ -0,0 +1,295 @@
name: Docker Build and Deploy
on:
workflow_call:
secrets:
DOCKER_PASSWORD:
required: true
DOCKER_USERNAME:
required: true
DISCORD_WEBHOOK:
required: false
workflow_dispatch:
inputs:
branch_name:
description: 'Branch name to build Docker images for'
required: false
default: 'develop'
type: string
permissions:
contents: read
env:
IMAGE_NAME: "freqtradeorg/freqtrade"
CACHE_IMAGE: "freqtradeorg/freqtrade_cache"
GHCR_IMAGE_NAME: "ghcr.io/freqtrade/freqtrade"
PI_PLATFORM: "linux/arm/v7"
jobs:
deploy-docker:
name: "Deploy Docker x64 and armv7l"
runs-on: ubuntu-22.04
if: github.repository == 'freqtrade/freqtrade'
steps:
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Set docker tag names
id: tags
uses: ./.github/actions/docker-tags
- name: Login to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Set up QEMU
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
with:
cache-image: false
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 #v3.11.1
- name: Available platforms
run: echo ${PLATFORMS}
env:
PLATFORMS: ${{ steps.buildx.outputs.platforms }}
- name: Build image without cache
if: github.event_name == 'schedule'
env:
TAG: ${{ steps.tags.outputs.TAG }}
run: |
docker build -t ${CACHE_IMAGE}:${TAG} .
- name: Build ARMHF image without cache
if: github.event_name == 'schedule'
env:
TAG_PI: ${{ steps.tags.outputs.TAG_PI }}
CACHE_TAG_PI: ${{ steps.tags.outputs.CACHE_TAG_PI }}
run: |
docker buildx build \
--cache-to=type=registry,ref=${CACHE_TAG_PI} \
-f docker/Dockerfile.armhf \
--platform ${PI_PLATFORM} \
-t ${IMAGE_NAME}:${TAG_PI} \
--push \
--provenance=false \
.
- name: Build image with cache
if: github.event_name != 'schedule'
env:
TAG: ${{ steps.tags.outputs.TAG }}
run: |
docker pull ${IMAGE_NAME}:${TAG} || true
docker build --cache-from ${IMAGE_NAME}:${TAG} -t ${CACHE_IMAGE}:${TAG} .
- name: Build ARMHF image with cache
if: github.event_name != 'schedule'
# disable provenance due to https://github.com/docker/buildx/issues/1509
env:
TAG_PI: ${{ steps.tags.outputs.TAG_PI }}
CACHE_TAG_PI: ${{ steps.tags.outputs.CACHE_TAG_PI }}
run: |
docker buildx build \
--cache-from=type=registry,ref=${CACHE_TAG_PI} \
--cache-to=type=registry,ref=${CACHE_TAG_PI} \
-f docker/Dockerfile.armhf \
--platform ${PI_PLATFORM} \
-t ${IMAGE_NAME}:${TAG_PI} \
--push \
--provenance=false \
.
- name: Run build for AI images
env:
TAG: ${{ steps.tags.outputs.TAG }}
TAG_PLOT: ${{ steps.tags.outputs.TAG_PLOT }}
TAG_FREQAI: ${{ steps.tags.outputs.TAG_FREQAI }}
TAG_FREQAI_RL: ${{ steps.tags.outputs.TAG_FREQAI_RL }}
run: |
docker build --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG} -t ${CACHE_IMAGE}:${TAG_PLOT} -f docker/Dockerfile.plot .
docker build --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG} -t ${CACHE_IMAGE}:${TAG_FREQAI} -f docker/Dockerfile.freqai .
docker build --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG_FREQAI} -t ${CACHE_IMAGE}:${TAG_FREQAI_RL} -f docker/Dockerfile.freqai_rl .
- name: Run backtest in Docker
env:
TAG: ${{ steps.tags.outputs.TAG }}
run: |
docker run --rm -v $(pwd)/tests/testdata/config.tests.json:/freqtrade/config.json:ro -v $(pwd)/tests:/tests ${CACHE_IMAGE}:${TAG} backtesting --datadir /tests/testdata --strategy-path /tests/strategy/strats/ --strategy StrategyTestV3
- name: Push cache images
env:
TAG: ${{ steps.tags.outputs.TAG }}
TAG_PLOT: ${{ steps.tags.outputs.TAG_PLOT }}
TAG_FREQAI: ${{ steps.tags.outputs.TAG_FREQAI }}
TAG_FREQAI_RL: ${{ steps.tags.outputs.TAG_FREQAI_RL }}
run: |
docker push ${CACHE_IMAGE}:$TAG
docker push ${CACHE_IMAGE}:$TAG_PLOT
docker push ${CACHE_IMAGE}:$TAG_FREQAI
docker push ${CACHE_IMAGE}:$TAG_FREQAI_RL
- name: list Images
run: |
docker images
deploy-arm:
name: "Deploy Docker ARM64"
permissions:
packages: write
needs: [ deploy-docker ]
# Only run on 64bit machines
runs-on: [self-hosted, linux, ARM64]
if: github.repository == 'freqtrade/freqtrade'
steps:
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Set docker tag names
id: tags
uses: ./.github/actions/docker-tags
- name: Login to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to github
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build image without cache
if: github.event_name == 'schedule'
env:
TAG_ARM: ${{ steps.tags.outputs.TAG_ARM }}
run: |
docker build -t ${IMAGE_NAME}:${TAG_ARM} .
- name: Build image with cache
if: github.event_name != 'schedule'
env:
TAG_ARM: ${{ steps.tags.outputs.TAG_ARM }}
run: |
docker pull ${IMAGE_NAME}:${TAG_ARM} || true
docker build --cache-from ${IMAGE_NAME}:${TAG_ARM} -t ${CACHE_IMAGE}:${TAG_ARM} .
- name: Run build for AI images
env:
TAG_ARM: ${{ steps.tags.outputs.TAG_ARM }}
TAG_PLOT_ARM: ${{ steps.tags.outputs.TAG_PLOT_ARM }}
TAG_FREQAI_ARM: ${{ steps.tags.outputs.TAG_FREQAI_ARM }}
TAG_FREQAI_RL_ARM: ${{ steps.tags.outputs.TAG_FREQAI_RL_ARM }}
run: |
docker build --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG_ARM} -t ${CACHE_IMAGE}:${TAG_PLOT_ARM} -f docker/Dockerfile.plot .
docker build --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG_ARM} -t ${CACHE_IMAGE}:${TAG_FREQAI_ARM} -f docker/Dockerfile.freqai .
docker build --build-arg sourceimage=${CACHE_IMAGE} --build-arg sourcetag=${TAG_FREQAI_ARM} -t ${CACHE_IMAGE}:${TAG_FREQAI_RL_ARM} -f docker/Dockerfile.freqai_rl .
- name: Run backtest in Docker
env:
TAG_ARM: ${{ steps.tags.outputs.TAG_ARM }}
run: |
docker run --rm -v $(pwd)/tests/testdata/config.tests.json:/freqtrade/config.json:ro -v $(pwd)/tests:/tests ${CACHE_IMAGE}:${TAG_ARM} backtesting --datadir /tests/testdata --strategy-path /tests/strategy/strats/ --strategy StrategyTestV3
- name: Docker images
run: |
docker images
- name: Push cache images
env:
TAG_ARM: ${{ steps.tags.outputs.TAG_ARM }}
TAG_PLOT_ARM: ${{ steps.tags.outputs.TAG_PLOT_ARM }}
TAG_FREQAI_ARM: ${{ steps.tags.outputs.TAG_FREQAI_ARM }}
TAG_FREQAI_RL_ARM: ${{ steps.tags.outputs.TAG_FREQAI_RL_ARM }}
run: |
docker push ${CACHE_IMAGE}:$TAG_PLOT_ARM
docker push ${CACHE_IMAGE}:$TAG_FREQAI_ARM
docker push ${CACHE_IMAGE}:$TAG_FREQAI_RL_ARM
docker push ${CACHE_IMAGE}:$TAG_ARM
- name: Create manifests
env:
TAG_ARM: ${{ steps.tags.outputs.TAG_ARM }}
TAG: ${{ steps.tags.outputs.TAG }}
TAG_PI: ${{ steps.tags.outputs.TAG_PI }}
run: |
docker buildx imagetools create \
--tag ${IMAGE_NAME}:${TAG} \
--tag ${GHCR_IMAGE_NAME}:${TAG} \
${CACHE_IMAGE}:${TAG} ${CACHE_IMAGE}:${TAG_ARM} ${IMAGE_NAME}:${TAG_PI}
- name: Create multiarch image - Plot
env:
TAG_PLOT: ${{ steps.tags.outputs.TAG_PLOT }}
TAG_PLOT_ARM: ${{ steps.tags.outputs.TAG_PLOT_ARM }}
run: |
docker buildx imagetools create \
--tag ${IMAGE_NAME}:${TAG_PLOT} \
--tag ${GHCR_IMAGE_NAME}:${TAG_PLOT} \
${CACHE_IMAGE}:${TAG_PLOT} ${CACHE_IMAGE}:${TAG_PLOT_ARM}
- name: Create multiarch image - FreqAI
env:
TAG_FREQAI: ${{ steps.tags.outputs.TAG_FREQAI }}
TAG_FREQAI_ARM: ${{ steps.tags.outputs.TAG_FREQAI_ARM }}
run: |
docker buildx imagetools create \
--tag ${IMAGE_NAME}:${TAG_FREQAI} \
--tag ${GHCR_IMAGE_NAME}:${TAG_FREQAI} \
${CACHE_IMAGE}:${TAG_FREQAI} ${CACHE_IMAGE}:${TAG_FREQAI_ARM}
- name: Create multiarch image - FreqAI RL
env:
TAG_FREQAI_RL: ${{ steps.tags.outputs.TAG_FREQAI_RL }}
TAG_FREQAI_RL_ARM: ${{ steps.tags.outputs.TAG_FREQAI_RL_ARM }}
TAG_FREQAI_TORCH: ${{ steps.tags.outputs.TAG_FREQAI_TORCH }}
run: |
# Create special Torch tag - which is identical to the RL tag.
docker buildx imagetools create \
--tag ${IMAGE_NAME}:${TAG_FREQAI_RL} \
--tag ${GHCR_IMAGE_NAME}:${TAG_FREQAI_RL} \
--tag ${IMAGE_NAME}:${TAG_FREQAI_TORCH} \
--tag ${GHCR_IMAGE_NAME}:${TAG_FREQAI_TORCH} \
${CACHE_IMAGE}:${TAG_FREQAI_RL} ${CACHE_IMAGE}:${TAG_FREQAI_RL_ARM}
- name: Tag latest
if: env.TAG == 'develop'
env:
TAG: ${{ steps.tags.outputs.TAG }}
run: |
# Tag image as latest
docker buildx imagetools create \
--tag ${GHCR_IMAGE_NAME}:${TAG} \
--tag ${GHCR_IMAGE_NAME}:latest \
${IMAGE_NAME}:${TAG}
- name: Docker images
run: |
docker images
- name: Image cleanup
run: |
docker image prune -a --force --filter "until=24h"
- name: Discord notification
uses: rjstone/discord-webhook-notify@c2597273488aeda841dd1e891321952b51f7996f #v2.2.1
if: always() && ( github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork == false) && (github.event_name != 'schedule')
with:
severity: info
details: Deploy Succeeded!
webhookUrl: ${{ secrets.DISCORD_WEBHOOK }}

View File

@@ -11,12 +11,12 @@ jobs:
dockerHubDescription:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Docker Hub Description
uses: peter-evans/dockerhub-description@432a30c9e07499fd01da9f8a49f0faf9e0ca5b77 # v4.0.2
uses: peter-evans/dockerhub-description@1b9a80c056b620d92cedb9d9b5a223409c68ddfa # v5.0.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

46
.github/workflows/packages-cleanup.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
name: Cleanup Packages
on:
workflow_call:
inputs:
package_name:
description: 'Package name to clean up'
required: false
default: 'freqtrade'
type: string
workflow_dispatch:
inputs:
package_name:
description: 'Package name to clean up'
required: false
default: 'freqtrade'
type: choice
options:
- 'freqtrade'
- 'freqtrade-devcontainer'
delete-untagged:
description: 'Whether to delete only untagged images'
required: false
default: true
type: boolean
env:
PACKAGE_NAME: "freqtrade"
jobs:
deploy-docker:
name: "Delete Packages"
runs-on: ubuntu-24.04
if: github.repository == 'freqtrade/freqtrade'
permissions:
packages: write
steps:
- name: "Delete untagged Package Versions"
uses: actions/delete-package-versions@v5
with:
package-name: ${{ inputs.package_name || env.PACKAGE_NAME }}
package-type: 'container'
min-versions-to-keep: 10
delete-only-untagged-versions: ${{ inputs.delete-untagged || 'true' }}

View File

@@ -13,11 +13,11 @@ jobs:
auto-update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
persist-credentials: false
- uses: actions/setup-python@v5
- uses: actions/setup-python@v6
with:
python-version: "3.12"

29
.github/workflows/zizmor.yml vendored Normal file
View File

@@ -0,0 +1,29 @@
name: GitHub Actions Security Analysis with zizmor 🌈
on:
push:
branches:
- develop
- stable
pull_request:
branches:
- develop
- stable
permissions: {}
jobs:
zizmor:
runs-on: ubuntu-latest
permissions:
security-events: write
# contents: read # only needed for private repos
# actions: read # only needed for private repos
steps:
- name: Checkout repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
persist-credentials: false
- name: Run zizmor 🌈
uses: zizmorcore/zizmor-action@e673c3917a1aef3c65c972347ed84ccd013ecda4 # v0.2.0

View File

@@ -14,28 +14,29 @@ repos:
additional_dependencies: ["python-rapidjson", "jsonschema"]
- repo: https://github.com/pycqa/flake8
rev: "7.2.0"
rev: "7.3.0"
hooks:
- id: flake8
additional_dependencies: [Flake8-pyproject]
# stages: [push]
- repo: https://github.com/pre-commit/mirrors-mypy
rev: "v1.15.0"
rev: "v1.18.2"
hooks:
- id: mypy
exclude: build_helpers
additional_dependencies:
- types-cachetools==5.5.0.20240820
- types-cachetools==6.2.0.20251022
- types-filelock==3.2.7
- types-requests==2.32.0.20250328
- types-requests==2.32.4.20250913
- types-tabulate==0.9.0.20241207
- types-python-dateutil==2.9.0.20241206
- SQLAlchemy==2.0.40
- types-python-dateutil==2.9.0.20251115
- scipy-stubs==1.16.3.0
- SQLAlchemy==2.0.44
# stages: [push]
- repo: https://github.com/pycqa/isort
rev: "6.0.1"
rev: "7.0.0"
hooks:
- id: isort
name: isort (python)
@@ -43,13 +44,13 @@ repos:
- repo: https://github.com/charliermarsh/ruff-pre-commit
# Ruff version.
rev: 'v0.11.7'
rev: 'v0.14.6'
hooks:
- id: ruff
- id: ruff-format
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v5.0.0
rev: v6.0.0
hooks:
- id: end-of-file-fixer
exclude: |
@@ -69,7 +70,7 @@ repos:
)$
- repo: https://github.com/stefmolin/exif-stripper
rev: 0.6.2
rev: 1.2.0
hooks:
- id: strip-exif
@@ -82,6 +83,6 @@ repos:
# Ensure github actions remain safe
- repo: https://github.com/woodruffw/zizmor-pre-commit
rev: v1.6.0
rev: v1.16.3
hooks:
- id: zizmor

View File

@@ -9,8 +9,10 @@ Issues labeled [good first issue](https://github.com/freqtrade/freqtrade/labels/
Few pointers for contributions:
- Create your PR against the `develop` branch, not `stable`.
- New features need to contain unit tests, must conform to PEP8 (max-line-length = 100) and should be documented with the introduction PR.
- PR's can be declared as `[WIP]` - which signify Work in Progress Pull Requests (which are not finished).
- Stick to english in both commit messages, PR descriptions and code comments and variable names.
- New features need to contain unit tests, must pass CI (run pre-commit and pytest to get an early feedback) and should be documented with the introduction PR.
- PR's can be declared as draft - signaling Work in Progress for Pull Requests (which are not finished). We'll still aim to provide feedback on draft PR's in a timely manner.
- If you're using AI for your PR, please both mention it in the PR description and do a thorough review of the generated code. The final responsibility for the code with the PR author, not with the AI.
If you are unsure, discuss the feature on our [discord server](https://discord.gg/p7nuUNVfP7) or in a [issue](https://github.com/freqtrade/freqtrade/issues) before a Pull Request.
@@ -43,43 +45,43 @@ pytest tests/test_<file_name>.py
pytest tests/test_<file_name>.py::test_<method_name>
```
### 2. Test if your code is PEP8 compliant
### 2. Test if your code corresponds to our style guide
#### Run Ruff
We receive a lot of code that fails preliminary CI checks.
To help with that, we encourage contributors to install the git pre-commit hook that will let you know immediately when you try to commit code that fails these checks.
You can manually run pre-commit with `pre-commit run -a` - or install the git hook with `pre-commit install` to have it run automatically on each commit.
Running `pre-commit run -a` will run all checks, including `ruff`, `mypy` and `codespell` (among others).
#### Additional styles applied
- Have docstrings on all public methods
- Use double-quotes for docstrings
- Multiline docstrings should be indented to the level of the first quote
- Doc-strings should follow the reST format (`:param xxx: ...`, `:return: ...`, `:raises KeyError: ...`)
#### Manually run the individual checks
The following sections describe how to run the individual checks that are running as part of the pre-commit hook.
##### Run ruff
Check your code with ruff to ensure that it follows the style guide.
```bash
ruff check .
ruff format .
```
We receive a lot of code that fails the `ruff` checks.
To help with that, we encourage you to install the git pre-commit
hook that will warn you when you try to commit code that fails these checks.
##### Run mypy
you can manually run pre-commit with `pre-commit run -a`.
##### Additional styles applied
* Have docstrings on all public methods
* Use double-quotes for docstrings
* Multiline docstrings should be indented to the level of the first quote
* Doc-strings should follow the reST format (`:param xxx: ...`, `:return: ...`, `:raises KeyError: ... `)
### 3. Test if all type-hints are correct
#### Run mypy
Check your code with mypy to ensure that it follows the type-hinting rules.
``` bash
mypy freqtrade
```
### 4. Ensure formatting is correct
#### Run ruff
``` bash
ruff format .
```
## (Core)-Committer Guide
### Process: Pull Requests
@@ -118,18 +120,18 @@ Exceptions:
- Ensure cross-platform compatibility for every change that's accepted. Windows, Mac & Linux.
- Ensure no malicious code is introduced into the core code.
- Create issues for any major changes and enhancements that you wish to make. Discuss things transparently and get community feedback.
- Keep feature versions as small as possible, preferably one new feature per version.
- Keep feature PR's as small as possible, preferably one new feature per PR.
- Be welcoming to newcomers and encourage diverse new contributors from all backgrounds. See the Python Community Code of Conduct (https://www.python.org/psf/codeofconduct/).
### Becoming a Committer
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. Both 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.
Being a Committer does not grant write permission on `develop` or `stable` for security reasons (Users trust Freqtrade with their Exchange API keys).
Being a Committer does not automatically grant write permission on `develop` or `stable` for security reasons (Users trust Freqtrade with their Exchange API keys).
After being Committer for some time, a Committer may be named Core Committer and given full repository access.

View File

@@ -1,10 +1,10 @@
FROM python:3.12.10-slim-bookworm as base
FROM python:3.13.8-slim-bookworm AS base
# Setup env
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONFAULTHANDLER 1
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONFAULTHANDLER=1
ENV PATH=/home/ftuser/.local/bin:$PATH
ENV FT_APP_ENV="docker"
@@ -21,27 +21,22 @@ RUN mkdir /freqtrade \
WORKDIR /freqtrade
# Install dependencies
FROM base as python-deps
FROM base AS python-deps
RUN apt-get update \
&& apt-get -y install build-essential libssl-dev git libffi-dev libgfortran5 pkg-config cmake gcc \
&& apt-get clean \
&& pip install --upgrade pip wheel
# 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 requirements-hyperopt.txt /freqtrade/
USER ftuser
RUN pip install --user --no-cache-dir "numpy<2.0" \
RUN pip install --user --no-cache-dir "numpy<3.0" \
&& pip install --user --no-cache-dir -r requirements-hyperopt.txt
# Copy dependencies to runtime-image
FROM base as runtime-image
FROM base AS runtime-image
COPY --from=python-deps /usr/local/lib /usr/local/lib
ENV LD_LIBRARY_PATH /usr/local/lib
ENV LD_LIBRARY_PATH=/usr/local/lib
COPY --from=python-deps --chown=ftuser:ftuser /home/ftuser/.local /home/ftuser/.local
@@ -49,7 +44,7 @@ USER ftuser
# Install and execute
COPY --chown=ftuser:ftuser . /freqtrade/
RUN pip install -e . --user --no-cache-dir --no-build-isolation \
RUN pip install -e . --user --no-cache-dir \
&& mkdir /freqtrade/user_data/ \
&& freqtrade install-ui

View File

@@ -1,10 +1,9 @@
# ![freqtrade](https://raw.githubusercontent.com/freqtrade/freqtrade/develop/docs/assets/freqtrade_poweredby.svg)
[![Freqtrade CI](https://github.com/freqtrade/freqtrade/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/freqtrade/freqtrade/actions/)
[![Freqtrade CI](https://github.com/freqtrade/freqtrade/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/freqtrade/freqtrade/actions/workflows/ci.yml)
[![DOI](https://joss.theoj.org/papers/10.21105/joss.04864/status.svg)](https://doi.org/10.21105/joss.04864)
[![Coverage Status](https://coveralls.io/repos/github/freqtrade/freqtrade/badge.svg?branch=develop&service=github)](https://coveralls.io/github/freqtrade/freqtrade?branch=develop)
[![Documentation](https://readthedocs.org/projects/freqtrade/badge/)](https://www.freqtrade.io)
[![Maintainability](https://api.codeclimate.com/v1/badges/5737e6d668200b7518ff/maintainability)](https://codeclimate.com/github/freqtrade/freqtrade/maintainability)
Freqtrade is a free and open source crypto trading bot written in Python. It is designed to support all major exchanges and be controlled via Telegram or webUI. It contains backtesting, plotting and money management tools as well as strategy optimization by machine learning.
@@ -28,8 +27,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] [Bitmart](https://bitmart.com/)
- [X] [BingX](https://bingx.com/invite/0EM9RX)
- [X] [Bitget](https://www.bitget.com/)
- [X] [Bitmart](https://bitmart.com/)
- [X] [Bybit](https://bybit.com/)
- [X] [Gate.io](https://www.gate.io/ref/6266643)
- [X] [HTX](https://www.htx.com/)
@@ -42,6 +42,7 @@ Please read the [exchange specific notes](docs/exchanges.md) to learn about even
### Supported Futures Exchanges (experimental)
- [X] [Binance](https://www.binance.com/)
- [X] [Bitget](https://www.bitget.com/)
- [X] [Gate.io](https://www.gate.io/ref/6266643)
- [X] [Hyperliquid](https://hyperliquid.xyz/) (A decentralized exchange, or DEX)
- [X] [OKX](https://okx.com/)
@@ -64,13 +65,12 @@ Please find the complete documentation on the [freqtrade website](https://www.fr
## Features
- [x] **Based on Python 3.10+**: For botting on any operating system - Windows, macOS and Linux.
- [x] **Based on Python 3.11+**: For botting on any operating system - Windows, macOS and Linux.
- [x] **Persistence**: Persistence is achieved through sqlite.
- [x] **Dry-run**: Run the bot without paying money.
- [x] **Backtesting**: Run a simulation of your buy/sell strategy.
- [x] **Strategy Optimization by machine learning**: Use machine learning to optimize your buy/sell strategy parameters with real exchange data.
- [X] **Adaptive prediction modeling**: Build a smart strategy with FreqAI that self-trains to the market via adaptive machine learning methods. [Learn more](https://www.freqtrade.io/en/stable/freqai/)
- [x] **Edge position sizing** Calculate your win rate, risk reward ratio, the best stoploss and adjust your position size before taking a position for each specific market. [Learn more](https://www.freqtrade.io/en/stable/edge/).
- [x] **Whitelist crypto-currencies**: Select which crypto-currency you want to trade or use dynamic whitelists.
- [x] **Blacklist crypto-currencies**: Select which crypto-currency you want to avoid.
- [x] **Builtin WebUI**: Builtin web UI to manage your bot.
@@ -112,7 +112,6 @@ positional arguments:
backtesting-show Show past Backtest results
backtesting-analysis
Backtest Analysis module.
edge Edge module.
hyperopt Hyperopt module.
hyperopt-list List Hyperopt results
hyperopt-show Show details of Hyperopt results
@@ -148,6 +147,8 @@ Telegram is not mandatory. However, this is a great way to control your bot. Mor
- `/stopentry`: Stop entering new trades.
- `/status <trade_id>|[table]`: Lists all or specific open trades.
- `/profit [<n>]`: Lists cumulative profit from all finished trades, over the last n days.
- `/profit_long [<n>]`: Lists cumulative profit from all finished long trades, over the last n days.
- `/profit_short [<n>]`: Lists cumulative profit from all finished short trades, over the last n days.
- `/forceexit <trade_id>|all`: Instantly exits the given trade (Ignoring `minimum_roi`).
- `/fx <trade_id>|all`: Alias to `/forceexit`
- `/performance`: Show performance of each finished trade grouped by pair
@@ -156,6 +157,7 @@ Telegram is not mandatory. However, this is a great way to control your bot. Mor
- `/help`: Show help message.
- `/version`: Show version.
## Development branches
The project is currently setup in two main branches:
@@ -221,7 +223,7 @@ To run this bot we recommend you a cloud instance with a minimum of:
### Software requirements
- [Python >= 3.10](http://docs.python-guide.org/en/latest/starting/installation/)
- [Python >= 3.11](http://docs.python-guide.org/en/latest/starting/installation/)
- [pip](https://pip.pypa.io/en/stable/installing/)
- [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
- [TA-Lib](https://ta-lib.github.io/ta-lib-python/)

View File

@@ -1,53 +1,71 @@
import subprocess # noqa: S404, RUF100
import sys
from pathlib import Path
subcommands = [
"trade",
"create-userdir",
"new-config",
"show-config",
"new-strategy",
"download-data",
"convert-data",
"convert-trade-data",
"trades-to-ohlcv",
"list-data",
"backtesting",
"backtesting-show",
"backtesting-analysis",
"edge",
"hyperopt",
"hyperopt-list",
"hyperopt-show",
"list-exchanges",
"list-markets",
"list-pairs",
"list-strategies",
"list-hyperoptloss",
"list-freqaimodels",
"list-timeframes",
"show-trades",
"test-pairlist",
"convert-db",
"install-ui",
"plot-dataframe",
"plot-profit",
"webserver",
"strategy-updater",
"lookahead-analysis",
"recursive-analysis",
]
result = subprocess.run(["freqtrade", "--help"], capture_output=True, text=True)
with Path("docs/commands/main.md").open("w") as f:
f.write(f"```\n{result.stdout}\n```\n")
def _write_partial_file(filename: str, content: str):
with Path(filename).open("w") as f:
f.write(f"``` output\n{content}\n```\n")
for command in subcommands:
print(f"Running for {command}")
result = subprocess.run(["freqtrade", command, "--help"], capture_output=True, text=True)
def extract_command_partials():
subcommands = [
"trade",
"create-userdir",
"new-config",
"show-config",
"new-strategy",
"download-data",
"convert-data",
"convert-trade-data",
"trades-to-ohlcv",
"list-data",
"backtesting",
"backtesting-show",
"backtesting-analysis",
"edge",
"hyperopt",
"hyperopt-list",
"hyperopt-show",
"list-exchanges",
"list-markets",
"list-pairs",
"list-strategies",
"list-hyperoptloss",
"list-freqaimodels",
"list-timeframes",
"show-trades",
"test-pairlist",
"convert-db",
"install-ui",
"plot-dataframe",
"plot-profit",
"webserver",
"strategy-updater",
"lookahead-analysis",
"recursive-analysis",
]
with Path(f"docs/commands/{command}.md").open("w") as f:
f.write(f"```\n{result.stdout}\n```\n")
result = subprocess.run(["freqtrade", "--help"], capture_output=True, text=True)
_write_partial_file("docs/commands/main.md", result.stdout)
for command in subcommands:
print(f"Running for {command}")
result = subprocess.run(["freqtrade", command, "--help"], capture_output=True, text=True)
_write_partial_file(f"docs/commands/{command}.md", result.stdout)
print("Running for freqtrade-client")
result_client = subprocess.run(["freqtrade-client", "--show"], capture_output=True, text=True)
_write_partial_file("docs/commands/freqtrade-client.md", result_client.stdout)
if __name__ == "__main__":
if sys.version_info < (3, 13): # pragma: no cover
sys.exit(
"argparse output changed in Python 3.13+. "
"To keep command partials up to date, please run this script with Python 3.13+."
)
extract_command_partials()

View File

@@ -1,35 +0,0 @@
if [ -z "$1" ]; then
INSTALL_LOC=/usr/local
else
INSTALL_LOC=${1}
fi
echo "Installing to ${INSTALL_LOC}"
if [ -n "$2" ] || [ ! -f "${INSTALL_LOC}/lib/libta_lib.a" ]; then
tar zxvf ta-lib-0.4.0-src.tar.gz
cd ta-lib \
&& sed -i.bak "s|0.00000001|0.000000000000000001 |g" src/ta_func/ta_utility.h \
&& echo "Downloading gcc config.guess and config.sub" \
&& curl -s 'https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.guess' -o config.guess \
&& curl -s 'https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.sub' -o config.sub \
&& ./configure --prefix=${INSTALL_LOC}/ \
&& make
if [ $? -ne 0 ]; then
echo "Failed building ta-lib."
cd .. && rm -rf ./ta-lib/
exit 1
fi
if [ -z "$2" ]; then
which sudo && sudo make install || make install
if [ -x "$(command -v apt-get)" ]; then
echo "Updating library path using ldconfig"
sudo ldconfig
fi
else
# Don't install with sudo
make install
fi
cd .. && rm -rf ./ta-lib/
else
echo "TA-lib already installed, skipping installation"
fi

View File

@@ -1,10 +0,0 @@
# vendored Wheels compiled via https://github.com/xmatthias/ta-lib-python/tree/ta_bundled_040
python -m pip install --upgrade pip
python -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')"
pip install -U wheel "numpy<2"
pip install --only-binary ta-lib --find-links=build_helpers\ ta-lib
pip install -r requirements-dev.txt
pip install -e .

View File

@@ -16,10 +16,12 @@ with require_dev.open("r") as rfile:
with require.open("r") as rfile:
requirements.extend(rfile.readlines())
# Extract types only
type_reqs = [
r.strip("\n") for r in requirements if r.startswith("types-") or r.startswith("SQLAlchemy")
]
# Extract relevant types only
supported = ("types-", "SQLAlchemy", "scipy-stubs")
# Find relevant dependencies
# Only keep the first part of the line up to the first space
type_reqs = [r.strip("\n").split()[0] for r in requirements if r.startswith(supported)]
with pre_commit_file.open("r") as file:
f = yaml.load(file, Loader=yaml.SafeLoader)

View File

@@ -1,119 +0,0 @@
#!/bin/sh
# Use BuildKit, otherwise building on ARM fails
export DOCKER_BUILDKIT=1
IMAGE_NAME=freqtradeorg/freqtrade
CACHE_IMAGE=freqtradeorg/freqtrade_cache
GHCR_IMAGE_NAME=ghcr.io/freqtrade/freqtrade
# Replace / with _ to create a valid tag
TAG=$(echo "${BRANCH_NAME}" | sed -e "s/\//_/g")
TAG_PLOT=${TAG}_plot
TAG_FREQAI=${TAG}_freqai
TAG_FREQAI_RL=${TAG_FREQAI}rl
TAG_FREQAI_TORCH=${TAG_FREQAI}torch
TAG_PI="${TAG}_pi"
TAG_ARM=${TAG}_arm
TAG_PLOT_ARM=${TAG_PLOT}_arm
TAG_FREQAI_ARM=${TAG_FREQAI}_arm
TAG_FREQAI_RL_ARM=${TAG_FREQAI_RL}_arm
echo "Running for ${TAG}"
# Add commit and commit_message to docker container
echo "${GITHUB_SHA}" > freqtrade_commit
if [ "${GITHUB_EVENT_NAME}" = "schedule" ]; then
echo "event ${GITHUB_EVENT_NAME}: full rebuild - skipping cache"
# Build regular image
docker build -t freqtrade:${TAG_ARM} .
else
echo "event ${GITHUB_EVENT_NAME}: building with cache"
# Build regular image
docker pull ${IMAGE_NAME}:${TAG_ARM}
docker build --cache-from ${IMAGE_NAME}:${TAG_ARM} -t freqtrade:${TAG_ARM} .
fi
if [ $? -ne 0 ]; then
echo "failed building multiarch images"
return 1
fi
docker build --build-arg sourceimage=freqtrade --build-arg sourcetag=${TAG_ARM} -t freqtrade:${TAG_PLOT_ARM} -f docker/Dockerfile.plot .
docker build --build-arg sourceimage=freqtrade --build-arg sourcetag=${TAG_ARM} -t freqtrade:${TAG_FREQAI_ARM} -f docker/Dockerfile.freqai .
docker build --build-arg sourceimage=freqtrade --build-arg sourcetag=${TAG_FREQAI_ARM} -t freqtrade:${TAG_FREQAI_RL_ARM} -f docker/Dockerfile.freqai_rl .
# Tag image for upload and next build step
docker tag freqtrade:$TAG_ARM ${CACHE_IMAGE}:$TAG_ARM
docker tag freqtrade:$TAG_PLOT_ARM ${CACHE_IMAGE}:$TAG_PLOT_ARM
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)/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"
return 1
fi
docker images
docker push ${CACHE_IMAGE}:$TAG_PLOT_ARM
docker push ${CACHE_IMAGE}:$TAG_FREQAI_ARM
docker push ${CACHE_IMAGE}:$TAG_FREQAI_RL_ARM
docker push ${CACHE_IMAGE}:$TAG_ARM
# Create multi-arch image
# Make sure that all images contained here are pushed to github first.
# Otherwise installation might fail.
echo "create manifests"
docker manifest create ${IMAGE_NAME}:${TAG} ${CACHE_IMAGE}:${TAG} ${CACHE_IMAGE}:${TAG_ARM} ${IMAGE_NAME}:${TAG_PI}
docker manifest push -p ${IMAGE_NAME}:${TAG}
docker manifest create ${IMAGE_NAME}:${TAG_PLOT} ${CACHE_IMAGE}:${TAG_PLOT} ${CACHE_IMAGE}:${TAG_PLOT_ARM}
docker manifest push -p ${IMAGE_NAME}:${TAG_PLOT}
docker manifest create ${IMAGE_NAME}:${TAG_FREQAI} ${CACHE_IMAGE}:${TAG_FREQAI} ${CACHE_IMAGE}:${TAG_FREQAI_ARM}
docker manifest push -p ${IMAGE_NAME}:${TAG_FREQAI}
docker manifest create ${IMAGE_NAME}:${TAG_FREQAI_RL} ${CACHE_IMAGE}:${TAG_FREQAI_RL} ${CACHE_IMAGE}:${TAG_FREQAI_RL_ARM}
docker manifest push -p ${IMAGE_NAME}:${TAG_FREQAI_RL}
# Create special Torch tag - which is identical to the RL tag.
docker manifest create ${IMAGE_NAME}:${TAG_FREQAI_TORCH} ${CACHE_IMAGE}:${TAG_FREQAI_RL} ${CACHE_IMAGE}:${TAG_FREQAI_RL_ARM}
docker manifest push -p ${IMAGE_NAME}:${TAG_FREQAI_TORCH}
# copy images to ghcr.io
alias crane="docker run --rm -i -v $(pwd)/.crane:/home/nonroot/.docker/ gcr.io/go-containerregistry/crane"
mkdir .crane
chmod a+rwx .crane
echo "${GHCR_TOKEN}" | crane auth login ghcr.io -u "${GHCR_USERNAME}" --password-stdin
crane copy ${IMAGE_NAME}:${TAG_FREQAI_RL} ${GHCR_IMAGE_NAME}:${TAG_FREQAI_RL}
crane copy ${IMAGE_NAME}:${TAG_FREQAI_RL} ${GHCR_IMAGE_NAME}:${TAG_FREQAI_TORCH}
crane copy ${IMAGE_NAME}:${TAG_FREQAI} ${GHCR_IMAGE_NAME}:${TAG_FREQAI}
crane copy ${IMAGE_NAME}:${TAG_PLOT} ${GHCR_IMAGE_NAME}:${TAG_PLOT}
crane copy ${IMAGE_NAME}:${TAG} ${GHCR_IMAGE_NAME}:${TAG}
# Tag as latest for develop builds
if [ "${TAG}" = "develop" ]; then
echo 'Tagging image as latest'
docker manifest create ${IMAGE_NAME}:latest ${CACHE_IMAGE}:${TAG_ARM} ${IMAGE_NAME}:${TAG_PI} ${CACHE_IMAGE}:${TAG}
docker manifest push -p ${IMAGE_NAME}:latest
crane copy ${IMAGE_NAME}:latest ${GHCR_IMAGE_NAME}:latest
fi
docker images
rm -rf .crane
# Cleanup old images from arm64 node.
docker image prune -a --force --filter "until=24h"

View File

@@ -1,89 +0,0 @@
#!/bin/sh
# The below assumes a correctly setup docker buildx environment
IMAGE_NAME=freqtradeorg/freqtrade
CACHE_IMAGE=freqtradeorg/freqtrade_cache
# Replace / with _ to create a valid tag
TAG=$(echo "${BRANCH_NAME}" | sed -e "s/\//_/g")
TAG_PLOT=${TAG}_plot
TAG_FREQAI=${TAG}_freqai
TAG_FREQAI_RL=${TAG_FREQAI}rl
TAG_PI="${TAG}_pi"
PI_PLATFORM="linux/arm/v7"
echo "Running for ${TAG}"
CACHE_TAG=${CACHE_IMAGE}:${TAG_PI}_cache
# Add commit and commit_message to docker container
echo "${GITHUB_SHA}" > freqtrade_commit
if [ "${GITHUB_EVENT_NAME}" = "schedule" ]; then
echo "event ${GITHUB_EVENT_NAME}: full rebuild - skipping cache"
# Build regular image
docker build -t freqtrade:${TAG} .
# Build PI image
docker buildx build \
--cache-to=type=registry,ref=${CACHE_TAG} \
-f docker/Dockerfile.armhf \
--platform ${PI_PLATFORM} \
-t ${IMAGE_NAME}:${TAG_PI} \
--push \
--provenance=false \
.
else
echo "event ${GITHUB_EVENT_NAME}: building with cache"
# Build regular image
docker pull ${IMAGE_NAME}:${TAG}
docker build --cache-from ${IMAGE_NAME}:${TAG} -t freqtrade:${TAG} .
# Pull last build to avoid rebuilding the whole image
# docker pull --platform ${PI_PLATFORM} ${IMAGE_NAME}:${TAG}
# disable provenance due to https://github.com/docker/buildx/issues/1509
docker buildx build \
--cache-from=type=registry,ref=${CACHE_TAG} \
--cache-to=type=registry,ref=${CACHE_TAG} \
-f docker/Dockerfile.armhf \
--platform ${PI_PLATFORM} \
-t ${IMAGE_NAME}:${TAG_PI} \
--push \
--provenance=false \
.
fi
if [ $? -ne 0 ]; then
echo "failed building multiarch images"
return 1
fi
# Tag image for upload and next build step
docker tag freqtrade:$TAG ${CACHE_IMAGE}:$TAG
docker build --build-arg sourceimage=freqtrade --build-arg sourcetag=${TAG} -t freqtrade:${TAG_PLOT} -f docker/Dockerfile.plot .
docker build --build-arg sourceimage=freqtrade --build-arg sourcetag=${TAG} -t freqtrade:${TAG_FREQAI} -f docker/Dockerfile.freqai .
docker build --build-arg sourceimage=freqtrade --build-arg sourcetag=${TAG_FREQAI} -t freqtrade:${TAG_FREQAI_RL} -f docker/Dockerfile.freqai_rl .
docker tag freqtrade:$TAG_PLOT ${CACHE_IMAGE}:$TAG_PLOT
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)/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"
return 1
fi
docker images
docker push ${CACHE_IMAGE}:$TAG
docker push ${CACHE_IMAGE}:$TAG_PLOT
docker push ${CACHE_IMAGE}:$TAG_FREQAI
docker push ${CACHE_IMAGE}:$TAG_FREQAI_RL
docker images
if [ $? -ne 0 ]; then
echo "failed building image"
return 1
fi

View File

@@ -180,6 +180,16 @@
"description": "Offset for profit exit. \nUsually specified in the strategy and missing in the configuration.",
"type": "number"
},
"recursive_strategy_search": {
"description": "Enable recursive strategy search.",
"type": "boolean"
},
"user_data_dir": {
"description": "Path to the user data directory."
},
"datadir": {
"description": "Path to the data directory."
},
"fee": {
"description": "Trading fee percentage. Can help to simulate slippage in backtesting",
"type": "number",
@@ -258,10 +268,73 @@
"day",
"week",
"month",
"year"
"year",
"weekday"
]
}
},
"backtest_cache": {
"description": "Load a cached backtest result no older than specified age.",
"type": "string",
"enum": [
"none",
"day",
"week",
"month"
]
},
"hyperopt_path": {
"description": "Specify additional lookup path for Hyperopt Loss functions.",
"type": "string"
},
"epochs": {
"description": "Number of training epochs for Hyperopt.",
"type": "integer",
"minimum": 1
},
"early_stop": {
"description": "Early stop hyperopt if no improvement after <epochs>. Set to 0 to disable.",
"type": "integer",
"minimum": 0
},
"spaces": {
"description": "Hyperopt parameter spaces to optimize. Default is the default set andincludes all spaces except for 'trailing', 'protection', and 'trades'.",
"type": "array",
"items": {
"type": "string"
},
"default": [
"default"
]
},
"analyze_per_epoch": {
"description": "Perform analysis after each epoch in Hyperopt.",
"type": "boolean"
},
"print_all": {
"description": "Print all hyperopt trials, not just the best ones.",
"type": "boolean",
"default": false
},
"hyperopt_jobs": {
"description": "The number of concurrently running jobs for hyperoptimization (hyperopt worker processes). If -1 (default), all CPUs are used, for -2, all CPUs but one are used, etc. If 1 is given, no parallel computing is used.",
"type": "integer",
"default": -1
},
"hyperopt_random_state": {
"description": "Random state for hyperopt trials.",
"type": "integer",
"minimum": 0
},
"hyperopt_min_trades": {
"description": "Minimum number of trades per epoch for hyperopt.",
"type": "integer",
"minimum": 0
},
"hyperopt_loss": {
"description": "The class name of the hyperopt loss function class (IHyperOptLoss). Different functions can generate completely different results, since the target for optimization is different. Built-in Hyperopt-loss-functions are: ShortTradeDurHyperOptLoss, OnlyProfitHyperOptLoss, SharpeHyperOptLoss, SharpeHyperOptLossDaily, SortinoHyperOptLoss, SortinoHyperOptLossDaily, CalmarHyperOptLoss, MaxDrawDownHyperOptLoss, MaxDrawDownRelativeHyperOptLoss, MaxDrawDownPerPairHyperOptLoss, ProfitDrawDownHyperOptLoss, MultiMetricHyperOptLoss",
"type": "string"
},
"bot_name": {
"description": "Name of the trading bot. Passed via API to a client.",
"type": "string"
@@ -538,10 +611,6 @@
"description": "Exchange configuration.",
"$ref": "#/definitions/exchange"
},
"edge": {
"description": "Edge configuration.",
"$ref": "#/definitions/edge"
},
"log_config": {
"description": "Logging configuration.",
"$ref": "#/definitions/logging"
@@ -566,6 +635,7 @@
"pairlists": {
"description": "Configuration for pairlists.",
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
@@ -580,6 +650,7 @@
"RemotePairList",
"MarketCapPairList",
"AgeFilter",
"DelistFilter",
"FullTradesFilter",
"OffsetFilter",
"PerformanceFilter",
@@ -610,11 +681,11 @@
"type": "string"
},
"chat_id": {
"description": "Telegram chat or group ID",
"description": "Telegram chat or group ID. Recommended to be set via environment variable FREQTRADE__TELEGRAM__CHAT_ID",
"type": "string"
},
"topic_id": {
"description": "Telegram topic ID - only applicable for group chats",
"description": "Telegram topic ID - only applicable for group chats. Recommended to be set via environment variable FREQTRADE__TELEGRAM__TOPIC_ID",
"type": "string"
},
"authorized_users": {
@@ -773,9 +844,11 @@
"type": "object",
"properties": {
"enabled": {
"description": "Enable webhook notifications.",
"type": "boolean"
},
"url": {
"description": "Webhook URL. Recommended to be set via environment variable FREQTRADE__WEBHOOK__URL",
"type": "string"
},
"format": {
@@ -853,6 +926,7 @@
"type": "boolean"
},
"webhook_url": {
"description": "Discord webhook URL. Recommended to be set via environment variable FREQTRADE__DISCORD__WEBHOOK_URL",
"type": "string"
},
"exit_fill": {
@@ -1168,28 +1242,35 @@
"description": "Name of the exchange.",
"type": "string"
},
"enable_ws": {
"description": "Enable WebSocket connections to the exchange.",
"type": "boolean",
"default": true
},
"key": {
"description": "API key for the exchange.",
"description": "API key for the exchange. Recommended to be set via environment variable FREQTRADE__EXCHANGE__KEY",
"type": "string",
"default": ""
},
"secret": {
"description": "API secret for the exchange.",
"description": "API secret for the exchange. Recommended to be set via environment variable FREQTRADE__EXCHANGE__SECRET",
"type": "string",
"default": ""
},
"password": {
"description": "Password for the exchange, if required.",
"description": "Password for the exchange, if required. Recommended to be set via environment variable FREQTRADE__EXCHANGE__PASSWORD",
"type": "string",
"default": ""
},
"uid": {
"description": "User ID for the exchange, if required.",
"description": "User ID for the exchange, if required. Recommended to be set via environment variable FREQTRADE__EXCHANGE__UID",
"type": "string"
},
"account_id": {
"description": "Account ID for the exchange, if required. Recommended to be set via environment variable FREQTRADE__EXCHANGE__ACCOUNT_ID",
"type": "string"
},
"wallet_address": {
"description": "Wallet address for the exchange, if required. Usually used by DEX exchanges. Recommended to be set via environment variable FREQTRADE__EXCHANGE__WALLET_ADDRESS",
"type": "string"
},
"private_key": {
"description": "Private key for the exchange, if required. Usually used by DEX exchanges. Recommended to be set via environment variable FREQTRADE__EXCHANGE__PRIVATE_KEY",
"type": "string"
},
"pair_whitelist": {
@@ -1213,6 +1294,11 @@
"type": "boolean",
"default": false
},
"enable_ws": {
"description": "Enable WebSocket connections to the exchange.",
"type": "boolean",
"default": true
},
"unknown_fee_rate": {
"description": "Fee rate for unknown markets.",
"type": "number"
@@ -1232,7 +1318,11 @@
"type": "object"
},
"ccxt_async_config": {
"description": "CCXT asynchronous configuration settings.",
"description": "CCXT asynchronous configuration settings.Usually ccxt_config should be used instead.",
"type": "object"
},
"ccxt_sync_config": {
"description": "CCXT synchronous configuration settings. Usually ccxt_config should be used instead.",
"type": "object"
}
},
@@ -1240,52 +1330,6 @@
"name"
]
},
"edge": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"process_throttle_secs": {
"type": "integer",
"minimum": 600
},
"calculate_since_number_of_days": {
"type": "integer"
},
"allowed_risk": {
"type": "number"
},
"stoploss_range_min": {
"type": "number"
},
"stoploss_range_max": {
"type": "number"
},
"stoploss_range_step": {
"type": "number"
},
"minimum_winrate": {
"type": "number"
},
"minimum_expectancy": {
"type": "number"
},
"min_trade_number": {
"type": "number"
},
"max_trade_duration_minute": {
"type": "integer"
},
"remove_pumps": {
"type": "boolean"
}
},
"required": [
"process_throttle_secs",
"allowed_risk"
]
},
"logging": {
"type": "object",
"properties": {
@@ -1480,6 +1524,11 @@
"type": "boolean",
"default": false
},
"override_exchange_check": {
"description": "Override the exchange check to force FreqAI to use exchanges that may not have enough historic data. Turn this to True if you know your FreqAI model and strategy do not require historical data.",
"type": "boolean",
"default": false
},
"feature_parameters": {
"description": "The parameters used to engineer the feature set",
"type": "object",

View File

@@ -2,7 +2,7 @@
"$schema": "https://schema.freqtrade.io/schema.json",
"max_open_trades": 3,
"stake_currency": "USDT",
"stake_amount": 0.05,
"stake_amount": 30,
"tradable_balance_ratio": 0.99,
"fiat_display_currency": "USD",
"timeframe": "5m",

View File

@@ -25,10 +25,10 @@
"trading_mode": "spot",
"margin_mode": "",
"minimal_roi": {
"40": 0.0,
"30": 0.01,
"20": 0.02,
"0": 0.04
"40": 0.0,
"30": 0.01,
"20": 0.02,
"0": 0.04
},
"stoploss": -0.10,
"unfilledtimeout": {
@@ -47,7 +47,7 @@
"bids_to_ask_delta": 1
}
},
"exit_pricing":{
"exit_pricing": {
"price_side": "same",
"use_order_book": true,
"order_book_top": 1,
@@ -70,18 +70,38 @@
"exit": "GTC"
},
"pairlists": [
{"method": "StaticPairList"},
{"method": "FullTradesFilter"},
{
"method": "StaticPairList"
},
{
"method": "DelistFilter",
"max_days_from_now": 0,
},
{
"method": "FullTradesFilter"
},
{
"method": "VolumePairList",
"number_assets": 20,
"sort_key": "quoteVolume",
"refresh_period": 1800
},
{"method": "AgeFilter", "min_days_listed": 10},
{"method": "PrecisionFilter"},
{"method": "PriceFilter", "low_price_ratio": 0.01, "min_price": 0.00000010},
{"method": "SpreadFilter", "max_spread_ratio": 0.005},
{
"method": "AgeFilter",
"min_days_listed": 10
},
{
"method": "PrecisionFilter"
},
{
"method": "PriceFilter",
"low_price_ratio": 0.01,
"min_price": 0.00000010
},
{
"method": "SpreadFilter",
"max_spread_ratio": 0.005
},
{
"method": "RangeStabilityFilter",
"lookback_days": 10,
@@ -121,20 +141,6 @@
"outdated_offset": 5,
"markets_refresh_interval": 60
},
"edge": {
"enabled": false,
"process_throttle_secs": 3600,
"calculate_since_number_of_days": 7,
"allowed_risk": 0.01,
"stoploss_range_min": -0.01,
"stoploss_range_max": -0.1,
"stoploss_range_step": -0.01,
"minimum_winrate": 0.60,
"minimum_expectancy": 0.20,
"min_trade_number": 10,
"max_trade_duration_minute": 1440,
"remove_pumps": false
},
"telegram": {
"enabled": false,
"token": "your_telegram_token",
@@ -180,12 +186,12 @@
"external_message_consumer": {
"enabled": false,
"producers": [
{
"name": "default",
"host": "127.0.0.2",
"port": 8080,
"ws_token": "secret_ws_t0ken."
}
{
"name": "default",
"host": "127.0.0.2",
"port": 8080,
"ws_token": "secret_ws_t0ken."
}
],
"wait_timeout": 300,
"ping_timeout": 10,
@@ -209,4 +215,4 @@
"reduce_df_footprint": false,
"dataformat_ohlcv": "feather",
"dataformat_trades": "feather"
}
}

View File

@@ -1,10 +1,10 @@
FROM python:3.11.12-slim-bookworm as base
FROM python:3.11.13-slim-bookworm AS base
# Setup env
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONFAULTHANDLER 1
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONFAULTHANDLER=1
ENV PATH=/home/ftuser/.local/bin:$PATH
ENV FT_APP_ENV="docker"
@@ -22,7 +22,7 @@ RUN mkdir /freqtrade \
WORKDIR /freqtrade
# Install dependencies
FROM base as python-deps
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 \
@@ -34,14 +34,13 @@ COPY build_helpers/* /tmp/
# Install dependencies
COPY --chown=ftuser:ftuser requirements.txt /freqtrade/
USER ftuser
RUN pip install --user --no-cache-dir "numpy<2" \
&& pip install --user --no-index --find-links /tmp/ pyarrow TA-Lib \
RUN pip install --user --only-binary=:all: --find-links /tmp/ pyarrow TA-Lib \
&& pip install --user --no-cache-dir -r requirements.txt
# Copy dependencies to runtime-image
FROM base as runtime-image
FROM base AS runtime-image
COPY --from=python-deps /usr/local/lib /usr/local/lib
ENV LD_LIBRARY_PATH /usr/local/lib
ENV LD_LIBRARY_PATH=/usr/local/lib
COPY --from=python-deps --chown=ftuser:ftuser /home/ftuser/.local /home/ftuser/.local
@@ -49,7 +48,7 @@ USER ftuser
# Install and execute
COPY --chown=ftuser:ftuser . /freqtrade/
RUN pip install -e . --user --no-cache-dir --no-build-isolation\
RUN pip install -e . --user --no-cache-dir \
&& mkdir /freqtrade/user_data/ \
&& freqtrade install-ui

View File

@@ -1,10 +0,0 @@
FROM freqtradeorg/freqtrade:develop
# Install dependencies
COPY requirements-dev.txt /freqtrade/
RUN pip install numpy --user --no-cache-dir \
&& pip install -r requirements-dev.txt --user --no-cache-dir
# Empty the ENTRYPOINT to allow all commands
ENTRYPOINT []

View File

@@ -46,29 +46,32 @@ ranging from the simplest (0) to the most detailed per pair, per buy and per sel
More options are available by running with the `-h` option.
### Using export-filename
### Using backtest-filename
Normally, `backtesting-analysis` uses the latest backtest results, but if you wanted to go
back to a previous backtest output, you need to supply the `--export-filename` option.
You can supply the same parameter to `backtest-analysis` with the name of the final backtest
output file. This allows you to keep historical versions of backtest results and re-analyse
them at a later date:
By default, `backtesting-analysis` processes the most recent backtest results in the `user_data/backtest_results` directory.
If you want to analyze results from an earlier backtest, use the `--backtest-filename` option to specify the desired file. This lets you revisit and re-analyze historical backtest outputs at any time by providing the filename of the relevant backtest result:
``` bash
freqtrade backtesting -c <config.json> --timeframe <tf> --strategy <strategy_name> --timerange=<timerange> --export=signals --export-filename=/tmp/mystrat_backtest.json
freqtrade backtesting-analysis -c <config.json> --timeframe <tf> --strategy <strategy_name> --timerange <timerange> --export signals --backtest-filename backtest-result-2025-03-05_20-38-34.zip
```
You should see some output similar to below in the logs with the name of the timestamped
filename that was exported:
```
2022-06-14 16:28:32,698 - freqtrade.misc - INFO - dumping json to "/tmp/mystrat_backtest-2022-06-14_16-28-32.json"
2022-06-14 16:28:32,698 - freqtrade.misc - INFO - dumping json to "mystrat_backtest-2022-06-14_16-28-32.json"
```
You can then use that filename in `backtesting-analysis`:
```
freqtrade backtesting-analysis -c <config.json> --export-filename=/tmp/mystrat_backtest-2022-06-14_16-28-32.json
freqtrade backtesting-analysis -c <config.json> --backtest-filename=mystrat_backtest-2022-06-14_16-28-32.json
```
To use a result from a different results directory, you can use `--backtest-directory` to specify the directory
``` bash
freqtrade backtesting-analysis -c <config.json> --backtest-directory custom_results/ --backtest-filename mystrat_backtest-2022-06-14_16-28-32.json
```
### Tuning the buy tags and sell tags to display

View File

@@ -161,56 +161,53 @@ class MyAwesomeStrategy(IStrategy):
### Overriding Base estimator
You can define your own estimator for Hyperopt by implementing `generate_estimator()` in the Hyperopt subclass.
You can define your own optuna sampler for Hyperopt by implementing `generate_estimator()` in the Hyperopt subclass.
```python
class MyAwesomeStrategy(IStrategy):
class HyperOpt:
def generate_estimator(dimensions: List['Dimension'], **kwargs):
return "RF"
return "NSGAIIISampler"
```
Possible values are either one of "GP", "RF", "ET", "GBRT" (Details can be found in the [scikit-optimize documentation](https://scikit-optimize.github.io/)), or "an instance of a class that inherits from `RegressorMixin` (from sklearn) and where the `predict` method has an optional `return_std` argument, which returns `std(Y | x)` along with `E[Y | x]`".
Possible values are either one of "NSGAIISampler", "TPESampler", "GPSampler", "CmaEsSampler", "NSGAIIISampler", "QMCSampler" (Details can be found in the [optuna-samplers documentation](https://optuna.readthedocs.io/en/stable/reference/samplers/index.html)), or "an instance of a class that inherits from `optuna.samplers.BaseSampler`".
Some research will be necessary to find additional Regressors.
Example for `ExtraTreesRegressor` ("ET") with additional parameters:
```python
class MyAwesomeStrategy(IStrategy):
class HyperOpt:
def generate_estimator(dimensions: List['Dimension'], **kwargs):
from skopt.learning import ExtraTreesRegressor
# Corresponds to "ET" - but allows additional parameters.
return ExtraTreesRegressor(n_estimators=100)
```
The `dimensions` parameter is the list of `skopt.space.Dimension` objects corresponding to the parameters to be optimized. It can be used to create isotropic kernels for the `skopt.learning.GaussianProcessRegressor` estimator. Here's an example:
```python
class MyAwesomeStrategy(IStrategy):
class HyperOpt:
def generate_estimator(dimensions: List['Dimension'], **kwargs):
from skopt.utils import cook_estimator
from skopt.learning.gaussian_process.kernels import (Matern, ConstantKernel)
kernel_bounds = (0.0001, 10000)
kernel = (
ConstantKernel(1.0, kernel_bounds) *
Matern(length_scale=np.ones(len(dimensions)), length_scale_bounds=[kernel_bounds for d in dimensions], nu=2.5)
)
kernel += (
ConstantKernel(1.0, kernel_bounds) *
Matern(length_scale=np.ones(len(dimensions)), length_scale_bounds=[kernel_bounds for d in dimensions], nu=1.5)
)
return cook_estimator("GP", space=dimensions, kernel=kernel, n_restarts_optimizer=2)
```
Some research will be necessary to find additional Samplers (from optunahub) for example.
!!! Note
While custom estimators can be provided, it's up to you as User to do research on possible parameters and analyze / understand which ones should be used.
If you're unsure about this, best use one of the Defaults (`"ET"` has proven to be the most versatile) without further parameters.
If you're unsure about this, best use one of the Defaults (`"NSGAIIISampler"` has proven to be the most versatile) without further parameters.
??? Example "Using `AutoSampler` from Optunahub"
[AutoSampler docs](https://hub.optuna.org/samplers/auto_sampler/)
Install the necessary dependencies
``` bash
pip install optunahub cmaes torch scipy
```
Implement `generate_estimator()` in your strategy
``` python
# ...
from freqtrade.strategy.interface import IStrategy
from typing import List
import optunahub
# ...
class my_strategy(IStrategy):
class HyperOpt:
def generate_estimator(dimensions: List["Dimension"], **kwargs):
if "random_state" in kwargs.keys():
return optunahub.load_module("samplers/auto_sampler").AutoSampler(seed=kwargs["random_state"])
else:
return optunahub.load_module("samplers/auto_sampler").AutoSampler()
```
Obviously the same approach will work for all other Samplers optuna supports.
## Space options

View File

@@ -134,10 +134,10 @@ The following systems have been tested and are known to work with freqtrade:
### PostgreSQL
Installation:
`pip install psycopg2-binary`
`pip install "psycopg[binary]"`
Usage:
`... --db-url postgresql+psycopg2://<username>:<password>@localhost:5432/<database>`
`... --db-url postgresql+psycopg://<username>:<password>@localhost:5432/<database>`
Freqtrade will automatically create the tables necessary upon startup.
@@ -315,7 +315,6 @@ $RepeatedMsgReduction on
The syslog address can be either a Unix domain socket (socket filename) or a UDP socket specification, consisting of IP address and UDP port, separated by the `:` character.
So, the following are the examples of possible addresses:
* `"address": "/dev/log"` -- log to syslog (rsyslog) using the `/dev/log` socket, suitable for most systems.
@@ -323,20 +322,18 @@ So, the following are the examples of possible addresses:
* `"address": "localhost:514"` -- log to local syslog using UDP socket, if it listens on port 514.
* `"address": "<ip>:514"` -- log to remote syslog at IP address and port 514. This may be used on Windows for remote logging to an external syslog server.
??? Info "Deprecated - configure syslog via command line"
`--logfile syslog:<syslog_address>` -- send log messages to `syslog` service using the `<syslog_address>` as the syslog address.
`--logfile syslog:<syslog_address>` -- send log messages to `syslog` service using the `<syslog_address>` as the syslog address.
The syslog address can be either a Unix domain socket (socket filename) or a UDP socket specification, consisting of IP address and UDP port, separated by the `:` character.
The syslog address can be either a Unix domain socket (socket filename) or a UDP socket specification, consisting of IP address and UDP port, separated by the `:` character.
So, the following are the examples of possible usages:
So, the following are the examples of possible usages:
* `--logfile syslog:/dev/log` -- log to syslog (rsyslog) using the `/dev/log` socket, suitable for most systems.
* `--logfile syslog` -- same as above, the shortcut for `/dev/log`.
* `--logfile syslog:/var/run/syslog` -- log to syslog (rsyslog) using the `/var/run/syslog` socket. Use this on MacOS.
* `--logfile syslog:localhost:514` -- log to local syslog using UDP socket, if it listens on port 514.
* `--logfile syslog:<ip>:514` -- log to remote syslog at IP address and port 514. This may be used on Windows for remote logging to an external syslog server.
* `--logfile syslog:/dev/log` -- log to syslog (rsyslog) using the `/dev/log` socket, suitable for most systems.
* `--logfile syslog` -- same as above, the shortcut for `/dev/log`.
* `--logfile syslog:/var/run/syslog` -- log to syslog (rsyslog) using the `/var/run/syslog` socket. Use this on MacOS.
* `--logfile syslog:localhost:514` -- log to local syslog using UDP socket, if it listens on port 514.
* `--logfile syslog:<ip>:514` -- log to remote syslog at IP address and port 514. This may be used on Windows for remote logging to an external syslog server.
### Logging to journald

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

View File

@@ -5,6 +5,8 @@ This page explains how to validate your strategy performance by using Backtestin
Backtesting requires historic data to be available.
To learn how to get data for the pairs and exchange you're interested in, head over to the [Data Downloading](data-download.md) section of the documentation.
Backtesting is also available in [webserver mode](freq-ui.md#backtesting), which allows you to run backtests via the web interface.
## Backtesting command reference
--8<-- "commands/backtesting.md"
@@ -103,12 +105,14 @@ Only use this if you're sure you'll not want to plot or analyze your results fur
---
Exporting trades to file specifying a custom filename
Exporting trades to file specifying a custom directory
```bash
freqtrade backtesting --strategy backtesting --export trades --export-filename=backtest_samplestrategy.json
freqtrade backtesting --strategy backtesting --export trades --backtest-directory=user_data/custom-backtest-results
```
---
Please also read about the [strategy startup period](strategy-customization.md#strategy-startup-period).
---
@@ -156,117 +160,136 @@ The most important in the backtesting is to understand the result.
A backtesting result will look like that:
```
================================================ BACKTESTING REPORT =================================================
| Pair | Trades | 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 | Trades | 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 |
|--------------------+---------+-------+--------+---------|
| trailing_stop_loss | 205 | 150 | 0 | 55 |
| stop_loss | 166 | 0 | 0 | 166 |
| exit_signal | 56 | 36 | 0 | 20 |
| force_exit | 2 | 0 | 0 | 2 |
BACKTESTING REPORT
┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ LTC/USDT:USDT │ 16 │ 1.0 │ 56.176 │ 5.62 │ 16:16:00 │ 16 0 0 100 │
│ ETC/USDT:USDT │ 12 0.72 │ 30.936 │ 3.09 │ 9:55:00 │ 11 0 1 91.7 │
│ ETH/USDT:USDT │ 8 │ 0.66 │ 17.864 │ 1.79 │ 1 day, 13:55:00 7 0 1 87.5 │
│ XLM/USDT:USDT │ 10 │ 0.31 │ 11.054 │ 1.11 │ 12:08:00 │ 9 0 1 90.0 │
│ BTC/USDT:USDT │ 8 │ 0.21 │ 7.289 │ 0.73 3 days, 1:24:00 6 0 2 75.0 │
│ XRP/USDT:USDT │ 9 │ -0.14 │ -7.261 │ -0.73 │ 21:18:00 8 0 1 88.9 │
│ DOT/USDT:USDT │ 6 │ -0.4 │ -9.187 │ -0.92 │ 5:35:00 4 0 2 66.7 │
│ ADA/USDT:USDT │ 8 │ -1.76 │ -52.098 │ -5.21 │ 11:38:00 │ 6 0 2 75.0 │
TOTAL │ 77 │ 0.22 │ 54.774 │ 5.48 │ 22:12:00 │ 67 0 10 87.0
└───────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘
LEFT OPEN TRADES REPORT
┏━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Pair ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ BTC/USDT:USDT │ 1 │ -4.14 │ -9.930 │ -0.99 │ 17 days, 8:00:00 0 0 1 0 │
│ ETC/USDT:USDT │ 1 │ -4.24 │ -15.365 │ -1.54 │ 10:40:00 0 0 1 0 │
│ DOT/USDT:USDT │ 1 │ -5.29 │ -19.125 │ -1.91 │ 11:30:00 │ 0 0 1 0 │
│ TOTAL │ 3 │ -4.56 │ -44.420 │ -4.44 │ 6 days, 2:03:00 0 0 3 0 │
└───────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────────┴────────────────────────┘
ENTER TAG STATS
┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Enter Tag ┃ Entries ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ OTHER │ 77 │ 0.22 │ 54.774 │ 5.48 │ 22:12:00 │ 67 0 10 87.0
│ TOTAL │ 77 │ 0.22 │ 54.774 │ 5.48 │ 22:12:00 │ 67 0 10 87.0 │
└───────────┴─────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┘
EXIT REASON STATS
┏━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Exit Reason ┃ Exits ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ roi │ 67 │ 1.05 │ 242.179 │ 24.22 │ 15:49:00 67 0 0 100 │
│ exit_signal │ 4 │ -2.23 │ -31.217 │ -3.12 │ 1 day, 8:38:00 │ 0 0 4 0 │
│ force_exit │ 3 │ -4.56 │ -44.420 │ -4.44 │ 6 days, 2:03:00 │ 0 0 3 0 │
│ stop_loss │ 3 │ -10.14 │ -111.768 │ -11.18 │ 1 day, 3:05:00 │ 0 0 3 0 │
│ TOTAL │ 77 │ 0.22 │ 54.774 │ 5.48 │ 22:12:00 │ 67 0 10 87.0 │
└─────────────┴───────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘
MIXED TAG STATS
┏━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Enter Tag ┃ Exit Reason ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ │ roi │ 67 │ 1.05 │ 242.179 │ 24.22 │ 15:49:00 │ 67 0 0 100 │
│ │ exit_signal │ 4 │ -2.23 │ -31.217 │ -3.12 │ 1 day, 8:38:00 │ 0 0 4 0 │
│ │ force_exit │ 3 │ -4.56 │ -44.420 │ -4.44 │ 6 days, 2:03:00 │ 0 0 3 0 │
│ │ stop_loss │ 3 │ -10.14 │ -111.768 │ -11.18 │ 1 day, 3:05:00 │ 0 0 3 0 │
│ TOTAL │ │ 77 │ 0.22 │ 54.774 │ 5.48 │ 22:12:00 │ 67 0 10 87.0 │
└───────────┴─────────────┴────────┴──────────────┴─────────────────┴──────────────┴─────────────────┴────────────────────────┘
SUMMARY METRICS
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Metric ┃ Value ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ Backtesting from │ 2025-07-01 00:00:00 │
│ Backtesting to │ 2025-08-01 00:00:00 │
│ Trading Mode │ Isolated Futures │
│ Max open trades │ 3 │
│ │ │
│ Total/Daily Avg Trades │ 77 / 2.48 │
│ Starting balance │ 1000 USDT │
│ Final balance │ 1054.774 USDT │
│ Absolute profit │ 54.774 USDT │
│ Total profit % │ 5.48% │
│ CAGR % │ 87.36% │
│ Sortino │ 2.48 │
│ Sharpe │ 3.75 │
│ Calmar │ 40.99 │
│ SQN │ 0.69 │
│ Profit factor │ 1.29 │
│ Expectancy (Ratio) │ 0.71 (0.04) │
│ Avg. daily profit │ 1.767 USDT │
│ Avg. stake amount │ 345.016 USDT │
│ Total trade volume │ 53316.954 USDT │
│ │ │
│ Long / Short trades │ 67 / 10 │
│ Long / Short profit % │ 8.94% / -3.47% │
│ Long / Short profit USDT │ 89.425 / -34.651 │
│ │ │
│ Best Pair │ LTC/USDT:USDT 5.62% │
│ Worst Pair │ ADA/USDT:USDT -5.21% │
│ Best trade │ ETC/USDT:USDT 2.00% │
│ Worst trade │ ADA/USDT:USDT -10.17% │
│ Best day │ 26.91 USDT │
│ Worst day │ -47.741 USDT │
│ Days win/draw/lose │ 20 / 6 / 5 │
│ Min/Max/Avg. Duration Winners │ 0d 00:35 / 5d 18:15 / 0d 15:49 │
│ Min/Max/Avg. Duration Losers │ 0d 10:40 / 17d 08:00 / 2d 17:00 │
│ Max Consecutive Wins / Loss │ 36 / 3 │
│ Rejected Entry signals │ 258 │
│ Entry/Exit Timeouts │ 0 / 0 │
│ │ │
│ Min balance │ 1003.168 USDT │
│ Max balance │ 1149.421 USDT │
│ Max % of account underwater │ 8.23% │
│ Absolute drawdown │ 94.647 USDT (8.23%) │
│ Drawdown duration │ 9 days 08:50:00 │
│ Profit at drawdown start │ 149.421 USDT │
│ Profit at drawdown end │ 54.774 USDT │
│ Drawdown start │ 2025-07-22 15:10:00 │
│ Drawdown end │ 2025-08-01 00:00:00 │
│ Market change │ 30.51% │
└───────────────────────────────┴─────────────────────────────────┘
================== SUMMARY METRICS ==================
| Metric | Value |
|-----------------------------+---------------------|
| Backtesting from | 2019-01-01 00:00:00 |
| Backtesting to | 2019-05-01 00:00:00 |
| Trading Mode | Spot |
| Max open trades | 3 |
| | |
| Total/Daily Avg Trades | 429 / 3.575 |
| Starting balance | 0.01000000 BTC |
| Final balance | 0.01762792 BTC |
| Absolute profit | 0.00762792 BTC |
| Total profit % | 76.2% |
| CAGR % | 460.87% |
| Sortino | 1.88 |
| Sharpe | 2.97 |
| Calmar | 6.29 |
| SQN | 2.45 |
| Profit factor | 1.11 |
| Expectancy (Ratio) | -0.15 (-0.05) |
| Avg. stake amount | 0.001 BTC |
| Total trade volume | 0.429 BTC |
| | |
| Long / Short | 352 / 77 |
| Total profit Long % | 1250.58% |
| Total profit Short % | -15.02% |
| Absolute profit Long | 0.00838792 BTC |
| Absolute profit Short | -0.00076 BTC |
| | |
| Best Pair | LSK/BTC 26.26% |
| Worst Pair | ZEC/BTC -10.18% |
| Best Trade | LSK/BTC 4.25% |
| Worst Trade | ZEC/BTC -10.25% |
| Best day | 0.00076 BTC |
| Worst day | -0.00036 BTC |
| Days win/draw/lose | 12 / 82 / 25 |
| Avg. Duration Winners | 4:23:00 |
| Avg. Duration Loser | 6:55:00 |
| Max Consecutive Wins / Loss | 3 / 4 |
| Rejected Entry signals | 3089 |
| Entry/Exit Timeouts | 0 / 0 |
| Canceled Trade Entries | 34 |
| Canceled Entry Orders | 123 |
| Replaced Entry Orders | 89 |
| | |
| Min balance | 0.00945123 BTC |
| Max balance | 0.01846651 BTC |
| Max % of account underwater | 25.19% |
| Absolute Drawdown (Account) | 13.33% |
| Drawdown | 0.0015 BTC |
| Drawdown high | 0.0013 BTC |
| Drawdown low | -0.0002 BTC |
| Drawdown Start | 2019-02-15 14:10:00 |
| Drawdown End | 2019-04-11 18:15:00 |
| Market change | -5.88% |
=====================================================
Backtested 2025-07-01 00:00:00 -> 2025-08-01 00:00:00 | Max open trades : 3
STRATEGY SUMMARY
┏━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┓
┃ Strategy ┃ Trades ┃ Avg Profit % ┃ Tot Profit USDT ┃ Tot Profit % ┃ Avg Duration ┃ Win Draw Loss Win% ┃ Drawdown ┃
┡━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━┩
│ SampleStrategy │ 77 │ 0.22 │ 54.774 │ 5.48 │ 22:12:00 │ 67 0 10 87.0 │ 94.647 USDT 8.23% │
└────────────────┴────────┴──────────────┴─────────────────┴──────────────┴──────────────┴────────────────────────┴────────────────────┘
```
### Backtesting report table
The 1st table contains all trades the bot made, including "left open trades".
The first table contains all trades the bot made, including "left open trades".
The last line will give you the overall performance of your strategy,
here:
```
| TOTAL | 429 | 0.36 | 152.41 | 0.00762792 | 76.20 | 4:12:00 | 186 0 243 43.4 |
TOTAL 77 │ 0.22 │ 54.774 │ 5.48 │ 22:12:00 67 0 10 87.0 │
```
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 bot has made `77` trades for an average duration of `22:12:00`, with a performance of `5.48%` (profit), that means it has earned a total of `54.774 USDT` starting with a capital of 1000 USDT.
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%`.
In the above results, we have a starting balance of 1000 USDT and an absolute profit of 54.774 USDT - so the `Tot Profit %` will be `(54.774 / 1000) * 100 ~= 5.48%`.
Your strategy performance is influenced by your entry strategy, your exit strategy, and also by the `minimal_roi` and `stop_loss` you have set.
@@ -282,85 +305,83 @@ On the other hand, if you set a too high `minimal_roi` like `"0": 0.55`
(55%), there is almost no chance that the bot will ever reach this profit.
Hence, keep in mind that your performance is an integral mix of all different elements of the strategy, your configuration, and the crypto-currency pairs you have set up.
### Exit reasons table
The 2nd table contains a recap of exit reasons.
This table can tell you which area needs some additional work (e.g. all or many of the `exit_signal` trades are losses, so you should work on improving the exit signal, or consider disabling it).
### Left open trades table
The 3rd table contains all trades the bot had to `force_exit` at the end of the backtesting period to present you the full picture.
The second table contains all trades the bot had to `force_exit` at the end of the backtesting period to present you the full picture.
This is necessary to simulate realistic behavior, since the backtest period has to end at some point, while realistically, you could leave the bot running forever.
These trades are also included in the first table, but are also shown separately in this table for clarity.
### Enter tag stats table
The third table provides a breakdown of trades by their entry tags (e.g., `enter_long`, `enter_short`), showing the number of entries, average profit percentage, total profit in the stake currency, total profit percentage, average duration, and the number of wins, draws, and losses for each tag.
### Exit reason stats table
The fourth table contains a recap of exit reasons (e.g., `exit_signal`, `roi`, `stop_loss`, `force_exit`). This table can tell you which area needs additional work (e.g., if many `exit_signal` trades are losses, you should work on improving the exit signal or consider disabling it).
### Mixed tag stats table
The fifth table combines entry tags and exit reasons, providing a detailed view of how different entry tags performed with specific exit reasons. This can help identify which combinations of entry and exit strategies are most effective.
### Summary metrics
The last element of the backtest report is the summary metrics table.
It contains some useful key metrics about performance of your strategy on backtesting data.
It contains key metrics about the performance of your strategy on backtesting data.
```
================== SUMMARY METRICS ==================
| Metric | Value |
|-----------------------------+---------------------|
| Backtesting from | 2019-01-01 00:00:00 |
| Backtesting to | 2019-05-01 00:00:00 |
| Trading Mode | Spot |
| Max open trades | 3 |
| | |
| Total/Daily Avg Trades | 429 / 3.575 |
| Starting balance | 0.01000000 BTC |
| Final balance | 0.01762792 BTC |
| Absolute profit | 0.00762792 BTC |
| Total profit % | 76.2% |
| CAGR % | 460.87% |
| Sortino | 1.88 |
| Sharpe | 2.97 |
| Calmar | 6.29 |
| SQN | 2.45 |
| Profit factor | 1.11 |
| Expectancy (Ratio) | -0.15 (-0.05) |
| Avg. stake amount | 0.001 BTC |
| Total trade volume | 0.429 BTC |
| | |
| Long / Short | 352 / 77 |
| Total profit Long % | 1250.58% |
| Total profit Short % | -15.02% |
| Absolute profit Long | 0.00838792 BTC |
| Absolute profit Short | -0.00076 BTC |
| | |
| Best Pair | LSK/BTC 26.26% |
| Worst Pair | ZEC/BTC -10.18% |
| Best Trade | LSK/BTC 4.25% |
| Worst Trade | ZEC/BTC -10.25% |
| Best day | 0.00076 BTC |
| Worst day | -0.00036 BTC |
| Days win/draw/lose | 12 / 82 / 25 |
| Avg. Duration Winners | 4:23:00 |
| Avg. Duration Loser | 6:55:00 |
| Max Consecutive Wins / Loss | 3 / 4 |
| Rejected Entry signals | 3089 |
| Entry/Exit Timeouts | 0 / 0 |
| Canceled Trade Entries | 34 |
| Canceled Entry Orders | 123 |
| Replaced Entry Orders | 89 |
| | |
| Min balance | 0.00945123 BTC |
| Max balance | 0.01846651 BTC |
| Max % of account underwater | 25.19% |
| Absolute Drawdown (Account) | 13.33% |
| Drawdown | 0.0015 BTC |
| Drawdown high | 0.0013 BTC |
| Drawdown low | -0.0002 BTC |
| Drawdown Start | 2019-02-15 14:10:00 |
| Drawdown End | 2019-04-11 18:15:00 |
| Market change | -5.88% |
=====================================================
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
Metric Value
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
Backtesting from 2025-07-01 00:00:00
Backtesting to 2025-08-01 00:00:00
Trading Mode │ Isolated Futures
Max open trades 3
Total/Daily Avg Trades │ 72 / 2.32 │
Starting balance │ 1000 USDT │
Final balance │ 1106.734 USDT
Absolute profit │ 106.734 USDT
Total profit % │ 10.67%
CAGR % │ 230.04%
Sortino │ 4.99
Sharpe │ 8.00
Calmar │ 77.76
SQN │ 1.52
Profit factor │ 1.79
Expectancy (Ratio) │ 1.48 (0.07)
Avg. daily profit │ 3.443 USDT
│ Avg. stake amount │ 363.133 USDT
│ Total trade volume │ 52466.174 USDT
│ │
│ Best Pair │ LTC/USDT:USDT 4.48%
│ Worst Pair │ ADA/USDT:USDT -1.78%
│ Best trade │ ETC/USDT:USDT 2.00%
│ Worst trade │ ADA/USDT:USDT -10.17%
│ Best day │ 23.535 USDT
│ Worst day │ -49.813 USDT │
│ Days win/draw/lose │ 21 / 6 / 4 │
│ Min/Max/Avg. Duration Winners │ 0d 00:35 / 5d 18:15 / 0d 15:30
│ Min/Max/Avg. Duration Losers │ 0d 12:00 / 17d 08:00 / 3d 23:28 │
│ Max Consecutive Wins / Loss │ 58 / 4
│ Rejected Entry signals │ 254
│ Entry/Exit Timeouts │ 0 / 0 │
│ │ │
│ Min balance │ 1003.168 USDT
Max balance │ 1209 USDT │
│ Max % of account underwater │ 8.46%
│ Absolute drawdown │ 102.266 USDT (8.46%)
│ Drawdown duration │ 9 days 08:50:00
│ Profit at drawdown start │ 209 USDT
│ Profit at drawdown end │ 106.734 USDT
│ Drawdown start │ 2025-07-22 15:10:00
│ Drawdown end │ 2025-08-01 00:00:00
Market change │ 30.51% │
└───────────────────────────────┴─────────────────────────────────┘
```
- `Backtesting from` / `Backtesting to`: Backtesting range (usually defined with the `--timerange` option).
- `Max open trades`: Setting of `max_open_trades` (or `--max-open-trades`) - or number of pairs in the pairlist (whatever is lower).
- `Trading Mode`: Spot or Futures trading.
- `Max open trades`: Setting of `max_open_trades` (or `--max-open-trades`) - or number of pairs in the pairlist (whatever is lower).
- `Total/Daily Avg Trades`: Identical to the total trades of the backtest output table / Total trades divided by the backtesting duration in days (this will give you information about how many trades to expect from the strategy).
- `Starting balance`: Start balance - as given by dry-run-wallet (config or command line).
- `Final balance`: Final balance - starting balance + absolute profit.
@@ -371,56 +392,71 @@ It contains some useful key metrics about performance of your strategy on backte
- `Sharpe`: Annualized Sharpe ratio.
- `Calmar`: Annualized Calmar ratio.
- `SQN`: System Quality Number (SQN) - by Van Tharp.
- `Profit factor`: profit / loss.
- `Profit factor`: Sum of the profits of all winning trades divided by the sum of the losses of all losing trades.
- `Expectancy (Ratio)`: Expectancy ratio, which is the average profit or loss per trade. A negative expectancy ratio means that your strategy is not profitable.
- `Avg. daily profit`: Average profit per day, calculated as `(Total Profit / Backtest Days)`.
- `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 `Tot Profit %`.
- `Best Trade` / `Worst Trade`: Biggest single winning trade and biggest single losing trade.
- `Long / Short trades`: Split long/short trade counts (only shown when short trades were made).
- `Long / Short profit %`: Profit percentage for long and short trades (only shown when short trades were made).
- `Long / Short profit USDT`: Profit in stake currency for long and short trades (only shown when short trades were made).
- `Best Pair` / `Worst Pair`: Best and worst performing pair (based on total profit percentage), and its 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).
- `Avg. Duration Winners` / `Avg. Duration Loser`: Average durations for winning and losing trades.
- `Days win/draw/lose`: Winning / Losing days (draws are usually days without closed trades).
- `Min/Max/Avg. Duration Winners`: Minimum, maximum, and average durations for winning trades.
- `Min/Max/Avg. Duration Losers`: Minimum, maximum, and average durations for losing trades.
- `Max Consecutive Wins / Loss`: Maximum consecutive wins/losses in a row.
- `Rejected Entry signals`: Trade entry signals that could not be acted upon due to `max_open_trades` being reached.
- `Entry/Exit Timeouts`: Entry/exit orders which did not fill (only applicable if custom pricing is used).
- `Canceled Trade Entries`: Number of trades that have been canceled by user request via `adjust_entry_price`.
- `Canceled Entry Orders`: Number of entry orders that have been canceled by user request via `adjust_entry_price`.
- `Replaced Entry Orders`: Number of entry orders that have been replaced by user request via `adjust_entry_price`.
- `Min balance` / `Max balance`: Lowest and Highest Wallet balance during the backtest period.
- `Max % of account underwater`: Maximum percentage your account has decreased from the top since the simulation started.
Calculated as the maximum of `(Max Balance - Current Balance) / (Max Balance)`.
- `Absolute Drawdown (Account)`: Maximum Account Drawdown experienced. Calculated as `(Absolute Drawdown) / (DrawdownHigh + startingBalance)`.
- `Drawdown`: Maximum, absolute drawdown experienced. Difference between Drawdown High and Subsequent Low point.
- `Drawdown high` / `Drawdown low`: Profit at the beginning and end of the largest drawdown period. A negative low value means initial capital lost.
- `Drawdown Start` / `Drawdown End`: Start and end datetime for this largest drawdown (can also be visualized via the `plot-dataframe` sub-command).
- `Market change`: Change of the market during the backtest period. Calculated as average of all pairs changes from the first to the last candle using the "close" column.
- `Long / Short`: Split long/short values (Only shown when short trades were made).
- `Total profit Long %` / `Absolute profit Long`: Profit long trades only (Only shown when short trades were made).
- `Total profit Short %` / `Absolute profit Short`: Profit short trades only (Only shown when short trades were made).
- `Max % of account underwater`: Maximum percentage your account has decreased from the top since the simulation started. Calculated as the maximum of `(Max Balance - Current Balance) / (Max Balance)`.
- `Absolute drawdown`: Maximum absolute drawdown experienced, including percentage relative to the account calculated as `(Absolute Drawdown) / (DrawdownHigh + startingBalance)`..
- `Drawdown duration`: Duration of the largest drawdown period.
- `Profit at drawdown start` / `Profit at drawdown end`: Profit at the beginning and end of the largest drawdown period.
- `Drawdown start` / `Drawdown end`: Start and end datetime for the largest drawdown (can also be visualized via the `plot-dataframe` sub-command).
- `Market change`: Change of the market during the backtest period. Calculated as the average of all pairs' changes from the first to the last candle using the "close" column.
### Daily / Weekly / Monthly breakdown
### Daily / Weekly / Monthly / Yearly breakdown
You can get an overview over daily / weekly or monthly results by using the `--breakdown <>` switch.
You can get an overview over daily, weekly, monthly, or yearly results by using the `--breakdown <>` switch.
To visualize daily and weekly breakdowns, you can use the following:
To visualize monthly and yearly breakdowns, you can use the following:
``` bash
freqtrade backtesting --strategy MyAwesomeStrategy --breakdown day week
freqtrade backtesting --strategy MyAwesomeStrategy --breakdown month year
```
``` output
======================== DAY BREAKDOWN =========================
| Day | Tot Profit USDT | Wins | Draws | Losses |
|------------+-------------------+--------+---------+----------|
| 03/07/2021 | 200.0 | 2 | 0 | 0 |
| 04/07/2021 | -50.31 | 0 | 0 | 2 |
| 05/07/2021 | 220.611 | 3 | 2 | 0 |
| 06/07/2021 | 150.974 | 3 | 0 | 2 |
| 07/07/2021 | -70.193 | 1 | 0 | 2 |
| 08/07/2021 | 212.413 | 2 | 0 | 3 |
MONTH BREAKDOWN
┏━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Month ┃ Trades ┃ Tot Profit USDT ┃ Profit Factor ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ 31/01/2020 │ 12 │ 44.451 │ 7.28 │ 10 0 2 83.3 │
│ 29/02/2020 │ 30 │ 45.41 │ 2.36 │ 17 0 13 56.7 │
│ 31/03/2020 │ 35 │ 142.024 2.42 │ 14 0 21 40.0 │
│ 30/04/2020 │ 67 │ -23.692 │ 0.81 │ 24 0 43 35.8 │
...
...
│ 30/04/2025 │ 203 │ -63.43 │ 0.81 │ 73 0 130 36.0 │
│ 31/05/2025 │ 142 │ 104.675 │ 1.28 │ 59 0 83 41.5 │
│ 30/06/2025 │ 177 │ -1.014 │ 1.0 │ 85 0 92 48.0 │
│ 31/07/2025 │ 155 │ 232.762 │ 1.6 │ 63 0 92 40.6 │
└────────────┴────────┴─────────────────┴───────────────┴────────────────────────┘
YEAR BREAKDOWN
┏━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Year ┃ Trades ┃ Tot Profit USDT ┃ Profit Factor ┃ Win Draw Loss Win% ┃
┡━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩
│ 31/12/2020 │ 896 │ 868.889 │ 1.46 │ 351 0 545 39.2 │
│ 31/12/2021 │ 1778 │ 4487.163 │ 1.93 │ 745 0 1033 41.9 │
│ 31/12/2022 │ 1736 │ 938.27 │ 1.27 │ 698 0 1038 40.2 │
│ 31/12/2023 │ 1712 │ 1677.126 │ 1.68 │ 670 0 1042 39.1 │
│ 31/12/2024 │ 1609 │ 3198.424 │ 2.22 │ 773 0 836 48.0 │
│ 31/12/2025 │ 1042 │ 716.174 │ 1.33 │ 420 0 622 40.3 │
└────────────┴────────┴─────────────────┴───────────────┴────────────────────────┘
```
The output will show a table containing the realized absolute Profit (in stake currency) for the given timeperiod, as well as wins, draws and losses that materialized (closed) on this day. Below that there will be a second table for the summarized values of weeks indicated by the date of the closing Sunday. The same would apply to a monthly breakdown indicated by the last day of the month.
The output will display tables containing the realized absolute profit (in stake currency) for the selected period, along with additional statistics such as number of trades, profit factor, and distribution of wins, draws, and losses that materialized (closed) on this period.
### Backtest result caching
@@ -435,15 +471,19 @@ To save time, by default backtest will reuse a cached result from within the las
To further analyze your backtest results, freqtrade will export the trades to file by default.
You can then load the trades to perform further analysis as shown in the [data analysis](strategy_analysis_example.md#load-backtest-results-to-pandas-dataframe) backtesting section.
Also, you can use freqtrade in [webserver mode](freq-ui.md#backtesting) to visualize the backtest results in a web interface.
This mode also allows you to load existing backtest results, so you can analyze them without running the backtest again.
For this mode - `--notes "<notes>"` can be used to add notes to the backtest results, which will be shown in the web interface.
### Backtest output file
The output file freqtrade produces is a zip file containing the following files:
- The backtest report in json format
- the market change data in feather format
- a copy of the strategy file
- a copy of the strategy parameters (if a parameter file was used)
- a sanitized copy of the config file
- The market change data in feather format
- A copy of the strategy file
- A copy of the strategy parameters (if a parameter file was used)
- A sanitized copy of the config file
This will ensure results are reproducible - under the assumption that the same data is available.
@@ -461,7 +501,7 @@ Since backtesting lacks some detailed information about what happens within a ca
- Exit-signal is favored over Stoploss, because exit-signals are assumed to trigger on candle's open
- ROI
- Exits are compared to high - but the ROI value is used (e.g. ROI = 2%, high=5% - so the exit will be at 2%)
- Exits are never "below the candle", so a ROI of 2% may result in a exit at 2.4% if low was at 2.4% profit
- Exits are never "below the candle", so a ROI of 2% may result in an exit at 2.4% if low was at 2.4% profit
- ROI entries which came into effect on the triggering candle (e.g. `120: 0.02` for 1h candles, from `60: 0.05`) will use the candle's open as exit rate
- Force-exits caused by `<N>=-1` ROI entries use low as exit value, unless N falls on the candle open (e.g. `120: -1` for 1h candles)
- Stoploss exits happen exactly at stoploss price, even if low was lower, but the loss will be `2 * fees` higher than the stoploss price
@@ -527,7 +567,7 @@ freqtrade backtesting --strategy AwesomeStrategy --timeframe 1h --timeframe-deta
This will load 1h data (the main timeframe) as well as 5m data (detail timeframe) for the selected timerange.
The strategy will be analyzed with the 1h timeframe.
Candles where activity may take place (there's an active signal, the pair is in a trade) are evaluated at the 5m timeframe.
Candles where activity may take place (there's an active signal, the pair is in a trade) are evaluated at the 5m timeframe.
This will allow for a more accurate simulation of intra-candle movements - and can lead to different results, especially on higher timeframes.
Entries will generally still happen at the main candle's open, however freed trade slots may be freed earlier (if the exit signal is triggered on the 5m candle), which can then be used for a new trade of a different pair.
@@ -590,5 +630,5 @@ Detailed output for all strategies one after the other will be available, so mak
## Next step
Great, your strategy is profitable. What if the bot can give your the optimal parameters to use for your strategy?
Great, your strategy is profitable. What if the bot can give you the optimal parameters to use for your strategy?
Your next step is to learn [how to find optimal parameters with Hyperopt](hyperopt.md)

View File

@@ -1,8 +1,9 @@
```
``` output
usage: freqtrade backtesting-analysis [-h] [-v] [--no-color] [--logfile FILE]
[-V] [-c PATH] [-d PATH]
[--userdir PATH]
[--export-filename PATH]
[--backtest-filename PATH]
[--backtest-directory PATH]
[--analysis-groups {0,1,2,3,4,5} [{0,1,2,3,4,5} ...]]
[--enter-reason-list ENTER_REASON_LIST [ENTER_REASON_LIST ...]]
[--exit-reason-list EXIT_REASON_LIST [EXIT_REASON_LIST ...]]
@@ -14,10 +15,15 @@ usage: freqtrade backtesting-analysis [-h] [-v] [--no-color] [--logfile FILE]
options:
-h, --help show this help message and exit
--export-filename PATH, --backtest-filename PATH
Use this filename for backtest results.Requires
`--export` to be set as well. Example: `--export-filen
ame=user_data/backtest_results/backtest_today.json`
--backtest-filename, --export-filename PATH
Use this filename for backtest results.Example:
`--backtest-
filename=backtest_results_2020-09-27_16-20-48.json`.
Assumes either `user_data/backtest_results/` or
`--export-directory` as base directory.
--backtest-directory, --export-directory PATH
Directory to use for backtest results. Example:
`--export-directory=user_data/backtest_results/`.
--analysis-groups {0,1,2,3,4,5} [{0,1,2,3,4,5} ...]
grouping output - 0: simple wins/losses by enter tag,
1: by enter_tag, 2: by enter_tag and exit_tag, 3: by
@@ -48,21 +54,20 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,39 +1,45 @@
```
``` output
usage: freqtrade backtesting-show [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH]
[--export-filename PATH] [--show-pair-list]
[--breakdown {day,week,month,year} [{day,week,month,year} ...]]
[--backtest-filename PATH]
[--backtest-directory PATH]
[--show-pair-list]
[--breakdown {day,week,month,year,weekday} [{day,week,month,year,weekday} ...]]
options:
-h, --help show this help message and exit
--export-filename PATH, --backtest-filename PATH
Use this filename for backtest results.Requires
`--export` to be set as well. Example: `--export-filen
ame=user_data/backtest_results/backtest_today.json`
--backtest-filename, --export-filename PATH
Use this filename for backtest results.Example:
`--backtest-
filename=backtest_results_2020-09-27_16-20-48.json`.
Assumes either `user_data/backtest_results/` or
`--export-directory` as base directory.
--backtest-directory, --export-directory PATH
Directory to use for backtest results. Example:
`--export-directory=user_data/backtest_results/`.
--show-pair-list Show backtesting pairlist sorted by profit.
--breakdown {day,week,month,year} [{day,week,month,year} ...]
--breakdown {day,week,month,year,weekday} [{day,week,month,year,weekday} ...]
Show backtesting breakdown per [day, week, month,
year].
year, weekday].
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade backtesting [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH] [-s NAME]
[--strategy-path PATH]
@@ -10,18 +10,20 @@ usage: freqtrade backtesting [-h] [-v] [--no-color] [--logfile FILE] [-V]
[--stake-amount STAKE_AMOUNT] [--fee FLOAT]
[-p PAIRS [PAIRS ...]] [--eps]
[--enable-protections]
[--enable-dynamic-pairlist]
[--dry-run-wallet DRY_RUN_WALLET]
[--timeframe-detail TIMEFRAME_DETAIL]
[--strategy-list STRATEGY_LIST [STRATEGY_LIST ...]]
[--export {none,trades,signals}]
[--export-filename PATH]
[--breakdown {day,week,month,year} [{day,week,month,year} ...]]
[--backtest-filename PATH]
[--backtest-directory PATH]
[--breakdown {day,week,month,year,weekday} [{day,week,month,year,weekday} ...]]
[--cache {none,day,week,month}]
[--freqai-backtest-live-models]
[--freqai-backtest-live-models] [--notes TEXT]
options:
-h, --help show this help message and exit
-i TIMEFRAME, --timeframe TIMEFRAME
-i, --timeframe TIMEFRAME
Specify timeframe (`1m`, `5m`, `30m`, `1h`, `1d`).
--timerange TIMERANGE
Specify what timerange of data to use.
@@ -36,17 +38,22 @@ options:
setting.
--fee FLOAT Specify fee ratio. Will be applied twice (on trade
entry and exit).
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
-p, --pairs PAIRS [PAIRS ...]
Limit command to these pairs. Pairs are space-
separated.
--eps, --enable-position-stacking
Allow buying the same pair multiple times (position
stacking).
--enable-protections, --enableprotections
Enable protections for backtesting.Will slow
Enable protections for backtesting. Will slow
backtesting down by a considerable amount, but will
include configured protections
--dry-run-wallet DRY_RUN_WALLET, --starting-balance DRY_RUN_WALLET
--enable-dynamic-pairlist
Enables dynamic pairlist refreshes in backtesting. The
pairlist will be generated for each new candle if
you're using a pairlist handler that supports this
feature, for example, ShuffleFilter.
--dry-run-wallet, --starting-balance DRY_RUN_WALLET
Starting balance, used for backtesting / hyperopt and
dry-runs.
--timeframe-detail TIMEFRAME_DETAIL
@@ -61,43 +68,47 @@ options:
becomes `backtest-data-SampleStrategy.json`
--export {none,trades,signals}
Export backtest results (default: trades).
--export-filename PATH, --backtest-filename PATH
Use this filename for backtest results.Requires
`--export` to be set as well. Example: `--export-filen
ame=user_data/backtest_results/backtest_today.json`
--breakdown {day,week,month,year} [{day,week,month,year} ...]
--backtest-filename, --export-filename PATH
Use this filename for backtest results.Example:
`--backtest-
filename=backtest_results_2020-09-27_16-20-48.json`.
Assumes either `user_data/backtest_results/` or
`--export-directory` as base directory.
--backtest-directory, --export-directory PATH
Directory to use for backtest results. Example:
`--export-directory=user_data/backtest_results/`.
--breakdown {day,week,month,year,weekday} [{day,week,month,year,weekday} ...]
Show backtesting breakdown per [day, week, month,
year].
year, weekday].
--cache {none,day,week,month}
Load a cached backtest result no older than specified
age (default: day).
--freqai-backtest-live-models
Run backtest with ready models.
--notes TEXT Add notes to the backtest results.
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
Strategy arguments:
-s NAME, --strategy NAME
Specify strategy class name which will be used by the
-s, --strategy NAME Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
--recursive-strategy-search

View File

@@ -1,17 +1,17 @@
```
``` output
usage: freqtrade convert-data [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH]
[-p PAIRS [PAIRS ...]] --format-from
{json,jsongz,feather,parquet} --format-to
{json,jsongz,feather,parquet} [--erase]
[--exchange EXCHANGE]
[-p PAIRS [PAIRS ...]]
--format-from {json,jsongz,feather,parquet}
--format-to {json,jsongz,feather,parquet}
[--erase] [--exchange EXCHANGE]
[-t TIMEFRAMES [TIMEFRAMES ...]]
[--trading-mode {spot,margin,futures}]
[--candle-types {spot,futures,mark,index,premiumIndex,funding_rate} [{spot,futures,mark,index,premiumIndex,funding_rate} ...]]
options:
-h, --help show this help message and exit
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
-p, --pairs PAIRS [PAIRS ...]
Limit command to these pairs. Pairs are space-
separated.
--format-from {json,jsongz,feather,parquet}
@@ -21,10 +21,10 @@ options:
--erase Clean all existing data for the selected
exchange/pairs/timeframes.
--exchange EXCHANGE Exchange name. Only valid if no config is provided.
-t TIMEFRAMES [TIMEFRAMES ...], --timeframes TIMEFRAMES [TIMEFRAMES ...]
-t, --timeframes TIMEFRAMES [TIMEFRAMES ...]
Specify which tickers to download. Space-separated
list. Default: `1m 5m`.
--trading-mode {spot,margin,futures}, --tradingmode {spot,margin,futures}
--trading-mode, --tradingmode {spot,margin,futures}
Select Trading mode
--candle-types {spot,futures,mark,index,premiumIndex,funding_rate} [{spot,futures,mark,index,premiumIndex,funding_rate} ...]
Select candle type to convert. Defaults to all
@@ -34,21 +34,20 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade convert-db [-h] [--db-url PATH] [--db-url-from PATH]
options:

View File

@@ -1,14 +1,14 @@
```
``` output
usage: freqtrade convert-trade-data [-h] [-v] [--no-color] [--logfile FILE]
[-V] [-c PATH] [-d PATH] [--userdir PATH]
[-p PAIRS [PAIRS ...]] --format-from
{json,jsongz,feather,parquet,kraken_csv}
[-p PAIRS [PAIRS ...]]
--format-from {json,jsongz,feather,parquet,kraken_csv}
--format-to {json,jsongz,feather,parquet}
[--erase] [--exchange EXCHANGE]
options:
-h, --help show this help message and exit
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
-p, --pairs PAIRS [PAIRS ...]
Limit command to these pairs. Pairs are space-
separated.
--format-from {json,jsongz,feather,parquet,kraken_csv}
@@ -23,21 +23,20 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,9 +1,9 @@
```
``` output
usage: freqtrade create-userdir [-h] [--userdir PATH] [--reset]
options:
-h, --help show this help message and exit
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
--reset Reset sample files to their original state.

View File

@@ -1,9 +1,10 @@
```
``` output
usage: freqtrade download-data [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH]
[-p PAIRS [PAIRS ...]] [--pairs-file FILE]
[--days INT] [--new-pairs-days INT]
[--include-inactive-pairs]
[--no-parallel-download]
[--timerange TIMERANGE] [--dl-trades]
[--convert] [--exchange EXCHANGE]
[-t TIMEFRAMES [TIMEFRAMES ...]] [--erase]
@@ -14,7 +15,7 @@ usage: freqtrade download-data [-h] [-v] [--no-color] [--logfile FILE] [-V]
options:
-h, --help show this help message and exit
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
-p, --pairs PAIRS [PAIRS ...]
Limit command to these pairs. Pairs are space-
separated.
--pairs-file FILE File containing a list of pairs. Takes precedence over
@@ -24,6 +25,9 @@ options:
Default: `None`.
--include-inactive-pairs
Also download data from inactive pairs.
--no-parallel-download
Disable parallel startup download. Only use this if
you experience issues.
--timerange TIMERANGE
Specify what timerange of data to use.
--dl-trades Download trades instead of OHLCV data.
@@ -33,7 +37,7 @@ options:
OHLCV (e.g. Kraken). If not provided, use `trades-to-
ohlcv` to convert trades data to OHLCV data.
--exchange EXCHANGE Exchange name. Only valid if no config is provided.
-t TIMEFRAMES [TIMEFRAMES ...], --timeframes TIMEFRAMES [TIMEFRAMES ...]
-t, --timeframes TIMEFRAMES [TIMEFRAMES ...]
Specify which tickers to download. Space-separated
list. Default: `1m 5m`.
--erase Clean all existing data for the selected
@@ -44,7 +48,7 @@ options:
--data-format-trades {json,jsongz,feather,parquet}
Storage format for downloaded trades data. (default:
`feather`).
--trading-mode {spot,margin,futures}, --tradingmode {spot,margin,futures}
--trading-mode, --tradingmode {spot,margin,futures}
Select Trading mode
--prepend Allow data prepending. (Data-appending is disabled)
@@ -52,21 +56,20 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade edge [-h] [-v] [--no-color] [--logfile FILE] [-V] [-c PATH]
[-d PATH] [--userdir PATH] [-s NAME]
[--strategy-path PATH] [--recursive-strategy-search]
@@ -7,11 +7,10 @@ usage: freqtrade edge [-h] [-v] [--no-color] [--logfile FILE] [-V] [-c PATH]
[--data-format-ohlcv {json,jsongz,feather,parquet}]
[--max-open-trades INT] [--stake-amount STAKE_AMOUNT]
[--fee FLOAT] [-p PAIRS [PAIRS ...]]
[--stoplosses STOPLOSS_RANGE]
options:
-h, --help show this help message and exit
-i TIMEFRAME, --timeframe TIMEFRAME
-i, --timeframe TIMEFRAME
Specify timeframe (`1m`, `5m`, `30m`, `1h`, `1d`).
--timerange TIMERANGE
Specify what timerange of data to use.
@@ -26,39 +25,32 @@ options:
setting.
--fee FLOAT Specify fee ratio. Will be applied twice (on trade
entry and exit).
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
-p, --pairs PAIRS [PAIRS ...]
Limit command to these pairs. Pairs are space-
separated.
--stoplosses STOPLOSS_RANGE
Defines a range of stoploss values against which edge
will assess the strategy. The format is "min,max,step"
(without any space). Example:
`--stoplosses=-0.01,-0.1,-0.001`
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
Strategy arguments:
-s NAME, --strategy NAME
Specify strategy class name which will be used by the
-s, --strategy NAME Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
--recursive-strategy-search

View File

@@ -0,0 +1,197 @@
``` output
Possible commands:
available_pairs
Return available pair (backtest data) based on timeframe / stake_currency selection
:param timeframe: Only pairs with this timeframe available.
:param stake_currency: Only pairs that include this stake currency.
balance
Get the account balance.
blacklist
Show the current blacklist.
:param add: List of coins to add (example: "BNB/BTC")
cancel_open_order
Cancel open order for trade.
:param trade_id: Cancels open orders for this trade.
count
Return the amount of open trades.
daily
Return the profits for each day, and amount of trades.
delete_lock
Delete (disable) lock from the database.
:param lock_id: ID for the lock to delete
delete_trade
Delete trade from the database.
Tries to close open orders. Requires manual handling of this asset on the exchange.
:param trade_id: Deletes the trade with this ID from the database.
entries
Returns List of dicts containing all Trades, based on buy tag performance
Can either be average for all pairs or a specific pair provided
exits
Returns List of dicts containing all Trades, based on exit reason performance
Can either be average for all pairs or a specific pair provided
forcebuy
Buy an asset.
:param pair: Pair to buy (ETH/BTC)
:param price: Optional - price to buy
forceenter
Force entering a trade
:param pair: Pair to buy (ETH/BTC)
:param side: 'long' or 'short'
:param price: Optional - price to buy
:param order_type: Optional keyword argument - 'limit' or 'market'
:param stake_amount: Optional keyword argument - stake amount (as float)
:param leverage: Optional keyword argument - leverage (as float)
:param enter_tag: Optional keyword argument - entry tag (as string, default: 'force_enter')
forceexit
Force-exit a trade.
:param tradeid: Id of the trade (can be received via status command)
:param ordertype: Order type to use (must be market or limit)
:param amount: Amount to sell. Full sell if not given
health
Provides a quick health check of the running bot.
list_custom_data
List custom-data of the running bot for a specific trade.
:param trade_id: ID of the trade
:param key: str, optional - Key of the custom-data
list_open_trades_custom_data
List open trades custom-data of the running bot.
:param key: str, optional - Key of the custom-data
:param limit: limit of trades
:param offset: trades offset for pagination
lock_add
Lock pair
:param pair: Pair to lock
:param until: Lock until this date (format "2024-03-30 16:00:00Z")
:param side: Side to lock (long, short, *)
:param reason: Reason for the lock
locks
Return current locks
logs
Show latest logs.
:param limit: Limits log messages to the last <limit> logs. No limit to get the entire log.
mix_tags
Returns List of dicts containing all Trades, based on entry_tag + exit_reason performance
Can either be average for all pairs or a specific pair provided
monthly
Return the profits for each month, and amount of trades.
pair_candles
Return live dataframe for <pair><timeframe>.
:param pair: Pair to get data for
:param timeframe: Only pairs with this timeframe available.
:param limit: Limit result to the last n candles.
:param columns: List of dataframe columns to return. Empty list will return OHLCV.
pair_history
Return historic, analyzed dataframe
:param pair: Pair to get data for
:param timeframe: Only pairs with this timeframe available.
:param strategy: Strategy to analyze and get values for
:param freqaimodel: FreqAI model to use for analysis
:param timerange: Timerange to get data for (same format than --timerange endpoints)
pairlists_available
Lists available pairlist providers
performance
Return the performance of the different coins.
ping
simple ping
plot_config
Return plot configuration if the strategy defines one.
profit
Return the profit summary.
reload_config
Reload configuration.
show_config
Returns part of the configuration, relevant for trading operations.
start
Start the bot if it's in the stopped state.
stats
Return the stats report (durations, sell-reasons).
status
Get the status of open trades.
stop
Stop the bot. Use `start` to restart.
stopbuy
Stop buying (but handle sells gracefully). Use `reload_config` to reset.
strategies
Lists available strategies
strategy
Get strategy details
:param strategy: Strategy class name
sysinfo
Provides system information (CPU, RAM usage)
trade
Return specific trade
:param trade_id: Specify which trade to get.
trades
Return trades history, sorted by id (or by latest timestamp if order_by_id=False)
:param limit: Limits trades to the X last trades. Max 500 trades.
:param offset: Offset by this amount of trades.
:param order_by_id: Sort trades by id (default: True). If False, sorts by latest timestamp.
version
Return the version of the bot.
weekly
Return the profits for each week, and amount of trades.
whitelist
Show the current whitelist.
```

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade hyperopt-list [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH] [--best]
[--profitable] [--min-trades INT]
@@ -44,21 +44,20 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,16 +1,16 @@
```
``` output
usage: freqtrade hyperopt-show [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH] [--best]
[--profitable] [-n INT] [--print-json]
[--hyperopt-filename FILENAME] [--no-header]
[--disable-param-export]
[--breakdown {day,week,month,year} [{day,week,month,year} ...]]
[--breakdown {day,week,month,year,weekday} [{day,week,month,year,weekday} ...]]
options:
-h, --help show this help message and exit
--best Select only best epochs.
--profitable Select only profitable epochs.
-n INT, --index INT Specify the index of the epoch to print details for.
-n, --index INT Specify the index of the epoch to print details for.
--print-json Print output in JSON format.
--hyperopt-filename FILENAME
Hyperopt result filename.Example: `--hyperopt-
@@ -18,29 +18,28 @@ options:
--no-header Do not print epoch details header.
--disable-param-export
Disable automatic hyperopt parameter export.
--breakdown {day,week,month,year} [{day,week,month,year} ...]
--breakdown {day,week,month,year,weekday} [{day,week,month,year,weekday} ...]
Show backtesting breakdown per [day, week, month,
year].
year, weekday].
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade hyperopt [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH] [-s NAME]
[--strategy-path PATH] [--recursive-strategy-search]
@@ -11,15 +11,15 @@ usage: freqtrade hyperopt [-h] [-v] [--no-color] [--logfile FILE] [-V]
[--eps] [--enable-protections]
[--dry-run-wallet DRY_RUN_WALLET]
[--timeframe-detail TIMEFRAME_DETAIL] [-e INT]
[--spaces {all,buy,sell,roi,stoploss,trailing,protection,trades,default} [{all,buy,sell,roi,stoploss,trailing,protection,trades,default} ...]]
[--print-all] [--print-json] [-j JOBS]
[--random-state INT] [--min-trades INT]
[--hyperopt-loss NAME] [--disable-param-export]
[--ignore-missing-spaces] [--analyze-per-epoch]
[--spaces SPACES [SPACES ...]] [--print-all]
[--print-json] [-j JOBS] [--random-state INT]
[--min-trades INT] [--hyperopt-loss NAME]
[--disable-param-export] [--ignore-missing-spaces]
[--analyze-per-epoch] [--early-stop INT]
options:
-h, --help show this help message and exit
-i TIMEFRAME, --timeframe TIMEFRAME
-i, --timeframe TIMEFRAME
Specify timeframe (`1m`, `5m`, `30m`, `1h`, `1d`).
--timerange TIMERANGE
Specify what timerange of data to use.
@@ -34,7 +34,7 @@ options:
setting.
--fee FLOAT Specify fee ratio. Will be applied twice (on trade
entry and exit).
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
-p, --pairs PAIRS [PAIRS ...]
Limit command to these pairs. Pairs are space-
separated.
--hyperopt-path PATH Specify additional lookup path for Hyperopt Loss
@@ -43,22 +43,26 @@ options:
Allow buying the same pair multiple times (position
stacking).
--enable-protections, --enableprotections
Enable protections for backtesting.Will slow
Enable protections for backtesting. Will slow
backtesting down by a considerable amount, but will
include configured protections
--dry-run-wallet DRY_RUN_WALLET, --starting-balance DRY_RUN_WALLET
--dry-run-wallet, --starting-balance DRY_RUN_WALLET
Starting balance, used for backtesting / hyperopt and
dry-runs.
--timeframe-detail TIMEFRAME_DETAIL
Specify detail timeframe for backtesting (`1m`, `5m`,
`30m`, `1h`, `1d`).
-e INT, --epochs INT Specify number of epochs (default: 100).
--spaces {all,buy,sell,roi,stoploss,trailing,protection,trades,default} [{all,buy,sell,roi,stoploss,trailing,protection,trades,default} ...]
-e, --epochs INT Specify number of epochs (default: 100).
--spaces SPACES [SPACES ...]
Specify which parameters to hyperopt. Space-separated
list.
list. Available builtin options (custom spaces will
not be listed here): default, all, buy, sell, enter,
exit, roi, stoploss, trailing, protection, trades.
Default: `default` - which includes all spaces except
for 'trailing', 'protection', and 'trades'.
--print-all Print all results, not only the best ones.
--print-json Print output in JSON format.
-j JOBS, --job-workers JOBS
-j, --job-workers JOBS
The number of concurrently running jobs for
hyperoptimization (hyperopt worker processes). If -1
(default), all CPUs are used, for -2, all CPUs but one
@@ -68,7 +72,7 @@ options:
reproducible hyperopt results.
--min-trades INT Set minimal desired number of trades for evaluations
in the hyperopt optimization path (default: 1).
--hyperopt-loss NAME, --hyperoptloss NAME
--hyperopt-loss, --hyperoptloss NAME
Specify the class name of the hyperopt loss function
class (IHyperOptLoss). Different functions can
generate completely different results, since the
@@ -87,31 +91,31 @@ options:
Suppress errors for any requested Hyperopt spaces that
do not contain any parameters.
--analyze-per-epoch Run populate_indicators once per epoch.
--early-stop INT Early stop hyperopt if no improvement after (default:
0) epochs.
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
Strategy arguments:
-s NAME, --strategy NAME
Specify strategy class name which will be used by the
-s, --strategy NAME Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
--recursive-strategy-search

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade install-ui [-h] [--erase] [--prerelease]
[--ui-version UI_VERSION]

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade list-data [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH]
[--exchange EXCHANGE]
@@ -18,10 +18,10 @@ options:
Storage format for downloaded trades data. (default:
`feather`).
--trades Work on trades data instead of OHLCV data.
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
-p, --pairs PAIRS [PAIRS ...]
Limit command to these pairs. Pairs are space-
separated.
--trading-mode {spot,margin,futures}, --tradingmode {spot,margin,futures}
--trading-mode, --tradingmode {spot,margin,futures}
Select Trading mode
--show-timerange Show timerange available for available data. (May take
a while to calculate).
@@ -30,21 +30,20 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,31 +1,35 @@
```
``` output
usage: freqtrade list-exchanges [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH] [-1] [-a]
[--trading-mode {spot,margin,futures}]
[--dex-exchanges]
options:
-h, --help show this help message and exit
-1, --one-column Print output in one column.
-a, --all Print all exchanges known to the ccxt library.
--trading-mode, --tradingmode {spot,margin,futures}
Select Trading mode
--dex-exchanges Print only DEX exchanges.
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade list-freqaimodels [-h] [-v] [--no-color] [--logfile FILE]
[-V] [-c PATH] [-d PATH] [--userdir PATH]
[--freqaimodel-path PATH] [-1]
@@ -13,21 +13,20 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade list-hyperoptloss [-h] [-v] [--no-color] [--logfile FILE]
[-V] [-c PATH] [-d PATH] [--userdir PATH]
[--hyperopt-path PATH] [-1]
@@ -13,21 +13,20 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade list-markets [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH]
[--exchange EXCHANGE] [--print-list]
@@ -21,28 +21,27 @@ options:
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}, --tradingmode {spot,margin,futures}
--trading-mode, --tradingmode {spot,margin,futures}
Select Trading mode
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade list-pairs [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH]
[--exchange EXCHANGE] [--print-list]
@@ -21,28 +21,27 @@ options:
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}, --tradingmode {spot,margin,futures}
--trading-mode, --tradingmode {spot,margin,futures}
Select Trading mode
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade list-strategies [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH]
[--strategy-path PATH] [-1]
@@ -16,21 +16,20 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,32 +1,34 @@
```
``` output
usage: freqtrade list-timeframes [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH]
[--exchange EXCHANGE] [-1]
[--trading-mode {spot,margin,futures}]
options:
-h, --help show this help message and exit
--exchange EXCHANGE Exchange name. Only valid if no config is provided.
-1, --one-column Print output in one column.
--trading-mode, --tradingmode {spot,margin,futures}
Select Trading mode
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade lookahead-analysis [-h] [-v] [--no-color] [--logfile FILE]
[-V] [-c PATH] [-d PATH] [--userdir PATH]
[-s NAME] [--strategy-path PATH]
@@ -11,19 +11,22 @@ usage: freqtrade lookahead-analysis [-h] [-v] [--no-color] [--logfile FILE]
[--stake-amount STAKE_AMOUNT]
[--fee FLOAT] [-p PAIRS [PAIRS ...]]
[--enable-protections]
[--enable-dynamic-pairlist]
[--dry-run-wallet DRY_RUN_WALLET]
[--timeframe-detail TIMEFRAME_DETAIL]
[--strategy-list STRATEGY_LIST [STRATEGY_LIST ...]]
[--export {none,trades,signals}]
[--export-filename PATH]
[--backtest-filename PATH]
[--backtest-directory PATH]
[--freqai-backtest-live-models]
[--minimum-trade-amount INT]
[--targeted-trade-amount INT]
[--lookahead-analysis-exportfilename LOOKAHEAD_ANALYSIS_EXPORTFILENAME]
[--allow-limit-orders]
options:
-h, --help show this help message and exit
-i TIMEFRAME, --timeframe TIMEFRAME
-i, --timeframe TIMEFRAME
Specify timeframe (`1m`, `5m`, `30m`, `1h`, `1d`).
--timerange TIMERANGE
Specify what timerange of data to use.
@@ -38,14 +41,19 @@ options:
setting.
--fee FLOAT Specify fee ratio. Will be applied twice (on trade
entry and exit).
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
-p, --pairs PAIRS [PAIRS ...]
Limit command to these pairs. Pairs are space-
separated.
--enable-protections, --enableprotections
Enable protections for backtesting.Will slow
Enable protections for backtesting. Will slow
backtesting down by a considerable amount, but will
include configured protections
--dry-run-wallet DRY_RUN_WALLET, --starting-balance DRY_RUN_WALLET
--enable-dynamic-pairlist
Enables dynamic pairlist refreshes in backtesting. The
pairlist will be generated for each new candle if
you're using a pairlist handler that supports this
feature, for example, ShuffleFilter.
--dry-run-wallet, --starting-balance DRY_RUN_WALLET
Starting balance, used for backtesting / hyperopt and
dry-runs.
--timeframe-detail TIMEFRAME_DETAIL
@@ -60,10 +68,15 @@ options:
becomes `backtest-data-SampleStrategy.json`
--export {none,trades,signals}
Export backtest results (default: trades).
--export-filename PATH, --backtest-filename PATH
Use this filename for backtest results.Requires
`--export` to be set as well. Example: `--export-filen
ame=user_data/backtest_results/backtest_today.json`
--backtest-filename, --export-filename PATH
Use this filename for backtest results.Example:
`--backtest-
filename=backtest_results_2020-09-27_16-20-48.json`.
Assumes either `user_data/backtest_results/` or
`--export-directory` as base directory.
--backtest-directory, --export-directory PATH
Directory to use for backtest results. Example:
`--export-directory=user_data/backtest_results/`.
--freqai-backtest-live-models
Run backtest with ready models.
--minimum-trade-amount INT
@@ -73,31 +86,31 @@ options:
--lookahead-analysis-exportfilename LOOKAHEAD_ANALYSIS_EXPORTFILENAME
Use this csv-filename to store lookahead-analysis-
results
--allow-limit-orders Allow limit orders in lookahead analysis (could cause
false positives in lookahead analysis results).
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
Strategy arguments:
-s NAME, --strategy NAME
Specify strategy class name which will be used by the
-s, --strategy NAME Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
--recursive-strategy-search

View File

@@ -1,7 +1,6 @@
```
``` output
usage: freqtrade [-h] [-V]
{trade,create-userdir,new-config,show-config,new-strategy,download-data,convert-data,convert-trade-data,trades-to-ohlcv,list-data,backtesting,backtesting-show,backtesting-analysis,edge,hyperopt,hyperopt-list,hyperopt-show,list-exchanges,list-markets,list-pairs,list-strategies,list-hyperoptloss,list-freqaimodels,list-timeframes,show-trades,test-pairlist,convert-db,install-ui,plot-dataframe,plot-profit,webserver,strategy-updater,lookahead-analysis,recursive-analysis}
...
{trade,create-userdir,new-config,show-config,new-strategy,download-data,convert-data,convert-trade-data,trades-to-ohlcv,list-data,backtesting,backtesting-show,backtesting-analysis,edge,hyperopt,hyperopt-list,hyperopt-show,list-exchanges,list-markets,list-pairs,list-strategies,list-hyperoptloss,list-freqaimodels,list-timeframes,show-trades,test-pairlist,convert-db,install-ui,plot-dataframe,plot-profit,webserver,strategy-updater,lookahead-analysis,recursive-analysis} ...
Free, open source crypto trading bot
@@ -22,7 +21,7 @@ positional arguments:
backtesting-show Show past Backtest results
backtesting-analysis
Backtest Analysis module.
edge Edge module.
edge Edge module. No longer part of Freqtrade
hyperopt Hyperopt module.
hyperopt-list List Hyperopt results
hyperopt-show Show details of Hyperopt results

View File

@@ -1,12 +1,11 @@
```
``` output
usage: freqtrade new-config [-h] [-c PATH]
options:
-h, --help show this help message 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.
-h, --help show this help message and exit
-c, --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.
```

View File

@@ -1,14 +1,13 @@
```
``` output
usage: freqtrade new-strategy [-h] [--userdir PATH] [-s NAME]
[--strategy-path PATH]
[--template {full,minimal,advanced}]
options:
-h, --help show this help message and exit
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
-s NAME, --strategy NAME
Specify strategy class name which will be used by the
-s, --strategy NAME Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
--template {full,minimal,advanced}

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade plot-dataframe [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH] [-s NAME]
[--strategy-path PATH]
@@ -10,13 +10,13 @@ usage: freqtrade plot-dataframe [-h] [-v] [--no-color] [--logfile FILE] [-V]
[--plot-limit INT] [--db-url PATH]
[--trade-source {DB,file}]
[--export {none,trades,signals}]
[--export-filename PATH]
[--backtest-filename PATH]
[--timerange TIMERANGE] [-i TIMEFRAME]
[--no-trades]
options:
-h, --help show this help message and exit
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
-p, --pairs PAIRS [PAIRS ...]
Limit command to these pairs. Pairs are space-
separated.
--indicators1 INDICATORS1 [INDICATORS1 ...]
@@ -38,13 +38,15 @@ options:
(backtest file)) Default: file
--export {none,trades,signals}
Export backtest results (default: trades).
--export-filename PATH, --backtest-filename PATH
Use this filename for backtest results.Requires
`--export` to be set as well. Example: `--export-filen
ame=user_data/backtest_results/backtest_today.json`
--backtest-filename, --export-filename PATH
Use this filename for backtest results.Example:
`--backtest-
filename=backtest_results_2020-09-27_16-20-48.json`.
Assumes either `user_data/backtest_results/` or
`--export-directory` as base directory.
--timerange TIMERANGE
Specify what timerange of data to use.
-i TIMEFRAME, --timeframe TIMEFRAME
-i, --timeframe TIMEFRAME
Specify timeframe (`1m`, `5m`, `30m`, `1h`, `1d`).
--no-trades Skip using trades from backtesting file and DB.
@@ -52,26 +54,24 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
Strategy arguments:
-s NAME, --strategy NAME
Specify strategy class name which will be used by the
-s, --strategy NAME Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
--recursive-strategy-search

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade plot-profit [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH] [-s NAME]
[--strategy-path PATH]
@@ -6,23 +6,25 @@ usage: freqtrade plot-profit [-h] [-v] [--no-color] [--logfile FILE] [-V]
[--freqaimodel NAME] [--freqaimodel-path PATH]
[-p PAIRS [PAIRS ...]] [--timerange TIMERANGE]
[--export {none,trades,signals}]
[--export-filename PATH] [--db-url PATH]
[--backtest-filename PATH] [--db-url PATH]
[--trade-source {DB,file}] [-i TIMEFRAME]
[--auto-open]
options:
-h, --help show this help message and exit
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
-p, --pairs PAIRS [PAIRS ...]
Limit command to these pairs. Pairs are space-
separated.
--timerange TIMERANGE
Specify what timerange of data to use.
--export {none,trades,signals}
Export backtest results (default: trades).
--export-filename PATH, --backtest-filename PATH
Use this filename for backtest results.Requires
`--export` to be set as well. Example: `--export-filen
ame=user_data/backtest_results/backtest_today.json`
--backtest-filename, --export-filename PATH
Use this filename for backtest results.Example:
`--backtest-
filename=backtest_results_2020-09-27_16-20-48.json`.
Assumes either `user_data/backtest_results/` or
`--export-directory` as base directory.
--db-url PATH Override trades database URL, this is useful in custom
deployments (default: `sqlite:///tradesv3.sqlite` for
Live Run mode, `sqlite:///tradesv3.dryrun.sqlite` for
@@ -30,7 +32,7 @@ options:
--trade-source {DB,file}
Specify the source for trades (Can be DB or file
(backtest file)) Default: file
-i TIMEFRAME, --timeframe TIMEFRAME
-i, --timeframe TIMEFRAME
Specify timeframe (`1m`, `5m`, `30m`, `1h`, `1d`).
--auto-open Automatically open generated plot.
@@ -38,26 +40,24 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
Strategy arguments:
-s NAME, --strategy NAME
Specify strategy class name which will be used by the
-s, --strategy NAME Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
--recursive-strategy-search

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade recursive-analysis [-h] [-v] [--no-color] [--logfile FILE]
[-V] [-c PATH] [-d PATH] [--userdir PATH]
[-s NAME] [--strategy-path PATH]
@@ -12,14 +12,14 @@ usage: freqtrade recursive-analysis [-h] [-v] [--no-color] [--logfile FILE]
options:
-h, --help show this help message and exit
-i TIMEFRAME, --timeframe TIMEFRAME
-i, --timeframe TIMEFRAME
Specify timeframe (`1m`, `5m`, `30m`, `1h`, `1d`).
--timerange TIMERANGE
Specify what timerange of data to use.
--data-format-ohlcv {json,jsongz,feather,parquet}
Storage format for downloaded candle (OHLCV) data.
(default: `feather`).
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
-p, --pairs PAIRS [PAIRS ...]
Limit command to these pairs. Pairs are space-
separated.
--startup-candle STARTUP_CANDLE [STARTUP_CANDLE ...]
@@ -30,26 +30,24 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
Strategy arguments:
-s NAME, --strategy NAME
Specify strategy class name which will be used by the
-s, --strategy NAME Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
--recursive-strategy-search

View File

@@ -1,13 +1,12 @@
```
``` output
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
--userdir, --user-data-dir PATH
Path to userdata directory.
-c PATH, --config PATH
Specify configuration file (default:
-c, --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.

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade show-trades [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH]
[--db-url PATH]
@@ -19,21 +19,20 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade strategy-updater [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH]
[--strategy-list STRATEGY_LIST [STRATEGY_LIST ...]]
@@ -23,21 +23,20 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,15 +1,14 @@
```
``` output
usage: freqtrade test-pairlist [-h] [--userdir PATH] [-v] [-c PATH]
[--quote QUOTE_CURRENCY [QUOTE_CURRENCY ...]]
[-1] [--print-json] [--exchange EXCHANGE]
options:
-h, --help show this help message and exit
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
-c PATH, --config PATH
Specify configuration file (default:
-c, --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.

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade trade [-h] [-v] [--no-color] [--logfile FILE] [-V] [-c PATH]
[-d PATH] [--userdir PATH] [-s NAME]
[--strategy-path PATH] [--recursive-strategy-search]
@@ -15,7 +15,7 @@ options:
--sd-notify Notify systemd service manager.
--dry-run Enforce dry-run for trading (removes Exchange secrets
and simulates trades).
--dry-run-wallet DRY_RUN_WALLET, --starting-balance DRY_RUN_WALLET
--dry-run-wallet, --starting-balance DRY_RUN_WALLET
Starting balance, used for backtesting / hyperopt and
dry-runs.
--fee FLOAT Specify fee ratio. Will be applied twice (on trade
@@ -25,26 +25,24 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
Strategy arguments:
-s NAME, --strategy NAME
Specify strategy class name which will be used by the
-s, --strategy NAME Specify strategy class name which will be used by the
bot.
--strategy-path PATH Specify additional strategy lookup path.
--recursive-strategy-search

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade trades-to-ohlcv [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH]
[-p PAIRS [PAIRS ...]]
@@ -10,10 +10,10 @@ usage: freqtrade trades-to-ohlcv [-h] [-v] [--no-color] [--logfile FILE] [-V]
options:
-h, --help show this help message and exit
-p PAIRS [PAIRS ...], --pairs PAIRS [PAIRS ...]
-p, --pairs PAIRS [PAIRS ...]
Limit command to these pairs. Pairs are space-
separated.
-t TIMEFRAMES [TIMEFRAMES ...], --timeframes TIMEFRAMES [TIMEFRAMES ...]
-t, --timeframes TIMEFRAMES [TIMEFRAMES ...]
Specify which tickers to download. Space-separated
list. Default: `1m 5m`.
--exchange EXCHANGE Exchange name. Only valid if no config is provided.
@@ -23,28 +23,27 @@ options:
--data-format-trades {json,jsongz,feather,parquet}
Storage format for downloaded trades data. (default:
`feather`).
--trading-mode {spot,margin,futures}, --tradingmode {spot,margin,futures}
--trading-mode, --tradingmode {spot,margin,futures}
Select Trading mode
Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -1,4 +1,4 @@
```
``` output
usage: freqtrade webserver [-h] [-v] [--no-color] [--logfile FILE] [-V]
[-c PATH] [-d PATH] [--userdir PATH]
@@ -9,21 +9,20 @@ Common arguments:
-v, --verbose Verbose mode (-vv for more, -vvv to get all messages).
--no-color Disable colorization of hyperopt results. May be
useful if you are redirecting output to a file.
--logfile FILE, --log-file FILE
--logfile, --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:
-c, --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, --data-dir PATH
-d, --datadir, --data-dir PATH
Path to the base directory of the exchange with
historical backtesting data. To see futures data, use
trading-mode additionally.
--userdir PATH, --user-data-dir PATH
--userdir, --user-data-dir PATH
Path to userdata directory.
```

View File

@@ -180,7 +180,7 @@ Mandatory parameters are marked as **Required**, which means that they are requi
| `minimal_roi` | **Required.** Set the threshold as ratio the bot will use to exit a trade. [More information below](#understand-minimal_roi). [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** Dict
| `stoploss` | **Required.** Value as ratio of the stoploss used by the bot. More details in the [stoploss documentation](stoploss.md). [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** Float (as ratio)
| `trailing_stop` | Enables trailing stoploss (based on `stoploss` in either configuration or strategy file). More details in the [stoploss documentation](stoploss.md#trailing-stop-loss). [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** Boolean
| `trailing_stop_positive` | Changes stoploss once profit has been reached. More details in the [stoploss documentation](stoploss.md#trailing-stop-loss-custom-positive-loss). [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** Float
| `trailing_stop_positive` | Changes stoploss once profit has been reached. More details in the [stoploss documentation](stoploss.md#trailing-stop-loss-different-positive-loss). [Strategy Override](#parameters-in-the-strategy). <br> **Datatype:** Float
| `trailing_stop_positive_offset` | Offset on when to apply `trailing_stop_positive`. Percentage value which should be positive. More details in the [stoploss documentation](stoploss.md#trailing-stop-loss-only-once-the-trade-has-reached-a-certain-offset). [Strategy Override](#parameters-in-the-strategy). <br>*Defaults to `0.0` (no offset).* <br> **Datatype:** Float
| `trailing_only_offset_is_reached` | Only apply trailing stoploss when the offset is reached. [stoploss documentation](stoploss.md). [Strategy Override](#parameters-in-the-strategy). <br>*Defaults to `false`.* <br> **Datatype:** Boolean
| `fee` | Fee used during backtesting / dry-runs. Should normally not be configured, which has freqtrade fall back to the exchange default fee. Set as ratio (e.g. 0.001 = 0.1%). Fee is applied twice for each trade, once when buying, once when selling. <br> **Datatype:** Float (as ratio)
@@ -234,7 +234,6 @@ Mandatory parameters are marked as **Required**, which means that they are requi
| `exchange.only_from_ccxt` | Prevent data-download from data.binance.vision. Leaving this as false can greatly speed up downloads, but may be problematic if the site is not available.<br>*Defaults to `false`*<br> **Datatype:** Boolean
| `experimental.block_bad_exchanges` | Block exchanges known to not work with freqtrade. Leave on default unless you want to test if that exchange works now. <br>*Defaults to `true`.* <br> **Datatype:** Boolean
| | **Plugins**
| `edge.*` | Please refer to [edge configuration document](edge.md) for detailed explanation of all possible configuration options.
| `pairlists` | Define one or more pairlists to be used. [More information](plugins.md#pairlists-and-pairlist-handlers). <br>*Defaults to `StaticPairList`.* <br> **Datatype:** List of Dicts
| | **Telegram**
| `telegram.enabled` | Enable the usage of Telegram. <br> **Datatype:** Boolean
@@ -567,14 +566,12 @@ Configuration:
### Understand order_time_in_force
The `order_time_in_force` configuration parameter defines the policy by which the order
is executed on the exchange. Three commonly used time in force are:
The `order_time_in_force` configuration parameter defines the policy by which the order is executed on the exchange.
Commonly used time in force are:
**GTC (Good Till Canceled):**
This is most of the time the default time in force. It means the order will remain
on exchange till it is cancelled by the user. It can be fully or partially fulfilled.
If partially fulfilled, the remaining will stay on the exchange till cancelled.
This is most of the time the default time in force. It means the order will remain on exchange till it is cancelled by the user. It can be fully or partially fulfilled. If partially fulfilled, the remaining will stay on the exchange till cancelled.
**FOK (Fill Or Kill):**
@@ -582,19 +579,22 @@ It means if the order is not executed immediately AND fully then it is cancelled
**IOC (Immediate Or Canceled):**
It is the same as FOK (above) except it can be partially fulfilled. The remaining part
is automatically cancelled by the exchange.
It is the same as FOK (above) except it can be partially fulfilled. The remaining part is automatically cancelled by the exchange.
Not necessarily recommended, as this can lead to partial fills below the minimum trade size.
**PO (Post only):**
Post only order. The order is either placed as a maker order, or it is canceled.
This means the order must be placed on orderbook for at least time in an unfilled state.
Please check the [Exchange documentation](exchanges.md) for supported time in force values for your exchange.
#### time_in_force config
The `order_time_in_force` parameter contains a dict with entry and exit time in force policy values.
This can be set in the configuration file or in the strategy.
Values set in the configuration file overwrites values set in the strategy.
Values set in the configuration file overwrite values from in the strategy, following the regular [precedence rules](#configuration-option-prevalence).
The possible values are: `GTC` (default), `FOK` or `IOC`.
@@ -606,9 +606,9 @@ The possible values are: `GTC` (default), `FOK` or `IOC`.
```
!!! Warning
This is ongoing work. For now, it is supported only for binance, gate and kucoin.
Please don't change the default value unless you know what you are doing and have researched the impact of using different values for your particular exchange.
### Fiat conversion
Freqtrade uses the Coingecko API to convert the coin value to it's corresponding fiat value for the Telegram reports.
@@ -672,7 +672,7 @@ Should you experience problems you suspect are caused by websockets, you can dis
}
```
Should you be required to use a proxy, please refer to the [proxy section](#using-proxy-with-freqtrade) for more information.
Should you be required to use a proxy, please refer to the [proxy section](#using-a-proxy-with-freqtrade) for more information.
!!! Info "Rollout"
We're implementing this out slowly, ensuring stability of your bots.

View File

@@ -93,3 +93,8 @@ Please use the [`convert-data` subcommand](data-download.md#sub-command-convert-
Configuring syslog and journald via `--logfile systemd` and `--logfile journald` respectively has been deprecated in 2025.3.
Please use configuration based [log setup](advanced-setup.md#advanced-logging) instead.
## Removal of the edge module
The edge module has been deprecated in 2023.9 and removed in 2025.6.
All functionalities of edge have been removed, and having edge configured will result in an error.

View File

@@ -304,6 +304,13 @@ The `IProtection` parent class provides a helper method for this in `calculate_l
Most exchanges supported by CCXT should work out of the box.
If you need to implement a specific exchange class, these are found in the `freqtrade/exchange` source folder. You'll also need to add the import to `freqtrade/exchange/__init__.py` to make the loading logic aware of the new exchange.
We recommend looking at existing exchange implementations to get an idea of what might be required.
!!! Warning
Implementing and testing an exchange can be a lot of trial and error, so please bear this in mind.
You should also have some development experience, as this is not a beginner task.
To quickly test the public endpoints of an exchange, add a configuration for your exchange to `tests/exchange_online/conftest.py` and run these tests with `pytest --longrun tests/exchange_online/test_ccxt_compat.py`.
Completing these tests successfully a good basis point (it's a requirement, actually), however these won't guarantee correct exchange functioning, as this only tests public endpoints, but no private endpoint (like generate order or similar).
@@ -401,6 +408,22 @@ jupyter nbconvert --ClearOutputPreprocessor.enabled=True --inplace freqtrade/tem
jupyter nbconvert --ClearOutputPreprocessor.enabled=True --to markdown freqtrade/templates/strategy_analysis_example.ipynb --stdout > docs/strategy_analysis_example.md
```
## Backtest documentation results
To generate backtest outputs, please use the following commands:
``` bash
# Assume a dedicated user directory for this output
freqtrade create-userdir --userdir user_data_bttest/
# set can_short = True
sed -i "s/can_short: bool = False/can_short: bool = True/" user_data_bttest/strategies/sample_strategy.py
freqtrade download-data --timerange 20250625-20250801 --config tests/testdata/config.tests.usdt.json --userdir user_data_bttest/ -t 5m
freqtrade backtesting --config tests/testdata/config.tests.usdt.json -s SampleStrategy --userdir user_data_bttest/ --cache none --timerange 20250701-20250801
```
## Continuous integration
This documents some decisions taken for the CI Pipeline.
@@ -411,7 +434,6 @@ This documents some decisions taken for the CI Pipeline.
* Docker images contain a file, `/freqtrade/freqtrade_commit` containing the commit this image is based of.
* Full docker image rebuilds are run once a week via schedule.
* Deployments run on ubuntu.
* ta-lib binaries are contained in the build_helpers directory to avoid fails related to external unavailability.
* All tests must pass for a PR to be merged to `stable` or `develop`.
## Creating a release

View File

@@ -1,300 +0,0 @@
# Edge positioning
The `Edge Positioning` module uses probability to calculate your win rate and risk reward ratio. It will use these statistics to control your strategy trade entry points, position size and, stoploss.
!!! Danger "Deprecated functionality"
`Edge positioning` (or short Edge) is currently in maintenance mode only (we keep existing functionality alive) and should be considered as deprecated.
It will currently not receive new features until either someone stepped forward to take up ownership of that module - or we'll decide to remove edge from freqtrade.
!!! Warning
When using `Edge positioning` with a dynamic whitelist (VolumePairList), make sure to also use `AgeFilter` and set it to at least `calculate_since_number_of_days` to avoid problems with missing data.
!!! Note
`Edge Positioning` only considers *its own* buy/sell/stoploss signals. It ignores the stoploss, trailing stoploss, and ROI settings in the strategy configuration file.
`Edge Positioning` improves the performance of some trading strategies and *decreases* the performance of others.
## Introduction
Trading strategies are not perfect. They are frameworks that are susceptible to the market and its indicators. Because the market is not at all predictable, sometimes a strategy will win and sometimes the same strategy will lose.
To obtain an edge in the market, a strategy has to make more money than it loses. Making money in trading is not only about *how often* the strategy makes or loses money.
!!! tip "It doesn't matter how often, but how much!"
A bad strategy might make 1 penny in *ten* transactions but lose 1 dollar in *one* transaction. If one only checks the number of winning trades, it would be misleading to think that the strategy is actually making a profit.
The Edge Positioning module seeks to improve a strategy's winning probability and the money that the strategy will make *on the long run*.
We raise the following question[^1]:
!!! Question "Which trade is a better option?"
a) A trade with 80% of chance of losing 100\$ and 20% chance of winning 200\$<br/>
b) A trade with 100% of chance of losing 30\$
???+ Info "Answer"
The expected value of *a)* is smaller than the expected value of *b)*.<br/>
Hence, *b*) represents a smaller loss in the long run.<br/>
However, the answer is: *it depends*
Another way to look at it is to ask a similar question:
!!! Question "Which trade is a better option?"
a) A trade with 80% of chance of winning 100\$ and 20% chance of losing 200\$<br/>
b) A trade with 100% of chance of winning 30\$
Edge positioning tries to answer the hard questions about risk/reward and position size automatically, seeking to minimizes the chances of losing of a given strategy.
### Trading, winning and losing
Let's call $o$ the return of a single transaction $o$ where $o \in \mathbb{R}$. The collection $O = \{o_1, o_2, ..., o_N\}$ is the set of all returns of transactions made during a trading session. We say that $N$ is the cardinality of $O$, or, in lay terms, it is the number of transactions made in a trading session.
!!! Example
In a session where a strategy made three transactions we can say that $O = \{3.5, -1, 15\}$. That means that $N = 3$ and $o_1 = 3.5$, $o_2 = -1$, $o_3 = 15$.
A winning trade is a trade where a strategy *made* money. Making money means that the strategy closed the position in a value that returned a profit, after all deducted fees. Formally, a winning trade will have a return $o_i > 0$. Similarly, a losing trade will have a return $o_j \leq 0$. With that, we can discover the set of all winning trades, $T_{win}$, as follows:
$$ T_{win} = \{ o \in O | o > 0 \} $$
Similarly, we can discover the set of losing trades $T_{lose}$ as follows:
$$ T_{lose} = \{o \in O | o \leq 0\} $$
!!! Example
In a section where a strategy made four transactions $O = \{3.5, -1, 15, 0\}$:<br>
$T_{win} = \{3.5, 15\}$<br>
$T_{lose} = \{-1, 0\}$<br>
### Win Rate and Lose Rate
The win rate $W$ is the proportion of winning trades with respect to all the trades made by a strategy. We use the following function to compute the win rate:
$$W = \frac{|T_{win}|}{N}$$
Where $W$ is the win rate, $N$ is the number of trades and, $T_{win}$ is the set of all trades where the strategy made money.
Similarly, we can compute the rate of losing trades:
$$
L = \frac{|T_{lose}|}{N}
$$
Where $L$ is the lose rate, $N$ is the amount of trades made and, $T_{lose}$ is the set of all trades where the strategy lost money. Note that the above formula is the same as calculating $L = 1 W$ or $W = 1 L$
### Risk Reward Ratio
Risk Reward Ratio ($R$) is a formula used to measure the expected gains of a given investment against the risk of loss. It is basically what you potentially win divided by what you potentially lose. Formally:
$$ R = \frac{\text{potential_profit}}{\text{potential_loss}} $$
???+ Example "Worked example of $R$ calculation"
Let's say that you think that the price of *stonecoin* today is 10.0\$. You believe that, because they will start mining stonecoin, it will go up to 15.0\$ tomorrow. There is the risk that the stone is too hard, and the GPUs can't mine it, so the price might go to 0\$ tomorrow. You are planning to invest 100\$, which will give you 10 shares (100 / 10).
Your potential profit is calculated as:
$\begin{aligned}
\text{potential_profit} &= (\text{potential_price} - \text{entry_price}) * \frac{\text{investment}}{\text{entry_price}} \\
&= (15 - 10) * (100 / 10) \\
&= 50
\end{aligned}$
Since the price might go to 0\$, the 100\$ dollars invested could turn into 0.
We do however use a stoploss of 15% - so in the worst case, we'll sell 15% below entry price (or at 8.5$\).
$\begin{aligned}
\text{potential_loss} &= (\text{entry_price} - \text{stoploss}) * \frac{\text{investment}}{\text{entry_price}} \\
&= (10 - 8.5) * (100 / 10)\\
&= 15
\end{aligned}$
We can compute the Risk Reward Ratio as follows:
$\begin{aligned}
R &= \frac{\text{potential_profit}}{\text{potential_loss}}\\
&= \frac{50}{15}\\
&= 3.33
\end{aligned}$<br>
What it effectively means is that the strategy have the potential to make 3.33\$ for each 1\$ invested.
On a long horizon, that is, on many trades, we can calculate the risk reward by dividing the strategy' average profit on winning trades by the strategy' average loss on losing trades. We can calculate the average profit, $\mu_{win}$, as follows:
$$ \text{average_profit} = \mu_{win} = \frac{\text{sum_of_profits}}{\text{count_winning_trades}} = \frac{\sum^{o \in T_{win}} o}{|T_{win}|} $$
Similarly, we can calculate the average loss, $\mu_{lose}$, as follows:
$$ \text{average_loss} = \mu_{lose} = \frac{\text{sum_of_losses}}{\text{count_losing_trades}} = \frac{\sum^{o \in T_{lose}} o}{|T_{lose}|} $$
Finally, we can calculate the Risk Reward ratio, $R$, as follows:
$$ R = \frac{\text{average_profit}}{\text{average_loss}} = \frac{\mu_{win}}{\mu_{lose}}\\ $$
???+ Example "Worked example of $R$ calculation using mean profit/loss"
Let's say the strategy that we are using makes an average win $\mu_{win} = 2.06$ and an average loss $\mu_{loss} = 4.11$.<br>
We calculate the risk reward ratio as follows:<br>
$R = \frac{\mu_{win}}{\mu_{loss}} = \frac{2.06}{4.11} = 0.5012...$
### Expectancy
By combining the Win Rate $W$ and the Risk Reward ratio $R$ to create an expectancy ratio $E$. A expectance ratio is the expected return of the investment made in a trade. We can compute the value of $E$ as follows:
$$E = R * W - L$$
!!! Example "Calculating $E$"
Let's say that a strategy has a win rate $W = 0.28$ and a risk reward ratio $R = 5$. What this means is that the strategy is expected to make 5 times the investment around on 28% of the trades it makes. Working out the example:<br>
$E = R * W - L = 5 * 0.28 - 0.72 = 0.68$
<br>
The expectancy worked out in the example above means that, on average, this strategy' trades will return 1.68 times the size of its losses. Said another way, the strategy makes 1.68\$ for every 1\$ it loses, on average.
This is important for two reasons: First, it may seem obvious, but you know right away that you have a positive return. Second, you now have a number you can compare to other candidate systems to make decisions about which ones you employ.
It is important to remember that any system with an expectancy greater than 0 is profitable using past data. The key is finding one that will be profitable in the future.
You can also use this value to evaluate the effectiveness of modifications to this system.
!!! Note
It's important to keep in mind that Edge is testing your expectancy using historical data, there's no guarantee that you will have a similar edge in the future. It's still vital to do this testing in order to build confidence in your methodology but be wary of "curve-fitting" your approach to the historical data as things are unlikely to play out the exact same way for future trades.
## How does it work?
Edge combines dynamic stoploss, dynamic positions, and whitelist generation into one isolated module which is then applied to the trading strategy. If enabled in config, Edge will go through historical data with a range of stoplosses in order to find buy and sell/stoploss signals. It then calculates win rate and expectancy over *N* trades for each stoploss. Here is an example:
| Pair | Stoploss | Win Rate | Risk Reward Ratio | Expectancy |
|----------|:-------------:|-------------:|------------------:|-----------:|
| XZC/ETH | -0.01 | 0.50 |1.176384 | 0.088 |
| XZC/ETH | -0.02 | 0.51 |1.115941 | 0.079 |
| XZC/ETH | -0.03 | 0.52 |1.359670 | 0.228 |
| XZC/ETH | -0.04 | 0.51 |1.234539 | 0.117 |
The goal here is to find the best stoploss for the strategy in order to have the maximum expectancy. In the above example stoploss at $3%$ leads to the maximum expectancy according to historical data.
Edge module then forces stoploss value it evaluated to your strategy dynamically.
### Position size
Edge dictates the amount at stake for each trade to the bot according to the following factors:
- Allowed capital at risk
- Stoploss
Allowed capital at risk is calculated as follows:
```
Allowed capital at risk = (Capital available_percentage) X (Allowed risk per trade)
```
Stoploss is calculated as described above with respect to historical data.
The position size is calculated as follows:
```
Position size = (Allowed capital at risk) / Stoploss
```
Example:
Let's say the stake currency is **ETH** and there is $10$ **ETH** on the wallet. The capital available percentage is $50%$ and the allowed risk per trade is $1\%$. Thus, the available capital for trading is $10 * 0.5 = 5$ **ETH** and the allowed capital at risk would be $5 * 0.01 = 0.05$ **ETH**.
- **Trade 1:** The strategy detects a new buy signal in the **XLM/ETH** market. `Edge Positioning` calculates a stoploss of $2\%$ and a position of $0.05 / 0.02 = 2.5$ **ETH**. The bot takes a position of $2.5$ **ETH** in the **XLM/ETH** market.
- **Trade 2:** The strategy detects a buy signal on the **BTC/ETH** market while **Trade 1** is still open. `Edge Positioning` calculates the stoploss of $4\%$ on this market. Thus, **Trade 2** position size is $0.05 / 0.04 = 1.25$ **ETH**.
!!! Tip "Available Capital $\neq$ Available in wallet"
The available capital for trading didn't change in **Trade 2** even with **Trade 1** still open. The available capital **is not** the free amount in the wallet.
- **Trade 3:** The strategy detects a buy signal in the **ADA/ETH** market. `Edge Positioning` calculates a stoploss of $1\%$ and a position of $0.05 / 0.01 = 5$ **ETH**. Since **Trade 1** has $2.5$ **ETH** blocked and **Trade 2** has $1.25$ **ETH** blocked, there is only $5 - 1.25 - 2.5 = 1.25$ **ETH** available. Hence, the position size of **Trade 3** is $1.25$ **ETH**.
!!! Tip "Available Capital Updates"
The available capital does not change before a position is sold. After a trade is closed the Available Capital goes up if the trade was profitable or goes down if the trade was a loss.
- The strategy detects a sell signal in the **XLM/ETH** market. The bot exits **Trade 1** for a profit of $1$ **ETH**. The total capital in the wallet becomes $11$ **ETH** and the available capital for trading becomes $5.5$ **ETH**.
- **Trade 4** The strategy detects a new buy signal int the **XLM/ETH** market. `Edge Positioning` calculates the stoploss of $2\%$, and the position size of $0.055 / 0.02 = 2.75$ **ETH**.
## Edge command reference
--8<-- "commands/edge.md"
## Configurations
Edge module has following configuration options:
| Parameter | Description |
|------------|-------------|
| `enabled` | If true, then Edge will run periodically. <br>*Defaults to `false`.* <br> **Datatype:** Boolean
| `process_throttle_secs` | How often should Edge run in seconds. <br>*Defaults to `3600` (once per hour).* <br> **Datatype:** Integer
| `calculate_since_number_of_days` | Number of days of data against which Edge calculates Win Rate, Risk Reward and Expectancy. <br> **Note** that it downloads historical data so increasing this number would lead to slowing down the bot. <br>*Defaults to `7`.* <br> **Datatype:** Integer
| `allowed_risk` | Ratio of allowed risk per trade. <br>*Defaults to `0.01` (1%)).* <br> **Datatype:** Float
| `stoploss_range_min` | Minimum stoploss. <br>*Defaults to `-0.01`.* <br> **Datatype:** Float
| `stoploss_range_max` | Maximum stoploss. <br>*Defaults to `-0.10`.* <br> **Datatype:** Float
| `stoploss_range_step` | As an example if this is set to -0.01 then Edge will test the strategy for `[-0.01, -0,02, -0,03 ..., -0.09, -0.10]` ranges. <br> **Note** than having a smaller step means having a bigger range which could lead to slow calculation. <br> If you set this parameter to -0.001, you then slow down the Edge calculation by a factor of 10. <br>*Defaults to `-0.001`.* <br> **Datatype:** Float
| `minimum_winrate` | It filters out pairs which don't have at least minimum_winrate. <br>This comes handy if you want to be conservative and don't comprise win rate in favour of risk reward ratio. <br>*Defaults to `0.60`.* <br> **Datatype:** Float
| `minimum_expectancy` | It filters out pairs which have the expectancy lower than this number. <br>Having an expectancy of 0.20 means if you put 10\$ on a trade you expect a 12\$ return. <br>*Defaults to `0.20`.* <br> **Datatype:** Float
| `min_trade_number` | When calculating *W*, *R* and *E* (expectancy) against historical data, you always want to have a minimum number of trades. The more this number is the more Edge is reliable. <br>Having a win rate of 100% on a single trade doesn't mean anything at all. But having a win rate of 70% over past 100 trades means clearly something. <br>*Defaults to `10` (it is highly recommended not to decrease this number).* <br> **Datatype:** Integer
| `max_trade_duration_minute` | Edge will filter out trades with long duration. If a trade is profitable after 1 month, it is hard to evaluate the strategy based on it. But if most of trades are profitable and they have maximum duration of 30 minutes, then it is clearly a good sign.<br>**NOTICE:** While configuring this value, you should take into consideration your timeframe. As an example filtering out trades having duration less than one day for a strategy which has 4h interval does not make sense. Default value is set assuming your strategy interval is relatively small (1m or 5m, etc.).<br>*Defaults to `1440` (one day).* <br> **Datatype:** Integer
| `remove_pumps` | Edge will remove sudden pumps in a given market while going through historical data. However, given that pumps happen very often in crypto markets, we recommend you keep this off.<br>*Defaults to `false`.* <br> **Datatype:** Boolean
## Running Edge independently
You can run Edge independently in order to see in details the result. Here is an example:
``` bash
freqtrade edge
```
An example of its output:
| **pair** | **stoploss** | **win rate** | **risk reward ratio** | **required risk reward** | **expectancy** | **total number of trades** | **average duration (min)** |
|:----------|-----------:|-----------:|--------------------:|-----------------------:|-------------:|-----------------:|---------------:|
| **AGI/BTC** | -0.02 | 0.64 | 5.86 | 0.56 | 3.41 | 14 | 54 |
| **NXS/BTC** | -0.03 | 0.64 | 2.99 | 0.57 | 1.54 | 11 | 26 |
| **LEND/BTC** | -0.02 | 0.82 | 2.05 | 0.22 | 1.50 | 11 | 36 |
| **VIA/BTC** | -0.01 | 0.55 | 3.01 | 0.83 | 1.19 | 11 | 48 |
| **MTH/BTC** | -0.09 | 0.56 | 2.82 | 0.80 | 1.12 | 18 | 52 |
| **ARDR/BTC** | -0.04 | 0.42 | 3.14 | 1.40 | 0.73 | 12 | 42 |
| **BCPT/BTC** | -0.01 | 0.71 | 1.34 | 0.40 | 0.67 | 14 | 30 |
| **WINGS/BTC** | -0.02 | 0.56 | 1.97 | 0.80 | 0.65 | 27 | 42 |
| **VIBE/BTC** | -0.02 | 0.83 | 0.91 | 0.20 | 0.59 | 12 | 35 |
| **MCO/BTC** | -0.02 | 0.79 | 0.97 | 0.27 | 0.55 | 14 | 31 |
| **GNT/BTC** | -0.02 | 0.50 | 2.06 | 1.00 | 0.53 | 18 | 24 |
| **HOT/BTC** | -0.01 | 0.17 | 7.72 | 4.81 | 0.50 | 209 | 7 |
| **SNM/BTC** | -0.03 | 0.71 | 1.06 | 0.42 | 0.45 | 17 | 38 |
| **APPC/BTC** | -0.02 | 0.44 | 2.28 | 1.27 | 0.44 | 25 | 43 |
| **NEBL/BTC** | -0.03 | 0.63 | 1.29 | 0.58 | 0.44 | 19 | 59 |
Edge produced the above table by comparing `calculate_since_number_of_days` to `minimum_expectancy` to find `min_trade_number` historical information based on the config file. The timerange Edge uses for its comparisons can be further limited by using the `--timerange` switch.
In live and dry-run modes, after the `process_throttle_secs` has passed, Edge will again process `calculate_since_number_of_days` against `minimum_expectancy` to find `min_trade_number`. If no `min_trade_number` is found, the bot will return "whitelist empty". Depending on the trade strategy being deployed, "whitelist empty" may be return much of the time - or *all* of the time. The use of Edge may also cause trading to occur in bursts, though this is rare.
If you encounter "whitelist empty" a lot, condsider tuning `calculate_since_number_of_days`, `minimum_expectancy` and `min_trade_number` to align to the trading frequency of your strategy.
### Update cached pairs with the latest data
Edge requires historic data the same way as backtesting does.
Please refer to the [Data Downloading](data-download.md) section of the documentation for details.
### Precising stoploss range
```bash
freqtrade edge --stoplosses=-0.01,-0.1,-0.001 #min,max,step
```
### Advanced use of timerange
```bash
freqtrade edge --timerange=20181110-20181113
```
Doing `--timerange=-20190901` will get all available data until September 1st (excluding September 1st 2019).
The full timerange specification:
* Use tickframes till 2018/01/31: `--timerange=-20180131`
* Use tickframes since 2018/01/31: `--timerange=20180131-`
* Use tickframes since 2018/01/31 till 2018/03/01 : `--timerange=20180131-20180301`
* Use tickframes between POSIX timestamps 1527595200 1527618600: `--timerange=1527595200-1527618600`
[^1]: Question extracted from MIT Opencourseware S096 - Mathematics with applications in Finance: https://ocw.mit.edu/courses/mathematics/18-s096-topics-in-mathematics-with-applications-in-finance-fall-2013/

View File

@@ -2,6 +2,10 @@
This page combines common gotchas and Information which are exchange-specific and most likely don't apply to other exchanges.
## Quick overview of supported exchange features
--8<-- "includes/exchange-features.md"
## Exchange configuration
Freqtrade is based on [CCXT library](https://github.com/ccxt/ccxt) that supports over 100 cryptocurrency
@@ -227,7 +231,7 @@ Kucoin requires a passphrase for each api key, you will therefore need to add th
}
```
Kucoin supports [time_in_force](configuration.md#understand-order_time_in_force).
Kucoin supports [time_in_force](configuration.md#understand-order_time_in_force) with settings "GTC" (good till cancelled), "FOK" (full-or-cancel) and "IOC" (immediate-or-cancel) settings.
!!! Tip "Stoploss on Exchange"
Kucoin 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.
@@ -271,7 +275,9 @@ Using the wrong exchange will result in the error "OKX Error 50119: API key does
## Gate.io
!!! Tip "Stoploss on Exchange"
Gate.io 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..
Gate.io 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.
Gate.io supports [time_in_force](configuration.md#understand-order_time_in_force) with settings "GTC" (good till cancelled), and "IOC" (immediate-or-cancel) settings.
Gate.io allows the use of `POINT` to pay for fees. As this is not a tradable currency (no regular market available), automatic fee calculations will fail (and default to a fee of 0).
The configuration parameter `exchange.unknown_fee_rate` can be used to specify the exchange rate between Point and the stake currency. Obviously, changing the stake-currency will also require changes to this value.
@@ -286,9 +292,22 @@ Without these permissions, the bot will not start correctly and show errors like
## Bybit
Futures trading on bybit is currently supported for USDT markets, and will use isolated futures mode.
!!! Tip "Stoploss on Exchange"
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.
On startup, freqtrade will set the position mode to "One-way Mode" for the whole (sub)account. This avoids making this call over and over again (slowing down bot operations), but means that changes to this setting may result in exceptions and errors.
Bybit supports [time_in_force](configuration.md#understand-order_time_in_force) with settings "GTC" (good till cancelled), "FOK" (full-or-cancel), "IOC" (immediate-or-cancel) and "PO" (Post only) settings.
!!! Warning "Unified accounts"
Freqtrade assumes accounts to be dedicated to the bot.
We therefore recommend the usage of one subaccount per bot. This is especially important when using unified accounts.
Other configurations (multiple bots on one account, manual non-bot trades on the bot account) are not supported and may lead to unexpected behavior.
### Bybit Futures
Futures trading on bybit is supported for isolated futures mode.
On startup, freqtrade will set the position mode to "One-way Mode" for the whole (sub)account. This avoids making this call over and over again (slowing down bot operations), but means that manual changes to this setting may result in exceptions and errors.
As bybit doesn't provide funding rate history, the dry-run calculation is used for live trades as well.
@@ -300,15 +319,6 @@ API Keys for live futures trading must have the following permissions:
We do strongly recommend to limit all API keys to the IP you're going to use it from.
!!! Warning "Unified accounts"
Freqtrade assumes accounts to be dedicated to the bot.
We therefore recommend the usage of one subaccount per bot. This is especially important when using unified accounts.
Other configurations (multiple bots on one account, manual non-bot trades on the bot account) are not supported and may lead to unexpected behavior.
!!! Tip "Stoploss on Exchange"
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
@@ -328,6 +338,32 @@ It's therefore required to pass the UID as well.
!!! 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.
## Bitget
Bitget 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:
```json
"exchange": {
"name": "bitget",
"key": "your_exchange_key",
"secret": "your_exchange_secret",
"password": "your_exchange_api_key_password",
// ...
}
```
Bitget supports [time_in_force](configuration.md#understand-order_time_in_force) with settings "GTC" (good till cancelled), "FOK" (full-or-cancel), "IOC" (immediate-or-cancel) and "PO" (Post only) settings.
!!! Tip "Stoploss on Exchange"
Bitget 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 of stoploss shall be used.
### Bitget Futures
Futures trading on bitget is supported for isolated futures mode.
On startup, freqtrade will set the position mode to "One-way Mode" for the whole (sub)account. This avoids making this call over and over again (slowing down bot operations), but means that manual changes to this setting may result in exceptions and errors.
## Hyperliquid
!!! Tip "Stoploss on Exchange"
@@ -339,13 +375,13 @@ This needs to be configured like this:
```json
"exchange": {
"name": "hyperliquid",
"walletAddress": "your_eth_wallet_address",
"walletAddress": "your_eth_wallet_address", // This should NOT be your API Wallet Address!
"privateKey": "your_api_private_key",
// ...
}
```
* walletAddress in hex format: `0x<40 hex characters>` - Can be easily copied from your wallet - and should be your wallet address, not your API Wallet Address.
* walletAddress in hex format: `0x<40 hex characters>` - Can be easily copied from your wallet - and should be your main wallet address, not your API Wallet Address.
* privateKey in hex format: `0x<64 hex characters>` - Use the key the API Wallet shows on creation.
Hyperliquid handles deposits and withdrawals on the Arbitrum One chain, a Layer 2 scaling solution built on top of Ethereum. Hyperliquid uses USDC as quote / collateral. The process of depositing USDC on Hyperliquid requires a couple of steps, see [how to start trading](https://hyperliquid.gitbook.io/hyperliquid-docs/onboarding/how-to-start-trading) for details on what steps are needed.
@@ -363,10 +399,54 @@ Hyperliquid handles deposits and withdrawals on the Arbitrum One chain, a Layer
* Create a different software wallet, only transfer the funds you want to trade with to that wallet, and use that wallet to trade on Hyperliquid.
* If you have funds you don't want to use for trading (after making a profit for example), transfer them back to your hardware wallet.
### Hyperliquid Vault / Subaccount
Hyperliquid allows you to create either a vault or a subaccount.
To use these with Freqtrade, you will need to use the following configuration pattern:
``` json
"exchange": {
"name": "hyperliquid",
"walletAddress": "your_master_wallet_address", // Your master wallet address (not the API wallet address and not the vault/subaccount address).
"privateKey": "your_api_private_key", // API wallet private key (see https://app.hyperliquid.xyz/API). You'll only need the private key.
"ccxt_config": {
"options": {
"vaultAddress": "your_vault_address", // Optional, only if you want to use a vault ...
"subAccountAddress": "your_subaccount_address" // OR optional, only if you want to use a subaccount
}
},
// ...
}
```
Your balance and trades will now be used from your vault / subaccount - and no longer from your main account.
!!! Note
You can only use either a vault or a subaccount - not both at the same time.
### Historic Hyperliquid data
The Hyperliquid API does not provide historic data beyond the single call to fetch current data, so downloading data is not possible, as the downloaded data would not constitute proper historic data.
## Bitvavo
If your account is required to use an operatorId, you can set it in the configuration file as follows:
``` json
"exchange": {
"name": "bitvavo",
"key": "",
"secret": "",
"ccxt_config": {
"options": {
"operatorId": "123567"
}
},
}
```
Bitvavo expects the `operatorId` to be an integer.
## 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.
@@ -411,3 +491,5 @@ For example, to test the order type `FOK` with Kraken, and modify candle limit t
!!! Warning
Please make sure to fully understand the impacts of these settings before modifying them.
Using `_ft_has_params` overrides may lead to unexpected behavior, and may even break your bot.
We will not be able to provide support for issues caused by custom settings in `_ft_has_params`.

View File

@@ -102,6 +102,14 @@ You can use "current" market data by using the [dataprovider](strategy-customiza
You can use the `/stopentry` command in Telegram to prevent future trade entry, followed by `/forceexit all` (sell all open trades).
### I sold the bot's capital and now there's errors in the log
Freqtrade assumes that the trades it opens are managed only though the bot.
If you happen to (accidentally) sell the bot's capital, freqtrade will try to recover by trying to re-find on-exchange orders.
This is a best-effort approach, and will not work in all cases, especially when using order types that are not supported by freqtrade (OCO, iceberg, etc.), or when working with older trades (where the exchange no longer provides full order information).
The exact limits will vary between exchanges - with the details usually being documented in the exchange's API documentation.
### I want to run multiple bots on the same machine
Please look at the [advanced setup documentation Page](advanced-setup.md#running-multiple-instances-of-freqtrade).
@@ -151,6 +159,14 @@ 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 get the message "Couldn't reuse watch for xxx" in the log
This is an informational message that the bot tried to use candles from the websocket, but the exchange didn't provide the right information.
This can happen if there was an interruption to the websocket connection - or if the pair didn't have any trades happen in the timeframe you are using.
Freqtrade will handle this gracefully by falling back to the REST api.
While this makes the iteration slightly slower (due to the REST Api call) - it will not cause any problems to the bot's operation.
### 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 Gate.io).
@@ -219,10 +235,7 @@ On Windows, the `--logfile` option is also supported by Freqtrade and you can us
First of all, most indicator libraries don't have GPU support - as such, there would be little benefit for indicator calculations.
The GPU improvements would only apply to pandas-native calculations - or ones written by yourself.
For hyperopt, freqtrade is using scikit-optimize, which is built on top of scikit-learn.
Their statement about GPU support is [pretty clear](https://scikit-learn.org/stable/faq.html#will-you-add-gpu-support).
GPU's also are only good at crunching numbers (floating point operations).
GPU's are only good at crunching numbers (floating point operations).
For hyperopt, we need both number-crunching (find next parameters) and running python code (running backtesting).
As such, GPU's are not too well suited for most parts of hyperopt.
@@ -271,20 +284,6 @@ Example: 4% profit 650 times vs 0,3% profit a trade 10000 times in a year. If we
Example:
`freqtrade --config config.json --strategy SampleStrategy --hyperopt SampleHyperopt -e 1000 --timerange 20190601-20200601`
## Edge module
### Edge implements interesting approach for controlling position size, is there any theory behind it?
The Edge module is mostly a result of brainstorming of [@mishaker](https://github.com/mishaker) and [@creslinux](https://github.com/creslinux) freqtrade team members.
You can find further info on expectancy, win rate, risk management and position size in the following sources:
- https://www.tradeciety.com/ultimate-math-guide-for-traders/
- https://samuraitradingacademy.com/trading-expectancy/
- https://www.learningmarkets.com/determining-expectancy-in-your-trading/
- https://www.lonestocktrader.com/make-money-trading-positive-expectancy/
- https://www.babypips.com/trading/trade-expectancy-matter
## Official channels
Freqtrade is using exclusively the following official channels:
@@ -298,6 +297,13 @@ Should you be asked to expose your exchange keys or send funds to some random wa
Failing to follow these guidelines will not be responsibility of freqtrade.
## Support policy
We provide free support for Freqtrade on our [Discord server](https://discord.gg/p7nuUNVfP7) and via GitHub issues.
We only support the most recent release (e.g. 2025.8) and the current development branch (e.g. 2025.9-dev).
If you're on an older version, please follow the [upgrade instructions](updating.md) and see if your problem has already been addressed.
## "Freqtrade token"
Freqtrade does not have a Crypto token offering.

View File

@@ -4,7 +4,7 @@ Freqtrade provides a builtin webserver, which can serve [FreqUI](https://github.
By default, the UI is automatically installed as part of the installation (script, docker).
freqUI can also be manually installed by using the `freqtrade install-ui` command.
This same command can also be used to update freqUI to new new releases.
This same command can also be used to update freqUI to new releases.
Once the bot is started in trade / dry-run mode (with `freqtrade trade`) - the UI will be available under the configured API port (by default `http://127.0.0.1:8080`).
@@ -70,7 +70,16 @@ Things you can change (among others):
![FreqUI - Settings view](assets/frequi-settings-dark.png#only-dark)
![FreqUI - Settings view](assets/frequi-settings-light.png#only-light)
## Backtesting
## Webserver mode
when freqtrade is started in [webserver mode](utils.md#webserver-mode) (freqtrade started with `freqtrade webserver`), the webserver will start in a special mode allowing for additional features, for example:
* Downloading data
* Testing pairlists
* [Backtesting strategies](#backtesting)
* ... to be expanded
### Backtesting
When freqtrade is started in [webserver mode](utils.md#webserver-mode) (freqtrade started with `freqtrade webserver`), the backtesting view becomes available.
This view allows you to backtest strategies and visualize the results.

View File

@@ -181,7 +181,7 @@ You can ask for each of the defined features to be included also for informative
In total, the number of features the user of the presented example strategy has created is: length of `include_timeframes` * no. features in `feature_engineering_expand_*()` * length of `include_corr_pairlist` * no. `include_shifted_candles` * length of `indicator_periods_candles`
$= 3 * 3 * 3 * 2 * 2 = 108$.
!!! note "Learn more about creative feature engineering"
!!! note "Learn more about creative feature engineering"
Check out our [medium article](https://emergentmethods.medium.com/freqai-from-price-to-prediction-6fadac18b665) geared toward helping users learn how to creatively engineer features.
### Gain finer control over `feature_engineering_*` functions with `metadata`
@@ -310,7 +310,7 @@ class MyCoolTransform(BaseTransform):
If you have created your own custom `IFreqaiModel` with a custom `train()`/`predict()` function, *and* you still rely on `data_cleaning_train/predict()`, then you will need to migrate to the new pipeline. If your model does *not* rely on `data_cleaning_train/predict()`, then you do not need to worry about this migration.
More details about the migration can be found [here](strategy_migration.md#freqai---new-data-pipeline).
More details about the migration can be found [here](strategy_migration.md#freqai-new-data-pipeline).
## Outlier detection

View File

@@ -79,7 +79,7 @@ Mandatory parameters are marked as **Required** and have to be set in one of the
| `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.
| `cpu_count` | Number of threads/cpus to dedicate to the Reinforcement Learning training process (depending on if `ReinforcementLearner_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.
| `model_reward_parameters` | Parameters used inside the customizable `calculate_reward()` function in `ReinforcementLearner.py` <br> **Datatype:** int.
| `add_state_info` | Tell FreqAI to include state information in the feature set for training and inferencing. The current state variables include trade duration, current profit, trade position. This is only available in dry/live runs, and is automatically switched to false for backtesting. <br> **Datatype:** bool. <br> Default: `False`.
| `net_arch` | Network architecture which is well described in [`stable_baselines3` doc](https://stable-baselines3.readthedocs.io/en/master/guide/custom_policy.html#examples). In summary: `[<shared layers>, dict(vf=[<non-shared value network layers>], pi=[<non-shared policy network layers>])]`. By default this is set to `[128, 128]`, which defines 2 shared hidden layers with 128 units each.

View File

@@ -7,7 +7,7 @@
FreqAI is a software designed to automate a variety of tasks associated with training a predictive machine learning model to generate market forecasts given a set of input signals. In general, FreqAI aims to be a sandbox for easily deploying robust machine learning libraries on real-time data ([details](#freqai-position-in-open-source-machine-learning-landscape)).
!!! Note
FreqAI is, and always will be, a not-for-profit, open-source project. FreqAI does *not* have a crypto token, FreqAI does *not* sell signals, and FreqAI does not have a domain besides the present [freqtrade documentation](https://www.freqtrade.io/en/latest/freqai/).
FreqAI is, and always will be, a not-for-profit, open source project. FreqAI does *not* have a crypto token, FreqAI does *not* sell signals, and FreqAI does not have a domain besides the present [freqtrade documentation](https://www.freqtrade.io/en/latest/freqai/).
Features include:
@@ -79,11 +79,11 @@ pip install -r requirements-freqai.txt
If you are using docker, a dedicated tag with FreqAI dependencies is available as `:freqai`. As such - you can replace the image line in your docker compose file with `image: freqtradeorg/freqtrade:stable_freqai`. This image contains the regular FreqAI dependencies. Similar to native installs, Catboost will not be available on ARM based devices. If you would like to use PyTorch or Reinforcement learning, you should use the torch or RL tags, `image: freqtradeorg/freqtrade:stable_freqaitorch`, `image: freqtradeorg/freqtrade:stable_freqairl`.
!!! note "docker-compose-freqai.yml"
We do provide an explicit docker-compose file for this in `docker/docker-compose-freqai.yml` - which can be used via `docker compose -f docker/docker-compose-freqai.yml run ...` - or can be copied to replace the original docker file. This docker-compose file also contains a (disabled) section to enable GPU resources within docker containers. This obviously assumes the system has GPU resources available.
We do provide an explicit docker-compose file for this in `docker/docker-compose-freqai.yml` - which can be used via `docker compose -f docker/docker-compose-freqai.yml run ...` - or can be copied to replace the original docker file. This docker-compose file also contains a (disabled) section to enable GPU resources within docker containers. This obviously assumes the system has GPU resources available.
### FreqAI position in open-source machine learning landscape
### FreqAI position in open source machine learning landscape
Forecasting chaotic time-series based systems, such as equity/cryptocurrency markets, requires a broad set of tools geared toward testing a wide range of hypotheses. Fortunately, a recent maturation of robust machine learning libraries (e.g. `scikit-learn`) has opened up a wide range of research possibilities. Scientists from a diverse range of fields can now easily prototype their studies on an abundance of established machine learning algorithms. Similarly, these user-friendly libraries enable "citizen scientists" to use their basic Python skills for data exploration. However, leveraging these machine learning libraries on historical and live chaotic data sources can be logistically difficult and expensive. Additionally, robust data collection, storage, and handling presents a disparate challenge. [`FreqAI`](#freqai) aims to provide a generalized and extensible open-sourced framework geared toward live deployments of adaptive modeling for market forecasting. The `FreqAI` framework is effectively a sandbox for the rich world of open-source machine learning libraries. Inside the `FreqAI` sandbox, users find they can combine a wide variety of third-party libraries to test creative hypotheses on a free live 24/7 chaotic data source - cryptocurrency exchange data.
Forecasting chaotic time-series based systems, such as equity/cryptocurrency markets, requires a broad set of tools geared toward testing a wide range of hypotheses. Fortunately, a recent maturation of robust machine learning libraries (e.g. `scikit-learn`) has opened up a wide range of research possibilities. Scientists from a diverse range of fields can now easily prototype their studies on an abundance of established machine learning algorithms. Similarly, these user-friendly libraries enable "citizen scientists" to use their basic Python skills for data exploration. However, leveraging these machine learning libraries on historical and live chaotic data sources can be logistically difficult and expensive. Additionally, robust data collection, storage, and handling presents a disparate challenge. [`FreqAI`](#freqai) aims to provide a generalized and extensible open-sourced framework geared toward live deployments of adaptive modeling for market forecasting. The `FreqAI` framework is effectively a sandbox for the rich world of open source machine learning libraries. Inside the `FreqAI` sandbox, users find they can combine a wide variety of third-party libraries to test creative hypotheses on a free live 24/7 chaotic data source - cryptocurrency exchange data.
### Citing FreqAI

View File

@@ -1,10 +1,10 @@
# Hyperopt
This page explains how to tune your strategy by finding the optimal
parameters, a process called hyperparameter optimization. The bot uses algorithms included in the `scikit-optimize` package to accomplish this.
parameters, a process called hyperparameter optimization. The bot uses algorithms included in the `optuna` package to accomplish this.
The search will burn all your CPU cores, make your laptop sound like a fighter jet and still take a long time.
In general, the search for best parameters starts with a few random combinations (see [below](#reproducible-results) for more details) and then uses Bayesian search with a ML regressor algorithm (currently ExtraTreesRegressor) to quickly find a combination of parameters in the search hyperspace that minimizes the value of the [loss function](#loss-functions).
In general, the search for best parameters starts with a few random combinations (see [below](#reproducible-results) for more details) and then uses one of optuna's sampler algorithms (currently NSGAIIISampler) to quickly find a combination of parameters in the search hyperspace that minimizes the value of the [loss function](#loss-functions).
Hyperopt requires historic data to be available, just as backtesting does (hyperopt runs backtesting many times with different parameters).
To learn how to get data for the pairs and exchange you're interested in, head over to the [Data Downloading](data-download.md) section of the documentation.
@@ -46,10 +46,17 @@ Depending on the space you want to optimize, only some of the below are required
* define parameters with `space='buy'` - for entry signal optimization
* define parameters with `space='sell'` - for exit signal optimization
* define parameters with `space='enter'` - for entry signal optimization
* define parameters with `space='exit'` - for exit signal optimization
* define parameters with `space='protection'` - for protection optimization
* define parameters with `space='random_spacename'` - for better control over which parameters are optimized together
Pick the space name that suits the parameter best. We recommend to use either `buy` / `sell` or `enter` / `exit` for clarity (however there's no technical limitation in this regard).
!!! Note
`populate_indicators` needs to create all indicators any of the spaces may use, otherwise hyperopt will not work.
Rarely you may also need to create a [nested class](advanced-hyperopt.md#overriding-pre-defined-spaces) named `HyperOpt` and implement
* `roi_space` - for custom ROI optimization (if you need the ranges for the ROI parameters in the optimization hyperspace that differ from default)
@@ -79,15 +86,15 @@ Based on the loss function result, hyperopt will determine the next set of param
### Configure your Guards and Triggers
There are two places you need to change in your strategy file to add a new buy hyperopt for testing:
There are two places you need to change in your strategy file to add a new hyperopt parameter for optimization:
* Define the parameters at the class level hyperopt shall be optimizing.
* Within `populate_entry_trend()` - use defined parameter values instead of raw constants.
There you have two different types of indicators: 1. `guards` and 2. `triggers`.
1. Guards are conditions like "never buy if ADX < 10", or never buy if current price is over EMA10.
2. Triggers are ones that actually trigger buy in specific moment, like "buy when EMA5 crosses over EMA10" or "buy when close price touches lower Bollinger band".
1. Guards are conditions like "never enter if ADX < 10", or never enter if current price is over EMA10.
2. Triggers are ones that actually trigger entry in specific moment, like "enter when EMA5 crosses over EMA10" or "enter when close price touches lower Bollinger band".
!!! Hint "Guards and Triggers"
Technically, there is no difference between Guards and Triggers.
@@ -160,9 +167,11 @@ We use these to either enable or disable the ADX and RSI guards.
The last one we call `trigger` and use it to decide which buy trigger we want to use.
!!! Note "Parameter space assignment"
Parameters must either be assigned to a variable named `buy_*` or `sell_*` - or contain `space='buy'` | `space='sell'` to be assigned to a space correctly.
If no parameter is available for a space, you'll receive the error that no space was found when running hyperopt.
- Parameters must either be assigned to a variable named `buy_*`, `sell_*`, `enter_*` or `exit_*` or `protection_*` - or contain have a space assigned explicitly via parameter (`space='buy'`, `space='sell'`, `space='protection'`).
- Parameters with conflicting assignments (e.g. `buy_adx = IntParameter(4, 24, default=14, space='sell')`) will use the explicit space assignment.
- If no parameter is available for a space, you'll receive the error that no space was found when running hyperopt.
Parameters with unclear space (e.g. `adx_period = IntParameter(4, 24, default=14)` - no explicit nor implicit space) will not be detected and will therefore be ignored.
Spaces can also be custom named (e.g. `space='my_custom_space'`), with the only limitation that the space name cannot be `all`, `default` - and must result in a valid python identifier.
So let's write the buy strategy using these values:
@@ -490,6 +499,8 @@ freqtrade hyperopt --config config.json --hyperopt-loss <hyperoptlossname> --str
```
The `-e` option will set how many evaluations hyperopt will do. Since hyperopt uses Bayesian search, running too many epochs at once may not produce greater results. Experience has shown that best results are usually not improving much after 500-1000 epochs.
The `--early-stop` option will set after how many epochs with no improvements hyperopt will stop. A good value is 20-30% of the total epochs. Any value greater than 0 and lower than 20 it will be replaced by 20. Early stop is by default disabled (`--early-stop=0`)
Doing multiple runs (executions) with a few 1000 epochs and different random state will most likely produce different results.
The `--spaces all` option determines that all possible parameters should be optimized. Possibilities are listed below.
@@ -518,21 +529,24 @@ freqtrade hyperopt --strategy <strategyname> --timerange 20210101-20210201
### Running Hyperopt with Smaller Search Space
Use the `--spaces` option to limit the search space used by hyperopt.
Letting Hyperopt optimize everything is a huuuuge search space.
Often it might make more sense to start by just searching for initial buy algorithm.
Or maybe you just want to optimize your stoploss or roi table for that awesome new buy strategy you have.
Letting Hyperopt optimize everything is often a huuuuge search space.
Often it might make more sense to start by just searching for initial entry algorithm.
Or maybe you just want to optimize your stoploss or roi table for that awesome new strategy you have.
Legal values are:
* `all`: optimize everything
* `all`: optimize everything (including custom spaces)
* `buy`: just search for a new buy strategy
* `sell`: just search for a new sell strategy
* `enter`: just search for a new entry logic
* `exit`: just search for a new entry logic
* `roi`: just optimize the minimal profit table for your strategy
* `stoploss`: search for the best stoploss value
* `trailing`: search for the best trailing stop values
* `trades`: search for the best max open trades values
* `protection`: search for the best protection parameters (read the [protections section](#optimizing-protections) on how to properly define these)
* `default`: `all` except `trailing` and `protection`
* `default`: `all` except `trailing`, `trades` and `protection`
* `custom_space_name`: any custom space used by any parameter in your strategy
* space-separated list of any of the above values for example `--spaces roi stoploss`
The default Hyperopt Search Space, used when no `--space` command line option is specified, does not include the `trailing` hyperspace. We recommend you to run optimization for the `trailing` hyperspace separately, when the best parameters for other hyperspaces were found, validated and pasted into your custom strategy.

View File

@@ -0,0 +1,21 @@
| Exchange | Mode | Margin mode | Stoploss type |
|---------|---------|------|------------------|
| [Binance](exchanges.md#binance) | spot | | limit |
| [Binance](exchanges.md#binance) | futures | isolated, cross | market, limit |
| [Bingx](exchanges.md#bingx) | spot | | market, limit |
| [Bitmart](exchanges.md#bitmart) | spot | | ❌ (not supported) |
| [Bitget](exchanges.md#bitget) | spot | | market, limit |
| [Bitget](exchanges.md#bitget) | futures | isolated | market, limit |
| [Bybit](exchanges.md#bybit) | spot | | ❌ (not supported) |
| [Bybit](exchanges.md#bybit) | futures | isolated | market, limit |
| [Gate.io](exchanges.md#gateio) | spot | | limit |
| [Gate.io](exchanges.md#gateio) | futures | isolated | limit |
| [HTX](exchanges.md#htx) | spot | | limit |
| [Hyperliquid](exchanges.md#hyperliquid) | spot | | ❌ (not supported) |
| [Hyperliquid](exchanges.md#hyperliquid) | futures | isolated, cross | limit |
| [Kraken](exchanges.md#kraken) | spot | | market, limit |
| [OKX](exchanges.md#okx) | spot | | limit |
| [OKX](exchanges.md#okx) | futures | isolated | limit |
| [Bitvavo](exchanges.md#bitvavo) | spot | | ❌ (not supported) |
| [Kucoin](exchanges.md#kucoin) | spot | | market, limit |

View File

@@ -4,7 +4,7 @@ Pairlist Handlers define the list of pairs (pairlist) that the bot should trade.
In your configuration, you can use Static Pairlist (defined by the [`StaticPairList`](#static-pair-list) Pairlist Handler) and Dynamic Pairlist (defined by the [`VolumePairList`](#volume-pair-list) and [`PercentChangePairList`](#percent-change-pair-list) Pairlist Handlers).
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.
Additionally, [`AgeFilter`](#agefilter), [`DelistFilter`](#delistfilter), [`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 can define either `StaticPairList`, `VolumePairList`, `ProducerPairList`, `RemotePairList`, `MarketCapPairList` or `PercentChangePairList` as the starting Pairlist Handler.
@@ -27,6 +27,7 @@ You may also use something like `.*DOWN/BTC` or `.*UP/BTC` to exclude leveraged
* [`RemotePairList`](#remotepairlist)
* [`MarketCapPairList`](#marketcappairlist)
* [`AgeFilter`](#agefilter)
* [`DelistFilter`](#delistfilter)
* [`FullTradesFilter`](#fulltradesfilter)
* [`OffsetFilter`](#offsetfilter)
* [`PerformanceFilter`](#performancefilter)
@@ -38,7 +39,7 @@ You may also use something like `.*DOWN/BTC` or `.*UP/BTC` to exclude leveraged
* [`VolatilityFilter`](#volatilityfilter)
!!! Tip "Testing pairlists"
Pairlist configurations can be quite tricky to get right. Best use the [`test-pairlist`](utils.md#test-pairlist) utility sub-command to test your configuration quickly.
Pairlist configurations can be quite tricky to get right. Best use freqUI in [webserver mode](freq-ui.md#webserver-mode) or the [`test-pairlist`](utils.md#test-pairlist) utility sub-command to test your Pairlist configuration quickly.
#### Static Pair List
@@ -180,7 +181,7 @@ More sophisticated approach can be used, by using `lookback_timeframe` for candl
* `refresh_period`: Defines the interval (in seconds) at which the pairlist will be refreshed. The default is 1800 seconds (30 minutes).
* `lookback_days`: Number of days to look back. When `lookback_days` is selected, the `lookback_timeframe` is defaulted to 1 day.
* `lookback_timeframe`: Timeframe to use for the lookback period.
* `lookback_period`: Number of periods to look back at.
* `lookback_period`: Number of periods to look back at.
When PercentChangePairList is used after other Pairlist Handlers, it will operate on the outputs of those handlers. If it is the leading Pairlist Handler, it will select pairs from all available markets with the specified stake currency.
@@ -270,7 +271,6 @@ You can limit the length of the pairlist with the optional parameter `number_ass
],
```
!!! Tip "Combining pairlists"
This pairlist can be combined with all other pairlists and filters for further pairlist reduction, and can also act as an "additional" pairlist, on top of already defined pairs.
`ProducerPairList` can also be used multiple times in sequence, combining the pairs from multiple producers.
@@ -312,7 +312,7 @@ The `pairlist_url` option specifies the URL of the remote server where the pairl
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
@@ -367,7 +367,7 @@ The optional `bearer_token` will be included in the requests Authorization Heade
#### MarketCapPairList
`MarketCapPairList` employs sorting/filtering of pairs by their marketcap rank based of CoinGecko. The returned pairlist will be sorted based of their marketcap ranks.
`MarketCapPairList` employs sorting/filtering of pairs by their marketcap rank based of CoinGecko. The returned pairlist will be sorted based of their marketcap ranks if used in whitelist `mode`.
```json
"pairlists": [
@@ -376,19 +376,26 @@ The optional `bearer_token` will be included in the requests Authorization Heade
"number_assets": 20,
"max_rank": 50,
"refresh_period": 86400,
"mode": "whitelist",
"categories": ["layer-1"]
}
]
```
`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.
`number_assets` defines the maximum number of pairs returned by the pairlist if used in whitelist `mode`. In blacklist `mode`, this setting will be ignored.
`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.
While using a `max_rank` bigger than 250 is supported, it's not recommended, as it'll cause multiple API calls to CoinGecko, which can lead to rate limit issues.
The `refresh_period` setting defines the interval (in seconds) at which the marketcap rank data will be refreshed. The default is 86,400 seconds (1 day). The pairlist cache (`refresh_period`) applies to both generating pairlists (when in the first position in the list) and filtering instances (when not in the first position in the list).
The `mode` setting defines whether the plugin will filters in (whitelist `mode`) or filters out (blacklist `mode`) top marketcap ranked coins. By default, the plugin will be in whitelist mode.
The `categories` setting specifies the [coingecko categories](https://www.coingecko.com/en/categories) from which to select coins from. The default is an empty list `[]`, meaning no category filtering is applied.
If an incorrect category string is chosen, the plugin will print the available categories from CoinGecko and fail. The category should be the ID of the category, for example, for `https://www.coingecko.com/en/categories/layer-1`, the category ID would be `layer-1`. You can pass multiple categories such as `["layer-1", "meme-token"]` to select from several categories.
Coins like 1000PEPE/USDT or KPEPE/USDT:USDT are detected on a best effort basis, with the prefixes `1000` and `K` being used to identify them.
!!! Warning "Many categories"
Each added category corresponds to one API call to CoinGecko. The more categories you add, the longer the pairlist generation will take, potentially causing rate limit issues.
@@ -405,6 +412,16 @@ be caught out buying before the pair has finished dropping in price.
This filter allows freqtrade to ignore pairs until they have been listed for at least `min_days_listed` days and listed before `max_days_listed`.
#### DelistFilter
Removes pairs that will be delisted on the exchange maximum `max_days_from_now` days from now (defaults to `0` which remove all future delisted pairs no matter how far from now). Currently this filter only supports following exchanges:
!!! Note "Available exchanges"
Delist filter is available on Bybit Futures, Bitget Futures and Binance, where Binance Futures will work for both dry and live modes, while Binance Spot is limited to live mode (for technical reasons).
!!! Warning "Backtesting"
`DelistFilter` does not support backtesting mode.
#### FullTradesFilter
Shrink whitelist to consist only in-trade pairs when the trade slots are full (when `max_open_trades` isn't being set to `-1` in the config).
@@ -436,7 +453,7 @@ Example to remove the first 10 pairs from the pairlist, and takes the next 20 (t
```
!!! Warning
When `OffsetFilter` is used to split a larger pairlist among multiple bots in combination with `VolumeFilter`
When `OffsetFilter` is used to split a larger pairlist among multiple bots in combination with `VolumeFilter`
it can not be guaranteed that pairs won't overlap due to slightly different refresh intervals for the
`VolumeFilter`.
@@ -599,7 +616,7 @@ Adding `"sort_direction": "asc"` or `"sort_direction": "desc"` enables sorting m
### 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.
The below example blacklists `BNB/BTC`, uses `VolumePairList` with `20` assets, sorting pairs by `quoteVolume`, then filter future delisted pairs using [`DelistFilter`](#delistfilter) and [`AgeFilter`](#agefilter) to remove pairs that are listed less than 10 days ago. After that [`PrecisionFilter`](#precisionfilter) and [`PriceFilter`](#pricefilter) are applied, filtering all assets where 1 price unit is > 1%. Then the [`SpreadFilter`](#spreadfilter) and [`VolatilityFilter`](#volatilityfilter) are applied and pairs are finally shuffled with the random seed set to some predefined value.
```json
"exchange": {
@@ -612,6 +629,10 @@ The below example blacklists `BNB/BTC`, uses `VolumePairList` with `20` assets,
"number_assets": 20,
"sort_key": "quoteVolume"
},
{
"method": "DelistFilter",
"max_days_from_now": 0,
},
{"method": "AgeFilter", "min_days_listed": 10},
{"method": "PrecisionFilter"},
{"method": "PriceFilter", "low_price_ratio": 0.01},

View File

@@ -1,11 +1,11 @@
This section will highlight a few projects from members of the community.
!!! Note
The projects below are for the most part not maintained by the freqtrade , therefore use your own caution before using them.
The projects below are for the most part not maintained by the freqtrade team, therefore use your own caution before using them.
- [Example freqtrade strategies](https://github.com/freqtrade/freqtrade-strategies/)
- [FrequentHippo - Statistics of dry/live runs and backtests](http://frequenthippo.ddns.net) (by hippocritical).
- [Online pairlist generator](https://remotepairlist.com/) (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).
- [FTUI - Terminal UI for freqtrade](https://github.com/freqtrade/ftui) (by Froggleston).
- [Bot Academy](https://botacademy.ddns.net/) (by stash86) - Blog about crypto bot projects.

View File

@@ -0,0 +1,18 @@
## Exit logic comparisons
Freqtrade allows your strategy to implement different exit logic using signal-based or callback-based functions.
This section aims to compare each different function, helping you to choose the one that best fits your needs.
* **`populate_exit_trend()`** - Vectorized signal-based exit logic using indicators in the main dataframe
**Use** to define exit signals based on indicators or other data that can be calculated in a vectorized manner.
🚫 **Don't use** to customize exit conditions for each individual trade, or if trade data is necessary to make an exit decision.
* **`custom_exit()`** - Custom exit logic that will fully exit a trade immediately, called for every open trade at every bot loop iteration until a trade is closed.
**Use** to specify exit conditions for each individual trade (including any additional adjusted orders using `adjust_trade_position()`), or if trade data is necessary to make an exit decision, e.g. using profit data to exit.
🚫 **Don't use** when you want to exit using vectorised indicator-based data (use a `populate_exit_trend()` signal instead), or as a proxy for `custom_stoploss()`, and be aware that rate-based exits in backtesting can be inaccurate.
* **`custom_stoploss()`** - Custom trailing stoploss, called for every open trade every iteration until a trade is closed. The value returned here is also used for [stoploss on exchange](stoploss.md#stop-loss-on-exchangefreqtrade).
**Use** to customize the stoploss logic to set a dynamic stoploss based on trade data or other conditions.
🚫 **Don't use** to exit a trade immediately based on a specific condition. Use `custom_exit()` for that purpose.
* **`custom_roi()`** - Custom ROI, called for every open trade every iteration until a trade is closed.
**Use** to specify a minimum ROI threshold ("take-profit") to exit a trade at this ROI level at some point within the trade duration, based on profit or other conditions.
🚫 **Don't use** to exit a trade immediately based on a specific condition. Use `custom_exit()`.
🚫 **Don't use** for static ROI. Use `minimal_roi`.

View File

@@ -1,14 +1,13 @@
![freqtrade](assets/freqtrade_poweredby.svg)
[![Freqtrade CI](https://github.com/freqtrade/freqtrade/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/freqtrade/freqtrade/actions/)
[![Freqtrade CI](https://github.com/freqtrade/freqtrade/actions/workflows/ci.yml/badge.svg?branch=develop)](https://github.com/freqtrade/freqtrade/actions/workflows/ci.yml)
[![DOI](https://joss.theoj.org/papers/10.21105/joss.04864/status.svg)](https://doi.org/10.21105/joss.04864)
[![Coverage Status](https://coveralls.io/repos/github/freqtrade/freqtrade/badge.svg?branch=develop&service=github)](https://coveralls.io/github/freqtrade/freqtrade?branch=develop)
[![Maintainability](https://api.codeclimate.com/v1/badges/5737e6d668200b7518ff/maintainability)](https://codeclimate.com/github/freqtrade/freqtrade/maintainability)
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/freqtrade/freqtrade" data-icon="octicon-star" data-size="large" aria-label="Star freqtrade/freqtrade on GitHub">Star</a>
<a class="github-button" href="https://github.com/freqtrade/freqtrade/fork" data-icon="octicon-repo-forked" data-size="large" aria-label="Fork freqtrade/freqtrade on GitHub">Fork</a>
<a class="github-button" href="https://github.com/freqtrade/freqtrade/archive/stable.zip" data-icon="octicon-cloud-download" data-size="large" aria-label="Download freqtrade/freqtrade on GitHub">Download</a>
<!-- GitHub action buttons -->
[:octicons-star-16: Star](https://github.com/freqtrade/freqtrade){ .md-button .md-button--sm }
[:octicons-repo-forked-16: Fork](https://github.com/freqtrade/freqtrade/fork){ .md-button .md-button--sm }
[:octicons-download-16: Download](https://github.com/freqtrade/freqtrade/archive/stable.zip){ .md-button .md-button--sm }
## Introduction
@@ -31,7 +30,6 @@ Freqtrade is a free and open source crypto trading bot written in Python. It is
- Optimize: Find the best parameters for your strategy using hyperoptimization which employs machine learning methods. You can optimize buy, sell, take profit (ROI), stop-loss and trailing stop-loss parameters for your strategy.
- Select markets: Create your static list or use an automatic one based on top traded volumes and/or prices (not available during backtesting). You can also explicitly blacklist markets you don't want to trade.
- Run: Test your strategy with simulated money (Dry-Run mode) or deploy it with real money (Live-Trade mode).
- Run using Edge (optional module): The concept is to find the best historical [trade expectancy](edge.md#expectancy) by markets based on variation of the stop-loss and then allow/reject markets to trade. The sizing of the trade is based on a risk of a percentage of your capital.
- Control/Monitor: Use Telegram or a WebUI (start/stop the bot, show profit/loss, daily summary, current open trades results, etc.).
- Analyze: Further analysis can be performed on either Backtesting data or Freqtrade trading history (SQL database), including automated standard plots, and methods to load the data into [interactive environments](data-analysis.md).
@@ -41,6 +39,7 @@ Please read the [exchange specific notes](exchanges.md) to learn about eventual,
- [X] [Binance](https://www.binance.com/)
- [X] [BingX](https://bingx.com/invite/0EM9RX)
- [X] [Bitget](https://www.bitget.com/)
- [X] [Bitmart](https://bitmart.com/)
- [X] [Bybit](https://bybit.com/)
- [X] [Gate.io](https://www.gate.io/ref/6266643)
@@ -54,6 +53,7 @@ Please read the [exchange specific notes](exchanges.md) to learn about eventual,
### Supported Futures Exchanges (experimental)
- [X] [Binance](https://www.binance.com/)
- [X] [Bitget](https://www.bitget.com/)
- [X] [Bybit](https://bybit.com/)
- [X] [Gate.io](https://www.gate.io/ref/6266643)
- [X] [Hyperliquid](https://hyperliquid.xyz/) (A decentralized exchange, or DEX)
@@ -88,7 +88,7 @@ To run this bot we recommend you a linux cloud instance with a minimum of:
Alternatively
- Python 3.10+
- Python 3.11+
- pip (pip3)
- git
- TA-Lib

View File

@@ -24,7 +24,7 @@ The easiest way to install and run Freqtrade is to clone the bot Github reposito
The `stable` branch contains the code of the last release (done usually once per month on an approximately one week old snapshot of the `develop` branch to prevent packaging bugs, so potentially it's more stable).
!!! Note
Python3.10 or higher and the corresponding `pip` are assumed to be available. The install-script will warn you and stop if that's not the case. `git` is also needed to clone the Freqtrade repository.
Either [uv](https://docs.astral.sh/uv/), or Python3.11 or higher and the corresponding `pip` are assumed to be available. The install-script will warn you and stop if that's not the case. `git` is also needed to clone the Freqtrade repository.
Also, python headers (`python<yourversion>-dev` / `python<yourversion>-devel`) must be available for the installation to complete successfully.
!!! Warning "Up-to-date clock"
@@ -42,11 +42,10 @@ These requirements apply to both [Script Installation](#script-installation) and
### Install guide
* [Python >= 3.10](http://docs.python-guide.org/en/latest/starting/installation/)
* [Python >= 3.11](http://docs.python-guide.org/en/latest/starting/installation/)
* [pip](https://pip.pypa.io/en/stable/installing/)
* [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git)
* [virtualenv](https://virtualenv.pypa.io/en/stable/installation.html) (Recommended)
* [TA-Lib](https://ta-lib.github.io/ta-lib-python/) (install instructions [below](#install-ta-lib))
### Install code
@@ -54,7 +53,7 @@ We've included/collected install instructions for Ubuntu, MacOS, and Windows. Th
OS Specific steps are listed first, the common section below is necessary for all systems.
!!! Note
Python3.10 or higher and the corresponding pip are assumed to be available.
Python3.11 or higher and the corresponding pip are assumed to be available.
=== "Debian/Ubuntu"
#### Install necessary dependencies
@@ -87,7 +86,7 @@ OS Specific steps are listed first, the common section below is necessary for al
```bash
sudo apt-get install python3-venv libatlas-base-dev cmake curl
sudo apt-get install python3-venv libatlas-base-dev cmake curl libffi-dev
# Use piwheels.org to speed up installation
sudo echo "[global]\nextra-index-url=https://www.piwheels.org/simple" > tee /etc/pip.conf
@@ -179,7 +178,7 @@ You can as well update, configure and reset the codebase of your bot with `./scr
** --install **
With this option, the script will install the bot and most dependencies:
You will need to have git and python3.10+ installed beforehand for this to work.
You will need to have git and python3.11+ installed beforehand for this to work.
* Mandatory software as: `ta-lib`
* Setup your virtualenv under `.venv/`
@@ -201,35 +200,6 @@ This option will hard reset your branch (only if you are on either `stable` or `
Make sure you fulfill the [Requirements](#requirements) and have downloaded the [Freqtrade repository](#freqtrade-repository).
### Install TA-Lib
#### TA-Lib script installation
```bash
sudo ./build_helpers/install_ta-lib.sh
```
!!! Note
This will use the ta-lib tar.gz included in this repository.
##### TA-Lib manual installation
[Official installation guide](https://ta-lib.github.io/ta-lib-python/install.html)
```bash
wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz
tar xvzf ta-lib-0.4.0-src.tar.gz
cd ta-lib
sed -i.bak "s|0.00000001|0.000000000000000001 |g" src/ta_func/ta_utility.h
./configure --prefix=/usr/local
make
sudo make install
# On debian based systems (debian, ubuntu, ...) - updating ldconfig might be necessary.
sudo ldconfig
cd ..
rm -rf ./ta-lib*
```
### Setup Python virtual environment (virtualenv)
You will run freqtrade in separated `virtual environment`
@@ -332,16 +302,6 @@ python3 -m pip install -r requirements.txt
python3 -m pip install -e .
```
Patch conda libta-lib (Linux only)
```bash
# Ensure that the environment is active!
conda activate freqtrade
cd build_helpers
bash install_ta-lib.sh ${CONDA_PREFIX} nosudo
```
[You are now ready](#you-are-ready) to run the bot.
### Important shortcuts

View File

@@ -17,7 +17,7 @@ If you already have an existing strategy, please read the [strategy migration gu
## Shorting
Shorting is not possible when trading with [`trading_mode`](#leverage-trading-modes) set to `spot`. To short trade, `trading_mode` must be set to `margin`(currently unavailable) or [`futures`](#futures), with [`margin_mode`](#margin-mode) set to `cross`(currently unavailable) or [`isolated`](#isolated-margin-mode)
Shorting is not possible when trading with [`trading_mode`](#leverage-trading-modes) set to `spot`. To short trade, `trading_mode` must be set to `margin`(currently unavailable) or [`futures`](#futures), with [`margin_mode`](#margin-mode) set to [`cross`](#cross-margin-mode) or [`isolated`](#isolated-margin-mode)
For a strategy to short, the strategy class must set the class variable `can_short = True`
@@ -72,7 +72,7 @@ A futures pair will therefore have the naming of `base/quote:settle` (e.g. `ETH/
On top of `trading_mode` - you will also have to configure your `margin_mode`.
While freqtrade currently only supports one margin mode, this will change, and by configuring it now you're all set for future updates.
The possible values are: `isolated`, or `cross`(*currently unavailable*).
The possible values are: `isolated`, or `cross`.
#### Isolated margin mode
@@ -92,6 +92,11 @@ One account is used to share collateral between markets (trading pairs). Margin
Please read the [exchange specific notes](exchanges.md) for exchanges that support this mode and how they differ.
!!! Warning "Increased risk of liquidation"
Cross margin mode increases the risk of full account liquidation, as all trades share the same collateral.
A loss on one trade can affect the liquidation price of other trades.
Also, cross-position influence may not be fully simulated in dry-run or backtesting mode.
## Set leverage to use
Different strategies and risk profiles will require different levels of leverage.

View File

@@ -1,72 +1,108 @@
# Lookahead analysis
This page explains how to validate your strategy in terms of look ahead bias.
This page explains how to validate your strategy in terms of lookahead bias.
Checking look ahead bias is the bane of any strategy since it is sometimes very easy to introduce backtest bias -
but very hard to detect.
Lookahead bias is the bane of any strategy since it is sometimes very easy to introduce this bias, but can be very hard to detect.
Backtesting initializes all timestamps at once and calculates all indicators in the beginning.
This means that if your indicators or entry/exit signals could look into future candles and falsify your backtest.
Backtesting initializes all timestamps (loads the whole dataframe into memory) and calculates all indicators at once.
This means that if your indicators or entry/exit signals look into future candles, this will falsify your backtest.
Lookahead-analysis requires historic data to be available.
The `lookahead-analysis` command requires historic data to be available.
To learn how to get data for the pairs and exchange you're interested in,
head over to the [Data Downloading](data-download.md) section of the documentation.
`lookahead-analysis` also supports freqai strategies.
This command is built upon backtesting since it internally chains backtests and pokes at the strategy to provoke it to show look ahead bias.
This is done by not looking at the strategy itself - but at the results it returned.
The results are things like changed indicator-values and moved entries/exits compared to the full backtest.
This command internally chains backtests and pokes at the strategy to provoke it to show lookahead bias.
This is done by not looking at the strategy code itself, but at changed indicator values and moved entries/exits compared to the full backtest.
You can use commands of [Backtesting](backtesting.md).
It also supports the lookahead-analysis of freqai strategies.
`lookahead-analysis` can use the typical options of [Backtesting](backtesting.md), but forces the following options:
- `--cache` is forced to "none".
- `--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.
- `order_types` are forced to be "market" (late entries) unless `--lookahead-allow-limit-orders` is set.
Those are set to avoid users accidentally generating false positives.
These are set to avoid users accidentally generating false positives.
## Lookahead-analysis command reference
--8<-- "commands/lookahead-analysis.md"
!!! Note ""
The above Output was reduced to options `lookahead-analysis` adds on top of regular backtesting commands.
### Summary
Checks a given strategy for look ahead bias via lookahead-analysis
Look ahead bias means that the backtest uses data from future candles thereby not making it viable beyond backtesting
and producing false hopes for the one backtesting.
!!! Note
The above output was reduced to options that `lookahead-analysis` adds on top of regular backtesting commands.
### Introduction
Many strategies - without the programmer knowing - have fallen prey to look ahead bias.
Many strategies, without the programmer knowing, have fallen prey to lookahead bias.
This typically makes the strategy backtest look profitable, sometimes to extremes, but this is not realistic as the strategy is "cheating" by looking at data it would not have in dry or live modes.
Any backtest will populate the full dataframe including all time stamps at the beginning.
The reason why strategies can "cheat" is because the freqtrade backtesting process populates the full dataframe including all candle timestamps at the outset.
If the programmer is not careful or oblivious how things work internally
(which sometimes can be really hard to find out) then it will just look into the future making the strategy amazing
but not realistic.
(which sometimes can be really hard to find out) then the strategy will look into the future.
This command is made to try to verify the validity in the form of the aforementioned look ahead bias.
This command is made to try to verify the validity in the form of the aforementioned lookahead bias.
### How does the command work?
It will start with a backtest of all pairs to generate a baseline for indicators and entries/exits.
After the backtest ran, it will look if the `minimum-trade-amount` is met
and if not cancel the lookahead-analysis for this strategy.
After this initial backtest runs, it will look if the `minimum-trade-amount` is met and if not cancel the lookahead-analysis for this strategy.
If this happens, use a wider timerange to get more trades for the analysis, or use a timerange where more trades occur.
After setting the baseline it will then do additional runs for every entry and exit separately.
When a verification-backtest is done, it will compare the indicators as the signal (either entry or exit) and report the bias.
After all signals have been verified or falsified a result-table will be generated for the user to see.
After setting the baseline it will then do additional backtest runs for every entry and exit separately.
When these verification backtests complete, it will compare both dataframes (baseline and sliced) for any difference in columns' value and report the bias.
After all signals have been verified or falsified a result table will be generated for the user to see.
### How to find and remove bias? How can I salvage a biased strategy?
If you found a biased strategy online and want to have the same results, just without bias,
then you will be out of luck most of the time.
Usually the bias in the strategy is THE driving factor for "too good to be true" profits.
Removing conditions or indicators that push the profits up from bias will usually make the strategy significantly worse.
You might be able to salvage it partially if the biased indicators or conditions are not the core of the strategy, or there
are other entry and exit signals that are not biased.
### Examples of lookahead-bias
- `shift(-10)` looks 10 candles into the future.
- Using `iloc[]` in populate_* functions to access a specific row in the dataframe.
- For-loops are prone to introduce lookahead bias if you don't tightly control which numbers are looped through.
- Aggregation functions like `.mean()`, `.min()` and `.max()`, without a rolling window,
will calculate the value over the **whole** dataframe, so the signal candle will "see" a value including future candles.
A non-biased example would be to look back candles using `rolling()` instead:
e.g. `dataframe['volume_mean_12'] = dataframe['volume'].rolling(12).mean()`
- `ta.MACD(dataframe, 12, 26, 1)` will introduce bias with a signalperiod of 1.
### What do the columns in the results table mean?
- `filename`: name of the checked strategy file
- `strategy`: checked strategy class name
- `has_bias`: result of the lookahead-analysis. `No` would be good, `Yes` would be bad.
- `total_signals`: number of checked signals (default is 20)
- `biased_entry_signals`: found bias in that many entries
- `biased_exit_signals`: found bias in that many exits
- `biased_indicators`: shows you the indicators themselves that are defined in populate_indicators
You might get false positives in the `biased_exit_signals` if you have biased entry signals paired with those exits.
However, a biased entry will usually result in a biased exit too,
even if the exit itself does not produce the bias -
especially if your entry and exit conditions use the same biased indicator.
**Address the bias in the entries first, then address the exits.**
### Caveats
- `lookahead-analysis` can only verify / falsify the trades it calculated and verified.
If the strategy has many different signals / signal types, it's up to you to select appropriate parameters to ensure that all signals have triggered at least once. Not triggered signals will not have been verified.
This could lead to a false-negative (the strategy will then be reported as non-biased).
- `lookahead-analysis` has access to everything that backtesting has too.
Please don't provoke any configs like enabling position stacking.
If you decide to do so, then make doubly sure that you won't ever run out of `max_open_trades` amount and neither leftover money in your wallet.
- In the results table, the `biased_indicators` column will falsely flag FreqAI target indicators defined in `set_freqai_targets()` as biased. These are not biased and can safely be ignored.
If the strategy has many different signals / signal types, it's up to you to select appropriate parameters to ensure that all signals have triggered at least once. Signals that are not triggered will not have been verified.
This would lead to a false-negative, i.e. the strategy will be reported as non-biased.
- `lookahead-analysis` has access to the same backtesting options and this can introduce problems.
Please don't use any options like enabling position stacking as this will distort the number of checked signals.
If you decide to do so, then make doubly sure that you won't ever run out of `max_open_trades` slots,
and that you have enough capital in the backtest wallet configuration.
- limit orders in combination with `custom_entry_price()` and `custom_exit_price()` callbacks can cause late / delayed entries and exists, causing false positives.
To avoid this - market orders are forced for this command. This implicitly means that `custom_entry_price()` and `custom_exit_price()` callbacks are not called.
Using `--lookahead-allow-limit-orders` will skip the override and use your configured order types - however has shown to eventually produce false positives.
- In the results table, the `biased_indicators` column
will falsely flag FreqAI target indicators defined in `set_freqai_targets()` as biased.
**These are not biased and can safely be ignored.**

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