chore: remove pointless futures stuff from kraken class

(kraken futures can only be supported via krakenfutures class)
This commit is contained in:
Matthias
2026-03-21 14:00:57 +01:00
parent bbb1fecb02
commit a2b1c3710f
-50
View File
@@ -1,11 +1,9 @@
"""Kraken exchange subclass""" """Kraken exchange subclass"""
import logging import logging
from datetime import datetime
from typing import Any from typing import Any
import ccxt import ccxt
from pandas import DataFrame
from freqtrade.constants import BuySell from freqtrade.constants import BuySell
from freqtrade.enums import MarginMode, TradingMode from freqtrade.enums import MarginMode, TradingMode
@@ -40,7 +38,6 @@ class Kraken(Exchange):
_supported_trading_mode_margin_pairs: list[tuple[TradingMode, MarginMode]] = [ _supported_trading_mode_margin_pairs: list[tuple[TradingMode, MarginMode]] = [
(TradingMode.SPOT, MarginMode.NONE), (TradingMode.SPOT, MarginMode.NONE),
# (TradingMode.MARGIN, MarginMode.CROSS), # (TradingMode.MARGIN, MarginMode.CROSS),
# (TradingMode.FUTURES, MarginMode.CROSS)
] ]
def market_is_tradable(self, market: dict[str, Any]) -> bool: def market_is_tradable(self, market: dict[str, Any]) -> bool:
@@ -114,18 +111,6 @@ class Kraken(Exchange):
except ccxt.BaseError as e: except ccxt.BaseError as e:
raise OperationalException(e) from e raise OperationalException(e) from e
def _set_leverage(
self,
leverage: float,
pair: str | None = None,
accept_fail: bool = False,
):
"""
Kraken set's the leverage as an option in the order object, so we need to
add it to params
"""
return
def _get_params( def _get_params(
self, self,
side: BuySell, side: BuySell,
@@ -148,41 +133,6 @@ class Kraken(Exchange):
params["postOnly"] = True params["postOnly"] = True
return params return params
def calculate_funding_fees(
self,
df: DataFrame,
amount: float,
is_short: bool,
open_date: datetime,
close_date: datetime,
time_in_ratio: float | None = None,
) -> float:
"""
# ! This method will always error when run by Freqtrade because time_in_ratio is never
# ! passed to _get_funding_fee. For kraken futures to work in dry run and backtesting
# ! functionality must be added that passes the parameter time_in_ratio to
# ! _get_funding_fee when using Kraken
calculates the sum of all funding fees that occurred for a pair during a futures trade
:param df: Dataframe containing combined funding and mark rates
as `open_fund` and `open_mark`.
:param amount: The quantity of the trade
:param is_short: trade direction
:param open_date: The date and time that the trade started
:param close_date: The date and time that the trade ended
:param time_in_ratio: Not used by most exchange classes
"""
if not time_in_ratio:
raise OperationalException(
f"time_in_ratio is required for {self.name}._get_funding_fee"
)
fees: float = 0
if not df.empty:
df = df[(df["date"] >= open_date) & (df["date"] <= close_date)]
fees = sum(df["open_fund"] * df["open_mark"] * amount * time_in_ratio)
return fees if is_short else -fees
def _get_trade_pagination_next_value(self, trades: list[dict]): def _get_trade_pagination_next_value(self, trades: list[dict]):
""" """
Extract pagination id for the next "from_id" value Extract pagination id for the next "from_id" value