feat(backtest): 个股回测接入费用(cfg通道)+slippage+benchmark放宽至4基准 [vps]
CI/CD / test (push) Successful in 11s
CI/CD / nas-deploy (push) Successful in 25s
CI/CD / nas-verify (push) Successful in 9s

This commit is contained in:
2026-08-12 23:56:14 +08:00
parent 1d8e39709f
commit 4ad505434b
4 changed files with 64 additions and 4 deletions
+36
View File
@@ -0,0 +1,36 @@
"""Tests for 个股回测费用接入 + benchmark 放宽 (Task D).
schema 层本地可跑(pydantic)_build_fee_cfg 走 routes→auth→jwt,需 NAS docker 或齐后端 venv。
"""
from sanguo_api.schemas import CtaBacktestRequest
def test_slippage_field_present():
req = CtaBacktestRequest(
symbol="600519.SH", strategy="DoubleMaStrategy", start="2024-01-02", end="2024-06-28",
slippage=0.001,
)
assert req.slippage == 0.001
assert req.commission_rate == 0.00025 # 默认仍在
def test_benchmark_accepts_four_values():
for b in ("hs300", "zz500", "zz1000", "zz2000"):
req = CtaBacktestRequest(
symbol="600519.SH", strategy="DoubleMaStrategy",
start="2024-01-02", end="2024-06-28", benchmark=b,
)
assert req.benchmark == b
def test_build_fee_cfg_carries_all_fields():
from sanguo_api.routes import _build_fee_cfg
req = CtaBacktestRequest(
symbol="600519.SH", strategy="DoubleMaStrategy", start="2024-01-02", end="2024-06-28",
commission_rate=0.0003, stamp_duty_rate=0.001, slippage=0.001,
)
cfg = _build_fee_cfg(req)
assert cfg["commission_rate"] == 0.0003
assert cfg["stamp_duty_rate"] == 0.001
assert cfg["slippage"] == 0.001
assert "min_commission" in cfg and "transfer_fee_rate" in cfg