期权交易的“收盘”时刻,往往比开盘更考验人心。当你卖出认购期权(Short Call)并收到行权通知时,那一刻的心情大概是既紧张又有点“后悔当初为什么要卖”——毕竟,如果标的股价还在涨,你本来还能赚更多;但现在,你必须以约定的行权价把股票卖给对手方,哪怕市场价已经高出很多。

别慌。这其实是期权卖方最经典的困境之一:名义上是收权利金,实际上可能背负着“低价卖股”的义务

今天,我们不聊枯燥的定义,而是直接切入实战:当你卖出的认购期权被行权时,该如何用两种主流方法——备兑开仓(Covered Call)和买入认沽期权(Protective Put)——来化解风险? 我会用通俗的例子、清晰的逻辑,甚至一些代码化的思维模型,帮你把这个复杂的金融操作讲得明明白白,就像给一个聪明的朋友讲故事一样。


一、先搞懂:什么是“卖出认购期权被行权”?

在深入对冲方法之前,我们必须先确认一个前提:你真的理解自己陷入了什么局面?

假设你卖出了一张腾讯控股(假设代码:0700.HK)的认购期权:

  • 行权价:400港元
  • 权利金:10港元/张
  • 合约数量:1张(对应1000股)
  • 到期日:2026年9月30日

当时,腾讯股价是380港元。你觉得股价不会涨过400港元,所以安心收了10港元的权利金。

但现在,到期日临近,腾讯股价涨到了420港元。期权买方决定行权——因为他可以用400港元从你手里买入市值420港元的股票,白赚20港元差价(减去他付给你的权利金后仍有利润)。

结果:你必须以400港元/股的价格,卖出1000股腾讯股票。

问题来了:

  • 如果你手里没有腾讯股票,你就必须在市场上以420港元/股的价格买入,再以400港元/股卖出。每股亏损20港元,合计亏损20,000港元。加上你之前收的10,000港元权利金,净亏损10,000港元。
  • 如果你手里有腾讯股票,那还好,只是卖贵了而已(本来可以卖420,现在只卖400),但也等于放弃了后续上涨的收益。

这就是卖方被行权的核心风险:价格倒挂时的现金亏损,或收益封顶的“遗憾”。


二、方法一:备兑开仓(Covered Call)—— “我有货,所以我不怕”

备兑开仓,听起来高大上,其实就是“我有股票,我卖看涨期权”

2.1 为什么备兑开仓能对冲风险?

想象一下,你卖出一个认购期权后,突然发现自己手里其实有对应的标的股票。这时候,被行权就不再是灾难,而是一种预期的卖出行为

备兑开仓的对冲逻辑是:

  • 你原本就打算在某个价格卖出股票(行权价)。
  • 你提前收了权利金,相当于“提前锁定”了一部分收益。
  • 如果被行权,你只是按约定价格交出货,不赚不亏(相对于市场价而言,但因为你收了权利金,实际是盈利的)。

2.2 实战例子:你有腾讯股票,怎么操作?

继续上面的例子。假设你在卖出认购期权时,本身就持有1000股腾讯股票,成本价是350港元。

  • 卖出认购期权:行权价400港元,权利金10港元。
  • 到期日:股价420港元,被行权。

你的最终收益:

  • 卖出股票收入:400港元 × 1000股 = 400,000港元
  • 你原本买入成本:350港元 × 1000股 = 350,000港元
  • 权利金收入:10港元 × 1000股 = 10,000港元
  • 总利润:(400,000 - 350,000) + 10,000 = 60,000港元

对比一下:

  • 如果你没卖期权,直接持有股票到420港元卖出,利润是:(420 - 350) × 1000 = 70,000港元。
  • 你少赚了10,000港元,但这10,000港元正是你之前收的权利金。

结论:备兑开仓的本质,是用“潜在的最高收益上限”换取“确定的权利金收入”。 你放弃了股价超过400港元后的额外收益,但换来了无论股价怎么走都能拿到的权利金。

2.3 备兑开仓的适用场景

备兑开仓最适合已经持有标的股票,且认为股价不会大涨的投资者。

操作步骤:

  1. 持有标的股票:确保你手头有足够的股票覆盖你卖出的认购期权数量(1张期权对应1000股,你就得持有至少1000股)。
  2. 卖出认购期权:选择行权价略高于当前股价的期权合约。
  3. 等待结果
    • 如果股价低于行权价:期权作废,你白赚权利金,股票继续持有。
    • 如果股价高于行权价:股票被行权卖出,你获得“股票增值收益 + 权利金”。

2.4 代码化思维:备兑开仓的收益公式

为了更清晰地理解,我们可以用伪代码来表达备兑开仓的收益逻辑:

