永续合约系统设计(二):定价引擎

0 评论 173 浏览 0 收藏 30 分钟

永续合约系统的核心挑战在于如何在极端市场条件下维持秩序与偿付能力。定价引擎并非简单的价格计算器,而是决定哪些价格拥有清算权、资金费率计算权和保证金调整权的关键系统。本文将深度解析多层价格体系的设计逻辑,揭示Last Price、Index Price、Mark Price和Perp Price如何分工协作,以及资金费率公式背后的系统治理智慧。

在上一篇文章《永续合约系统设计(一):综述》提到:

永续合约真正要解决的,不是“让用户下单并成交”,而是:在高波动、高杠杆、高博弈、高噪声的环境里,持续维持市场秩序与系统偿付能力。这也是为什么成熟平台一定会把系统拆成几类核心引擎:定价引擎负责定义系统相信什么价格,流动性引擎负责把价格变成成交,平衡引擎通过资金费率把永续拉回锚点,风控引擎则在失衡时接管风险、切割亏损、避免系统被拖穿。

从这个角度看,Pricing Engine 从来不只是“算一个价格”的模块。它实际上在决定:平台究竟把哪一种价格视为真相,哪些价格只能展示、哪些价格可以清算、哪些价格可以进入资金费率、哪些价格有资格改变用户保证金状态。它管理的不是价格本身,而是价格的使用权。

所以,理解定价引擎,不是先背公式,而是先建立系统观:

在永续世界里,价格既是市场信号,也是风险指令;

既描述现实,也会塑造现实;

一旦把错误的价格赋予执行权,整套撮合、结算、清算链路就会变成对错误输入的高效放大器。

本文要讨论的,正是这套“价格秩序”如何被设计出来:为什么不能只相信最新成交价;为什么必须同时存在 Last、Index、Mark、Perp 几层现实;为什么资金费率不是附属收费项,而是主动纠偏机制;以及定价引擎里那些最关键的公式,到底分别在解决什么系统问题。

一、交易所为什么不能直接相信“自己看到的价格”?

如果只看交易页面,最自然的想法是:刚刚成交在什么价,系统就按什么价计算盈亏和爆仓,不就行了吗?

问题在于,“最新成交价”只适合描述刚刚发生了什么,不适合直接承担风险裁判职责。

原因有三层:

1. 最新成交价太“真实”,所以也太脆弱

它会忠实记录每一笔交易,不区分这笔成交是正常市场结果,还是薄盘口里的异常扫单。现货里,这种瞬时偏差可能只是图上多了一根针;永续里,如果系统直接拿它算未实现盈亏、保证金率和强平线,结果就不是“多一根针”,而是可能触发一连串自动执行动作。

2. 永续价格一旦进入风控链路,就不再是中性变量

在永续系统里,价格会直接驱动:

  • 未实现盈亏重估
  • 保证金水平变化
  • 强平触发
  • 资金费率结算
  • 保险基金承压
  • ADL 或减仓机制启动

这意味着价格不再只是“市场发生了什么”的记录,而是“系统要不要动用户资产”的信号。这样的信号如果直接建立在最容易被局部噪声扰动的输入上,系统就会非常脆弱。

3. 平台真正要解决的不是“现在成交在哪”,而是“什么价格有资格拿来动账”

这才是定价引擎的本质难点。

一个成熟平台不会问“哪个价格最真实”,而会问:

  • 哪个价格适合成交?
  • 哪个价格适合算盈亏?
  • 哪个价格适合做清算裁判?
  • 哪个价格适合进入 Funding?
  • 哪个价格只能展示,不能进风控?

因此,交易所不能只相信“自己看到的价格”,不是因为那个价格完全不真实,而是因为它只是真实的一部分:局部、瞬时、脆弱、容易被打穿,无法独自承担高杠杆系统中的裁判职责。

二、定价引擎真正管理的,不是价格本身,而是“价格的使用权”

很多人把 Pricing Engine 想成一个“价格生产器”,仿佛它只负责吐出一个尽量准确的数字。

更准确的理解是:它首先是一个价格使用权分配器。

