關於二項式格子期權估值的幾個問題
我剛剛開始應用 Binomial-Lattice,但是我還沒有完全理解一些事情。我的問題是:
- 從右側終端(最遠)節點中的值向後(左側)工作的概念是什麼。為什麼我們需要做反向歸納?
S
我在某個時間開始了我的第一個節點t=1
,然後我只需要知道在該時間之前的任何地方的選項值,直到選項到期。反向歸納得到的值的需要和意義是什麼,與正向歸納有什麼不同?- 現在,如果我應用反向歸納,那麼我在起始節點(最左邊的節點)處得到的值遠大於在任何其他節點處的值。這意味著什麼?
讓我們以這個為例:我從
S=1.5295e+009
起始節點開始,然後在使用 Binomial-Lattice 並進行反向歸納之後,我到達9.9708e+10
起始節點。為什麼它增加了這麼多,這意味著什麼?如果我將時間步長減少兩倍,那麼我會進一步得到非常高的值,例如-1.235e+25
3. 當我們在起始節點之前移動時,我們在每個節點中獲得的值(即節點右側到最左側節點的值)是當時類似於現值 (PV) 或淨現值 (NPV) 的值?**編輯:**這是我的二項式格子的 Matlab 程式碼:
function [price,BLOV_lattice]=BLOV_general(S0,K,sigma,r,T,nColumn) % BLOV stands for Binomial Lattice Option Valuation %% Constant parameters del_T=T./nColumn; % where n is the number of columns in binomial lattice u=exp(sigma.*sqrt(del_T)); d=1./u; p=(exp(r.*del_T)-d)./(u-d); a=exp(-r.*del_T); %% Initializing the lattice Stree=zeros(nColumn+1,nColumn+1); BLOV_lattice=zeros(nColumn+1,nColumn+1); %% Developing the lattice for i=0:nColumn for j=0:i Stree(j+1,i+1)=S0.*(u.^j)*(d.^(i-j)); end end for i=0:nColumn BLOV_lattice(i+1,nColumn+1)=max(Stree(i+1,nColumn+1)-K,0); end for i=nColumn:-1:1 for j=0:i-1 BLOV_lattice(j+1,i)=a.*(((1-p).*BLOV_lattice(j+1,i+1))+(p.*BLOV_lattice(j+2,i+1))); end end price=BLOV_lattice(1,1);
**編輯 2(另一個問題):**如果二項式格子給了我選項 PV,並且我的 PV 應該隨著時間而減少,那麼為什麼我的終端節點中超過一半的值顯示的值比我開始時的值增加(
=S0
)。數值見附圖。
讓我們從問題(2)開始。如果您沒有獲得 $ S=1.5295e+009 $ 後退後,您的二叉樹程式碼中有一個錯誤。您可能希望在繼續之前找到並消除它。
一項簡單的檢查是使所有終端節點的值都為 1.0。您應該獲得初始節點具有值 $ e^{-rT} $ . 當然,這假設您使用的是不近似利率項的更好的樹公式之一。此外,對照線上美式期權定價網站之一檢查您的估值。
現在,您向後推的原因是,通俗地說,該樹旨在表示在有關股票價格如何變化的一組特定假設和情景下的期權現值。請注意,在建構過程中,您有效地“轉發”了股票價格 $ S $ 在樹上(儘管以微不足道的方式)。考慮到您在所有這些股票價格情景中所掌握的知識,只有在樹的終端節點處,期權價格才能確定地清楚地知道。
現貨溢價過程允許您在以前不知道期權價值是什麼的節點/場景中形成期權的投機價值。這整個業務在 Black-Scholes 公式中對您隱藏,但由於需要考慮場景中的早期練習,因此在樹中變得更加明確。
為什麼你建構的樹是處理期權定價問題的正確技術,背後有一堆複雜的隨機微積分和動態規劃理論,但上面應該給你一個基本的想法。