Commit Graph

31875 Commits

Author SHA1 Message Date
Matthias cea1700eaa chore: drop starlette upper version bound 2026-03-23 07:20:08 +01:00
Matthias bb2f4ac37e fix: migrate from add_event_handler to lifespan
add_event_handler was removed in starlette 1.0.0
2026-03-23 07:19:53 +01:00
Matthias 996123ea52 Merge pull request #12973 from freqtrade/dependabot/pip/develop/ruff-0.15.6
chore(deps-dev): bump ruff from 0.15.5 to 0.15.6
2026-03-23 07:19:43 +01:00
Matthias 252b7b5e68 chore: bump scipy-stubs in pre-commit config 2026-03-23 07:06:29 +01:00
dependabot[bot] fefba87922 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.7.4 to 9.7.5
- [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.7.4...9.7.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-23 06:04:51 +00:00
dependabot[bot] 434911c1cf 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.17.1.1 to 1.17.1.2
- [Release notes](https://github.com/scipy/scipy-stubs/releases)
- [Commits](https://github.com/scipy/scipy-stubs/compare/v1.17.1.1...v1.17.1.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-23 06:04:20 +00:00
dependabot[bot] 1d947ba21a chore(deps): bump actions/download-artifact in the actions group
Bumps the actions group with 1 update: [actions/download-artifact](https://github.com/actions/download-artifact).


Updates `actions/download-artifact` from 8.0.0 to 8.0.1
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/70fc10c6e5e1ce46ad2ea6f2b72d43f7d47b13c3...3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-23 05:56:41 +00:00
dependabot[bot] 55a6591f10 chore(deps): bump cachetools from 7.0.4 to 7.0.5
Bumps [cachetools](https://github.com/tkem/cachetools) from 7.0.4 to 7.0.5.
- [Changelog](https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/tkem/cachetools/compare/v7.0.4...v7.0.5)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-23 05:55:39 +00:00
dependabot[bot] 266fe5c6cb chore(deps): bump numpy from 2.4.2 to 2.4.3
Bumps [numpy](https://github.com/numpy/numpy) from 2.4.2 to 2.4.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.4.2...v2.4.3)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-23 05:51:35 +00:00
dependabot[bot] 3d4395ebe6 chore(deps): bump filelock from 3.25.0 to 3.25.2
Bumps [filelock](https://github.com/tox-dev/py-filelock) from 3.25.0 to 3.25.2.
- [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.25.0...3.25.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-23 05:44:30 +00:00
dependabot[bot] 463f0050ed chore(deps-dev): bump ruff from 0.15.5 to 0.15.6
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.15.5 to 0.15.6.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.15.5...0.15.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-23 05:42:49 +00:00
dependabot[bot] b0b9c8d43a chore(deps): bump pyjwt from 2.12.0 to 2.12.1
Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.12.0 to 2.12.1.
- [Release notes](https://github.com/jpadilla/pyjwt/releases)
- [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-23 05:41:35 +00:00
Matthias 94d0080208 chore: pin starlette to < 1.0.0 2026-03-23 06:37:34 +01:00
Matthias 250156f1a3 Merge pull request #12706 from hallonstedt/feature-krakenfutures
Feature krakenfutures
2026-03-22 19:22:43 +01:00
Matthias 724318c43e test(krakenfutures): Add canceled order test 2026-03-22 19:07:19 +01:00
Matthias 37dbaae8aa feat(krakenfutures): exchange_override fetchOrders to false
to force fallback to individual orders
2026-03-22 19:07:19 +01:00
Matthias 1bd0404503 fix: workaround for missing "filled" parsing 2026-03-22 19:07:19 +01:00
matstedt eba9c24510 refactor(krakenfutures): drop resolved trigger price workaround 2026-03-22 19:07:19 +01:00
Matthias 6bf1901f9b chore: bump ccxt to 4.5.44 2026-03-22 19:07:19 +01:00
Matthias bd9697e6be test: fix krakenfutures tests 2026-03-22 19:07:19 +01:00
Matthias 200b9da2a2 test: remove unnecessary test
ccxt limit is tested as part of test_ohlcv_limit_futures in compat testing
2026-03-22 19:07:19 +01:00
Matthias 32fecd7b15 test(krakenfutures): improve _ft_has test 2026-03-22 19:07:19 +01:00
Matthias f8b99c6e66 test(krakenfutures): update stop strip test 2026-03-22 19:07:19 +01:00
Matthias 0fda77a39c chore: filter open orders by pair 2026-03-22 19:07:19 +01:00
Matthias 57c7edfe26 test: update krakenfutures live test 2026-03-22 19:07:19 +01:00
Matthias 437d0a264c test: Improve test sequence (simplifies analysis) 2026-03-22 19:07:19 +01:00
Matthias 3a28c91635 test: add regular market order 2026-03-22 19:07:19 +01:00
Matthias 1f4c188dbf test: add futures market-parsing test 2026-03-22 19:07:19 +01:00
matstedt 7f9b1a9f90 krakenfutures: correct ccxt issue link to 27996 2026-03-22 19:07:19 +01:00
matstedt 5096ec8a50 krakenfutures: defer order-level fee aggregation 2026-03-22 19:07:19 +01:00
matstedt 35d812a271 krakenfutures: run order adjustments via _order_contracts_to_amount 2026-03-22 19:07:19 +01:00
matstedt 1e79c1961b krakenfutures: aggregate order fees in _adjust_krakenfutures_order 2026-03-22 19:07:19 +01:00
matstedt bfd758d353 krakenfutures: recompute average and cost from fills for terminal orders 2026-03-22 19:07:19 +01:00
matstedt b1ef0bf58d krakenfutures: use safe_value_nested for trigger price extraction 2026-03-22 19:07:19 +01:00
Matthias d25b2ea10a fix: crash on comparison of filled=None 2026-03-22 19:07:19 +01:00
matstedt c533e48310 refactor: remove funding_fee_candle_limit override
Kraken Futures now provides 1 year of hourly funding rate history.
The previous limit of 700 candles (29 days) was a workaround for
limited API retention. Freqtrade paginates funding rate fetches
automatically, so the CCXT default (2000) works correctly.
2026-03-22 19:07:19 +01:00
matstedt a1e9b6bea8 fix: compute average price from trades and enrich fees for Kraken Futures
Kraken Futures' /orders/status returns limitPrice (not fill price) and
/fills omits fee amounts (only fillType). This adds:

- _adjust_krakenfutures_order: fetches trades for closed/filled orders
  with average=None and computes VWAP average price.
- get_trades_for_order override: enriches trades with calculated fees
  from the market's maker/taker fee schedule.

Tests: 7 new tests covering VWAP computation, fee enrichment with
maker/taker rates, and preservation of existing values.
2026-03-22 19:07:19 +01:00
matstedt 0dfd7324bd fix: extract triggerPrice from priceTriggerOptions for stoploss orders
CCXT's krakenfutures parse_order misses triggerPrice when the
/orders/status endpoint nests it inside priceTriggerOptions.
Override _order_contracts_to_amount to populate triggerPrice and
stopPrice from info.order.priceTriggerOptions.triggerPrice.
2026-03-22 19:07:19 +01:00
Matthias 3c4b07ce46 test: update krakenfutures_tests for usage of __name__ 2026-03-22 19:07:19 +01:00
Matthias d6e6c9d038 chore: log fetch_order responses for better tracability 2026-03-22 19:07:19 +01:00
Matthias 027ac3d66c test: simplify longrun tests 2026-03-22 19:07:19 +01:00
matstedt 8c1674b415 fix(tests): use CandleType.FUTURES in test_ohlcv_limit_futures
The futures_only ternary incorrectly used CandleType.SPOT for exchanges
that support both spot and futures (binance, gate), causing candle limit
mismatch against candle_count_futures.
2026-03-22 19:07:19 +01:00
matstedt eaa35d7b47 style: ruff format 2026-03-22 19:07:19 +01:00
matstedt 0dc26584cc krakenfutures: add funding_fee_candle_limit for limited history
Kraken Futures retains only ~29 days of hourly funding rate history.
Set funding_fee_candle_limit to 700 so ohlcv_candle_limit returns the
correct cap for CandleType.FUNDING_RATE instead of the general OHLCV
limit.
2026-03-22 19:07:19 +01:00
matstedt cb2e50abcf fix(tests): restore exchange_params return in get_futures_exchange 2026-03-22 19:07:19 +01:00
matstedt f0aedc8d23 test(krakenfutures): align tests with simplified stoploss handling
- Add test for stoploss_query_requires_stop_flag in _ft_has.
- Replace _fix_trigger_order_id tests with base class integration tests
  (verify stop=True is passed by fetch_stoploss_order/cancel_stoploss_order).
- Add tests for stop param flow: passed to history endpoints, stripped
  from open orders query.
- Remove obsolete cancel_stoploss_order/fetch_stoploss_order override tests.
2026-03-22 19:07:19 +01:00
matstedt 086e1d8bad refactor(krakenfutures): simplify stoploss handling after ccxt fix
- Add stoploss_query_requires_stop_flag to _ft_has so the base class
  handles fetch_stoploss_order and cancel_stoploss_order (adds stop=True
  which CCXT maps to trigger history endpoints).
- Remove _fix_trigger_order_id — ccxt 4.5.38 now parses order IDs
  correctly in all response formats.
- Remove cancel_stoploss_order override — base class handles it.
- Remove fetch_stoploss_order override — base class handles it.
- Simplify _fetch_order_fallback — stop=True flows from base class,
  no need to auto-retry with trigger=True.

Addresses review comments from freqtrade/freqtrade#12706.
2026-03-22 19:07:19 +01:00
Matthias 83c2ca5a90 test: krakenfutures has no websockets at the moment 2026-03-22 19:07:19 +01:00
Matthias 68c8dd4e18 chore: krakenfutures tickers don't have volume 2026-03-22 19:07:19 +01:00
Matthias b25defb8b9 refactor: invert balance logic to simplify function 2026-03-22 19:07:19 +01:00