mcpField
M
Monte-Neo strategy verifier

Monte-Neo strategy verifier

本地服务
neozork.github.io金融数据8今天更新

关于 Monte-Neo strategy verifier

Monte-Neo 独立审计交易策略回测,供量化研究者及评估人工或 AI Agent 策略的团队使用。它检查未来数据泄漏、交易成本和过拟合,并提供判定、检查依据及可复现证书。

主要功能

  1. 01未来数据泄漏探测与静态检查
  2. 02交易成本和滑点检查
  3. 03Sharpe 与多重检验分析
  4. 04滚动前推与锁箱测试
  5. 05策略修复与 Alpha 就绪度评估
  6. 06可复现的验证证书

适用场景

  1. 01投资前审计 Agent 编写的回测
  2. 02检查策略扣除交易成本后是否仍有效
  3. 03为研究委员会评估排序信号
  4. 04对照回测监控实盘收益

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"neozork-monte-neo": {
"command": "uvx",
"args": [
"monte-neo"
]
}
}
}
启动命令uvx monte-neo

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimonte-neo0.54.0

工具

17

收录的工具列表 · 更新于 1 周前

参数类型必填说明
jobsinteger否
claimany否
ledgerboolean否
sl_pctnumber否
tp_pctnumber否
compactboolean否
isolateboolean否
repaintstring否
timeoutnumber否
n_trialsany否
positionsstring否
side_modeany否
trail_pctnumber否
ohlcv_pathstring是
warmup_barsany否
registrationany否
signals_pathany否
slippage_bpsnumber否
symbol_costsany否
signal_timingstring否
strategy_pathany否
commission_bpsnumber否
borrow_bps_per_barnumber否
funding_bps_per_barnumber否

详细介绍

Monte-Neo 标志

Monte-Neo:为 AI Agent 和人类编写的交易策略提供独立验证

为 AI Agent 和人类编写的交易策略提供独立验证。
在回测触及你的资金之前,发现前视偏差、隐藏交易成本和过拟合。

PyPI 版本 总下载量 每月下载量 Python 版本 持续集成 MIT 许可证
MCP 注册表 已通过 Claude Code 和 Qwen Code(本地版)测试 GitHub 星标数

文档 · 快速开始 · 在 Agent 中使用 · 验证器 API · 陷阱套件 · 更新日志

它在你的回测中发现了数据泄漏吗? 为此仓库点星,让其他量化从业者和 Agent 构建者也能找到它, 或者告诉我们它漏掉了什么。


问题

编码 Agent 可以在几分钟内把一个交易想法转化为回测,然后告诉你该策略年回报率为 40%,夏普比率为 3。大多数时候,这个数字都是错的,原因通常不外乎以下几种:

  • 前视偏差。 代码读取了未来的 K 线:shift(-1)、居中窗口、bfill、对整个序列进行统计、np.gradient、FFT 滤波器。
  • 成本缺失。 策略优势小于手续费和滑点,或者成交延后一根 K 线后优势就消失了。
  • 选择偏差。 Agent 尝试了 300 种变体,却把表现最好的一种当作唯一尝试过的策略来报告。

回测库会运行你提供的任何代码,却没有一个会告诉你回测本身有问题。

解决方案

Monte-Neo 检查的是回测,而不是创意。 提供价格数据和策略代码 或策略持仓。它会给出四种判定之一、判定依据、具体的后续步骤,以及可复现、可选择签名的证书。

monte-neo verify 拒绝了存在信息泄漏的 Agent 策略,Agent 修复了它,随后给出了如实的判定

Agent 的策略使用了 shift(-1),因此提前知道了下一次收盘价。Monte-Neo 通过四种独立方式发现了信息泄漏,并指出了对应代码行。修复后,不再存在前视偏差,验证器也如实给出结论:在随机游走中,该策略扣除成本后没有优势。

同一次运行也可以生成供人阅读的报告(--html report.html:单个文件,无脚本、无网络):

被拒绝策略的 HTML 报告:一句话判定、每类检查的卡片、摘要、与买入并持有策略对比的权益曲线、回撤和收益分布

报告集中还有更多报告,包括诚实策略和参数搜索报告。

