Entry
- Define range [low, high] and number of grids N
- Grid spacing d = (high - low) / N
- Place N/2 buy orders below the current price, N/2 sell orders above it
- When a buy executes: automatic sell at the next grid level (+d)
Exit
- Manual exit decision when price leaves the range
- Automatic 'exit all' when N% above/below the range (stop level)
- Re-balancing when rolling over into a new range
| Name | Typ. value | Description |
|---|---|---|
| range_low_high | ±15-30% around current price | Range boundaries |
| grid_count | 10-40 | Number of levels |
| profit_per_grid | grid_distance × position_size | Profit per filled pair |
Pros
- Profits in sideways markets where trend strategies lose
- Fully mechanical
- No signal timing needed
- Constant 'yield' as long as price stays in range
Cons
- Capital-inefficient — many orders tie up capital
- Catastrophic loss when price breaks out of the range — the open long position keeps falling
- Fees can eat up grid profits (maker rebates help)
- No real alpha — makes money from volatility, not from edge
Core idea
A grid bot lays out a grid of buy and sell orders at regular price intervals. Every filled buy order automatically triggers a sell order one level higher; every filled sell order triggers a buy order one level lower. In an oscillating market, pairs are closed continuously, and each completed pair is a small profit.
Example
BTC range [90,000, 110,000], 10 grids, current price 100,000:
110,000 ───── Sell 5 (Grid 5)
108,000 ───── Sell 4
106,000 ───── Sell 3
104,000 ───── Sell 2
102,000 ───── Sell 1
100,000 ───── current
98,000 ───── Buy 1
96,000 ───── Buy 2
94,000 ───── Buy 3
92,000 ───── Buy 4
90,000 ───── Buy 5
Price drops to 98,000 → Buy-1 fills → new sell order at 100,000. Price returns to 100,000 → Sell-1 fills → profit = 2,000 × grid size. New buy placed at 98,000. Cycle repeats.
When it works
- Ranging market with lots of oscillation — ideal
- Mild trend with lots of noise — works but suboptimally
- Strong trend out of the range — catastrophic loss (open buys keep running deeper)
Real-world results
Vendors like Altrady, Pionex, Bitsgap typically report 0.5-2% monthly return in favorable ETH/USDT ranges with a 20% range spread and 20 grids. Annualized 6-25% in reality, because not every month is a ranging month.
Peer-reviewed research (Stevens Institute) shows: grid trading with additional hedging (e.g. a short perp proportional to the open net-long position) significantly stabilizes performance. Without a hedge, a grid bot is life-threatening in a bear market — it keeps buying into the falling market.
Typical mistakes
- Range too tight: the smallest breakout move takes the bot out of the range
- Too few grids: few levels = few profits
- No stop: once the range breaks, the bot must be actively shut down
- Ignoring fees: on venues with a 0.1% taker fee, the grid profit per pair can be completely eaten up
Relevance for Botty
Botty is primarily trend/breakout oriented. A grid would make sense as a complementary module in ranging phases (ADX < 20) — but the overhead costs (auto-detection, range selection, abort logic at trend onset) are high. Rather low priority for a first version.