Реализация Grid-бота в мобильном приложении
Разработка Grid-бота (или Grid trading) — одна из самых частых задач, которые нам заказывают. Клиенты приходят с опытом: пробовали готовые боты — не хватало гибкости, или нужна была интеграция со своей торговой платформой. Мы берёмся за такие проекты с нуля: от проектирования архитектуры до публикации в сторах. Оценим проект в течение дня — просто свяжитесь с нами.
Техническая сложность Grid-бота не в алгоритме — он тривиален: выставить сетку ордеров, ждать исполнения, переставлять. Основные проблемы — визуализация сетки в реальном времени, корректный расчёт PnL при частичном исполнении и синхронизация с биржевым API через WebSocket. Именно эти три аспекта мы прорабатываем особенно тщательно.
Как настроить параметры сетки?
Начнём с настройки. Grid-бот оперирует четырьмя ключевыми параметрами: диапазон цен (нижняя и верхняя граница), количество уровней, размер ордера и тип сетки — арифметическая или геометрическая. Каждый параметр влияет на профиль риска и потенциальную доходность. Арифметическая сетка даёт равный шаг в абсолютной цене, геометрическая — равный процентный шаг. Для волатильных активов геометрическая сетка предпочтительнее: при цене 10 000 шаг в 500 USDT разумен, а при 60 000 — ничтожен.
// Android — вычисление уровней сетки fun calculateGridLevels( lower: Double, upper: Double, count: Int, type: GridType ): List<Double> = when (type) { GridType.ARITHMETIC -> { val step = (upper - lower) / count (0..count).map { i -> lower + step * i } } GridType.GEOMETRIC -> { val ratio = (upper / lower).pow(1.0 / count) (0..count).map { i -> lower * ratio.pow(i.toDouble()) } } } Пользователь вводит диапазон и число уровней — приложение сразу показывает предпросмотр: вот уровни, вот шаг между ними, вот суммарный капитал, который потребуется на все ордера. Например, для пары BTC/USDT с диапазоном 40 000–60 000 и 10 уровнями арифметическая сетка даёт шаг 2 000 USDT, а геометрическая — ~4% между уровнями. Благодаря такому предпросмотру трейдер видит, сколько займёт каждый уровень и как изменится PnL при разных настройках.
Как визуализировать сетку на мобильном экране?
Это главный UI-вызов. Нужен кастомный виджет: горизонтальные линии уровней сетки на фоне ценового графика. Исполненные ордера — зелёные/красные маркеры. Текущая цена — пульсирующая линия.
На Flutter мы используем CustomPainter:
class GridChartPainter extends CustomPainter { final List<GridLevel> levels; final List<PricePoint> priceHistory; final double currentPrice; @override void paint(Canvas canvas, Size size) { final priceRange = levels.last.price - levels.first.price; final priceToY = (double price) => size.height - (price - levels.first.price) / priceRange * size.height; // Рисуем уровни сетки for (final level in levels) { final y = priceToY(level.price); final paint = Paint() ..color = level.hasFilled ? Colors.green.withOpacity(0.3) : Colors.grey.withOpacity(0.2) ..strokeWidth = 1; canvas.drawLine(Offset(0, y), Offset(size.width, y), paint); final tp = TextPainter( text: TextSpan(text: level.price.toStringAsFixed(0), style: const TextStyle(fontSize: 10)), textDirection: TextDirection.ltr, )..layout(); tp.paint(canvas, Offset(4, y - 12)); } // Ценовая линия final pricePaint = Paint()..color = Colors.blue..strokeWidth = 1.5; for (int i = 1; i < priceHistory.length; i++) { canvas.drawLine( Offset(size.width * (i-1) / priceHistory.length, priceToY(priceHistory[i-1].price)), Offset(size.width * i / priceHistory.length, priceToY(priceHistory[i].price)), pricePaint, ); } } @override bool shouldRepaint(GridChartPainter old) => old.currentPrice != currentPrice || old.levels != levels; } Аналогичные решения на iOS — CoreGraphics или SwiftUI Canvas, на Android — кастомные View с onDraw. Для React Native можно использовать react-native-svg или Skia. Важно добиться плавности при 60 FPS даже на устройствах с 2 ГБ ОЗУ — мы оптимизируем рендеринг, обновляя только изменяющиеся элементы.
Что такое Grid PnL и как его рассчитать?
Grid PnL — суммарный доход от исполненных пар ордеров. Каждая сработавшая пара приносит шаг сетки × размер ордера. Floating PnL — нереализованная прибыль/убыток, когда цена выходит за диапазон. Если актив упал ниже нижней границы — бот держит все купленные ордера в убытке до возврата. Например, при диапазоне 40 000–60 000 и шаге 2 000 USDT, если цена упала до 38 000, Floating PnL составит -2 000 USDT на каждом уровне. Мы отображаем эти цифры на дашборде в реальном времени, позволяя трейдеру вовремя остановить бота.
Также показываем: количество исполненных пар, число активных ордеров сейчас, капитал в работе. Эти метрики обновляются каждые 100 мс через WebSocket.
| Параметр | Арифметическая сетка | Геометрическая сетка |
|---|---|---|
| Шаг | Фиксированный (USDT) | Процентный (%) |
| Когда лучше | Низковолатильные активы | Высоковолатильные активы |
| Риск при выходе из диапазона | Одинаковый на всех уровнях | Меньше на верхних уровнях |
| Этап работы | Срок |
|---|---|
| Аналитика и спецификация | 1 день |
| Проектирование архитектуры | 1–2 дня |
| Реализация виджета и логики | 4–5 дней |
| Интеграция с биржей (API) | 1–2 дня |
| Тестирование и публикация | 2–3 дня |
Почему стоит заказать Grid-бота у нас?
Мы разрабатываем торговые мобильные приложения более 5 лет. В портфолио более 20 проектов с биржевой интеграцией, в том числе 3 Grid-бота для криптовалютных бирж. Опыт работы с WebSocket, Firebase, StoreKit 2 и Billing 6. Гарантируем соблюдение App Store Review Guidelines и политик Google Play. Экономия на покупке готового бота — до 40% при заказе с нуля, так как вы получаете только нужный функционал без переплаты за лишние модули. Стоимость разработки рассчитывается индивидуально, а сроки мы укладываем с запасом.
Что входит в работу
- Форма настройки с выбором типа сетки и предпросмотром уровней
- Кастомный виджет визуализации сетки (CustomPainter / Canvas)
- Дашборд: Grid PnL, Floating PnL, число исполненных пар
- История исполненных ордеров с группировкой по парам
- Real-time обновление статуса ордеров через WebSocket
Заказ и оценка проекта
Напишите нам — проанализируем ваши требования, предложим архитектуру и оценим проект за 1 рабочий день. Работаем под ключ: от прототипа до публикации в App Store и Google Play. Получите консультацию по вашему проекту уже сегодня. Мы гарантируем прозрачность на каждом этапе и предоставляем детальный отчёт о ходе работ.







