//! A World program driving the canonical member-run recipe as a library — //! no `aura` binary involved (#295 acceptance evidence: builds against //! library crates only). Runs one member backtest of the shipped breakout //! blueprint over real archive data when present; skips cleanly otherwise. use std::collections::BTreeMap; use aura_campaign::{CellSpec, MemberRunner}; use aura_ingest::default_data_server; use aura_runner::{DefaultMemberRunner, Env}; const SYMBOL: &str = "GER40"; // September 2024, inclusive epoch-ms — the same month the ger40 examples use. const WINDOW_MS: (i64, i64) = (1_725_148_800_000, 1_727_740_799_999); fn main() { let server = default_data_server(); if !server.has_symbol(SYMBOL) { println!("skip: no local archive — nothing to demonstrate."); return; } let blueprint_json = std::fs::read_to_string(concat!( env!("CARGO_MANIFEST_DIR"), "/../aura-cli/examples/r_breakout.json" )) .expect("shipped example blueprint"); let env = Env::std(); let runner = DefaultMemberRunner::new(&env, server, BTreeMap::new(), Vec::new()); let cell = CellSpec { strategy_ordinal: 0, strategy_id: aura_research::content_id_of(&blueprint_json), blueprint_json, axes: BTreeMap::new(), instrument: SYMBOL.to_string(), window_ms: WINDOW_MS, regime: None, regime_ordinal: 0, }; match runner.run_member(&cell, &[], WINDOW_MS) { Ok(report) => println!("member ran: {:?}", report.metrics), Err(fault) => println!("member fault (data-dependent): {fault:?}"), } }