Optimizer and market-condition presets
The optimizer replays a tape thousands of times with different settings, then tells you how far the best one can be trusted.
The search
You choose which settings are free and which are locked. The optimizer samples the free ones across their ranges, then refines around the best points. A pick is scored by its neighbourhood: a setting whose near neighbours all do badly is a fluke, not a find. Runs are deterministic for a given seed.
You can rank by net result or by a conservative score that subtracts uncertainty. Both are always shown, next to rounds, win rate and worst drawdown.
What data is available
Two copies of the tape exist, and both are private. The manager records one on your own computer. Hosted backtests and optimizations run on our runner against a tape we record ourselves, one hourly file at a time. Neither is ever offered for download, and what comes back from the hosted service is results only (statistics, settings, times and the net result of each round), never prices or ticks.
Because tape only exists from when recording started, the amount is limited and it grows by the hour. The setup step starts with an Available data panel that says, for the bot's coin and in your local time zone:
- how much has been recorded, and from when to when, for example "ETH: 74 h recorded, from Oct 20 14:00 to Oct 23 01:10 CEST";
- how fresh it is: "Recording now", or, when the newest data is old and nothing newer has arrived, "Stale", with how long ago it ended;
- how many gaps there are and the largest one, and how many complete hours there are (a partial hour has too few price updates to count);
- or, when there is nothing yet, "Nothing recorded for ETH yet. The recorder service records continuously; check back in an hour."
The app shows the last 14 days of the record.
Choosing time frames
A time frame is a stretch of recorded tape. The optimizer learns from the frames you pick and nothing else. Times are in your local time zone (the zone name is shown, for example CEST); the data underneath stays in UTC.
Presets
The preset buttons show what they would add before you press them, for example "Last 24 hours · 23 h 40 m". The number is the part of that stretch that has actually been recorded. "Last" means the newest recorded tape. If recording has fallen behind, the app says so and shows how long ago the tape ended, so you know "last 24 hours" does not end now.
Market conditions
Instead of dates you can pick a kind of market. Each condition button shows how many recorded hours match it, for example "Trending up · 9 h". A condition is relative: it picks the top hours of your own recording (or of the range you measure over), so there is always a "busiest" hour even on a quiet week. Several conditions add up. Partial hours are never counted.
Manual frames
Drag across the chart, click or press Enter on an hour, or enter From and To in your local time. Overlapping frames merge. Each frame chip names the time it covers and any gaps inside it, for example "Oct 22 08:00 to 14:00 CEST (5 h of 6 h, 1 gap)".
Gaps and warm-up
Where recording stopped there is no tape. A frame that crosses a gap skips it, and the replay restarts cleanly after it. The first minute of every unbroken stretch is warm-up: the strategy needs it to build its volume baseline and does not trade in it. What is left is the tradeable time, so a frame always has a little less tradeable time than covered time, and many small stretches lose more than one long one.
Together or separately
Together finds one set of settings that works across all frames. Separately runs one search per frame, or per market condition when you chose two or more, so you can compare them. Each frame is then validated alone, so short frames can only be tested in-sample, and it takes about as many times longer as there are frames.
The selection meter
Under the frames list, the meter says how much of the recorded data you have picked and what that buys, for example:
Selected 6 h 10 m of 74 h available (8%) · about 6 h tradeable after warm-up
Allows: tested on unseen data (walk-forward)
Add about 42 h more for day-by-day validation with held-out days.
The bar shows the same share. The "Add about" line names the next level and how much more covered tape it needs. If even everything recorded would fall short, the meter says so, and the only fix is to wait for more tape. These are estimates from the same rules the optimizer uses. The final result is rated again when the run finishes.
Validation
How a pick is checked depends on the covered tape (the time inside your frames that has tape, before warm-up):
| Covered tape | Validation |
|---|---|
| Under 1 h 20 m, or few rounds | In-sample only. The result is labelled as such and cannot be rated above anecdotal. |
| 1 h 20 m to two days | Walk-forward: each fold is scored on settings searched only on earlier tape. |
| Two days or more | Walk-forward by day, plus a holdout of the most recent quarter that is hidden until you reveal it. |
Whatever the tape allows, the unseen-data test only counts if the pick makes enough rounds (about 20 or more per slice).
What a result leads with
The big number is the net on unseen data: what the pick made on the slices the search never saw. The profit on the data the settings were fitted on is shown smaller, as "Fitted on the same data", because it flatters. When a run could not be tested on unseen data, the headline says Not tested on unseen data instead of showing a number.
A warning appears when the pick lost money on unseen data, or did worse there than the median of random valid settings ("This pick did worse than random settings on unseen data"). A bot's Evidence block keeps the same figures: the unseen-data net first, then the fitted net and the net at twice the fill delay.
Reliability tiers
| Tier | Evidence |
|---|---|
| noise | Fewer than 10 rounds behind the pick. |
| anecdotal | 10 to 100 rounds, or more rounds but no non-negative out-of-sample result. |
| indicative | 101 to 300 rounds with out-of-sample net not negative. |
| usable | Over 300 rounds, positive out-of-sample, still positive with slower fills, and ahead of the baselines. |
If fills are modelled as instant, the highest tier is capped, because the slower-fill stress test would be meaningless. The manager's default is a 1 to 3 second fill delay. If no setting makes a single round, the result is "nothing to rank" rather than an invented winner.
Market-condition presets
Instead of picking dates, pick a kind of market. A preset selects recorded hours using thresholds relative to your own tape, then merges them into time frames.
| Preset | Selects hours that are |
|---|---|
| trending (up, down, or either) | Directional: price moved far relative to its range, and by more than most hours. |
| ranging | Wide-ranging but going nowhere. |
| high volatility | Among the widest ranges. |
| quiet | Narrow range and low volume. |
| busy | Among the highest traded volume. |
| like now | Closest to the last couple of hours on drift, range and volume. |
Select several presets and optimize separately to get one set of settings per market condition, or together for one compromise. If the per-condition sets look nothing alike, that is information too.
A pick is a candidate for a dry-run. It is never an instruction to go live.