市场设计

策略「编译二进制」授权:设计空间

卖源码风险高,纯托管 SaaS 又太重;围绕「可编译二进制 + 卖方自定义许可边界」才是 PineForge 市场的路径——这篇写清设计推演。

约 8 分钟阅读#marketplace#licensing#design

策略作者想在不出让源代码的前提下变现; 买方想用自己的数据回测、在自己的券商侧运行。 这两项需求确实存在张力, 而眼下多数做法把这种张力处理得很糟。 本文梳理我们在确定采用「编译二进制 + 许可边界」作为 PineForge 交易市场底座之前, 所探索过的设计空间。

把问题说清楚

作者做出了能用的东西:花数月调参、修边角案例、 做样本外验证,然后想出售。 买方则想在自己的数据上运行, 核实回测是否与作者宣称一致, 并接入自己的执行链路。

作者一旦交出源代码,变现基本结束: 买方可无限期运行、随意改写、再卖给他人; 作者只赚到一单,此后每位买家都是流失的潜在客户。

作者一旦攥紧源代码,买方就失去了核实、 微调或建立信任的手段,相当于订阅黑盒; 作者服务器一挂,交易就停。

业界常见的两条路径都想绕过这一矛盾, 但各自的失灵模式也早有记录。

模式一:卖源码

作者直接出售 Pine 脚本, 一次性付款换来 .pine 文件。

买方收益真实存在:完全访问、完全可验证、 完全可控——任意数据回测、可调参数、 永久独立于卖方运行。

卖方代价同样真实:源码交割后不再有持续抓手; 防拷贝只能靠买方自觉; 策略可被搬到其他平台二次上架、改头换面出售, 或被无偿扩散; 收入上限大致等于愿意付费的「诚实首购」人数。

适合把简单省事看得比持续收入更重要的作者; 不适合策略确有长期价值、希望多年保护的作者。

模式二:卖信号

作者自己跑策略,把入场、出场、 仓位等信号推到订阅流;源码始终不离开作者掌控。

卖方好处:源码彻底保密、订阅收入可持续、 没有「一单拿走全部价值」的交易。

买方代价很重:无法用自有数据回测策略; 只能相信作者宣称的历史表现; 完全依赖作者基础设施——放假、宕机或关停, 买方手里什么都没有;也无法调参, 只能接收作者设定的那一套。

信号服务适合完全没有能力自建运行的买方; 对希望理解自己在跑什么、 并独立核实的技术型买方而言, 这条路径几乎无从起步。

模式三:卖编译产物

第三条路径是 PineForge 交易市场的核心: Pine 策略编译为共享库(Linux 为 .so, macOS 为 .dylib)。 作者分发二进制,而非源码。买方在自有机器上, 通过开源的 PineForge 运行时, 用自有OHLCV 数据驱动该二进制。

这在张力两侧同时发力:

对作者: 源码不离开本机。二进制由 Pine 脚本编译而来,但把已编译的 .so 还原成可读 Pine 需要大量投入——即便还原, 也只能得到汇编级输出,而非地道 Pine; 核心逻辑在实务上受到保护。

对买方: 回测在本地、用自有数据完成;执行走自有券商对接;开源运行时可审计——注重安全的买方读不了策略本身, 但能读驱动资金的代码;回测本身不依赖卖方服务器。

这对 PineForge 并非新发明。 MetaTrader 4/5 生态自约 2012年 MQL5 Market 上线起就是这样运转: 策略编译为 .ex5,经市场以账户锁定、 时限许可分发; 买方在 MetaTrader策略测试仪本地回测, 源码留在开发者侧——这是经大规模验证的模型。

我们把同一 playbook 用在 Pine 上, 并补两点:更细的许可旋钮(见下), 以及运行时为开源, 任何人都能审计真正执行交易的那一层。

许可维度

没有许可框架的编译二进制只是可复制文件; 许可层才让商业模式成立。

PineForge 的卖方工具暴露六个许可维度:

时限。 许可有过期日——自购买起算的天、 周或月。到期后二进制停止执行策略;买方可续费, 卖方获得持续收入。这是最常用的维度, 市场里几乎所有策略都会用到。

机器绑定。 许可与硬件指纹绑定; 买方只能在登记过的机器上运行, 不能在第二台或云实例上跑, 从而降低「转手二进制」的价值——接收方机器没有有效许可。 更担心规模化盗版而非随手分享的作者可启用。

**券商绑定。 ** 许可规定策略允许对接哪些券商集成。 与特定券商 API 合作的卖方, 可把执行限制在这些集成上, 避免在不支持或不希望出现的执行场所使用。

