Revamp liquidation test to actually make sense
This commit is contained in:
parent
9852733ef7
commit
ff4cc5d316
@ -120,70 +120,83 @@ def test_set_stop_loss_isolated_liq(fee):
|
|||||||
assert trade.stop_loss is None
|
assert trade.stop_loss is None
|
||||||
assert trade.initial_stop_loss is None
|
assert trade.initial_stop_loss is None
|
||||||
|
|
||||||
trade._set_stop_loss(0.1, (1.0 / 9.0))
|
trade.adjust_stop_loss(2.0, 0.2, True)
|
||||||
assert trade.liquidation_price == 0.09
|
assert trade.liquidation_price == 0.09
|
||||||
assert trade.stop_loss == 0.1
|
assert trade.stop_loss == 1.8
|
||||||
assert trade.initial_stop_loss == 0.1
|
assert trade.initial_stop_loss == 1.8
|
||||||
|
|
||||||
trade.set_isolated_liq(0.08)
|
trade.set_isolated_liq(0.08)
|
||||||
assert trade.liquidation_price == 0.08
|
assert trade.liquidation_price == 0.08
|
||||||
assert trade.stop_loss == 0.1
|
assert trade.stop_loss == 1.8
|
||||||
assert trade.initial_stop_loss == 0.1
|
assert trade.initial_stop_loss == 1.8
|
||||||
|
|
||||||
trade.set_isolated_liq(0.11)
|
trade.set_isolated_liq(0.11)
|
||||||
trade._set_stop_loss(0.1, 0)
|
trade.adjust_stop_loss(2.0, 0.2)
|
||||||
assert trade.liquidation_price == 0.11
|
assert trade.liquidation_price == 0.11
|
||||||
# Stoploss does not change from liquidation price
|
# Stoploss does not change from liquidation price
|
||||||
assert trade.stop_loss == 0.1
|
assert trade.stop_loss == 1.8
|
||||||
assert trade.initial_stop_loss == 0.1
|
assert trade.initial_stop_loss == 1.8
|
||||||
|
|
||||||
# lower stop doesn't move stoploss
|
# lower stop doesn't move stoploss
|
||||||
trade._set_stop_loss(0.1, 0)
|
trade.adjust_stop_loss(1.8, 0.2)
|
||||||
assert trade.liquidation_price == 0.11
|
assert trade.liquidation_price == 0.11
|
||||||
assert trade.stop_loss == 0.1
|
assert trade.stop_loss == 1.8
|
||||||
assert trade.initial_stop_loss == 0.1
|
assert trade.initial_stop_loss == 1.8
|
||||||
|
|
||||||
|
# higher stop does move stoploss
|
||||||
|
trade.adjust_stop_loss(2.1, 0.1)
|
||||||
|
assert trade.liquidation_price == 0.11
|
||||||
|
assert pytest.approx(trade.stop_loss) == 1.994999
|
||||||
|
assert trade.initial_stop_loss == 1.8
|
||||||
|
|
||||||
trade.stop_loss = None
|
trade.stop_loss = None
|
||||||
trade.liquidation_price = None
|
trade.liquidation_price = None
|
||||||
trade.initial_stop_loss = None
|
trade.initial_stop_loss = None
|
||||||
|
trade.initial_stop_loss_pct = None
|
||||||
|
|
||||||
trade._set_stop_loss(0.07, 0)
|
trade.adjust_stop_loss(2.0, 0.1, True)
|
||||||
assert trade.liquidation_price is None
|
assert trade.liquidation_price is None
|
||||||
assert trade.stop_loss == 0.07
|
assert trade.stop_loss == 1.9
|
||||||
assert trade.initial_stop_loss == 0.07
|
assert trade.initial_stop_loss == 1.9
|
||||||
|
|
||||||
trade.is_short = True
|
trade.is_short = True
|
||||||
trade.recalc_open_trade_value()
|
trade.recalc_open_trade_value()
|
||||||
trade.stop_loss = None
|
trade.stop_loss = None
|
||||||
trade.initial_stop_loss = None
|
trade.initial_stop_loss = None
|
||||||
|
trade.initial_stop_loss_pct = None
|
||||||
|
|
||||||
trade.set_isolated_liq(0.09)
|
trade.set_isolated_liq(3.09)
|
||||||
assert trade.liquidation_price == 0.09
|
assert trade.liquidation_price == 3.09
|
||||||
assert trade.stop_loss is None
|
assert trade.stop_loss is None
|
||||||
assert trade.initial_stop_loss is None
|
assert trade.initial_stop_loss is None
|
||||||
|
|
||||||
trade._set_stop_loss(0.08, (1.0 / 9.0))
|
trade.adjust_stop_loss(2.0, 0.2)
|
||||||
assert trade.liquidation_price == 0.09
|
assert trade.liquidation_price == 3.09
|
||||||
assert trade.stop_loss == 0.08
|
assert trade.stop_loss == 2.2
|
||||||
assert trade.initial_stop_loss == 0.08
|
assert trade.initial_stop_loss == 2.2
|
||||||
|
|
||||||
trade.set_isolated_liq(0.1)
|
trade.set_isolated_liq(3.1)
|
||||||
assert trade.liquidation_price == 0.1
|
assert trade.liquidation_price == 3.1
|
||||||
assert trade.stop_loss == 0.08
|
assert trade.stop_loss == 2.2
|
||||||
assert trade.initial_stop_loss == 0.08
|
assert trade.initial_stop_loss == 2.2
|
||||||
|
|
||||||
trade.set_isolated_liq(0.07)
|
trade.set_isolated_liq(3.8)
|
||||||
trade._set_stop_loss(0.1, (1.0 / 8.0))
|
assert trade.liquidation_price == 3.8
|
||||||
assert trade.liquidation_price == 0.07
|
|
||||||
# Stoploss does not change from liquidation price
|
# Stoploss does not change from liquidation price
|
||||||
assert trade.stop_loss == 0.1
|
assert trade.stop_loss == 2.2
|
||||||
assert trade.initial_stop_loss == 0.08
|
assert trade.initial_stop_loss == 2.2
|
||||||
|
|
||||||
# Stop doesn't move stop higher
|
# Stop doesn't move stop higher
|
||||||
trade._set_stop_loss(0.1, (1.0 / 9.0))
|
trade.adjust_stop_loss(2.0, 0.3)
|
||||||
assert trade.liquidation_price == 0.07
|
assert trade.liquidation_price == 3.8
|
||||||
assert trade.stop_loss == 0.1
|
assert trade.stop_loss == 2.2
|
||||||
assert trade.initial_stop_loss == 0.08
|
assert trade.initial_stop_loss == 2.2
|
||||||
|
|
||||||
|
# Stoploss does move lower
|
||||||
|
trade.adjust_stop_loss(1.8, 0.1)
|
||||||
|
assert trade.liquidation_price == 3.8
|
||||||
|
assert pytest.approx(trade.stop_loss) == 1.89
|
||||||
|
assert trade.initial_stop_loss == 2.2
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize('exchange,is_short,lev,minutes,rate,interest,trading_mode', [
|
@pytest.mark.parametrize('exchange,is_short,lev,minutes,rate,interest,trading_mode', [
|
||||||
|
Loading…
Reference in New Issue
Block a user