📑 本文目录
RIDGE期权定价LLM代码生成随机波动率模型量化代码验证无套利检验方法发现arXiv前沿

LLM写的期权定价代码能信吗?RIDGE自动验证框架:从蒙特卡洛失效到方法发现


引子:LLM写出的定价代码,“看起来对”和”真的对”之间隔着一整个数值分析学科

让大语言模型从一段数学模型描述直接生成可运行的期权定价代码,这件事在2026年已经不是新鲜事。给它Heston模型的随机微分方程,它能给你一段几十行的Python,跑出来的期权价格和教科书例题对得上,小数点后几位都一致。于是很自然地产生一个判断:“模型写对了,可以直接用。”

但arXiv上2026年7月28日发布的一篇31页论文,把这个判断彻底打翻。论文编号2607.25199,代号RIDGE(Repository-driven Iterative Diagnosis, Generation and Evaluation)。它的核心命题用一句话就能概括:

验证一段LLM生成的定价代码是否”数学上正确、数值上稳定、在全参数域可靠”,需要的远不止是”和几个基准例子对得上”。常规软件测试在这个场景下只能给出非常有限的保证。

这不是危言耸听。论文里有一张消融实验表格(Table 11)触目惊心:同一个大语言模型(Claude Opus 4.8),在没有RIDGE验证引导时,生成的Heston定价代码在默认参数下看起来完美——和参考值误差仅十万分之几。但一旦切到压力参数(低相关系数、低初始波动率、违反Feller条件的极端区),单调性检查失败率飙升到8.8%~14.1%,定价相对误差达到5%~12%。这意味着你拿着这段代码去给深度虚值或极端波动率环境下的期权报价,会系统性地报错价——而且错误是隐藏的,因为默认场景下它一切正常。

这正是RIDGE要解决的问题。它不是又一个”让LLM写代码更好”的提示工程论文,而是一套站在LLM对面的自主验证框架:代码写完了,RIDGE来审;审出问题,反馈给LLM改;改完再审;直到没有可操作的缺陷为止。更有意思的是,在两个模型上,这个”审”的过程本身发现了原方法的结构性瓶颈,进而催生出了新的半解析定价方法——验证不止找bug,它还能发现方法

核心设计:把”验证”升级成一个会学习的算子

RIDGE最根本的思想转变,是把验证从一个一次性动作(跑几个测试用例看对不对)升级成一个可迭代的、会积累知识的算子(operator)。

理解这个转变,可以看论文给出的形式化定义。RIDGE的一次验证迭代由三个对象驱动:

对象含义类比
Blueprint(蓝图)B模型配置 + 数值方法 + 实现细节的结构化规格建筑施工图
Pricing Implementation(定价实现)LLM生成的、需要被验证的实际代码盖出来的楼
Repository(知识仓库)R累积的验证经验:哪些参数域难、哪些检查有用、已知缺陷模式老法师的笔记本

每一轮迭代的信息流是:蓝图和实现交给定价实现算子 Φ 生成代码 → 代码交给验证算子 V 测量并诊断 → 诊断报告反馈回去更新蓝图、实现和知识仓库 → 进入下一轮,直到没有可修复的缺陷。

关键在于知识仓库R是会进化的。论文明确指出,验证Heston模型时积累的数值技巧(比如截断域怎么自适应、余弦展开项数怎么随参数调),在验证Bates和rough Heston模型时会被直接复用。这意味着RIDGE不是对每个模型从零开始验证,而是越验证越聪明——这是一种跨模型类的验证知识迁移

这和我们日常量化工程里的直觉完全吻合:一个有经验的quant developer审过几次波动率模型的实现后,再审新模型时一眼就能看出”这里COS截断不够宽""那里没处理Feller条件违反”。RIDGE把这个”老法师经验”形式化、持久化了。

技术架构:三道验证闸门

RIDGE的验证算子 V 拆成两步:先测量(measurement operator μ),再诊断(diagnosis operator Γ)。测量分三个Block,从易到难、层层递进。

Block I(有效性):这段代码本身成立吗?

