Розробка Telegram-інтерфейсу управління AI-трейдинг-ботом

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Розробка Telegram-інтерфейсу управління AI-трейдинг-ботом
Простий
~2-3 дні
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1288
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1123
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    590
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    860

Разработка Telegram-интерфейса управления AI-трейдинг-ботом

Telegram-бот — наиболее удобный мобильный интерфейс для управления торговым ботом. Доступен с телефона везде, Push-уведомления в реальном времени, команды для управления.

Функциональность Telegram-интерфейса

Мониторинг

  • /status — текущий P&L, открытые позиции, статус бота
  • /positions — таблица открытых позиций
  • /trades [last N] — история последних сделок
  • /stats [daily|weekly|monthly] — статистика доходности
  • /equity — скриншот equity curve

Управление

  • /pause / /resume — пауза/возобновление торговли
  • /stop — экстренная остановка (с подтверждением)
  • /risk {0.5} — изменение множителя риска
  • /close {BTCUSDT} — закрыть конкретную позицию

Уведомления (push)

  • 🟢 Открытие позиции: символ, направление, цена, размер
  • 🔴 Закрытие позиции: P&L по сделке
  • ⚠️ Drawdown alert при превышении порога
  • 🚨 Ошибки соединения с биржей

Реализация

from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Application, CommandHandler, CallbackQueryHandler, ContextTypes
import asyncio

TOKEN = "your_telegram_bot_token"
ALLOWED_USERS = [123456789]  # Telegram user IDs

def auth_required(func):
    async def wrapper(update: Update, context: ContextTypes.DEFAULT_TYPE):
        if update.effective_user.id not in ALLOWED_USERS:
            await update.message.reply_text("⛔ Unauthorized")
            return
        return await func(update, context)
    return wrapper

@auth_required
async def status_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
    metrics = get_bot_metrics()
    positions = get_open_positions()

    text = f"""
📊 *Bot Status*
Status: {'🟢 Running' if metrics['running'] else '🔴 Paused'}
Daily P&L: `{metrics['daily_pnl']:+.2f}%`
Total P&L: `{metrics['total_pnl']:+.2f}%`
Open Positions: {len(positions)}

*Active Positions:*
"""
    for pos in positions:
        text += f"• {pos['symbol']}: {pos['side']} {pos['size']} @ {pos['entry']} ({pos['unrealized_pnl']:+.2f}%)\n"

    keyboard = [
        [InlineKeyboardButton("⏸ Pause", callback_data='pause'),
         InlineKeyboardButton("▶️ Resume", callback_data='resume')],
        [InlineKeyboardButton("🔄 Refresh", callback_data='refresh_status')]
    ]
    reply_markup = InlineKeyboardMarkup(keyboard)
    await update.message.reply_text(text, parse_mode='Markdown', reply_markup=reply_markup)

@auth_required
async def stop_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
    keyboard = [[
        InlineKeyboardButton("✅ Confirm STOP", callback_data='confirm_stop'),
        InlineKeyboardButton("❌ Cancel", callback_data='cancel_stop')
    ]]
    await update.message.reply_text(
        "⚠️ *Emergency Stop*\nThis will cancel all orders and close all positions. Confirm?",
        parse_mode='Markdown',
        reply_markup=InlineKeyboardMarkup(keyboard)
    )

async def send_trade_notification(bot, trade_data):
    """Отправка уведомления о сделке"""
    emoji = "🟢" if trade_data['side'] == 'buy' else "🔴"
    text = f"""{emoji} *Trade Executed*
Symbol: `{trade_data['symbol']}`
Side: {trade_data['side'].upper()}
Price: `${trade_data['price']:,.2f}`
Size: `{trade_data['quantity']}`
{'P&L: ' + f"`{trade_data['pnl']:+.2f}%`" if 'pnl' in trade_data else ''}"""

    for user_id in ALLOWED_USERS:
        await bot.send_message(user_id, text, parse_mode='Markdown')

# Запуск
def main():
    application = Application.builder().token(TOKEN).build()
    application.add_handler(CommandHandler("status", status_command))
    application.add_handler(CommandHandler("stop", stop_command))
    application.add_handler(CallbackQueryHandler(button_callback))
    application.run_polling()

Безопасность

  • ALLOWED_USERS whitelist — только авторизованные Telegram ID
  • Подтверждение для деструктивных операций (stop, close all)
  • Логирование всех команд
  • Rate limiting на команды (не чаще N раз в минуту)

Срок разработки: 1–2 недели для полнофункционального Telegram-интерфейса.