mirror of
https://github.com/freqtrade/freqtrade.git
synced 2024-11-14 12:13:57 +00:00
gateio.get_maintenance_ratio_and_amt
This commit is contained in:
parent
8889512887
commit
1eee5373b9
|
@ -1,6 +1,6 @@
|
||||||
""" Gate.io exchange subclass """
|
""" Gate.io exchange subclass """
|
||||||
import logging
|
import logging
|
||||||
from typing import Dict, List, Tuple
|
from typing import Dict, List, Optional, Tuple
|
||||||
|
|
||||||
from freqtrade.enums import Collateral, TradingMode
|
from freqtrade.enums import Collateral, TradingMode
|
||||||
from freqtrade.exceptions import OperationalException
|
from freqtrade.exceptions import OperationalException
|
||||||
|
@ -40,3 +40,14 @@ class Gateio(Exchange):
|
||||||
if any(v == 'market' for k, v in order_types.items()):
|
if any(v == 'market' for k, v in order_types.items()):
|
||||||
raise OperationalException(
|
raise OperationalException(
|
||||||
f'Exchange {self.name} does not support market orders.')
|
f'Exchange {self.name} does not support market orders.')
|
||||||
|
|
||||||
|
def get_maintenance_ratio_and_amt(
|
||||||
|
self,
|
||||||
|
pair: Optional[str],
|
||||||
|
nominal_value: Optional[float]
|
||||||
|
):
|
||||||
|
info = self.markets[pair]['info']
|
||||||
|
if 'maintenance_rate' in info:
|
||||||
|
return [float(info['maintenance_rate']), None]
|
||||||
|
else:
|
||||||
|
return [None, None]
|
||||||
|
|
|
@ -3,6 +3,7 @@ import pytest
|
||||||
from freqtrade.exceptions import OperationalException
|
from freqtrade.exceptions import OperationalException
|
||||||
from freqtrade.exchange import Gateio
|
from freqtrade.exchange import Gateio
|
||||||
from freqtrade.resolvers.exchange_resolver import ExchangeResolver
|
from freqtrade.resolvers.exchange_resolver import ExchangeResolver
|
||||||
|
from tests.conftest import get_patched_exchange
|
||||||
|
|
||||||
|
|
||||||
def test_validate_order_types_gateio(default_conf, mocker):
|
def test_validate_order_types_gateio(default_conf, mocker):
|
||||||
|
@ -26,3 +27,42 @@ def test_validate_order_types_gateio(default_conf, mocker):
|
||||||
with pytest.raises(OperationalException,
|
with pytest.raises(OperationalException,
|
||||||
match=r'Exchange .* does not support market orders.'):
|
match=r'Exchange .* does not support market orders.'):
|
||||||
ExchangeResolver.load_exchange('gateio', default_conf, True)
|
ExchangeResolver.load_exchange('gateio', default_conf, True)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('pair,mm_ratio', [
|
||||||
|
("ETH/USDT:USDT", 0.005),
|
||||||
|
("ADA/USDT:USDT", 0.003),
|
||||||
|
("DOGE/USDT:USDT", None),
|
||||||
|
])
|
||||||
|
def test_get_maintenance_ratio_and_amt_gateio(default_conf, mocker, pair, mm_ratio):
|
||||||
|
exchange = get_patched_exchange(mocker, default_conf, id="gateio")
|
||||||
|
exchange.markets = {
|
||||||
|
'ETH/USDT:USDT': {
|
||||||
|
'taker': 0.0000075,
|
||||||
|
'maker': -0.0000025,
|
||||||
|
'info': {
|
||||||
|
'maintenance_rate': '0.005',
|
||||||
|
},
|
||||||
|
'id': 'ETH_USDT',
|
||||||
|
'symbol': 'ETH/USDT:USDT',
|
||||||
|
},
|
||||||
|
'ADA/USDT:USDT': {
|
||||||
|
'taker': 0.0000075,
|
||||||
|
'maker': -0.0000025,
|
||||||
|
'info': {
|
||||||
|
'maintenance_rate': '0.003',
|
||||||
|
},
|
||||||
|
'id': 'ADA_USDT',
|
||||||
|
'symbol': 'ADA/USDT:USDT',
|
||||||
|
},
|
||||||
|
'DOGE/USDT:USDT': {
|
||||||
|
'taker': 0.0000075,
|
||||||
|
'maker': -0.0000025,
|
||||||
|
'info': {
|
||||||
|
'nonmaintenance_rate': '0.003',
|
||||||
|
},
|
||||||
|
'id': 'DOGE_USDT',
|
||||||
|
'symbol': 'DOGE/USDT:USDT',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
assert exchange.get_maintenance_ratio_and_amt_gateio(pair) == [mm_ratio, None]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user