2
0
forked from kodorvan/stcs
This commit is contained in:
algizn97
2025-10-02 15:28:07 +05:00
parent a1a7355dc3
commit fa782f748a
2 changed files with 9 additions and 9 deletions

View File

@@ -132,12 +132,11 @@ async def start_trading_cycle(
return None return None
async def trading_cycle(tg_id: int, symbol: str, reverse_side: str) -> str | None: async def trading_cycle(tg_id: int, symbol: str, reverse_side: str, size: str) -> str | None:
try: try:
user_deals_data = await rq.get_user_deal_by_symbol(tg_id=tg_id, symbol=symbol) user_deals_data = await rq.get_user_deal_by_symbol(tg_id=tg_id, symbol=symbol)
trade_mode = user_deals_data.trade_mode trade_mode = user_deals_data.trade_mode
order_type = user_deals_data.order_type order_type = user_deals_data.order_type
order_quantity = user_deals_data.order_quantity
conditional_order_type = user_deals_data.conditional_order_type conditional_order_type = user_deals_data.conditional_order_type
margin_type = user_deals_data.margin_type margin_type = user_deals_data.margin_type
leverage = user_deals_data.leverage leverage = user_deals_data.leverage
@@ -180,7 +179,7 @@ async def trading_cycle(tg_id: int, symbol: str, reverse_side: str) -> str | Non
if switch_side_mode: if switch_side_mode:
side = "Sell" if real_side == "Buy" else "Buy" side = "Sell" if real_side == "Buy" else "Buy"
next_quantity = safe_float(order_quantity) * ( next_quantity = safe_float(size) * (
safe_float(martingale_factor) ** current_step safe_float(martingale_factor) ** current_step
) )
current_step += 1 current_step += 1
@@ -220,7 +219,7 @@ async def trading_cycle(tg_id: int, symbol: str, reverse_side: str) -> str | Non
leverage_to_sell=leverage_to_sell, leverage_to_sell=leverage_to_sell,
order_type=order_type, order_type=order_type,
conditional_order_type=conditional_order_type, conditional_order_type=conditional_order_type,
order_quantity=order_quantity, order_quantity=current_step,
limit_price=limit_price, limit_price=limit_price,
trigger_price=trigger_price, trigger_price=trigger_price,
martingale_factor=martingale_factor, martingale_factor=martingale_factor,

View File

@@ -9,6 +9,7 @@ import app.telegram.keyboards.inline as kbi
import database.request as rq import database.request as rq
from app.bybit.get_functions.get_positions import get_active_positions_by_symbol from app.bybit.get_functions.get_positions import get_active_positions_by_symbol
from app.bybit.open_positions import start_trading_cycle from app.bybit.open_positions import start_trading_cycle
from app.helper_functions import safe_float
from logger_helper.logger_helper import LOGGING_CONFIG from logger_helper.logger_helper import LOGGING_CONFIG
logging.config.dictConfig(LOGGING_CONFIG) logging.config.dictConfig(LOGGING_CONFIG)
@@ -41,14 +42,14 @@ async def start_trading(callback_query: CallbackQuery, state: FSMContext) -> Non
size = deals.get("size") or 0 size = deals.get("size") or 0
position_idx = deals.get("positionIdx") position_idx = deals.get("positionIdx")
if position_idx != 0 and int(size) > 0 and trade_mode == "Merged_Single": if position_idx != 0 and safe_float(size) > 0 and trade_mode == "Merged_Single":
await callback_query.answer( await callback_query.answer(
text="У вас есть активная позиция в режиме хеджирования. " text="У вас есть активная позиция в режиме хеджирования. "
"Открытие сделки в одностороннем режиме невозможно.", "Открытие сделки в одностороннем режиме невозможно.",
) )
return return
if position_idx == 0 and int(size) > 0 and trade_mode == "Both_Sides": if position_idx == 0 and safe_float(size) > 0 and trade_mode == "Both_Sides":
await callback_query.answer( await callback_query.answer(
text="У вас есть активная позиция в одностороннем режиме. " text="У вас есть активная позиция в одностороннем режиме. "
"Открытие сделки в режиме хеджирования невозможно.", "Открытие сделки в режиме хеджирования невозможно.",
@@ -108,7 +109,7 @@ async def start_trading_long(callback_query: CallbackQuery, state: FSMContext) -
size = deals.get("size") or 0 size = deals.get("size") or 0
position_idx = deals.get("positionIdx") position_idx = deals.get("positionIdx")
if position_idx == 0 and int(size) > 0: if position_idx == 0 and safe_float(size) > 0:
await callback_query.answer( await callback_query.answer(
text="Торговля уже запущена в одностороннем режиме для данного инструмента" text="Торговля уже запущена в одностороннем режиме для данного инструмента"
) )
@@ -251,13 +252,13 @@ async def start_switch(callback_query: CallbackQuery, state: FSMContext) -> None
size = deals.get("size") or 0 size = deals.get("size") or 0
position_idx = deals.get("positionIdx") position_idx = deals.get("positionIdx")
if position_idx == 1 and int(size) > 0 and side == "Buy": if position_idx == 1 and safe_float(size) > 0 and side == "Buy":
await callback_query.answer( await callback_query.answer(
text="Торговля уже запущена в режиме хеджирования на покупку для данного инструмента" text="Торговля уже запущена в режиме хеджирования на покупку для данного инструмента"
) )
return return
if position_idx == 2 and int(size) > 0 and side == "Sell": if position_idx == 2 and safe_float(size) > 0 and side == "Sell":
await callback_query.answer( await callback_query.answer(
text="Торговля уже запущена в режиме хеджирования на продажу для данного инструмента" text="Торговля уже запущена в режиме хеджирования на продажу для данного инструмента"
) )