关于 backtestport
backtestport 是面向策略开发者的 MCP 服务和命令行客户端,可连接托管的 Backtest360 引擎。它支持验证和比较策略、运行回测、评估信号并获取市场与宏观数据,但不提供交易下单功能。
主要功能
- 01验证策略文档
- 02运行并比较回测
- 03评估最新信号
- 04获取市场与宏观数据
- 05浏览指标和模板
适用场景
- 01运行前检查策略
- 02在相同数据上比较策略
- 03查看标的价格历史
- 04查询宏观经济序列
MCP 相关
向 MCP 客户端提供 Backtest360 引擎、策略、回测、市场数据和宏观数据相关工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
19收录的工具列表 · 更新于 1 周前
此工具无需参数。
详细介绍
backtestport
无需搭建自己的引擎,即可回测交易策略。backtestport 是 Backtest360 托管式回测引擎的轻量客户端:你只需提供策略文档,它就会验证文档、运行回测、评估最新信号、使用相同数据比较多种策略,并获取引擎可处理的市场和宏观经济数据,以及编写策略所需的指标目录、模板和参考数据。
这只是一个回测客户端。它不包含实盘交易、下单或账户工具,它执行的任何操作都不会转移资金。
除下文所述的输出字节数上限外,响应内容与引擎返回的内容完全一致:不会进行截断、重命名或摘要。
配置
四个环境变量用于控制客户端:
BACKTEST360_API_KEY(必需)——每次请求都会通过X-API-Key请求头发送此密钥。未设置时,所有工具都会在发出任何请求之前失败,并返回BACKTEST360_API_KEY is not set。BACKTEST360_ENGINE_URL(可选)——引擎基础 URL。默认为https://api.backtest360.com。BACKTEST360_MCP_TIMEOUT(可选)——每个请求的超时时间,单位为秒,默认为300。请求运行时间超过此值时会失败,并返回backtest360 request timed out。BACKTEST360_MCP_MAX_OUTPUT_BYTES(可选)——响应大小上限,单位为字节,默认为100000。超过上限的响应正文会被截断至上限,并在末尾追加一行{"truncated_by_mcp": true},以免庞大的权益曲线淹没调用方。
读取结果
引擎有两种看似失败、实则不然的响应:
- 当策略文档存在问题时,策略验证会返回
{valid: false, errors: [...]}。这是正常结果——错误信息经过结构化处理且可定位,便于你修复文档。 - 引擎拒绝执行回测时,会返回
{accepted: false}。这也是正常结果。
真正的失败会以错误形式返回:当引擎发送 Retry-After 请求头时,HTTP 429 会返回 backtest360 rate limited (HTTP 429); retry after <value>(如果未发送该请求头,则不包含后缀);任何其他非 2xx 响应都会返回 backtest360 error: HTTP <status>;无法连接引擎时会返回 backtest360 unreachable。
策略参数(strategy,以及 strategies 中的每一项)可以是 JSON 对象或 JSON 字符串;发送前会解析字符串。无法解析的字符串会返回 strategy is not valid JSON。
三个参数用于控制回测运行:
response_detail——summary(默认)、stats或full:控制返回多少回测结果。max_series_points——返回序列长度上限,默认为 500;必须是至少为 2 的整数,并会在发出任何请求前于本地进行检查(max_series_points must be an integer >= 2)。include——可指定trades、equity_curve、monthly_returns、yearly_returns和signal_diagnostics中的任意项,每项都会将对应序列添加到回测结果中。
工具
发现与账户:
engine_info— 引擎版本、API 合约、运行状况。get_me— 配置的密钥可以执行哪些操作:权限范围、限制、当前用量、能力标志。get_catalog— 参考目录(运算符、执行模式、停止类型、仓位规模方法、K 线频率、指标分区);传入catalog可仅获取一个目录。list_indicators— 发现指标并查看各指标的参数架构;search可缩小列表范围。list_templates— 预先设计的策略模板,以精简形式列出;传入id时可完整查看单个模板。get_strategy_schema— 策略文档的 JSON Schema。
策略与运行:
validate_strategy— 检查策略文档,但不运行。run_backtest— 运行回测;symbol、start、end、上述塑形参数以及data(作为对象内联提供的 K 线)均为可选。get_latest_signal— 仅评估最近一根 K 线;不计算盈亏。compare_backtests— 在相同数据上并排运行多个策略。compute_stats— 根据外部生成的returns序列计算指标集。
市场与宏观数据:
search_tickers/list_tickers— 可获取数据的标的范围。get_data_range— 某标的可用历史数据和 K 线数量估算。get_ticker_info— 一次调用即可获取标的身份信息和数据覆盖范围。get_quote— 某标的最新可用价格。get_price_history— 指定日期范围内的 OHLCV 历史数据(start、end、frequency;使用服务端数据时,引擎会将 K 线固定为 1d——该参数仍会被接受并转发)。list_macro_series/get_macro_series— 宏观经济序列目录,以及某个序列在可选日期范围内的观测值。
端点来源说明
原项目的 README 明确列出 19 个工具、塑形参数的语义、带默认值的 4 个环境变量、X-API-Key 标头,以及将验证结果和引擎拒绝视为数据的规则。以下线路路径为还原内容,并已标注:GET /engine/info、GET /me、GET /catalogs、GET /indicators、GET /templates[/{id}]、GET /strategy/schema、POST /strategy/validate、POST /backtests、POST /signals/latest、POST /backtests/compare、POST /stats、GET /tickers/search、GET /tickers、GET /tickers/{symbol}/data-range、GET /tickers/{symbol}、GET /tickers/{symbol}/quote、GET /tickers/{symbol}/history、GET /macro、GET /macro/{series}——均位于配置的基础 URL 下,路径段和查询值均经过 URL 编码。
CLI
每个工具都是一个子命令,接受一个 JSON 参数字符串:
npx @reneturcios/backtestport engine_info '{}'
npx @reneturcios/backtestport validate_strategy '{"strategy":{"name":"sma-cross","rules":[]}}'
npx @reneturcios/backtestport run_backtest '{"strategy":{"name":"sma-cross"},"symbol":"AAPL","include":["equity_curve"]}'
npx @reneturcios/backtestport get_quote '{"symbol":"AAPL"}'
npx @reneturcios/backtestport --version
输出为工具的结果文本(成功时为上游 JSON)。退出码:成功时为 0,运行时错误时为 1(包括缺少密钥、验证失败或上游失败),用法错误时为 2。
MCP 服务
npx -y @reneturcios/backtestport mcp
MCP 客户端配置:
{
"mcpServers": {
"backtestport": {
"command": "npx",
"args": ["-y", "@reneturcios/backtestport", "mcp"],
"env": {
"BACKTEST360_API_KEY": "<your key>"
}
}
}
}
Docker
docker run -i ghcr.io/cloudcorprecords/backtestport
docker run --rm ghcr.io/cloudcorprecords/backtestport get_quote '{"symbol":"AAPL"}'
开发
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (fake fetch only, no network)
npm run dev # run the CLI from source
许可证
MIT — 版权所有 (c) 2026 Rene Turcios
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。