2
0
forked from kodorvan/stcs
This commit is contained in:
algizn97
2025-10-03 14:19:18 +05:00
parent 4adbd70948
commit 1508629727
15 changed files with 412 additions and 210 deletions

View File

@@ -106,12 +106,27 @@ class TelegramMessageHandler:
if side == "Buy"
else "Продажа" if side == "Sell" else "Нет данных"
)
if safe_float(closed_size) == 0:
await rq.set_fee_user_auto_trading(
tg_id=tg_id, symbol=symbol, side=side, fee=safe_float(exec_fee)
)
user_auto_trading = await rq.get_user_auto_trading(
tg_id=tg_id, symbol=symbol
)
if user_auto_trading is not None and user_auto_trading.fee is not None:
fee = user_auto_trading.fee
else:
fee = 0
exec_pnl = format_value(execution.get("execPnl"))
risk_management_data = await rq.get_user_risk_management(tg_id=tg_id)
commission_fee = risk_management_data.commission_fee
if commission_fee == "Yes_commission_fee":
total_pnl = safe_float(exec_pnl) - safe_float(exec_fee)
total_pnl = safe_float(exec_pnl) - safe_float(exec_fee) - fee
else:
total_pnl = safe_float(exec_pnl)
@@ -138,13 +153,12 @@ class TelegramMessageHandler:
chat_id=tg_id, text=text, reply_markup=kbi.profile_bybit
)
user_auto_trading = await rq.get_user_auto_trading(
tg_id=tg_id, symbol=symbol
)
auto_trading = (
user_auto_trading.auto_trading if user_auto_trading else False
)
user_symbols = await rq.get_user_deal_by_symbol(tg_id=tg_id, symbol=symbol)
user_symbols = (
user_auto_trading.symbol if user_auto_trading else None
)
if (
auto_trading
@@ -152,20 +166,22 @@ class TelegramMessageHandler:
and user_symbols is not None
):
if safe_float(total_pnl) > 0:
await rq.set_auto_trading(
tg_id=tg_id, symbol=symbol, auto_trading=False
)
profit_text = "📈 Прибыль достигнута\n"
await self.telegram_bot.send_message(
chat_id=tg_id, text=profit_text, reply_markup=kbi.profile_bybit
)
if side == "Buy":
r_side = "Sell"
else:
r_side = "Buy"
await rq.set_auto_trading(tg_id=tg_id, symbol=symbol, auto_trading=False, side=r_side)
else:
open_order_text = "\n❗️ Сделка закрылась в минус, открываю новую сделку с увеличенной ставкой.\n"
await self.telegram_bot.send_message(
chat_id=tg_id, text=open_order_text
)
res = await trading_cycle(
tg_id=tg_id, symbol=symbol, reverse_side=side
tg_id=tg_id, symbol=symbol, reverse_side=side, size=closed_size
)
if res == "OK":
@@ -180,8 +196,12 @@ class TelegramMessageHandler:
error_text = errors.get(
res, "❗️ Не удалось открыть новую сделку"
)
if side == "Buy":
r_side = "Sell"
else:
r_side = "Buy"
await rq.set_auto_trading(
tg_id=tg_id, symbol=symbol, auto_trading=False
tg_id=tg_id, symbol=symbol, auto_trading=False, side=r_side
)
await self.telegram_bot.send_message(
chat_id=tg_id,