mcpField
R
regimen

regimen

远程服务
regimen-nu.vercel.app金融数据06 周前更新

关于 regimen

Regimen 分析交易策略的权益曲线,评估其表现是否能与运气区分,并判断优势在哪些市场条件下成立。它面向交易者和 Agent,强调统计证据不足时明确给出保留结论。

主要功能

  1. 01计算 PSR、DSR 和最短记录长度
  2. 02使用自助法置信区间评估显著性
  3. 03按市场状态归因并进行置换检验
  4. 04通过零均值和模拟策略进行自检
  5. 05比较策略曲线与来源公布的数据

适用场景

  1. 01检验短期策略表现是否有统计依据
  2. 02识别策略优势对应的市场条件
  3. 03评估多次调参带来的选择偏差
  4. 04检查市场数据来源与曲线指标差异

MCP 相关

MCP 服务提供策略评估、市场状态映射、自检和因子描述工具,并公开方法、证据等级资源及审查提示词。MCP 客户端可通过 Streamable HTTP 连接;对内联数据源无需认证。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://regimen-nu.vercel.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

4

此工具无需参数。

详细介绍

Regimen

夏普比率是一个估计值。Regimen 会告诉你它是否属实。

Regimen 根据交易策略的权益曲线回答两个汇总绩效数字无法回答的问题:测得的优势能否与运气区分开来,以及它在哪些市场条件下确实成立?

它既面向 Agent,也面向用户。所有功能都可通过 REST API 和 MCP 使用;它最常给出的答案是:证据太少,无法支持当前结论。这就是产品本身,并非故障模式。


问题所在

某策略公布了六周内 2.4 的夏普比率,以及 40 笔交易中 58% 的胜率。这两个数字都是真的,但都不是证据。

根据短期、偏态、厚尾样本计算出的夏普比率,其误差范围足以吞没这一结论。40 笔交易无法区分 58% 的优势和抛硬币。而当一个策略经过 20 次重新调参后,最好的配置看起来表现出色,原因和 20 个随机的人中最高的那个人个子高是一样的。

这不是冷门的统计学异议——这是资金因回测而损失的最常见原因。解决这一问题的数学方法自 2012 年以来就已存在,却几乎从未得到应用,因为它不只是用均值除以标准差那么简单。

以下是在线服务针对一条年化夏普比率为 3.72的曲线给出的真实输出:

verdict      weak
confidence   92.3% that the true Sharpe exceeds 0
95% interval [-0.033, +0.462]        zero is still inside
track record 60 periods; 78 needed for significance at 95%

仪表板只会显示 3.72,然后就此打住。

功能

1. 显著性。 概率夏普比率(Probabilistic Sharpe Ratio)——根据样本长度、偏度和峰度,计算真实夏普比率超过基准的概率。最短记录长度(Minimum Track Record Length)——要做出这一结论,至少需要多少个周期。去膨胀夏普比率(Deflated Sharpe Ratio)——对比率进行修正,以纳入此前尝试过的配置数量。保留序列相关性的平稳自助法置信区间。

2. 市场状态归因。 每个周期的收益都会与该 UTC 日期有效的市场状况关联起来,包括波动率、资金费率、未平仓量、持仓情况、市场情绪和趋势状态;数据按当时可获得的信息读取,因此分组中的任何内容都不会是事后才知道的。每个因子都带有置换检验:将各分组间观察到的绩效离散程度,与随机重排市场状态标签后产生的离散程度进行比较,因为把收益序列切成八组,总能保证找到一个看起来不错的子集。没有这个 p 值,市场状态图就是一台数据挖掘机器。

3. 自我攻击。 每项分析都可以针对答案预先已知的对照组运行:策略自身去除均值后的收益(真实夏普比率恰好为零,因此正确的引擎应将其评为接近 50%),以及一个按长度和波动率匹配的无优势策略模拟群体,这样便可将真实结果作为百分位数与纯粹的运气进行比较。结果会被公布,包括对照组测试失败时。

4. 差异检查。 当数据源公布了自己的数字时,Regimen 会根据权益曲线重新计算并报告差异。大多数差异都可以用计算惯例不同来解释,但引用仪表板数据的用户有权知道底层曲线给出的结果是否不同。

无需凭据即可试用

curl -s https://regimen-nu.vercel.app/api/v1/evaluate \
  -H 'content-type: application/json' \
  -d '{
    "selector": {
      "source": "inline",
      "trackRecord": {
        "label": "demo",
        "equity": [
          {"t": "2026-06-01", "equity": 10000}, {"t": "2026-06-02", "equity": 10180},
          {"t": "2026-06-03", "equity": 10090}, {"t": "2026-06-04", "equity": 10310},
          {"t": "2026-06-05", "equity": 10240}, {"t": "2026-06-06", "equity": 10450}
        ]
      }
    }
  }'

