chore: remove explicit ohlcv_candle_limit in favor of config option
This commit is contained in:
@@ -7,7 +7,7 @@ from typing import Any
|
|||||||
import ccxt
|
import ccxt
|
||||||
|
|
||||||
from freqtrade.constants import BuySell
|
from freqtrade.constants import BuySell
|
||||||
from freqtrade.enums import CandleType, MarginMode, PriceType, TradingMode
|
from freqtrade.enums import MarginMode, PriceType, TradingMode
|
||||||
from freqtrade.exceptions import DDosProtection, ExchangeError, OperationalException, TemporaryError
|
from freqtrade.exceptions import DDosProtection, ExchangeError, OperationalException, TemporaryError
|
||||||
from freqtrade.exchange import Exchange
|
from freqtrade.exchange import Exchange
|
||||||
from freqtrade.exchange.common import retrier
|
from freqtrade.exchange.common import retrier
|
||||||
@@ -47,6 +47,7 @@ class Bybit(Exchange):
|
|||||||
"ohlcv_has_history": True,
|
"ohlcv_has_history": True,
|
||||||
"mark_ohlcv_timeframe": "4h",
|
"mark_ohlcv_timeframe": "4h",
|
||||||
"funding_fee_timeframe": "8h",
|
"funding_fee_timeframe": "8h",
|
||||||
|
"funding_fee_candle_limit": 200,
|
||||||
"stoploss_on_exchange": True,
|
"stoploss_on_exchange": True,
|
||||||
"stoploss_order_types": {"limit": "limit", "market": "market"},
|
"stoploss_order_types": {"limit": "limit", "market": "market"},
|
||||||
# bybit response parsing fails to populate stopLossPrice
|
# bybit response parsing fails to populate stopLossPrice
|
||||||
@@ -114,14 +115,6 @@ class Bybit(Exchange):
|
|||||||
except ccxt.BaseError as e:
|
except ccxt.BaseError as e:
|
||||||
raise OperationalException(e) from e
|
raise OperationalException(e) from e
|
||||||
|
|
||||||
def ohlcv_candle_limit(
|
|
||||||
self, timeframe: str, candle_type: CandleType, since_ms: int | None = None
|
|
||||||
) -> int:
|
|
||||||
if candle_type == CandleType.FUNDING_RATE:
|
|
||||||
return 200
|
|
||||||
|
|
||||||
return super().ohlcv_candle_limit(timeframe, candle_type, since_ms)
|
|
||||||
|
|
||||||
def _lev_prep(self, pair: str, leverage: float, side: BuySell, accept_fail: bool = False):
|
def _lev_prep(self, pair: str, leverage: float, side: BuySell, accept_fail: bool = False):
|
||||||
if self.trading_mode != TradingMode.SPOT:
|
if self.trading_mode != TradingMode.SPOT:
|
||||||
params = {"leverage": leverage}
|
params = {"leverage": leverage}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import logging
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from freqtrade.constants import BuySell
|
from freqtrade.constants import BuySell
|
||||||
from freqtrade.enums import CandleType, MarginMode, TradingMode
|
from freqtrade.enums import MarginMode, TradingMode
|
||||||
from freqtrade.exceptions import ExchangeError, OperationalException
|
from freqtrade.exceptions import ExchangeError, OperationalException
|
||||||
from freqtrade.exchange import Exchange
|
from freqtrade.exchange import Exchange
|
||||||
from freqtrade.exchange.exchange_types import FtHas
|
from freqtrade.exchange.exchange_types import FtHas
|
||||||
@@ -26,12 +26,13 @@ class Hyperliquid(Exchange):
|
|||||||
"tickers_have_bid_ask": False,
|
"tickers_have_bid_ask": False,
|
||||||
"stoploss_on_exchange": False,
|
"stoploss_on_exchange": False,
|
||||||
"exchange_has_overrides": {"fetchTrades": False},
|
"exchange_has_overrides": {"fetchTrades": False},
|
||||||
"funding_fee_timeframe": "1h",
|
|
||||||
"marketOrderRequiresPrice": True,
|
"marketOrderRequiresPrice": True,
|
||||||
}
|
}
|
||||||
_ft_has_futures: FtHas = {
|
_ft_has_futures: FtHas = {
|
||||||
"stoploss_on_exchange": True,
|
"stoploss_on_exchange": True,
|
||||||
"stoploss_order_types": {"limit": "limit"},
|
"stoploss_order_types": {"limit": "limit"},
|
||||||
|
"funding_fee_timeframe": "1h",
|
||||||
|
"funding_fee_candle_limit": 500,
|
||||||
}
|
}
|
||||||
|
|
||||||
_supported_trading_mode_margin_pairs: list[tuple[TradingMode, MarginMode]] = [
|
_supported_trading_mode_margin_pairs: list[tuple[TradingMode, MarginMode]] = [
|
||||||
@@ -54,15 +55,6 @@ class Hyperliquid(Exchange):
|
|||||||
else:
|
else:
|
||||||
return 1.0
|
return 1.0
|
||||||
|
|
||||||
def ohlcv_candle_limit(
|
|
||||||
self, timeframe: str, candle_type: CandleType, since_ms: int | None = None
|
|
||||||
) -> int:
|
|
||||||
# Funding rate candles have a different limit
|
|
||||||
if candle_type == CandleType.FUNDING_RATE:
|
|
||||||
return 500
|
|
||||||
|
|
||||||
return super().ohlcv_candle_limit(timeframe, candle_type, since_ms)
|
|
||||||
|
|
||||||
def _lev_prep(self, pair: str, leverage: float, side: BuySell, accept_fail: bool = False):
|
def _lev_prep(self, pair: str, leverage: float, side: BuySell, accept_fail: bool = False):
|
||||||
if self.trading_mode != TradingMode.SPOT:
|
if self.trading_mode != TradingMode.SPOT:
|
||||||
# Hyperliquid expects leverage to be an int
|
# Hyperliquid expects leverage to be an int
|
||||||
|
|||||||
Reference in New Issue
Block a user