运行回测¶
本篇导览
| 项目 | 说明 |
|---|---|
| 目标 | 掌握三种回测接口 |
| 前置 | 编写策略 |
1. 运行回测¶
1.1 run_strategy(推荐)¶
一站式运行回测并生成所有报告。
result = run_strategy(
initialize,
start_date='2024-01-01',
end_date='2024-12-31',
starting_cash=100000,
benchmark='000300.XSHG',
securities=['601390', '600519'],
report_dir='reports',
)
1.2 run_backtest(精细控制)¶
只运行回测,不生成报告。
result = run_backtest(
initialize,
start_date='2024-01-01',
end_date='2024-12-31',
starting_cash=100000,
)
1.3 run_portfolio_backtest(组合回测)¶
面向多股票组合的高层接口。
from eqlib import StrategyConfig, run_portfolio_backtest
config = StrategyConfig(
starting_cash=200000,
securities=["601390", "600519", "000858"],
benchmark="000300.XSHG",
position_pct=0.33,
start_date="2024-01-01",
end_date="2024-12-31",
report_suffix="momentum_v1",
)
def my_strategy(context):
for sec in context.universe:
hist = attribute_history(sec, 25, "1d", ["close"])
if hist.empty:
continue
ma20 = hist["close"].tail(20).mean()
price = hist["close"].iloc[-1]
if price > ma20 * 1.02:
order_value(sec, context.portfolio.available_cash)
elif price < ma20 * 0.98 and context.portfolio.positions.get(sec):
order_target(sec, 0)
result = run_portfolio_backtest(config, my_strategy, report_dir="reports")
1.4 基准对比¶
通过 benchmark 参数设置基准(默认 000300.XSHG 沪深300)。结果会自动计算 alpha、beta 和 information ratio。
完整参数说明见 回测引擎 API 参考。