这条曲线故意设置得过短,Regimen 会明确指出这一点,而不是给出一个数字。 verification/README.md 提供了一个完整长度的示例,可生成分级结论,还包含健康状态和部署证明检查。

两种接入方式,一个引擎

REST
方法路径回答的问题
POST/api/v1/evaluate这份业绩记录能否与运气区分开?
POST/api/v1/regime-map优势集中在哪些市场状况下?
POST/api/v1/self-attack我为什么应该相信这个结论?
GET/api/v1/status上游可达性、缓存占用情况、演示密钥可用性。
GET/api/v1/openapi.json机器可读的契约。
GET/api/health存活状态和确切的构建提交。

每个响应都是 { data, meta } 或 { error, meta },其中 meta 包含请求 ID、构建提交,以及为该请求提供服务的凭据模式。错误包含稳定的机器可读 code、retryable 标志,以及一条可供 Agent 采取行动的 remedy,而非一段供人阅读的堆栈跟踪。

MCP

通过 Streamable HTTP 将任意 MCP 客户端连接到 https://regimen-nu.vercel.app/mcp。使用 inline 数据源无需身份验证。对于通过文件配置的客户端:

{ "mcpServers": { "regimen": { "url": "https://regimen-nu.vercel.app/mcp" } } }

如需交互式检查:运行 npx @modelcontextprotocol/inspector,并将其指向相同的 URL。

工具 — regimen_evaluate_track_record、regimen_regime_map、regimen_self_attack、regimen_describe_factors。每个工具都声明了一个 outputSchema,并返回经过验证的 structuredContent;每个工具都标注了 readOnlyHint,因为这里不会写入数据、交易或签名;每个工具都提供 detail 开关,让 Agent 可以只请求结论及其理由,而非所有分桶数据。

资源 — regimen://methodology(完整的统计方法)、regimen://evidence-tiers(精确的评级阈值),以及模板 regimen://factor/{key},其 key 参数支持 completion/complete。

提示词 — validate_strategy,按正确顺序进行完整审查,并附有不要从年化 Sharpe 开始的指示。

