from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup from aiogram.utils.keyboard import InlineKeyboardBuilder start_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="🔥 Начать торговлю", callback_data="clb_start_chatbot_message")] ]) settings_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="Настройки", callback_data='clb_settings_message')], [InlineKeyboardButton(text="Запуск", callback_data='clb_start_trading')] ]) back_btn_profile = [InlineKeyboardButton(text="Назад", callback_data='clb_start_chatbot_message')] special_settings_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="Основные настройки", callback_data='clb_change_main_settings'), InlineKeyboardButton(text="Риск-менеджмент", callback_data='clb_change_risk_management_settings')], [InlineKeyboardButton(text="Условия запуска", callback_data='clb_change_condition_settings'), InlineKeyboardButton(text="Дополнительные параметры", callback_data='clb_change_additional_settings')], [InlineKeyboardButton(text="Подключить Bybit", callback_data='clb_new_user_connect_bybit_api_message')], back_btn_profile ]) connect_bybit_api_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="Подключить Bybit", callback_data='clb_new_user_connect_bybit_api')] ]) trading_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="Настройки", callback_data='clb_settings_message')], [InlineKeyboardButton(text="Мои сделки", callback_data='clb_my_deals')], [InlineKeyboardButton(text="Указать торговую пару", callback_data='clb_update_trading_pair')], [InlineKeyboardButton(text="Начать торговлю", callback_data='clb_update_entry_type')], [InlineKeyboardButton(text="Остановить торговлю", callback_data='clb_stop_trading')], ]) start_trading_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="На главную", callback_data='back_to_main')], [InlineKeyboardButton(text="Начать торговлю", callback_data="clb_start_chatbot_trading")], [InlineKeyboardButton(text="Установить таймер", callback_data="clb_set_timer")], ]) cancel = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="Отменить", callback_data="clb_cancel")] ]) entry_order_type_markup = InlineKeyboardMarkup( inline_keyboard=[ [ InlineKeyboardButton(text="Market (текущая цена)", callback_data="entry_order_type:Market"), InlineKeyboardButton(text="Limit (фиксированная цена)", callback_data="entry_order_type:Limit"), ], ] ) back_btn_list_settings = [InlineKeyboardButton(text="Назад", callback_data='clb_back_to_special_settings_message')] # Кнопка для возврата к списку каталога настроек back_btn_list_settings_markup = InlineKeyboardMarkup(inline_keyboard=[[InlineKeyboardButton(text="Назад", callback_data='clb_back_to_special_settings_message')]]) # Клавиатура для возврата к списку каталога настроек back_btn_to_main = [InlineKeyboardButton(text="На главную", callback_data='clb_back_to_main')] back_to_main = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="На главную", callback_data='back_to_main')], ]) main_settings_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text='Режим торговли', callback_data='clb_change_trading_mode'), InlineKeyboardButton(text='Тип маржи', callback_data='clb_change_margin_type')], [InlineKeyboardButton(text='Размер кредитного плеча', callback_data='clb_change_size_leverage'), InlineKeyboardButton(text='Начальная ставка', callback_data='clb_change_starting_quantity')], [InlineKeyboardButton(text='Коэффициент Мартингейла', callback_data='clb_change_martingale_factor'), InlineKeyboardButton(text='Сбросить шаги Мартингейла', callback_data='clb_change_martingale_reset')], [InlineKeyboardButton(text='Максимальное кол-во ставок', callback_data='clb_change_maximum_quantity')], back_btn_list_settings, back_btn_to_main ]) risk_management_settings_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text='Изм. цены прибыли', callback_data='clb_change_price_profit'), InlineKeyboardButton(text='Изм. цены убытков', callback_data='clb_change_price_loss')], [InlineKeyboardButton(text='Макс. риск на сделку', callback_data='clb_change_max_risk_deal')], [InlineKeyboardButton(text='Учитывать комиссию биржи (Да/Нет)', callback_data='commission_fee')], back_btn_list_settings, back_btn_to_main ]) condition_settings_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text='Триггер', callback_data='clb_change_trigger'), InlineKeyboardButton(text='Таймер', callback_data='clb_change_timer')], [InlineKeyboardButton(text='Фильтр волатильности', callback_data='clb_change_filter_volatility'), InlineKeyboardButton(text='Внешние сигналы', callback_data='clb_change_external_cues')], [InlineKeyboardButton(text='Сигналы TradingView', callback_data='clb_change_tradingview_cues'), InlineKeyboardButton(text='Webhook URL', callback_data='clb_change_webhook')], [InlineKeyboardButton(text='AI - аналитика', callback_data='clb_change_ai_analytics')], back_btn_list_settings, back_btn_to_main ]) additional_settings_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text='Сохранить шаблон', callback_data='clb_change_save_pattern'), InlineKeyboardButton(text='Автозапуск', callback_data='clb_change_auto_start')], [InlineKeyboardButton(text='Уведомления', callback_data='clb_change_notifications')], back_btn_list_settings, back_btn_to_main ]) trading_mode_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="Лонг", callback_data="trade_mode_long"), InlineKeyboardButton(text="Шорт", callback_data="trade_mode_short")], [InlineKeyboardButton(text="Свитч", callback_data="trade_mode_switch"), InlineKeyboardButton(text="Смарт", callback_data="trade_mode_smart")], back_btn_list_settings, back_btn_to_main ]) margin_type_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="Изолированный", callback_data="margin_type_isolated"), InlineKeyboardButton(text="Кросс", callback_data="margin_type_cross")], back_btn_list_settings, back_btn_to_main ]) trigger_markup = InlineKeyboardMarkup(inline_keyboard=[ # ИЗМЕНИТЬ НА INLINE [InlineKeyboardButton(text='Ручной', callback_data="clb_trigger_ruchnoy"), InlineKeyboardButton(text='TradingView', callback_data="clb_trigger_tradingview")], [InlineKeyboardButton(text="Автоматический", callback_data="clb_trigger_auto")] ]) buttons_yes_no_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text='Да', callback_data="clb_yes"), InlineKeyboardButton(text='Нет', callback_data="clb_no")], ]) buttons_on_off_markup = InlineKeyboardMarkup(inline_keyboard=[ # ИЗМЕНИТЬ НА INLINE [InlineKeyboardButton(text='Включить', callback_data="clb_on"), InlineKeyboardButton(text='Выключить', callback_data="clb_off")] ]) my_deals_select_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text='Открытые сделки', callback_data="clb_open_deals"), InlineKeyboardButton(text='Лимитные ордера', callback_data="clb_open_orders")], back_btn_to_main ]) def create_trades_inline_keyboard(trades): builder = InlineKeyboardBuilder() for trade in trades: builder.button(text=trade, callback_data=f"show_deal_{trade}") builder.adjust(2) return builder.as_markup() def create_trades_inline_keyboard_limits(trades): builder = InlineKeyboardBuilder() for trade in trades: builder.button(text=trade, callback_data=f"show_limit_{trade}") builder.adjust(2) return builder.as_markup() def create_close_deal_markup(symbol: str) -> InlineKeyboardMarkup: return InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="Закрыть сделку", callback_data=f"close_deal:{symbol}")], [InlineKeyboardButton(text="Закрыть по таймеру", callback_data=f"close_deal_by_timer:{symbol}")], [InlineKeyboardButton(text="Установить TP/SL", callback_data="clb_set_tp_sl")], back_btn_to_main ]) def create_close_limit_markup(symbol: str) -> InlineKeyboardMarkup: return InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="Закрыть лимитный ордер", callback_data=f"close_limit:{symbol}")], [InlineKeyboardButton(text="Установить TP/SL", callback_data="clb_set_tp_sl_")], back_btn_to_main ]) timer_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="Установить таймер", callback_data="clb_set_timer")], back_btn_to_main ]) cancel_start_markup = InlineKeyboardMarkup(inline_keyboard=[ [InlineKeyboardButton(text="Отменить таймер", callback_data="clb_stop_timer")] ]) stop_choice_markup = InlineKeyboardMarkup( inline_keyboard=[ [ InlineKeyboardButton(text="Остановить сразу", callback_data="stop_immediately"), InlineKeyboardButton(text="Остановить по таймеру", callback_data="stop_with_timer"), ] ] )