90c1de841d
Public-API research deep-dive driving the just-shipped GER40 real-data
session-breakout demo (5b5f034) through the escalating sequence a serious
researcher attempts next: scale to multi-year, walk-forward, structural-param
sweep, multi-instrument compare. Standalone consumer crate (path-deps only;
public interface = ledger + glossary + example corpus + cargo doc; no
crates/*/src read). All runs against the real /mnt/tickdata/Pepperstone archive.
Findings: 3 bugs, 1 friction, 3 spec_gap, 1 working. Triaged to the tracker:
- spec_gap: the flagship breakout ships as a raw FlatGraph the World API cannot
consume (sweep / walk_forward / compare all forced a hand re-author to a
Composite, which reproduced the FlatGraph numbers EXACTLY) — refs #94.
- bug: process residency is O(window) (6->173 MiB across 1mo->10y) despite the
documented O(one-chunk) claim; the aura ring stays <=1024 but data-server
retention scales, and streaming_seam.rs only measures the ring — refs #95.
- bug: the bar-period is one knob split across Resample (tunable param) and
Session (baked) and desyncs silently to 0.0 pips; Delay.lag leaks into the
default param_space (the C34 deform-vs-tune discriminator) — refs #96.
- spec_gap: the walk_forward empty-space idiom for param-free strategies is
undefined — refs #97.
- spec_gap (no per-instrument pip registry) and friction (one-directional
ns->ms conversion) re-confirm the known #22 and #80.
- working: C1 determinism over 7y / 148k bars, the lazy streaming source, and
the sweep/WFO cores held under real multi-year load; the Composite re-author
was behaviour-preserving (C23).
Scratch consumer crate + run transcripts committed under fieldtests/ per the
fieldtest convention (matching cycle-0049). The crate path-deps the engine and
reads the real archive; its bins are the repros cited in the issues above.
26 lines
1.3 KiB
Plaintext
26 lines
1.3 KiB
Plaintext
=== Task 3: sweep the breakout's structural params ===
|
|
|
|
param_space() of the breakout Composite:
|
|
resample.period_minutes : I64
|
|
delay.lag : I64
|
|
entry_bar.target : I64
|
|
exit_bar.target : I64
|
|
|
|
coupling check:
|
|
resample.period_minutes in space? true
|
|
any session.* period in space? false
|
|
=> the bar-period coupling is NOT expressible as one swept param.
|
|
|
|
sweeping entry_bar x exit_bar (period pinned 15m) over GER40 2024-09:
|
|
{ delay.lag=1, entry_bar=2, exit_bar=5 } total_pips= -80.0 max_dd= 115.0
|
|
{ delay.lag=1, entry_bar=2, exit_bar=6 } total_pips= -112.5 max_dd= 122.0
|
|
{ delay.lag=1, entry_bar=2, exit_bar=8 } total_pips= -102.5 max_dd= 110.5
|
|
{ delay.lag=1, entry_bar=3, exit_bar=5 } total_pips= -45.0 max_dd= 77.0
|
|
{ delay.lag=1, entry_bar=3, exit_bar=6 } total_pips= -43.0 max_dd= 93.0
|
|
{ delay.lag=1, entry_bar=3, exit_bar=8 } total_pips= -118.5 max_dd= 161.0
|
|
{ delay.lag=1, entry_bar=4, exit_bar=5 } total_pips= -3.0 max_dd= 33.0
|
|
{ delay.lag=1, entry_bar=4, exit_bar=6 } total_pips= 43.0 max_dd= 63.5
|
|
{ delay.lag=1, entry_bar=4, exit_bar=8 } total_pips= -75.0 max_dd= 165.5
|
|
|
|
OK: entry/exit-bar grid sweep works; bar-period coupling does not.
|