品种绑定。 许可限制可交易的代码。 在 BTC/USDT 上构建并验证过的作者, 可只放行该品种, 避免买方把为某一资产优化的策略硬套到完全不同资产上, 跑出意外结果再把锅甩给作者。

参数范围。 买方可以调参,但只能在卖方公布的范围内。例如回看窗口参数可能只允许 10–50 根 K 线: 低于 10(作者知道严重过拟合)或高于 50(失去意义)都不允许。 卖方公布区间,运行时强制。

**可吊销。 ** 许可服务器在下次周期性校验时可返回 403, 二进制随即停止执行。若买方违约——分享二进制、 在未授权硬件上运行——作者可吊销, 无需退款或漫长诉讼。吊销是核选项, 仅适用于明确违约。

我们刻意不做的事

**不搞 DRM 式障眼法。 ** .so 是真实编译产物; 有足够时间与工具,熟练工程师仍可逆向其逻辑, 我们不否认这一点。契约在许可,而非二进制格式; 保护来自买方同意的条款与运行时的许可执行, 而非「无法反汇编」。宣称二进制坚不可摧是不诚实。

**不在每次回测都「打电话回家」。 ** 校验是周期性的,不是每次调用。 运行在本地缓存有效许可,并按计划(可按许可配置, 默认每日)联系许可服务器; 在许可窗口内可离线回测。 我们不在每根 K 线上报——那会让回测依赖网络、 引入延迟,安全收益却甚微: 能截获一次校验的人也能截获一百次。

**不搞事后惊喜分成。 ** 市场抽成比例在上线前固定公布; 加入等候名单的卖方在上架前就知道条款。 我们见过产品上线后才披露佣金结构的市场——视为恶意, 我们不会这么做。

仍在推敲的开放问题

许可密钥泄露。 若买方机器被攻破、密钥被抽出怎么办?选项:(a) 吊销并为正当买方重发,带来中断; (b) 维护按买方轮换密钥的方案, 使每台机器实例有独立派生密钥, 一台失守不致拖累全体。我们倾向 (b), 但实现上的密钥管理并不轻松。

**范围之外还要卖方定义的默认值。 ** 「参数范围」维度公布每个参数的上下限; 卖方是否还应能公布 默认值——买方首次配置时看到的起始值?很可能需要: 明知 20 根回看最优的作者, 不该强迫买方试错摸索。默认值为建议性质,不强制。

**卖方发布的「演示回测」报告。 ** 购买前买方应能看到策略有效的证据, 而非仅有卖方自述。 当前计划是允许卖方按 /gallery 同一 schema, 用自有数据与 OHLCV 窗口发布画廊式回测报告; 报告将验证为在声明输入下由 PineForge 引擎产出。 买方看到真实成交列表、真实夏普、 真实迷你图——不是营销截图。 这是诚实版的「先看再买」。

与 open-core 的对齐

编译二进制市场的一个顾虑是: 买方资金的安全几乎完全依赖二进制执行器——很多实现里它是专有黑盒。 在 MetaTrader 里跑 .ex5, 等于信任MetaQuotes 的运行时及其「不会执行未披露行为」的保证。

PineForge 的运行时采用 Apache-2.0, 公开可从 ghcr.io/pineforge-4pass/pineforge-engine:latest 获取。 Codegen(把 Pine 编译为 C++ 的部分)是专有——商业护城河在那里。 但 执行器——真正用 OHLCV 驱动编译产物并产出成交列表的代码——是开源的。

注重安全的买方可以在托付回测之前审计执行器; 审计不了策略源码(这正是要点), 但能审计承载它的容器。分割是故意的: 触碰真金白银的部分开放;构成壁垒的部分封闭。

市场时间表

Beta 于 2026 年 Q4 启动, 卖方入驻手工审核——小规模受邀作者、 团队审核上架、为买方简化购买流程。 Beta 在真实成交上运行,但目录刻意收窄, 以便在放大规模前暴露集成问题。

2027 年开放完整自助市场:卖方可独立上架、 自行配置许可维度、发布演示回测报告、 在无团队介入下管理目录。

日程是务实预估,不是口号。 引擎与 codegen 今日已有;许可服务器、 卖方控制台与买方购买流程属于 2026 的建设项。

下一步

  • 加入卖方等候名单——若你在做希望上架的策略,登记后我们会在 Beta 入驻开放时联系你。
  • 今天就试用运行时——经 MCP 服务器的 backtest_pine 与市场策略将使用的执行器相同;若在 MCP 流程里正确工作,在市场上也会正确工作。
  • 获取早期访问——免费档每月 100 次 transpile,可在市场上线前构建并验证策略。