Merge pull request #6354 from samgermain/ccxt-compat-max-lev

wrote ccxt_compat.test_get_max_leverage_spot test_get_max_leverage_fu…
This commit is contained in:
Matthias 2022-02-05 17:14:33 +01:00 committed by GitHub
commit 2c5f7adf28
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 58 additions and 3 deletions

View File

@ -2,7 +2,7 @@ numpy==1.22.1
pandas==1.4.0
pandas-ta==0.3.14b
ccxt==1.70.45
ccxt==1.72.29
# Pin cryptography for now due to rust build errors with piwheels
cryptography==36.0.1
aiohttp==3.8.1

View File

@ -10,7 +10,7 @@ hyperopt = [
'filelock',
'joblib',
'progressbar2',
]
]
develop = [
'coveralls',
@ -42,7 +42,7 @@ setup(
],
install_requires=[
# from requirements.txt
'ccxt>=1.66.32',
'ccxt>=1.72.29',
'SQLAlchemy',
'python-telegram-bot>=13.4',
'arrow>=0.17.0',

View File

@ -24,6 +24,10 @@ EXCHANGES = {
'stake_currency': 'USDT',
'hasQuoteVolume': False,
'timeframe': '1h',
'leverage_in_market': {
'spot': False,
'futures': False,
}
},
'binance': {
'pair': 'BTC/USDT',
@ -31,12 +35,20 @@ EXCHANGES = {
'hasQuoteVolume': True,
'timeframe': '5m',
'futures': True,
'leverage_in_market': {
'spot': False,
'futures': False,
}
},
'kraken': {
'pair': 'BTC/USDT',
'stake_currency': 'USDT',
'hasQuoteVolume': True,
'timeframe': '5m',
'leverage_in_market': {
'spot': True,
'futures': True,
}
},
'ftx': {
'pair': 'BTC/USD',
@ -45,12 +57,20 @@ EXCHANGES = {
'timeframe': '5m',
'futures_pair': 'BTC/USD:USD',
'futures': True,
'leverage_in_market': {
'spot': True,
'futures': True,
}
},
'kucoin': {
'pair': 'BTC/USDT',
'stake_currency': 'USDT',
'hasQuoteVolume': True,
'timeframe': '5m',
'leverage_in_market': {
'spot': False,
'futures': False,
}
},
'gateio': {
'pair': 'BTC/USDT',
@ -59,6 +79,10 @@ EXCHANGES = {
'timeframe': '5m',
'futures': True,
'futures_pair': 'BTC/USDT:USDT',
'leverage_in_market': {
'spot': True,
'futures': True,
}
},
'okex': {
'pair': 'BTC/USDT',
@ -67,12 +91,20 @@ EXCHANGES = {
'timeframe': '5m',
'futures_pair': 'BTC/USDT:USDT',
'futures': True,
'leverage_in_market': {
'spot': True,
'futures': True,
}
},
'bitvavo': {
'pair': 'BTC/EUR',
'stake_currency': 'EUR',
'hasQuoteVolume': True,
'timeframe': '5m',
'leverage_in_market': {
'spot': False,
'futures': False,
}
},
}
@ -296,3 +328,26 @@ class TestCCXTExchange():
assert 0 < exchange.get_fee(pair, 'limit', 'sell') < threshold
assert 0 < exchange.get_fee(pair, 'market', 'buy') < threshold
assert 0 < exchange.get_fee(pair, 'market', 'sell') < threshold
def test_get_max_leverage_spot(self, exchange):
spot, spot_name = exchange
if spot:
leverage_in_market_spot = EXCHANGES[spot_name]['leverage_in_market']['spot']
if leverage_in_market_spot:
spot_pair = EXCHANGES[spot_name].get('pair', EXCHANGES[spot_name]['pair'])
spot_leverage = spot.get_max_leverage(spot_pair, 20)
assert (isinstance(spot_leverage, float) or isinstance(spot_leverage, int))
assert spot_leverage >= 1.0
def test_get_max_leverage_futures(self, exchange_futures):
futures, futures_name = exchange_futures
if futures:
leverage_in_market_futures = EXCHANGES[futures_name]['leverage_in_market']['futures']
if leverage_in_market_futures:
futures_pair = EXCHANGES[futures_name].get(
'futures_pair',
EXCHANGES[futures_name]['pair']
)
futures_leverage = futures.get_max_leverage(futures_pair, 20)
assert (isinstance(futures_leverage, float) or isinstance(futures_leverage, int))
assert futures_leverage >= 1.0