Run a Grid-Trading Backtest
arena_run_grid_backtestWould a grid bot have made money here? Simulate a GRID BOT (buy-low / sell-high ladder inside a fixed price range) on historical candles. Returns final value, return %, CAGR, trade count, fees paid and a Buy & Hold comparison. This is a different machine from the strategy backtester: grid bots earn from oscillation inside a range, not from trend — for signal-based strategies use arena_run_backtest instead. The result depends heavily on the range you choose (low_price / high_price); a range the price left early makes the bot idle, so treat range choice as part of the hypothesis, not a detail — arena_suggest_grid_range proposes a defensible range. Each run is saved to your account (the returned id is the run_id); publish a public snapshot page with arena_share_grid_backtest. Free tier limited to BTCUSDT/ETHUSDT. Per-day quota: Free=5, Pro=50, Power=500. [Free / Pro / Power tier]
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| pair | Yes | Crypto pair symbol, e.g. BTCUSDT. Free tier: BTCUSDT or ETHUSDT only. | |
| end_date | Yes | Simulation end, YYYY-MM-DD. | |
| fee_rate | Yes | Per-trade fee fraction, e.g. 0.001 for 0.1% (Binance spot taker). | |
| grid_type | Yes | Level spacing: 'arithmetic' = equal price steps, 'geometric' = equal percentage steps (usually the better fit for crypto). | |
| low_price | Yes | Lower bound of the grid range, in quote currency. Below it the bot is fully invested and stops buying. | |
| grid_count | Yes | Number of grid levels between low_price and high_price (2–200). More levels = more, smaller trades = more fees. | |
| high_price | Yes | Upper bound of the grid range, in quote currency. Above it the bot is fully in cash and stops selling. Must exceed low_price. | |
| start_date | Yes | Simulation start, YYYY-MM-DD. | |
| entry_price | No | Optional price at which the bot starts; default is the first close in the range. | |
| stop_loss_price | No | Optional: liquidate the whole grid and stop once price falls to this level. | |
| total_investment | Yes | Capital in USDT spread across the grid; min 100. | |
| take_profit_price | No | Optional: liquidate the whole grid and stop once price rises to this level. |