// file: fin_recipes.h
// author: Bernt Arne Oedegaard
// defines all routines in the financial numerical recipes "book"
#ifndef _FIN_RECIPES_H_
#define _FIN_RECIPES_H_
#include <vector>
#include <cmath>
using namespace std;
///////// present value ////////////////////////////////////
// discrete coumpounding
/////////////////////////////////
// discrete, annual compounding
double cash_flow_pv_discrete ( const vector<double>& cflow_times, const vector<double>& cflow_amounts,
const double& r);
double cash_flow_irr_discrete(const vector<double>& cflow_times, const vector<double>& cflow_amounts);
bool cash_flow_unique_irr(const vector<double>& cflow_times, const vector<double>& cflow_amounts);
double bonds_price_discrete(const vector<double>& cashflow_times, const vector<double>& cashflows,
const double& r);
double bonds_yield_to_maturity_discrete(const vector<double>& times,
const vector<double>& amounts,
const double& bondprice);
double bonds_duration_discrete(const vector<double>& times,
const vector<double>& cashflows,
const double& r);
double bonds_duration_macaulay_discrete(const vector<double>& cashflow_times,
const vector<double>& cashflows,
const double& bond_price);
double bonds_duration_modified_discrete (const vector<double>& times,
const vector<double>& amounts,
const double& bond_price);
double bonds_convexity_discrete(const vector<double>& cflow_times,
const vector<double>& cflow_amounts,
const double& r);
/////////////////////////////////
// continous compounding.
double cash_flow_pv(const vector<double>& cflow_times,const vector<double>& cflow_amounts,const double& r);
double cash_flow_irr(const vector<double>& cflow_times, const vector<double>& cflow_amounts);
double bonds_price(const vector<double>& cashflow_times, const vector<double>& cashflows, const double& r);
double bonds_price(const vector<double>& coupon_times, const vector<double>& coupon_amounts,
const vector<double>& principal_times, const vector<double>& principal_amounts,
const double& r);
double bonds_duration(const vector<double>& cashflow_times, const vector<double>& cashflows,
const double& r);
double bonds_yield_to_maturity(const vector<double>& cashflow_times,const vector<double>& cashflow_amounts,
const double& bondprice);
double bonds_duration_macaulay(const vector<double>& cashflow_times, const vector<double>& cashflows,
const double& bond_price);
double bonds_convexity(const vector<double>& cashflow_times, const vector<double>& cashflow_amounts,
const double& y );
/// term structure basics
double term_structure_yield_from_discount_factor(const double& dfact, const double& t);
double term_structure_discount_factor_from_yield(const double& r, const double& t);
double term_structure_forward_rate_from_discount_factors(const double& d_t1, const double& d_t2,
const double& time);
double term_structure_forward_rate_from_yields(const double& r_t1, const double& r_t2,
const double& t1, const double& t2);
double term_structure_yield_linearly_interpolated(const double& time,
const vector<double>& obs_times,
const vector<double>& obs_yields);
// a term structure class
class term_structure_class {
public:
virtual ~term_structure_class();
virtual double r(const double& t) const; // short rate, yield on zero coupon bond
virtual double d(const double& t) const; // discount_factor
virtual double f(const double& t1, const double& t2) const; // forward_rate
};
class term_structure_class_flat : public term_structure_class {
private:
double R_; // interest rate
public:
term_structure_class_flat(const double& r);
virtual ~term_structure_class_flat();
virtual double r(const double& t) const;
void set_int_rate(const double& r);
};
class term_structure_class_interpolated : public term_structure_class {
private:
vector<double> times_; // use to keep a list of yields
vector<double> yields_;
void clear();
public:
term_structure_class_interpolated();
term_structure_class_interpolated(const vector<double>& times, const vector<double>& yields);
virtual ~term_structure_class_interpolated();
term_structure_class_interpolated(const term_structure_class_interpolated&);
term_structure_class_interpolated operator= (const term_structure_class_interpolated&);
int no_observations() const { return times_.size(); };
virtual double r(const double& T) const;
void set_interpolated_observations(vector<double>& times, vector<double>& yields);
};
// using the term structure classes
double bonds_price(const vector<double>& cashflow_times,
const vector<double>& cashflows,
const term_structure_class& d);
double bonds_duration(const vector<double>& cashflow_times,
const vector<double>& cashflow_amounts,
const term_structure_class& d);
double bonds_convexity(const vector<double>& cashflow_times,
const vector<double>& cashflow_amounts,
const term_structure_class& d);
//// Futures pricing
double futures_price(const double& S, const double& r, const double& time_to_maturity);
/// Binomial option pricing
// one periode binomial
double option_price_call_european_binomial_single_period( const double& S, const double& K, const double& r,
const double& u, const double& d);
// multiple periode binomial
double option_price_call_european_binomial_multi_period_given_ud( const double& S, const double& K, const double& r,
const double& u, const double& d, const int& no_periods);
// multiple periode binomial
vector< vector<double> > binomial_tree(const double& S0, const double& u,const double& d,
const int& no_steps);
/// Black Scholes formula //////////////////////////////////////////
double option_price_call_black_scholes(const double& S, const double& K, const double& r,
const double& sigma, const double& time) ;
double option_price_put_black_scholes (const double& S, const double& K, const double& r,
const double& sigma, const double& time) ;
double
option_price_implied_volatility_call_black_scholes_newton( const double& S, const double& K,
const double& r, const double& time,
const double& option_price);
double option_price_implied_volatility_call_black_scholes_bisections( const double& S, const double& K,
const double& r, const double& time,
const double& option_price);
double option_price_delta_call_black_scholes(const double& S, const double& K, const double& r,
const double& sigma, const double& time);
double option_price_delta_put_black_scholes (const double& S, const double& K, const double& r,
const double& sigma, const double& time);
void option_price_partials_call_black_scholes(const double& S, const double& K, const double& r,
const double& sigma, const double& time,
double& Delta, double& Gamma, double& Theta,
double& Vega, double& Rho);
void option_price_partials_put_black_scholes(const double& S, const double& K, const double& r,
const double& sigma, const double& time,
double& Delta, double& Gamma, double& Theta,
double& Vega, double& Rho);
/// warrant price
double warrant_price_adjusted_black_scholes(const double& S, const double& K,
const double& r, const double& sigma,
const double& time,
const double& no_warrants_outstanding,
const double& no_shares_outstanding);
double warrant_price_adjusted_black_scholes(const double& S, const double& K,
const double& r, const double& q,
const double& sigma, const double& time,
const double& no_warrants_outstanding,
const double& no_shares_outstanding);
/// Extensions of the Black Scholes model //////////////
double option_price_europe
没有合适的资源?快使用搜索试试~ 我知道了~
examples_cc.rar_C 期权定价_discount factor_visual c_期权定价 C_金融 证券
共34个文件
cc:29个
h:4个
makefile:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 68 浏览量
2022-09-24
01:33:50
上传
评论
收藏 20KB RAR 举报
温馨提示
证券期权模型,信用定价模型,金融期权模型
资源推荐
资源详情
资源评论
收起资源包目录
examples_cc.rar (34个子文件)
examples_cc
examples_interest_rate_trees_gbm.cc 2KB
examples_binomial_approximations.cc 3KB
examples_alternative_formulas.cc 1KB
examples_black_scholes_extensions.cc 2KB
fin_recipes_itpp.h 598B
examples_simulation.cc 5KB
examples_warrants.cc 566B
examples_trinomial.cc 780B
examples_finite_differences.cc 794B
examples_binomial_term_structure_models.cc 819B
examples_binomial.cc 635B
examples_term_structure_model.cc 4KB
examples_black_scholes.cc 2KB
examples_implicit_finite_diff_using_newmat.cc 891B
makefile 1KB
examples_bond_options.cc 956B
examples_credit_risk.cc 527B
fin_recipes_extra.h 1KB
examples_average_and_lookback_options.cc 3KB
examples_implicit_finite_diff_using_itpp.cc 737B
examples_interest_rate_trees_ho_lee.cc 1KB
examples_normal_distribution.cc 749B
examples_term_structure_derivatives.cc 508B
fin_recipes_newmat.h 423B
examples_approximations.cc 889B
examples_generic_binomial.cc 1KB
examples_term_structure.cc 4KB
examples_bond_pricing_flat_term_structure.cc 2KB
examples_mean_variance_cxx_newmat.cc 1KB
examples_forwards_futures.cc 373B
fin_recipes.h 28KB
run_all_examples.cc 2KB
examples_mean_variance_cxx_itpp.cc 1KB
examples_present_value.cc 951B
共 34 条
- 1
资源评论
小贝德罗
- 粉丝: 71
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2023-04-06-项目笔记 - 第一百五十四阶段 - 4.4.2.152全局变量的作用域-152 -2024.06.04
- 松哥解协议松哥解协议松哥解协议松哥解协议松哥解协议
- 618节日618节日618节日
- tensorflow-gpu-2.9.1-cp37-cp37m-win-amd64.whl
- tensorflow-gpu-2.9.0-cp37-cp37m-win-amd64.whl
- tensorflow-gpu-2.9.0-cp39-cp39-win-amd64.whl
- lcd daimalcd daima
- 电影领域-推荐算法-个性化内容-观影决策-电影推荐小程序.zip
- 电气控制PLC考试题库
- 如何使用MATLAB简介
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功