research: Arc 2 — the Arc 1 matrix priced and stop-laddered
Charges the Arc 1 breakout matrix with a cost model (per-instrument
constant spread stress + vol slippage) and walks the stop geometry
(vol{3,k2} -> estimator smoothing -> k-ladder 6/12). Honest null: nothing
survives net cross-instrument; the one deflation-surviving cell (XAUUSD
bo_h1 at wide stops) dies against the always-long beta control. Adds the
control blueprint/campaign and the no-generalize process variant.
Engine gaps found along the way filed as Brummel/Aura#259-#267.
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "arc2-net-eurusd",
|
||||
"description": "Arc 2 gross-to-net stress: the Arc 1 matrix on EURUSD alone, charged with a constant round-trip cost (0.00012 price units, a labelled stress parameter approximating typical retail spread+commission) plus vol-proportional slippage (slip_vol_mult 0.1). Single instrument, so the process drops the generalize stage.",
|
||||
"seed": 0,
|
||||
"data": {
|
||||
"instruments": ["EURUSD"],
|
||||
"windows": [ { "from_ms": 1514764800000, "to_ms": 1782863999999 } ]
|
||||
},
|
||||
"risk": [ { "vol": { "length": 3, "k": 2.0 } } ],
|
||||
"cost": [
|
||||
{ "constant": { "cost_per_trade": 0.00012 } },
|
||||
{ "vol_slippage": { "slip_vol_mult": 0.1 } }
|
||||
],
|
||||
"strategies": [
|
||||
{
|
||||
"ref": { "content_id": "82515a31bfe58ae087b4bd09eb4adb032cc2cabddd71a2761c543066bd237d3d" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"ref": { "content_id": "82d61d13bf21984068d6fd3ae9de9766fe99edb5163ea50ffb3485bfae9f56bc" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": { "ref": { "content_id": "d568fe9b8a82b7f1862816680de2498b6e045deb47f9941ca991a62baa4c8fe3" } },
|
||||
"presentation": { "persist_taps": [], "emit": ["selection_report"] }
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "arc2-net-generalize",
|
||||
"description": "Arc 2 cross-instrument leg: the exact Arc 1 matrix (both variants, 4 instruments) charged with vol-proportional slippage only (slip_vol_mult 0.1) — the one cost factor that scales per instrument, so a shared cost model stays unit-consistent. Constant spread costs live in the per-instrument arc2-net-* campaigns.",
|
||||
"seed": 0,
|
||||
"data": {
|
||||
"instruments": ["GER40", "US500", "EURUSD", "XAUUSD"],
|
||||
"windows": [ { "from_ms": 1514764800000, "to_ms": 1782863999999 } ]
|
||||
},
|
||||
"risk": [ { "vol": { "length": 3, "k": 2.0 } } ],
|
||||
"cost": [
|
||||
{ "vol_slippage": { "slip_vol_mult": 0.1 } }
|
||||
],
|
||||
"strategies": [
|
||||
{
|
||||
"ref": { "content_id": "82515a31bfe58ae087b4bd09eb4adb032cc2cabddd71a2761c543066bd237d3d" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"ref": { "content_id": "82d61d13bf21984068d6fd3ae9de9766fe99edb5163ea50ffb3485bfae9f56bc" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": { "ref": { "content_id": "41863fcae9300b334056c6f2a899e8c2672ecb29387d294e9a6e58f159ef51b4" } },
|
||||
"presentation": { "persist_taps": [], "emit": ["selection_report"] }
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "arc2-net-ger40",
|
||||
"description": "Arc 2 gross-to-net stress: the Arc 1 matrix on GER40 alone, charged with a constant round-trip cost (1.5 price units, a labelled stress parameter approximating typical retail spread+commission) plus vol-proportional slippage (slip_vol_mult 0.1). Single instrument, so the process drops the generalize stage.",
|
||||
"seed": 0,
|
||||
"data": {
|
||||
"instruments": ["GER40"],
|
||||
"windows": [ { "from_ms": 1514764800000, "to_ms": 1782863999999 } ]
|
||||
},
|
||||
"risk": [ { "vol": { "length": 3, "k": 2.0 } } ],
|
||||
"cost": [
|
||||
{ "constant": { "cost_per_trade": 1.5 } },
|
||||
{ "vol_slippage": { "slip_vol_mult": 0.1 } }
|
||||
],
|
||||
"strategies": [
|
||||
{
|
||||
"ref": { "content_id": "82515a31bfe58ae087b4bd09eb4adb032cc2cabddd71a2761c543066bd237d3d" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"ref": { "content_id": "82d61d13bf21984068d6fd3ae9de9766fe99edb5163ea50ffb3485bfae9f56bc" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": { "ref": { "content_id": "d568fe9b8a82b7f1862816680de2498b6e045deb47f9941ca991a62baa4c8fe3" } },
|
||||
"presentation": { "persist_taps": [], "emit": ["selection_report"] }
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "arc2-net-us500",
|
||||
"description": "Arc 2 gross-to-net stress: the Arc 1 matrix on US500 alone, charged with a constant round-trip cost (0.5 price units, a labelled stress parameter approximating typical retail spread+commission) plus vol-proportional slippage (slip_vol_mult 0.1). Single instrument, so the process drops the generalize stage.",
|
||||
"seed": 0,
|
||||
"data": {
|
||||
"instruments": ["US500"],
|
||||
"windows": [ { "from_ms": 1514764800000, "to_ms": 1782863999999 } ]
|
||||
},
|
||||
"risk": [ { "vol": { "length": 3, "k": 2.0 } } ],
|
||||
"cost": [
|
||||
{ "constant": { "cost_per_trade": 0.5 } },
|
||||
{ "vol_slippage": { "slip_vol_mult": 0.1 } }
|
||||
],
|
||||
"strategies": [
|
||||
{
|
||||
"ref": { "content_id": "82515a31bfe58ae087b4bd09eb4adb032cc2cabddd71a2761c543066bd237d3d" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"ref": { "content_id": "82d61d13bf21984068d6fd3ae9de9766fe99edb5163ea50ffb3485bfae9f56bc" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": { "ref": { "content_id": "d568fe9b8a82b7f1862816680de2498b6e045deb47f9941ca991a62baa4c8fe3" } },
|
||||
"presentation": { "persist_taps": [], "emit": ["selection_report"] }
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "arc2-net-xauusd",
|
||||
"description": "Arc 2 gross-to-net stress: the Arc 1 matrix on XAUUSD alone, charged with a constant round-trip cost (0.25 price units, a labelled stress parameter approximating typical retail spread+commission) plus vol-proportional slippage (slip_vol_mult 0.1). Single instrument, so the process drops the generalize stage.",
|
||||
"seed": 0,
|
||||
"data": {
|
||||
"instruments": ["XAUUSD"],
|
||||
"windows": [ { "from_ms": 1514764800000, "to_ms": 1782863999999 } ]
|
||||
},
|
||||
"risk": [ { "vol": { "length": 3, "k": 2.0 } } ],
|
||||
"cost": [
|
||||
{ "constant": { "cost_per_trade": 0.25 } },
|
||||
{ "vol_slippage": { "slip_vol_mult": 0.1 } }
|
||||
],
|
||||
"strategies": [
|
||||
{
|
||||
"ref": { "content_id": "82515a31bfe58ae087b4bd09eb4adb032cc2cabddd71a2761c543066bd237d3d" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"ref": { "content_id": "82d61d13bf21984068d6fd3ae9de9766fe99edb5163ea50ffb3485bfae9f56bc" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": { "ref": { "content_id": "d568fe9b8a82b7f1862816680de2498b6e045deb47f9941ca991a62baa4c8fe3" } },
|
||||
"presentation": { "persist_taps": [], "emit": ["selection_report"] }
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "arc2b-stopgeom-eurusd",
|
||||
"description": "Arc 2b stop-geometry test on EURUSD: the Arc 1 matrix under two wider vol-stop regimes (EMA-60 k=2 hourly-scale, EMA-240 k=3 multi-hour-scale) instead of Arc 1 minute-scale vol{3,k2}. Same constant round-trip cost (0.00012 price units, stress parameter) + vol slippage. Question: does the cost drag collapse and leave a net-positive signal once the stop matches the H1 signal timescale?",
|
||||
"seed": 0,
|
||||
"data": {
|
||||
"instruments": ["EURUSD"],
|
||||
"windows": [ { "from_ms": 1514764800000, "to_ms": 1782863999999 } ]
|
||||
},
|
||||
"risk": [
|
||||
{ "vol": { "length": 60, "k": 2.0 } },
|
||||
{ "vol": { "length": 240, "k": 3.0 } }
|
||||
],
|
||||
"cost": [
|
||||
{ "constant": { "cost_per_trade": 0.00012 } },
|
||||
{ "vol_slippage": { "slip_vol_mult": 0.1 } }
|
||||
],
|
||||
"strategies": [
|
||||
{
|
||||
"ref": { "content_id": "82515a31bfe58ae087b4bd09eb4adb032cc2cabddd71a2761c543066bd237d3d" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"ref": { "content_id": "82d61d13bf21984068d6fd3ae9de9766fe99edb5163ea50ffb3485bfae9f56bc" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": { "ref": { "content_id": "d568fe9b8a82b7f1862816680de2498b6e045deb47f9941ca991a62baa4c8fe3" } },
|
||||
"presentation": { "persist_taps": [], "emit": ["selection_report"] }
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "arc2b-stopgeom-generalize",
|
||||
"description": "Arc 2b cross-instrument leg: the Arc 1 matrix under the two wider vol-stop regimes (EMA-60 k=2, EMA-240 k=3), vol slippage only, with the generalize floor.",
|
||||
"seed": 0,
|
||||
"data": {
|
||||
"instruments": [
|
||||
"GER40",
|
||||
"US500",
|
||||
"EURUSD",
|
||||
"XAUUSD"
|
||||
],
|
||||
"windows": [
|
||||
{
|
||||
"from_ms": 1514764800000,
|
||||
"to_ms": 1782863999999
|
||||
}
|
||||
]
|
||||
},
|
||||
"risk": [
|
||||
{
|
||||
"vol": {
|
||||
"length": 60,
|
||||
"k": 2.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"vol": {
|
||||
"length": 240,
|
||||
"k": 3.0
|
||||
}
|
||||
}
|
||||
],
|
||||
"cost": [
|
||||
{
|
||||
"vol_slippage": {
|
||||
"slip_vol_mult": 0.1
|
||||
}
|
||||
}
|
||||
],
|
||||
"strategies": [
|
||||
{
|
||||
"ref": {
|
||||
"content_id": "82515a31bfe58ae087b4bd09eb4adb032cc2cabddd71a2761c543066bd237d3d"
|
||||
},
|
||||
"axes": {
|
||||
"channel_hi.length": {
|
||||
"kind": "I64",
|
||||
"values": [
|
||||
24,
|
||||
48,
|
||||
96
|
||||
]
|
||||
},
|
||||
"channel_lo.length": {
|
||||
"kind": "I64",
|
||||
"values": [
|
||||
24,
|
||||
48,
|
||||
96
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ref": {
|
||||
"content_id": "82d61d13bf21984068d6fd3ae9de9766fe99edb5163ea50ffb3485bfae9f56bc"
|
||||
},
|
||||
"axes": {
|
||||
"channel_hi.length": {
|
||||
"kind": "I64",
|
||||
"values": [
|
||||
24,
|
||||
48,
|
||||
96
|
||||
]
|
||||
},
|
||||
"channel_lo.length": {
|
||||
"kind": "I64",
|
||||
"values": [
|
||||
24,
|
||||
48,
|
||||
96
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": {
|
||||
"ref": {
|
||||
"content_id": "41863fcae9300b334056c6f2a899e8c2672ecb29387d294e9a6e58f159ef51b4"
|
||||
}
|
||||
},
|
||||
"presentation": {
|
||||
"persist_taps": [],
|
||||
"emit": [
|
||||
"selection_report"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "arc2b-stopgeom-ger40",
|
||||
"description": "Arc 2b stop-geometry test on GER40: the Arc 1 matrix under two wider vol-stop regimes (EMA-60 k=2 hourly-scale, EMA-240 k=3 multi-hour-scale) instead of Arc 1 minute-scale vol{3,k2}. Same constant round-trip cost (1.5 price units, stress parameter) + vol slippage. Question: does the cost drag collapse and leave a net-positive signal once the stop matches the H1 signal timescale?",
|
||||
"seed": 0,
|
||||
"data": {
|
||||
"instruments": ["GER40"],
|
||||
"windows": [ { "from_ms": 1514764800000, "to_ms": 1782863999999 } ]
|
||||
},
|
||||
"risk": [
|
||||
{ "vol": { "length": 60, "k": 2.0 } },
|
||||
{ "vol": { "length": 240, "k": 3.0 } }
|
||||
],
|
||||
"cost": [
|
||||
{ "constant": { "cost_per_trade": 1.5 } },
|
||||
{ "vol_slippage": { "slip_vol_mult": 0.1 } }
|
||||
],
|
||||
"strategies": [
|
||||
{
|
||||
"ref": { "content_id": "82515a31bfe58ae087b4bd09eb4adb032cc2cabddd71a2761c543066bd237d3d" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"ref": { "content_id": "82d61d13bf21984068d6fd3ae9de9766fe99edb5163ea50ffb3485bfae9f56bc" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": { "ref": { "content_id": "d568fe9b8a82b7f1862816680de2498b6e045deb47f9941ca991a62baa4c8fe3" } },
|
||||
"presentation": { "persist_taps": [], "emit": ["selection_report"] }
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "arc2b-stopgeom-us500",
|
||||
"description": "Arc 2b stop-geometry test on US500: the Arc 1 matrix under two wider vol-stop regimes (EMA-60 k=2 hourly-scale, EMA-240 k=3 multi-hour-scale) instead of Arc 1 minute-scale vol{3,k2}. Same constant round-trip cost (0.5 price units, stress parameter) + vol slippage. Question: does the cost drag collapse and leave a net-positive signal once the stop matches the H1 signal timescale?",
|
||||
"seed": 0,
|
||||
"data": {
|
||||
"instruments": ["US500"],
|
||||
"windows": [ { "from_ms": 1514764800000, "to_ms": 1782863999999 } ]
|
||||
},
|
||||
"risk": [
|
||||
{ "vol": { "length": 60, "k": 2.0 } },
|
||||
{ "vol": { "length": 240, "k": 3.0 } }
|
||||
],
|
||||
"cost": [
|
||||
{ "constant": { "cost_per_trade": 0.5 } },
|
||||
{ "vol_slippage": { "slip_vol_mult": 0.1 } }
|
||||
],
|
||||
"strategies": [
|
||||
{
|
||||
"ref": { "content_id": "82515a31bfe58ae087b4bd09eb4adb032cc2cabddd71a2761c543066bd237d3d" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"ref": { "content_id": "82d61d13bf21984068d6fd3ae9de9766fe99edb5163ea50ffb3485bfae9f56bc" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": { "ref": { "content_id": "d568fe9b8a82b7f1862816680de2498b6e045deb47f9941ca991a62baa4c8fe3" } },
|
||||
"presentation": { "persist_taps": [], "emit": ["selection_report"] }
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "arc2b-stopgeom-xauusd",
|
||||
"description": "Arc 2b stop-geometry test on XAUUSD: the Arc 1 matrix under two wider vol-stop regimes (EMA-60 k=2 hourly-scale, EMA-240 k=3 multi-hour-scale) instead of Arc 1 minute-scale vol{3,k2}. Same constant round-trip cost (0.25 price units, stress parameter) + vol slippage. Question: does the cost drag collapse and leave a net-positive signal once the stop matches the H1 signal timescale?",
|
||||
"seed": 0,
|
||||
"data": {
|
||||
"instruments": ["XAUUSD"],
|
||||
"windows": [ { "from_ms": 1514764800000, "to_ms": 1782863999999 } ]
|
||||
},
|
||||
"risk": [
|
||||
{ "vol": { "length": 60, "k": 2.0 } },
|
||||
{ "vol": { "length": 240, "k": 3.0 } }
|
||||
],
|
||||
"cost": [
|
||||
{ "constant": { "cost_per_trade": 0.25 } },
|
||||
{ "vol_slippage": { "slip_vol_mult": 0.1 } }
|
||||
],
|
||||
"strategies": [
|
||||
{
|
||||
"ref": { "content_id": "82515a31bfe58ae087b4bd09eb4adb032cc2cabddd71a2761c543066bd237d3d" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"ref": { "content_id": "82d61d13bf21984068d6fd3ae9de9766fe99edb5163ea50ffb3485bfae9f56bc" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": { "ref": { "content_id": "d568fe9b8a82b7f1862816680de2498b6e045deb47f9941ca991a62baa4c8fe3" } },
|
||||
"presentation": { "persist_taps": [], "emit": ["selection_report"] }
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "arc2c-kladder-eurusd",
|
||||
"description": "Arc 2c stop-scale ladder on EURUSD: the vol{length} knob only smooths the minute-vol estimator (stop = k*Sqrt(EMA(dP^2,length)) over m1 cycles), so timescale-matched stops require k. Ladder k in {6, 12} on the smoothed EMA-60 estimator (random-walk scaling: 1h-vol ~ 7.7x m1-vol), same constant round-trip cost (0.00012 price units, stress parameter) + vol slippage as arc2-net. Question: does drag ~ 1/k shrink faster than gross per-trade expectancy (in growing R units), leaving a net-positive region?",
|
||||
"seed": 0,
|
||||
"data": {
|
||||
"instruments": ["EURUSD"],
|
||||
"windows": [ { "from_ms": 1514764800000, "to_ms": 1782863999999 } ]
|
||||
},
|
||||
"risk": [
|
||||
{ "vol": { "length": 60, "k": 6.0 } },
|
||||
{ "vol": { "length": 60, "k": 12.0 } }
|
||||
],
|
||||
"cost": [
|
||||
{ "constant": { "cost_per_trade": 0.00012 } },
|
||||
{ "vol_slippage": { "slip_vol_mult": 0.1 } }
|
||||
],
|
||||
"strategies": [
|
||||
{
|
||||
"ref": { "content_id": "82515a31bfe58ae087b4bd09eb4adb032cc2cabddd71a2761c543066bd237d3d" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"ref": { "content_id": "82d61d13bf21984068d6fd3ae9de9766fe99edb5163ea50ffb3485bfae9f56bc" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": { "ref": { "content_id": "d568fe9b8a82b7f1862816680de2498b6e045deb47f9941ca991a62baa4c8fe3" } },
|
||||
"presentation": { "persist_taps": [], "emit": ["selection_report"] }
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "arc2c-kladder-generalize",
|
||||
"description": "Arc 2c cross-instrument leg: both variants under the k-ladder regimes (vol{60,k6}, vol{60,k12}), vol slippage only, generalize floor.",
|
||||
"seed": 0,
|
||||
"data": {
|
||||
"instruments": [
|
||||
"GER40",
|
||||
"US500",
|
||||
"EURUSD",
|
||||
"XAUUSD"
|
||||
],
|
||||
"windows": [
|
||||
{
|
||||
"from_ms": 1514764800000,
|
||||
"to_ms": 1782863999999
|
||||
}
|
||||
]
|
||||
},
|
||||
"risk": [
|
||||
{
|
||||
"vol": {
|
||||
"length": 60,
|
||||
"k": 6.0
|
||||
}
|
||||
},
|
||||
{
|
||||
"vol": {
|
||||
"length": 60,
|
||||
"k": 12.0
|
||||
}
|
||||
}
|
||||
],
|
||||
"cost": [
|
||||
{
|
||||
"vol_slippage": {
|
||||
"slip_vol_mult": 0.1
|
||||
}
|
||||
}
|
||||
],
|
||||
"strategies": [
|
||||
{
|
||||
"ref": {
|
||||
"content_id": "82515a31bfe58ae087b4bd09eb4adb032cc2cabddd71a2761c543066bd237d3d"
|
||||
},
|
||||
"axes": {
|
||||
"channel_hi.length": {
|
||||
"kind": "I64",
|
||||
"values": [
|
||||
24,
|
||||
48,
|
||||
96
|
||||
]
|
||||
},
|
||||
"channel_lo.length": {
|
||||
"kind": "I64",
|
||||
"values": [
|
||||
24,
|
||||
48,
|
||||
96
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"ref": {
|
||||
"content_id": "82d61d13bf21984068d6fd3ae9de9766fe99edb5163ea50ffb3485bfae9f56bc"
|
||||
},
|
||||
"axes": {
|
||||
"channel_hi.length": {
|
||||
"kind": "I64",
|
||||
"values": [
|
||||
24,
|
||||
48,
|
||||
96
|
||||
]
|
||||
},
|
||||
"channel_lo.length": {
|
||||
"kind": "I64",
|
||||
"values": [
|
||||
24,
|
||||
48,
|
||||
96
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": {
|
||||
"ref": {
|
||||
"content_id": "41863fcae9300b334056c6f2a899e8c2672ecb29387d294e9a6e58f159ef51b4"
|
||||
}
|
||||
},
|
||||
"presentation": {
|
||||
"persist_taps": [],
|
||||
"emit": [
|
||||
"selection_report"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "arc2c-kladder-ger40",
|
||||
"description": "Arc 2c stop-scale ladder on GER40: the vol{length} knob only smooths the minute-vol estimator (stop = k*Sqrt(EMA(dP^2,length)) over m1 cycles), so timescale-matched stops require k. Ladder k in {6, 12} on the smoothed EMA-60 estimator (random-walk scaling: 1h-vol ~ 7.7x m1-vol), same constant round-trip cost (1.5 price units, stress parameter) + vol slippage as arc2-net. Question: does drag ~ 1/k shrink faster than gross per-trade expectancy (in growing R units), leaving a net-positive region?",
|
||||
"seed": 0,
|
||||
"data": {
|
||||
"instruments": ["GER40"],
|
||||
"windows": [ { "from_ms": 1514764800000, "to_ms": 1782863999999 } ]
|
||||
},
|
||||
"risk": [
|
||||
{ "vol": { "length": 60, "k": 6.0 } },
|
||||
{ "vol": { "length": 60, "k": 12.0 } }
|
||||
],
|
||||
"cost": [
|
||||
{ "constant": { "cost_per_trade": 1.5 } },
|
||||
{ "vol_slippage": { "slip_vol_mult": 0.1 } }
|
||||
],
|
||||
"strategies": [
|
||||
{
|
||||
"ref": { "content_id": "82515a31bfe58ae087b4bd09eb4adb032cc2cabddd71a2761c543066bd237d3d" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"ref": { "content_id": "82d61d13bf21984068d6fd3ae9de9766fe99edb5163ea50ffb3485bfae9f56bc" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": { "ref": { "content_id": "d568fe9b8a82b7f1862816680de2498b6e045deb47f9941ca991a62baa4c8fe3" } },
|
||||
"presentation": { "persist_taps": [], "emit": ["selection_report"] }
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "arc2c-kladder-us500",
|
||||
"description": "Arc 2c stop-scale ladder on US500: the vol{length} knob only smooths the minute-vol estimator (stop = k*Sqrt(EMA(dP^2,length)) over m1 cycles), so timescale-matched stops require k. Ladder k in {6, 12} on the smoothed EMA-60 estimator (random-walk scaling: 1h-vol ~ 7.7x m1-vol), same constant round-trip cost (0.5 price units, stress parameter) + vol slippage as arc2-net. Question: does drag ~ 1/k shrink faster than gross per-trade expectancy (in growing R units), leaving a net-positive region?",
|
||||
"seed": 0,
|
||||
"data": {
|
||||
"instruments": ["US500"],
|
||||
"windows": [ { "from_ms": 1514764800000, "to_ms": 1782863999999 } ]
|
||||
},
|
||||
"risk": [
|
||||
{ "vol": { "length": 60, "k": 6.0 } },
|
||||
{ "vol": { "length": 60, "k": 12.0 } }
|
||||
],
|
||||
"cost": [
|
||||
{ "constant": { "cost_per_trade": 0.5 } },
|
||||
{ "vol_slippage": { "slip_vol_mult": 0.1 } }
|
||||
],
|
||||
"strategies": [
|
||||
{
|
||||
"ref": { "content_id": "82515a31bfe58ae087b4bd09eb4adb032cc2cabddd71a2761c543066bd237d3d" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"ref": { "content_id": "82d61d13bf21984068d6fd3ae9de9766fe99edb5163ea50ffb3485bfae9f56bc" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": { "ref": { "content_id": "d568fe9b8a82b7f1862816680de2498b6e045deb47f9941ca991a62baa4c8fe3" } },
|
||||
"presentation": { "persist_taps": [], "emit": ["selection_report"] }
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "arc2c-kladder-xauusd",
|
||||
"description": "Arc 2c stop-scale ladder on XAUUSD: the vol{length} knob only smooths the minute-vol estimator (stop = k*Sqrt(EMA(dP^2,length)) over m1 cycles), so timescale-matched stops require k. Ladder k in {6, 12} on the smoothed EMA-60 estimator (random-walk scaling: 1h-vol ~ 7.7x m1-vol), same constant round-trip cost (0.25 price units, stress parameter) + vol slippage as arc2-net. Question: does drag ~ 1/k shrink faster than gross per-trade expectancy (in growing R units), leaving a net-positive region?",
|
||||
"seed": 0,
|
||||
"data": {
|
||||
"instruments": ["XAUUSD"],
|
||||
"windows": [ { "from_ms": 1514764800000, "to_ms": 1782863999999 } ]
|
||||
},
|
||||
"risk": [
|
||||
{ "vol": { "length": 60, "k": 6.0 } },
|
||||
{ "vol": { "length": 60, "k": 12.0 } }
|
||||
],
|
||||
"cost": [
|
||||
{ "constant": { "cost_per_trade": 0.25 } },
|
||||
{ "vol_slippage": { "slip_vol_mult": 0.1 } }
|
||||
],
|
||||
"strategies": [
|
||||
{
|
||||
"ref": { "content_id": "82515a31bfe58ae087b4bd09eb4adb032cc2cabddd71a2761c543066bd237d3d" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
},
|
||||
{
|
||||
"ref": { "content_id": "82d61d13bf21984068d6fd3ae9de9766fe99edb5163ea50ffb3485bfae9f56bc" },
|
||||
"axes": {
|
||||
"channel_hi.length": { "kind": "I64", "values": [24, 48, 96] },
|
||||
"channel_lo.length": { "kind": "I64", "values": [24, 48, 96] }
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": { "ref": { "content_id": "d568fe9b8a82b7f1862816680de2498b6e045deb47f9941ca991a62baa4c8fe3" } },
|
||||
"presentation": { "persist_taps": [], "emit": ["selection_report"] }
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "campaign",
|
||||
"name": "control-always-long",
|
||||
"description": "Beta control: a constant bias=+1 strategy (no signal at all) under the same regimes, window, and slippage cost as the arc2c/arc3 candidates. Any candidate whose R-statistics do not clearly beat this baseline on its instrument is long-beta in a secular bull market, not signal. The bound value param is re-opened as a single-point axis (empty axes are refused); the sweep degenerates to one member.",
|
||||
"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": "198ca420039925af330f120376836d9c49a167b26e81324cb4857f5c20f81a44"
|
||||
},
|
||||
"axes": {
|
||||
"always_long.value": {
|
||||
"kind": "F64",
|
||||
"values": [
|
||||
1.0
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"process": {
|
||||
"ref": {
|
||||
"content_id": "41863fcae9300b334056c6f2a899e8c2672ecb29387d294e9a6e58f159ef51b4"
|
||||
}
|
||||
},
|
||||
"presentation": {
|
||||
"persist_taps": [],
|
||||
"emit": [
|
||||
"selection_report"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"format_version": 1,
|
||||
"kind": "process",
|
||||
"name": "screen-wf-mc",
|
||||
"description": "Arc 2 per-instrument methodology: identical to Arc 1's screen-wf-mc-generalize (deflated argmax on sqn_normalized, 90/30-day rolling walk-forward refit, pooled-OOS R-bootstrap) minus the generalize stage, for single-instrument campaigns.",
|
||||
"pipeline": [
|
||||
{ "block": "std::sweep", "metric": "sqn_normalized", "select": "argmax", "deflate": true },
|
||||
{ "block": "std::walk_forward", "in_sample_ms": 7776000000, "out_of_sample_ms": 2592000000, "step_ms": 2592000000, "mode": "rolling", "metric": "sqn_normalized", "select": "argmax" },
|
||||
{ "block": "std::monte_carlo", "resamples": 1000, "block_len": 5 }
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user