导 语
前两份作品画了"场"(Greeks 曲面)与"个体"(单腿持仓),这一份画"群体":全市场未平仓合约在到期日的利益地形。原程序是一条实时管道——富途 OpenAPI 拉取期权链与持仓量、双重循环求总内在价值最小点、win32com 回写 Excel 三表。网页无法连接行情网关,于是把管道拆成三段可移植之物:算法逐式复刻(同一评估集、同一取最小规则、同一 OI→Volume 回退);真实数据内置——工作簿缓存的 GOOGL 2025-10-17 痛点表被反演回 OI 阶梯(分段线性函数的二阶差分),正向复算与缓存逐分不差;数据入口通用化——任何券商导出的期权链,粘贴即算。最大痛点 = $250,与工作簿 B4 单元格所记一致。
操作:悬停壹、贰图沿价格轴联动|点击贰图任意持仓柱选中该行权价,在叁进行 OI 注入实验|口径切换在"张×每股$"与"名义美元(×100 乘数)"之间换算|伍可粘贴自己的期权链或生成合成链。
Σ(·)⁺
Pain(p) = Σc OI·(p−K)⁺ + Σp OI·(K−p)⁺
壹 · Pain Curve
总痛函数 —— 凸谷的底就是大头针
"最大痛点"这个名字取的是持有者视角(总内在价值最小 = 买方最痛),会计上等价于卖方视角的最省:若股价恰好收在此处,期权卖方需要支付的清算转移最少。
两个技术事实值得写明。其一,只在行权价上取值不是近似:每一项 (p−K)⁺ 与 (K−p)⁺ 都是凸函数,非负加权和仍凸,且分段线性——凸的分段线性函数的最小值必落在折点上,而折点恰是行权价集合,原程序的评估网格因此天然无损。其二,原码注释里留着一次方向自纠("修正:最大痛点应该是 total_loss 的最小值")——这个概念的确容易把"谁的最大"绕晕,本页统一用卖方最省 / 买方最痛双口径标注。GOOGL 这条谷相当陡峭:谷底 $250 处总痛约 29 万(张·股),两侧一档即跳升 17–71%,说明持仓高度聚集。
↓ 谷形由谁塑造——看第贰图的持仓双墙。
源:max_pain.py · calculate_max_pain()(双重循环逐式对应;取最小时遇平局取首个,与 pandas idxmin 语义一致)· 谷区邻域数据与缓存"痛点分析"表逐分核对
OI
点击任意柱 → 选中行权价进入磁吸实验
贰 · Open-Interest Terrain
持仓双墙 —— Call 朝上、Put 朝下的城防图
大头针不是钉在算式里,是钉在墙上:$252.5 一档挂着 30,689 张 Call、$250 挂着 22,280 张 Put——痛点被两侧最重的持仓夹在中间。
机制的直觉版本:收盘价每向上穿过一堵 Call 墙,卖方就要按墙的厚度线性加付;向下穿过 Put 墙同理。于是总痛曲线的斜率在每根柱处折一次,谷底出现在"上方 Call 累计厚度 ≈ 下方 Put 累计厚度"的平衡点。这也解释了为什么痛点几乎总在 OI 最密的区域内部,而不在两翼。GOOGL 的 PCR(Put/Call OI 比)只有 0.761,Call 侧明显更重——若临近到期股价高于 $255,上方三堵 Call 墙的对冲平仓与展期行为,理论上会形成温和的下拉力。注意"理论上"三个字:OI 是双边持仓的张数,不是净裸卖方寸头,肆节展开这份诚实。
↓ 墙可以加厚——第叁图给你一台注入 OI 的手术台。
数据:由缓存"痛点分析"表二阶差分反演的 OI 阶梯(全部为非负整数,正向复算残差 = 0)· 最高档与次高档同缓存运行时的实际持仓一致
ΔOI
Pain′(p) = Pain(p) + ΔOI·payoff(p; K*, side)
叁 · Magnet Experiment
磁吸实验 —— 注入多少持仓才能搬动大头针
方向
行权价 K*(或点击贰图持仓柱)
注入 ΔOI(张,可为负)
当前注入0 张
尚未注入 —— 选择行权价并拖动滑杆,壹图将叠加实验后的总痛曲线(赤陶虚线)与新痛点位置。
凸函数的谷底附近是平的,所以针在谷区内搬动很便宜、搬出谷区极其昂贵——这就是"磁吸"的数学本体。
默认地形下试两组数:在 $255 注入约两万张 Put 即可把痛点拉高一档到 $252.5;但想把针从 $250 拽到 $230,需要的注入量会大一个数量级——谷壁的斜率(两侧累计 OI 之差)就是搬运单价。反向读法同样有用:到期周里若某一档 OI 突然增厚数万张,用本表即可在秒级判断它是否足以移动磁点,而不必等第三方网站刷新。
本卡为整合新增 · 负注入自动截断于该档现有 OI(持仓不可为负)· 实验不写回数据集,清除即还原