实现FIDC配置化风控与交易成本

This commit is contained in:
boris
2026-07-02 07:16:47 +08:00
parent 754fc91376
commit 7db0e8da1d
17 changed files with 2689 additions and 249 deletions
+4
View File
@@ -18,6 +18,7 @@ use crate::futures::{
};
use crate::metrics::{BacktestMetrics, compute_backtest_metrics};
use crate::portfolio::{CashReceivable, HoldingSummary, PortfolioState};
use crate::risk_control::FidcRiskDecisionAudit;
use crate::rules::EquityRuleHooks;
use crate::scheduler::{ScheduleRule, ScheduleStage, Scheduler, default_stage_time};
use crate::strategy::{
@@ -88,6 +89,7 @@ pub struct BacktestResult {
pub strategy_name: String,
pub equity_curve: Vec<DailyEquityPoint>,
pub benchmark_series: Vec<BenchmarkSnapshot>,
pub risk_decisions: Vec<FidcRiskDecisionAudit>,
pub order_events: Vec<OrderEvent>,
pub fills: Vec<FillEvent>,
pub position_events: Vec<PositionEvent>,
@@ -1679,6 +1681,7 @@ where
.unwrap_or(true)
})
.collect(),
risk_decisions: Vec::new(),
order_events: Vec::new(),
fills: Vec::new(),
position_events: Vec::new(),
@@ -2745,6 +2748,7 @@ where
let day_fills = report.fill_events.clone();
let broker_diagnostics = report.diagnostics.clone();
self.extend_result(&mut result, report);
result.risk_decisions.extend(decision.risk_decisions);
let benchmark =
self.data