Fixed the switch trading mode, adjusted the take profit, added a trading cycle
This commit is contained in:
@@ -143,6 +143,7 @@ class UserDeals(Base):
|
||||
current_step = Column(Integer, nullable=True)
|
||||
symbol = Column(String, nullable=True)
|
||||
trade_mode = Column(String, nullable=True)
|
||||
side_mode = Column(String, nullable=True)
|
||||
base_quantity = Column(Float, nullable=True)
|
||||
margin_type = Column(String, nullable=True)
|
||||
leverage = Column(String, nullable=True)
|
||||
|
@@ -898,6 +898,7 @@ async def set_user_deal(
|
||||
last_side: str,
|
||||
current_step: int,
|
||||
trade_mode: str,
|
||||
side_mode: str,
|
||||
margin_type: str,
|
||||
leverage: str,
|
||||
order_quantity: float,
|
||||
@@ -915,6 +916,7 @@ async def set_user_deal(
|
||||
:param last_side: Last side
|
||||
:param current_step: Current step
|
||||
:param trade_mode: Trade mode
|
||||
:param side_mode: Side mode
|
||||
:param margin_type: Margin type
|
||||
:param leverage: Leverage
|
||||
:param order_quantity: Order quantity
|
||||
@@ -944,6 +946,7 @@ async def set_user_deal(
|
||||
deal.last_side = last_side
|
||||
deal.current_step = current_step
|
||||
deal.trade_mode = trade_mode
|
||||
deal.side_mode = side_mode
|
||||
deal.margin_type = margin_type
|
||||
deal.leverage = leverage
|
||||
deal.order_quantity = order_quantity
|
||||
@@ -961,6 +964,7 @@ async def set_user_deal(
|
||||
last_side=last_side,
|
||||
current_step=current_step,
|
||||
trade_mode=trade_mode,
|
||||
side_mode=side_mode,
|
||||
margin_type=margin_type,
|
||||
leverage=leverage,
|
||||
order_quantity=order_quantity,
|
||||
@@ -1050,6 +1054,34 @@ async def set_fee_user_deal_by_symbol(tg_id: int, symbol: str, fee: float):
|
||||
return False
|
||||
|
||||
|
||||
async def set_last_side_by_symbol(tg_id: int, symbol: str, last_side: str):
|
||||
"""Set last side for a user deal by symbol in the database."""
|
||||
try:
|
||||
async with async_session() as session:
|
||||
result = await session.execute(select(User).filter_by(tg_id=tg_id))
|
||||
user = result.scalars().first()
|
||||
if user is None:
|
||||
logger.error(f"User with tg_id={tg_id} not found")
|
||||
return False
|
||||
|
||||
result = await session.execute(
|
||||
select(UserDeals).filter_by(user_id=user.id, symbol=symbol)
|
||||
)
|
||||
record = result.scalars().first()
|
||||
|
||||
if record:
|
||||
record.last_side = last_side
|
||||
else:
|
||||
logger.error(f"User deal with user_id={user.id} and symbol={symbol} not found")
|
||||
return False
|
||||
await session.commit()
|
||||
logger.info("Set last side for user %s and symbol %s", tg_id, symbol)
|
||||
return True
|
||||
except Exception as e:
|
||||
logger.error("Error setting user deal last side for user %s and symbol %s: %s", tg_id, symbol, e)
|
||||
return False
|
||||
|
||||
|
||||
# USER AUTO TRADING
|
||||
|
||||
async def get_all_user_auto_trading(tg_id: int):
|
||||
|
Reference in New Issue
Block a user