二叉樹期權定價(C 版)

2021-06-14 02:24:13 字數 2171 閱讀 4944

用c#寫了乙個二叉樹期權定價的類,可以做美式期權,也可以做歐式期權。

二叉樹從精確度來講是美式期權定價裡最好的,但是速度太慢。

這裡的演算法是基於cox, ross and rubinstein(1979)年的**,算是最經典。

該類中包括了期權**計算和希臘字母計算

public class binomialcrr			

public eoptiontype optiontype

public enum eputcall

public eputcall putcall

public double getoptionvalue(double s, double x, double r, double q, double sigma,

double t, int steps, eputcall putcall, eoptiontype optiontype)

public double getdelta(double s, double x, double r, double q, double sigma,

double t, int steps, eputcall putcall, eoptiontype optiontype)

double delta = (finalpayoff[0,1]-finalpayoff[1,1])/(price[0,1]-price[1,1]);

return delta;

} public double getgamma(double s, double x, double r, double q, double sigma,

double t, int steps, eputcall putcall, eoptiontype optiontype)

double delta21 = (finalpayoff[0,2]-finalpayoff[1,2])/(price[0,2]-price[1,2]);

double delta22 = (finalpayoff[1,2]-finalpayoff[2,2])/(price[1,2]-price[2,2]);

double gamma = 2*(delta21-delta22)/(price[0,2]-price[2,2]);

return gamma;

} public double gettheta(double s, double x, double r, double q, double sigma,

double t, int steps, eputcall putcall, eoptiontype optiontype)

public double getvega(double s, double x, double r, double q, double sigma,

double t, int steps, eputcall putcall, eoptiontype optiontype)

public double getrho(double s, double x, double r, double q, double sigma,

double t, int steps, eputcall putcall, eoptiontype optiontype)

private double[,] finalpayoff(double s, double x, double r, double q, double sigma,

double t, int steps, eputcall putcall, eoptiontype optiontype)

//依次倒推,比較每個節點立刻行權和不行權哪個收益更大

for(int s=steps-1; s>=0; s--)

}//保留最初三段二叉樹每個節點的期權價值

return finalpayoff;

} private double nodevalue(double value, double nodepayoff, eoptiontype optiontype)

}//每個節點的標的資產**

private double nodeprice(int m, int s, double s, double up, double down)

private double payoff(double s, double x, eputcall putcall)

}}

二叉樹 二叉樹

題目描述 如上所示,由正整數1,2,3 組成了一顆特殊二叉樹。我們已知這個二叉樹的最後乙個結點是n。現在的問題是,結點m所在的子樹中一共包括多少個結點。比如,n 12,m 3那麼上圖中的結點13,14,15以及後面的結點都是不存在的,結點m所在子樹中包括的結點有3,6,7,12,因此結點m的所在子樹...

樹 二叉樹 滿二叉樹 完全二叉樹 完滿二叉樹

目錄名稱作用根 樹的頂端結點 孩子當遠離根 root 的時候,直接連線到另外乙個結點的結點被稱之為孩子 child 雙親相應地,另外乙個結點稱為孩子 child 的雙親 parent 兄弟具有同乙個雙親 parent 的孩子 child 之間互稱為兄弟 sibling 祖先結點的祖先 ancesto...

二叉樹,完全二叉樹,滿二叉樹

二叉樹 是n n 0 個結點的有限集合,它或者是空樹 n 0 或者是由乙個根結點及兩顆互不相交的 分別稱為左子樹和右子樹的二叉樹所組成。滿二叉樹 一顆深度為k且有2 k 1個結點的二叉樹稱為滿二叉樹。說明 除葉子結點外的所有結點均有兩個子結點。所有葉子結點必須在同一層上。完全二叉樹 若設二叉樹的深度...