修正AiQuant回测佣金模型
This commit is contained in:
@@ -55,7 +55,7 @@ impl Default for ChinaAShareCostModel {
|
|||||||
impl ChinaAShareCostModel {
|
impl ChinaAShareCostModel {
|
||||||
pub fn aiquant_default() -> Self {
|
pub fn aiquant_default() -> Self {
|
||||||
Self {
|
Self {
|
||||||
commission_rate: 0.00025,
|
commission_rate: 0.0008,
|
||||||
stamp_tax_rate_before_change: 0.0005,
|
stamp_tax_rate_before_change: 0.0005,
|
||||||
stamp_tax_rate_after_change: 0.0005,
|
stamp_tax_rate_after_change: 0.0005,
|
||||||
..Self::default()
|
..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
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user