test_update_limit_order has both a buy and sell leverage short order
This commit is contained in:
parent
26be620f71
commit
bc42516f68
@ -487,6 +487,13 @@ def test_update_limit_order(limit_buy_order_usdt, limit_sell_order_usdt, fee, ca
|
|||||||
binance -3x: (1-(66.1663784375 / 59.85)) * 3 = -0.3166104479949876
|
binance -3x: (1-(66.1663784375 / 59.85)) * 3 = -0.3166104479949876
|
||||||
kraken -1x: (1-(66.2311650 / 59.85)) * 1 = -0.106619298245614
|
kraken -1x: (1-(66.2311650 / 59.85)) * 1 = -0.106619298245614
|
||||||
kraken -3x: (1-(66.2311650 / 59.85)) * 3 = -0.319857894736842
|
kraken -3x: (1-(66.2311650 / 59.85)) * 3 = -0.319857894736842
|
||||||
|
open_rate: 2.2, close_rate: 2.0, -3x, binance, short
|
||||||
|
open_value: 30 * 2.2 - 30 * 2.2 * 0.0025 = 65.835 quote
|
||||||
|
amount_closed: 30 + 0.000625 = 30.000625 crypto
|
||||||
|
close_value: (30.000625 * 2.0) + (30.000625 * 2.0 * 0.0025) = 60.151253125
|
||||||
|
total_profit: 65.835 - 60.151253125 = 5.683746874999997
|
||||||
|
total_profit_ratio: (1-(60.151253125/65.835)) * 3 = 0.2589996297562085
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
trade = Trade(
|
trade = Trade(
|
||||||
@ -532,7 +539,7 @@ def test_update_limit_order(limit_buy_order_usdt, limit_sell_order_usdt, fee, ca
|
|||||||
trade = Trade(
|
trade = Trade(
|
||||||
id=226531,
|
id=226531,
|
||||||
pair='ETH/BTC',
|
pair='ETH/BTC',
|
||||||
stake_amount=60.0,
|
stake_amount=20.0,
|
||||||
open_rate=2.0,
|
open_rate=2.0,
|
||||||
amount=30.0,
|
amount=30.0,
|
||||||
is_open=True,
|
is_open=True,
|
||||||
@ -545,11 +552,31 @@ def test_update_limit_order(limit_buy_order_usdt, limit_sell_order_usdt, fee, ca
|
|||||||
interest_rate=0.0005,
|
interest_rate=0.0005,
|
||||||
interest_mode=InterestMode.HOURSPERDAY
|
interest_mode=InterestMode.HOURSPERDAY
|
||||||
)
|
)
|
||||||
|
trade.open_order_id = 'something'
|
||||||
|
trade.update(limit_sell_order_usdt)
|
||||||
|
|
||||||
|
assert trade.open_order_id is None
|
||||||
|
assert trade.open_rate == 2.20
|
||||||
|
assert trade.close_profit is None
|
||||||
|
assert trade.close_date is None
|
||||||
|
|
||||||
|
assert log_has_re(r"LIMIT_SELL has been fulfilled for Trade\(id=226531, "
|
||||||
|
r"pair=ETH/BTC, amount=30.00000000, "
|
||||||
|
r"is_short=True, leverage=3.0, open_rate=2.20000000, open_since=.*\).",
|
||||||
|
caplog)
|
||||||
|
caplog.clear()
|
||||||
|
|
||||||
|
trade.open_order_id = 'something'
|
||||||
trade.update(limit_buy_order_usdt)
|
trade.update(limit_buy_order_usdt)
|
||||||
|
assert trade.open_order_id is None
|
||||||
|
assert trade.close_rate == 2.00
|
||||||
|
assert trade.close_profit == round(0.2589996297562085, 8)
|
||||||
|
assert trade.close_date is not None
|
||||||
assert log_has_re(r"LIMIT_BUY has been fulfilled for Trade\(id=226531, "
|
assert log_has_re(r"LIMIT_BUY has been fulfilled for Trade\(id=226531, "
|
||||||
r"pair=ETH/BTC, amount=30.00000000, "
|
r"pair=ETH/BTC, amount=30.00000000, "
|
||||||
r"is_short=True, leverage=3.0, open_rate=2.00000000, open_since=.*\).",
|
r"is_short=True, leverage=3.0, open_rate=2.20000000, open_since=.*\).",
|
||||||
caplog)
|
caplog)
|
||||||
|
caplog.clear()
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.usefixtures("init_persistence")
|
@pytest.mark.usefixtures("init_persistence")
|
||||||
|
Loading…
Reference in New Issue
Block a user