rename column to liquidation_price

This commit is contained in:
Matthias
2022-03-06 19:05:20 +01:00
parent 2748b113ee
commit d2a163e2cf
7 changed files with 42 additions and 42 deletions

View File

@@ -725,7 +725,7 @@ class FreqtradeBot(LoggingMixin):
leverage=leverage,
is_short=is_short,
interest_rate=interest_rate,
isolated_liq=isolated_liq,
liquidation_price=isolated_liq,
trading_mode=self.trading_mode,
funding_fees=funding_fees
)

View File

@@ -82,7 +82,8 @@ def migrate_trades_and_orders_table(
# Leverage Properties
leverage = get_column_def(cols, 'leverage', '1.0')
isolated_liq = get_column_def(cols, 'isolated_liq', 'null')
liquidation_price = get_column_def(cols, 'liquidation_price',
get_column_def(cols, 'isolated_liq', 'null'))
# sqlite does not support literals for booleans
is_short = get_column_def(cols, 'is_short', '0')
@@ -137,7 +138,7 @@ def migrate_trades_and_orders_table(
stoploss_order_id, stoploss_last_update,
max_rate, min_rate, sell_reason, sell_order_status, strategy, enter_tag,
timeframe, open_trade_value, close_profit_abs,
trading_mode, leverage, isolated_liq, is_short,
trading_mode, leverage, liquidation_price, is_short,
interest_rate, funding_fees
)
select id, lower(exchange), pair,
@@ -155,7 +156,7 @@ def migrate_trades_and_orders_table(
{sell_order_status} sell_order_status,
{strategy} strategy, {enter_tag} enter_tag, {timeframe} timeframe,
{open_trade_value} open_trade_value, {close_profit_abs} close_profit_abs,
{trading_mode} trading_mode, {leverage} leverage, {isolated_liq} isolated_liq,
{trading_mode} trading_mode, {leverage} leverage, {liquidation_price} liquidation_price,
{is_short} is_short, {interest_rate} interest_rate,
{funding_fees} funding_fees
from {trade_back_name}
@@ -233,10 +234,9 @@ def check_migrate(engine, decl_base, previous_tables) -> None:
# Check if migration necessary
# Migrates both trades and orders table!
# if not has_column(cols, 'buy_tag'):
if ('orders' not in previous_tables
or not has_column(cols_orders, 'ft_fee_base')
or not has_column(cols_orders, 'leverage')):
# if ('orders' not in previous_tables
# or not has_column(cols_orders, 'leverage')):
if not has_column(cols, 'liquidation_price'):
logger.info(f"Running database migration for trades - "
f"backup: {table_back_name}, {order_table_bak_name}")
migrate_trades_and_orders_table(

View File

@@ -329,7 +329,7 @@ class LocalTrade():
trading_mode: TradingMode = TradingMode.SPOT
# Leverage trading properties
isolated_liq: Optional[float] = None
liquidation_price: Optional[float] = None
is_short: bool = False
leverage: float = 1.0
@@ -483,7 +483,7 @@ class LocalTrade():
'leverage': self.leverage,
'interest_rate': self.interest_rate,
'isolated_liq': self.isolated_liq,
'liquidation_price': self.liquidation_price,
'is_short': self.is_short,
'trading_mode': self.trading_mode,
'funding_fees': self.funding_fees,
@@ -507,25 +507,25 @@ class LocalTrade():
self.max_rate = max(current_price, self.max_rate or self.open_rate)
self.min_rate = min(current_price_low, self.min_rate or self.open_rate)
def set_isolated_liq(self, isolated_liq: Optional[float]):
def set_isolated_liq(self, liquidation_price: Optional[float]):
"""
Method you should use to set self.liquidation price.
Assures stop_loss is not passed the liquidation price
"""
if not isolated_liq:
if not liquidation_price:
return
self.isolated_liq = isolated_liq
self.liquidation_price = liquidation_price
def _set_stop_loss(self, stop_loss: float, percent: float):
"""
Method you should use to set self.stop_loss.
Assures stop_loss is not passed the liquidation price
"""
if self.isolated_liq is not None:
if self.liquidation_price is not None:
if self.is_short:
sl = min(stop_loss, self.isolated_liq)
sl = min(stop_loss, self.liquidation_price)
else:
sl = max(stop_loss, self.isolated_liq)
sl = max(stop_loss, self.liquidation_price)
else:
sl = stop_loss
@@ -553,13 +553,13 @@ class LocalTrade():
if self.is_short:
new_loss = float(current_price * (1 + abs(stoploss / leverage)))
# If trading with leverage, don't set the stoploss below the liquidation price
if self.isolated_liq:
new_loss = min(self.isolated_liq, new_loss)
if self.liquidation_price:
new_loss = min(self.liquidation_price, new_loss)
else:
new_loss = float(current_price * (1 - abs(stoploss / leverage)))
# If trading with leverage, don't set the stoploss below the liquidation price
if self.isolated_liq:
new_loss = max(self.isolated_liq, new_loss)
if self.liquidation_price:
new_loss = max(self.liquidation_price, new_loss)
# no stop loss assigned yet
if self.initial_stop_loss_pct is None:
@@ -1093,7 +1093,7 @@ class Trade(_DECL_BASE, LocalTrade):
# Leverage trading properties
leverage = Column(Float, nullable=True, default=1.0)
is_short = Column(Boolean, nullable=False, default=False)
isolated_liq = Column(Float, nullable=True)
liquidation_price = Column(Float, nullable=True)
# Margin Trading Properties
interest_rate = Column(Float, nullable=False, default=0.0)