同一个价格,用在不同场景,后果完全不同:

  • 用于行情展示,偏一点,用户最多觉得图不够顺
  • 用于成交参考,偏一点,影响的是滑点和成交体验
  • 用于 Funding,偏一点,会影响多空持仓成本
  • 用于强平判定,偏一点,影响的是保证金命运和系统坏账

所以,Pricing Engine 真正定义的是一套“价格宪法”:

  • 哪些价格有观察权
  • 哪些价格有行动权
  • 哪些价格可以影响图表
  • 哪些价格可以影响保证金
  • 哪些价格能触发清算
  • 哪些价格只能作为辅助信号存在

这也是为什么成熟永续系统的核心模块通常不是孤立存在,而是一条很强的因果链:

Pricing Engine 定义真相 → Liquidity Engine 生成成交事实 → Balancing Engine 通过 Funding 纠偏 → Risk Engine 根据裁判价格执行风控

如果最上游的定价逻辑失真,后面再强的撮合和风控,也只是在高效执行错误判断。

三、从 Last 到 Index,再到 Mark:为什么永续必须主动制造多层现实?

永续合约里的“价格”不是一个单数,而是一组分工明确的价格对象。最常见的至少有四类

  • Last Price:最新成交价
  • Index Price:外部现货聚合指数价
  • Mark Price:平台内部风险裁判价
  • Perp Price:此时此刻真实可成交的永续价格

这不是为了复杂而复杂,而是因为单一价格无法同时满足四种不同目标:描述、参考、裁判、执行

1. Last Price:记录市场刚刚发生了什么

Last Price 最符合用户直觉。它适合做:

  • 成交回报
  • K 线
  • 行情播报
  • 触发某些交易指令

但它不适合独自承担清算裁判。因为它太容易被局部薄深度、瞬时插针和异常成交影响。

2. Index Price:给系统一个更接近外部公允值的参考锚

Index Price 通常来自多个主流现货市场的聚合。它回答的是:

如果不看本平台本地盘口,只看更广泛的现货市场,这个资产大致值多少?

所以它通常会引入多源聚合、权重、异常值过滤、失效剔除等治理逻辑。它不是成交价,而是公允参考价

3. Mark Price:给风控和清算系统一个“可执行的裁判现实”

Mark Price 是最关键的一层。

它既不能太贴近最新成交价,否则容易被插针带偏;

又不能完全僵硬等于外部 Index,否则可能脱离本地可执行市场。

所以,Mark 的目标不是“最灵敏”,而是“最适合做裁判”。

它代表的是:

平台愿意拿什么价格,去动用户未实现盈亏、保证金和强平状态。

这也是为什么很多平台会在 Mark 设计上加入基差平滑、中值选择、或类似Median-of-Three的稳健逻辑。行业实现细节并不统一,但设计原则高度一致:风险系统依赖的价格,必须比交易价格更稳。

4. Perp Price:执行层真正关心的,是能不能成交、成交成本是多少

Perp Price 更接近撮合与流动性视角。它回答的是:

  • 现在买一笔,实际能吃到什么均价?
  • 卖一笔,能打到什么深度?
  • 大额订单冲击后,平均成交成本是多少?
  • 清算单进入市场后,订单簿能不能真正承接?

这提醒我们一个常被忽略的问题:

很多时候,不是 Mark 算错了,而是Mark 与可执行市场之间的距离过大。一旦理论裁判价和真实可成交价严重脱节,清算引擎、保险基金、ADL 压力都会急剧上升。

因此,成熟平台追求的从来不是“找到唯一正确的价格”,而是构造一套分层、分权、分用途的价格体系。

四、定价引擎里最重要的几类公式,到底在解决什么问题?

公式不是装饰。

在永续系统里,每一个核心公式背后,实际上都在解决一个具体的治理问题。

4.1 理论锚:永续价格为什么会围绕现货,而不是永远漂走?

永续没有交割日,因此不能像传统期货那样靠到期收敛。理论上,平台需要一种机制让永续价格持续被拉回现货附近,这个机制就是 Funding。

在较简化的无套利框架里,永续价格可以被写成一种“随机到期”的现货预期。一个常见表达是:

这个式子可以通俗理解为:

