implemented binance.get_maintenance_ratio_and_amt
This commit is contained in:
@@ -173,30 +173,32 @@ def test_stoploss_adjust_binance(mocker, default_conf, sl1, sl2, sl3, side):
|
||||
def test_get_max_leverage_binance(default_conf, mocker, pair, nominal_value, max_lev):
|
||||
exchange = get_patched_exchange(mocker, default_conf, id="binance")
|
||||
exchange._leverage_brackets = {
|
||||
'BNB/BUSD': [[0.0, 0.025],
|
||||
[100000.0, 0.05],
|
||||
[500000.0, 0.1],
|
||||
[1000000.0, 0.15],
|
||||
[2000000.0, 0.25],
|
||||
[5000000.0, 0.5]],
|
||||
'BNB/USDT': [[0.0, 0.0065],
|
||||
[10000.0, 0.01],
|
||||
[50000.0, 0.02],
|
||||
[250000.0, 0.05],
|
||||
[1000000.0, 0.1],
|
||||
[2000000.0, 0.125],
|
||||
[5000000.0, 0.15],
|
||||
[10000000.0, 0.25]],
|
||||
'BTC/USDT': [[0.0, 0.004],
|
||||
[50000.0, 0.005],
|
||||
[250000.0, 0.01],
|
||||
[1000000.0, 0.025],
|
||||
[5000000.0, 0.05],
|
||||
[20000000.0, 0.1],
|
||||
[50000000.0, 0.125],
|
||||
[100000000.0, 0.15],
|
||||
[200000000.0, 0.25],
|
||||
[300000000.0, 0.5]],
|
||||
'BNB/BUSD': [[0.0, 0.025, 0.0],
|
||||
[100000.0, 0.05, 2500.0],
|
||||
[500000.0, 0.1, 27500.0],
|
||||
[1000000.0, 0.15, 77499.99999999999],
|
||||
[2000000.0, 0.25, 277500.0],
|
||||
[5000000.0, 0.5, 1527500.0]],
|
||||
'BNB/USDT': [[0.0, 0.0065, 0.0],
|
||||
[10000.0, 0.01, 35.00000000000001],
|
||||
[50000.0, 0.02, 535.0],
|
||||
[250000.0, 0.05, 8035.000000000001],
|
||||
[1000000.0, 0.1, 58035.0],
|
||||
[2000000.0, 0.125, 108034.99999999999],
|
||||
[5000000.0, 0.15, 233034.99999999994],
|
||||
[10000000.0, 0.25, 1233035.0]],
|
||||
'BTC/USDT': [[0.0, 0.004, 0.0],
|
||||
[50000.0, 0.005, 50.0],
|
||||
[250000.0, 0.01, 1300.0],
|
||||
[1000000.0, 0.025, 16300.000000000002],
|
||||
[5000000.0, 0.05, 141300.0],
|
||||
[20000000.0, 0.1, 1141300.0],
|
||||
[50000000.0, 0.125, 2391300.0],
|
||||
[100000000.0, 0.15, 4891300.0],
|
||||
[200000000.0, 0.25, 24891300.0],
|
||||
[300000000.0, 0.5, 99891300.0]
|
||||
]
|
||||
|
||||
}
|
||||
assert exchange.get_max_leverage(pair, nominal_value) == max_lev
|
||||
|
||||
@@ -235,28 +237,28 @@ def test_fill_leverage_brackets_binance(default_conf, mocker):
|
||||
exchange.fill_leverage_brackets()
|
||||
|
||||
assert exchange._leverage_brackets == {
|
||||
'ADA/BUSD': [[0.0, 0.025],
|
||||
[100000.0, 0.05],
|
||||
[500000.0, 0.1],
|
||||
[1000000.0, 0.15],
|
||||
[2000000.0, 0.25],
|
||||
[5000000.0, 0.5]],
|
||||
'BTC/USDT': [[0.0, 0.004],
|
||||
[50000.0, 0.005],
|
||||
[250000.0, 0.01],
|
||||
[1000000.0, 0.025],
|
||||
[5000000.0, 0.05],
|
||||
[20000000.0, 0.1],
|
||||
[50000000.0, 0.125],
|
||||
[100000000.0, 0.15],
|
||||
[200000000.0, 0.25],
|
||||
[300000000.0, 0.5]],
|
||||
"ZEC/USDT": [[0.0, 0.01],
|
||||
[5000.0, 0.025],
|
||||
[25000.0, 0.05],
|
||||
[100000.0, 0.1],
|
||||
[250000.0, 0.125],
|
||||
[1000000.0, 0.5]],
|
||||
'ADA/BUSD': [[0.0, 0.025, 0.0],
|
||||
[100000.0, 0.05, 2500.0],
|
||||
[500000.0, 0.1, 27500.0],
|
||||
[1000000.0, 0.15, 77499.99999999999],
|
||||
[2000000.0, 0.25, 277500.0],
|
||||
[5000000.0, 0.5, 1827500.0]],
|
||||
'BTC/USDT': [[0.0, 0.004, 0.0],
|
||||
[50000.0, 0.005, 50.0],
|
||||
[250000.0, 0.01, 1300.0],
|
||||
[1000000.0, 0.025, 16300.000000000002],
|
||||
[5000000.0, 0.05, 141300.0],
|
||||
[20000000.0, 0.1, 1141300.0],
|
||||
[50000000.0, 0.125, 2391300.0],
|
||||
[100000000.0, 0.15, 4891300.0],
|
||||
[200000000.0, 0.25, 24891300.0],
|
||||
[300000000.0, 0.5, 99891300.0]],
|
||||
"ZEC/USDT": [[0.0, 0.01, 0.0],
|
||||
[5000.0, 0.025, 75.0],
|
||||
[25000.0, 0.05, 700.0],
|
||||
[100000.0, 0.1, 5700.0],
|
||||
[250000.0, 0.125, 11949.999999999998],
|
||||
[1000000.0, 0.5, 386950.0]]
|
||||
}
|
||||
|
||||
api_mock = MagicMock()
|
||||
@@ -389,3 +391,49 @@ def test__ccxt_config(default_conf, mocker, trading_mode, collateral, config):
|
||||
default_conf['collateral'] = collateral
|
||||
exchange = get_patched_exchange(mocker, default_conf, id="binance")
|
||||
assert exchange._ccxt_config == config
|
||||
|
||||
|
||||
@pytest.mark.parametrize('pair,nominal_value,mm_ratio,amt', [
|
||||
("BNB/BUSD", 0.0, 0.025, 0),
|
||||
("BNB/USDT", 100.0, 0.0065, 0),
|
||||
("BTC/USDT", 170.30, 0.004, 0),
|
||||
("BNB/BUSD", 999999.9, 0.1, 0),
|
||||
("BNB/USDT", 5000000.0, 0.5, 0),
|
||||
("BTC/USDT", 300000000.1, 0.5, 0),
|
||||
])
|
||||
def test_get_maintenance_ratio_and_amt_binance(
|
||||
default_conf,
|
||||
mocker,
|
||||
pair,
|
||||
nominal_value,
|
||||
mm_ratio,
|
||||
amt
|
||||
):
|
||||
exchange = get_patched_exchange(mocker, default_conf, id="binance")
|
||||
exchange._leverage_brackets = {
|
||||
'BNB/BUSD': [[0.0, 0.025],
|
||||
[100000.0, 0.05],
|
||||
[500000.0, 0.1],
|
||||
[1000000.0, 0.15],
|
||||
[2000000.0, 0.25],
|
||||
[5000000.0, 0.5]],
|
||||
'BNB/USDT': [[0.0, 0.0065],
|
||||
[10000.0, 0.01],
|
||||
[50000.0, 0.02],
|
||||
[250000.0, 0.05],
|
||||
[1000000.0, 0.1],
|
||||
[2000000.0, 0.125],
|
||||
[5000000.0, 0.15],
|
||||
[10000000.0, 0.25]],
|
||||
'BTC/USDT': [[0.0, 0.004],
|
||||
[50000.0, 0.005],
|
||||
[250000.0, 0.01],
|
||||
[1000000.0, 0.025],
|
||||
[5000000.0, 0.05],
|
||||
[20000000.0, 0.1],
|
||||
[50000000.0, 0.125],
|
||||
[100000000.0, 0.15],
|
||||
[200000000.0, 0.25],
|
||||
[300000000.0, 0.5]],
|
||||
}
|
||||
assert exchange.get_max_leverage(pair, nominal_value) == max_lev
|
||||
|
@@ -90,7 +90,7 @@ def test_liquidation_price_exception_thrown(
|
||||
@pytest.mark.parametrize(
|
||||
'exchange_name, is_short, leverage, trading_mode, collateral, wallet_balance, '
|
||||
'mm_ex_1, upnl_ex_1, maintenance_amt, position, open_rate, '
|
||||
'mm_rate, expected',
|
||||
'mm_ratio, expected',
|
||||
[
|
||||
("binance", False, 1, TradingMode.FUTURES, Collateral.ISOLATED, 1535443.01, 0.0,
|
||||
0.0, 135365.00, 3683.979, 1456.84, 0.10, 1114.78),
|
||||
@@ -103,7 +103,7 @@ def test_liquidation_price_exception_thrown(
|
||||
])
|
||||
def test_liquidation_price(
|
||||
exchange_name, open_rate, is_short, leverage, trading_mode, collateral, wallet_balance,
|
||||
mm_ex_1, upnl_ex_1, maintenance_amt, position, mm_rate, expected
|
||||
mm_ex_1, upnl_ex_1, maintenance_amt, position, mm_ratio, expected
|
||||
):
|
||||
assert isclose(round(liquidation_price(
|
||||
exchange_name=exchange_name,
|
||||
@@ -117,5 +117,5 @@ def test_liquidation_price(
|
||||
upnl_ex_1=upnl_ex_1,
|
||||
maintenance_amt=maintenance_amt,
|
||||
position=position,
|
||||
mm_rate=mm_rate
|
||||
mm_ratio=mm_ratio
|
||||
), 2), expected)
|
||||
|
Reference in New Issue
Block a user