From 4fcae0d9275553504aed8b29539adbee1e1d25d7 Mon Sep 17 00:00:00 2001 From: Sam Germain Date: Sun, 25 Jul 2021 02:57:17 -0600 Subject: [PATCH] Changed liquidation_price to isolated_liq --- freqtrade/persistence/migrations.py | 6 ++-- freqtrade/persistence/models.py | 36 +++++++++++----------- tests/rpc/test_rpc.py | 4 +-- tests/test_persistence.py | 48 ++++++++++++++--------------- 4 files changed, 47 insertions(+), 47 deletions(-) diff --git a/freqtrade/persistence/migrations.py b/freqtrade/persistence/migrations.py index 39997a8f4..8077a3a49 100644 --- a/freqtrade/persistence/migrations.py +++ b/freqtrade/persistence/migrations.py @@ -50,7 +50,7 @@ def migrate_trades_table(decl_base, inspector, engine, table_back_name: str, col leverage = get_column_def(cols, 'leverage', '1.0') interest_rate = get_column_def(cols, 'interest_rate', '0.0') - liquidation_price = get_column_def(cols, 'liquidation_price', 'null') + isolated_liq = get_column_def(cols, 'isolated_liq', 'null') # sqlite does not support literals for booleans is_short = get_column_def(cols, 'is_short', '0') interest_mode = get_column_def(cols, 'interest_mode', 'null') @@ -90,7 +90,7 @@ def migrate_trades_table(decl_base, inspector, engine, table_back_name: str, col stoploss_order_id, stoploss_last_update, max_rate, min_rate, sell_reason, sell_order_status, strategy, timeframe, open_trade_value, close_profit_abs, - leverage, interest_rate, liquidation_price, is_short, interest_mode + leverage, interest_rate, isolated_liq, is_short, interest_mode ) select id, lower(exchange), case @@ -115,7 +115,7 @@ def migrate_trades_table(decl_base, inspector, engine, table_back_name: str, col {strategy} strategy, {timeframe} timeframe, {open_trade_value} open_trade_value, {close_profit_abs} close_profit_abs, {leverage} leverage, {interest_rate} interest_rate, - {liquidation_price} liquidation_price, {is_short} is_short, + {isolated_liq} isolated_liq, {is_short} is_short, {interest_mode} interest_mode from {table_back_name} """)) diff --git a/freqtrade/persistence/models.py b/freqtrade/persistence/models.py index 9e2e99063..83481969f 100644 --- a/freqtrade/persistence/models.py +++ b/freqtrade/persistence/models.py @@ -265,7 +265,7 @@ class LocalTrade(): # Margin trading properties interest_rate: float = 0.0 - liquidation_price: Optional[float] = None + isolated_liq: Optional[float] = None is_short: bool = False leverage: float = 1.0 interest_mode: InterestMode = InterestMode.NONE @@ -314,8 +314,8 @@ class LocalTrade(): def __init__(self, **kwargs): for key in kwargs: setattr(self, key, kwargs[key]) - if self.liquidation_price: - self.set_liquidation_price(self.liquidation_price) + if self.isolated_liq: + self.set_isolated_liq(self.isolated_liq) self.recalc_open_trade_value() def set_stop_loss(self, stop_loss: float): @@ -323,11 +323,11 @@ class LocalTrade(): Method you should use to set self.stop_loss. Assures stop_loss is not passed the liquidation price """ - if self.liquidation_price is not None: + if self.isolated_liq is not None: if self.is_short: - sl = min(stop_loss, self.liquidation_price) + sl = min(stop_loss, self.isolated_liq) else: - sl = max(stop_loss, self.liquidation_price) + sl = max(stop_loss, self.isolated_liq) else: sl = stop_loss @@ -335,21 +335,21 @@ class LocalTrade(): self.initial_stop_loss = sl self.stop_loss = sl - def set_liquidation_price(self, liquidation_price: float): + def set_isolated_liq(self, isolated_liq: float): """ Method you should use to set self.liquidation price. Assures stop_loss is not passed the liquidation price """ if self.stop_loss is not None: if self.is_short: - self.stop_loss = min(self.stop_loss, liquidation_price) + self.stop_loss = min(self.stop_loss, isolated_liq) else: - self.stop_loss = max(self.stop_loss, liquidation_price) + self.stop_loss = max(self.stop_loss, isolated_liq) else: - self.initial_stop_loss = liquidation_price - self.stop_loss = liquidation_price + self.initial_stop_loss = isolated_liq + self.stop_loss = isolated_liq - self.liquidation_price = liquidation_price + self.isolated_liq = isolated_liq def set_is_short(self, is_short: bool): self.is_short = is_short @@ -425,7 +425,7 @@ class LocalTrade(): 'leverage': self.leverage, 'interest_rate': self.interest_rate, - 'liquidation_price': self.liquidation_price, + 'isolated_liq': self.isolated_liq, 'is_short': self.is_short, 'open_order_id': self.open_order_id, @@ -472,13 +472,13 @@ class LocalTrade(): if self.is_short: new_loss = float(current_price * (1 + abs(stoploss))) # If trading on margin, don't set the stoploss below the liquidation price - if self.liquidation_price: - new_loss = min(self.liquidation_price, new_loss) + if self.isolated_liq: + new_loss = min(self.isolated_liq, new_loss) else: new_loss = float(current_price * (1 - abs(stoploss))) # If trading on margin, don't set the stoploss below the liquidation price - if self.liquidation_price: - new_loss = max(self.liquidation_price, new_loss) + if self.isolated_liq: + new_loss = max(self.isolated_liq, new_loss) # no stop loss assigned yet if not self.stop_loss: @@ -905,7 +905,7 @@ class Trade(_DECL_BASE, LocalTrade): # Margin trading properties leverage = Column(Float, nullable=True, default=1.0) interest_rate = Column(Float, nullable=False, default=0.0) - liquidation_price = Column(Float, nullable=True) + isolated_liq = Column(Float, nullable=True) is_short = Column(Boolean, nullable=False, default=False) interest_mode = Column(Enum(InterestMode), nullable=True) # End of margin trading properties diff --git a/tests/rpc/test_rpc.py b/tests/rpc/test_rpc.py index 3650aa57b..323a647c1 100644 --- a/tests/rpc/test_rpc.py +++ b/tests/rpc/test_rpc.py @@ -109,7 +109,7 @@ def test_rpc_trade_status(default_conf, ticker, fee, mocker) -> None: 'exchange': 'binance', 'leverage': 1.0, 'interest_rate': 0.0, - 'liquidation_price': None, + 'isolated_liq': None, 'is_short': False, } @@ -179,7 +179,7 @@ def test_rpc_trade_status(default_conf, ticker, fee, mocker) -> None: 'exchange': 'binance', 'leverage': 1.0, 'interest_rate': 0.0, - 'liquidation_price': None, + 'isolated_liq': None, 'is_short': False, } diff --git a/tests/test_persistence.py b/tests/test_persistence.py index 7c9df6258..512a6c83d 100644 --- a/tests/test_persistence.py +++ b/tests/test_persistence.py @@ -112,7 +112,7 @@ def test_is_opening_closing_trade(fee): @pytest.mark.usefixtures("init_persistence") -def test_set_stop_loss_liquidation_price(fee): +def test_set_stop_loss_isolated_liq(fee): trade = Trade( id=2, pair='ETH/BTC', @@ -127,36 +127,36 @@ def test_set_stop_loss_liquidation_price(fee): is_short=False, leverage=2.0 ) - trade.set_liquidation_price(0.09) - assert trade.liquidation_price == 0.09 + trade.set_isolated_liq(0.09) + assert trade.isolated_liq == 0.09 assert trade.stop_loss == 0.09 assert trade.initial_stop_loss == 0.09 trade.set_stop_loss(0.1) - assert trade.liquidation_price == 0.09 + assert trade.isolated_liq == 0.09 assert trade.stop_loss == 0.1 assert trade.initial_stop_loss == 0.09 - trade.set_liquidation_price(0.08) - assert trade.liquidation_price == 0.08 + trade.set_isolated_liq(0.08) + assert trade.isolated_liq == 0.08 assert trade.stop_loss == 0.1 assert trade.initial_stop_loss == 0.09 - trade.set_liquidation_price(0.11) - assert trade.liquidation_price == 0.11 + trade.set_isolated_liq(0.11) + assert trade.isolated_liq == 0.11 assert trade.stop_loss == 0.11 assert trade.initial_stop_loss == 0.09 trade.set_stop_loss(0.1) - assert trade.liquidation_price == 0.11 + assert trade.isolated_liq == 0.11 assert trade.stop_loss == 0.11 assert trade.initial_stop_loss == 0.09 trade.stop_loss = None - trade.liquidation_price = None + trade.isolated_liq = None trade.initial_stop_loss = None trade.set_stop_loss(0.07) - assert trade.liquidation_price is None + assert trade.isolated_liq is None assert trade.stop_loss == 0.07 assert trade.initial_stop_loss == 0.07 @@ -164,28 +164,28 @@ def test_set_stop_loss_liquidation_price(fee): trade.stop_loss = None trade.initial_stop_loss = None - trade.set_liquidation_price(0.09) - assert trade.liquidation_price == 0.09 + trade.set_isolated_liq(0.09) + assert trade.isolated_liq == 0.09 assert trade.stop_loss == 0.09 assert trade.initial_stop_loss == 0.09 trade.set_stop_loss(0.08) - assert trade.liquidation_price == 0.09 + assert trade.isolated_liq == 0.09 assert trade.stop_loss == 0.08 assert trade.initial_stop_loss == 0.09 - trade.set_liquidation_price(0.1) - assert trade.liquidation_price == 0.1 + trade.set_isolated_liq(0.1) + assert trade.isolated_liq == 0.1 assert trade.stop_loss == 0.08 assert trade.initial_stop_loss == 0.09 - trade.set_liquidation_price(0.07) - assert trade.liquidation_price == 0.07 + trade.set_isolated_liq(0.07) + assert trade.isolated_liq == 0.07 assert trade.stop_loss == 0.07 assert trade.initial_stop_loss == 0.09 trade.set_stop_loss(0.1) - assert trade.liquidation_price == 0.07 + assert trade.isolated_liq == 0.07 assert trade.stop_loss == 0.07 assert trade.initial_stop_loss == 0.09 @@ -1616,10 +1616,10 @@ def test_adjust_stop_loss_short(fee): assert trade.initial_stop_loss == 1.05 assert trade.initial_stop_loss_pct == 0.05 assert trade.stop_loss_pct == 0.1 - trade.set_liquidation_price(0.63) + trade.set_isolated_liq(0.63) trade.adjust_stop_loss(0.59, -0.1) assert trade.stop_loss == 0.63 - assert trade.liquidation_price == 0.63 + assert trade.isolated_liq == 0.63 def test_adjust_min_max_rates(fee): @@ -1744,7 +1744,7 @@ def test_to_json(default_conf, fee): 'exchange': 'binance', 'leverage': None, 'interest_rate': None, - 'liquidation_price': None, + 'isolated_liq': None, 'is_short': None, } @@ -1813,7 +1813,7 @@ def test_to_json(default_conf, fee): 'exchange': 'binance', 'leverage': None, 'interest_rate': None, - 'liquidation_price': None, + 'isolated_liq': None, 'is_short': None, } @@ -1932,7 +1932,7 @@ def test_stoploss_reinitialization_short(default_conf, fee): assert trade_adj.initial_stop_loss == 1.04 assert trade_adj.initial_stop_loss_pct == 0.04 # Stoploss can't go above liquidation price - trade_adj.set_liquidation_price(1.0) + trade_adj.set_isolated_liq(1.0) trade.adjust_stop_loss(0.97, -0.04) assert trade_adj.stop_loss == 1.0 assert trade_adj.stop_loss == 1.0