永续不是看某一个固定到期日的现货,而是在看“未来一串现货价格的加权平均”,而这个加权的衰减速度,由锚定强度k决定。

如果进一步做常数利率假设,可以得到更直观的闭式形式:

这个式子的直觉是:

  • k越大,说明 Funding 纠偏越强,永续越贴近现货
  • 融资利差越大,说明持有现货套利成本越高,永续偏离现货的空间也越大

所以,理论定价并不是在说“永续一定等于现货”,而是在说:

永续价格与现货之间的距离,取决于纠偏强度与持有成本的相对大小。

这为定价引擎提供了第一层理论锚:

如果没有足够强的纠偏机制,永续不会天然收敛。

4.2 深度感知:系统到底看盘口表层,还是看真实可成交深度?

这是 Impact Price、IMN 和 Premium Index 要解决的问题。

很多交易所不会直接拿 best bid / best ask 或最新成交价去判断永续相对现货偏离多少,而是先问:

如果我真的要按一个有代表性的规模去买或卖,订单簿会给出什么平均成交价?

这就引出了Impact Margin Notional(IMN),常见写法为:

它的直觉不是“200 美元有什么神奇”,而是:

平台要先设定一个具有代表性的冲击交易规模,再用这个规模去模拟订单簿上的真实吃单结果。

由此得到:

  • IBP(Impact Bid Price):按 IMN 规模卖出时的平均成交价
  • IAP(Impact Ask Price):按 IMN 规模买入时的平均成交价

为什么这很重要?

因为如果系统只看盘口表层,一点点挂单美化就可以伪造价格;

但如果系统模拟一个达到 IMN 的真实吃单,操纵者就必须提供更深的假流动性,成本会高很多。

所以,IMN 背后的真正问题不是“看多大金额”,而是:

平台承认什么样的深度,才算有资格进入价格治理。

4.3 Premium Index:系统如何判断“永续已经偏离现货”?

有了 IBP 和 IAP,平台就可以计算 Premium Index。常见公式是:

这个公式不是简单地“永续价减现货价”,而是在有代表性的冲击成交规模下,衡量永续相对现货的有效偏离。

它实际上做了三件事:

第一,它只承认有深度支撑的偏离

不是一笔小成交把价格打上去就算数,而是要看:

按 IMN 规模真的买卖后,盘口还能不能维持这种偏离。

第二,它区分“溢价”和“折价”

  • 如果冲击卖价 IBP 高于指数价,说明永续偏强,溢价为正
  • 如果冲击买价 IAP 低于指数价,说明永续偏弱,折价为负

第三,它天然对中间噪声不敏感

通过max(0, ·)的结构,平台不会把每一点微小的盘口噪声都解释成有效偏离。

只有真正跨过指数价并且在冲击规模下仍成立的偏离,才会进入后续 Funding 逻辑。

所以,这个公式本质上在回答:

平台究竟怎样把“价格偏离”改写成“真实流动性支持下的偏离”。

这是定价引擎抗操纵能力里极其关键的一步。

4.4 时间加权平均:为什么系统不能只相信某一个瞬间的偏离?

即使 Premium 算出来了,平台也通常不会直接拿某个时点的Pt去结算 Funding,而会做时间加权平均:

这背后的问题不是数学技巧,而是反馈速度控制

如果系统完全相信某一个瞬时 Premium:

  • Funding 会对短时噪声过度敏感
  • 结算会跳变
  • 交易者持仓成本不可预测
  • 平台反而会把微观噪声放大成宏观惩罚

如果系统平滑得过头:

  • 真正的结构性偏离又纠偏太慢
  • 永续可能长期脱锚
  • 极端单边市场里风险会越积越多

所以,时间加权平均解决的是一个控制问题:

如何在“过快误伤”和“过慢失控”之间找到平衡。

很多平台采用 8 小时 Funding 周期,不是随便选的,而是在交易体验、纠偏效率和资金成本稳定性之间做了工程折中。

4.5 Funding Rate:平台如何把“偏离”变成“真正作用于仓位的成本”?

Binance 风格的 Funding 公式常被写成:

这个公式的意义,不只是“算手续费”,而是把价格偏离转成仓位行为约束。它至少承担三重角色。

