Buy the dips, sell the bounces inside a fixed band. Profitable in range, bleeds when the band breaks.
Rule-based range trading, widely automated on FX and crypto venues. The name itself has no official definition. Also known as Range grid, ladder.
Backed by 2 independent publishers. U.S. CFTC · Glowwiki — separate institutions describing the same thing from their own material.
Listed as convention, not as established fact.
Gold (PAXG) -109% · BTC/USDT -498%. A rule that wins in one market and loses in another did not find an edge; it found a rising asset. Each figure is measured only against buying and holding that same market over that same period.
| Market | Return | Buy & hold | vs B&H | Beat it | Max DD | Underwater | Grid beat |
|---|---|---|---|---|---|---|---|
| BTC/USDT | 32% | 530% | -498% | no | 49% | 1292d | 0% |
| ETH/USDT | 32% | 276% | -244% | no | 55% | 2088d | 0% |
| Gold (PAXG) | 10% | 119% | -109% | no | 10% | 410d | 0% |
All figures on this page are from daily candles unless a row says otherwise.
Everything below is the same rules run over real price history. Pick a market to see the fills, the equity path and the parameter grid for it.
150 fills. Signals are taken on the close and filled at the next open.
Everything above uses the daily row. These are the same rules and the same parameters on a different candle size.
| Timeframe | Return | Buy & hold | vs B&H | Beat it | Trades |
|---|---|---|---|---|---|
| 4H | 38% | 524% | -486% | no | 89 |
| 1D ← | 32% | 530% | -498% | no | 75 |
| 1W | 15% | 524% | -509% | no | 40 |
A single return is one chosen start date. These are 95 runs of the same rules with the start shifted forward 30 days at a time.
| Worst | p10 | p25 | Median | p75 | p90 | Best | Losing starts |
|---|---|---|---|---|---|---|---|
| -55.8% | -29.9% | -3.2% | 4.1% | 10.4% | 15.4% | 29.8% | 29% |
The headline above uses one parameter setting. Here is every setting tested: 16 combinations, median 19.8%, best 52.2%, worst 6.5%. 0 of them beat buy & hold.
Grid run across its own parameter range over the full period. The same rules flip from profit to loss depending only on the numbers you picked — which is why a single headline return is meaningless on its own.
| levels 5 | levels 10 | levels 20 | levels 30 | |
|---|---|---|---|---|
| rangePct 0.15 | 14% | 18% | 12% | 7% |
| rangePct 0.25 | 20% | 32% | 20% | 10% |
| rangePct 0.4 | 29% | 42% | 28% | 17% |
| rangePct 0.6 | 28% | 52% | 49% | 28% |
Hover a cell for trade count and drawdown. “·” = invalid combination (fast ≥ slow).
| Year | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 |
|---|---|---|---|---|---|---|---|---|---|
| Return | -44% | 4% | 13% | 21% | -44% | 2% | 5% | 9% | 2% |
| Max DD | 49% | 6% | 23% | 2% | 47% | 0% | 6% | 9% | 20% |
| Trades | 32 | 10 | 35 | 62 | 16 | 6 | 13 | 41 | 14 |
| Entered | Entry | Exited | Exit | Held | Size | P&L (USDT) | Return |
|---|---|---|---|---|---|---|---|
| 2022-11-28 | 16,064.03 | 2022-11-30 | 16,716.64 | 2 bars | 800.8 | +30.87 | +3.9% |
| 2022-11-21 | 16,064.03 | 2022-11-24 | 16,716.64 | 3 bars | 800.8 | +30.87 | +3.9% |
| 2022-11-14 | 16,064.03 | 2022-11-15 | 16,716.64 | 1 bars | 800.8 | +30.87 | +3.9% |
| 2022-11-09 | 16,064.03 | 2022-11-10 | 16,716.64 | 1 bars | 800.8 | +30.87 | +3.9% |
| 2018-01-08 | 16,064.03 | 2020-11-16 | 16,716.64 | 1043 bars | 800.8 | +30.87 | +3.9% |
| 2018-01-08 | 15,394.69 | 2020-11-12 | 16,047.97 | 1039 bars | 800.8 | +32.31 | +4.0% |
| 2020-11-07 | 14,725.36 | 2020-11-08 | 15,379.31 | 1 bars | 800.8 | +33.89 | +4.2% |
| 2018-01-10 | 14,725.36 | 2020-11-05 | 15,379.31 | 1030 bars | 800.8 | +33.89 | +4.2% |
| 2018-01-12 | 14,056.02 | 2020-11-05 | 14,710.64 | 1028 bars | 800.8 | +35.62 | +4.5% |
| 2020-11-02 | 13,386.69 | 2020-11-03 | 14,041.98 | 1 bars | 800.8 | +37.52 | +4.7% |
| 2018-01-16 | 13,386.69 | 2020-10-31 | 14,041.98 | 1019 bars | 800.8 | +37.52 | +4.7% |
| 2019-06-27 | 12,717.36 | 2020-10-27 | 13,373.31 | 488 bars | 800.8 | +39.62 | +5.0% |
| 2019-07-10 | 12,048.02 | 2020-10-21 | 12,704.64 | 469 bars | 800.8 | +41.96 | +5.2% |
| 2020-09-02 | 11,378.69 | 2020-10-21 | 12,035.98 | 49 bars | 800.8 | +44.57 | +5.6% |
| 2020-09-03 | 10,709.35 | 2020-10-10 | 11,367.31 | 37 bars | 800.8 | +47.5 | +5.9% |
| 2020-09-03 | 10,040.02 | 2020-09-14 | 10,698.65 | 11 bars | 800.8 | +50.83 | +6.3% |
| 2020-08-25 | 11,378.69 | 2020-09-01 | 12,035.98 | 7 bars | 800.8 | +44.57 | +5.6% |
| 2020-08-11 | 11,378.69 | 2020-08-17 | 12,035.98 | 6 bars | 800.8 | +44.57 | +5.6% |
| 2020-08-03 | 11,378.69 | 2020-08-10 | 12,035.98 | 7 bars | 800.8 | +44.57 | +5.6% |
| 2020-08-02 | 10,709.35 | 2020-08-03 | 11,367.31 | 1 bars | 800.8 | +47.5 | +5.9% |
| 2019-08-10 | 11,378.69 | 2020-08-02 | 12,035.98 | 358 bars | 800.8 | +44.57 | +5.6% |
| 2020-07-28 | 10,709.35 | 2020-07-31 | 11,367.31 | 3 bars | 800.8 | +47.5 | +5.9% |
| 2019-08-14 | 10,709.35 | 2020-07-27 | 11,367.31 | 348 bars | 800.8 | +47.5 | +5.9% |
| 2019-09-10 | 10,040.02 | 2020-07-27 | 10,698.65 | 321 bars | 800.8 | +50.83 | +6.3% |
| 2019-08-21 | 10,040.02 | 2019-09-03 | 10,698.65 | 13 bars | 800.8 | +50.83 | +6.3% |
| 2019-08-14 | 10,040.02 | 2019-08-19 | 10,698.65 | 5 bars | 800.8 | +50.83 | +6.3% |
| 2019-07-11 | 11,378.69 | 2019-08-06 | 12,035.98 | 26 bars | 800.8 | +44.57 | +5.6% |
| 2019-07-14 | 10,709.35 | 2019-08-05 | 11,367.31 | 22 bars | 800.8 | +47.5 | +5.9% |
| 2019-07-23 | 10,040.02 | 2019-08-03 | 10,698.65 | 11 bars | 800.8 | +50.83 | +6.3% |
| 2019-07-17 | 10,040.02 | 2019-07-18 | 10,698.65 | 1 bars | 800.8 | +50.83 | +6.3% |
| 2019-07-15 | 10,040.02 | 2019-07-16 | 10,698.65 | 1 bars | 800.8 | +50.83 | +6.3% |
| 2019-06-27 | 12,048.02 | 2019-07-09 | 12,704.64 | 12 bars | 800.8 | +41.96 | +5.2% |
| 2019-06-30 | 11,378.69 | 2019-07-08 | 12,035.98 | 8 bars | 800.8 | +44.57 | +5.6% |
| 2019-07-01 | 10,709.35 | 2019-07-03 | 11,367.31 | 2 bars | 800.8 | +47.5 | +5.9% |
| 2019-07-01 | 10,040.02 | 2019-07-02 | 10,698.65 | 1 bars | 800.8 | +50.83 | +6.3% |
| 2019-06-27 | 11,378.69 | 2019-06-28 | 12,035.98 | 1 bars | 800.8 | +44.57 | +5.6% |
| 2019-06-27 | 10,709.35 | 2019-06-28 | 11,367.31 | 1 bars | 800.8 | +47.5 | +5.9% |
| 2018-01-16 | 12,717.36 | 2019-06-26 | 13,373.31 | 526 bars | 800.8 | +39.62 | +5.0% |
| 2018-01-21 | 12,048.02 | 2019-06-26 | 12,704.64 | 521 bars | 800.8 | +41.96 | +5.2% |
| 2018-01-29 | 11,378.69 | 2019-06-26 | 12,035.98 | 513 bars | 800.8 | +44.57 | +5.6% |
Prices include slippage; size is what was actually committed to that trade including fees.
| Period | 2018-01-01 → 2026-09-23 |
| Parameters | {"rangePct":0.25,"levels":10,"allocPct":0.08} |
| Rolling test | 365 bars × 95 start dates |
| Input hash | 60e7fc1751919037 |
162 fills. Signals are taken on the close and filled at the next open.
Everything above uses the daily row. These are the same rules and the same parameters on a different candle size.
| Timeframe | Return | Buy & hold | vs B&H | Beat it | Trades |
|---|---|---|---|---|---|
| 4H | 35% | 271% | -236% | no | 91 |
| 1D ← | 32% | 276% | -244% | no | 81 |
| 1W | 29% | 271% | -242% | no | 77 |
A single return is one chosen start date. These are 95 runs of the same rules with the start shifted forward 30 days at a time.
| Worst | p10 | p25 | Median | p75 | p90 | Best | Losing starts |
|---|---|---|---|---|---|---|---|
| -68.7% | -32.1% | -9.8% | 6.5% | 14.8% | 20.6% | 42.6% | 33% |
The headline above uses one parameter setting. Here is every setting tested: 16 combinations, median 29.1%, best 67.1%, worst 10.1%. 0 of them beat buy & hold.
Grid run across its own parameter range over the full period. The same rules flip from profit to loss depending only on the numbers you picked — which is why a single headline return is meaningless on its own.
| levels 5 | levels 10 | levels 20 | levels 30 | |
|---|---|---|---|---|
| rangePct 0.15 | 17% | 22% | 16% | 10% |
| rangePct 0.25 | 20% | 32% | 27% | 17% |
| rangePct 0.4 | 29% | 42% | 45% | 29% |
| rangePct 0.6 | 33% | 54% | 67% | 48% |
Hover a cell for trade count and drawdown. “·” = invalid combination (fast ≥ slow).
| Year | 2018 | 2019 | 2020 | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 |
|---|---|---|---|---|---|---|---|---|---|
| Return | -42% | 16% | 14% | 2% | -47% | 2% | 14% | 13% | -1% |
| Max DD | 55% | 15% | 11% | 0% | 52% | 0% | 5% | 38% | 33% |
| Trades | 62 | 60 | 38 | 5 | 13 | 7 | 39 | 55 | 13 |
| Entered | Entry | Exited | Exit | Held | Size | P&L (USDT) | Return |
|---|---|---|---|---|---|---|---|
| 2022-06-18 | 906.44 | 2022-06-19 | 943.27 | 1 bars | 800.8 | +30.87 | +3.9% |
| 2021-01-04 | 906.44 | 2021-01-05 | 943.27 | 1 bars | 800.8 | +30.87 | +3.9% |
| 2018-02-20 | 906.44 | 2021-01-03 | 943.27 | 1048 bars | 800.8 | +30.87 | +3.9% |
| 2018-02-21 | 868.67 | 2021-01-03 | 905.54 | 1047 bars | 800.8 | +32.31 | +4.0% |
| 2018-03-06 | 830.9 | 2021-01-03 | 867.8 | 1034 bars | 800.8 | +33.89 | +4.2% |
| 2018-05-06 | 793.14 | 2021-01-03 | 830.07 | 973 bars | 800.8 | +35.62 | +4.5% |
| 2018-05-08 | 755.37 | 2021-01-03 | 792.34 | 971 bars | 800.8 | +37.52 | +4.7% |
| 2021-01-01 | 717.6 | 2021-01-02 | 754.61 | 1 bars | 800.8 | +39.62 | +5.0% |
| 2018-05-11 | 717.6 | 2020-12-30 | 754.61 | 964 bars | 800.8 | +39.62 | +5.0% |
| 2018-05-22 | 679.83 | 2020-12-28 | 716.88 | 951 bars | 800.8 | +41.96 | +5.2% |
| 2018-05-22 | 642.06 | 2020-12-27 | 679.15 | 950 bars | 800.8 | +44.57 | +5.6% |
| 2020-12-21 | 604.29 | 2020-12-26 | 641.42 | 5 bars | 800.8 | +47.5 | +5.9% |
| 2020-12-23 | 566.53 | 2020-12-24 | 603.69 | 1 bars | 800.8 | +50.83 | +6.3% |
| 2018-05-23 | 604.29 | 2020-12-17 | 641.42 | 939 bars | 800.8 | +47.5 | +5.9% |
| 2020-12-08 | 566.53 | 2020-12-16 | 603.69 | 8 bars | 800.8 | +50.83 | +6.3% |
| 2020-12-04 | 566.53 | 2020-12-06 | 603.69 | 2 bars | 800.8 | +50.83 | +6.3% |
| 2020-12-01 | 566.53 | 2020-12-02 | 603.69 | 1 bars | 800.8 | +50.83 | +6.3% |
| 2020-11-25 | 566.53 | 2020-11-30 | 603.69 | 5 bars | 800.8 | +50.83 | +6.3% |
| 2018-06-10 | 566.53 | 2020-11-23 | 603.69 | 897 bars | 800.8 | +50.83 | +6.3% |
| 2018-05-27 | 566.53 | 2018-06-03 | 603.69 | 7 bars | 800.8 | +50.83 | +6.3% |
| 2018-05-23 | 566.53 | 2018-05-24 | 603.69 | 1 bars | 800.8 | +50.83 | +6.3% |
| 2018-05-18 | 679.83 | 2018-05-19 | 716.88 | 1 bars | 800.8 | +41.96 | +5.2% |
| 2018-05-16 | 679.83 | 2018-05-17 | 716.88 | 1 bars | 800.8 | +41.96 | +5.2% |
| 2018-05-11 | 679.83 | 2018-05-13 | 716.88 | 2 bars | 800.8 | +41.96 | +5.2% |
| 2018-05-12 | 642.06 | 2018-05-13 | 679.15 | 1 bars | 800.8 | +44.57 | +5.6% |
| 2018-05-09 | 717.6 | 2018-05-10 | 754.61 | 1 bars | 800.8 | +39.62 | +5.0% |
| 2018-05-07 | 717.6 | 2018-05-08 | 754.61 | 1 bars | 800.8 | +39.62 | +5.0% |
| 2018-05-06 | 755.37 | 2018-05-07 | 792.34 | 1 bars | 800.8 | +37.52 | +4.7% |
| 2018-03-07 | 793.14 | 2018-05-05 | 830.07 | 59 bars | 800.8 | +35.62 | +4.5% |
| 2018-03-07 | 755.37 | 2018-05-04 | 792.34 | 58 bars | 800.8 | +37.52 | +4.7% |
| 2018-03-08 | 717.6 | 2018-05-03 | 754.61 | 56 bars | 800.8 | +39.62 | +5.0% |
| 2018-03-14 | 679.83 | 2018-05-03 | 716.88 | 50 bars | 800.8 | +41.96 | +5.2% |
| 2018-05-01 | 642.06 | 2018-05-02 | 679.15 | 1 bars | 800.8 | +44.57 | +5.6% |
| 2018-04-28 | 642.06 | 2018-04-29 | 679.15 | 1 bars | 800.8 | +44.57 | +5.6% |
| 2018-04-25 | 642.06 | 2018-04-27 | 679.15 | 2 bars | 800.8 | +44.57 | +5.6% |
| 2018-04-25 | 604.29 | 2018-04-26 | 641.42 | 1 bars | 800.8 | +47.5 | +5.9% |
| 2018-03-14 | 642.06 | 2018-04-24 | 679.15 | 41 bars | 800.8 | +44.57 | +5.6% |
| 2018-03-14 | 604.29 | 2018-04-22 | 641.42 | 39 bars | 800.8 | +47.5 | +5.9% |
| 2018-03-17 | 566.53 | 2018-04-20 | 603.69 | 34 bars | 800.8 | +50.83 | +6.3% |
| 2018-03-11 | 679.83 | 2018-03-12 | 716.88 | 1 bars | 800.8 | +41.96 | +5.2% |
Prices include slippage; size is what was actually committed to that trade including fees.
| Period | 2018-01-01 → 2026-09-23 |
| Parameters | {"rangePct":0.25,"levels":10,"allocPct":0.08} |
| Rolling test | 365 bars × 95 start dates |
| Input hash | 004b38b0db303255 |
52 fills. Signals are taken on the close and filled at the next open.
Everything above uses the daily row. These are the same rules and the same parameters on a different candle size.
| Timeframe | Return | Buy & hold | vs B&H | Beat it | Trades |
|---|---|---|---|---|---|
| 4H | 11% | 119% | -108% | no | 29 |
| 1D ← | 10% | 119% | -109% | no | 26 |
| 1W | 8% | 123% | -115% | no | 20 |
A single return is one chosen start date. These are 62 runs of the same rules with the start shifted forward 30 days at a time.
| Worst | p10 | p25 | Median | p75 | p90 | Best | Losing starts |
|---|---|---|---|---|---|---|---|
| -4.7% | -3.2% | -1.0% | 2.1% | 2.8% | 3.3% | 5.2% | 31% |
The headline above uses one parameter setting. Here is every setting tested: 16 combinations, median 8.7%, best 13.7%, worst 2.6%. 0 of them beat buy & hold.
Grid run across its own parameter range over the full period. The same rules flip from profit to loss depending only on the numbers you picked — which is why a single headline return is meaningless on its own.
| levels 5 | levels 10 | levels 20 | levels 30 | |
|---|---|---|---|---|
| rangePct 0.15 | 6% | 12% | 11% | 3% |
| rangePct 0.25 | 5% | 10% | 12% | 5% |
| rangePct 0.4 | 5% | 9% | 14% | 7% |
| rangePct 0.6 | 7% | 9% | 12% | 9% |
Hover a cell for trade count and drawdown. “·” = invalid combination (fast ≥ slow).
| Year | 2021 | 2022 | 2023 | 2024 | 2025 | 2026 |
|---|---|---|---|---|---|---|
| Return | -3% | -2% | 1% | 2% | 3% | 3% |
| Max DD | 7% | 8% | 3% | 1% | 1% | 5% |
| Trades | 6 | 5 | 6 | 7 | 8 | 19 |
| Entered | Entry | Exited | Exit | Held | Size | P&L (USDT) | Return |
|---|---|---|---|---|---|---|---|
| 2024-08-05 | 2,378.69 | 2024-08-13 | 2,475.32 | 8 bars | 800.8 | +30.87 | +3.9% |
| 2024-04-19 | 2,378.69 | 2024-08-02 | 2,475.32 | 105 bars | 800.8 | +30.87 | +3.9% |
| 2024-05-04 | 2,279.58 | 2024-05-15 | 2,376.31 | 11 bars | 800.8 | +32.31 | +4.0% |
| 2024-04-14 | 2,378.69 | 2024-04-15 | 2,475.32 | 1 bars | 800.8 | +30.87 | +3.9% |
| 2020-09-01 | 2,378.69 | 2024-04-13 | 2,475.32 | 1320 bars | 800.8 | +30.87 | +3.9% |
| 2020-09-01 | 2,279.58 | 2024-04-12 | 2,376.31 | 1319 bars | 800.8 | +32.31 | +4.0% |
| 2020-09-01 | 2,180.46 | 2024-04-03 | 2,277.3 | 1310 bars | 800.8 | +33.89 | +4.2% |
| 2020-09-01 | 2,081.35 | 2024-03-20 | 2,178.29 | 1296 bars | 800.8 | +35.62 | +4.5% |
| 2023-12-09 | 1,982.24 | 2024-03-05 | 2,079.27 | 87 bars | 800.8 | +37.52 | +4.7% |
| 2023-05-17 | 1,982.24 | 2023-12-03 | 2,079.27 | 200 bars | 800.8 | +37.52 | +4.7% |
| 2023-07-03 | 1,883.13 | 2023-10-27 | 1,980.26 | 116 bars | 800.8 | +39.62 | +5.0% |
| 2021-01-06 | 1,982.24 | 2023-05-04 | 2,079.27 | 848 bars | 800.8 | +37.52 | +4.7% |
| 2022-04-26 | 1,883.13 | 2023-03-17 | 1,980.26 | 325 bars | 800.8 | +39.62 | +5.0% |
| 2023-02-13 | 1,784.02 | 2023-03-11 | 1,881.25 | 26 bars | 800.8 | +41.96 | +5.2% |
| 2022-07-05 | 1,784.02 | 2023-01-11 | 1,881.25 | 190 bars | 800.8 | +41.96 | +5.2% |
| 2022-09-01 | 1,684.9 | 2022-11-11 | 1,782.23 | 71 bars | 800.8 | +44.57 | +5.6% |
| 2022-07-16 | 1,684.9 | 2022-08-02 | 1,782.23 | 17 bars | 800.8 | +44.57 | +5.6% |
| 2022-02-26 | 1,883.13 | 2022-03-06 | 1,980.26 | 8 bars | 800.8 | +39.62 | +5.0% |
| 2021-05-17 | 1,883.13 | 2022-02-24 | 1,980.26 | 283 bars | 800.8 | +39.62 | +5.0% |
| 2021-11-23 | 1,784.02 | 2022-02-12 | 1,881.25 | 81 bars | 800.8 | +41.96 | +5.2% |
| 2021-06-17 | 1,784.02 | 2021-11-16 | 1,881.25 | 152 bars | 800.8 | +41.96 | +5.2% |
| 2021-01-08 | 1,883.13 | 2021-05-16 | 1,980.26 | 128 bars | 800.8 | +39.62 | +5.0% |
| 2021-02-19 | 1,784.02 | 2021-05-09 | 1,881.25 | 79 bars | 800.8 | +41.96 | +5.2% |
| 2020-09-01 | 1,982.24 | 2021-01-05 | 2,079.27 | 126 bars | 800.8 | +37.52 | +4.7% |
| 2020-09-23 | 1,883.13 | 2021-01-02 | 1,980.26 | 101 bars | 800.8 | +39.62 | +5.0% |
| 2020-11-27 | 1,784.02 | 2020-12-07 | 1,881.25 | 10 bars | 800.8 | +41.96 | +5.2% |
Prices include slippage; size is what was actually committed to that trade including fees.
| Period | 2020-09-01 → 2026-09-23 |
| Parameters | {"rangePct":0.25,"levels":10,"allocPct":0.08} |
| Rolling test | 365 bars × 62 start dates |
| Input hash | 2cfc1fb9b1015221 |