mcpField
B
backtesting-trading-strategies

backtesting-trading-strategies

github.com/jeremylongshore数据与数据库2.9k4.7k 次安装2 天前更新
代码仓库

关于 backtesting-trading-strategies

面向量化研究和交易策略开发者的历史数据回测技能,提供内置策略、风险与绩效指标、参数网格搜索及图表输出。模拟结果仅反映历史数据,不代表未来表现。

主要功能

  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/jeremylongshore/tons-of-skills-marketplace --skill backtesting-trading-strategies

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

包含的文件

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

commands/
backtest-strategy.md
compare-strategies.md
optimize-parameters.md
walk-forward.md
config/
settings.yaml
references/
errors.md
examples.md
implementation.md
scripts/
backtest.py
fetch_data.py
metrics.py
optimize.py
strategies.py
tests/
test_metrics.py
test_strategies.py

详细介绍

交易策略回测

概述

使用历史数据模拟交易策略。结果描述的是历史模拟,而非对未来表现的预期。该框架包含 8 种内置策略、下列指标以及参数优化功能。

主要功能:

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

先决条件

调用此技能前,用户需在模拟所用的 Python 环境中安装所需依赖:

set -euo pipefail
pip install pandas numpy yfinance matplotlib

高级功能的可选依赖:

set -euo pipefail
pip install ta-lib scipy scikit-learn

说明

  1. 获取历史数据(缓存到 ${CLAUDE_SKILL_DIR}/data/ 以供重复使用):

    python ${CLAUDE_SKILL_DIR}/scripts/fetch_data.py --symbol BTC-USD --period 2y --interval 1d
    
  2. 使用默认或自定义参数运行回测:

    python ${CLAUDE_SKILL_DIR}/scripts/backtest.py --strategy sma_crossover --symbol BTC-USD --period 1y
    python ${CLAUDE_SKILL_DIR}/scripts/backtest.py \
      --strategy rsi_reversal \
      --symbol ETH-USD \
      --period 1y \
      --capital 10000 \
      --params '{"period": 14, "overbought": 70, "oversold": 30}'
    
  3. 分析保存到 ${CLAUDE_SKILL_DIR}/reports/ 的结果——包括 *_summary.txt(绩效指标)、*_trades.csv(交易记录)、*_equity.csv(资产曲线数据)和 *_chart.png(可视化资产曲线)。

  4. 通过网格搜索优化参数,寻找最佳组合:

    python ${CLAUDE_SKILL_DIR}/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 比率历史风险调整后回报
Sortino 比率下行风险调整后回报
Calmar 比率回报除以最大回撤
风险指标
指标描述
最大回撤最大峰谷跌幅
VaR(95%)95% 置信度下的风险价值
CVaR(95%)超出 VaR 的预期损失
波动率年化标准差
交易统计
指标描述
交易总数完整往返交易的次数
胜率盈利交易所占百分比
盈利因子总毛利润除以总毛亏损;未观察到亏损时为 N/A
期望值每笔交易的预期价值
输出示例

不含图表的布局;实际数值取决于输入序列、费用、滑点、策略和参数。不要将这些占位值作为实测回报呈现。

HISTORICAL SIMULATION: [strategy]
[symbol] | [start_date] to [end_date]
Total Return: [computed] | Max Drawdown: [computed]
Sharpe Ratio: [computed] | Win Rate: [computed]
Total Trades: [observed] | Profit Factor: [computed or N/A]

未观察到亏损交易时,盈利因子不可用,包括零交易运行或仅有一笔盈利/盈亏平衡交易的情况。仅有一笔亏损交易时,总毛利润除以其亏损所得为零;这并不能证明策略质量。零笔或一笔交易的样本无法证明策略表现,而优化是对样本内历史数据的比较,不是预测。

支持的策略

策略描述关键参数
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

配置

创建 ${CLAUDE_SKILL_DIR}/config/settings.yaml:

data:
  provider: yfinance
  cache_dir: ./data

backtest:
  default_capital: 10000 # Starting simulated capital in quote-currency units
  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

错误处理

使用 Read 查看 references/errors.md,了解常见问题及解决方案。

示例

请参阅 references/examples.md,了解详细用法示例,包括:

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

文件

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

资源

评论

支持 Markdown