Grid Bot Implementation in Mobile Apps
Developing a Grid bot (or Grid trading) is one of the most frequent tasks we get. Clients come with experience: they've tried ready-made bots but lacked flexibility, or needed integration with their own trading platform. We take on such projects from scratch: from architecture design to app store publication. We'll evaluate your project within a day — just contact us.
The technical complexity of a Grid bot is not in the algorithm — it's trivial: place a grid of orders, wait for execution, replace them. The main challenges are real-time grid visualization, correct PnL calculation with partial fills, and syncing with exchange API via WebSocket. These three aspects we work on especially carefully.
How to Set Grid Parameters?
Let's start with configuration. A Grid bot operates with four key parameters: price range (lower and upper bound), number of levels, order size, and grid type — arithmetic or geometric. Each parameter affects risk profile and potential return. An arithmetic grid gives equal absolute price step, geometric — equal percentage step. For volatile assets, geometric grid is preferable: at price 10,000 a 500 USDT step is reasonable, but at 60,000 it is negligible.
// Android — grid level calculation 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()) } } } The user enters the range and number of levels — the app immediately shows a preview: here are the levels, the step between them, and the total capital required for all orders. For example, BTC/USDT pair with range 40,000–60,000 and 10 levels, arithmetic grid gives a step of 2,000 USDT, geometric — ~4% between levels. This preview helps the trader see how much each level will take and how PnL changes with different settings.
How to Visualize the Grid on a Mobile Screen?
This is the main UI challenge. A custom widget is needed: horizontal lines of grid levels overlaid on a price chart. Executed orders — green/red markers. Current price — pulsing line.
On Flutter we use 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; // Draw grid levels 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)); } // Price line 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; } Similar solutions on iOS — CoreGraphics or SwiftUI Canvas, on Android — custom View with onDraw. For React Native we can use react-native-svg or Skia. It's crucial to achieve smoothness at 60 FPS even on devices with 2 GB RAM — we optimize rendering by updating only changed elements.
What is Grid PnL and How to Calculate It?
Grid PnL is the total profit from executed order pairs. Each completed pair yields grid step × order size. Floating PnL is unrealized profit/loss when price exits the range. If the asset drops below the lower bound, the bot holds all bought orders at a loss until it returns. For example, with range 40,000–60,000 and step 2,000 USDT, if price falls to 38,000, Floating PnL will be -2,000 USDT per level. We display these numbers on a real-time dashboard, allowing the trader to stop the bot in time.
We also show: number of completed pairs, current active orders, capital at work. These metrics update every 100 ms via WebSocket.
| Parameter | Arithmetic Grid | Geometric Grid |
|---|---|---|
| Step | Fixed (USDT) | Percentage (%) |
| When best | Low-volatility assets | High-volatility assets |
| Risk when exiting range | Same at all levels | Smaller at upper levels |
| Stage | Time |
|---|---|
| Analysis and specification | 1 day |
| Architecture design | 1–2 days |
| Widget and logic implementation | 4–5 days |
| Exchange API integration | 1–2 days |
| Testing and publication | 2–3 days |
Why Order a Grid Bot from Us?
We've been developing trading mobile apps for over 5 years. Our portfolio includes more than 20 projects with exchange integration, including 3 Grid bots for cryptocurrency exchanges. Experience with WebSocket, Firebase, StoreKit 2, and Billing 6. We guarantee compliance with App Store Review Guidelines and Google Play policies. Savings on purchasing a ready-made bot — up to 40% when ordering from scratch, as you get only the needed functionality without paying extra for unnecessary modules. Development cost is calculated individually, and we meet deadlines with a buffer.
What's Included
- Settings form with grid type selection and level preview
- Custom grid visualization widget (CustomPainter / Canvas)
- Dashboard: Grid PnL, Floating PnL, number of executed pairs
- History of executed orders grouped by pairs
- Real-time order status updates via WebSocket
Order and Project Estimation
Contact us — we'll analyze your requirements, propose an architecture, and estimate the project within 1 working day. We work turnkey: from prototype to publication in App Store and Google Play. Get a consultation on your project today. We guarantee transparency at every stage and provide a detailed progress report.







