Quant Research

ai.avasis由 avasis.ai 发布官方发布者v0.2.0更新于 Oct 26, 2026

Crypto backtest statistics: the server owns the trial count, so it cannot be understated.

已验证Streamable HTTP可网页运行金融数据与分析AI 与机器学习

概览

AI 生成的概览

远程 MCP 服务器,对加密回测做统计完整性检验,并由服务器自己保存试验次数,以识别过拟合。

可以做什么
  • 对收益序列运行紧缩夏普(DSR)与概率夏普(PSR)检验,试验次数由服务器保存而非手动填写。
  • 检验选择流程是否携带信息,以及相关标的组合实际包含多少个独立检验。
  • 生成带清洗与禁运的交叉验证切分、平稳自助法置信区间,以及与基准的现实检验。
  • 检查最小回测长度,使用三重障碍或美元柱标注,并对策略规格做哈希。
  • 用发行方公钥验证签名研究记录及其链条。
适用场景
当你已有回测结果、想知道它能否经受住所尝试的配置数量时,或需要核验他人签名的研究记录时适用。它是拒绝工具,不是寻找策略的工具。
运行要求
远程 streamable HTTP 端点,无需本地安装。需要在 Authorization 请求头中提供 bearer API 密钥,密钥需向提供方申请。免费 Python 库可在本地完成同样的统计。
安装前请注意
API 密钥属于凭据,通过 Authorization 请求头发送。签发证明是付费服务,验证则公开。服务器会记录并保存你的试验次数,研究活动对提供方可见。它不提供信号、价格或仓位建议。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Quant Research,将其添加到工作区。
  2. 连接 Authorization token 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/ai.avasis%2Fquant-research/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "quant-research": {
      "type": "http",
      "url": "https://quant-mcp.avasis.ai/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

quant-integrity

Statistical tests for whether a backtest means anything.

[PyPI] [Python] [Licence] [CI] [Typed]

This library will not find you a profitable strategy. Its function is to reject them. Everything here exists to answer one question: given how many configurations you tried before reporting this one, does the result survive?

bash
pip install quant-integrity

The problem, in one picture

A moving-average crossover on BTC-USD hourly bars. After sweeping parameters, the best configuration returned an annualised Sharpe of 0.95 — and a Probabilistic Sharpe of 0.86, which reads as "probably beats zero".

That is where most backtests stop. Here is the same result next to the bar that 28 attempts actually sets:

[Observed Sharpe against the bar set by the trial count]

The best of 28 tries is large even when every underlying edge is exactly zero. Against that bar the deflated Sharpe is 0.157. The observed result is not marginal; it is below half of what luck alone produces.

A high PSR with a low DSR is the signature of an overfit search, not a borderline edge.

What the search was actually selecting on

The cause was visible in the trials themselves. Sorting the 28 recorded runs by trade count against Sharpe:

[Sharpe against trade count across every trial]

Every configuration that traded less looked better, at ρ = −0.96. That is not a signal being discovered — it is cost drag being measured, plus a slow moving average approximating buy-and-hold in a rising market. The search was not finding an edge. It was finding the configuration that traded least.

And the interval was never tight to begin with

[Bootstrap confidence interval on Sharpe]

Reported alone, Sharpe = 0.95 implies a precision the data does not support.

Every number above is reproducible

bash
git clone https://github.com/abhayjnayakk/quant-integritycd quant-integrity && pip install -e .python docs/make_figures.py        # regenerates all three figures and prints the values
Trials evaluated28
Sharpe (annualised, after costs)0.9500
Probabilistic Sharpe (PSR)0.8556
E[max Sharpe] under the null, 28 trials1.8525
Deflated Sharpe (DSR)0.1568
Bootstrap 95% CI on Sharpe[−0.93, 2.69] — straddles zero
Excess kurtosis18.61
Spearman ρ(Sharpe, trades)−0.9618 (p = 3.8e−16)
Minimum backtest length1.94 years required, 1.25 available

The trial count is taken from the recorded runs rather than typed in. An earlier version of this page hardcoded 29 while the file recorded 28, and quoted a deflated Sharpe from one and a minimum backtest length from the other.

The figures and this table are generated by the same script from examples/btc_ma_runs.npz (24 KB, the actual return series and per-trial results). No server and no account. There is also a longer walkthrough in examples/btc_ma_postmortem.ipynb.

On one number that is not in this repo. The same specification was later run across a basket rather than a single asset, and pooled to a Sharpe of −1.376 over 10 assets with 3 of them positive. That result lives in the hosted server's ledger, not in this repository — the example file here carries only the single-asset trials, so you cannot reproduce the basket figure from it. It is quoted here because it is the strongest part of the story, and flagged because a number you cannot check should always be labelled as one.


What's in it

FunctionQuestion it answers
deflated_sharpe(returns, n_trials)Does this Sharpe beat what the best of N trials produces by luck?
probability_backtest_overfitting(matrix)Does your selection procedure carry information at all?
combinatorial_purged_cv(...)Cross-validation splits with purging AND embargo
stationary_bootstrap_ci(returns)How wide is the interval really?
reality_check(family, benchmark)Is the family's best member better than the benchmark it was chosen over?
effective_tests(matrix)How many INDEPENDENT tests does a correlated basket give?
min_backtest_length(n_trials, ...)Is your sample even long enough for the search you ran?
triple_barrier_labels(...), dollar_bars(...)Labelling and activity-based sampling
spec_hash(spec)Content-addressed strategy identity
verify_attestation(record, key)Independently check a signed research record
python
import quant_integrity as qi
out = qi.deflated_sharpe(returns, n_trials=28)print(out["dsr"], out["psr"])

n_trials means every configuration you evaluated, including the ones you discarded. Understating it produces a flattering answer. Nothing in this library can check it — which is exactly the problem the next section is about.


Commercial intent, stated on day one

The statistics in this repository are AGPL-3.0 and free forever. Every method here is published academic work. There is no moat in the arithmetic and no version of this library is crippled to sell you an upgrade — a teaser would fail as a funnel and would forfeit the only thing an integrity tool has.

Hosted attestation is a paid service. Verification is public and lives here. Issuance is not, for the reason below. Saying this up front so nobody can later claim a rug-pull.

Why self-hosting can't attest

A trial count is only meaningful if it cannot be revised downward. But if you run your own ledger, you can edit it. Not through malice, usually — through the ordinary temptation to restart the count after a rewrite, or to not record the sweep that went nowhere. A self-attested integrity record certifies nothing, because the person attesting is the person who benefits.

Verification is public. Issuance is the service.

Anyone can check an attestation with this library and an issuer's public key. No cooperation from the issuer is required, and none of the checking code is withheld. What you cannot do is make one, because a signature is only worth something when the signer is not the beneficiary.

The property that does the work is not any single signature — it is the chain. verify_chain confirms that, across a sequence of attestations:

  • sequence numbers are consecutive, so no record was removed from the middle;
  • each references the previous record's digest, so none was altered afterwards;
  • n_trials never decreases.

An outside party can establish all of that without ever seeing the ledger. Someone who edits their own records cannot reproduce it, because they would have to re-sign every subsequent record with a key they do not hold.

That is the whole business: not the arithmetic, which is here and free, but operating an instance that has no stake in the answer. That instance is quant.avasis.ai — an MCP server, so the research runs inside Claude, Cursor, VS Code or any MCP client, and the trial count is kept by the server rather than by the conversation.


Scope

This is a statistical instrument. Deliberately absent, and staying absent:

  • No buy, sell or hold signals. No target prices, position sizes or stop levels.
  • No model portfolios or allocations.
  • No claims about returns, and no examples implying any.

The library takes return series and trial counts and returns statistics about them. It does not know what you are trading and does not offer an opinion on it.


Install and contribute

bash
pip install quant-integrity                 # statisticspip install "quant-integrity[attestation]"  # + signature verification

Python 3.10+. Depends on numpy, scipy and pandas. Fully typed (py.typed).

Contributions require a CLA and a DCO sign-off — see CONTRIBUTING.md, which explains why without apology.

Licence

AGPL-3.0-or-later. See LICENSE and NOTICE.

The network-use clause is deliberate: it means a competitor cannot run a closed hosted fork of this code. It does not restrict you from using the library in your own research, hosted or otherwise, without publishing anything.

来源:README.md,提交 85696d7

工具

0
该服务器需要 API 密钥等凭据,因此 SourceWeft 无法在没有凭据的情况下读取其工具,也未收录。

版本历史

1
  1. v0.2.0最新Sep 16, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分