期权决策计算器

一笔期权卖方结构值不值得占用这笔钱:有效成本多少、跌到哪里开始亏、最多赚多少、最多亏多少、到期各价位分别是什么结果。全部现算,不猜方向。

这是可操作的演示:所有数字都是示例输入,默认值由 Black-Scholes 在 IV 28% 下现造, 不含任何真实持仓、真实标的、真实金额。你的输入只留在自己的浏览器里。 本页只做算术,不做投资建议 —— 它算的是「在这个假设下账面长什么样」,不是「你该不该做」。

1 · 这套系统解决什么问题

卖期权的账,难点几乎都不在「会不会 Black-Scholes」,而在口径:同一笔仓位,换个分母、漏扣一项、把两本账相加,结论就能翻过来。下面每一条都是真实系统里被踩过、然后固化成规则的:

成本基准有两本账券商给你的是税基(买入价);而你反复卖 call 收了一路权利金之后,真实的经济有效成本比税基低得多。两本账都对,但混着用就会把「已经赚了」读成「还在亏」。取舍:两本并列显示,绝不合并成一个数。
价内的期权别把内在价值当收益一张价内 call 的权利金里,内在价值是你已经锁定的卖出价,不是收入;只有外在(时间)价值才是这段时间赚的租金。把内在算进收益率,年化会系统性虚高。
「年化多少」取决于分母是哪笔钱同一笔权利金,除以净成本、除以保证金占用、除以全款,能差 2–3 倍。取舍:分子只有一个(外在价值 − 融资利息),并列展示两个分母,每个都写清是「每借一块钱赚多少」还是「每吃掉一块生存额度赚多少」。
利息不扣就是白拿钱用保证金建仓的那笔净成本全是借来的。不扣融资利息的年化是系统性高报 —— 它和全款口径的差额,恰好等于融资年率(本页把这条恒等式当校验用)。
铁鹰的占用不是两侧相加价格不可能同时穿破上下两边,所以保证金占用 = 两侧要求的较大者,不是求和。相加会把资金收益率算成实际的一半左右,好机会就被自己否掉了。
年化是天花板,不是期望「到期站在行权价上方就满收」这条路径的年化,是上界不是期望收益。取舍:年化旁边必须同框摆出到期获利概率数学期望,否则这个数会骗人。
报价太宽的行直接剔除买卖价差 ÷ 外在价值 > 30% ⇒ 这张的「外在价值」根本不可成交,年化再漂亮也是纸面数。15–30% 亮黄旗。
剩几天的合约年化虚高剩余天数 < 7 天时,×365/天数 会把 gamma 风险完全没建模的收益率放大成一个假的大数 —— 亮旗,不参与排序。

下面的计算器把这些口径全部落进公式里 —— 展示的每个数都可以在第 4 节看到它的算式。

2 · 算一笔

示例标的,非真实报价
你买这 100 股的价格
价内时会自动拆成内在 + 外在
只用于概率与期望,不影响盈亏几何
保证金借款成本;全款买家填 0
= 累计卖开 credit − 累计买平 debit。只数短 call;长腿(如 LEAP)不算。本次这张的权利金已单列,别重复填
改任意输入框即时重算。

结构与结论

到期盈亏曲线

收益网格 · 不同到期价下的结果

概率与数学期望

3 · 四种结构横向对比

