Grid
PancakeSwap v3 WBNB/USDT 0.05% · 0x3669…2050
What it would have earned
| Metric | Value | Note |
|---|---|---|
| median | 26.40% | |
| observations | 60 | 20 windows × 3 perturbations |
| each window covers | 362.9h | tape is 725.7h — see Methods |
| observations finishing in profit | 60 of 60 | |
| basis | annualised |
20 windows of 362.9h, each 50% of the tape and overlapping. Full method →
Verdicts
Two different populations, both from the same replay: one counts decisions, the other counts window returns.
Stayed in range
PASS (100% of 522520)
threshold 70% · n = 522,520 replay decisions
Beat holding
PASS (100% of 60)
threshold 50% · n = 60 window returns, floor 30
Against doing it yourself
Same driver, same tape, same costs — only the decision function differs. Here that is mint once at the same width, never touch it (passive_policy).
| Metric | Grid | mint once at the same width, never touch it (passive_policy) |
|---|---|---|
| median return | 26.40% | 13.04% |
| P25 – P75 | 21.91% – 31.06% | 4.78% – 27.21% |
| in range | 100.0% | 6.6% |
| fees (WBNB) | 0.048 | 0.018 |
| adverse selection (upper bound) (WBNB) | 0.020 | 0.018 |
| costs (WBNB) | 0.010 | 0.00078 |
| moves | 13 | 1 |
+13.35pp — agent beats DIY by 13.35pp at the median, but the P25-P75 bands overlap — not separated at this sample size
material · bands overlapping
What it did, and what it would have done
Two different runs. The live loop recorded rather than signed.
Replay
| Metric | Value |
|---|---|
| decisions | 522,520 |
| covering | 725.7h |
| mints | 1 |
| recentres | 12 |
| pulls | 0 |
| in range | 100.0% |
- fees earned+0.048
- adverse selection (upper bound)−0.020
- costs−0.010
Why it held
No live loop was attached when this card was built
Nothing had been journalled to data/journal/grid.jsonl at the time of this replay, so the figures beside it account for no live decisions. The journal below reads the current file and is the answer for now; the replay here is a counterfactual over recorded tape either way.
The parameters behind the range
kappa = 0.3601/tick (fitted, r^2 = 0.85, 8096 swaps)
| Metric | Value | Note |
|---|---|---|
| σ (per √hour) | 0.001027 | ready |
| κ per tick | 0.360073 | |
| κ per log-price | 3600.91 | what equation (2) consumes |
| κ fit r² | 0.8469 | |
| κ swaps used | 8,096 | |
| swap-imbalance z | 1.6054 | window full |
Things this number does not know (3)
- This is a replay, not a record. The policy was run over this pool's real trade history; no capital was deployed and no position existed. Published as assumption A6.
- Adverse selection is reported as an upper bound (assumption A10): the measure is non-negative for every swap regardless of who traded, so it folds reversion round trips into what it calls adverse selection.
- Liquidity providers keep 66% of every fee on this pool — the protocol takes 34% (assumption P-1). Every fee figure here is net of that.