这是最基础的一关,三个子检查:

  1. 蓝图审查:把蓝图B和它引用的数学原始文献对照,确认模型假设、数值方法、实现细节在数学上自洽。一个常见失败:LLM把某篇论文里的特征函数抄过来,但漏掉了跳跃补偿项。
  2. 实现审查:把源代码和蓝图B里规定的方法比对,确认代码确实实现了B所描述的方法。不是”代码能跑”,而是”代码跑的是B说的那件事”。
  3. 执行评估:在整个验证参数域上执行代码,所有输出必须是有限的、良定义的。一个NaN、一个inf,这一关就挂。

Block I的任何失败都立即终止当前迭代,直接退回去改,不进入后面的高阶检查。这是工程上很务实的设计——连”能跑出有限数”都做不到的代码,讨论它有没有套利漏洞没有意义。

Block II(无套利可容许性):定价结果在数学上合法吗?

这是RIDGE最有数学含量的部分。一个合法的期权价格向量必须落在无套利集合 A_M 内——也就是说,它必须满足一组数学一致性条件。RIDGE检查四类:

一致性检查数学含义失败意味着什么
Put-Call平价C - P = (F - K)·P(0,T)看涨看跌价格不匹配,存在静态套利
单调性行权价越高,看跌越贵;到期越长,同价越贵价格排序错乱,违反无套利
凸性价格对行权价的蝴蝶价差非负(负蝶翼)凸性破裂,存在蝶式套利机会
密度一致性Breeden-Litzenberger隐含风险中性密度积分归一隐含分布不归一,整个定价体系不自洽

这四项构成一个层次结构:平价是局部检查,单调性和凸性是全局序关系,密度一致性最严格——它要求整个隐含分布作为一个概率密度是合法的。RIDGE逐层检查,记录的是每个违反的量级而不只是”过没过”,这让诊断阶段能区分”孤立的次要缺陷”和”系统性的方法问题”。

Block III(基准一致性):和已知的正确答案对得上吗?

对有解析解或高精度参考解的模型配置,比较生成实现和参考值的距离。但注意——RIDGE把这个放在最后,而不是最先。这是深思熟虑的设计选择:

只和基准对得上,不等于代码正确。 一个生成实现完全可以在它被调试时所参照的那几个配置上精确到机器精度,却在其他参数域上彻底失效。这正是消融实验里”无引导LLM”暴露的问题:默认配置误差5.7×10⁻²看起来还行,但那是因为它在那些点上被调过;换到压力参数,误差纹丝不动地维持在5%~12%——典型的过拟合到测试点

把基准一致性放最后,是承认”对得上”是必要条件而非充分条件。真正的正确性来自Block II的无套利结构保证。

诊断分类:把缺陷分门别类喂回去

测量完,诊断算子 Γ 把证据归类成几类标签,每类对LLM给出不同的修改指令。这套分类法是RIDGE能跨模型复用的关键:

诊断类别含义修改方向
[BUG]阻止实现正确实现目标数值方法的缺陷修代码bug
[CONSISTENCY]违反Block II的可容许性要求(平价/单调/凸性/密度)调数值控制参数
[METHOD-ALGO]当前数值方法内部可能的改进优化算法(如自适应截断)
[METHOD-HYPER]超参数调节(如余弦展开项数N)调超参
[METHOD-CHOICE]当前数值方法本身不适合这个模型换方法(最重的诊断)
[EXPECTED]已知异常区或文档化的、无法消除的残差接受,不再追修

前五类每类满分20分,一轮总分100分(出现METHOD-CHOICE时总分120)。残差反复修不掉的,最终转移到**[EXPECTED]**——这是一种诚实的工程态度:承认有些极端参数域的误差是方法本身的表达力极限,不是bug,记录在案即可。

这个分类体系最重的判断是区分[METHOD-ALGO]和[METHOD-CHOICE]。前者是”这个方法可以,但要调好”,后者是”这个方法根本不对,得换”。论文里两个最精彩的案例——HHW和G-SVJD——就是触发METHOD-CHOICE后,验证过程催生了新方法。

实证亮点一:验证过程”发现”了新方法