首次运行的文本输出
$ monte-neo verify --ohlcv prices.csv --strategy agent_strategy.py --n-trials 40
REJECT  certificate 7f0603b0e604bea5
  check                    category    status  summary
  data_integrity           integrity   pass    OHLCV is clean
  lookahead_truncation     lookahead   fail    truncation probe: LEAK DETECTED
  lookahead_perturbation   lookahead   fail    future-perturbation probe: LEAK DETECTED
  lookahead_static_lint    lookahead   fail    static lint: negative_shift
  implausible_accuracy     lookahead   fail    next-bar hit rate 1.000 over 2999 bars (z 54.8)
  net_profitability        economics   fail    net total return -64.97% after costs
  deflated_sharpe          statistics  fail    deflated Sharpe 0.000 over 40 trial(s)
  ...                                          (16 more checks)
→ The signal at bar t changes when later bars are removed: compute features only from rows <= t
  (no shift(-k), centered windows, bfill or full-sample stats).
→ Fix the flagged source lines (negative shift, center=True, backward fill) and re-run verify. Lines: 6.

本次运行使用了合成随机游走数据;输出已缩短。

判定含义CLI 退出代码
PASS未发现问题0
PASS_WITH_WARNINGS可以使用;请阅读警告0
NEEDS_MORE_EVIDENCE交易次数过少,或 Sharpe 未能经受住尝试变体数量的考验1
REJECT回测存在问题,或扣除成本后亏损2

v0.53 新增:从被拒绝的回测到评审委员会

修复策略,但不让它过拟合

monte-neo repair:修复信息泄漏后不再有优势;平滑嘈杂的趋势信号后,在仅开启一次的锁箱数据上仍有收益;未设定随机种子的策略无法修复

monte-neo repair --demo
monte-neo repair --ohlcv data.csv --strategy my_strategy.py --out repair/

优化器会最大化收益,因此会过拟合。repair 则会尽量减少缺陷。它首先修正前视偏差和重绘问题。然后,它从一份简短的预先声明修复方案列表中(平滑、持有期、无交易区间、分批建仓、中性化、上限、波动率目标)进行选择,使用历史数据中最早的 70 %,依据剩余缺陷数量做选择,绝不依据收益,并将每个候选方案都计为一次试验。最后的 30 % 是锁箱数据,只能开启一次。

共有四种结果:

  • REPAIRED:在策略选择过程中从未见过的数据上,该策略扣除成本后仍有收益,且未被拒绝(锁箱仍可能要求更多证据,例如更多交易)。
  • REPAIRED_NO_EDGE:缺陷已消除,利润也随之消失,因为利润正是来自缺陷。
  • NOT_REPAIRABLE:需要你自行处理。
  • NOTHING_TO_REPAIR:目录中没有可修复的问题。

原始文件不会被改动。在随机游走中,Trap Suite 中存在信息泄漏的 68 个策略,没有一个会得到 REPAIRED 结果。指南。

是 Alpha 吗?面向委员会的 Alpha 就绪等级
monte-neo alpha --demo --aum 2e5
monte-neo alpha --ohlcv universe.csv --scores scores.csv --aum 5e7 --book book.csv --n-trials 40

排名信号要通过基金研究委员会在拨付资金前进行的检查:

  • 信号强度:排名 IC、衰减、分位数、安慰剂得分;
  • 归因:这是 Alpha,还是换了个新名称的动量和做空波动率?
  • 对你的投资组合的价值:边际夏普比率;
  • 可实施性:按你的资金规模计算的平方根冲击、容量、做空部分、再平衡日;
  • 稳健性:子集、起始日期、自助法市场;
  • 数据与流程:当日指数成分、交易所收盘时间不匹配、发布后的衰减;
  • 多重检验:t ≥ 3 的门槛、最低回测长度;
  • 风险:明确列出的危机、尾部风险。

最终结果会汇总为一行,例如 ARL 6/9 — blocked at 7: tradable and robust (rebalance_timing_luck)。 缺少证据即为“未评估”,绝不视为通过。指南。

模型风险委员会可归档的证据
monte-neo dossier --certificate cert.json --framework sr11-7 --name "Momentum 20" --owner "Desk A"
monte-neo monitor --certificate cert.json --live live.csv        # after launch: is the alpha dead?

