選項

為什麼我看到較長期期權的看跌期權平價存在差異?

  • April 27, 2020

看跌期權平價等式表明call - put = spot - discount*strike。當我將一條線與中間市場call - putstrike(SPX 期權)擬合時,我從中獲得的現貨價格(x 截距)略低於實際現貨價格,並且期權的期限越長,它就會越低。兩年的 LEAP 給我的現貨價格比實際價格低 3-5%。

似乎不是噪音;我今天嘗試了幾次刷新數據,並且可靠地得到了相同的結果。這是什麼意思?

陰謀

這是我的程式碼:

import scipy, yfinance
import matplotlib.pyplot as plt

def opt_after(ticker, days):
   min_date = (date.today() + timedelta(days=days)).strftime('%Y-%m-%d')
   return ticker.option_chain(next(d for d in ticker.options if d >= min_date))

t = yfinance.Ticker("^SPX")
mo2, y2 = opt_after(t, 61), opt_after(t, 365*2)

print('actual', t.history().Close[0])

c, p = mo2.calls.set_index('strike'), mo2.puts.set_index('strike')
par = ((c.bid + c.ask)/2. - (p.bid + p.ask)/2.).dropna()
# Use an outlier-robust fit
riskfree, spot, *_ = scipy.stats.theilslopes(par, par.index)
print('2 month', spot)

plt.scatter(par.index, par)
plt.plot([0, 5000], [spot, 5000*riskfree + spot], label='2 month')

c, p = y2.calls.set_index('strike'), y2.puts.set_index('strike')
par = ((c.bid + c.ask)/2. - (p.bid + p.ask)/2.).dropna()
riskfree, spot, *_ = scipy.stats.theilslopes(par, par.index)
print('2 year', spot)

plt.scatter(par.index, par)
plt.plot([0, 5000], [spot, 5000*riskfree + spot], label='2 year')
plt.legend()
plt.xlabel('strike')
plt.ylabel('call - put')

本文試圖解釋您所面臨的確切問題。他們本質上是說 LEAP 看跌期權在 80% 的情況下相對於看漲期權定價過高(如果您考慮使用指數看跌期權對機構股票投資組合進行廣泛對沖,這是有道理的)。為了擴展他們所說的內容,您應該考慮您在計算中的價格以及它們是如何得出的。

如果您使用結算,與您的較近到期選項相比,它們將基於更廣泛的 LEAP 買賣差價。如果您使用實際的出價/要價,則影響會更加明顯。這偏離了市場對價格/成交量應該是多少(解釋買賣價的一種方式)的嚴格共識,代表了模型輸入在越來越長的時間段內的不確定性。

在我看來,考慮到上述不確定性和交易成本,無論您看到什麼差異,市場已經將套利者的風險定價為試圖從長期看跌/看漲差異中獲利的風險。

引用自:https://money.stackexchange.com/questions/124633