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,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