关于 Backtest360
Backtest360 是将 Backtest360 引擎 API 封装为工具的 MCP 服务,供 AI Agent 发现指标、构建并验证策略、运行回测及读取结果。它不包含 AI 或自行计算数据,而是转发引擎能力,并支持托管 HTTP 与本地 stdio。
主要功能
- 01发现指标、模板与策略结构
- 02验证策略并返回可定位错误
- 03运行和比较历史回测
- 04获取最新信号与统计指标
- 05查询行情及宏观经济数据
适用场景
- 01将自然语言交易想法整理为可验证策略
- 02评估策略回测结果和稳健性
- 03比较多种策略在相同数据上的表现
- 04查询标的历史数据覆盖范围
MCP 相关
通过 MCP 暴露 Backtest360 引擎 API 工具、静态资源和工作流提示词。可连接托管 HTTP 端点或本地 stdio;API 密钥权限、限额和数据访问由引擎计划决定。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.backtest360.com/mcpclaude mcp add --transport http com-backtest360-backtest360 https://mcp.backtest360.com/mcp{"mcpServers":{"com-backtest360-backtest360":{"type":"http","url":"https://mcp.backtest360.com/mcp"}}}在 Cursor 中打开{"servers":{"com-backtest360-backtest360":{"type":"http","url":"https://mcp.backtest360.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"com-backtest360-backtest360":{"type":"http","url":"https://mcp.backtest360.com/mcp"}}}{"mcpServers":{"com-backtest360-backtest360":{"serverUrl":"https://mcp.backtest360.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.backtest360.com/mcp需要授权工具
20此工具无需参数。
详细介绍
backtest360-mcp
将 Backtest360 引擎 API 作为工具提供给 AI Agent 使用的 MCP 服务。
连接任何支持 MCP 的 AI 客户端,以对话方式执行真实回测:发现指标、构建和验证策略、运行回测并查看结果——所有操作都由确定性的 Backtest360 引擎完成。此服务不包含 AI,也不自行计算任何数值;它只是引擎 HTTP API 的轻量忠实适配器。所有功能(权限、速率限制、数据访问)均由你的引擎 API 密钥及其套餐决定。
提供两种传输方式:托管 HTTP 端点 https://mcp.backtest360.com/mcp(通过 X-API-Key 标头发送密钥)和本地 stdio(自行托管——见下文)。
安装
pip install backtest360-mcp # or, from a clone: pip install -e .
需要 Python 3.10+ 和 Backtest360 API 密钥。前往 backtest360.com/api-access 即可免费即时获取——提交电子邮件后,系统会立即签发密钥(格式为 b360_…)并发送给你;无需审批。仅通过 API 密钥进行身份验证。免费套餐可使用你上传的数据运行回测;从引擎服务器端获取历史价格数据则属于付费功能。
配置
所有配置均通过环境变量设置:
| 变量 | 必填 | 默认值 | 用途 |
|---|---|---|---|
BACKTEST360_API_KEY | 是 | — | 引擎 API 密钥,通过 X-API-Key 发送 |
BACKTEST360_ENGINE_URL | 否 | https://api.backtest360.com | 引擎基础 URL |
BACKTEST360_MCP_TIMEOUT | 否 | 300 | 每个请求的超时时间(秒) |
BACKTEST360_MCP_MAX_OUTPUT_BYTES | 否 | 100000 | 单个工具结果的硬性上限 |
连接 MCP 客户端
托管方式(推荐)
将 MCP 客户端指向托管 HTTP 端点,并通过 X-API-Key 标头发送密钥:
{
"mcpServers": {
"backtest360": {
"type": "streamable-http",
"url": "https://mcp.backtest360.com/mcp",
"headers": {
"X-API-Key": "b360_..."
}
}
}
}
本地方式(stdio)
自行运行服务,并让客户端通过 stdio 启动它(常见的 mcpServers 格式):
{
"mcpServers": {
"backtest360": {
"command": "backtest360-mcp",
"env": {
"BACKTEST360_API_KEY": "b360_..."
}
}
}
}
不想把密钥放在配置文件中?将 command 指向一个小型包装脚本,让它从你的密钥管理器导出密钥,然后运行 backtest360-mcp。examples/mcp.json 中提供了一个最简配置示例。
工具
| 工具 | 功能 |
|---|---|
engine_info | 引擎版本、API 契约、运行状况 |
get_me | 已配置密钥的权限:权限范围、限制、当前用量、能力标志 |
get_catalog | 参考目录:运算符、执行模式、停止类型、仓位规模计算方法、K 线频率、指标分区 |
list_indicators | 发现指标;获取各指标的参数架构 |
list_templates | 预设计策略模板——快速发现、完整获取单个模板,可直接验证并运行 |
get_strategy_schema | 策略文档的 JSON Schema |
validate_strategy | 验证策略但不运行——返回结构化且可定位的错误 |
run_backtest | 运行历史回测 |
get_latest_signal | 仅评估最近一根 K 线(无盈亏) |
compare_backtests | 在相同数据上并列运行多种策略 |
compute_stats | 根据外部生成的收益序列计算指标集 |
search_tickers / list_tickers | 发现资产,以供服务端获取数据 |
get_data_range | 获取某个标的可用的历史数据和 K 线数量估算 |
get_ticker_info | 一次调用获取标的身份信息和数据覆盖范围 |
get_quote | 获取某个标的的最新可用价格(付费套餐) |
get_price_history | 获取日期范围内的 OHLCV 价格历史(付费套餐;长历史数据会降采样以适应限制) |
list_macro_series / get_macro_series | 宏观经济数据:列出序列目录,然后获取某个序列的观测值 |
静态目录的开销很低,也以 MCP 资源形式发布
(backtest360://catalog/{name}, backtest360://schema/strategy),供支持资源附加的客户端使用。
提示词
两个工作流提示词为已连接的 AI 搭建常见的多工具工作流:分别列出要调用哪些工具、调用顺序,以及要查看结果中的哪些内容。它们不提供解读,也不执行计算——推理由已连接的 AI 完成。
| 提示词 | 参数 | 搭建的工作流 |
|---|---|---|
robustness_review | symbol、strategy(可选) | 评估回测策略的稳健性:验证 → 运行 → 与买入并持有进行比较 → 权衡证据基础(样本量、显著性/稳健性统计数据、警告)→ 附带限定说明的摘要 |
build_and_validate | idea | 将自然语言构想转化为经过验证的策略:查看目录 → 获取架构 → 构建 → 验证并修复,循环进行 → 试运行 |
响应整形
完整的回测结果有数 MB;而 Agent 的上下文容量有限。run_backtest 和
compare_backtests 接受 response_detail 参数:
summary(默认值)— 核心指标、警告、计数、权益曲线端点stats— 套餐允许的所有指标full— 另外包含序列(经过降采样,保留端点)和交易(分页)
run_backtest 还接受 max_series_points(默认值为 500,必须 >= 2),用于覆盖序列降采样上限——长时间运行时可调高以获取全分辨率序列,也可不设置,沿用今天的默认值。
include=["trades", "equity_curve", "monthly_returns", "yearly_returns", "signal_diagnostics"] 可在任意详细程度下添加指定区块。
signal_diagnostics 会报告每根 K 线上触发的入场/出场条件,并为每个条件列出数量受限的触发日期(而不是原始的逐 K 线布尔数组,因为降采样会破坏这些数组);如果运行结果没有可供评估的条件树(例如使用了预计算信号),则返回 {"available": false, ...}。超出输出上限的结果会进一步缩减,并明确标记为
truncated_by_mcp——不会被静默截断。整形操作只会选择和精简引擎返回的内容;不会计算或更改任何值。
错误语义
专为 Agent 设计:
- 可通过更改请求修复 → 作为普通结果返回:验证失败会以
{"valid": false, "errors": [...]}的形式返回,其中包含机器可读的代码和文档位置;引擎拒绝请求时会以{"accepted": false, "error": ...}的形式返回,并附带提示。 - 无法通过这种方式修复 → 返回包含明确指引的工具错误:速率限制会附带
Retry-After值;引擎繁忙时会提示使用退避策略重试;计算超时时会提示不要重试,而应缩小范围;权限问题会指出缺少的能力。错误中会包含引擎请求 ID,便于寻求支持。
运行测试(自托管)
pip install -e ".[dev]"
pytest # unit suite vs a mock engine — no network
问题 / 反馈
有问题或反馈?请发送邮件至 [email protected] —— 我们会阅读所有来信。backtest360-mcp 正在积极开发中,欢迎帮助我们完善它。
错误报告和功能请求:在 GitHub 上提交 issue。
许可证
MIT —— 参见 LICENSE。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。