Appearance
Personalize your experience
Mode
Accent Color
Layout
Direction
Grid Trader Bot
Admin's Choice₹499/moAutomated grid trading for crypto and F&O markets
4.6(88)
1.1k installs 420 2 commentsQ
42 listings12400 followers
Official QuaTick team — building advanced charting & trading tools for the Indian market.
View Profilegridautomationcryptomarket-neutral
₹499 /month
Version2.1.0
Updated2025-11-05
Compatiblecandlestick
Rating Distribution
5
1
4
0
3
0
2
0
1
0
Preview
1 / 2
Chart preview
About
Places buy and sell orders at regular price intervals above and below a mid-price. Profits from oscillating (range-bound) markets.
How it works
1. Define upper/lower bounds and number of grid levels
2. Bot buys at each grid level when price dips to it
3. Sells at the next grid level above
4. Optionally re-centres the grid dynamically
Bot Details
Supported Brokers
Binance, Delta Exchange, Zerodha
Risk Level
medium
Strategy
Market-neutral grid with dynamic re-centering
Source Code
Edit in IDEtypescript
| 1 | // Grid Trader Bot — Quatick IDE |
| 2 | // Visualises grid efficiency as a single oscillator series. |
| 3 | // SDK math globals available: sma, ema, atr, rsi, macd, bollingerBands, vwap, etc. |
| 4 | |
| 5 | const metadata = { id: 'grid-bot', name: 'Grid Trader Bot', version: '1.0.0', category: 'bot' }; |
| 6 | |
| 7 | interface BarData { |
| 8 | time: number; |
| 9 | open: number; |
| 10 | high: number; |
| 11 | low: number; |
| 12 | close: number; |
| 13 | volume?: number; |
| 14 | } |
| 15 | |
| 16 | const defaultParams = { |
| 17 | gridLevels: 10, |
| 18 | lookback: 50, |
| 19 | }; |
| 20 | |
| 21 | /** |
| 22 | * Grid Bot Efficiency Oscillator. |
| 23 | * Measures how often price crosses grid levels relative to range. |
| 24 | * Values near 1 = high chop (ideal for grids); near 0 = trending. |
| 25 | */ |
| 26 | function calculate(bars: BarData[], params = defaultParams): { time: number; value: number }[] { |
| 27 | const closes = bars.map(b => b.close); |
| 28 | const highs = bars.map(b => b.high); |
| 29 | const lows = bars.map(b => b.low); |
| 30 | const result: { time: number; value: number }[] = []; |
| 31 | |
| 32 | for (let i = params.lookback; i < bars.length; i++) { |
| 33 | const slice = bars.slice(i - params.lookback, i + 1); |
| 34 | const sliceHigh = Math.max(...slice.map(b => b.high)); |
| 35 | const sliceLow = Math.min(...slice.map(b => b.low)); |
| 36 | const range = sliceHigh - sliceLow; |
| 37 | if (range === 0) continue; |
| 38 | |
| 39 | const step = range / params.gridLevels; |
| 40 | let crossings = 0; |
| 41 | for (let j = 1; j < slice.length; j++) { |
| 42 | const levels = Math.floor(Math.abs(slice[j].close - slice[j - 1].close) / step); |
| 43 | crossings += levels; |
| 44 | } |
| 45 | |
| 46 | // Normalise: ideal grid bot churns through many levels per bar |
| 47 | const efficiency = Math.min(crossings / (params.lookback * 0.5), 1); |
| 48 | result.push({ time: bars[i].time, value: efficiency }); |
| 49 | } |
| 50 | |
| 51 | return result; |
| 52 | } |
Read-only preview. Open in the QuaTick IDE to edit and deploy.
Reviews
No reviews yet. Be the first to review this listing.
Discussion
Sign in to join the discussion. Your posts and replies show up on your profile.