用C#写了一个二叉树期权定价的类,可以做美式期权,也可以做欧式期权。
二叉树从精确度来讲是美式期权定价里最好的,但是速度太慢。
这里的算法是基于Cox, Ross and Rubinstein(1979)年的论文,算是最经典。
该类中包括了期权价格计算和希腊字母计算
public class BinomialCRR
{
//S:标的资产现价
//X:执行价
//r:无风险利率
//q:连续分红率,Cost of Carry = r-q
//sigma:波动率
//t:距离到期时间
//steps:二叉树步数
//PutCall:Call/Put
//OptionType:European/American
public enum EOptionType
{
European,
American,
}
public EOptionType OptionType
{
get;
set;
}
public enum EPutCall
{
Call,
Put,
}
public EPutCall PutCall
{
get;
set;
}
public double GetOptionValue(double S, double X, double r, double q, double sigma,
double t, int steps, EPutCall PutCall, EOptionType OptionType)
{
double[,] finalPayoff = FinalPayoff(S,