Rename engine strategy surfaces

This commit is contained in:
boris
2026-04-23 22:13:14 -07:00
parent 882053e12b
commit 0b0b9333fa
35 changed files with 245 additions and 68388 deletions

View File

@@ -8,7 +8,7 @@ use chrono::{NaiveDate, NaiveTime};
use fidc_core::{
BacktestConfig, BacktestEngine, BenchmarkSnapshot, BrokerSimulator, ChinaAShareCostModel,
ChinaEquityRuleHooks, CnSmallCapRotationConfig, CnSmallCapRotationStrategy, DailyEquityPoint,
DataSet, FillEvent, HoldingSummary, JqMicroCapConfig, JqMicroCapStrategy, PortfolioState,
DataSet, FillEvent, HoldingSummary, OmniMicroCapConfig, OmniMicroCapStrategy, PortfolioState,
PriceField, Strategy, StrategyContext,
};
use serde_json::json;
@@ -101,7 +101,7 @@ fn main() -> Result<(), Box<dyn Error>> {
engine.run()?
}
_ => {
let mut strategy_cfg = JqMicroCapConfig::jq_microcap();
let mut strategy_cfg = OmniMicroCapConfig::omni_microcap();
if let Ok(signal_symbol) = std::env::var("FIDC_BT_SIGNAL_SYMBOL") {
if !signal_symbol.trim().is_empty() {
strategy_cfg.benchmark_signal_symbol = signal_symbol;
@@ -117,7 +117,7 @@ fn main() -> Result<(), Box<dyn Error>> {
for row in eligible.iter().take(20) {
eprintln!(" {} {:.6}", row.symbol, row.market_cap_bn);
}
let mut debug_strategy = JqMicroCapStrategy::new(strategy_cfg.clone());
let mut debug_strategy = OmniMicroCapStrategy::new(strategy_cfg.clone());
let debug_subscriptions = BTreeSet::new();
let decision = debug_strategy.on_day(&StrategyContext {
execution_date: date,
@@ -125,11 +125,15 @@ fn main() -> Result<(), Box<dyn Error>> {
decision_index: 1,
data: &data,
portfolio: &PortfolioState::new(10_000_000.0),
futures_account: None,
open_orders: &[],
dynamic_universe: None,
subscriptions: &debug_subscriptions,
process_events: &[],
active_process_event: None,
active_datetime: None,
order_events: &[],
fills: &[],
})?;
eprintln!("DEBUG notes={:?}", decision.notes);
eprintln!("DEBUG diagnostics={:?}", decision.diagnostics);
@@ -138,7 +142,7 @@ fn main() -> Result<(), Box<dyn Error>> {
config.decision_lag_trading_days = decision_lag.unwrap_or(0);
config.execution_price_field = execution_price.unwrap_or(PriceField::Last);
config.initial_cash = initial_cash.unwrap_or(10_000_000.0);
let strategy = JqMicroCapStrategy::new(strategy_cfg);
let strategy = OmniMicroCapStrategy::new(strategy_cfg);
let broker = BrokerSimulator::new_with_execution_price(
ChinaAShareCostModel::default(),
ChinaEquityRuleHooks::default(),