def covered_call_profit(stock_cost, strike_price, premium, stock_price_at_expiry):
    """
    计算备兑开仓的收益
    :param stock_cost: 股票买入成本
    :param strike_price: 期权行权价
    :param premium: 权利金收入
    :param stock_price_at_expiry: 到期日股价
    :return: 总收益
    """
    # 如果到期日股价低于行权价,期权不行权,你继续持有股票
    if stock_price_at_expiry <= strike_price:
        # 收益 = 权利金(股票未卖出,账面浮盈不算)
        return premium * 1000  # 假设每张合约对应1000股
    
    # 如果到期日股价高于行权价,期权被行权,你按行权价卖出股票
    else:
        # 收益 = (行权价 - 成本价) * 股数 + 权利金
        profit_from_stock = (strike_price - stock_cost) * 1000
        return profit_from_stock + premium * 1000

# 例子:成本350,行权价400,权利金10,到期股价420
profit = covered_call_profit(350, 400, 10, 420)
print(f"备兑开仓总收益: {profit} 港元")  # 输出:60000

关键点:

  • 备兑开仓不会亏损,因为你有股票对冲。
  • 限制收益,但锁定了权利金收入。
  • 适合中性偏淡的市场判断。

三、方法二:买入认沽期权(Protective Put)—— “我没有货,但我买份保险”

备兑开仓的前提是你有股票。但如果你没股票呢?或者你不想持有股票,只是单纯卖出一个认购期权(裸卖空)?这时候,备兑开仓就无计可施了。

别担心,还有一个神器:买入认沽期权(Protective Put),也就是“买保险”

3.1 为什么买入认沽期权能对冲风险?

认沽期权(Put Option)赋予你以约定价格卖出股票的权利

当你卖出认购期权(Short Call)时,你担心的是股价大涨,导致你被迫以低价卖出股票(或高价买股履约)。而买入认沽期权,相当于你给自己买了一份“股价下跌保险”——但等等,这里有个陷阱!

仔细想想:

  • 卖出认购期权:你担心股价上涨
  • 买入认沽期权:你担心股价下跌

这两个方向是相反的!那为什么还说买入认沽期权能对冲卖出认购期权的風險?

答案在于:保护性认沽期权并不是直接对冲“被行权”的风险,而是对冲“股价大涨导致你买股履约时的亏损”。

换句话说:

  • 如果你裸卖空认购期权(没有股票),股价大涨,你需要高价买股履约,亏损巨大。
  • 此时,如果你同时买入认沽期权,认沽期权的价值会随着股价下跌而上涨,但不会随着股价上涨而上涨

等等,这不对吧? 如果股价上涨,认沽期权会贬值,那不是亏了吗?

是的,这就是问题的关键! 单纯买入认沽期权并不能直接对冲裸卖空认购期权的股价上涨风险。它只能对冲股价下跌的风险。

那么,问题来了:如果没有股票,如何对冲卖出认购期权的行权风险?

3.2 真正的对冲方法:建立“领口策略”(Collar)

在期权交易中,纯粹“买入认沽期权”来对冲“卖出认购期权”并不是一个标准的、无成本的对冲组合。更常见且有效的策略是领口策略(Collar),或者更简单地——直接买入标的股票(这就是备兑开仓)。

但如果我们坚持要用“买入认沽期权”来对冲,我们需要重新理解这个策略的适用场景。

场景:你卖出了认购期权,但担心股价剧烈波动,你想锁定一个最大亏损区间。

这时候,你可以:

  1. 卖出认购期权(Short Call):收取权利金,承担股价上涨风险。
  2. 买入认沽期权(Long Put):支付权利金,获得股价下跌保护。

这个组合被称为“宽跨式组合”(Strangle)或“跨式组合”(Straddle),但它们的目的是从波动中获利,而不是对冲。

等等,我是不是把问题复杂化了?

让我们回到用户的原始问题:“卖出认购期权被行权怎么办?”

被行权意味着你必须交割股票。如果你没有股票,你就必须买股票。所以,真正的对冲方法是确保你有股票,或者确保你不会被逼着高价买股。

3.3 重新定义:用买入认沽期权“锁定买入成本”

实际上,有一种策略叫做“保护性认沽期权”,通常用于持有股票时对冲下跌风险。但它也可以变形使用。

假设你卖出一个认购期权,同时买入一个认沽期权,行权价相同:

  • 卖出认购期权:行权价400,权利金+10
  • 买入认沽期权:行权价400,权利金-5

这个组合的净权利金是+5。如果股价大涨,认购期权被行权,你被迫以400卖出股票;如果股价大跌,认沽期权生效,你有权以400卖出股票。

但这个组合的前提是你有股票! 如果没有股票,这个组合就是“合成多头”,你的风险是无限的。

3.4 更实用的方法:直接买入标的股票(备兑的变体)

如果你没有股票,但又卖出了认购期权,最直接的“对冲”方法是:

  1. 立即买入标的股票(这就是备兑开仓的补救措施)。
  2. 或者,买入一个认购期权(建立“价差组合”,限制上涨风险)。

