上周三晚上十一点多,代码改不下去,随手去刷 arXiv。
刷出一篇 15 页的,11 月 1 号挂上去,作者那一行只有一个人。分类挂了一串,主分类是计量经济,还交叉到机器学习、理论经济、市场微观结构。
点开的时候我心里想的是,这跟我有什么关系。
然后看到一句,停住了。
规模一样的两个市场,一个羊群主导,一个套利主导,收益率分布和换手率完全一样。
不是接近,是完全一样。
我盯着这句看了挺久。它在我这边有个不太体面的翻译:两个东西,从外面能测到的数据看一模一样,可里面压根是两码事。
后面更狠。波动率分不开,在险价值分不开。压力事件多久来一次、成交量多少,也分不开。作者的意思是,凡是拿这类统计量当判别规则的,扔到这两个市场面前都是瞎的。
我第一反应是不服气,觉得现实里总能看出点什么吧?想了五分钟,一个反例都举不出来。
论文的做法是把不同类型的交易者写成各自带奖励函数的智能体,扔到恒定乘积的 AMM 上,看它们互相反馈出什么。恒定乘积我只知道 x*y=k,再往下就夹生了,字面读得懂,门道读不出。
真正让我坐直的是紧跟着的那个转折:静态统计量一样,压力期的持续时长差一个倍数,而这个倍数在反馈噪声比 β/s 变大时没有上界。
「没有上界」这四个字我到现在也没完全搞懂。
不是「可能很大」,是没有天花板。怎么证的,我漏掉了一整段推导。我只能感觉到这说法比「差很多」重得多——差很多还能赌一把运气,没有上界就意味着你观察得再久,也没法给这个差距按一个上限。
还有一处没理顺。智能体都往同一个方向挤的时候,以获利为目标的那批会跟着羊群走,而不是跟羊群对赌,于是参与格局变成全有或全无。这个我感觉自己懂了,可让我讲给别人听,讲不出来。讲不出来就是没懂,这是我给自己定的标准,赖不掉。
说回我自己。
前阵子图省事,让同桌一次性重写了我小项目里的一个模块。跑起来一切正常,测试绿的,日志干净得像新的。当时心里冒出一句「这次总行了吧」,然后确实行。
三天后想加个小功能,打开那个文件,一行都看不懂。
那份代码的「静态统计量」——能跑、测试绿、不报错——跟我自己一行行抠出来的版本,完全一样。区别在压力期。压力期来的那天,我改一行,崩了;再改,又崩;我连它在哪崩都说不清楚,只能整段丢回给同桌重写一遍,然后又是「跑起来一切正常」。
就这么循环。
论文里讲做市商那段我读得比较顺:做市商能恢复市场稳定,但会让流动性变脆,不是慢慢变薄,是突然一下没了,还带一个滞后。滞后到底指什么,我理解得很模糊,大概是一个系统还停在原来那一侧,可条件早就变了。我那个模块差不多就这样,看着一直挺稳,稳着稳着,某一天我就不能动它了。
最后一段我居然看懂了,而且是那种看完有点不服气的懂。
作者的结论是,真正有效的政策工具是针对做市方和吃单方做差别定价,统一费率不算有效工具。
统一费率就是两边收一样的钱。可这两拨人在市场里干的事压根不是一回事,一个提供流动性,一个消耗流动性。同一把尺子量两个不同的角色,量出来什么都说明不了。
我把它粗暴地搬到自己身上了:我一直用的也是统一费率。
「代码能不能跑」,这个标准,对我读懂了才写的代码和抄过来跑通的代码,收一样的费。所以它什么都区分不出来。这也解释了我每次跑通一个东西为什么心里还是没底——不是我心态有问题,是我用的那个指标本身没有分辨力。
写到这儿有点心虚。论文讲的是 AMM 上智能体的互相反馈,我拿它套自己一个连改都改不利索的玩具项目,是不是硬蹭?……
可能有。
但那句「静态统计量一样、动态差一个倍数」我确实记住了,这两天写东西的时候会突然想起来。这点没法装作没有。
还没搞懂的,老实摆出来:
Θ((s/β)² log(1/δ))
这个式子里我只敢猜 log(1/δ) 是置信度,猜的。序贯统计量为什么能靠顺序识别出反馈的符号,我也只知道个大概方向。再加上前面那个「没有上界」的证明,三样一起卡在这儿。
下一步想试的:把自己项目里所有「能跑但我看不懂」的模块列出来,一个一个按改动顺序回放,看能不能不靠某一刻的截面,靠顺序看出点东西来。
评论区蹲一个大佬,谁真读过这篇的,给我讲讲 β/s 那部分。我是真卡在这儿了。
进度条:读了一篇 15 页的论文,读懂大概三分之一,剩下三分之二先记着。挪了一点点。