feat: update rpc_balance to fetch spot tickers
Happens if there is no market for the given pair
This commit is contained in:
+18
-7
@@ -7,7 +7,7 @@ from abc import abstractmethod
|
|||||||
from collections.abc import Generator, Sequence
|
from collections.abc import Generator, Sequence
|
||||||
from datetime import date, datetime, timedelta, timezone
|
from datetime import date, datetime, timedelta, timezone
|
||||||
from math import isnan
|
from math import isnan
|
||||||
from typing import Any, cast
|
from typing import Any
|
||||||
|
|
||||||
import psutil
|
import psutil
|
||||||
from dateutil.relativedelta import relativedelta
|
from dateutil.relativedelta import relativedelta
|
||||||
@@ -682,12 +682,23 @@ class RPC:
|
|||||||
est_bot_stake = amount
|
est_bot_stake = amount
|
||||||
else:
|
else:
|
||||||
pair = self._freqtrade.exchange.get_valid_pair_combination(coin, stake_currency)
|
pair = self._freqtrade.exchange.get_valid_pair_combination(coin, stake_currency)
|
||||||
rate: float | None = cast(Ticker, tickers.get(pair, {})).get("last", None)
|
ticker: Ticker | None = tickers.get(pair, None)
|
||||||
if rate:
|
if not ticker:
|
||||||
if pair.startswith(stake_currency) and not pair.endswith(stake_currency):
|
tickers_spot: Tickers = self._freqtrade.exchange.get_tickers(
|
||||||
rate = 1.0 / rate
|
cached=True,
|
||||||
est_stake = rate * balance.total
|
market_type=TradingMode.SPOT
|
||||||
est_bot_stake = rate * amount
|
if self._config.get("trading_mode", TradingMode.SPOT) != TradingMode.SPOT
|
||||||
|
else TradingMode.FUTURES,
|
||||||
|
)
|
||||||
|
ticker = tickers_spot.get(pair, None)
|
||||||
|
|
||||||
|
if ticker:
|
||||||
|
rate: float | None = ticker.get("last", None)
|
||||||
|
if rate:
|
||||||
|
if pair.startswith(stake_currency) and not pair.endswith(stake_currency):
|
||||||
|
rate = 1.0 / rate
|
||||||
|
est_stake = rate * balance.total
|
||||||
|
est_bot_stake = rate * amount
|
||||||
|
|
||||||
return est_stake, est_bot_stake
|
return est_stake, est_bot_stake
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user