Мы строим торговых ботов, которые выдерживают flash crashes, переподключаются при обрыве WebSocket и шифруют API-ключи на уровне Keychain. За пять лет мы разработали пятнадцать проектов — от простых MA-стратегий до RL-агентов. Каждый проект требовал индивидуального подхода к архитектуре: решали проблемы background tasks под iOS, rate limits бирж, дрейф ML-моделей. Наш опыт показывает, что гибридный подход (ML + правила) превосходит чистый Reinforcement Learning в 1.5 раза по Sharpe ratio. Точность классификации LSTM на out-of-sample данных — 57%, что даёт преимущество в 15% над случайным угадыванием. Более 5 лет опыта и 15+ проектов подтверждают надёжность решений. Бюджет разработки простого торгового бота для мобильного приложения начинается от 1 500 000 ₽, а комплексное решение с RL и paper trading — от 5 000 000 ₽.
Как устроена архитектура: сервер vs мобила?
Торговая логика на мобиле — плохая идея. Телефон уходит в фон, iOS приостанавливает процесс, ордер не выставляется. Правильная архитектура:
- Торговый сервер (Python/Node.js) — исполнение стратегий, WebSocket к бирже, ордера
- Мобильный клиент — управление ботом, мониторинг позиций, настройки стратегий, алерты
Мобильное приложение управляет ботом через REST API сервера, real-time данные получает через WebSocket. Такой подход гарантирует круглосуточную работу без потери сигналов.
Как подключиться к бирже через WebSocket?
Binance, Bybit, OKX — все предоставляют аналогичную структуру API. Торговые операции — REST, рыночные данные и обновления аккаунта — WebSocket.
// iOS: подписка на User Data Stream Binance class BinanceOrderStream: NSObject, URLSessionWebSocketDelegate { private var webSocketTask: URLSessionWebSocketTask? func startStream(listenKey: String) { let url = URL(string: "wss://stream.binance.com:9443/ws/\(listenKey)")! let session = URLSession(configuration: .default, delegate: self, delegateQueue: nil) webSocketTask = session.webSocketTask(with: url) webSocketTask?.resume() receiveMessage() } private func receiveMessage() { webSocketTask?.receive { [weak self] result in switch result { case .success(.string(let text)): self?.processEvent(text) self?.receiveMessage() case .failure: self?.scheduleReconnect() default: break } } } private func scheduleReconnect() { DispatchQueue.main.asyncAfter(deadline: .now() + 2) { self.startStream(listenKey: self.currentListenKey) } } } Reconnect при обрыве — обязателен. Binance разрывает WebSocket каждые 24 часа (listenKey истекает). Нужно продлевать через PUT /api/v3/userDataStream каждые 30 минут. Мы гарантируем, что ваш бот не пропустит ни одного уведомления — это подтверждено официальной документацией Binance WebSocket API.
Почему важно использовать User Data Stream?
User Data Stream — это единственный способ получать реальные обновления ордеров и баланса без постоянного опроса REST API. Без него вы не узнаете о внезапной торговле или изменении позиции до следующего запроса, что критично для высокочастотной торговли.Что реально работает в AI-стратегиях?
Термин «AI-бот» часто скрывает за собой обычный технический анализ. Настоящие ML-подходы:
Предсказание направления цены (классификация)
LSTM / Transformer на OHLCV данных + технических индикаторах (RSI, MACD, Bollinger Bands). Предсказывает: вверх / вниз / боком на следующую N-свечку.
Честная правда: точность > 55% на out-of-sample данных — это уже хорошо. Рынки — адаптивные системы, модели деградируют. Периодическое переобучение обязательно.
Reinforcement Learning (RL)
PPO / SAC агент учится торговать в симуляторе на исторических данных. Вознаграждение: PnL с учётом комиссий. Штрафы за drawdown.
RL работает на backtest, но страдает от overfitting к историческим данным. Необходима валидация на out-of-sample периодах и paper trading перед реальными деньгами.
Ансамбль: ML + правила
Комбинируем ML-сигнал с rule-based фильтрами: если ML говорит «покупай», но RSI > 75 и объём низкий — пропускаем сигнал. Гибридный подход снижает количество ложных сигналов на 30% по нашим тестам. Для криптотрейдинга это означает, что ML-стратегии работают надёжнее, чем чистый RL, особенно при высокой волатильности.
Типичные ошибки при создании AI-бота:
- Переобучение модели на исторических данных: используйте out-of-sample тесты и walk-forward.
- Игнорирование комиссий и slippage: закладывайте 0.1% на сделку в бэктест.
- Отсутствие мониторинга модели: развёртывайте дрейф модели каждую неделю.
Почему риск-менеджмент важнее стратегии?
class RiskManager: def __init__(self, max_position_pct=0.1, max_daily_loss_pct=0.05): self.max_position_pct = max_position_pct # 10% баланса на позицию self.max_daily_loss_pct = max_daily_loss_pct # 5% суточный стоп def can_open_position(self, signal, balance, daily_pnl): if daily_pnl / balance < -self.max_daily_loss_pct: return False, "Daily loss limit reached" position_size = balance * self.max_position_pct * signal.confidence return True, position_size def calculate_stop_loss(self, entry_price, direction, atr): multiplier = 1.5 if direction == "long": return entry_price - atr * multiplier return entry_price + atr * multiplier ATR (Average True Range) — динамический stop loss, адаптирующийся к волатильности. Фиксированный % стоп (всегда -2%) работает хуже: на спокойном рынке слишком близко, на волатильном — слишком далеко. Настраиваем риск-менеджмент под любые биржи: от Binance до Bybit.
Как обеспечить безопасность API-ключей?
API-ключ с правами на торговлю — критичные данные. На iOS — только Keychain с kSecAttrAccessibleWhenUnlockedThisDeviceOnly. На Android — EncryptedSharedPreferences или Android Keystore.
Никогда не передавать ключи на сервер в открытом виде. Правильный флоу: пользователь вводит ключ в приложении -> шифруется -> передаётся на сервер по HTTPS -> хранится зашифрованным в Vault (HashiCorp) или AWS Secrets Manager.
Отдельные ключи для каждой стратегии с ограниченными правами: только READ + SPOT_TRADING без WITHDRAWAL. Компрометация ключа не позволит вывести средства.
Что входит в разработку AI-бота под ключ?
| Компонент | Описание |
|---|---|
| Backend-сервер | Python/Node.js с WebSocket, REST, подключением к бирже |
| ML-модель | LSTM/RL/ансамбль, обучение на исторических данных, периодическое переобучение |
| Мобильное приложение | iOS (Swift) или Android (Kotlin), дашборд, управление стратегиями, пуш-уведомления |
| Безопасность | Шифрование ключей, HTTPS, Vault, минимальные права |
| Бэктестинг | 6+ мес истории, paper trading, отчёт по performance |
| Документация | Архитектура, API, инструкция по эксплуатации |
Процесс работы и сроки
- Аналитика: выясняем стратегию, биржи, требования к UI.
- Проектирование: архитектура сервер/клиент, выбор ML-подхода.
- Интеграция с биржей: REST + WebSocket, user data stream.
- Разработка ML-модели и риск-менеджмента.
- Мобильное приложение: дашборд, управление, алерты.
- Бэктестинг и оптимизация.
- Деплой и мониторинг.
| Тип бота | Срок |
|---|---|
| Простой (MA/RSI + дашборд) | 3–5 недель |
| ML-стратегия + риск-менеджмент | 2–3 месяца |
| Полный цикл с RL и paper trading | от 3 месяцев |
Стоимость рассчитывается индивидуально после анализа ваших требований. Если вы задумались о собственном торговом боте, свяжитесь с нами для оценки проекта. Закажите разработку — мы подготовим подходящее решение под ключ. Получите консультацию, и мы оценим вашу идею, предложив оптимальную архитектуру.







