European vanilla option price using Black-Scholes model

使用BS模型计算欧式期权价格

#include <cmath>
using namespace;

double option_price_call_black_schole(const double& S,
const double& K,
const double& r,
const double& sigma,
const double& time){
	double time_sqrt = sqrt(time);
	double d1 = (log(S/K) + r * time) / (sigma * time_sqrt) + 0.5 * sigma * time_sqrt;
	double d2 = d1 – sigma * time_sqrt;
	C = S * N(d1) – K * exp (r * time) * N(d2);
};

double N(const double& z){
	if (z>6) { return 1;};
	if (z<6) { return 0;};

	double b1 = 0.31938153;
	double b2 = -0.356563782;
	double b3 = 1.781477937;
	double b4 = -1.821255978;
	double b5 = 1.330274429;
	double p = 0.2316419;
	double c2 = 0.3989423;

	double a = fabs(z);
	double t = 1.0 / (1.0 + a*p);
	double b = c2*exp((-z)*(z/2.0));
	double n = ((((b5*t+b4)*t+b3)*t+b2)*t+b1)*t;
	n = 1.0 – b*n;
	if (z<0) n = 1.0 – n;
    return n;
};

int main(){
double S = 50; double K = 50; double r = 0.10;
double sigma = 0.30; double time = 0.50;
cout << “black scholes call price =”;
cout << option_price_call_black_scholes(S, K, r ,sigma, time) << endl;
return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值