DAX opening range breakout, self-test 2026-11-07T15:10:24.079Z [PASS] stamp to Frankfurt time equals the time-zone database (New York era to 2018, +6 h from 2019): 86730 stamps, 0 differences [PASS] hand cases: 2018-01-15 03:00 -> 09:00; 2018-03-14 04:00 (US summer, Europe winter) -> 09:00; 2018-07-02 03:00 -> 09:00; 2024-03-14 03:00 -> 09:00: 2018-01-15T09:00 2018-03-14T09:00 2018-07-02T09:00 2024-03-14T09:00 [PASS] Xetra holidays and unclear 2019 days equal the independent list: 4130 weekdays, 0 differences [PASS] 20 weekdays of 2019 left out for the clock; Good Friday 2024-03-29 and Easter Monday 2025-04-21 closed: 20 [PASS] break up at 10:00 fills at 111, stop 99, target 123 reached at 10:30: {"date":"2024-01-15","dir":1,"entryT":28421880,"exitT":28421910,"entry":111,"exit":123,"stop":99,"target":123,"R":12,"gross":12,"pnl":10,"r":0.8333333333333334,"reason":"target","flagged":false} [PASS] CL: same entry, held to the 17:29 close (130.5): {"date":"2024-01-15","dir":1,"entryT":28421880,"exitT":28422329,"entry":111,"exit":130.5,"stop":99,"target":null,"R":12,"gross":19.5,"pnl":17.5,"r":1.4583333333333333,"reason":"close","flagged":false} [PASS] break down at 09:20 fills at 99, stop 111 at 11:00 (loss 12 + costs): {"date":"2024-01-15","dir":-1,"entryT":28421840,"exitT":28421940,"entry":99,"exit":111,"stop":111,"target":87,"R":12,"gross":-12,"pnl":-14,"r":-1.1666666666666667,"reason":"stop","flagged":false} [PASS] long only: no trade when the first break is down [PASS] both levels in one bar: the nearer (buy) entered and stopped in the same bar: {"date":"2024-01-15","dir":1,"entryT":28421860,"exitT":28421860,"entry":111,"exit":99,"stop":99,"target":123,"R":12,"gross":-12,"pnl":-14,"r":-1.1666666666666667,"reason":"stop","flagged":false} [PASS] both levels in one bar, open nearer the low: sell entered and stopped: {"date":"2024-01-15","dir":-1,"entryT":28421860,"exitT":28421860,"entry":99,"exit":111,"stop":111,"target":87,"R":12,"gross":-12,"pnl":-14,"r":-1.1666666666666667,"reason":"stop","flagged":false} [PASS] a break at 12:00 is after the entry window: no trade [PASS] stop and target in the same later bar: the stop is taken: {"date":"2024-01-15","dir":1,"entryT":28421880,"exitT":28421885,"entry":111,"exit":99,"stop":99,"target":123,"R":12,"gross":-12,"pnl":-14,"r":-1.1666666666666667,"reason":"stop","flagged":false} [PASS] a bar opening below the stop fills at its open (95): {"date":"2024-01-15","dir":1,"entryT":28421880,"exitT":28421886,"entry":111,"exit":95,"stop":99,"target":123,"R":12,"gross":-16,"pnl":-18,"r":-1.5,"reason":"stop","flagged":false} [PASS] missing minutes after the entry: next bar open below the stop fills at 97; day flagged: {"date":"2024-01-15","dir":1,"entryT":28421880,"exitT":28421887,"entry":111,"exit":97,"stop":99,"target":123,"R":12,"gross":-14,"pnl":-16,"r":-1.3333333333333333,"reason":"stop","flagged":true} [PASS] a complete day is not flagged [PASS] a missing minute inside 09:00-09:14: no trade, counted [PASS] Good Friday with quotes: not traded [PASS] a bar opening above the buy level fills at its open (113), stop 99: {"date":"2024-01-15","dir":1,"entryT":28421850,"exitT":28422329,"entry":113,"exit":105,"stop":99,"target":null,"R":14,"gross":-8,"pnl":-10,"r":-0.7142857142857143,"reason":"close","flagged":false} [PASS] 17:28 and 17:29 missing: exit at the 17:27 close, flagged: {"date":"2024-01-15","dir":1,"entryT":28421880,"exitT":28422327,"entry":111,"exit":120.25,"stop":99,"target":null,"R":12,"gross":9.25,"pnl":7.25,"r":0.6041666666666666,"reason":"close","flagged":true} [PASS] a hand-built day written as a HistData file: both loaders and both walks give the same trade: 1 1 data: 3808842 rows read, 176 repeated stamps dropped, 2002995 cash-session minutes kept, 2011-01-03T09:00 .. 2026-10-30T17:29 (Frankfurt) weekdays 4130: complete opening range 3098, Xetra holiday 98, incomplete opening range 7, no data 16, clock unclear (2019) 20, not DAX (Euro Stoxx 50 prices) 891 [PASS] three repeated stamps per European autumn change of 2019, 2024 and 2025 are the only repeats (about 3 hours of rows): 176 [PASS] the opening minute 09:00 exists on at least 95% of the open weekdays [PASS] 891 weekdays from 2020-06-15 to 2023-12-01 marked not DAX; every minute of the traded days is above 4,700 (DAX level; the Euro Stoxx stretch peaked near 4,420): 891 days, lowest traded minute 4965 [PASS] 1R-LS: engine and independent re-implementation agree trade by trade: 3082 vs 3082 trades, 0 differences [PASS] days left out: the same counts in both: {"Xetra holiday":98,"clock unclear (2019)":20,"not DAX (Euro Stoxx 50 prices)":891,"no data":16,"incomplete opening range":7} vs {"Xetra holiday":98,"incomplete opening range":7,"no data":16,"clock unclear (2019)":20,"not DAX (Euro Stoxx 50 prices)":891} [PASS] 1R-LS: control at offset 0 reproduces the real trades [PASS] 1R-L: engine and independent re-implementation agree trade by trade: 1490 vs 1490 trades, 0 differences [PASS] 1R-L: control at offset 0 reproduces the real trades [PASS] CL-LS: engine and independent re-implementation agree trade by trade: 3082 vs 3082 trades, 0 differences [PASS] CL-LS: control at offset 0 reproduces the real trades [PASS] CL-L: engine and independent re-implementation agree trade by trade: 1490 vs 1490 trades, 0 differences [PASS] CL-L: control at offset 0 reproduces the real trades PASSED