验证档案是一个包含以下内容的文件夹:

  • 一页可打印文档:摘要、检查项、就绪等级、假设与限制、复现方法、签字栏;
  • 对照 SR 11-7、PRA SS1/23、MiFID II RTS 6、加密货币检查清单或学术附录的条款映射;
  • 证书和环境。

映射展示的是证据,而非合规性。monitor 会将实时收益与回测进行比较,衡量实际滑点,并在优势消失时发出序贯警报。 指南。

机器学习、大模型信号、事件和业绩记录
  • fit / predict。 定义 fit(train) 和 predict(model, df),而非 signal(df)。验证器只会用过去的数据重新拟合;ml_refit_gap 会拒绝那些利润来自在整个文件上拟合的模型。
  • --model-cutoff 2024-06。 如果优势只在语言模型训练截止日期之前存在,那就是通过模型记忆进行前视。
  • --events events.csv。 新闻、财报或大模型输出会按发布时间进行关联。报告会显示按事件发生时间关联本可获得的收益。
  • verify --returns manager.csv。 仅根据收益进行尽职调查:平滑处理、遗漏小额亏损、可信度存疑的一致性,以及结合该管理人基金数量评估显著性。
  • verify --legs legs.csv 和 --null-test pairs.py:pnl。 识别配对交易和统计套利策略中的虚假利润:即使在相互独立的随机游走中,以滚动对冲比率计算的仓位乘以价差变化,也会产生交易者无法获得的利润。--legs 会根据各交易腿的持仓数量重新推导盈亏,并拒绝交易腿从未实现的报告收益(同时写入修正后的序列);--null-test 会在随机游走上运行策略,此时策略不应产生任何收益。试试 monte-neo verify --demo-phantom。
  • 你所在机构的规则和历史记录。 --policy policy.toml 会应用你的阈值并将其记录在证书中。--trials-from mlflow:./mlruns(Optuna、W&B、Ray Tune 也适用)会统计你已记录的运行次数。共享驱动器上的 --ledger 会统计整个团队的尝试次数。
  • 你已经使用的工具。 在 Jupyter 中使用 %%verify,以 Polars 数据帧作为输入,并使用 monte-neo dossier --lite 为不看夏普比率的人生成一页通俗易懂的摘要。
  • 机器学习代码的另外两条 lint 规则。 full_sample_transform(在所有行上拟合的缩放器或 PCA)和 target_encoding_full(计算所有行的目标均值并映射回特征)。

指南:机器学习与事件 · 业绩记录 · 配对策略中的虚假利润 · 策略、试验、模型截止日期 · 参考 Alpha。

捕捉隐藏在毫秒中的前视偏差

monte-neo verify --quotes:一种快速策略按交易所时间计算收益为 +191%,按到达时间计算则亏损 23%;一种缓慢而诚实的策略则保住了利润

问题所在。 一条报价有两个时间:交易所为它打上时间戳的时刻,以及它到达你这里的时刻。大多数日内报价回测会按时间戳对报价分桶,因此快速策略会用尚未能看到的价格进行交易。代码检查工具找不出这个问题:泄漏在时钟里,而不在代码里。

Monte-Neo 的功能(monte-neo verify --quotes quotes.csv --strategy my_strategy.py):

  • 到达时间前视偏差。 同一策略会根据到达时间构建的 K 线进行交易,并与市场对赌。如果利润只在零延迟时存在,那就是毫秒级的泄漏。
  • 利润消失时的延迟。 一个可以据此采取行动的数字:“额外延迟达到 38 ms 时,利润就会消失”。
  • 延迟蒙特卡洛。 根据你实际观测到的延迟(在各自的交易场所内),重新抽取每条报价的延迟,进行 200 次带种子的抽样,得到收益分布和亏损概率。它能显示利润是否只是延迟带来的侥幸。
  • 订单延迟。 --order-latency-ms 会延迟每次成交,因此依赖即时执行的优势会被否决。
  • 没有靠近交易所的服务器? --latency-model lognormal:8,25 会假设延迟(中位数和 p95,单位为 ms),而不是读取实际延迟;证书会明确说明这是假设值,而非测量值。
  • 一个策略使用多个数据流。 --symbol 和 --feeds 支持策略根据另一种工具的价格交易一种工具(领先—滞后、期货对现货);每个数据流都有自己的延迟。若领先数据在跟随数据变动后才到达,就能被发现。
  • 也会探测前视偏差。 verify_strategy 的截断和扰动探测会对到达时间 K 线运行,因此会否决读取下一根 K 线(shift(-1))的策略:这种泄漏在任何时钟下都存在。
  • 报价质量。 交叉报价、负延迟、乱序到达和突发延迟:拥堵路径(VPN、Wi-Fi)会滞留消息,再成批释放;检查结果会指出这一点,而不会把你的网络状况误报为策略结果。
  • 证书。 证书经过签名,并且和其他证书一样,可通过 --recheck 复现。
