mcpField
B
backtesting

backtesting

github.com/alphaonedev数据与数据库175 次安装
代码仓库

关于 backtesting

backtesting 是一项 OpenClaw 技能,可用历史金融数据测试交易策略,适合量化交易者在实盘前评估收益与风险,并支持组合、交易成本和常见指标。

主要功能

  1. 01使用历史价格模拟策略
  2. 02计算收益、波动率和回撤
  3. 03支持 SMA、RSI 和布林带
  4. 04处理多项资产与投资组合
  5. 05纳入成本、滑点和仓位规模
  6. 06以 JSON 输出结果

适用场景

  1. 01评估移动平均线交叉策略
  2. 02分析计入费用后的组合表现
  3. 03通过回撤和波动率比较策略风险

安装

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

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill backtesting

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

详细介绍

回测

用途

此技能可让 OpenClaw 使用历史金融数据进行回测,模拟交易策略并衡量收益、回撤和夏普比率等指标。可用于实盘交易前验证策略,找出逻辑或风险敞口方面的潜在问题。

适用场景

在开发或优化交易策略时使用此技能,例如评估股票数据上的移动平均线交叉策略。此技能适用于算法交易中的定量分析、投资组合优化或风险评估,尤其是在有历史数据且需要对策略进行实证验证时。

主要功能
  • 使用来自 CSV、JSON 或 API 的历史价格数据模拟交易。
  • 计算总收益、波动率、最大回撤和风险调整后收益等绩效指标。
  • 通过集成库支持 SMA、RSI 和布林带等常见指标。
  • 支持多个资产或投资组合,并可设置交易成本、滑点和头寸规模。
  • 以 JSON 格式输出结果,便于解析和可视化。
使用模式

要进行回测,请提供一个定义策略逻辑、历史数据源和参数的 Python 脚本。运行前务必通过环境变量 $OPENCLAW_API_KEY 设置 API 密钥。使用 CLI 时,通过标志指定输入;使用 API 时,发送包含 JSON 负载的 POST 请求。首先检查是否存在缺失值或时间戳错误,以验证数据完整性。反复运行测试,并根据初步结果调整参数。

常用命令/API

使用 OpenClaw CLI 快速测试,或使用 REST API 进行程序化集成。身份验证需要在环境中设置 $OPENCLAW_API_KEY。

  • CLI 命令:使用策略文件和数据源运行回测。

    openclaw backtest --strategy strategy.py --data historical.csv --start-date 2020-01-01 --end-date 2023-01-01 --capital 10000
    

    此命令会使用初始资金,在指定日期范围内执行策略。

  • API 端点:向 /v1/backtest 发送包含 JSON 请求体的 POST 请求。

    curl -X POST https://api.openclaw.ai/v1/backtest \
    -H "Authorization: Bearer $OPENCLAW_API_KEY" \
    -d '{"strategy": "def trade(data): return buy if data['close'] > data['sma'] else sell", "data_source": "historical.csv", "params": {"start_date": "2020-01-01"}}'
    

    预期会收到包含 "returns" 和 "drawdown" 等键的 JSON 响应。

  • 配置格式:使用 YAML 配置策略,例如:

    strategy:
      name: moving_average
      parameters:
        period: 20
        threshold: 0.05
    

    使用 --config strategy.yaml 通过 CLI 加载此配置。

集成说明

通过在数据源标志中指定 URL(例如 --data https://example.com/data.csv),即可集成 Yahoo Finance 或 Alpha Vantage 等数据提供方。对于 Python 工作流,可将 OpenClaw 作为库导入:import openclaw; result = openclaw.backtest(strategy_file='strategy.py', data='historical.csv')。请使用 Python 3.8+ 并通过 pip install openclaw-finance 管理依赖,以确保兼容性。若与其他技能组合使用,可串联输出;例如,将 "data-fetch" 技能的结果作为此处的输入。

错误处理

请预料到无效数据格式、缺少 API 密钥或策略失败等错误。执行前检查是否设置了 $OPENCLAW_API_KEY;若未设置,命令将以代码 401 退出。通过将调用封装在 try-except 块中处理运行时错误,例如:

try:
    openclaw.backtest(strategy='strategy.py', data='historical.csv')
except ValueError as e:
    print(f"Data error: {e} - Verify CSV columns match expected format.")

常见问题:无效日期会返回代码 400;使用 --verbose 标志查看详细日志。运行前务必检查策略代码是否存在语法错误。

具体使用示例
  1. 使用 Apple 股票数据回测简单的 SMA 交叉策略:

    openclaw backtest --strategy examples/sma_crossover.py --data aapl_historical.csv --params '{"short_period": 10, "long_period": 30}' --capital 5000
    

    此操作会模拟短期 SMA 上穿长期 SMA 时买入,并输出年化收益率为 15% 等指标。

  2. 评估包含多种资产和手续费的投资组合策略:

    curl -X POST https://api.openclaw.ai/v1/backtest -H "Authorization: Bearer $OPENCLAW_API_KEY" -d '{"strategy": "portfolio_alloc.py", "data_source": ["aapl.csv", "goog.csv"], "params": {"fee_per_trade": 5.0}}'
    

    此操作会评估多元化投资组合,并计算扣除手续费后的净收益,例如收益率为 12%、回撤为 8%。

关系图
  • 相关:trading(策略执行所需)
  • 相关:financial-analysis(提供输入数据和指标)
  • 关联:risk-management(输出风险指标以供进一步分析)
  • 链接至:data-fetch(使用获取的历史数据作为输入)

评论

支持 Markdown