在美国,现货价格为20美元,行使价X为21美元。 如果您愿意,可以使用符号K作为执行价格,它与x相同。无风险利率为每年12%,股票价格的波动性σ为每年20%。根据上边的信息生成出二叉树期权定价的C++代码生成出
时间: 2024-02-12 11:09:56 浏览: 60
以下是基于二叉树定价模型的期权定价C++代码:
```c++
#include <iostream>
#include <cmath>
using namespace std;
double max(double a, double b) {
return (a > b) ? a : b;
}
double binomialTreeOptionPrice(double S, double X, double r, double sigma, double T, int N, char optType) {
double deltaT = T / N;
double up = exp(sigma * sqrt(deltaT));
double down = exp(-sigma * sqrt(deltaT));
double pUp = (exp(r * deltaT) - down) / (up - down);
double pDown = 1 - pUp;
// Create and initialize the stock price tree
double stockPrice[N + 1][N + 1];
stockPrice[0][0] = S;
for (int i = 1; i <= N; i++) {
stockPrice[i][0] = stockPrice[i - 1][0] * up;
for (int j = 1; j <= i; j++) {
stockPrice[i][j] = stockPrice[i - 1][j - 1] * down;
}
}
// Create and initialize the option price tree
double optionPrice[N + 1][N + 1];
for (int j = 0; j <= N; j++) {
if (optType == 'C') {
optionPrice[N][j] = max(stockPrice[N][j] - X, 0.0);
} else {
optionPrice[N][j] = max(X - stockPrice[N][j], 0.0);
}
}
// Traverse the tree backwards to calculate option price at t=0
for (int i = N - 1; i >= 0; i--) {
for (int j = 0; j <= i; j++) {
if (optType == 'C') {
optionPrice[i][j] = max(stockPrice[i][j] - X, exp(-r * deltaT) * (pUp * optionPrice[i + 1][j + 1] + pDown * optionPrice[i + 1][j]));
} else {
optionPrice[i][j] = max(X - stockPrice[i][j], exp(-r * deltaT) * (pUp * optionPrice[i + 1][j + 1] + pDown * optionPrice[i + 1][j]));
}
}
}
// Return the option price at t=0
return optionPrice[0][0];
}
int main() {
double S = 20; // Underlying stock price
double X = 21; // Strike price
double r = 0.12; // Risk-free interest rate
double sigma = 0.20; // Volatility of underlying stock
double T = 1.0; // Time to expiration of option
int N = 100; // Number of time steps in binomial tree
char optType = 'C'; // Option type: 'C' for call option, 'P' for put option
double optionPrice = binomialTreeOptionPrice(S, X, r, sigma, T, N, optType);
cout << "Option price: " << optionPrice << endl;
return 0;
}
```
这段代码实现了一个基于二叉树的期权定价模型,用于计算欧式看涨/看跌期权的价格。其中,输入参数包括标的资产价格、执行价格、无风险利率、资产波动率、剩余到期时间和期权类型。输出结果为期权价格。
阅读全文