结构占用的是哪笔钱最大盈利最大亏损什么时候用主要风险
备兑看涨
持股 + 卖 call
整笔持股市值(保证金买入时只吃 25% 的维持额度,但钱是借的) (K − 有效成本)× 100 × 张数
封顶,涨过 K 的部分与你无关
有效成本 × 100 × 张数
标的归零
手上有股票且愿意在 K 卖出,想在等待期收租 上行被封顶、下行几乎全额承担;权利金只是薄垫子
现金担保看跌
卖 put + 锁现金
被锁的担保现金 =(K − 权利金)× 100 × 张数
保证金通常不减免这类占用
权利金全额
到期在 K 上方即满收
(K − 权利金)× 100 × 张数
标的归零
愿意在 K −权利金 这个价位接货,先把等待期的钱收了 下跌时按 K 接货,账面立刻浮亏;现金被锁住失去别的机会
垂直信用价差
卖近腿 + 买远腿
翼宽 − 净权利金(风险已定义) 净权利金全额 (翼宽 − 净权利金)× 100 × 张数
有上限,这是它的全部卖点
只想赌「不会涨过某价 / 不会跌破某价」,且要把尾部风险封死 胜率高但赔率差:一次穿透可以吃掉好几次的收入
铁鹰
两条价差,一上一下
两侧要求的较大者,不是两侧相加 两侧净权利金之和 较宽的那一侧翼宽 − 总权利金 判断标的会在一个区间里待到到期,双边收租 区间被单边穿破;行权价选得越近收得越多、被穿概率也越高
四行的共同点:都是卖方结构 —— 胜率偏高、赔率偏差。所以判断一个结构好不好, 从来不能只看「赢的概率有多大」,必须把赢多少 × 概率输多少 × 概率 一起摆出来, 这就是上面计算器里「数学期望」那一格存在的理由。

4 · 口径与公式

页面上每个数都出自下面这几条式子。符号说明与本例数字展开一并给出,方便你自己复核。

① 有效成本(滚动收租摊销后)
ceff= BP R100·n
B券商税基($/股),即你买入这些股票的价格
P本次卖出 call 收到的权利金($/股)
R历史滚动净收租($合计)= 累计卖开 credit − 累计买平 debit;只数短 call,长腿(LEAP)不进这本账
n张数,1 张 = 100 股
本例:c_eff = 96.00 − 4.45 − 0/(100×2) = 91.55 $/股

为什么要单独一条:R 的窗口必须锚在当前这批仓位的建仓日。拿全部历史去算,会把早已平掉的旧仓、不同市场环境下的盈亏一起混进来,能把方向都算反。

② 备兑到期盈亏(分段线性)
Π(S)= [min(S,K) ceff] ·100·n
S到期日标的价格
K卖出 call 的行权价 —— 涨过它,收益被 min 截断
本例 S=105:Π = [min(105, 98) − 91.55] × 100 × 2 = (98 − 91.55) × 200 = +$1,290(已封顶)
本例 S=90 :Π = [min(90, 98) − 91.55] × 200 = (90 − 91.55) × 200 = −$310
保本价 = c_eff = 91.55(令 Π=0 且 S<K 解出)
③ 信用价差:最大亏损与保本价
Lmax= (WC)·100·n , Sbe= K±C
W翼宽 = |K − K|($/股)
C净收到的权利金($/股)
±卖看涨价差取 +(涨过去才亏),卖看跌价差取
本例(卖 105/110 看涨价差,C=0.93,n=5):
L_max = (5 − 0.93) × 100 × 5 = $2,035;保本 S = 105 + 0.93 = 105.93
资金收益率 = 465 / 2,035 = 22.85%(这就是「赔 4.4 块去赢 1 块」的赔率本身)

铁鹰的占用 = max(put 侧, call 侧),不是两侧相加 —— 到期价只有一个,不可能同时穿破上下两边。

④ 年化:一个分子,两个分母
I=Mnet·r· D365 , N=E·100·nI y1= NMnet ·365D , y2= NMbp ·365D
E外在价值($/股)= 权利金 − 内在价值。价内那部分是已锁定的卖出价,不算收入
Mnet净成本 =(现价 − 权利金)× 100 × n —— 这笔仓位真正占掉/借走的钱
Mbp购买力占用 =(0.25 × 现价 − 权利金)× 100 × n —— 股票按 25% 维持比例吃额度,收到的权利金全额抵回
r, D融资年率、距到期天数
本例:E = 4.45 − max(100−98, 0) = 4.45 − 2.00 = 2.45 $/股
M_net = (100 − 4.45) × 100 × 2 = $19,110 ;I = 19,110 × 4.25% × 30/365 = $66.76
N = 2.45 × 200 − 66.76 = $423.24
y₁ = 423.24 / 19,110 × 365/30 = 26.95% ;y₂ = 423.24 / 4,110 × 365/30 = 125.29%
自检恒等式:不扣息年化 − y₁ = 31.20% − 26.95% = 4.25% = r

两个数都对,问的是不同问题:y₁ = 每借一块钱赚多少;y₂ = 每吃掉一块生存额度赚多少。 把 y₂ 拿去和别人的收益率比是错的,把 y₁ 当成「实际到手回报」也是错的。

