Fix #1981 - Detect reverted currency pairs
This commit is contained in:
parent
b43594e4eb
commit
fcdbe846e5
@ -270,6 +270,15 @@ class Exchange(object):
|
|||||||
f'Pair {pair} is not available on {self.name}. '
|
f'Pair {pair} is not available on {self.name}. '
|
||||||
f'Please remove {pair} from your whitelist.')
|
f'Please remove {pair} from your whitelist.')
|
||||||
|
|
||||||
|
def get_valid_pair_combination(self, paira, pairb) -> str:
|
||||||
|
"""
|
||||||
|
Get valid combination of paira and pairb by trying both combinations.
|
||||||
|
"""
|
||||||
|
for pair in [f"{paira}/{pairb}", f"{pairb}/{paira}"]:
|
||||||
|
if pair in self._api.markets and self._api.markets[pair].get('active'):
|
||||||
|
return pair
|
||||||
|
raise DependencyException(f"Could not combine {paira} and {pairb} to get a valid pair.")
|
||||||
|
|
||||||
def validate_timeframes(self, timeframe: List[str]) -> None:
|
def validate_timeframes(self, timeframe: List[str]) -> None:
|
||||||
"""
|
"""
|
||||||
Checks if ticker interval from config is a supported timeframe on the exchange
|
Checks if ticker interval from config is a supported timeframe on the exchange
|
||||||
@ -501,7 +510,7 @@ class Exchange(object):
|
|||||||
def get_ticker(self, pair: str, refresh: Optional[bool] = True) -> dict:
|
def get_ticker(self, pair: str, refresh: Optional[bool] = True) -> dict:
|
||||||
if refresh or pair not in self._cached_ticker.keys():
|
if refresh or pair not in self._cached_ticker.keys():
|
||||||
try:
|
try:
|
||||||
if pair not in self._api.markets:
|
if pair not in self._api.markets or not self._api.markets[pair].get('active'):
|
||||||
raise DependencyException(f"Pair {pair} not available")
|
raise DependencyException(f"Pair {pair} not available")
|
||||||
data = self._api.fetch_ticker(pair)
|
data = self._api.fetch_ticker(pair)
|
||||||
try:
|
try:
|
||||||
|
@ -281,10 +281,11 @@ class RPC(object):
|
|||||||
rate = 1.0
|
rate = 1.0
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
if coin in('USDT', 'USD', 'EUR'):
|
pair = self._freqtrade.exchange.get_valid_pair_combination(coin, "BTC")
|
||||||
rate = 1.0 / self._freqtrade.get_sell_rate('BTC/' + coin, False)
|
if pair.startswith("BTC"):
|
||||||
|
rate = 1.0 / self._freqtrade.get_sell_rate(pair, False)
|
||||||
else:
|
else:
|
||||||
rate = self._freqtrade.get_sell_rate(coin + '/BTC', False)
|
rate = self._freqtrade.get_sell_rate(pair, False)
|
||||||
except (TemporaryError, DependencyException):
|
except (TemporaryError, DependencyException):
|
||||||
logger.warning(f" Could not get rate for pair {coin}.")
|
logger.warning(f" Could not get rate for pair {coin}.")
|
||||||
continue
|
continue
|
||||||
|
Loading…
Reference in New Issue
Block a user