Мы строим торговых ботов, которые выдерживают 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 месяцев |
Стоимость рассчитывается индивидуально после анализа ваших требований. Если вы задумались о собственном торговом боте, свяжитесь с нами для оценки проекта. Закажите разработку — мы подготовим подходящее решение под ключ. Получите консультацию, и мы оценим вашу идею, предложив оптимальную архитектуру.







