借条、债券与期货、远期
YaHan 借给你 1000 块,你答应一年后还 1050。这件事在他脑子里只是一张"借条"。他没想过这张借条本身可以卖给别人。
直到有一天,他需要用钱——但你的 1050 要一年后才还。他能不能把这张借条转让出去?
借条能不能卖?[Build]
YaHan 拿着你的借条去找第三个人。"一年后你能收回 1050 块。你想要这张纸条吗?现在给我多少钱?"
这个问题的本质,第一章已经解决了——就是贴现。如果市场上同类借款的年利率是 5%,一年后的 1050 今天就值 $1050 / 1.05 = 1000$ 块。第三个人付 1000,YaHan 收回本金,不赚不赔。第三个人持有一年,收回 1050,赚 50。
YaHan 发现:他的借条和市场上一类叫零息债券 (Zero-Coupon Bond) 的东西,结构完全一样——今天付一笔钱,未来收回面值,中间没有利息支付。美国财政部发行的 Treasury Bill、银行的大额存单、企业的商业票据,全是零息债券的变体。区别只在于发行人——美国政府、工商银行、还是你——信用不同,利率不同,但数学结构一样。
def zero_coupon_bond_price(face_value, rate, T):
return present_value(face_value, rate, T)面值 1000、利率 5%、期限 2 年的零息债券:
Face value (Face Value, FV): $1000
Market rate (r): 0.05 (5.0%)
Maturity (T): 2 years
Zero-coupon bond price: $907.03
面值 1000 的债券今天只卖 907。两年后收回 1000,差额 93 块就是这两年的利息——不在中途支付,打包在面值里一次兑现。
2023 年 3 月,硅谷银行 (SVB) 倒闭了。倒闭的直接原因就是它持有了大量长期零息债券(美国国债)。2020-2021 年利率接近零的时候,SVB 买了大量低息长期国债。2022 年美联储加息,利率从 0.25% 飙升到 5.5%——SVB 手上那些债券的面值 1000,在市场利率 5% 的世界里现值只剩下 800 多。储户挤兑,银行被迫卖债,亏损变成真实的。SVB 不是被坏账杀死的,是被利率杀死的。
债券价格和利率,一个上去另一个必然下来。是锁死的数学关系,没有例外。
对于零息债券,你需要记住三件事:
- 它就是一张标准化的借条——今天付 X,到期收 Y,中间没有现金流。国库券、存单、商业票据都是它的变体。
- 价格就是面值的贴现。利率涨,价格跌;利率跌,价格涨。SVB 就是这样倒的。
- 所有带息的固定收益产品,都可以拆成一组零息债券。零息债是固收世界的原子。
YaHan 想到:利息为什么要等到最后?[Build]
零息债券只有到期日才有现金流。但 YaHan 想了一下:如果你每年付一次利息,是不是也可以?
一张附息债券 (Coupon Bond) 有三个参数:面值、票面利率、期限。票面利率决定了每年付多少利息。比如面值 1000、票面利率 6%——每年付 60 块。到期那年除了付 60,还归还 1000 面值。
用第一章的现金流表把每一期的 coupon 和最后一期的面值拼在一起,然后全部贴现:
def coupon_bond_price(face_value, coupon_rate, maturity, market_rate):
cfs = coupon_bond_cashflows(face_value, coupon_rate, maturity)
return npv(cfs, market_rate)面值 1000、票面 6%、3 年期、市场利率 5%:
Face value (FV): $1000
Coupon rate (c): 0.06 (6.0%)
Maturity (T): 3 years
Market rate (r): 0.05 (5.0%)
Coupon bond price: $1027.23
Cash flows:
time amount label
1.0 60.0 coupon 1
2.0 60.0 coupon 2
3.0 60.0 coupon 3
3 1000 face value
价格 1027.23,比面值 1000 高。因为这张债券每年给 6%,市场上同类只给 5%——它的利息更"大方",买家愿意多付钱。
规律:票面利率 > 市场利率 → 溢价。票面利率 = 市场利率 → 平价。票面利率 < 市场利率 → 折价。
对于附息债券,你需要记住三件事:
- 它是一串零息债券的组合——每次付息是一张小零息债,最后还本是一张大零息债。
- 票面利率和市场利率的关系,决定了它是溢价还是折价。跟发行人的信用无关,纯数学。
- 债券价格对利率变动的敏感度,不是所有债券都一样。长期债券比短期债券对利率更敏感——SVB 持有的就是长期债券。
央行宣布加息——YaHan 手上的债券会怎么样?[Verify]
YaHan 手里有一张面值 1000、票面 6%、3 年期的债券。他想知道如果市场利率从 2% 变到 10%,这张债券值多少钱:
Bond: FV=$1000, coupon=6.0%, maturity=3yr
Market Rate Bond Price
------------ ------------
2.00% $ 1115.36 (PREMIUM)
4.00% $ 1055.50 (PREMIUM)
6.00% $ 1000.00 (AT PAR)
8.00% $ 948.46 (DISCOUNT)
10.00% $ 900.53 (DISCOUNT)
利率从 2% 到 10%,同一张债券从 1115 跌到 900——跌了接近 20%。2022 年全年,美国长期国债指数跌了超过 25%。持有"最安全"的资产也能亏掉四分之一。安全是指不违约,不是指不跌价。
2022 年 9 月,英国养老金基金因为持有大量长期国债,利率突然跳升时债券价格暴跌,触发了大规模的追加保证金——差点引发系统性危机。英国央行被迫紧急干预,临时买入国债来稳住市场。这件事叫 LDI 危机。它的根源就是上面这张表:利率涨 2%,长期债券可以跌掉 20% 以上。 杠杆一加,跌幅乘以倍数。
债券的安全是指到期还本。在到期之前,它的价格会动——有时候动得很剧烈。安全 ≠ 不动。
你的面粉厂需要一个确定的成本*[Build]*
你开了一家面粉厂。一年后需要 1000 公斤小麦。你不确定一年后小麦的价格——现在每公斤 5 块,但一年后可能是 4 块,也可能是 7 块。你不想猜。
你找到种小麦的 Alice,问他:"一年后,不管那时候市价是多少,你按每公斤 5 块钱卖给我 1000 公斤。行不行?"
Alice 犹豫了。如果一年后小麦涨到 7 块,他按 5 块卖给你就亏了。他需要补偿。怎么补偿?
Alice 想了一下:他现在就去市场上花 $5/kg 买入 1000 公斤小麦,放在仓库里等一年。他的成本是 $5000。但这 $5000 如果不去买小麦,存银行一年能赚 3%——也就是 $150。所以他持有小麦一年的总成本是 $5000 + $150 = $5150,即每公斤 $5.15。
"行,"Alice 说,"但价格是 $5.15/kg,不是 $5。"
你同意了。你们签了一张远期合约 (Forward Contract)。三个要素:标的物(小麦)、交割价($5.15/kg)、到期日(一年后)。
到期那天,远期合约的 payoff 取决于标的物的市价 $S_T$ 和约定价 $K$ 之间的差。如果 $S_T > K$,你赚了——低价买进、市价卖出。如果 $S_T < K$,你亏了——被迫以高于市价的价格买入。
Delivery price (K): $105
S_T Long Fwd Short Fwd
-------- ---------- ----------
80.0 -25.0 25.0
90.0 -15.0 15.0
100.0 -5.0 5.0
105.0 0.0 0.0
110.0 5.0 -5.0
120.0 15.0 -15.0
买远期的人希望价格涨,卖远期的人希望价格跌。双方的盈亏正好相反。
2020 年 4 月 20 日,WTI 原油期货(远期的交易所版本)价格跌到了 -$37.63/桶。买远期的人不是在"少赚"——他们是在"倒贴钱求人把油拿走"。原因是全球疫情导致需求崩溃、储油设施全部装满、持有原油的成本变成了负数。远期价格 $F = S_0 + \text{持有成本}$——当持有成本是负的(因为你找不到地方存油),远期价格就可以是负的。数学没有错,是物理(仓库满了)逼出来的。
Alice 的推理:买小麦+借钱=远期*[Verify]*
Alice 的定价有一个隐藏的逻辑。他不是"猜测"未来价格——他是在问:我今天做什么,能让我一年后手里恰好有 1000 公斤小麦可以交付给你?
答案:今天买入小麦(花 $S_0$),借入一笔钱来付买小麦的账。一年后,小麦在仓库里,借款正好到期要还。借款本息就是他的总成本。他把这个成本报给你——这就是交割价 $K$。
换句话说,远期合约可以用"买标的 + 借钱"精确复制。 不管未来价格怎么走,复制组合的 payoff 和远期合约一模一样:
Replicating a long forward: buy spot + borrow PV(K)
S_T Forward Replication Match
-------- ---------- ------------ ------
80.0 -25.0 -25.0 YES
90.0 -15.0 -15.0 YES
100.0 -5.0 -5.0 YES
105.0 0.0 0.0 YES
110.0 5.0 5.0 YES
120.0 15.0 15.0 YES
如果两件事情在未来产生完全相同的 payoff,它们今天的成本必须一样。
这就是无套利定价 (No-Arbitrage Pricing)。它不是"市场觉得这个价格合理"。它是——如果你不定这个价,就有人可以无风险地从你口袋里捡钱。
银行报了一个偏高的价格——无套利均衡*[Build]*
把上面的逻辑写成等式。复制远期多头的成本在今天($t=0$)是买入标的(花 $S_0$)减去借入 $K$ 的现值(收到 $PV(K)$)。签订远期合约在 $t=0$ 不花钱。要让两者完全等价,复制成本必须为零:
$$-S_0 + PV(K) = 0 \quad\Rightarrow\quad PV(K) = S_0 \quad\Rightarrow\quad \frac{K}{1+r} = S_0$$
解出 $K$,叫它无套利远期价格 (No-Arbitrage Forward Price, F):
$$F = S_0 \cdot (1+r)^T$$
用现货 $S_0=100$、利率 3%、一年期算:$F = 100 \times 1.03 = 103$。
这个公式不是"猜"出来的。它是从"如果不等于 103,就会出现套利"这个逻辑里逼出来的。具体来说:
情况一:市场价格偏高。 假设市场上有人愿意以 $K=108$ 卖远期(比 $F=103$ 高)。套利者这样操作:
- 卖一张远期(到期必须以 $108 卖出标的)——$t=0$ 不花钱。
- 今天在市场上以 $100 买入标的。
- 借入 $108 的现值:$108 / 1.03 = 104.85$。
$t=0$ 时净现金流:$-100 + 104.85 = +4.85$。这 $4.85 已经落袋为安。到期日:把标的按 $108 交割给远期买方,收到 $108 正好还借款——循环闭合。无论 $S_T$ 最后是多少,$4.85 的利润是锁死的。存一年变成 $5.00。无风险。
情况二:市场价格偏低。 假设市场上有人愿意以 $K=100$ 买远期(比 $F=103$ 低)。套利者反向操作:
- 买一张远期(到期以 $100 买入标的)。
- 今天借入标的并卖出(卖空),收到 $100。
- 把收到的 $100 贷出去,一年后收回 $103。
$t=0$ 净现金流为零(卖空收入 $100,全部贷出)。到期日:贷出的钱收回 $103,用远期以 $100 买入标的归还——净赚 $3。无风险。
这两种情况合在一起说明一件事:如果 $K \neq F$,就有人可以不承担任何风险地赚钱。 这个人赚的钱,恰好等于定价错误的大小。只要市场上存在足够多的套利者,他们会在情况一中大量卖出远期(压低 $K$),在情况二中大量买入远期(抬高 $K$)——直到 $K$ 被推到 $F$,套利空间消失。这个平衡状态叫无套利均衡 (No-Arbitrage Equilibrium)。
无套利均衡是金融工程最重要的一个概念,因为它把定价从"主观预期"里解放了出来。你不需要猜未来价格。你只需要问:在今天的市场上,用今天的价格和利率,能不能用已有的工具拼出一个和它一样的东西?如果能——拼出来的成本就是它的价格。
后面的每一章——FRA、互换、期权——都在用同一套逻辑。FRA 的价格逼出了远期利率。互换的固定利率逼出了让两端现值相等的那个数。期权的价格逼出了一个不可能被套利的复制组合。工具在变,原理不变。
套利不是靠聪明。是靠有人把价格标错了。你唯一要做的事就是把错价纠正过来。纠正的人多了,价格就对了。这就是市场。
对于远期合约,你需要记住三件事:
- 本质是一张"锁定未来交易价格"的合同。你今天不付钱,到期才交割。标的物可以是小麦、石油、股票、外汇——任何有价格的东西。
- 定价不靠预测。靠复制——买标的+借钱就是远期多头。无套利逼出价格 $F = S_0(1+r)^T$。
- 远期价格跟"你觉得未来会涨还是跌"没有关系。它只跟今天的现货价格和利率有关。2020 年负油价就是这个公式在极端持有成本下的自然结果。
期货——远期的"标准化每日结算"版本*[Build]*
远期的现金流只在到期日发生一次——你签了合同,等到那天才交割。但如果是这样,你怎么保证对方一年后不会赖账?
这个问题在 1730 年的大阪被一群米商解决了。他们设立了一个叫"堂岛米会所"的集中交易场所——世界第一个期货交易所。和远期最大的区别是:期货不等到期日才结算,而是每天结算。 每天收市后,交易所按当天的结算价计算每个人的盈亏,赚钱的人账户里多出钱,亏钱的人账户里被扣钱。这个制度叫逐日盯市 (Mark-to-Market)。每天的盈亏实时兑现,风险不会累积到到期日——对手方违约的风险被大大降低了。
你必须先在交易所存入一笔初始保证金 (Initial Margin)。如果你的账户余额跌破维持保证金 (Maintenance Margin),交易所会要求你补足——追加保证金 (Margin Call)。补不上?交易所直接平仓。
模拟一下:做多一份期货(每点价值 $100),初始保证金 $5000,维持保证金 $3500,一周的价格变化:
Initial margin: $5000
Maintenance margin: $3500
Position: long
Day Price P&L Balance Call
---- -------- -------- ---------- --------
0 100.0 +0.0 $ 5,000 -
1 98.0 -200.0 $ 4,800 -
2 95.0 -300.0 $ 4,500 -
3 93.0 -200.0 $ 4,300 -
4 97.0 +400.0 $ 4,700 -
5 102.0 +500.0 $ 5,200 -
6 99.0 -300.0 $ 4,900 -
7 96.0 -300.0 $ 4,600 -
8 94.0 -200.0 $ 4,400 -
9 91.0 -300.0 $ 4,100 -
价格从 100 跌到 91,保证金从 5000 跌到 4100。如果继续跌到 85,就会触发 margin call——你需要立刻补钱。这就是为什么期货杠杆会放大风险:你只需要 5% 到 10% 的钱就能控制 100% 的头寸,但价格反向波动时,亏损直接按 100% 的头寸计算。
保证金是保证你不会违约的钱。定得太高,没人交易;定得太低,市场一出事全是违约。两难。
小试牛刀*[Challenge]*
你是一家面粉厂老板。一年后需要 1000 公斤小麦,现货 $5/kg,无风险利率 3%。银行向你报了一个远期价格:$5.30/kg。
- 用无套利公式计算合理的远期价格。银行的报价是偏高还是偏低?
- 如果银行的报价偏高,套利者可以怎么操作?计算无风险套利利润。
- 如果你不接受银行的报价,你还有其他锁价方案吗?
解析:
-
无套利远期价格:$F = S_0 \cdot (1+r)^T = 5 \times 1.03 = 5.15$ $/kg。银行报价 $5.30 > 5.15$,偏高 $0.15/kg$。
-
套利操作:卖远期给银行(到期以 $5.30 卖出小麦)→ 今天以 $5.0 买入 1000 kg 小麦现货 → 借入 $5.30/kg × 1000 kg 的现值 = $5300 / 1.03 = 5145.63。$t=0$ 净现金流:$-5000 + 5145.63 = +145.63$。到期日:把小麦按 $5.30 交割给银行,收到 $5300,恰好还借款本息 $5300$。$145.63 的利润是锁死的。存一年变成 $145.63 × 1.03 = 150.00$。
-
你不需要接受银行的 $5.30 报价。你可以自己在市场上以 $5.0 买入小麦现货,借入 $5.15/kg 的现值来支付,总成本就是 $5.15/kg。或者找另一家报价更接近 $5.15 的交易对手。远期市场是场外市场——价格是谈出来的,不是交易所统一挂牌的。
本章回顾*[Recap]*
| 工具 | 本质 | 核心公式/逻辑 |
|---|---|---|
| 零息债券 | 标准化的借条——今天付、到期收 | $PV = FV/(1+r)^T$ |
| 附息债券 | 一串零息债券的组合 | NPV of all coupons + face value |
| 远期合约 | 锁定未来买卖价格的合同 | $F = S_0(1+r)^T$,复制 = 买标的+借钱 |
| 期货 | 每日结算的远期 + 保证金制度 | 逐日盯市 |
以及两个贯穿后面所有章节的原则:
- 复制——用已有的工具拼出目标工具的 payoff。
- 无套利——如果两个东西 payoff 相同而价格不同,就有人捡钱。这个"捡钱"的压力会把价格推回它应该在的位置。
债券、远期、期货——三个名字,同一套逻辑:把未来的钱搬到今天,或者把今天的决定锁到未来。工具在变,原理不变。
有些钱是你可以赚的——靠理解定价错误。有些钱是你不该赚的——靠内幕信息或者赌单边方向。一步错,万丈深渊。用自己的脑袋赚钱,不要用命赌。