架构

                    REST  /api/v1/*            MCP  /mcp
                          │                        │
                          └────────────┬───────────┘
                                       │
                            engine/  significance · regime · self-attack
                                       │
                            stats/   PSR · DSR · MinTRL · bootstrap ·
                                     conditional attribution · Wilson
                                       │
                            sources/ ── adapter interface ──┐
                                       │                     │
                              olaxbt-nexus              inline
                          (18 tools, point-in-time)  (bring your own curve)

引擎基于领域模型编写——业绩记录和市场状态序列——绝不依赖供应商的响应格式。数据源是一个轻量适配器,负责生成这两类数据。因此,同一套分析既适用于 OlaXBT Nexus 策略,也适用于从电子表格粘贴的曲线;添加一个交易场所只需新增适配器,无需重写代码。

OlaXBT Nexus 是实时数据源。 适配器会读取策略的权益曲线、交易记录和已发布指标,并读取每个日期对应的八个市场状况因子,同时提供明确的 as_of,从而确保市场状态归因不受前视偏差影响。限流和缓存由客户端负责,而不是放在各个调用处:Builder 层级的密钥每分钟允许 80 次请求,而市场状态映射需要数百次时点读取,因此调用会通过令牌桶进行限速,并缓存每一项日期在过去且不可变的读取结果。

测试

pnpm test          # the full suite
pnpm typecheck     # strict, with noUncheckedIndexedAccess
pnpm eval          # the graded evaluation; writes EVAL.md

统计核心包含 370 项测试。PSR、MinTRL、Deflated Sharpe Ratio、偏度、峰度、Wilson 区间和回撤的已知答案测试用例均独立于此实现生成,并在注释中附有计算过程。一项使用 20 个随机种子的负控制测试证实,零均值序列有 20 次中的 2 次达到 95% 置信度,即名义显著性水平;与之匹配的正均值序列则有 20 次中的 20 次达到该水平。

评估结果

EVAL.md 是一项预先注册的分级评估:包含 82 种具有已知真实结果的合成策略,按误报率、检验效能、对退化输入的正确拒绝、校准度和市场状态检测能力进行评分。在引擎首次接受评估之前,测试套件及其目标就已固定。

目前有六项目标中的三项未达标,而且这些失败都如实公布,没有通过调整来掩盖。 值得了解这些结果,因为它们如实揭示了此方法的局限:

  • 误报率 5.6%(2/36),目标 ≤5%。 两次失败都由同一种机制导致:在短窗口内,收益分布呈负偏态,但崩盘部分尚未出现。非正态性修正取决于样本三阶和四阶矩,而在 40–60 个观测值时,这些矩几乎不包含有用信息——因此,修正原本要捕捉的模式(“卖出波动率,但还没爆雷”)恰好成了它会误判的情况。现在,只要样本过短,导致这些矩没有实际意义,引擎就会在自己的推理中明确指出这一点。请注意,2/36 也处于标称 5% 的蒙特卡洛噪声范围内;真正的发现是其背后的机制,而不是超出目标的幅度。
  • 克制率 66.7%(10/15),目标 ≥90%。 有五种情况中,一个真实但无法证实的优势被判定为已证实,因为运气让观测到的 Sharpe 远高于真实值。引擎在这五种情况下的判断方向都正确,但给出的置信度仍超过了样本量所能支持的程度。
  • 市场状态检测率 25%(1/4),p ≤ 0.05,目标 ≥75%。 评估在这里发现了一个真实的设计缺陷:置换检验最初使用的是最高与最低 Sharpe 之间的差值,只能观察两个分桶,而且会随分桶数量增加而膨胀。对于植入的效应,它完全无法区分信号与零假设——植入的差值为 0.493,而零假设对照组为 0.491。此检验已改为按观测值加权的桶间方差;植入案例的 p 值因此从 0.022/0.073/0.092/0.229 变为 0.010/0.054/0.069/0.275,而未植入效应的对照组仍无明显信号(0.18–0.91)。这是实质性的改进,但仍未达到目标,因此该目标仍判定为未达成。

市场状态误报为 0/4,退化输入拒绝率为 8/8。

MCP 一致性

npx @modelcontextprotocol/conformance@alpha server --url <url>

在本地构建版本上:36 项检查通过,23 项失败。 通过的项目包括:协议协商、ping、tools/list、resources/list、prompts/list 和 DNS 重绑定防护。所有失败项都是涉及测试套件自身参考服务夹具的场景——命名测试工具、采样、日志记录、图像和音频内容、资源订阅;Regimen 均未实现这些功能。此处直接列出原始数量,而不将结果概括为通过,因为隐藏分母的一致性声明毫无价值。

请注意,DNS 重绑定场景按其自身说明的设定,对任何非 localhost URL 都会报告失败,因此只有在本地构建版本上运行时才有参考意义。

在本地运行

pnpm install
pnpm dev        # http://localhost:3000

内联源码无需凭据。若要分析 OlaXBT Nexus 策略,请在每次请求的 x-nexus-key 标头中提供密钥,或在环境中设置密钥。

变量必需作用
NEXUS_DEMO_KEY否在调用方未提供密钥时使用的 OlaXBT Nexus API 密钥,让审查者无需账户即可试用由 Nexus 提供支持的端点。使用该密钥时,响应会报告 meta.mode: "demo"。
REVIEW_COMMIT否覆盖 /api/health 报告的提交版本。仅在支持 Git 感知的构建环境之外进行自托管时需要设置;否则会使用平台的构建元数据,以确保报告的提交版本准确无误。

密钥按请求读取,绝不持久化,也绝不记录日志。必须识别密钥时——例如用于速率限制和缓存分区——只会使用不可逆的指纹。

诚实说明局限

  • 每次请求中,Regimen 最多读取 45 个日期。 每个日期需要进行五次时点读取,上游每分钟允许 80 次。过去的日期不会变化,且会被缓存,因此重复调用可以扩大覆盖范围;单次请求则不行。
  • 上游的时点数据覆盖范围不会延伸到当前时间。 最近日期的状况可能无法获取,这些时段会报告为未匹配,而不会补填数据。
  • 只有在提供试验 Sharpe 比率时,才会显示 Deflated Sharpe Ratio。 Regimen 无法知道你尝试过多少种配置,也不会猜测——它会说明未计算该比率及其原因。
  • 三分位区间边界取决于样本。 使用常见量表的因子会预先固定边界;其余因子会按自身观测范围划分为三分位,并逐个因子说明采用的划分方式。
  • 当权益数据点的间隔不均匀时,年化数据只是近似值。 Regimen 会根据间隔的中位数推断周期,标记不规则情况,并根据每周期数据而非年化数据进行评级。
  • 评估基于建模,而非实时数据。 它通过已知真实情况的合成策略衡量引擎表现,并不能证明任何事物具有盈利能力。

不在范围内

Regimen 不会交易、持有资金、托管密钥或签署任何内容。它不会检查智能合约、评估钱包或交易、检测诈骗,也不会进行任何形式的安全、审计或合规分析。它只会读取业绩记录,并报告证据所支持的结论。

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。