期權

Quantlib Black Model for Commodity Options (Interest Rate Options) 對 gamma 和價格與 BBG 的關係非常輕,模型不正確嗎?

  • July 3, 2021

我正在使用 QuantLib 開發人員範例來嘗試為 TY 選項定價。Delta 非常接近,但價格和 gamma 相差甚遠(幾乎是 2 倍)。

是我用錯了模型還是模型錯了?

這是程式碼


import QuantLib as ql
import math
calendar = ql.UnitedStates()
bussiness_convention = ql.ModifiedFollowing
settlement_days = 0
day_count = ql.ActualActual()

interest_rate = 25/10000
calc_date = ql.Date(1,7,2021)
yield_curve = ql.FlatForward(calc_date, 
                            interest_rate,
                            day_count,
                            ql.Compounded,
                            ql.Continuous)
ql.Settings.instance().evaluationDate = calc_date
option_maturity_date = ql.Date(23,7,2021)
strike = 133
spot = 132.40625 # futures price
volatility = 3.896/100
flavor = ql.Option.Call

discount = yield_curve.discount(option_maturity_date)
strikepayoff = ql.PlainVanillaPayoff(flavor, strike)
T = yield_curve.dayCounter().yearFraction(calc_date, 
                                         option_maturity_date)
stddev = volatility*math.sqrt(T)

black = ql.BlackCalculator(strikepayoff, 
                          spot, 
                          stddev, 
                          discount)
print("Option Price: " + str(black.value() ))
print("Delta: " + str(black.delta(spot) ))
print("Gamma: " + str(black.gamma(spot) ))
print("Theta: "+  str(black.theta(spot, T) ))
print("Vega: "+  str(black.vega(T) ))

和輸出

這是BBG的截圖 在此處輸入圖像描述

簡短的回答:

  • Gamma 的計算方式不同;
  • 交易所以 QuantLib 不計算的方式報價

長答案:BBG 的 DES 頁面將 Gamma 計算為底層的 1% chg - DES 頁面也沒有靈活性,通常這不是他們提供的最佳計算。

但是,您可以在其 OTC 定價器中載入任何列出的選項以獲取listed模式。TYQ1C 133.00 COMB Comdty OVME載入程式碼(在底層證券旁邊)。您以“錯誤”的方式計算它。此程式碼以價格報價(請參閱OMONHP)- 所以 IVOL 是結果,而不是輸入。價格(股票)將使用上市價格進行顏色編碼。

就 Gamma 而言 - 點擊設置(在 OVME 中) - 使用者設置 - 定價 - 希臘部分 - Gamma - 設置為1 unit underly chg~27。在同一頁面上,您可能會看到fraction of days打勾。所以到期時間是幾分鐘而不是一整天(只剩下 21 天)。我認為 API 欄位 (DES) 也可以做到這一點,但通常 BBG 使用 OV 定價器和 MARS 比這個FLDSAPI 東西更強大(但在這裡非常接近,所以應該沒問題)。

我無法評論 quantlib,但這真的是 PDE 求解器嗎?那是美國的選擇。該程式碼ql.PlainVanillaPayoff讓我想知道這是否不僅僅是標準的黑色?我可能錯了,現在我懶得嘗試了。在任何情況下,PDE 求解器都不是微不足道的,並且會產生一些差異。

編輯

謝謝@mmencke。實際上沒有看到你引用了 qlib 文件,反正 Danny。它表明它是標準的黑色。也就是說,有了這份契約——理論上幾乎沒有區別。您可以通過包含等於 r 的人為股息並使用未來價格作為基礎價格來破解 BS American 定價器(如果有的話)。

老實說,我沒有正確看待這個問題,只是因為我知道伽瑪設置而迅速做出了回應,並且該價格是市場報價。我現在在 OVME 中嘗試過,它基本上是相同的。雖然以上所有內容仍然適用,但理解這些引用是棘手的部分,而不是 qlib 關心的事情。畢竟它只是黑色(並且沒有提及這是什麼契約)。從技術上講,價格和收益率之間也有區別,但 BBG 僅提供與 Black 一致的 TYA 價格 vol。您可以查看並查看EDA Cmdty對數正態空間和正態空間中的 yield vol。OVDV``OVME

報價

OVME 中顯示的股票價值為 1 點。報價以點數和分數為單位,以 100 點為基礎。在您的螢幕截圖中,價格為0'1715.625 美元,Tick Value 為 15.625 美元。因此,您在 OVME 上看到的當天報價是

  • 價格(股份):00'17(報價)
  • 價格(總):價格(份額)*Tick Value = 281.25
  • 價格(%):每股價格(總)/基礎價格 => $ (281.25/1000)/132-13 =0.002124 $

qlib 顯示的內容實際上都不是。這是每股價格(總)= $ 263.9/1000 = 0.2639 $ 在下面的螢幕截圖中。我手動覆蓋 OVME 以使用您的輸入。因此價格不再是 00'17 而是 00'16 7/8 (它現在像你的例子一樣解決價格問題)。右側的螢幕截圖使用了更高的名義值,因此您可以看到精確的小數 - 以及兩者的接近程度 $ 236895.16/1000000=0.26389516 $ . 在此處輸入圖像描述

現在基本上一切都匹配了。Vega 只是在擴展,而 Theta 肯定不是 Bloomberg 的教科書 theta。我習慣將 theta 計算為真正的一日 theta(一種通過減少到期時間來重新定價,保持其他所有條件相同)。我手頭沒有例子,但如果到期時間很短,教科書的 theta 可以超過期權的實際市場價值。

引用自:https://quant.stackexchange.com/questions/65822