feat(backtest): 个股回测接入费用(cfg通道)+slippage+benchmark放宽至4基准 [vps]
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user