test_liquidation_in_isolated_mode_for_long_trades

This commit is contained in:
Saleh Mir
2021-05-17 21:53:02 +04:30
parent 8252d7d97a
commit d2c998fed8
2 changed files with 42 additions and 3 deletions

View File

@@ -0,0 +1,35 @@
from jesse.strategies import Strategy
class TestLiquidationInIsolatedModeForLongTrade(Strategy):
def on_open_position(self, order):
assert round(self.position.liquidation_price, 2) == 40.32
def before(self):
if self.price == 40:
# assert that we are liquidated by this point
assert self.is_close
assert self.balance == 0
assert self.available_margin == 0
def should_long(self) -> bool:
if self.index == 0:
assert self.balance == 10000
assert self.leverage == 2
assert self.available_margin == 20000
assert self.position.mode == 'isolated'
return self.price == 80
def should_short(self) -> bool:
return False
def go_long(self):
# go all in
self.buy = 250, self.price
def go_short(self):
pass
def should_cancel(self):
return False

View File

@@ -54,7 +54,8 @@ def test_average_take_profit_exception():
def test_can_close_a_long_position_and_go_short_at_the_same_candle():
single_route_backtest('Test45')
single_route_backtest('Test45', is_futures_trading=True, leverage_mode='isolated')
trades = store.completed_trades.trades
assert len(trades) == 2
@@ -904,8 +905,11 @@ def test_liquidation_in_isolated_mode_for_short_trades():
single_route_backtest('TestLiquidationInIsolatedModeForShortTrade', is_futures_trading=True, leverage=2, leverage_mode='isolated')
# def test_liquidation_in_isolated_mode_for_long_trades():
# single_route_backtest('TestLiquidationInIsolatedModeForLongTrade', is_futures_trading=True, leverage=2, leverage_mode='isolated')
def test_liquidation_in_isolated_mode_for_long_trades():
single_route_backtest(
'TestLiquidationInIsolatedModeForLongTrade', is_futures_trading=True, leverage=2,
leverage_mode='isolated', trend='down'
)
# def test_route_capital_isolation():