Pipeline Interface v1
This reference summarizes the edge-finder-candidate/v1 contract used by
trade-strategy-pipeline Phase I.
Required Artifact Layout
strategies/<candidate_id>/strategy.yaml(required)strategies/<candidate_id>/metadata.json(recommended for provenance)- Folder name
<candidate_id>must matchstrategy.yamlfieldid.
strategy.yaml Required Top-Level Keys
idnameuniversesignalsriskcost_modelvalidationpromotion_gates
Phase I Constraints
validation.methodmust befull_sample.validation.oos_ratiomust be omitted ornull.risk.risk_per_trademust satisfy0 < value <= 0.10.risk.max_positionsmust be>= 1.risk.max_sector_exposuremust satisfy0 < value <= 1.0.signals.entry.conditionsmust be non-empty.signals.exit.stop_lossmust be non-empty.signals.exitmust includetrailing_stoportake_profit.
Supported Entry Families (v1)
pivot_breakoutwithvcp_detectionblockgap_up_continuationwithgap_up_detectionblock
If both detection blocks exist, implementation may merge both as logical OR.
Execution Handshake
Run:
uv run python -m pipeline.runner.cli \
--strategy <candidate_id> \
--data-dir data \
--output-dir reports/<candidate_id>
Dry-run first:
uv run python -m pipeline.runner.cli --strategy <candidate_id> --dry-run
Minimum machine-readable outputs:
run_statusfrom CLI exit codegate_statusfromPromotion gate: PASSED|FAILEDreport_pathfromReport: ...