mcpField
B
backtesting-trading-strategies

backtesting-trading-strategies

github.com/gracefullight数据与数据库492.0k 次安装今天更新
代码仓库

关于 backtesting-trading-strategies

面向量化交易研究者的历史数据回测技能,包含 8 种策略、绩效与风险指标及参数网格搜索,可将结果保存为报告和曲线图。

主要功能

  1. 01提供 8 种内置交易策略
  2. 02计算绩效与风险指标
  3. 03网格搜索优化参数
  4. 04生成权益曲线可视化
  5. 05导出交易记录和报告

适用场景

  1. 01用历史行情评估策略表现
  2. 02比较策略的回撤和风险指标
  3. 03搜索策略参数组合
  4. 04检查逐笔交易与权益曲线

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/gracefullight/stock-checker --skill backtesting-trading-strategies

安装后在 Claude Code 中输入/backtesting-trading-strategies确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

config/
settings.yaml
references/
errors.md
examples.md
implementation.md
scripts/
backtest.py
fetch_data.py
metrics.py
optimize.py
strategies.py

详细介绍

回测交易策略

概述

在投入真实资金之前,使用历史数据验证交易策略。此技能提供一套完整的回测框架,内置 8 种策略,包含全面的绩效指标和参数优化功能。

主要功能:

  • 8 种预置交易策略(SMA、EMA、RSI、MACD、布林带、突破、均值回归、动量)
  • 完整的绩效指标(Sharpe、Sortino、Calmar、VaR、最大回撤)
  • 参数网格搜索优化
  • 权益曲线可视化
  • 逐笔交易分析

前提条件

安装所需依赖:

pip install pandas numpy yfinance matplotlib

高级功能的可选依赖:

pip install ta-lib scipy scikit-learn

使用说明

第 1 步:获取历史数据
python {baseDir}/scripts/fetch_data.py --symbol BTC-USD --period 2y --interval 1d

数据会缓存到 {baseDir}/data/{symbol}_{interval}.csv,以便重复使用。

第 2 步:运行回测

使用默认参数进行基本回测:

python {baseDir}/scripts/backtest.py --strategy sma_crossover --symbol BTC-USD --period 1y

使用自定义参数进行高级回测:

# Example: backtest with specific date range
python {baseDir}/scripts/backtest.py \
  --strategy rsi_reversal \
  --symbol ETH-USD \
  --period 1y \
  --capital 10000 \
  --params '{"period": 14, "overbought": 70, "oversold": 30}'
第 3 步:分析结果

结果会保存到 {baseDir}/reports/,包括:

  • *_summary.txt - 绩效指标
  • *_trades.csv - 交易记录
  • *_equity.csv - 权益曲线数据
  • *_chart.png - 权益曲线图
第 4 步:优化参数

通过网格搜索查找最优参数:

python {baseDir}/scripts/optimize.py \
  --strategy sma_crossover \
  --symbol BTC-USD \
  --period 1y \
  --param-grid '{"fast_period": [10, 20, 30], "slow_period": [50, 100, 200]}'

输出

绩效指标
指标描述
总收益率总体百分比收益/亏损
CAGR复合年增长率
Sharpe 比率风险调整后收益(目标:>1.5)
Sortino 比率经下行风险调整后的收益
Calmar 比率收益除以最大回撤
风险指标
指标描述
最大回撤从峰值到谷值的最大跌幅
VaR (95%)置信度为 95% 时的风险价值
CVaR (95%)超出 VaR 的预期损失
波动率年化标准差
交易统计
指标描述
交易总数完整买入卖出交易的数量
胜率盈利交易的百分比
盈利因子总盈利除以总亏损
期望值每笔交易的预期价值
输出示例
================================================================================
                    BACKTEST RESULTS: SMA CROSSOVER
                    BTC-USD | [start_date] to [end_date]
================================================================================
 PERFORMANCE                          | RISK
 Total Return:        +47.32%         | Max Drawdown:      -18.45%
 CAGR:                +47.32%         | VaR (95%):         -2.34%
 Sharpe Ratio:        1.87            | Volatility:        42.1%
 Sortino Ratio:       2.41            | Ulcer Index:       8.2
--------------------------------------------------------------------------------
 TRADE STATISTICS
 Total Trades:        24              | Profit Factor:     2.34
 Win Rate:            58.3%           | Expectancy:        $197.17
 Avg Win:             $892.45         | Max Consec. Losses: 3
================================================================================

支持的策略

策略描述关键参数
sma_crossover简单移动平均线交叉fast_period、slow_period
ema_crossover指数移动平均线交叉fast_period、slow_period
rsi_reversalRSI 超买/超卖period、overbought、oversold
macdMACD 信号线交叉fast、slow、signal
bollinger_bands布林带均值回归period、std_dev
breakout价格突破区间lookback、threshold
mean_reversion回归移动平均线period、z_threshold
momentum变动率动量period、threshold

配置

创建 {baseDir}/config/settings.yaml:

data:
  provider: yfinance
  cache_dir: ./data

backtest:
  default_capital: 10000
  commission: 0.001     # 0.1% per trade
  slippage: 0.0005      # 0.05% slippage

risk:
  max_position_size: 0.95
  stop_loss: null       # Optional fixed stop loss
  take_profit: null     # Optional fixed take profit

错误处理

常见问题及解决方案请参阅 {baseDir}/references/errors.md。

示例

详细用法示例请参阅 {baseDir}/references/examples.md,包括:

  • 多资产比较
  • 滚动前向分析
  • 参数优化工作流

文件

文件用途
scripts/backtest.py主要回测引擎
scripts/fetch_data.py历史数据获取工具
scripts/strategies.py策略定义
scripts/metrics.py绩效计算
scripts/optimize.py参数优化

资源

评论

支持 Markdown