买入认购期权来对冲卖出认购期权,这听起来很荒谬,但实际上是一个标准的“牛市价差”(Bull Call Spread)策略:

  • 卖出低价认购期权(你原本的操作)
  • 买入高价认购期权(新的对冲操作)

这样,你的最大亏损就被限制了。

3.5 代码化思维:领口策略的收益计算

为了更清晰地展示如何用“买入认沽”思维来对冲,我们来看一个领口策略的例子:

def collar_strategy(stock_price, call_strike, put_strike, call_premium, put_premium):
    """
    领口策略:持有股票 + 卖出认购期权 + 买入认沽期权
    :param stock_price: 当前股价
    :param call_strike: 卖出认购期权的行权价
    :param put_strike: 买入认沽期权的行权价
    :param call_premium: 卖出认购期权获得的权利金
    :param put_premium: 买入认沽期权支付的权利金
    :return: 最大利润、最大亏损、盈亏平衡点
    """
    net_premium = call_premium - put_premium  # 净权利金收入
    
    # 最大利润:股价涨到认购行权价以上,股票以call_strike卖出
    max_profit = (call_strike - stock_price + net_premium) * 1000
    
    # 最大亏损:股价跌到认沽行权价以下,股票以put_strike卖出(通过认沽期权保护)
    max_loss = (stock_price - put_strike - net_premium) * 1000
    
    # 盈亏平衡点
    breakeven = stock_price - net_premium
    
    return {
        "max_profit": max_profit,
        "max_loss": max_loss,
        "breakeven": breakeven
    }

# 例子:股价380,卖出认购行权价400(权利金10),买入认沽行权价360(权利金5)
result = collar_strategy(380, 400, 360, 10, 5)
print(f"领口策略结果: {result}")
# 输出:
# max_profit: 25000  (400-380+5) * 1000
# max_loss: 15000    (380-360-5) * 1000
# breakeven: 375

关键点:

  • 领口策略锁定了最大亏损和最大利润
  • 它适合中性市场,你预期股价会在一个区间内波动。
  • 买入认沽期权在这里的作用是保护股票下跌风险,而不是直接对冲认购期权的行权风险。

四、两种方法的对比与选择

现在,我们来对比一下这两种方法,帮助你决定在什么情况下使用哪种策略。

特征 备兑开仓(Covered Call) 买入认沽期权(Protective Put / Collar)
前提条件 必须持有标的股票 可以持有股票,也可以不持有(但需配合其他策略)
对冲逻辑 用股票实物对冲行权义务 用认沽期权对冲股价下跌风险(间接)
适用场景 股价横盘或温和上涨 股价可能大幅下跌,或你想锁定利润
成本 无额外成本(反而收权利金) 需要支付认沽期权权利金
收益上限 固定(行权价 - 成本价 + 权利金) 固定(通过领口策略锁定)
风险 股价大跌时,股票亏损无法对冲 股价大涨时,利润被封顶
复杂度 简单 较复杂(需要同时管理两个期权头寸)

4.1 如何选择?

  • 如果你有股票,且认为股价不会大涨:选择备兑开仓。简单、直接、还能收权利金。
  • 如果你有股票,但担心股价大跌:选择买入认沽期权(保护性认沽),或者领口策略(同时卖出认购期权来抵消认沽期权的成本)。
  • 如果你没有股票,但卖出了认购期权:你必须立即买入股票(变成备兑开仓),或者买入一个认购期权(建立牛市价差,限制上涨风险)。

4.2 实战案例:没有股票怎么办?

假设你卖出了一个腾讯认购期权,行权价400,权利金10。到期日股价420,被行权。但你手里没有股票

错误做法: 什么也不做,等着被强制平仓,高价买股履约,亏损巨大。

正确做法1:立即买入股票(备兑开仓的补救)

  • 在市场价格420港元买入1000股腾讯股票。
  • 然后,这1000股股票会被行权,以400港元卖出。
  • 你的亏损:(420 - 400) × 1000 - 10,000(权利金)= 10,000港元亏损。
  • 这比什么都不做好,因为你至少控制了亏损幅度。

正确做法2:买入认购期权(牛市价差)

  • 同时买入一个行权价420的腾讯认购期权,支付权利金5港元。
  • 如果股价继续上涨到450,你的卖出认购期权亏损20港元/股,但买入的认购期权盈利30港元/股(450 - 420),净盈利10港元/股。
  • 如果股价下跌到380,你的卖出认购期权盈利20港元/股(400 - 380 + 5权利金),买入的认购期权亏损5港元/股。
  • 这样,你的风险被限制在了一个区间内。

五、给小朋友的通俗解释

想象一下,你有一个玩具,值100块钱。你告诉小明:“如果三个月后玩具涨价到120块,我就以120块卖给你。现在,你先给我10块钱作为‘定金’。”

  • 情况1:玩具真的涨到120块了。