你如何檢查你的期權計算?
我正在實施一堆不同的算法來為期權定價/尋找希臘人:有限差分、蒙地卡羅、二項式……
我不確定如何檢查我的計算。我嘗試使用 QuantLib 為我定價,但它似乎使用了很多實際日期(而我只對年份分數感興趣)並且缺少文件。
我實現了一個有限差分算法,如 Wilmott 的“金融衍生品數學”中所述,他的書中有一些數字。但是我對布萊克-斯科爾斯分析公式的“實施”已經給出了與他不同的結果(雖然相差不大)。
再一次,我剛剛從張的異國期權中輸入了向下和向外的看漲期權公式。他實際上為他的每個公式都經歷了明確的例子。
但是對於與 $ S = 100 $ , $ K= 92 $ , $ H = 95 $ , $ r = 0.08 $ , $ q = 0.03 $ , $ \sigma = 0.2 $ , $ \tau = 0.5 $ 他得到6.936美元,我得到6.908美元。
所以我的問題是,您在檢查程式碼時參考什麼期權價格?
1:按照期權定價公式完整指南中的計算。這本書有許多公式、樣本值和輸出。強烈推薦用於驗證您的結果。顯然,這是現實世界中的量化專家使用的最受歡迎的書籍之一(簡單而快速)。
2:您仍然可以使用 QuantLib 以年份分數進行定價。我有一個例子:
DayCounter dc = Actual360(); Date today = Date::todaysDate(); Date exerciseDate = today + 90; assert(dc.yearFraction(today, exerciseDate) == 0.25);
在這裡,我們將行使日期與今天(定價日期)相差 0.25 年。QuantLib 中使用日期的任何內容都應與您自己的實現相匹配。您可以調整練習日期,列印 yearFraction 並在您自己的程式碼中使用它。
3:使用
fOptions
。fOptions 及其相關fExoticOptions
的是 R 包。他們實施最常見的量化金融模型。例如,我使用以下腳本來驗證我的 Levy Asian 選項:
LevyAsianApproxOption(TypeFlag='c', S=6.80, X=6.90, SA=6.80, r=0.07, b=-0.02, sigma=0.14, Time=0.50, time=0.50)
4:使用
OptionMatrix
。OptionMirx 是在台式電腦上執行的財務計算器。