$ monte-neo verify --demo-quotes     # no files: a fast strategy and an honest one
$ python -m monte_neo.data.quote_recorder --symbol BTCUSDT --seconds 600 --out quotes.csv   # your own latency

它的独特之处:它是一次审计,而不是一种环境。它会接收来自任意来源的成品策略(任何 signal(df) 函数,或 Agent 编写的代码)以及你自己的报价记录,并判断利润能否经受数据实际到达时间的考验,同时生成他人也能复现的证书。策略无需针对特定引擎编写。

适用范围说明:这是实验性功能。延迟检查仅供参考(最多为 warn),且基于合成数据校准,因此请在实际交易的机器上记录真实延迟,或声明假设的延迟,并将判定结果视为以该假设为条件。成交按市价单在中间价执行,延迟包括报价数据延迟(实测或假设)和固定订单延迟。本功能有意不对队列位置和部分成交建模(这需要订单簿和被动订单模型;粗略公式会造成虚假的精确性),因此无法在此验证做市策略;证书会列出这些假设。 阅读指南。

诚实地搜索指标

monte-neo discover --ohlcv data.csv --out found/

尝试数千种因果公式,统计搜索次数,并在打乱的市场数据和锁箱数据上进行测试,最后为胜出者生成证书。在随机游走数据上,它不会选出任何指标(校准测试中 60 次搜索有 0 次选出指标),而普通搜索却会报告高于 6 的夏普比率。 参见指南。

工作流的其余部分

  • verify --ledger 会统计你尝试的每个变体;verify --suggest-fix 会将泄漏改写为差异 (指南)。
  • 信号不得重绘:已显示的信号若发生变化,就会验证失败;需要使用该柱自身价格的信号也会被报告 (指南)。
  • history、register、oracle、portfolio、doctor:带回归退出代码的证书历史、预先注册的假设、面向 Agent 的 Thresholdout 留出集、同时运行多种策略,以及数据导出中的已知问题 (指南)。
  • 诚信评分卡展示验证器捕获泄漏和放过诚信策略的频率(假设动物园,包含区间和已知缺口)。

检查内容

类别检查项
前视偏差截断探测(移除后续柱后,第 t 根柱是否发生变化?)、未来扰动探测、外部数据监控(策略读取的文件或网络数据)、静态 AST lint(23 条规则)、不合常理的命中率
经济性扣除佣金和滑点后的净收益(可选计入资金费用、做空借贷费用、柱内止损和按品种计算的成本,适用于品种组合)、盈亏平衡成本(基点)、一柱和两柱的执行延迟、根据高低价估算的价差与建模成本的比较、根据成交量估算的容量(适用于品种组合,并标出流动性最差的品种)
统计按 n_trials 计入价格的概率夏普比率和 Deflated Sharpe、蒙特卡洛时序测试(信号表现是否胜过其移位副本,还是只是在跟随市场?)、样本量、留出集一致性、自助法置信区间、最低跟踪记录长度以及六个等长窗口各自的结果;对于网格搜索,还会进行前向滚动样本外测试、参数平台测试、回测过拟合概率(PBO)和 Reality Check / SPA 检查
完整性OHLCV 数据异常(NaN、错误价格、柱时间顺序错误)、导致虚假盈利的坏数据(单柱尖峰、价格冻结、未调整拆股、时间缺口)、非确定性信号、品种组合中的幸存者偏差
延迟(报价)到达时间前视偏差(按交易所时间而非到达时间计算盈利)、利润消失时的延迟(毫秒)、基于观测到的延迟分布进行蒙特卡洛测试、订单延迟、报价质量(包括突发延迟)。指南
声明--claim:报告的夏普比率、收益率、回撤和交易次数,并与验证后的数值对比(夸大声明会导致验证失败)
背景使用相同数据和成本的买入并持有策略、按年/季度/月及市场状态划分的结果,以及某个时期贡献全部利润时发出的警告

