# TR-RSI-ADX — Figure acceptance (explanatory chart only)

Figure: `figures/first-30-eurusd-h1.png` (1600x900 PNG, matplotlib replot).
Content: EURUSD H1 bid close line plus modeled entry/exit fills for the first 30
chronological closed base EURUSD trades, numbered 1-30 in trade order.
No equity, P&L, returns or account balances are shown.

Selection (predeclared, no cherry-picking): `results/trades.csv`, variant=base,
symbol=EURUSD, exit_reason in (TP, SL) — END excluded (this ledger has 0 END) —
sorted by signal_time, head 30. Signal span 2017-01-23T03:00:00+02:00 to
2017-06-29T03:00:00+02:00, last exit 2017-07-03T13:00:00+02:00; 10 TP / 20 SL;
19 long / 11 short. Base ledger: 651 trades (406 SL / 245 TP).

## Rule check against the ledger

| Rule (RULES.md / engine) | Status | Timestamped CSV example |
|---|---|---|
| Closed-bar signal -> next-bar entry | OBSERVED | trade_no=1 long: signal 2017-01-23T03:00:00+02:00 -> entry 2017-01-23T04:00:00+02:00. Bar-index step +1 verified for all 651 base EURUSD trades (wall-clock 1h except five 2d1h weekend gaps). |
| Fixed 1.5R target set at order time | OBSERVED | trade_no=3 TP short: signal 2017-02-07T08:00:00+02:00 -> entry 09:00 -> exit 2017-02-10T10:00:00+02:00; entry_fill 1.06928 -> exit_fill 1.06374, risk_px 0.00376; fill distance / risk = 1.473 (raw TP is 1.5 x risk; modeled fills deduct half-spread per side plus commission). |
| Stop-first on ambiguous (TP+SL same bar) candle | UNOBSERVED in sample; observed in full ledger | 0/30 sample trades with both_hit=1. Full-ledger example: trade_no=330 short, SL: signal 2021-09-17T22:00:00+02:00 -> entry 2021-09-19T23:00:00+02:00 (weekend gap, still next bar index) -> exit 2021-09-22T20:00:00+02:00, both_hit=1. |
| One position per symbol (signals while open ignored) | OBSERVED | 0 overlaps in the first 30 and in the full 651 (every next signal_time >= prior exit_time); e.g. trade 1 exit 2017-01-26T16:00:00+02:00 -> trade 2 signal 2017-01-31T21:00:00+02:00. |

## Limits

- Replot from Dukascopy H1 bid bars and the modeled trade ledger, not a platform
  screenshot. Intrabar paths are unknown; fills are modeled, not observed.
- Fixed assumed costs only: EURUSD 1.0 pip spread, $7/lot round-trip.
- No exact video replication is claimed; no profit promise is made.
- No MT5 runs are referenced or implied by this figure.
- Audit proof remains `test.py` and `results/trades.csv` (+ `summary.csv`).
