diff --git a/crates/fidc-core/src/cost.rs b/crates/fidc-core/src/cost.rs index 6b31f8f..fa9ac2b 100644 --- a/crates/fidc-core/src/cost.rs +++ b/crates/fidc-core/src/cost.rs @@ -55,7 +55,7 @@ impl Default for ChinaAShareCostModel { impl ChinaAShareCostModel { pub fn aiquant_default() -> Self { Self { - commission_rate: 0.00025, + commission_rate: 0.0008, stamp_tax_rate_before_change: 0.0005, stamp_tax_rate_after_change: 0.0005, ..Self::default() @@ -170,3 +170,19 @@ impl CostModel for ChinaAShareCostModel { } } } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn aiquant_default_matches_current_backtest_fee_model() { + let model = ChinaAShareCostModel::aiquant_default(); + let date = NaiveDate::from_ymd_opt(2025, 11, 11).expect("valid date"); + + assert!((model.commission_for(248_059.812) - 198.4478496).abs() < 1e-9); + assert!( + (model.stamp_tax_for(date, OrderSide::Sell, 245_747.007) - 122.8735035).abs() < 1e-9 + ); + } +}