Fuente en inglés — traducción pendiente — inglés

Research Stack

The research side answers one question with evidence: **is this candidate good

enough to trust — and can we prove it on data it never saw?**

Pipeline

DATA (canonical tick/bar datasets, provenance-fingerprinted)
  → FEATURES (same causal contract as live: 50D base, governed 70D assembly)
  → LABELING (triple-barrier, purged + embargoed)
  → TRAINING (deterministic seeds, walk-forward)
  → BACKTEST (friction-aware: spread / slippage / latency)
  → WALK-FORWARD VALIDATION
  → OOS GATE (hard: failure ⇒ REJECTED)
  → ROBUSTNESS STRESS
  → COUNTERFACTUAL / STRATIFICATION EVIDENCE
  → CANDIDATE REGISTRY (content-addressed)
  → SHADOW COMPARISON (zero order authority)
  → OPERATOR-GATED PROMOTION

Key guarantees

(Lopez de Prado); broker history REPLACE+ALIGN; liquidity features strictly

causal (confirmation bars, completed HTF buckets only). Purge/embargo

defaults are wired into the production research path (BUG-183 regression

suite).

(anti-leakage tests); live = replay = training semantics.

(dataset ID, schema hash, git commit in manifests and run snapshots).

provenance fields — NOT_RECORDED is written when truthfully unknown, never

backfilled.

Components

ComponentModuleNote
Dataset builder + quality gatesresearch/dataset.py, model_generation/fingerprinted, versioned
Backtest engineresearch/backtest.pydeterministic, friction-aware
Walk-forwardresearch/walkforward.py, training/walk_forward_trainer.pypurged/embargoed
OOS gateresearch/oos.pymacro-F1 / balanced-accuracy / ECE floors
Streaming replayresearch/streaming_replay.pylogical clock, zero sleeps; simulated fills on historical bid/ask; no order_send (test-enforced)
Forward testsresearch/forward_test.pyfreeze capture at cutoff (model/scaler/strategy fingerprints), strict timestamp > cutoff streaming
Tick datasetsresearch/mt5_tick_dataset.pycanonical adapter surface, offline after acquisition
Counterfactual engineresearch/counterfactual.pywalks NO_TRADE decisions on canonical ticks (CHG-0041)
Evidence + observabilityresearch/evidence.py, research/observability.pygate model, events, evidence vault, worker health

The 70D case study

The 70D series (scalp_v3: Base 50 + News 10 + Liquidity 10) is the reference

example of the stack working as designed: full parity/validation infrastructure

built, fair A/B/C benchmark run on real data — and the candidate rejected

(OOS NOT_ELIGIBLE). The live contract stayed 50D. Details:

Status · internal reports under docs/70D_*.md.