# HYPE Cap100 Canary Smoke Runbook

Date: 2026-05-25 UTC

## Selected Champion

- Source: `/var/www/vps2.happyuser.info/top/night_runs/hype_regime_cap100_20260525/reports/hype_night_cap100_20260525/STATUS.json`
- Candidate: `189`
- Robust across: `0.0`, `4.25`, `8.5` bp
- Params:

```json
{
  "dca_profile": "default",
  "fresh_base_pct": 28.0,
  "fresh_callback_percent": 0.45,
  "fresh_tp_percent": 1.4,
  "freshness_ms": 259200000,
  "max_position_cost_pct": 100.0,
  "normal_base_pct": 10.0,
  "tp_freshness_ms": 43200000
}
```

## Smoke Results

- Output JSON: `reports/hype_canary_smoke_20260525/smoke_cap30_candidate189.json`
- Output CSV: `reports/hype_canary_smoke_20260525/smoke_cap30_candidate189.csv`
- Source NPZ: `/var/www/vps2.happyuser.info/top/night_runs/hype_regime_cap100_20260525/reports/hype_night_cap100_20260525/data/binance_hypeusdt_1m_latest.npz`
- Capital: `30 USDT`
- Leverage: `1x`
- Slippage rows: `0.0`, `4.25`, `8.5` bp
- Numba backend: imported and used from `worker_b_numba/hype_ie500_numba_dca.py`; cache was disabled in-memory for this smoke because normal import hit a numba cache locator error on this server path.
- Timing: first numba row `7.529665s` including compile, later numba rows about `0.008s`; Python 8.5bp baseline `10.206725s`.

## Safety Interpretation

- Research replay generated signal events only from `HYPEUSDT LONG` rows.
- Candidate replay has `sub_sells=0`; it is effectively one long leg, not long and short simultaneously.
- The one-side/gross `30 USDT` canary cap is compatible only with a live-disabled runner that enforces absolute open notional `<=30 USDT`.
- The replay engine's `max_position_cost_pct=100` is based on current equity, so after compounding the 8.5bp row ended with open position cost around `67.134642 USDT`. That is acceptable for historical research but not acceptable as the only live-disabled canary guard.

## Blocked Launch Reason

No canary process was started.

The only HYPE-specific paper-live runner found was:

`/var/www/vps2.happyuser.info/top/top_1_current_push/obw_platform/meta_strategies/telegram_signal_dca/hype_grounded_compound_paper_live.py`

It is paper-only and does not use exchange order endpoints or secrets, but it is not present in the Veronika worktree and it does not expose hard guards for:

- daily realized + unrealized PnL stop at `-5 USDT`
- gross open notional absolute cap `<=30 USDT`
- one-side open notional absolute cap `<=30 USDT`
- rolling max new entries per hour `20`
- runtime deadline `2026-05-26 09:00 UTC` / `2026-05-26 12:00 Europe/Kiev`

Manual gate before any canary launch:

1. Add or select an existing live-disabled runner that is local to the intended worktree.
2. Verify it cannot submit exchange orders and does not read `.env` or secrets.
3. Verify absolute notional guards are enforced before every base/DCA entry.
4. Verify exits/reduces remain allowed only to reduce risk after entry blocking.
5. Verify runtime deadline exits cleanly or disables new entries, with no auto-restart.

## Candidate Dry-Run Command Shape

Do not run until the manual gate above is satisfied:

```bash
tmux new -d -s hype_cap100_canary_dryrun_20260525 \
  '/var/www/vps2.happyuser.info/top/backtest_SK/.venv38/bin/python <SAFE_LOCAL_RUNNER.py> \
    --symbol HYPEUSDT \
    --initial-equity 30 \
    --initial-target-notional 30 \
    --max-daily-loss-usdt 5 \
    --max-gross-notional-usdt 30 \
    --max-one-side-notional-usdt 30 \
    --max-orders-per-hour 20 \
    --runtime-deadline-utc 2026-05-26T09:00:00Z \
    --long-only \
    --paper-only \
    --loop'
```

No auto-restart should be configured.
