forked from kodorvan/stcs
Update
This commit is contained in:
@@ -132,19 +132,27 @@ async def process_limit_price_message(message: Message, state: FSMContext):
|
||||
|
||||
@router_functions_bybit_trade.callback_query(F.data == "clb_open_deal")
|
||||
async def open_deal(callback: CallbackQuery, state: FSMContext):
|
||||
data_main_stgs = await rq.get_user_main_settings(callback.from_user.id)
|
||||
data = await state.get_data()
|
||||
order_type = await rq.get_entry_order_type(callback.from_user.id)
|
||||
api = await rq.get_bybit_api_key(callback.from_user.id)
|
||||
secret = await rq.get_bybit_secret_key(callback.from_user.id)
|
||||
qty = data_main_stgs['starting_quantity']
|
||||
qty_min = await func_min_qty.get_min_qty(callback.from_user.id, callback.message)
|
||||
|
||||
if qty < qty_min:
|
||||
await callback.message.edit_text(f"Количество вашей ставки ({qty}) меньше минимального количества ({qty_min}) для данной торговой пары")
|
||||
await callback.answer()
|
||||
return
|
||||
|
||||
if order_type == 'Market':
|
||||
await open_market_order(callback.from_user.id, callback.message, api_key=api, secret_key=secret)
|
||||
await rq.update_user_trades(callback.from_user.id, symbol=data.get('symbol'), side=order_type)
|
||||
elif order_type == 'Limit':
|
||||
price = data.get('limit_price')
|
||||
if not price:
|
||||
await callback.answer("Цена для лимитного ордера не задана. Введите сначала цену.")
|
||||
return
|
||||
|
||||
await open_limit_order(callback.from_user.id, callback.message, price, api_key=api, secret_key=secret)
|
||||
else:
|
||||
await callback.answer("Неизвестный тип ордера.")
|
||||
@@ -153,6 +161,33 @@ async def open_deal(callback: CallbackQuery, state: FSMContext):
|
||||
await state.clear()
|
||||
|
||||
|
||||
@router_functions_bybit_trade.callback_query(F.data == "clb_my_deals")
|
||||
async def show_my_trades_callback(callback: CallbackQuery):
|
||||
tg_id = callback.from_user.id
|
||||
trades = await rq.get_user_trades(tg_id)
|
||||
|
||||
if not trades:
|
||||
await callback.message.answer("У вас ещё нет сделок.")
|
||||
await callback.answer()
|
||||
return
|
||||
|
||||
grouped = {}
|
||||
for trade in trades:
|
||||
symbol = trade['symbol'] if isinstance(trade, dict) else trade.symbol
|
||||
grouped.setdefault(symbol, []).append(trade)
|
||||
|
||||
text_response = "Ваши сделки по валютным парам:\n\n"
|
||||
for symbol, trade_list in grouped.items():
|
||||
text_response += f"<b>{symbol}</b>\n"
|
||||
for t in trade_list:
|
||||
side = t['side'] if isinstance(t, dict) else t.side
|
||||
text_response += f" - {side}\n"
|
||||
text_response += "\n"
|
||||
|
||||
await callback.message.answer(text_response, parse_mode='html')
|
||||
await callback.answer()
|
||||
|
||||
|
||||
# @router_functions_bybit_trade.callback_query(F.data == 'clb_open_deal')
|
||||
# async def make_deal_bybit (callback: CallbackQuery):
|
||||
# data_main_stgs = await rq.get_user_main_settings(callback.from_user.id)
|
||||
@@ -160,7 +195,7 @@ async def open_deal(callback: CallbackQuery, state: FSMContext):
|
||||
# trade_mode = data_main_stgs['trading_mode']
|
||||
# qty = data_main_stgs['starting_quantity']
|
||||
# margin_mode = data_main_stgs['margin_type']
|
||||
# qty_min = await func_min_qty.get_min_qty(callback.from_user.id, callback.message)
|
||||
qty_min = await func_min_qty.get_min_qty(callback.from_user.id, callback.message)
|
||||
#
|
||||
# if qty < qty_min:
|
||||
# await callback.message.edit_text(f"Количество вашей ставки ({qty}) меньше минимального количества ({qty_min}) для данной торговой пары")
|
||||
|
Reference in New Issue
Block a user