forked from kodorvan/stcs
Fixed
This commit is contained in:
@@ -169,6 +169,7 @@ async def trading_cycle(tg_id: int, symbol: str, reverse_side: str, size: str) -
|
||||
leverage=leverage,
|
||||
)
|
||||
|
||||
|
||||
if reverse_side == "Buy":
|
||||
real_side = "Sell"
|
||||
else:
|
||||
@@ -219,7 +220,7 @@ async def trading_cycle(tg_id: int, symbol: str, reverse_side: str, size: str) -
|
||||
leverage_to_sell=leverage_to_sell,
|
||||
order_type=order_type,
|
||||
conditional_order_type=conditional_order_type,
|
||||
order_quantity=current_step,
|
||||
order_quantity=next_quantity,
|
||||
limit_price=limit_price,
|
||||
trigger_price=trigger_price,
|
||||
martingale_factor=martingale_factor,
|
||||
@@ -258,9 +259,9 @@ async def open_positions(
|
||||
trigger_price: float,
|
||||
trade_mode: str,
|
||||
margin_type: str,
|
||||
leverage: float,
|
||||
leverage_to_buy: float,
|
||||
leverage_to_sell: float,
|
||||
leverage: str,
|
||||
leverage_to_buy: str,
|
||||
leverage_to_sell: str,
|
||||
take_profit_percent: float,
|
||||
stop_loss_percent: float,
|
||||
max_risk_percent: float,
|
||||
@@ -317,19 +318,22 @@ async def open_positions(
|
||||
|
||||
if trade_mode == "Both_Sides":
|
||||
po_position_idx = 1 if side == "Buy" else 2
|
||||
leverage = safe_float(
|
||||
if margin_type == "ISOLATED_MARGIN":
|
||||
get_leverage = safe_float(
|
||||
leverage_to_buy if side == "Buy" else leverage_to_sell
|
||||
)
|
||||
else:
|
||||
get_leverage = safe_float(leverage)
|
||||
else:
|
||||
po_position_idx = 0
|
||||
leverage = safe_float(leverage)
|
||||
get_leverage = safe_float(leverage)
|
||||
|
||||
potential_loss = (
|
||||
safe_float(order_quantity)
|
||||
* safe_float(price_for_calc)
|
||||
* (stop_loss_percent / 100)
|
||||
)
|
||||
adjusted_loss = potential_loss / leverage
|
||||
adjusted_loss = potential_loss / get_leverage
|
||||
allowed_loss = safe_float(user_balance) * (max_risk_percent / 100)
|
||||
|
||||
if adjusted_loss > allowed_loss:
|
||||
@@ -356,10 +360,11 @@ async def open_positions(
|
||||
entry_price=price_for_calc,
|
||||
symbol=symbol,
|
||||
order_quantity=order_quantity,
|
||||
leverage=get_leverage,
|
||||
)
|
||||
|
||||
if liq_long > 0 or liq_short > 0 and price_for_calc > 0:
|
||||
if side.lower() == "buy":
|
||||
if (liq_long > 0 or liq_short > 0) and price_for_calc > 0:
|
||||
if side == "Buy":
|
||||
base_tp = price_for_calc + (price_for_calc - liq_long)
|
||||
take_profit_price = base_tp + total_commission
|
||||
else:
|
||||
@@ -371,7 +376,7 @@ async def open_positions(
|
||||
|
||||
stop_loss_price = None
|
||||
else:
|
||||
if side.lower() == "buy":
|
||||
if side == "Buy":
|
||||
take_profit_price = price_for_calc * tp_multiplier
|
||||
stop_loss_price = price_for_calc * (1 - stop_loss_percent / 100)
|
||||
else:
|
||||
@@ -383,6 +388,7 @@ async def open_positions(
|
||||
take_profit_price = max(take_profit_price, 0)
|
||||
stop_loss_price = max(stop_loss_price, 0)
|
||||
|
||||
|
||||
# Place order
|
||||
order_params = {
|
||||
"category": "linear",
|
||||
|
Reference in New Issue
Block a user