# Paper-only signal samplers for zero-trade periods

Use this when a flash-crash/rebound bot is healthy but produces no paper trades because the market never reaches the main strategy thresholds.

## Principle

Do **not** loosen the current champion/survival presets just to generate activity. Keep champion candidates intact and add separate `paper-only` / `research-sampler` presets whose purpose is data collection, not promotion.

## When to add samplers

- Paper bots are alive and logging ticks.
- Trade journal has zero or very few entries.
- Near-miss telemetry shows real drops are far below trigger thresholds.
- The user wants more learning data, not live deployment.

## Safe sampler shape

Add one conservative and one aggressive sampler, both explicitly tagged:

- `paper-only`
- `research-sampler`
- `not-champion`
- `data-collection`

Typical parameter ranges:

- Conservative sampler:
  - `flash_crash_trigger_pct`: about `3.0`
  - `trade_size_usd`: `20` or less
  - `max_total_trades`: `2` or less
  - `dead_fish_time_limit_mins`: `10` or less
  - `max_hard_stop_pct`: `2.0` or less
  - `break_even_activation_pct`: `0.35` or less
  - `cooldown_minutes`: `45` or less
  - `max_scan_coins`: up to `30` liquid perps

- Aggressive sampler:
  - `flash_crash_trigger_pct`: about `2.5`
  - `trade_size_usd`: `10` or less
  - `max_total_trades`: `2` or less
  - `dead_fish_time_limit_mins`: `8` or less
  - `max_hard_stop_pct`: `2.0` or less
  - `break_even_activation_pct`: `0.25` or less
  - `cooldown_minutes`: `30` or less
  - `max_scan_coins`: up to `30` liquid perps

## Dashboard requirement

The read-only dashboard should visibly label sampler bots, e.g.:

`Research sampler — not a champion candidate`

This prevents later sessions from mistaking more-active samplers for better strategies.

## Workflow

1. Use TDD: write failing tests for sampler registration and dashboard labelling.
2. Add sampler presets without modifying existing champion/survival presets.
3. Replay samplers against current champions and save a named report under runtime reports.
4. Start samplers as additional paper processes only.
5. Verify all bots are running, dashboard serves over the Tailscale/read-only endpoint, tests pass, and unsafe-pattern scans are clean.
6. Interpret sampler results as observation-only until there is enough sample size; do not promote from replay alone.

## Pitfalls

- Do not treat higher trade count as higher quality.
- Do not rank `research-sampler` presets as live/champion candidates.
- Do not widen live order settings from sampler performance.
- Watch for coin leakage: if signals cluster in one/two alts, report that before tuning.