这是RIDGE最超出预期的发现。在**Heston-Hull-White(HHW)**模型上,LLM最初生成的是标准的Euler蒙特卡洛模拟。前两轮验证,RIDGE修好了利率初始化和完全截断,一致性检查基本通过。但第三轮起,残差模式开始出现一个特征:无论怎么减少蒙特卡洛的抽样误差、无论怎么调方差缩减技术,都存在一个无法消除的O(√Δt)误差平台。

RIDGE的诊断把这个无法消除的残差标记为**[METHOD-CHOICE]**——不是代码的问题,是蒙特卡洛这个方法本身的结构性瓶颈。于是修改目标从”优化模拟”切换到”找一个没有抽样误差的定价表示”。

最终,在条件特征函数PDE(conditional characteristic-function PDE)的框架下,通过对方差路径取条件、利用方差过程与短期利率布朗运动不相关这一结构,把问题化归为一个一维复值抛物方程,用Feynman-Kac定理求解一次即可得到精确特征函数,再套用COS估值。这个新方法是验证过程本身推导出来的,不是论文作者预先设计的。

G-SVJD模型(带幂律方差扩散和跳跃的非仿射模型)走了完全相同的路径:蒙特卡洛→验证暴露结构性瓶颈→切换到条件高斯表示+CCF-PDE。两个模型的最终实现分别达到118/120和117/120分。

这对量化工程的启示很直接:当一段代码怎么调都调不好时,先想想是不是方法选错了,而不是继续在参数上死磕。 RIDGE把这个”想”的过程自动化、证据化了。

实证亮点二:消融实验——没有验证的LLM代码有多危险

论文第5节的消融实验(Table 11)是最该被每个用LLM写量化代码的人看到的数据。三组对比:

  • 实验1(无引导):LLM生成代码,只和一个参考值比对,不跑RIDGE验证
  • 实验2(完整RIDGE):LLM生成 + RIDGE全流程验证引导
  • 实验3(外部生成器):用DeepSeek和ChatGPT作为代码生成器,RIDGE验证

关键数据(Heston模型,默认与压力参数配置):

参数配置实现单调性失败率凸性失败率平均定价误差耗时
默认无引导8.8%25.7×10⁻²0.3ms
RIDGE引导0%05.0×10⁻⁷0.6ms
κ=0.1(低均值回复)无引导9.2%15.1×10⁻²0.2ms
RIDGE引导0%03.8×10⁻⁴1.4ms
σv=1(高波动率的波动率)无引导9.4%2.15.9×10⁻²0.3ms
RIDGE引导0%07.0×10⁻⁷1.4ms
异常区(κ=0.2,θ=0.004,σv=0.9)无引导14.1%11.10.1270.3ms
RIDGE引导3.6%07.4×10⁻³1.5ms

读这张表有几个关键发现:

第一,无引导代码在默认参数下”看起来还行”,但一换压力参数,定价误差纹丝不动地维持在5%~12%。 这说明LLM是在”背”那个例题的答案,而不是真正理解了方法。默认参数的5.7×10⁻²误差已经不算小,但因为是孤立一个点,容易被当成”数值精度问题”忽略掉。

第二,单调性和凸性失败率才是真正的危险信号。 8.8%~14.1%的单调性违反意味着——你用这段代码构建一个期权链的报价,会有接近十分之一的行权价档位价格排序是错的。任何一个稍具套利敏感度的对手方都能从你的报价里白捡钱。这不是”精度差一点”,这是结构性定价错误

第三,RIDGE引导的实现慢了一个数量级(0.3ms→1.4ms),但换来的是误差降低五个数量级。 这是用计算时间换正确性,在期权做市场景下这笔交易绝对划算——一次套利损失远超百万次多算1ms的成本。

第四,外部生成器实验(实验3,用DeepSeek和ChatGPT)证明:验证过程,而非生成器的选择,是最终验证质量的主要来源。 不同LLM生成的代码,经过同一个RIDGE验证算子处理后,都能达到接近的精度。这意味着RIDGE是生成器无关的——你可以用任何模型写代码,只要验证框架够强。