每条规则都有 陷阱套件作为依据: 其中包含 80 个已知会说谎的策略和 35 个诚信对照策略。每次构建都会运行该套件,因此验证器不会悄悄停止捕获泄漏,也不会开始误判诚信代码。

与其他工具的区别

工具类型功能Monte-Neo 的额外功能
绩效报告库根据收益序列生成图表和比率检查收益背后的回测是否有问题,为尝试过的变体数量定价,并颁发证书
回测框架运行交给它们的任意策略代码对结果提供独立的第二意见;适配 vectorbt、Backtrader、backtesting.py、bt、Nautilus Trader、Zipline、Freqtrade、Lean 和普通成交记录(前六种已针对实际框架进行测试)
回测中的延迟模拟针对为该环境编写的策略,在回测运行时模拟行情和订单延迟使用你自己的报价记录,审计来自任意来源的已完成策略:利润在哪里消失、针对真实延迟分布进行蒙特卡洛模拟,并提供签名证书
单个框架内的前视检查器针对该框架的策略,比较截断数据上的指标值适用于任意策略函数或持仓,并增加成本、选择偏差和声明检查
统计库(Deflated Sharpe、PBO)需要自行连接公式完整工作流:探针、引擎、统计、报告、证书和 Agent 工具

适用场景

你是……使用 Monte-Neo 来……
使用编码 Agent 构建策略(已使用 Claude Code 和本地 Qwen Code 测试)让 Agent 在报告结果前验证自己的回测,并修复它能修复的问题。MCP 服务和 Claude Code 插件会自动完成此操作。
运行策略仓库添加 GitHub Action。如果拉取请求中的回测存在数据泄漏,或计入成本后亏损,CI 就会失败,并将判定结果作为 PR 评论发布。
量化研究员、审查人员或资产配置者用一条命令,结合对方的数据和代码,检查别人发给你的策略。重新检查或验证对方提供的证书签名。
自营交易公司、策略市场或交易课程在人工审查前筛选提交的策略。在上架策略旁发布签名证书。
基金研究委员会或模型风险团队要求提供 alpha 报告和验证档案:因子归因、容量、就绪级别、与 SR 11-7、SS1/23 或 RTS 6 的条款映射,以及可复现的证书。
资产配置者或基金中的基金仅根据收益筛选管理人的业绩记录,每次处理一个文件夹(verify --returns-dir)。
比较 Agent 的研究人员运行 Honesty Bench:为每个 Agent 执行相同任务,并按各 Agent 声称存在实际并不存在的利润的频率评分。

为什么选择 Monte-Neo

  • 独立验证。 它会检查自己没有编写的代码,并使用不信任策略自身数据的探针。
  • 谨慎指控。 在每次构建中,35 个诚实策略(循环、窗口、重采样、滚动窗口内的拟合,以及命中率高且确有优势的策略)都绝不能被误判为存在前视偏差。
  • 修复而不过拟合。 repair 会根据缺陷数量选择要修复的缺陷,统计每次尝试并交由锁箱判定;如果盈利本身就是缺陷,也会如实说明。
  • 为 Agent 打造。 一个包含 23 个工具的 MCP 服务;一个包含技能、斜杠命令和提醒钩子的 Claude Code 插件;以及适用于 Codex、Gemini CLI、Cursor 和 Qwen Code 的规则。每项未通过的检查都会返回 Agent 可以执行的 next_action。
  • 机构级证据。 包含就绪级别的 Alpha 报告、映射到模型风险框架的验证档案、实时监控,以及记录在每份证书中的自定义策略。
  • 考虑时间因素。 它会检查盈利能否经受报价实际到达所需的时间,而不只是交易所加盖时间戳的时间。
  • 可复现。 相同的数据、代码和 n_trials 始终会生成相同的 certificate_id。任何人都可以使用 --recheck 复现证书。
  • 经过签名。 Ed25519 签名会显示证书的签发者,并证明证书未被篡改。
  • 如实处理选择偏差。 声明你尝试过多少种变体,或者让 verify_grid 为你统计。Deflated Sharpe 会将其纳入计算。
  • 本地且私密。 你的数据和代码绝不会离开你的计算机。采用 MIT 许可。

