research: Arc 3 — six data-only signal families, designed engine-blind
Six confirm/refute families (vol-normalized momentum, mean-reversion z-fade, vol-regime-gated breakout, H4 EMA trend, H4 breakout port, channel-position fade) authored by engine-blind agents from a distilled reference card plus the CLI validation loop, adversarially design-reviewed, then run over 4 instruments x 3 stop regimes. Five honest nulls; one candidate (vol-normalized momentum on US500, WF-OOS P<=0.05 in all three regimes) forwarded to the Arc 4 breadth test.
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
{"format_version":1,"blueprint":{"name":"bo_h1_volregime","nodes":[{"primitive":{"type":"Resample","name":"h1","bound":[{"pos":0,"name":"period_minutes","kind":"I64","value":{"I64":60}}]}},{"primitive":{"type":"Delay","name":"prev_high","bound":[{"pos":0,"name":"lag","kind":"I64","value":{"I64":1}}]}},{"primitive":{"type":"Delay","name":"prev_low","bound":[{"pos":0,"name":"lag","kind":"I64","value":{"I64":1}}]}},{"primitive":{"type":"RollingMax","name":"channel_hi"}},{"primitive":{"type":"RollingMin","name":"channel_lo"}},{"primitive":{"type":"Gt","name":"long_break"}},{"primitive":{"type":"Gt","name":"short_break"}},{"primitive":{"type":"Latch","name":"long_latch"}},{"primitive":{"type":"Latch","name":"short_latch"}},{"primitive":{"type":"Delay","name":"prev_close","bound":[{"pos":0,"name":"lag","kind":"I64","value":{"I64":1}}]}},{"primitive":{"type":"Sub","name":"ret"}},{"primitive":{"type":"Mul","name":"ret_sq"}},{"primitive":{"type":"SMA","name":"vol_short","bound":[{"pos":0,"name":"length","kind":"I64","value":{"I64":24}}]}},{"primitive":{"type":"SMA","name":"vol_long"}},{"primitive":{"type":"Sqrt","name":"rms_short"}},{"primitive":{"type":"Sqrt","name":"rms_long"}},{"primitive":{"type":"Gt","name":"expansion"}},{"primitive":{"type":"Gt","name":"contraction"}},{"primitive":{"type":"Latch","name":"regime_latch"}},{"primitive":{"type":"Mul","name":"gated_long"}},{"primitive":{"type":"Mul","name":"gated_short"}},{"primitive":{"type":"Sub","name":"bias"}}],"edges":[{"from":0,"to":1,"slot":0,"from_field":1},{"from":0,"to":2,"slot":0,"from_field":2},{"from":1,"to":3,"slot":0,"from_field":0},{"from":2,"to":4,"slot":0,"from_field":0},{"from":0,"to":5,"slot":0,"from_field":3},{"from":3,"to":5,"slot":1,"from_field":0},{"from":4,"to":6,"slot":0,"from_field":0},{"from":0,"to":6,"slot":1,"from_field":3},{"from":5,"to":7,"slot":0,"from_field":0},{"from":6,"to":7,"slot":1,"from_field":0},{"from":6,"to":8,"slot":0,"from_field":0},{"from":5,"to":8,"slot":1,"from_field":0},{"from":0,"to":9,"slot":0,"from_field":3},{"from":0,"to":10,"slot":0,"from_field":3},{"from":9,"to":10,"slot":1,"from_field":0},{"from":10,"to":11,"slot":0,"from_field":0},{"from":10,"to":11,"slot":1,"from_field":0},{"from":11,"to":12,"slot":0,"from_field":0},{"from":11,"to":13,"slot":0,"from_field":0},{"from":12,"to":14,"slot":0,"from_field":0},{"from":13,"to":15,"slot":0,"from_field":0},{"from":14,"to":16,"slot":0,"from_field":0},{"from":15,"to":16,"slot":1,"from_field":0},{"from":15,"to":17,"slot":0,"from_field":0},{"from":14,"to":17,"slot":1,"from_field":0},{"from":16,"to":18,"slot":0,"from_field":0},{"from":17,"to":18,"slot":1,"from_field":0},{"from":7,"to":19,"slot":0,"from_field":0},{"from":18,"to":19,"slot":1,"from_field":0},{"from":8,"to":20,"slot":0,"from_field":0},{"from":18,"to":20,"slot":1,"from_field":0},{"from":19,"to":21,"slot":0,"from_field":0},{"from":20,"to":21,"slot":1,"from_field":0}],"input_roles":[{"name":"open","targets":[{"node":0,"slot":0}],"source":"F64"},{"name":"high","targets":[{"node":0,"slot":1}],"source":"F64"},{"name":"low","targets":[{"node":0,"slot":2}],"source":"F64"},{"name":"close","targets":[{"node":0,"slot":3}],"source":"F64"}],"output":[{"node":21,"field":0,"name":"bias"}],"gangs":[{"name":"channel_length","kind":"I64","members":[{"node":3,"pos":0,"name":"length"},{"node":4,"pos":0,"name":"length"}]}]}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"format_version":1,"blueprint":{"name":"bo_h4_trend","nodes":[{"primitive":{"type":"Resample","name":"h4","bound":[{"pos":0,"name":"period_minutes","kind":"I64","value":{"I64":240}}]}},{"primitive":{"type":"Delay","name":"prev_high","bound":[{"pos":0,"name":"lag","kind":"I64","value":{"I64":1}}]}},{"primitive":{"type":"Delay","name":"prev_low","bound":[{"pos":0,"name":"lag","kind":"I64","value":{"I64":1}}]}},{"primitive":{"type":"RollingMax","name":"channel_hi"}},{"primitive":{"type":"RollingMin","name":"channel_lo"}},{"primitive":{"type":"Gt","name":"breakout_up"}},{"primitive":{"type":"Gt","name":"breakout_dn"}},{"primitive":{"type":"Latch","name":"long_latch"}},{"primitive":{"type":"Latch","name":"short_latch"}},{"primitive":{"type":"EMA","name":"ema_fast","bound":[{"pos":0,"name":"length","kind":"I64","value":{"I64":12}}]}},{"primitive":{"type":"EMA","name":"ema_slow","bound":[{"pos":0,"name":"length","kind":"I64","value":{"I64":48}}]}},{"primitive":{"type":"Gt","name":"uptrend"}},{"primitive":{"type":"Gt","name":"downtrend"}},{"primitive":{"type":"Latch","name":"trend_long"}},{"primitive":{"type":"Latch","name":"trend_short"}},{"primitive":{"type":"Mul","name":"gated_long"}},{"primitive":{"type":"Mul","name":"gated_short"}},{"primitive":{"type":"Sub","name":"bias"}}],"edges":[{"from":0,"to":1,"slot":0,"from_field":1},{"from":0,"to":2,"slot":0,"from_field":2},{"from":1,"to":3,"slot":0,"from_field":0},{"from":2,"to":4,"slot":0,"from_field":0},{"from":0,"to":5,"slot":0,"from_field":3},{"from":3,"to":5,"slot":1,"from_field":0},{"from":4,"to":6,"slot":0,"from_field":0},{"from":0,"to":6,"slot":1,"from_field":3},{"from":5,"to":7,"slot":0,"from_field":0},{"from":6,"to":7,"slot":1,"from_field":0},{"from":6,"to":8,"slot":0,"from_field":0},{"from":5,"to":8,"slot":1,"from_field":0},{"from":0,"to":9,"slot":0,"from_field":3},{"from":0,"to":10,"slot":0,"from_field":3},{"from":9,"to":11,"slot":0,"from_field":0},{"from":10,"to":11,"slot":1,"from_field":0},{"from":10,"to":12,"slot":0,"from_field":0},{"from":9,"to":12,"slot":1,"from_field":0},{"from":11,"to":13,"slot":0,"from_field":0},{"from":12,"to":13,"slot":1,"from_field":0},{"from":12,"to":14,"slot":0,"from_field":0},{"from":11,"to":14,"slot":1,"from_field":0},{"from":7,"to":15,"slot":0,"from_field":0},{"from":13,"to":15,"slot":1,"from_field":0},{"from":8,"to":16,"slot":0,"from_field":0},{"from":14,"to":16,"slot":1,"from_field":0},{"from":15,"to":17,"slot":0,"from_field":0},{"from":16,"to":17,"slot":1,"from_field":0}],"input_roles":[{"name":"open","targets":[{"node":0,"slot":0}],"source":"F64"},{"name":"high","targets":[{"node":0,"slot":1}],"source":"F64"},{"name":"low","targets":[{"node":0,"slot":2}],"source":"F64"},{"name":"close","targets":[{"node":0,"slot":3}],"source":"F64"}],"output":[{"node":17,"field":0,"name":"bias"}]}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"format_version":1,"blueprint":{"name":"channelpos_fade_h1","nodes":[{"primitive":{"type":"Resample","name":"h1","bound":[{"pos":0,"name":"period_minutes","kind":"I64","value":{"I64":60}}]}},{"primitive":{"type":"Delay","name":"prev_high","bound":[{"pos":0,"name":"lag","kind":"I64","value":{"I64":1}}]}},{"primitive":{"type":"Delay","name":"prev_low","bound":[{"pos":0,"name":"lag","kind":"I64","value":{"I64":1}}]}},{"primitive":{"type":"RollingMax","name":"channel_hi"}},{"primitive":{"type":"RollingMin","name":"channel_lo"}},{"primitive":{"type":"Sub","name":"dist_low"}},{"primitive":{"type":"Sub","name":"chan_range"}},{"primitive":{"type":"Div","name":"pos"}},{"primitive":{"type":"Const","name":"half","bound":[{"pos":0,"name":"value","kind":"F64","value":{"F64":0.5}}]}},{"primitive":{"type":"Sub","name":"neg_centered"}},{"primitive":{"type":"Bias","name":"bias"}}],"edges":[{"from":0,"to":1,"slot":0,"from_field":1},{"from":0,"to":2,"slot":0,"from_field":2},{"from":1,"to":3,"slot":0,"from_field":0},{"from":2,"to":4,"slot":0,"from_field":0},{"from":0,"to":5,"slot":0,"from_field":3},{"from":4,"to":5,"slot":1,"from_field":0},{"from":3,"to":6,"slot":0,"from_field":0},{"from":4,"to":6,"slot":1,"from_field":0},{"from":5,"to":7,"slot":0,"from_field":0},{"from":6,"to":7,"slot":1,"from_field":0},{"from":0,"to":8,"slot":0,"from_field":3},{"from":8,"to":9,"slot":0,"from_field":0},{"from":7,"to":9,"slot":1,"from_field":0},{"from":9,"to":10,"slot":0,"from_field":0}],"input_roles":[{"name":"open","targets":[{"node":0,"slot":0}],"source":"F64"},{"name":"high","targets":[{"node":0,"slot":1}],"source":"F64"},{"name":"low","targets":[{"node":0,"slot":2}],"source":"F64"},{"name":"close","targets":[{"node":0,"slot":3}],"source":"F64"}],"output":[{"node":10,"field":0,"name":"bias"}],"gangs":[{"name":"channel_length","kind":"I64","members":[{"node":3,"pos":0,"name":"length"},{"node":4,"pos":0,"name":"length"}]}]}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"format_version":1,"blueprint":{"name":"meanrev_z_h1","nodes":[{"primitive":{"type":"Resample","name":"h1","bound":[{"pos":0,"name":"period_minutes","kind":"I64","value":{"I64":60}}]}},{"primitive":{"type":"SMA","name":"mean"}},{"primitive":{"type":"Mul","name":"sq"}},{"primitive":{"type":"SMA","name":"mean_sq"}},{"primitive":{"type":"Mul","name":"mean_sq2"}},{"primitive":{"type":"Sub","name":"var"}},{"primitive":{"type":"Sqrt","name":"std"}},{"primitive":{"type":"Sub","name":"dev_fade"}},{"primitive":{"type":"Div","name":"zfade"}},{"primitive":{"type":"Bias","name":"fade","bound":[{"pos":0,"name":"scale","kind":"F64","value":{"F64":1.0}}]}}],"edges":[{"from":0,"to":1,"slot":0,"from_field":3},{"from":0,"to":2,"slot":0,"from_field":3},{"from":0,"to":2,"slot":1,"from_field":3},{"from":2,"to":3,"slot":0,"from_field":0},{"from":1,"to":4,"slot":0,"from_field":0},{"from":1,"to":4,"slot":1,"from_field":0},{"from":3,"to":5,"slot":0,"from_field":0},{"from":4,"to":5,"slot":1,"from_field":0},{"from":5,"to":6,"slot":0,"from_field":0},{"from":1,"to":7,"slot":0,"from_field":0},{"from":0,"to":7,"slot":1,"from_field":3},{"from":7,"to":8,"slot":0,"from_field":0},{"from":6,"to":8,"slot":1,"from_field":0},{"from":8,"to":9,"slot":0,"from_field":0}],"input_roles":[{"name":"open","targets":[{"node":0,"slot":0}],"source":"F64"},{"name":"high","targets":[{"node":0,"slot":1}],"source":"F64"},{"name":"low","targets":[{"node":0,"slot":2}],"source":"F64"},{"name":"close","targets":[{"node":0,"slot":3}],"source":"F64"}],"output":[{"node":9,"field":0,"name":"bias"}],"gangs":[{"name":"window","kind":"I64","members":[{"node":1,"pos":0,"name":"length"},{"node":3,"pos":0,"name":"length"}]}]}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"format_version":1,"blueprint":{"name":"mom_vnorm_h1","nodes":[{"primitive":{"type":"Resample","name":"h1","bound":[{"pos":0,"name":"period_minutes","kind":"I64","value":{"I64":60}}]}},{"primitive":{"type":"Delay","name":"mom_lag"}},{"primitive":{"type":"Sub","name":"momentum"}},{"primitive":{"type":"Delay","name":"ret_lag","bound":[{"pos":0,"name":"lag","kind":"I64","value":{"I64":1}}]}},{"primitive":{"type":"Sub","name":"ret"}},{"primitive":{"type":"Mul","name":"ret_sq"}},{"primitive":{"type":"SMA","name":"vol_avg"}},{"primitive":{"type":"Sqrt","name":"vol"}},{"primitive":{"type":"Div","name":"score"}},{"primitive":{"type":"Bias","name":"bias","bound":[{"pos":0,"name":"scale","kind":"F64","value":{"F64":0.1}}]}}],"edges":[{"from":0,"to":1,"slot":0,"from_field":3},{"from":0,"to":2,"slot":0,"from_field":3},{"from":1,"to":2,"slot":1,"from_field":0},{"from":0,"to":3,"slot":0,"from_field":3},{"from":0,"to":4,"slot":0,"from_field":3},{"from":3,"to":4,"slot":1,"from_field":0},{"from":4,"to":5,"slot":0,"from_field":0},{"from":4,"to":5,"slot":1,"from_field":0},{"from":5,"to":6,"slot":0,"from_field":0},{"from":6,"to":7,"slot":0,"from_field":0},{"from":2,"to":8,"slot":0,"from_field":0},{"from":7,"to":8,"slot":1,"from_field":0},{"from":8,"to":9,"slot":0,"from_field":0}],"input_roles":[{"name":"open","targets":[{"node":0,"slot":0}],"source":"F64"},{"name":"high","targets":[{"node":0,"slot":1}],"source":"F64"},{"name":"low","targets":[{"node":0,"slot":2}],"source":"F64"},{"name":"close","targets":[{"node":0,"slot":3}],"source":"F64"}],"output":[{"node":9,"field":0,"name":"bias"}]}}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"format_version":1,"blueprint":{"name":"trend_h4_cross","nodes":[{"primitive":{"type":"Resample","name":"h4","bound":[{"pos":0,"name":"period_minutes","kind":"I64","value":{"I64":240}}]}},{"primitive":{"type":"EMA","name":"ema_fast"}},{"primitive":{"type":"EMA","name":"ema_slow"}},{"primitive":{"type":"Sub","name":"trend"}},{"primitive":{"type":"Delay","name":"prev_close","bound":[{"pos":0,"name":"lag","kind":"I64","value":{"I64":1}}]}},{"primitive":{"type":"Sub","name":"ret"}},{"primitive":{"type":"Mul","name":"ret_sq"}},{"primitive":{"type":"SMA","name":"ret_var","bound":[{"pos":0,"name":"length","kind":"I64","value":{"I64":24}}]}},{"primitive":{"type":"Sqrt","name":"vol"}},{"primitive":{"type":"Div","name":"trend_norm"}},{"primitive":{"type":"Bias","name":"bias","bound":[{"pos":0,"name":"scale","kind":"F64","value":{"F64":2.0}}]}}],"edges":[{"from":0,"to":1,"slot":0,"from_field":3},{"from":0,"to":2,"slot":0,"from_field":3},{"from":1,"to":3,"slot":0,"from_field":0},{"from":2,"to":3,"slot":1,"from_field":0},{"from":0,"to":4,"slot":0,"from_field":3},{"from":0,"to":5,"slot":0,"from_field":3},{"from":4,"to":5,"slot":1,"from_field":0},{"from":5,"to":6,"slot":0,"from_field":0},{"from":5,"to":6,"slot":1,"from_field":0},{"from":6,"to":7,"slot":0,"from_field":0},{"from":7,"to":8,"slot":0,"from_field":0},{"from":3,"to":9,"slot":0,"from_field":0},{"from":8,"to":9,"slot":1,"from_field":0},{"from":9,"to":10,"slot":0,"from_field":0}],"input_roles":[{"name":"open","targets":[{"node":0,"slot":0}],"source":"F64"},{"name":"high","targets":[{"node":0,"slot":1}],"source":"F64"},{"name":"low","targets":[{"node":0,"slot":2}],"source":"F64"},{"name":"close","targets":[{"node":0,"slot":3}],"source":"F64"}],"output":[{"node":10,"field":0,"name":"bias"}]}}
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
# Arc 3 — six new data-only signal families, designed engine-blind
|
||||||
|
|
||||||
|
**Date:** 2026-07-13
|
||||||
|
**Engine:** aura @ `84e1075` (release build)
|
||||||
|
**Blueprints:** `blueprints/{mom-vnorm-h1,meanrev-z-h1,bo-h1-volregime,trend-h4-cross,bo-h4-trend,channelpos-fade-h1}.json`
|
||||||
|
**Campaigns:** `research/campaign-arc3-*.json`
|
||||||
|
|
||||||
|
## Method
|
||||||
|
|
||||||
|
Two experiments in one arc.
|
||||||
|
|
||||||
|
**The research question:** which signal families expressible in the std
|
||||||
|
vocabulary alone carry directional information on H1/H4 bars? Six families,
|
||||||
|
each a confirm/refute hypothesis (a base signal or a conditioner-over-base),
|
||||||
|
were run over the Arc 1 four-instrument matrix × three stop regimes
|
||||||
|
(vol{3,k2} = Arc 1, vol{60,k6}, vol{60,k12} = the Arc 2c ladder) with
|
||||||
|
vol-proportional slippage, through the Arc 1 pipeline (deflated screen →
|
||||||
|
90/30 WF → pooled-OOS bootstrap → generalize).
|
||||||
|
|
||||||
|
**The meta-experiment:** every blueprint was designed by an agent that had
|
||||||
|
*no access to engine sources* — only a distilled authoring reference card
|
||||||
|
(node vocabulary with port tables, op-script grammar, document schemas, unit
|
||||||
|
semantics, design rules) plus the CLI validation loop (`graph build`,
|
||||||
|
`introspect --params`, three-tier `campaign validate`). Each design passed an
|
||||||
|
independent adversarial design review (look-ahead, unit-consistency, wiring,
|
||||||
|
grid sanity, hypothesis shape) before anything ran. Result: 6/6 families
|
||||||
|
built and validated green on the first run attempt — evidence that the
|
||||||
|
deployment posture (docs + self-describing CLI, no sources) is sufficient
|
||||||
|
for the authoring role *if* the semantic gaps named in Arc 2's engine-gap
|
||||||
|
list are closed by documentation.
|
||||||
|
|
||||||
|
## The families and their verdicts
|
||||||
|
|
||||||
|
| family | hypothesis (compressed) | verdict |
|
||||||
|
|---|---|---|
|
||||||
|
| `mom_vnorm_h1` | sign of (close − close₋ₙ)/realized-vol carries direction | **candidate** on US500; null elsewhere |
|
||||||
|
| `meanrev_z_h1` | H1 deviations from SMA in std units revert | null |
|
||||||
|
| `bo_h1_volregime` | vol-expansion regime reshapes the H1 breakout | null (no reshaping that survives) |
|
||||||
|
| `trend_h4_cross` | H4 EMA-spread in vol units carries direction | null, OOS strongly negative |
|
||||||
|
| `bo_h4_trend` | Arc 1 pair stabilizes on H4 bars | null — textbook IS-overfit signature |
|
||||||
|
| `channelpos_fade_h1` | position in the recent range mean-reverts | null, extreme churn |
|
||||||
|
|
||||||
|
## Findings
|
||||||
|
|
||||||
|
1. **Vol-normalized momentum on US500 is the only regime-robust OOS positive
|
||||||
|
of the whole program.** Pooled WF-OOS gross bootstrap: mean +0.171
|
||||||
|
(P(E[R]≤0) = 0.026, n=8951) at vol{3,k2}; +0.102 (P = 0.036) at vol{60,k6};
|
||||||
|
+0.071 (P = 0.044) at vol{60,k12}. Winner parameters are stable
|
||||||
|
(mom_lag=72 ≈ 3 days, vol_avg=24) across regimes, and full-window net (at
|
||||||
|
slippage stress) turns positive at wide stops (+0.012 at k6, +0.028 at
|
||||||
|
k12). Deflated scores stay slightly negative — within its own 9-member
|
||||||
|
family the winner is not distinguishable from luck; the OOS consistency
|
||||||
|
across three (correlated) regimes is what makes this a candidate rather
|
||||||
|
than a null. GER40 leans the same way gross (OOS +0.10, P 0.15) without
|
||||||
|
getting there; EURUSD and XAUUSD are OOS noise.
|
||||||
|
2. **The H4 breakout is a lesson in why the pipeline exists.** Full-window
|
||||||
|
nets look excellent (XAUUSD: 7–9/9 members net-positive per regime, best
|
||||||
|
+0.37; US500 deflated +0.028 at k6) while the WF-OOS bootstraps are noise
|
||||||
|
(P 0.37–0.79) and generalize floors are the worst of the arc (−0.55 to
|
||||||
|
−1.40, sign 0/4). 90-day refit windows on H4 bars leave ~540 bars per
|
||||||
|
window — the refits chase noise the full-window fit averages away.
|
||||||
|
Without the WF/MC stages this family would have been a false discovery.
|
||||||
|
3. **Conditioners keep failing on this breakout.** Arc 1's trend gate and
|
||||||
|
arc 3's vol-expansion gate both fail to produce a reshaping that survives
|
||||||
|
the pipeline — the base H1 breakout's instrument-dependence (Arc 1's
|
||||||
|
core finding) is not explained by trend or vol regime.
|
||||||
|
4. **Mean-reversion families select at the grid edge** (`meanrev_z_h1` picks
|
||||||
|
window=24 and fade=0.5, both extreme values; `channelpos_fade_h1` runs
|
||||||
|
14 000–26 000 trades) — the H1 mean-reversion hypothesis wants a faster
|
||||||
|
timescale than this grid, and pays for it in churn. A refinement would
|
||||||
|
need finer bars and a cost-realistic churn budget, not more grid points.
|
||||||
|
|
||||||
|
## Verdict
|
||||||
|
|
||||||
|
Five honest nulls and one candidate. `mom_vnorm_h1` earns a breadth test
|
||||||
|
(`research/campaign-arc4-breadth-mom-vnorm.json`, 22 instruments) against
|
||||||
|
the always-long beta control (`research/campaign-control-always-long.json`)
|
||||||
|
— US500 2018–2026 is a secular bull market, and a 3-day momentum long-lean
|
||||||
|
on an index that mostly rose must beat beta, not zero, before it is
|
||||||
|
interesting. See `docs/arc-4-breadth-and-controls.md`.
|
||||||
|
|
||||||
|
## Engine friction
|
||||||
|
|
||||||
|
None new beyond the Arc 2 list. The campaign path carried six new blueprint
|
||||||
|
families, a degenerate one-member control sweep, and 22-instrument matrices
|
||||||
|
without a single executor complaint; every authoring error was caught at
|
||||||
|
`graph build` / three-tier validate time with a message that named the
|
||||||
|
problem.
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
{
|
||||||
|
"format_version": 1,
|
||||||
|
"kind": "campaign",
|
||||||
|
"name": "arc3-bo-h1-volregime",
|
||||||
|
"description": "Arc 3 family bo-h1-volregime: Conditioning the Arc-1 H1 donchian breakout on a volatility-EXPANSION regime reshapes the breakout R-distribution. The base signal is the prev-bar channel breakout (long_latch = Latch(close > prev-bar RollingMax, close < prev-bar RollingMin), short_latch the mirror). The regime is non-directional: on H1 returns r = close \u2212 Delay(close,1), vol_short = Sqrt(SMA(r\u00b2, Ls)) and vol_long = Sqrt(SMA(r\u00b2, L",
|
||||||
|
"seed": 0,
|
||||||
|
"data": {
|
||||||
|
"instruments": [
|
||||||
|
"GER40",
|
||||||
|
"US500",
|
||||||
|
"EURUSD",
|
||||||
|
"XAUUSD"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
{
|
||||||
|
"from_ms": 1514764800000,
|
||||||
|
"to_ms": 1782863999999
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"risk": [
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 3,
|
||||||
|
"k": 2.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 60,
|
||||||
|
"k": 6.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 60,
|
||||||
|
"k": 12.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cost": [
|
||||||
|
{
|
||||||
|
"vol_slippage": {
|
||||||
|
"slip_vol_mult": 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"strategies": [
|
||||||
|
{
|
||||||
|
"ref": {
|
||||||
|
"content_id": "f878dc0f0837bad88585286f709f55ad5058c7948554a136e544397ca3f43a59"
|
||||||
|
},
|
||||||
|
"axes": {
|
||||||
|
"channel_length": {
|
||||||
|
"kind": "I64",
|
||||||
|
"values": [
|
||||||
|
24,
|
||||||
|
48,
|
||||||
|
96
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"vol_long.length": {
|
||||||
|
"kind": "I64",
|
||||||
|
"values": [
|
||||||
|
48,
|
||||||
|
96,
|
||||||
|
192
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"process": {
|
||||||
|
"ref": {
|
||||||
|
"content_id": "41863fcae9300b334056c6f2a899e8c2672ecb29387d294e9a6e58f159ef51b4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"presentation": {
|
||||||
|
"persist_taps": [],
|
||||||
|
"emit": [
|
||||||
|
"selection_report"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
{
|
||||||
|
"format_version": 1,
|
||||||
|
"kind": "campaign",
|
||||||
|
"name": "arc3-bo-h4-trend",
|
||||||
|
"description": "Arc 3 family bo-h4-trend: Porting the Arc-1 donchian-breakout + EMA(12)/EMA(48) trend-gate pair verbatim from H1 (Resample 60) to H4 (Resample 240) will stabilize the instrument-dependent R-distribution reshaping observed in Arc 1: on coarser 4-hour bars the same channel-breakout-with-trend-confirmation signal should produce a more consistent bias sign and a more uniform per-instrument expectancy across GER40/US500/EURUSD/",
|
||||||
|
"seed": 0,
|
||||||
|
"data": {
|
||||||
|
"instruments": [
|
||||||
|
"GER40",
|
||||||
|
"US500",
|
||||||
|
"EURUSD",
|
||||||
|
"XAUUSD"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
{
|
||||||
|
"from_ms": 1514764800000,
|
||||||
|
"to_ms": 1782863999999
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"risk": [
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 3,
|
||||||
|
"k": 2.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 60,
|
||||||
|
"k": 6.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 60,
|
||||||
|
"k": 12.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cost": [
|
||||||
|
{
|
||||||
|
"vol_slippage": {
|
||||||
|
"slip_vol_mult": 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"strategies": [
|
||||||
|
{
|
||||||
|
"ref": {
|
||||||
|
"content_id": "52da5de2d914061bf90a5e3f21caedbe85a4fb84e8056a4e61b535ed7ceb78c3"
|
||||||
|
},
|
||||||
|
"axes": {
|
||||||
|
"channel_hi.length": {
|
||||||
|
"kind": "I64",
|
||||||
|
"values": [
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
48
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"channel_lo.length": {
|
||||||
|
"kind": "I64",
|
||||||
|
"values": [
|
||||||
|
12,
|
||||||
|
24,
|
||||||
|
48
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"process": {
|
||||||
|
"ref": {
|
||||||
|
"content_id": "41863fcae9300b334056c6f2a899e8c2672ecb29387d294e9a6e58f159ef51b4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"presentation": {
|
||||||
|
"persist_taps": [],
|
||||||
|
"emit": [
|
||||||
|
"selection_report"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
{
|
||||||
|
"format_version": 1,
|
||||||
|
"kind": "campaign",
|
||||||
|
"name": "arc3-channelpos-fade-h1",
|
||||||
|
"description": "Arc 3 family channelpos-fade-h1: Position within the recent H1 range mean-reverts: when the H1 close sits near the top of the prior N-bar high/low channel (pos toward 1) price tends to fall back, and near the bottom (pos toward 0) it tends to rebound. The blueprint fades that position \u2014 bias = Bias(-(pos-0.5)*scale), i.e. short the top of the channel, long the bottom. CONFIRM if this fade produces positive net-of-cost pooled WF-O",
|
||||||
|
"seed": 0,
|
||||||
|
"data": {
|
||||||
|
"instruments": [
|
||||||
|
"GER40",
|
||||||
|
"US500",
|
||||||
|
"EURUSD",
|
||||||
|
"XAUUSD"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
{
|
||||||
|
"from_ms": 1514764800000,
|
||||||
|
"to_ms": 1782863999999
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"risk": [
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 3,
|
||||||
|
"k": 2.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 60,
|
||||||
|
"k": 6.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 60,
|
||||||
|
"k": 12.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cost": [
|
||||||
|
{
|
||||||
|
"vol_slippage": {
|
||||||
|
"slip_vol_mult": 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"strategies": [
|
||||||
|
{
|
||||||
|
"ref": {
|
||||||
|
"content_id": "2663716da7ab72dc287a13e01c4b529efd0cd7b9afc3516fe500e102cb61fcdb"
|
||||||
|
},
|
||||||
|
"axes": {
|
||||||
|
"channel_length": {
|
||||||
|
"kind": "I64",
|
||||||
|
"values": [
|
||||||
|
24,
|
||||||
|
48,
|
||||||
|
96
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"bias.scale": {
|
||||||
|
"kind": "F64",
|
||||||
|
"values": [
|
||||||
|
2.0,
|
||||||
|
4.0,
|
||||||
|
8.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"process": {
|
||||||
|
"ref": {
|
||||||
|
"content_id": "41863fcae9300b334056c6f2a899e8c2672ecb29387d294e9a6e58f159ef51b4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"presentation": {
|
||||||
|
"persist_taps": [],
|
||||||
|
"emit": [
|
||||||
|
"selection_report"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
{
|
||||||
|
"format_version": 1,
|
||||||
|
"kind": "campaign",
|
||||||
|
"name": "arc3-meanrev-z-h1",
|
||||||
|
"description": "Arc 3 family meanrev-z-h1: On H1 bars, price deviations from the local mean mean-revert, so fading the deviation carries positive expectancy. We compute a rolling z-score z = (close \u2212 SMA(close,L)) / rollingStd(close,L) over a window L spanning ~1\u201310 trading days of H1 bars, and take bias = Bias(\u2212z \u00b7 scale), i.e. we go short when close is stretched above its local mean and long when stretched below. CONFIRM if pooled WF-OOS",
|
||||||
|
"seed": 0,
|
||||||
|
"data": {
|
||||||
|
"instruments": [
|
||||||
|
"GER40",
|
||||||
|
"US500",
|
||||||
|
"EURUSD",
|
||||||
|
"XAUUSD"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
{
|
||||||
|
"from_ms": 1514764800000,
|
||||||
|
"to_ms": 1782863999999
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"risk": [
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 3,
|
||||||
|
"k": 2.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 60,
|
||||||
|
"k": 6.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 60,
|
||||||
|
"k": 12.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cost": [
|
||||||
|
{
|
||||||
|
"vol_slippage": {
|
||||||
|
"slip_vol_mult": 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"strategies": [
|
||||||
|
{
|
||||||
|
"ref": {
|
||||||
|
"content_id": "d4e341ef35e8dad90a9a26cf484a1f2d1b71bb631a7e5fb4d547779066ba5bea"
|
||||||
|
},
|
||||||
|
"axes": {
|
||||||
|
"window": {
|
||||||
|
"kind": "I64",
|
||||||
|
"values": [
|
||||||
|
24,
|
||||||
|
96,
|
||||||
|
240
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"fade.scale": {
|
||||||
|
"kind": "F64",
|
||||||
|
"values": [
|
||||||
|
0.5,
|
||||||
|
1.0,
|
||||||
|
2.0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"process": {
|
||||||
|
"ref": {
|
||||||
|
"content_id": "41863fcae9300b334056c6f2a899e8c2672ecb29387d294e9a6e58f159ef51b4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"presentation": {
|
||||||
|
"persist_taps": [],
|
||||||
|
"emit": [
|
||||||
|
"selection_report"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
{
|
||||||
|
"format_version": 1,
|
||||||
|
"kind": "campaign",
|
||||||
|
"name": "arc3-mom-vnorm-h1",
|
||||||
|
"description": "Arc 3 family mom-vnorm-h1: On H1 bars, the SIGN of vol-normalized momentum carries directional information: score = (close - close_{t-n}) / sqrt(mean of squared 1-bar returns over L bars) is a unit-free, risk-adjusted momentum that should be positive before up-moves and negative before down-moves, so a bias equal to sign(score) (squashed by Bias) should earn a positive net-of-cost expectancy_r on H1 and generalize across in",
|
||||||
|
"seed": 0,
|
||||||
|
"data": {
|
||||||
|
"instruments": [
|
||||||
|
"GER40",
|
||||||
|
"US500",
|
||||||
|
"EURUSD",
|
||||||
|
"XAUUSD"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
{
|
||||||
|
"from_ms": 1514764800000,
|
||||||
|
"to_ms": 1782863999999
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"risk": [
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 3,
|
||||||
|
"k": 2.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 60,
|
||||||
|
"k": 6.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 60,
|
||||||
|
"k": 12.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cost": [
|
||||||
|
{
|
||||||
|
"vol_slippage": {
|
||||||
|
"slip_vol_mult": 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"strategies": [
|
||||||
|
{
|
||||||
|
"ref": {
|
||||||
|
"content_id": "05045dfaa1e399c12505e21dc87c36a61b7bbfda75c0bebc2e95a9be5bfd9e42"
|
||||||
|
},
|
||||||
|
"axes": {
|
||||||
|
"mom_lag.lag": {
|
||||||
|
"kind": "I64",
|
||||||
|
"values": [
|
||||||
|
24,
|
||||||
|
72,
|
||||||
|
120
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"vol_avg.length": {
|
||||||
|
"kind": "I64",
|
||||||
|
"values": [
|
||||||
|
24,
|
||||||
|
72,
|
||||||
|
120
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"process": {
|
||||||
|
"ref": {
|
||||||
|
"content_id": "41863fcae9300b334056c6f2a899e8c2672ecb29387d294e9a6e58f159ef51b4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"presentation": {
|
||||||
|
"persist_taps": [],
|
||||||
|
"emit": [
|
||||||
|
"selection_report"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
{
|
||||||
|
"format_version": 1,
|
||||||
|
"kind": "campaign",
|
||||||
|
"name": "arc3-trend-h4-cross",
|
||||||
|
"description": "Arc 3 family trend-h4-cross: H4 trend slope expressed in realized-volatility units carries directional information: the sign and vol-normalized magnitude of EMA(fast)-EMA(slow) on H4 (240-min) bars predicts forward returns. The bias is bias = clamp( (ema_fast - ema_slow) / realized_vol / scale, -1, +1 ), a unit-free conviction score. CONFIRM if pooled walk-forward OOS expectancy_r is positive with low prob_le_zero, net-of-cos",
|
||||||
|
"seed": 0,
|
||||||
|
"data": {
|
||||||
|
"instruments": [
|
||||||
|
"GER40",
|
||||||
|
"US500",
|
||||||
|
"EURUSD",
|
||||||
|
"XAUUSD"
|
||||||
|
],
|
||||||
|
"windows": [
|
||||||
|
{
|
||||||
|
"from_ms": 1514764800000,
|
||||||
|
"to_ms": 1782863999999
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"risk": [
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 3,
|
||||||
|
"k": 2.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 60,
|
||||||
|
"k": 6.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vol": {
|
||||||
|
"length": 60,
|
||||||
|
"k": 12.0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"cost": [
|
||||||
|
{
|
||||||
|
"vol_slippage": {
|
||||||
|
"slip_vol_mult": 0.1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"strategies": [
|
||||||
|
{
|
||||||
|
"ref": {
|
||||||
|
"content_id": "f5d723c4d7dbf5cb5e8e6d775ef69f8831cce1e7272dd5441e9d5d2b23f9af7a"
|
||||||
|
},
|
||||||
|
"axes": {
|
||||||
|
"ema_fast.length": {
|
||||||
|
"kind": "I64",
|
||||||
|
"values": [
|
||||||
|
6,
|
||||||
|
12,
|
||||||
|
24
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"ema_slow.length": {
|
||||||
|
"kind": "I64",
|
||||||
|
"values": [
|
||||||
|
48,
|
||||||
|
96,
|
||||||
|
192
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"process": {
|
||||||
|
"ref": {
|
||||||
|
"content_id": "41863fcae9300b334056c6f2a899e8c2672ecb29387d294e9a6e58f159ef51b4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"presentation": {
|
||||||
|
"persist_taps": [],
|
||||||
|
"emit": [
|
||||||
|
"selection_report"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user