5c2ac982bc
The shell no longer defines what an aura backtest is. Tasks 1-9 of the shell-boundary cycle — structural extraction, behaviour byte-identical: - aura-runner (new; the C28 assembly position): input binding (the C26 module, moved whole), the C1-load-bearing param<->config translators, harness assembly (wrap_r / run_signal_r / run_blueprint_member and the probe/reopen cluster), axis + risk-regime conventions (bind_axes et al.), the campaign family builders + MC guards, reproduce (process::exit -> RunnerError, shell remaps to identical bytes), the measurement-run orchestration, project loading (Env / cdylib load / charter / staleness, moved whole), the coverage gap-walk (deduplicated onto interior_gap_months), and DefaultMemberRunner — the public implementation of aura_campaign::MemberRunner (ex CliMemberRunner). The MemberRunner trait stays in aura-campaign; the column still imports no harness/data-binding machinery. - aura-measurement (new; seeds C28 rung 3): the IcMetrics/IcKey vocabulary + information_coefficient, verbatim incl. serde derives (#294 duplicate-timestamp semantics move as-is, unresolved). - aura-backtest: the pure per-run scaffold (point_from_params, wf_ms_sizes / fit_wf_ms_sizes, intersect_shared_window). - shell residue: main.rs / campaign_run.rs keep argv/dispatch, argv->document translation, and presentation only; walkforward_summary_json_from_reports now calls the public aura_engine::param_stability instead of its inline twin. - worked example (crates/aura-runner/examples/world_member_run.rs): a World program runs a member backtest through the library alone. Held quality findings, adjudicated: the plan's literal pub-visibility list for binding.rs kept (cosmetic); ~20 refusal sites inside aura-runner (family/member/measure/translate) still process::exit — behaviour-identical today, conversion to RunnerError is filed forward (refs #297); rustfmt line-width drift on re-pathed call sites left for a repo-wide fmt decision. Verification: cargo test --workspace green (1471 passed, 0 failed); cargo clippy --workspace --all-targets -D warnings clean. Byte-identity is pinned by the untouched shell E2E suites (cli_run, measure_ic, run_measurement, research_docs, run_refuses_unrunnable_blueprint, tap_recording — zero assertion edits). Remaining in this cycle: full-workspace c28_layering + shell-content check, ledger amendments (C28 assembly position, C25/C14 control-surface consequence, C26 realization note). refs #295
41 lines
1.9 KiB
Rust
41 lines
1.9 KiB
Rust
//! `aura-backtest` — the backtest layer (C28): simulated execution without
|
|
//! money (the `SimBroker` pip yardstick, position management), measured in R,
|
|
//! plus the backtest metric reductions over the recorded streams
|
|
//! (`metrics`, moved from `aura-analysis` by #291) and the Monte-Carlo
|
|
//! assembly (`mc`, moved from `aura-engine` by #291/#292, C28 phase 2). The
|
|
//! outer rung of the metric-generic engine (C28): `RunReport` here is the
|
|
//! concrete `M = RunMetrics` instantiation of `aura_engine::RunReport<M>`.
|
|
|
|
mod mc;
|
|
mod metrics;
|
|
mod position_management;
|
|
pub mod scaffold;
|
|
mod sim_broker;
|
|
|
|
// `assemble_mc` stays module-private (it was never `pub` in the pre-#291 engine
|
|
// lib.rs re-export either — only its two callers, `monte_carlo` and the
|
|
// `#[cfg(test)]` thread-count wrapper, are public/test surface).
|
|
pub use mc::{monte_carlo, r_bootstrap, McAggregate, McDraw, McFamily, RBootstrap};
|
|
pub use metrics::{
|
|
derive_position_events, r_metrics_from_rs, summarize, summarize_r, PositionAction,
|
|
PositionEvent, RMetrics, RunMetricKey, RunMetrics, RANKABLE_METRICS, R_BASED_METRICS,
|
|
};
|
|
pub use position_management::{
|
|
ExitReason, FIELD_NAMES as PM_FIELD_NAMES, PositionManagement,
|
|
RECORD_KINDS as PM_RECORD_KINDS, WIDTH as PM_WIDTH,
|
|
};
|
|
pub use scaffold::{
|
|
fit_wf_ms_sizes, intersect_shared_window, point_from_params, wf_ms_sizes, WF_REAL_IS_NS,
|
|
WF_REAL_OOS_NS, WF_REAL_STEP_NS,
|
|
};
|
|
pub use sim_broker::SimBroker;
|
|
|
|
/// The trading instantiation of the engine's metric-generic run record (C28
|
|
/// phase 2, #292): source-compatible concrete names for every consumer that
|
|
/// deals in backtest metrics.
|
|
pub type RunReport = aura_engine::RunReport<RunMetrics>;
|
|
pub type SweepPoint = aura_engine::SweepPoint<RunMetrics>;
|
|
pub type SweepFamily = aura_engine::SweepFamily<RunMetrics>;
|
|
pub type WindowRun = aura_engine::WindowRun<RunMetrics>;
|
|
pub type WalkForwardResult = aura_engine::WalkForwardResult<RunMetrics>;
|