H1 Open Trap self-test, 2026-10-21T08:20:33.551Z 1. Hand-worked days (server clock; the day before has high 120 and low 80 unless stated; lowest H1 open 90, highest 101 from 01:00; day high 104 at 05:00, outside the window) A. sell: armed at the 06:15 open 103, touch at 06:20 (open 101.5 -> fill at the line 101), stop 104, R 3; 1R target 98 at 06:30; 2R/3R: trail on at 97.9, stop 99.9, hit at 06:31 [ok] signals 1 (expected 1) [ok] HOT-1R: 1 trades (expected 1) [ok] HOT-1R trade 1: short 101 -> 98 (target), R 3, net 0.9000 R [ok] HOT-1R: reference identical [ok] HOT-2R: 1 trades (expected 1) [ok] HOT-2R trade 1: short 101 -> 99.9 (trail), R 3, net 0.2667 R [ok] HOT-2R: reference identical [ok] HOT-3R: 1 trades (expected 1) [ok] HOT-3R trade 1: short 101 -> 99.9 (trail), R 3, net 0.2667 R [ok] HOT-3R: reference identical [ok] reference signals identical B. day end: as A, then the price stays at 100 to the end of the broker day [ok] signals 1 (expected 1) [ok] HOT-1R: 1 trades (expected 1) [ok] HOT-1R trade 1: short 101 -> 100 (day end), R 3, net 0.2333 R [ok] HOT-1R: reference identical [ok] reference signals identical C. gap: the touch minute opens at 100.5, below the line -> fill at the open, R 3.5 [ok] signals 1 (expected 1) [ok] HOT-1R: 1 trades (expected 1) [ok] HOT-1R trade 1: short 100.5 -> 100.5 (day end), R 3.5, net -0.0857 R [ok] HOT-1R: reference identical [ok] reference signals identical D. armed and touched in the same minute (06:15: open 103, high 104.5, low 100.9): the stop 104 is inside the entry minute -> stopped [ok] signals 1 (expected 1) [ok] HOT-1R: 1 trades (expected 1) [ok] HOT-1R trade 1: short 101 -> 104 (stop), R 3, net -1.1000 R [ok] HOT-1R: reference identical [ok] reference signals identical E. stop and target in the same minute (06:30: high 104.2, low 97.9) -> the stop first [ok] signals 1 (expected 1) [ok] HOT-1R: 1 trades (expected 1) [ok] HOT-1R trade 1: short 101 -> 104 (stop), R 3, net -1.1000 R [ok] HOT-1R: reference identical [ok] reference signals identical F. a new day high (104.5 at 06:18) after arming cancels the sell; no new arming -> no signal [ok] signals 0 (expected 0) [ok] HOT-1R: 0 trades (expected 0) [ok] HOT-1R: reference identical [ok] reference signals identical G. the 07:00 H1 open (103) is a new highest open: the armed sell is cancelled, the touch at 07:05 gives nothing [ok] signals 0 (expected 0) [ok] reference signals identical H. previous day high 102: the close before the touch (103) is above it -> blocked [ok] signals 0 (expected 0) [ok] blocked by prev: 1 (expected 1) [ok] reference signals identical I. return window: minutes 06:16-07:59 missing, touch at 08:00 (105 minutes after arming) -> blocked [ok] signals 0 (expected 0) [ok] blocked by window: 1 (expected 1) [ok] blocked by accept: 0 (expected 0) [ok] reference signals identical J. acceptance: the 06:30 and 06:45 opening minutes missing (no new arming), the M15 bars closing at 06:30 and 06:45 close at 102 -> blocked [ok] signals 0 (expected 0) [ok] blocked by accept: 1 (expected 1) [ok] reference signals identical K. six traps in a day (armed at 06:15, 06:30, 06:45, 07:15, 07:30, 07:45, touched the next minute): 3 signals, 3 over the cap; one position (3R, held to the day end) [ok] signals 3 (expected 3) [ok] signals over the 3-a-day cap: 3 (expected 3) [ok] HOT-3R: 1 trades (expected 1) [ok] HOT-3R trade 1: short 100.5 -> 100.5 (day end), R 3.5, net -0.0857 R [ok] HOT-3R: reference identical [ok] HOT-1R: 1 trades (expected 1) [ok] HOT-1R trade 1: short 100.5 -> 100.5 (day end), R 3.5, net -0.0857 R [ok] HOT-1R: reference identical [ok] reference signals identical L. buy: case A mirrored around 100 (line 99, stop 96, target 102 / trail stop 100.1) [ok] signals 1 (expected 1) [ok] HOT-1R: 1 trades (expected 1) [ok] HOT-1R trade 1: long 99 -> 102 (target), R 3, net 0.9000 R [ok] HOT-1R: reference identical [ok] HOT-2R: 1 trades (expected 1) [ok] HOT-2R trade 1: long 99 -> 100.1 (trail), R 3, net 0.2667 R [ok] HOT-2R: reference identical [ok] reference signals identical M. $5 minimum stop (h1ot5_spec.md): case A has the extreme $3 away -> stop 106, R 5, target 96 never reached -> day end at 99.5 [ok] signals 1 (expected 1) [ok] HOT-1R-S5: 1 trades (expected 1) [ok] HOT-1R-S5 trade 1: short 101 -> 99.5 (day end), R 5, net 0.2400 R [ok] HOT-1R-S5: reference identical [ok] HOT-1R: 1 trades (expected 1) [ok] HOT-1R trade 1: short 101 -> 98 (target), R 3, net 0.9000 R [ok] HOT-1R: reference identical [ok] reference signals identical N. $5 minimum stop, extreme farther (day high 107 before the window): the stop stays at the extreme 107, R 6 [ok] signals 1 (expected 1) [ok] HOT-1R-S5: 1 trades (expected 1) [ok] HOT-1R-S5 trade 1: short 101 -> 99.5 (day end), R 6, net 0.2000 R [ok] HOT-1R-S5: reference identical [ok] reference signals identical O. $5 minimum stop, buy: case M mirrored (stop 94, R 5, day end at 100.5) [ok] signals 1 (expected 1) [ok] HOT-1R-S5: 1 trades (expected 1) [ok] HOT-1R-S5 trade 1: long 99 -> 100.5 (day end), R 5, net 0.2400 R [ok] HOT-1R-S5: reference identical [ok] reference signals identical 2. Real data: engine against the independent reference data 7067434 minutes, 2004-06-11 00:19 .. 2026-10-07 16:57 New York; 5736 broker days; 11242 trap signals; blocked {"prev":10824,"window":0,"accept":13,"emaOnly":0}; counts {"raw":18651,"capped":7409,"blockedAny":10834,"emaAgainstTaken":4228} [ok] signals identical (11242 / 11242) [ok] HOT-1R: 9026 trades, reference 9026, identical [ok] HOT-2R: 8838 trades, reference 8838, identical [ok] HOT-3R: 8770 trades, reference 8770, identical [ok] HOT-1R-S5: 6058 trades, reference 6058, identical [ok] HOT-1R: trades identical to the first run's CSV (9026) [ok] HOT-2R: trades identical to the first run's CSV (8838) [ok] HOT-3R: trades identical to the first run's CSV (8770) [ok] EMA-only blocks: 0 [ok] every stop is beyond its line (R > 0 before the fill) 3. Control at offset 0 [ok] HOT-1R: 8890 control trades at offset 0, all at real entry minutes with the real direction and R; the 136 real entries it skips all fall while its previous trade (filled at the minute's open, so with other exits) is still open [ok] HOT-2R: 8658 control trades at offset 0, all at real entry minutes with the real direction and R; the 180 real entries it skips all fall while its previous trade (filled at the minute's open, so with other exits) is still open [ok] HOT-3R: 8578 control trades at offset 0, all at real entry minutes with the real direction and R; the 192 real entries it skips all fall while its previous trade (filled at the minute's open, so with other exits) is still open 4. Spot check against the indicator (MT4, HistoricalReviewMode): signals on 6 random 2026 days, server time 2026-01-26 23:45 server BUY_LOW_OPEN trap #1 line 5008.06 stop 4989.86 armed 2026-01-26 23:45 2026-05-27 06:45 server BUY_LOW_OPEN trap #1 line 4504.27 stop 4498.01 armed 2026-05-27 06:45 2026-05-27 08:49 server BUY_LOW_OPEN trap #2 line 4497.09 stop 4491.78 armed 2026-05-27 08:45 2026-05-27 10:22 server BUY_LOW_OPEN trap #3 line 4485.23 stop 4479.95 armed 2026-05-27 10:15 2026-05-29 09:15 server SELL_HIGH_OPEN trap #1 line 4514.95 stop 4522.45 armed 2026-05-29 09:15 2026-05-29 09:37 server SELL_HIGH_OPEN trap #2 line 4514.95 stop 4522.45 armed 2026-05-29 09:30 2026-06-26 10:42 server SELL_HIGH_OPEN trap #1 line 4032.07 stop 4039.83 armed 2026-06-26 10:30 2026-06-26 11:55 server SELL_HIGH_OPEN trap #2 line 4032.07 stop 4039.83 armed 2026-06-26 11:45 2026-08-14 17:34 server SELL_HIGH_OPEN trap #1 line 4384.85 stop 4397.07 armed 2026-08-14 17:30 2026-08-14 18:22 server SELL_HIGH_OPEN trap #2 line 4384.85 stop 4397.07 armed 2026-08-14 18:15 2026-08-14 18:30 server SELL_HIGH_OPEN trap #3 line 4384.85 stop 4397.07 armed 2026-08-14 18:30 2026-08-26 09:15 server BUY_LOW_OPEN trap #1 line 4637.52 stop 4629.97 armed 2026-08-26 09:15 2026-08-26 10:32 server BUY_LOW_OPEN trap #2 line 4634.23 stop 4624.74 armed 2026-08-26 10:30 2026-08-26 10:48 server BUY_LOW_OPEN trap #3 line 4634.23 stop 4624.74 armed 2026-08-26 10:45 PASSED