快速开始

pip install monte-neo
monte-neo verify --demo      # no files needed: a strategy that peeks at tomorrow's close is rejected
monte-neo init-ci            # write a GitHub Actions workflow that verifies your strategy on every pull request

命令行

monte-neo verify --ohlcv btc_1h.csv --strategy my_strategy.py --n-trials 12 --out verdict.json

my_strategy.py 定义 signal(df),它会为每根柱返回一个仓位:+1 表示做多,0 表示空仓, -1 表示做空,或返回类似 0.5 的权重(半仓做多)。在第 t 根柱上决定的仓位 会在第 t + 1 根柱的开盘时成交。

def signal(df):
    fast = df["close"].rolling(20).mean()
    slow = df["close"].rolling(80).mean()
    return (fast > slow).astype(int)

Python

from monte_neo.verify import verify_strategy

report = verify_strategy("btc_1h.csv", strategy="my_strategy.py", n_trials=12)
print(report["verdict"], report["next_actions"])

诚实统计试验次数的参数搜索

monte-neo verify --ohlcv btc_1h.csv --strategy sma.py --grid '{"fast": [10, 20], "slow": [80, 120]}'

多个交易品种,以及面向读者的报告

# universe.csv: timestamp, symbol, open, high, low, close; signal(df) returns a weight per row
monte-neo verify --ohlcv universe.csv --strategy xs_momentum.py --html report.html

HTML 报告是一份不含脚本的单文件摘要报告,内容包括:用一句话说明判定理由、与买入并持有策略对比的对数刻度权益曲线、回撤、滚动 Sharpe、月度热力图、时序测试、对成本的敏感度、交易统计、泄漏证据(柱和源代码行)、每项检查、按时期和市场状态划分的结果,以及用于复现运行的哈希值。可以在浏览器中打印为 PDF。请参阅示例报告。

在编码 Agent 中使用

Claude Code(包含 MCP 服务、verify-strategy 技能和 /verify 的插件):

/plugin marketplace add NeoZorK/Monte-Neo
/plugin install monte-neo@monte-neo

任何 MCP 客户端(Codex、Gemini CLI、Cursor 等):

uvx monte-neo mcp

它也已列入官方 MCP Registry,名称为 io.github.NeoZorK/monte-neo。各客户端的设置说明:在 Agent 中使用。

测试情况。 维护者已使用 Claude Code 和本地模型上的 Qwen Code运行该服务。 Codex、Gemini CLI、Cursor 和其他 MCP 客户端使用相同的服务和规则,但目前还没有人报告运行结果。 如果你使用其中任一客户端,花 10 分钟测试会很有帮助:issue #114。

本地 Agent(Qwen Code,或通过 Ollama、LM Studio 或 llama.cpp 在你的机器上运行模型的任何终端 Agent):

qwen mcp add monte-neo uvx --from "monte-neo[mcp]>=0.53.0" monte-neo-mcp

qwen-code 也是 monte-neo bench run 的内置 Agent,因此你可以评估本地模型的诚实程度。 小型模型经常无法通过基准测试任务;这是模型本身的问题,而不是验证器的问题。 设置、--base-url 和故障排除说明:本地 Agent。

MCP 工具(23 个):verify_strategy、verify_grid、verify_quotes、verify_portfolio、verify_returns、verify_legs、validate_alpha、repair_strategy、build_dossier、monitor_live、probe_lookahead、 cost_stress、recheck_certificate、check_signature、render_report、suggest_fix、discover_indicator、 register_hypothesis、compare_certificates、holdout_query、diagnose_data、verdict_schema、verifier_manifest。

GitHub Action

- uses: NeoZorK/[email protected]
  with:
    ohlcv: data/btc_1h.csv
    strategy: strategies/momentum.py
    n-trials: "12"
    comment: "true"                                        # post the verdict on the pull request
    signing-key: ${{ secrets.MONTE_NEO_SIGNING_KEY }}      # optional: sign the certificate
    upload-certificate: "true"                             # optional: keep it as a workflow artifact

当结果为 REJECT 时,作业会失败。判定结果和每项检查都会显示在步骤摘要中。

可供检查的证书

每次运行都会生成一个 strategy-verdict/1 JSON 证书,其中包含判定结果、每项检查、 指标,以及数据、信号和代码的 SHA-256 哈希值。

