| name | backtesting-framework |
| description | 回测框架,基于历史价格和交易信号模拟策略执行并计算夏普比率、最大回撤、胜率等绩效指标。适用于量化金融教学与策略评估概念演示;不包含交易成本和滑点的完整建模,不适用于实盘策略验证。 |
| version | 1.0.0 |
| author | wangyi |
backtesting-framework
回测框架:基于历史价格和交易信号,模拟策略执行并计算综合绩效指标,包括夏普比率、最大回撤、胜率等。
📌 说明:本工具基于简化模型实现,仅使用 Python 标准库。结果仅供学习参考,不构成投资建议或交易依据。
脚本API
run_backtest(prices, signals, initial_capital=1000000.0, commission_rate=0.0003, slippage_bps=5.0, allow_short=False)
运行回测引擎(比例仓位模型)。
必填: prices, signals
calc_sharpe_ratio(daily_returns, risk_free_rate=0.03, periods_per_year=252)
计算夏普比率。
必填: daily_returns
calc_sortino_ratio(daily_returns, risk_free_rate=0.03, periods_per_year=252)
计算索提诺比率。
必填: daily_returns
calc_max_drawdown(equity_curve)
计算最大回撤。
必填: equity_curve
calc_trade_stats(trades, equity_curve)
计算交易统计。
必填: trades, equity_curve
calc_monthly_returns(daily_returns, periods_per_month=21)
计算月度收益率。
必填: daily_returns
calc_performance_metrics(equity_curve, daily_returns, trades, risk_free_rate=0.03, periods_per_year=252)
计算全部绩效指标。
必填: equity_curve, daily_returns, trades
generate_ma_signals(prices, short_window=5, long_window=20)
生成均线交叉信号。
必填: prices
run_backtesting_framework(prices, signals=None, initial_capital=1000000.0, commission_rate=0.0003, slippage_bps=5.0, risk_free_rate=0.03, allow_short=False)
运行完整回测框架。
必填: prices
调用示例
python scripts/main.py \
--prices <prices> \
--signals <signals> \
--initial-capital <initial_capital> \
--commission-rate <commission_rate> \
--slippage-bps <slippage_bps> \
--risk-free-rate <risk_free_rate> \
--allow-short <allow_short>