Commit Graph

31344 Commits

Author SHA1 Message Date
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
Matthias b190079aa8 test: Simplify live test setup 2026-03-22 19:07:19 +01:00
Matthias a831a6ee34 docs: align krakenfutures link in Readme.md 2026-03-22 19:07:19 +01:00
matstedt bfbae5d040 fix(krakenfutures): re-introduce improved stoploss lookup for trigger orders 2026-03-22 19:07:19 +01:00
matstedt bb2f19deaa krakenfutures: replace assert with typed None-guard for ruff S101 2026-03-22 19:07:19 +01:00
matstedt cfa4924b8e krakenfutures: satisfy mypy narrowing in flex USD used calculation 2026-03-22 19:07:19 +01:00
matstedt 4f8291384d docs: align Kraken Futures config and collateral guidance 2026-03-22 19:07:05 +01:00
matstedt f81e335b27 krakenfutures: simplify order/balance handling and harden error mapping 2026-03-22 19:07:05 +01:00
matstedt 756f178ec3 exchange_utils: use ccxt exchange.has directly in capability checks 2026-03-22 19:07:05 +01:00
Matthias c68c6896d7 chore: revert odd, unnecessary modifications 2026-03-22 19:07:05 +01:00
Matthias 712fd8ac14 chore: import formatting 2026-03-22 19:07:05 +01:00
Matthias cb6a1267b6 chore: remove pointless comments 2026-03-22 19:07:05 +01:00
matstedt 1c77bd6f5d krakenfutures: improve fetch_order fallback 2026-03-22 19:07:05 +01:00
Matthias 1d0bcbe234 test: remove no longer necessary test 2026-03-22 19:07:05 +01:00
Matthias 445a22222a chore: remove leverage tier fixing code 2026-03-22 19:07:04 +01:00
matstedt ba80329eda krakenfutures: guard maxNotional for non‑contract tiers 2026-03-22 19:07:04 +01:00
matstedt a8d7a72cec tests: drop unused krakenfutures spot leverage flag 2026-03-22 19:07:04 +01:00
matstedt 6ed470884b krakenfutures: backfill leverage tier notionals 2026-03-22 19:07:04 +01:00
matstedt 0d4dadd63f docs: add Kraken to the list of supported Futures Exchanges 2026-03-22 19:07:04 +01:00
matstedt 0cab0e8ac5 fix(tests): use myokx for non-futures list-exchanges check 2026-03-22 19:07:04 +01:00
matstedt 9ddf464c03 fix(exchange): drop unused get_ft_has override plumbing 2026-03-22 19:07:04 +01:00
matstedt 06abc95b2e test: fix contradictory sorting by ruff and isort 7 2026-03-22 19:07:04 +01:00
matstedt b4daabe491 test: re-organize imports 2026-03-22 19:07:04 +01:00
matstedt e5a23f5afd test: fix import order in exchange utils test 2026-03-22 19:07:04 +01:00
matstedt 7ee4338b1f tests: increase coverage - krakenfutures edge paths and ft_has overrides 2026-03-22 19:07:04 +01:00
matstedt 3f6e7ca4c1 tests: cover krakenfutures currency sum and funding fees 2026-03-22 19:07:04 +01:00
matstedt 1345cfdbee exchange: fallback to canceled orders for krakenfutures fetch_order; add tests 2026-03-22 19:07:04 +01:00
matstedt f2780c7c68 exchange: drop ccxt workarounds; keep closed-order fallback 2026-03-22 19:07:04 +01:00
matstedt 1254bd5bab tests: align krakenfutures ohlcv limit check 2026-03-22 19:07:04 +01:00