2
0
forked from kodorvan/stcs

Fixed get liq price

This commit is contained in:
algizn97
2025-10-04 09:33:56 +05:00
parent ce5d0605de
commit 163f4dcba9

View File

@@ -134,11 +134,7 @@ def check_limit_price(limit_price, min_price, max_price) -> str | None:
async def get_liquidation_price( async def get_liquidation_price(
tg_id: int, tg_id: int, symbol: str, entry_price: float, leverage: float
symbol: str,
entry_price: float,
order_quantity: float,
leverage: float
) -> tuple[float, float]: ) -> tuple[float, float]:
""" """
Function to get liquidation price Function to get liquidation price
@@ -149,11 +145,7 @@ async def get_liquidation_price(
risk_list = get_risk_info.get("result", {}).get("list", []) risk_list = get_risk_info.get("result", {}).get("list", [])
risk_level = risk_list[0] if risk_list else {} risk_level = risk_list[0] if risk_list else {}
maintenance_margin_rate = safe_float(risk_level.get("maintenanceMargin")) maintenance_margin_rate = safe_float(risk_level.get("maintenanceMargin"))
maint_margin_deduction = safe_float(risk_level.get("initialMargin"))
max_leverage = safe_float(risk_level.get("maxLeverage"))
position_value = order_quantity * entry_price
initial_margin = position_value / max_leverage
maint_margin = (position_value * maintenance_margin_rate) - maint_margin_deduction
liq_price_long = entry_price * (1 - 1 / leverage + maintenance_margin_rate) liq_price_long = entry_price * (1 - 1 / leverage + maintenance_margin_rate)
liq_price_short = entry_price * (1 + 1 / leverage - maintenance_margin_rate) liq_price_short = entry_price * (1 + 1 / leverage - maintenance_margin_rate)
@@ -167,7 +159,7 @@ async def get_liquidation_price(
async def calculate_total_budget( async def calculate_total_budget(
quantity, martingale_factor, max_steps, commission_fee_percent quantity, martingale_factor, max_steps, commission_fee_percent
) -> float: ) -> float:
""" """
Calculate the total budget for a series of trading steps. Calculate the total budget for a series of trading steps.
@@ -183,7 +175,7 @@ async def calculate_total_budget(
""" """
total = 0 total = 0
for step in range(max_steps): for step in range(max_steps):
set_quantity = quantity * (martingale_factor ** step) set_quantity = quantity * (martingale_factor**step)
if commission_fee_percent == 0: if commission_fee_percent == 0:
# Commission fee is not added to the position size # Commission fee is not added to the position size
r_quantity = set_quantity r_quantity = set_quantity