期權

SABR PDE 點/前上邊界條件實現

  • June 19, 2018

執行我的有限差分程式碼時,我觀察到一些奇怪的事情。

雖然實現了經典(非還原)SABR 模型,但我初始化了變數,使其應等於 Black-Scholes。

邊界條件

  • 價格下限
  • 波動率下限
  • 波動率上限

是狄利克雷式的(只是設置等於一個值)。

對於遠期價格的上限 ( $ F $ ),我想設置諾伊曼條件 $ \Gamma=0 $ ,因為我相信對於大標價的所有(看跌期權和看漲期權)期權都是如此。這種情況產生:

$ \dfrac{\partial^2 V}{\partial x^2}(\dfrac{\partial x}{\partial F})^2+\dfrac{\partial V}{\partial x}\dfrac{\partial^2 x}{\partial F^2}=\Gamma=0 $

請注意,額外的條款與 $ x $ 和 $ F $ 是由於我的變數轉換從 $ F $ 至 $ x $ .

6 月 19 日編輯: @Yian_Pap 我同意,讓我們忘記平滑條件,專注於讓 Neumann 條件正常工作。讓我具體說明一下我應用您的方法的步驟:) 這就是我目前實現它的方式,但我再次對 FD 不太熟悉(這是我的第一個案例):

  • 首先,我並不清楚從什麼 PDE 開始(定價方程?或者只是 $ \Gamma=0 $ 方程?)。如果我們從 $ \Gamma=0 $ ,我們為什麼要擔心交叉導數項是否為 0?
  • 如果我從 $ \Gamma=0 $ ,在 F 中沒有變換,則

$ \dfrac{\partial^2 V}{\partial F^2} = 0 $

使用二階中心 FD 近似離散化,

$ \dfrac{1}{\Delta F^2} (V_{N-1,j} - 2V_{N,j} + V_{N+1,j}) = 0 $ ,

$ V_{N,j}=\dfrac{1}{2}(V_{N-1,j}+V_{N+1,j}) $ (1),

其中包含外部網格點 $ V_{N+1,j} $ ,我假設你的意思是你的答案?

然後,據我了解,您對一階導數的評論 $ F \to \infty $ 已知且恆定,您的意思是看漲期權(看跌期權)的增量為 1 (0)?

$ \dfrac{\partial V}{\partial F} = \Delta = 1 $ ,

$ V_{N,j} = \Delta F + V_{N-1,j} $ ,

用這個來代替 $ V_{N+1,j} $ 在 (1) 中,

$ V_{N,j} = \Delta F + V_{N-1,j} $ ,

和 $ \Delta F $ F中的步長。然後我可以將其合併到係數矩陣中,如下所示。(附帶問題:為什麼不使用 $ \Delta=1 $ 直接條件?)

說我有隱式方案 $ V_{i,j,k} = z_1V_{i-1,j,k+1} + z_2V_{i,j,k+1} + z_3V_{i+1,j,k+1} $ . 然後對於一些 i (即在矩陣中的某些地方) $ V_{i+1,j} $ 是一個界限,因此設置了矩陣條目 $ 0 $ . 通過添加合併綁定 $ z_3 $ 至 $ z_2 $ 在矩陣中的每個地方 $ i=N-1 $ . 另外添加 $ z_3\Delta F $ . 數學上,

$ V_{N-1,j,k} = z_1V_{N-2,j,k+1} + (z_2+z_3)V_{N-1,j,k+1} + z_3\Delta F $ .

這是否是對應該如何實現上限 F 諾依曼條件的正確理解?

無論您的離散 PDE 引用在哪裡 $ V_{N,j,k+1} $ ,您將使用您的表達式 $ V_{N,j,k+1} $ 按照 $ V_{N−1,j,k+1} $ 和 $ V_{N−2,j,k+1} $ 消除 $ V_{N,j,k+1} $ 從離散方程。這意味著您將解決的代數係統將不涉及任何 $ V_{N,j,k+1} $ 直接值(所以沒有 $ C_{k+1} $ F 離散化的貢獻)。相反,您將增加系統係數 $ V_{N−1,j,k+1} $ 和 $ V_{N−2,j,k+1} $ 相應地點。

編輯 6 月 18 日。好的,讓我們重新開始,假設您在正向 F 中使用定價 PDE(無轉換)。如果您使用平滑條件,則需要使用單邊有限差分近似,以便您可以在最後一行關閉代數係統 $ F=F_{max} $ . 也就是說,您選擇這種(平滑)條件的原因是因為當您嘗試使用 Neumann 時,您沒有得到正確的結果。但這很可能是因為您在某處犯了錯誤。對於網格的最後一行點,我會再次嘗試如下:F 中的一階導數(我們稱之為 $ D_{F\to\infty} $ ) 你已經知道了(你從 Neumann 條件中知道它的值),所以這不需要在邊界上離散化,你只需使用它的已知值。交叉導數在那裡也變為零,因為 F 方向上的一階導數是恆定的(即使在一般情況下 $ \nu $ 不為零)。您需要離散化的 F 方向上的唯一導數是二階導數,它將引用網格外的一個點(使用標準的二階中心 FD 近似)。離散方程中的這個“虛構”點將被其外推值替換為 $ V_{N+1,j,k+1} = V_{N,j,k+1} + D_{F\to\infty} d_F $ . 這將再次關閉您的系統,您就可以開始了。嘗試讓我知道是否仍有不清楚的地方。

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