mirror of
https://github.com/freqtrade/freqtrade.git
synced 2024-11-10 02:12:01 +00:00
JW: adding first draft for deslist schedule
This commit is contained in:
parent
720232a047
commit
4ef45314dd
|
@ -217,3 +217,44 @@ class Binance(Exchange):
|
||||||
raise OperationalException(e) from e
|
raise OperationalException(e) from e
|
||||||
else:
|
else:
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
def get_spot_delist_schedule(self, refresh: bool) -> list:
|
||||||
|
"""
|
||||||
|
Calculates bid/ask target
|
||||||
|
bid rate - between current ask price and last price
|
||||||
|
ask rate - either using ticker bid or first bid based on orderbook
|
||||||
|
or remain static in any other case since it's not updating.
|
||||||
|
:param pair: Pair to get rate for
|
||||||
|
:param refresh: allow cached data
|
||||||
|
:param side: "buy" or "sell"
|
||||||
|
:return: float: Price
|
||||||
|
:raises PricingError if orderbook price could not be determined.
|
||||||
|
"""
|
||||||
|
if not refresh:
|
||||||
|
with self._cache_lock:
|
||||||
|
rate = cache_rate.get(pair)
|
||||||
|
# Check if cache has been invalidated
|
||||||
|
if rate:
|
||||||
|
logger.debug(f"Using cached {side} rate for {pair}.")
|
||||||
|
return rate
|
||||||
|
|
||||||
|
|
||||||
|
if conf_strategy.get('use_order_book', False):
|
||||||
|
|
||||||
|
order_book_top = conf_strategy.get('order_book_top', 1)
|
||||||
|
if order_book is None:
|
||||||
|
order_book = self.fetch_l2_order_book(pair, order_book_top)
|
||||||
|
rate = self._get_rate_from_ob(pair, side, order_book, name, price_side,
|
||||||
|
order_book_top)
|
||||||
|
else:
|
||||||
|
logger.debug(f"Using Last {price_side.capitalize()} / Last Price")
|
||||||
|
if ticker is None:
|
||||||
|
ticker = self.fetch_ticker(pair)
|
||||||
|
rate = self._get_rate_from_ticker(side, ticker, conf_strategy, price_side)
|
||||||
|
|
||||||
|
if rate is None:
|
||||||
|
raise PricingError(f"{name}-Rate for {pair} was empty.")
|
||||||
|
with self._cache_lock:
|
||||||
|
cache_rate[pair] = rate
|
||||||
|
|
||||||
|
return delistings
|
|
@ -617,3 +617,11 @@ def test_get_maintenance_ratio_and_amt_binance(
|
||||||
exchange._leverage_tiers = leverage_tiers
|
exchange._leverage_tiers = leverage_tiers
|
||||||
(result_ratio, result_amt) = exchange.get_maintenance_ratio_and_amt(pair, nominal_value)
|
(result_ratio, result_amt) = exchange.get_maintenance_ratio_and_amt(pair, nominal_value)
|
||||||
assert (round(result_ratio, 8), round(result_amt, 8)) == (mm_ratio, amt)
|
assert (round(result_ratio, 8), round(result_amt, 8)) == (mm_ratio, amt)
|
||||||
|
|
||||||
|
|
||||||
|
def test_get_spot_delist_schedule(mocker, default_conf) -> None:
|
||||||
|
exchange = get_patched_exchange(mocker, default_conf, id='binance')
|
||||||
|
exchange._api.sapi_get_spot_delist_schedule = get_mock_coro([{'delistTime': '1712113200000', 'symbols': ['DREPBTC', 'DREPUSDT', 'MOBBTC', 'MOBUSDT', 'PNTUSDT']}])
|
||||||
|
|
||||||
|
|
||||||
|
assert exchange.get_spot_delist_schedule(True) == ['DREP/BTC', 'DREP/USDT', 'MOB/BTC', 'MOB/USDT', 'PNT/USDT']
|
Loading…
Reference in New Issue
Block a user