⑤ 到期概率与数学期望(零漂移对数正态)
P(STX)= N( ln(S0/X) σ2T/2 σT ) EV= 0 Π(S)·f(S)dS
σ, T隐含波动率(小数)、剩余年限 = 天数/365
N(·)标准正态累积分布
f(S)零漂移对数正态密度(E[ST] = S0);数值积分用中点法,网格取在对数价格空间上、覆盖均值 ±12σ
本例(S₀=100,σ=28%,T=30/365=0.0822,σ√T=0.08028):
P(不亏) = P(S_T ≥ 91.55) = N( (ln(100/91.55) − 0.28²×0.0822/2) / 0.08027 ) = N(1.0597) = 85.54%

为什么用零漂移:把预期收益率设为 0 是保守锚 —— 不替标的假设方向,也就不会用一个自己编的上涨假设把 EV 撑起来。这条是刻意的悲观偏置,不是疏忽。

这些数字诚实到什么程度,得说清楚: ① 全部按持有到期算,中途的浮动盈亏、gamma、提前行权都没建模; ② 权利金按你输入的成交价,没有滑点与手续费; ③ 概率与期望完全依赖你填的 IV —— IV 变一变,EV 就变一变,它是假设下的结论不是预测; ④ 剩余天数 < 7 天时年化会被 ×365/天数 放大成假的大数,页面会亮旗; ⑤ 本页不给建议:算得出「这个结构长什么样」,算不出「你该不该做」。

5 · 技术上怎么做的

数学 SSOT正态 CDF、Black-Scholes、delta 重建这类函数全仓只允许有一份定义。原因很实在:同一个 ncdf 曾在五个脚本里各抄一份,改了其中一处,胜率、EV、Kelly 仓位一起漂 —— 而且漂得看不出来。收口成一个纯函数模块后,回归测试钉住 N(0)=0.5N(1.96)=0.9750021048517796 这类锚点,改坏立刻红。
超参 SSOT决策门槛、流动性地板、Kelly 分数、单名上限、摩擦系数、保证金档位表,集中在一个常量文件里,各引擎 import。禁止任何脚本本地再写一遍 0.25 —— 这类静默漂移不会报错,只会让两张表对不上。
缺数据 ≠ 默认值券商对深度价内腿有时整组 greeks 返 null。两个消费方各自兜了个默认 delta = 0,而深度价内腿的真实 delta ≈ 1 —— 一张短 call 就把组合的名义方向敞口记错了一个数量级。现在的规则:缺 delta 就用同到期最近行权价借来的波动率反算 N(d₁);输入退化(非正/NaN)一律返回 None 让上层失败关闭,禁止再兜默认值。
口径靠恒等式自检保证金模型里期权项在代数上必然对消,于是把它写成断言:buffer == (1−r)·股票市值 + 现金,口径被改坏当场崩。年化那条 不扣息年化 − 扣息年化 ≡ 融资年率 同理。能写成恒等式的口径,就不要靠人去记。
派生列是真公式导出的表格里,内在/外在、年化、保本价、到期情景全部是可点开的表格公式而非烤死的数值,且生成时逐格与引擎值对账,差超容差直接崩。目的是别人能看见计算过程,而不是只能选择信或不信。
失败关闭的门未提供财报日 = 未知,不等于「没有财报」,求稳档直接剔除;到期日覆盖不全直接非零退出。守卫如果能静默跳过,它和它要防的 bug 就是同一类东西。
本页怎么实现的单文件 HTML,原生 JS,零外部请求、零依赖、零后端。盈亏曲线是手写的 SVG(分段线性精确取顶点,不做采样近似);正态 CDF 用 Hart 有理逼近(双精度量级);期望值用中点法数值积分,网格随波动率自适应到 ±8σ。核心计算函数抽在一个可被 Node 直接加载的代码块里,用一组样例断言验过 —— 包括上面那条「两个年化之差 ≡ 融资年率」的恒等式。
计算全部在你的浏览器里完成,本页不向任何服务器发送数据、不加载任何外部资源。 示例数值均为合成,不代表任何真实持仓或报价。本页是计算工具,不构成投资建议。