monte-neo verify --recheck verdict.json --ohlcv btc_1h.csv --strategy my_strategy.py  # reproduce it
pip install "monte-neo[sign]"
monte-neo verify --keygen issuer                                  # issuer.key + issuer.pub
monte-neo verify --ohlcv btc_1h.csv --strategy my_strategy.py --sign issuer.key --out verdict.json
monte-neo verify --check-signature verdict.json --public-key issuer.pub

展示策略已通过验证:

Verified by Monte-Neo

[![Verified by Monte-Neo](https://img.shields.io/badge/verified%20by-Monte--Neo-2ea44f)](https://github.com/NeoZorK/Monte-Neo)

将徽章链接到验证页面,并附上你的证书和公钥 (/verify/?cert=<https URL>&key=ed25519:<key>)。读者只需点击一次,即可在浏览器中检查签名;不会上传任何内容。

安装选项

pip install monte-neo              # verifier, CLI and MCP server
pip install "monte-neo[sign]"      # + Ed25519 certificate signing
pip install "monte-neo[parquet]"   # + read .parquet tables
pip install "monte-neo[research]"  # + interactive research CLI
pip install "monte-neo[plot]"      # + charts
pip install "monte-neo[apple]"     # + Metal / MLX research engine (Apple Silicon)
pip install "monte-neo[full]"      # everything

macOS 或 Linux 上的 Python 3.11+。

研究引擎(考虑手续费的 K 线回测、参数扫描、蒙特卡洛)

Monte-Neo 最初是为 Apple Silicon 打造的快速本地研究引擎,验证器也运行在其上。 该引擎仍可使用,但目前处于维护模式:仅修复 Bug。

from monte_neo.backtest import ExecutionModel, export_sma_sweep, synthetic_ohlcv

ohlc = synthetic_ohlcv(100_000, seed=42)
model = ExecutionModel(commission_bps=5.0, slippage_bps=5.0, warmup_bars=50)
out = export_sma_sweep(ohlc["open"], ohlc["high"], ohlc["low"], ohlc["close"], combos=16, model=model, device="auto")
print(out["device"], out["combos"])
  • 下一根 K 线成交、以 bps 计的成本、止损 / 止盈 / 移动止损、资金费率、交易时段
  • 导出 API,支持黄金向量、留出集、滚动前向验证、CSCV/PBO 和蒙特卡洛辅助工具
  • Metal / MLX / Numba 设备选择,配有内存规划器;在无法使用时会回退到 CPU,而不是卡死
  • 用于事件级验证的 Paper OMS

文档:快速入门 · 导出 API · 回测引擎

帮助项目

Monte-Neo 免费且采用 MIT 许可证,并以开源方式开发。如果它帮你避免了一次糟糕的回测,以下三件事最有帮助:

  • 为仓库点 Star:GitHub。量化从业者和 Agent 构建者通过 Star 发现验证器。
  • 告诉我们它捕获或漏掉了什么案例:在 Discussions 中分享, 或提交一个包含最小策略文件的问题。 漏检的漏洞会成为新的 Trap Suite 案例。
  • 将徽章添加到你的策略仓库(参见上文的证书徽章部分),让读者知道该结果已经过验证。

项目状态

Monte-Neo 正在积极开发中(Beta 版)。验证器 API 和 strategy-verdict/1 架构在次要版本之间保持稳定。请参阅 路线图。

非投资建议。 Monte-Neo 是一款研究和验证工具。其报告、示例和参考策略用于说明一种方法;它们不是买入、卖出或交易任何金融工具的建议、要约或号召,也不保证盈利。模拟结果和过往结果不能预测未来回报。交易可能造成亏损;使用杠杆时,亏损金额甚至可能超过初始资金。决策及其后果由你自行承担;如需建议,请咨询持牌顾问。

贡献

发现回测或你的 Agent 欺骗你的方式?将其作为陷阱提交。 验证器是否误判了诚实的策略?报告误判。 欢迎提交 Bug 报告和拉取请求;请参阅 贡献指南。 请私下报告安全问题:SECURITY.md。

引用

该方法详见技术说明。

如果 Monte-Neo 对你的研究有所帮助,请引用它。GitHub 会在 引用此仓库下显示引用信息(CITATION.cff)。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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