選項
為什麼我看到較長期期權的看跌期權平價存在差異?
看跌期權平價等式表明
call - put = spot - discount*strike
。當我將一條線與中間市場call - put
和strike
(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 買賣差價。如果您使用實際的出價/要價,則影響會更加明顯。這偏離了市場對價格/成交量應該是多少(解釋買賣價的一種方式)的嚴格共識,代表了模型輸入在越來越長的時間段內的不確定性。
在我看來,考慮到上述不確定性和交易成本,無論您看到什麼差異,市場已經將套利者的風險定價為試圖從長期看跌/看漲差異中獲利的風險。