1)它是价格锚

永续没有交割日,所以不能靠自然到期收敛。Funding 通过让偏离一侧持续支付成本,迫使市场参与者主动做收敛交易。

2)它是仓位温度计

Funding 的方向和强度,能反映市场拥挤在哪一边。

正 Funding 往往意味着多头更拥挤,负 Funding 往往意味着空头更拥挤。

3)它是风险武器

在平稳市场中,Funding 是温和纠偏器;

在极端单边市场里,它会变成一种主动压缩拥挤仓位的高频成本机制。

这也是为什么 Clamp 很重要。

4.6 Clamp:为什么 Funding 不能无限灵敏?

clamp的作用,是让 Funding 在中等偏离下不要太激进。

更一般地,一个分段式 Funding 规则可以写成:

它表达的不是复杂,而是一种非常现实的治理思想:

  • 偏离不大时,不要让 Funding 频繁大起大落
  • 偏离显著时,又必须允许 Funding 快速放大,形成足够纠偏压力

通俗说,Clamp 就是在告诉系统:

你不能见到一点小偏离就大动干戈,但也不能在大偏离面前毫无反应。

因此,Clamp 不是“把 Funding 做钝”,而是在正常状态下压低噪声传导,在异常状态下保留纠偏火力。

4.7 Funding 反馈强度:为什么 Funding 不是越猛越好?

很多人会直觉地觉得:

既然 Funding 是纠偏器,那就把它做强一点,不就更稳了吗?

现实恰恰不是这样。

如果用简化形式表示 Funding 反馈规则:

那么k越大,确实意味着偏离时 Funding 上升更快,价格锚可能更紧;

但同时,Funding 波动、持仓成本不确定性、爆仓风险也会同步上升。

这种权衡可以写成一个简单的福利目标:

它表达的意思是:

  • 平台既讨厌 basis 太大(价格脱锚)
  • 也讨厌 Funding 太猛(持仓成本和清算风险上升)

对应地,存在一个内部最优的反馈强度:

这个式子非常重要,因为它提醒我们:

定价引擎不是一味追求“收敛更快”,而是在“价格更稳”和“系统别被自己纠偏机制伤到”之间找平衡。

这也是很多平台在不同品种上,Funding 参数和 cap 设计不完全一致的根本原因。

不同标的的波动、深度、参与者结构不同,最优反馈强度也不会相同。

五、Mark Price 为什么不是“另一个价格”,而是系统裁判权的落点?

在很多产品文档里,Mark Price 往往只是一行定义,容易被轻视。

但从系统设计角度看,Mark 其实是永续平台最关键的价格制度安排之一。

它的抽象形式可以理解成:

或者用更稳健的多路径合成思想表示为:

这里不必拘泥于具体写法,因为各平台实现差异很大,有的更偏指数加基差平滑,有的会引入多路径中值过滤。关键是理解它在解决什么问题:

1. 不能太近

如果直接拿 Last 做清算裁判,那么任何薄盘口插针都可能触发误杀。

2. 不能太远

如果完全僵硬地只看外部 Index,系统又可能出现“理论上该平,实务上平不掉”的问题,因为本地市场的真实执行能力没有被纳入。

3. 必须足够稳

因为它将直接决定:

  • 账户未实现盈亏
  • 保证金率
  • 强平触发状态
  • 清算引擎是否进场

所以,Mark Price 追求的不是“离成交最近”,而是“最适合承担裁判职责”。

从这个意义上说,Mark Price 不是一个附属显示价,而是:

平台对于“什么价格有资格改变用户风险状态”的正式回答。

六、平台之间真正的差异,不是公式写法,而是风险分配方式

只看表面,不同平台似乎都在做同样几件事:

  • 有 Index
  • 有 Mark
  • 有 Funding
  • 有清算
  • 有保险基金

但真正把平台区分开来的,往往不是有没有这些模块,而是:

这些模块共同决定,系统失衡时到底谁先承压。

一类平台:更像“银行”

  • Mark 更平滑
  • Funding 更温和
  • 更强调缓冲
  • 更愿意先用平台机制和保险基金吸收局部冲击

这类平台用户体感通常更稳,但平台自身承担的缓冲压力更大。

