⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bondopt_call_coupon_rend_bart.cc

📁 Financial Recipes
💻 CC
字号:
#include <cmath>#include <algorithm>#include <vector>using namespace std;double calc_rendleman_bartter_american_coupon_bond_call(double X,                   // exercise price 							double option_maturity,							double S, 							double M,              // term structure paramters							double interest,      // current short interest rate							double bond_maturity, // time to maturity for underlying bond							double maturity_payment,							int no_coupons,							double bond_coupon_dates[],							double bond_coupons[],							int no_steps){    double delta_t = bond_maturity/no_steps;     double u=exp(S*sqrt(delta_t));    double d=1/u;    double p_up = (exp(M*delta_t)-d)/(u-d);    double p_down = 1.0-p_up;         vector<double> r(no_steps+1);    r[0]=interest*pow(d,no_steps);    double uu=u*u;    int i;    for (i=1;i<=no_steps;++i){ r[i]=r[i-1]*uu;};    // now deal with coupons    vector<double>bond_payments (no_steps+1);  // payments at each node    for (i=0;i<=no_steps;++i) bond_payments[i]=0.0;    for (i=0;i<no_coupons;++i) {	int node = int(no_steps*bond_coupon_dates[i]/bond_maturity);	bond_payments[node] = bond_coupons[i];    };    vector<double> P(no_steps+1);    for (i=0;i<=no_steps;++i){	P[i] = maturity_payment;    };    int no_call_steps=int(no_steps*option_maturity/bond_maturity);    for (int curr_step=no_steps;curr_step>no_call_steps;--curr_step) {	for (i=0;i<curr_step;i++) {	    r[i]  = r[i]*u; 	    P[i] = exp(-r[i]*delta_t)		*(p_down*P[i]+p_up*P[i+1]+bond_payments[curr_step]); 	};    };    vector<double> C(no_call_steps+1);    for (i=0;i<=no_call_steps;++i){ 	C[i]=max(0.0,P[i]-X);    };    for (int curr_step=no_call_steps;curr_step>=0;--curr_step) {	for (i=0;i<curr_step;i++) {	    r[i]  = r[i]*u;	    P[i] = exp(-r[i]*delta_t)		* (p_down*P[i]+p_up*P[i+1] + bond_payments[curr_step+1]); 	    C[i]=max(P[i]-X,		     exp(-r[i]*delta_t)*(p_up*C[i+1]+p_down*C[i])); 	};    };    double c = C[0];    return c;};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -