Grid-бот у мобільному додатку: налаштування та візуалізація
Розробка Grid-бота (або Grid trading) — одна з найчастіших задач, які нам замовляють. Клієнти приходять з досвідом: пробували готові боти — не вистачало гнучкості, або потрібна була інтеграція зі своєю торговою платформою. Ми беремося за такі проєкти з нуля: від проектування архітектури до публікації в сторах. Оцінимо проєкт протягом дня — просто зв'яжіться з нами. Ми пропонуємо індивідуальний підхід та оптимізацію під ваші вимоги.
Про компанію
Наша команда має понад 5 років досвіду розробки торгових мобільних додатків. Ми реалізували понад 20 проєктів з біржовою інтеграцією, включаючи 3 Grid-боти для криптовалютних бірж. Гарантуємо дотримання App Store Review Guidelines та політик Google Play.
Технічна складність Grid-бота не в алгоритмі — він тривіальний: виставити сітку ордерів, чекати виконання, переставляти. Основні проблеми — візуалізація сітки в реальному часі, коректний розрахунок PnL при частковому виконанні та синхронізація з біржовим API через WebSocket. Саме ці три аспекти ми опрацьовуємо особливо ретельно, використовуючи сучасні бібліотеки та оптимізації для забезпечення плавності навіть на слабких пристроях.
Як налаштувати параметри сітки?
Почнемо з налаштування. Grid-бот оперує чотирма ключовими параметрами: діапазон цін (нижня і верхня межа), кількість рівнів, розмір ордера та тип сітки — арифметична або геометрична. Кожен параметр впливає на профіль ризику та потенційну дохідність. Арифметична сітка дає рівний крок в абсолютній ціні, геометрична — рівний відсотковий крок. Для волатильних активів геометрична сітка краща: при ціні 10 000 крок у 500 USDT розумний, а при 60 000 — мізерний. Спред між рівнями обчислюється з урахуванням волатильності.
Кроки для створення Grid-бота
- Визначте діапазон цін та кількість рівнів.
- Оберіть тип сітки (арифметична або геометрична).
- Встановіть розмір ордера та загальний капітал.
- Запустіть бота та слідкуйте за оновленнями в реальному часі.
// 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 на кожному рівні. Для оцінки ліквідності ми використовуємо кумулятивну дельту та глибину ринку, а альфа-коефіцієнт стратегії розраховується автоматично. Додатково ми інтегруємо метрики ризику: максимальне просідання (drawdown) та коефіцієнт Шарпа для оцінки прибутковості. Ми відображаємо ці цифри на дашборді в реальному часі, дозволяючи трейдеру вчасно зупинити бота.
Також показуємо: кількість виконаних пар, число активних ордерів зараз, капітал у роботі. Ці метрики оновлюються кожні 100 мс через WebSocket.
| Параметр | Арифметична сітка | Геометрична сітка |
|---|---|---|
| Крок | Фіксований (USDT) | Відсотковий (%) |
| Коли краще | Низьковолатильні активи | Високоволатильні активи |
| Ризик при виході з діапазону | Однаковий на всіх рівнях | Менший на верхніх рівнях |
| Етап роботи | Термін |
|---|---|
| Аналітика та специфікація | 1 день |
| Проектування архітектури | 1–2 дні |
| Реалізація віджета та логіки | 4–5 днів |
| Інтеграція з біржею (API) | 1–2 дні |
| Тестування та публікація | 2–3 дні |
Переваги замовлення Grid-бота у нас
Ми розробляємо торгові мобільні додатки більше 5 років. У портфоліо понад 20 проєктів з біржовою інтеграцією, у тому числі 3 Grid-боти для криптовалютних бірж. Досвід роботи з WebSocket, Firebase, StoreKit 2 та Billing 6. Гарантуємо дотримання політик магазинів. Наша кастомна розробка в 2 рази гнучкіша за готові боти, а регулярні оновлення забезпечують у 3 рази швидшу адаптацію до ринкових змін. Ви отримуєте лише потрібний функціонал без зайвих модулів. Вартість розробки розраховується індивідуально, а терміни ми витримуємо із запасом.
Що входить у роботу
- Форма налаштування з вибором типу сітки та попереднім переглядом рівнів
- Кастомний віджет візуалізації сітки (CustomPainter / Canvas)
- Дашборд: Grid PnL, Floating PnL, кількість виконаних пар
- Історія виконаних ордерів з групуванням по парах
- Real-time оновлення статусу ордерів через WebSocket
Замовлення та оцінка проєкту
Напишіть нам — проаналізуємо ваші вимоги, запропонуємо архітектуру та оцінимо проєкт за 1 робочий день. Працюємо під ключ: від прототипу до публікації в App Store та Google Play. Отримайте консультацію щодо вашого проєкту вже сьогодні. Ми гарантуємо прозорість на кожному етапі та надаємо детальний звіт про хід робіт.