另一类平台:更像“博弈市场”

  • Mark 更贴近盘口
  • Funding 反馈更快
  • 风险触发更早
  • 更倾向把市场压力迅速回传给仓位持有者

这类平台出清更快,但用户也更容易感受到剧烈波动和被动减仓。

所以,比较定价引擎时,真正要比较的不是“谁的公式更漂亮”,而是:

  • 谁在噪声里先承压
  • 谁在极端行情里先出清
  • 谁在坏账边缘先兜底
  • 谁在交易体验和偿付能力之间更偏向哪一端

定价引擎表面上设计价格,实质上设计的是风险承担秩序

七、一个成熟的定价引擎,除了公式,还必须具备哪些治理能力?

只有公式,没有治理,定价引擎就只是纸面模型。

真正上线运行时,它还必须具备至少五类能力。

1. 数据源治理能力

指数价格是否可靠,首先取决于源数据质量。

所以系统必须处理:

  • 源宕机
  • 延迟
  • 报价跳变
  • 某源流动性突然失真
  • 异常值污染

“多接几家源”不等于天然更稳。

没有源治理的多源聚合,只是把多个潜在错误拼在一起。

2. 状态识别能力

市场并不总处于同一种状态。

正常波动、单边拉升、流动性抽离、插针、踩踏,这些状态下同一套参数未必都最优。

所以成熟系统往往要识别:

  • 正常状态
  • 深度下降状态
  • 指数源异常状态
  • 清算密集状态
  • 极端单边拥挤状态

3. 参数动态治理能力

例如:

  • IMN 是否动态调节
  • Premium 平滑窗口是否可调
  • Funding cap 是否动态变化
  • 某些高杠杆品种是否进入保护模式

关键不是“能不能调”,而是:

  • 什么情况下调
  • 谁来调
  • 调整边界在哪
  • 是否足够透明
  • 会不会反过来制造新博弈点

4. 与清算引擎的一致性能力

Mark 再合理,如果本地订单簿根本承接不了清算量,也会出问题。

所以系统必须持续校验:

  • 裁判价与可执行价的距离
  • 大仓位清算时的深度承接能力
  • 是否需要分批平仓、接管、拍卖或限流

5. 极端行情下的降级与保护能力

真正考验定价引擎的,从来不是平稳行情,而是最坏时刻。

成熟系统必须预设:

  • 源大面积异常时怎么 fallback
  • 极端波动时是否加强平滑
  • 是否临时降低杠杆、放大风控提示
  • 是否进入保护性定价或保护性交易限制

这些能力可能没有公式那么“漂亮”,但往往才决定平台能不能活过极端行情。

最后:理解定价引擎,最终是在理解系统选择相信哪一种现实

学习永续合约时,很多人会先看 Funding、PnL、强平价这些公式。

这些当然重要,因为它们直接关系到交易者最关心的盈亏和风险。

但如果只停留在“怎么算”,理解就会很局部。

真正更重要的问题是:

  • 这套系统更相信本地成交,还是更相信外部现货?
  • 它更重视灵敏度,还是更重视稳健性?
  • 它更优先保护交易体验,还是更优先保护偿付能力?
  • 它把偏离看作短时噪声,还是必须尽快惩罚的失衡?
  • 它在极端行情里,会把压力更多传给平台、保险基金,还是交易者自己?

当开始从这些问题看 Pricing Engine,你看到的就不再只是一个“价格模块”,而是一整套高杠杆市场中的风险治理哲学。

所以,定价引擎最本质的价值,不是给市场报出一个数字,而是在剧烈波动、深度变化、杠杆挤压和系统失衡中,为整个平台定义一套可执行的现实秩序

真正优秀的 Pricing Engine,保护的也不是某一列价格数据,而是整套永续系统在最坏时刻依然能够:

  • 继续计算
  • 继续成交
  • 继续清算
  • 继续偿付
  • 继续维持秩序

从这个意义上说,理解永续合约,最终不是学会背几条公式,而是学会判断:一套系统究竟如何在失衡中维持秩序

本文由 @Terry的思考笔记 原创发布于人人都是产品经理。未经作者许可,禁止转载

题图来自Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!