实证亮点三:验证知识的跨模型迁移

Heston、Bates、rough Heston三个模型共享COS估值步骤,主要差异在特征函数的推导。论文记录了验证Heston时发展出的自适应规则(Table 10):

数值技巧Heston首次出现Bates复用rough Heston复用
解析特征函数+COS估值第1轮
基于累积量的截断域第1轮
行权价覆盖规则第3轮第3轮
分辨率缩放的项数第4轮第3轮
虚值/实值分别定价第6-7轮第4轮
Feller条件感知的域加宽第8-9轮第5轮

注意右侧两列的迭代轮次——Bates和rough Heston不是从第1轮开始摸索,而是直接继承了Heston验证时积累的技巧,从更靠后的轮次起步。rough Heston因为继承充分,在第5轮就达到了Heston在第8-9轮才发展出的Feller感知加宽。这就是知识仓库迁移的价值:验证过的模型越多,验证新模型的成本越低

与CLQT、散户信号证伪的呼应:一个”量化严谨性”的主题

读RIDGE时,我反复想到本博客近期两篇文章。它们放在一起,勾勒出2026年AI量化领域一条清晰的主题线——当AI越来越多地介入量化金融时,怎么保证它产出的东西是可靠的

《LLM交易Agent数据泄露检验》里,问题是:7个SOTA大模型在防泄露基准下只有2个正收益,你看到的alpha可能是look-ahead泄漏制造的幻觉。

在刚发布的《CLQT五轴能力诊断框架》里,问题是:用固定窗口收益给LLM交易Agent排名是危险的,需要从”排名”转向Coherence/Acuity/Composure/Discipline/Reliability五维”诊断”。

《散户常用技术信号全灭》里,问题是:RSI/MA交叉/K线/成交量/Sell-in-May五大散户信号族,经多重校正后4类被统计证伪。

RIDGE处理的是这条主题线的代码层:当LLM直接生成期权定价实现时,怎么验证它数学正确、数值稳定、全参数域可靠。四篇文章分别覆盖了信号层(散户信号证伪)、数据层(泄露检验)、Agent层(CLQT能力诊断)、代码层(RIDGE定价验证),合在一起几乎构成了一个”AI量化可靠性”的完整审查栈。

特别值得对比的是RIDGE和CLQT的方法论亲缘。两者都强调:

  • 诊断而非排名:CLQT不给Agent排第一第二,RIDGE不给代码打”对/错”二元判断,而是给出分维度的缺陷画像
  • 结构化证据链:CLQT用哈希链封存每轮决策,RIDGE用知识仓库累积验证经验——都是为了让结论可复现、可审计
  • 承认局限:CLQT的Reliability轴承认Agent有不可控的随机性,RIDGE的[EXPECTED]类别承认有些残差是方法本身的表达力极限

这种”诚实地承认不确定性的边界”的态度,恰恰是区分严谨量化工作和江湖骗子式回测的分水岭。

实践启示:你今天就能用上的三件事

