跳到正文

PineForge 全部 201 套优秀,PyneCore 137 套

按中位数计,比 PyneCore 快 36倍

优秀良好中等偏弱最弱无交易列表
公开测试集公开测试集:100 套策略非公开社区脚本非公开社区脚本:101 个,不列出名称

点击或拖动图表,查看任一点的数值。

来源:summary.md,pineforge-engine 6b45f510,2026-09-29 的横评。

以表格形式查看图表数据

每套策略占一格,各条线上的顺序都相同:每一处下凹都是一套评级低于优秀的策略,凹得越深,评级越低。

评级PineForgePyneCore
优秀201137
良好046
中等012
偏弱04
最弱01
无交易列表01
测量方法

来源:pineforge-engine 中的 benchmarks/results/summary.md,提交 6b45f510,即 2026-09-29 基于引擎 35db01c8、使用 PyneCore 6.10.3 的横评。引擎 v1.10.0 在此之后发布,评级档位没有在该发布版上重新测量。

本页所有数字都来自开源仓库 pineforge-engine 中的横评:201 套策略跑在同一份 53,929 根 K 线的 ETHUSDT 15 分钟行情数据上,每个引擎的交易都对照 TradingView 导出的交易列表评级。其中 100 套公开测试集策略可在全新克隆上用 bash benchmarks/run_all.sh 复现,无需 API 密钥。

评级档位沿用引擎 scripts/verify_corpus.py 中的标准评分规则。优秀:交易笔数相同,第 90 百分位的入场价和出场价偏差在 0.01% 以内、盈亏偏差在 1% 以内,且至少匹配 TradingView 99% 的交易。良好:交易笔数差异低于 6%,入场价偏差在 0.1% 以内,出场价偏差在 0.5% 以内,盈亏偏差在 100% 以内,且至少匹配 95%。使用 trail_* 出场的策略采用生产阈值:出场价偏差在 0.05% 以内,盈亏偏差在 100% 以内。中等、偏弱和最弱依次递减。对于优秀评级,当 TradingView 在完全相同的时间、价格和方向上显示两个或以上不同的入场 Signals 时,引擎也在该处显示相同数量的独立入场(独立入场识别)。

vectorbt: 有 vectorbt 手工移植版的 13 套策略. 优秀 4良好 6中等 2偏弱 1

每个标记代表在两个引擎上都完成计时的 200 套策略之一,按各自的精确加速比落在对数刻度上。 测速方法:PineForge 在进程内运行,用 Google Benchmark 计时,开启 K 线放大器;PyneCore 6.10.3 以子进程方式运行,因此其挂钟时间包含解释器启动时间。测试机为运行 Ubuntu 24.04 的 AWS c7a.8xlarge(AMD EPYC 9R14,32 核,关闭 SMT),每个计时进程都绑定到固定核心;引擎 35db01c8,2026-09-29,使用一份 53,929 根 K 线的 ETHUSDT 15 分钟行情数据。引擎 v1.10.0 在此之后发布,测速结果没有在该发布版上重新测量。查看完整基准测试。

评级的差异所在

  1. PineForge
    优秀(57 / 57)
    PyneCore
    良好(57 / 57)
  2. mtf-triple-tf-macd-hist-confluence-01

    多周期(request.security)

    PineForge
    优秀(24 / 24)
    PyneCore
    中等(22 / 22)
  3. ta-str-match-regex-filter-01

    str.match 正则过滤

    PineForge
    优秀(1,916 / 1,916)
    PyneCore
    偏弱(1,514 / 1,917)
测量方法

201 套策略中,PyneCore 6.10.3 有 63 套评级低于优秀,另有 1 套没有产出交易列表,因为 PyneSys 编译器拒绝了其源码。基准报告逐一追溯了原因。32 套只在盈亏(16 套)或只在交易笔数(16 套)上不达标,而它们的成交与 TradingView 一致:PyneCore 的券商模拟器从行情数据的第一根 K 线就开始交易,比 TradingView 的区间起点早了五个月,因此按权益百分比定仓会在 TradingView 从未有过的盈亏上继续复利;区间开始时已经持有的仓位,还会在区间边缘多出一笔交易。PyneCore 早先版本只能部分复现的 9 个多周期脚本中,request.security 的修复让其中 4 个升至优秀;另外 4 个仍只复现了 TradingView 历史的 41.6 至 91.7%。3 个网格机器人在按 FIFO 平仓时出现漂移,一个 str.match 正则过滤策略评为偏弱,其余的则在其他门槛上不达标。以下是公开测试集中的三个例子:

analyzer-parity-percent-of-equity-sizing-01: PyneCore 的成交与 TradingView 一致:按第 90 百分位计,入场价和出场价都吻合。它的盈亏在第 90 百分位相差 2.05%,原因是它的券商模拟器比 TradingView 的区间早五个月开始交易,按权益百分比定仓早已在 TradingView 从未有过的盈亏上复利累积。

mtf-triple-tf-macd-hist-confluence-01: TradingView 导出了 24 笔交易。PyneCore 产出 39 笔;两份列表共同覆盖的时间窗口内有 TradingView 的 22 笔交易,PyneCore 全部匹配,也就是复现了 TradingView 历史的 91.7%。PineForge 的 24 笔交易评级为优秀。

ta-str-match-regex-filter-01: 该策略用 str.match 过滤入场。在对比窗口内,PyneCore 产出 1,514 笔交易,TradingView 为 1,917 笔,笔数相差 21%,与 TradingView 交易的匹配率为 51.2%;PineForge 在其窗口内 1,916 笔全部匹配。

各引擎的适用场景

三个运行时都是开源的。PineForge 和 PyneCore 能运行使用 strategy.* 下单的策略;PineTS 自 0.9.17 起就提供了 strategy.* 命名空间,但横评所用的测试脚手架里没有 PineTS 的策略运行器,所以横评只用 PineTS 运行指标。只有 PineForge 会把策略编译为原生代码。PineForge 和 PineTS 在你自己的机器上转换 Pine;PyneCore 则通过 PyneSys 编译器(一项托管服务)转换。

PineForge

  • 需要拿到和 TradingView 一样的交易:横评的 201 套策略,PineForge 全部评为优秀。
  • 要跑大量回测:按中位数计,每套策略比 PyneCore 快 36倍(PineForge 在进程内计时,PyneCore 以子进程方式计时,含解释器启动时间)。
  • 想把引擎嵌入自己的系统:Apache-2.0 许可的 C++17 运行时,C ABI 稳定且只增不改。
  • 要从 AI 智能体发起回测:可用免费的托管 MCP 端点,也可用本地 Docker MCP 服务器跑你自己的数据。

PyneCore

  • 想用 Python 写策略:PyneCore 逐根 K 线运行 Pine 风格的 Python,同一份代码里就能用上 Python 的数据处理和机器学习库。
  • 需要指标和绘图数值:PyneCore 会计算这些值,而 PineForge 不绘制任何图形,并拒绝 indicator() 脚本。plot、表格、仅影响外观的 setter 和警报都能正常编译运行,但不会生效;line、box、label、linefill 和 chart.point 对象则以数据形式保留,供策略读取。
  • 想要 Apache-2.0 运行时,并且能接受通过 PyneSys 编译器(一项托管服务)来转换 Pine。PineForge 的引擎是 Apache-2.0,但转译器是源码可见的(自 codegen 1.3.0 起采用 PineForge Source License 1.2),并非 OSI 认可的开源软件。

复现横评

横评中公开的一半,即 100 套公开测试集策略,可在全新克隆上复现:所有输入都已提交到基准资产中,无需 API 密钥。另外 101 个非公开社区脚本不做再分发(受 TradingView 条款限制),因此这一半无法在 PineForge 之外重跑。

# 1. 克隆引擎和公开的基准资产
git clone https://github.com/pineforge-4pass/pineforge-engine.git
cd pineforge-engine
git submodule update --init benchmarks/assets

# 2. 安装其他引擎所需的 Python 和 Node 工具,然后构建
(cd benchmarks && uv sync --python 3.12 && npm install)
cmake -B build -S . -DPINEFORGE_BUILD_TESTS=ON -DPINEFORGE_BUILD_BENCH_STRATEGIES=ON -DPINEFORGE_BUILD_SPEED_BENCH=ON
cmake --build build --target pineforge bench_strategies pineforge_bench -j

# 3. 对照 TradingView 为每个引擎评级
SKIP_BUILD=1 SKIP_SPEED=1 JOBS=8 bash benchmarks/run_all.sh

# 4. 查看结果:本页统计数字背后的 100 行公开测试集数据
cat benchmarks/results/summary.md