PineForge 全部 201 套优秀,PyneCore 137 套
按中位数计,比 PyneCore 快 36倍
点击或拖动图表,查看任一点的数值。
来源:summary.md,pineforge-engine 6b45f510,2026-09-29 的横评。
以表格形式查看图表数据
每套策略占一格,各条线上的顺序都相同:每一处下凹都是一套评级低于优秀的策略,凹得越深,评级越低。
| 评级 | PineForge | PyneCore |
|---|---|---|
| 优秀 | 201 | 137 |
| 良好 | 0 | 46 |
| 中等 | 0 | 12 |
| 偏弱 | 0 | 4 |
| 最弱 | 0 | 1 |
| 无交易列表 | 0 | 1 |
以表格形式查看图表数据
中间 90%:15倍 至 131倍
| 策略 | 加速比 |
|---|---|
| Anvil percent costs | 32倍 |
| VCP: Vol z-score anomaly | 36倍 |
| Dual stop source order short first | 23倍 |
| OBV EMA cross | 25倍 |
| 非公开社区脚本 101 | 73倍 |
| 非公开社区脚本 125 | 35倍 |
| 非公开社区脚本 150 | 29倍 |
| 非公开社区脚本 175 | 60倍 |
| 非公开社区脚本 201 | 49倍 |
测量方法
来源: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 在此之后发布,测速结果没有在该发布版上重新测量。查看完整基准测试。
评级的差异所在
- PineForge
- 优秀(57 / 57)
- PyneCore
- 良好(57 / 57)
mtf-triple-tf-macd-hist-confluence-01
多周期(request.security)
- PineForge
- 优秀(24 / 24)
- PyneCore
- 中等(22 / 22)
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