RIDGE的完整实现(GitHub开源:https://github.com/ShQiangLiu/ridge)对普通量化团队来说门槛偏高——它需要期权定价的专家知识来设计验证域和诊断规则。但论文的核心思想可以立刻降级应用到我们的日常工作里:

第一,给任何LLM生成的量化代码加”无套利检查”。 不需要RIDGE那么复杂。如果你让LLM写了一段期权或互换的定价代码,在交付前至少做三件事:(a) 跑一遍put-call平价验证;(b) 对一组密集行权价检查单调性;(c) 在极端参数(低相关、高波动率的波动率、接近到期的深虚值)下单独跑一遍。这三个检查能抓住Table 11里无引导代码暴露的大部分问题。成本几乎为零,收益巨大。

第二,警惕”默认参数对得上”的陷阱。 Table 11最深刻的教训是:无引导代码在默认参数下误差5.7×10⁻²看起来”差不多”,但这个误差在不同压力参数下几乎不变化——说明它根本不是在”近似正确”,而是在”系统性地偏”。测试量化代码时,压力参数配置比默认配置更能暴露问题。用敏感性分析驱动的一组stress test来验证代码,而不是只用一个标称例子。

第三,当一段代码怎么调都调不好时,质疑方法选择。 HHW和G-SVJD案例给出的启示:如果残差模式在所有参数调节后仍然顽固存在,而且有明确的结构特征(比如O(√Δt)平台、比如特定行权价区间的系统性偏移),那很可能不是实现bug,而是数值方法本身和模型结构不匹配。这时候应该跳出当前方法,寻找基于模型结构的替代表示——HHW的方差-利率不相关结构天然适合条件高斯化简,G-SVJD的幂律扩散天然适合Lamperti坐标变换。模型的数学结构会暗示最优的数值方法,验证过程帮你听见这种暗示。

局限性:论文没说,但实践者要问的

论文自身承认的局限:(1) Proposition 1的几乎必然收敛是渐近结果,不保证有限步内到达停止域;(2) 仅在期权定价这个相对结构化的领域验证,能否推广到更宽泛的量化代码(比如因子计算、风险引擎)未经验证。

从实践者视角,我再补充三点质疑:

第一,验证知识仓库的”知识”质量高度依赖初始专家设计。 RIDGE的stress test配置、诊断分类、验证域定义,都基于期权定价领域专家知识。换一个你完全没有专家经验的领域,知识仓库的初始内容会很贫瘠,第一轮验证的发现质量会大打折扣。换句话说,RIDGE放大已有专家经验,但不能凭空创造专家经验。

第二,[EXPECTED]类别是个潜在的逃避口。 任何修不掉的残差都可以被归为”已知的表达力极限”。论文里对异常区的3.6%单调性残差就这么处理了。在实际使用中,如果分类把关不严,[EXPECTED]会变成一个垃圾桶,把所有难修的问题都藏起来。需要严格的”必须经过多次独立修复尝试且有理论解释”的准入门槛。

第三,计算成本不可忽视。 RIDGE引导的实现比无引导慢一个数量级,而且每轮验证本身要跑大量参数配置。对于高频做市这种对延迟极敏感的场景,118/120分的HHW实现的1.4ms/期限可能仍然太慢。RIDGE适合的是离线定价、风控校准、模型验证这类对精度敏感、对延迟不敏感的场景,而非实时报价。

总结

RIDGE把”验证LLM生成的量化代码”这件事,从”跑几个例子对一对”升级成了一个会学习、会迁移、能发现新方法的自主框架。它最尖锐的贡献有两个:一是用消融数据证明,没有结构化验证的LLM定价代码在全参数域上是危险的(8.8%~14.1%的单调性违反);二是用HHW和G-SVJD两个案例证明,验证过程本身能识别方法的结构性瓶颈并催生新方法。

如果说CLQT重新定义了”怎么评价一个LLM交易Agent”,RIDGE则重新定义了”怎么信任一段LLM写的量化代码”。两者的共同底色是:在AI越来越深地介入金融决策的2026年,“它看起来对”不再够用,我们需要一套证据驱动的、可复现的、诚实地承认边界的验证文化。这是量化工程从手艺走向工程学科的必经一步。

论文信息

  • 标题:RIDGE: An Autonomous Framework for Validation and Method Discovery in LLM-Generated Option Pricing
  • 作者:Liexin Cheng(乌得勒支大学/北京大学)、Xue Cheng(北京大学)、Shuaiqiang Liu(代尔夫特理工大学,通讯作者)、Cornelis W. Oosterlee(乌得勒支大学)
  • 机构:乌得勒支大学数学研究所、北京大学数学科学学院、代尔夫特理工大学应用数学研究所
  • arXiv:2607.25199 | 2026-07-28
  • 代码https://github.com/ShQiangLiu/ridge

相关阅读


数据来源:arXiv 2607.25199(RIDGE论文,31页,含5个模型实证 + 消融实验 + 外部生成器实验)。所有定量数据均引自论文Table 6/10/11及第4-5节正文。论文用Claude Opus 4.8作为主生成器,DeepSeek和ChatGPT作为外部生成器做对照。

💬 评论