📄 欧式期权1.txt
字号:
#include<iostream>
#include<cmath>
#include<time.h>
#include <stdlib.h>
using namespace std;
double gaussrand()
{
static double V1, V2, S;
static int phase = 0;
double X;
if ( phase == 0 ) {
do {
double U1 = (double)rand() / RAND_MAX;
double U2 = (double)rand() / RAND_MAX;
V1 = 2 * U1 - 1;
V2 = 2 * U2 - 1;
S = V1 * V1 + V2 * V2;
} while(S >= 1 || S == 0);
X = V1 * sqrt(-2 * log(S) / S);
} else
X = V2 * sqrt(-2 * log(S) / S);
phase = 1 - phase;
return X;
}
double example()
{
double sita=0.25;
double p0=20;
int n;
for(n=0;n<(365*2);n++)
{
p0=p0+(sqrt(p0/20.0)*sita*gaussrand()+p0*(exp(0.08/365.0)-1));
}
return p0;
}
double compare(double k)
{
double f;
if((k-20)>0)
f=k-20;
else f=0;
return f;
}
int main()
{
double p1, evalue,price,sum=0,sum1=0;
int i=0;
double Top_limit=100000.0;
srand(time(NULL));
while(i<Top_limit)
{
p1=example();
sum=sum+p1;
sum1=sum1+compare(p1);
i++;
}
evalue=(sum/Top_limit);
price=sum1*exp(-0.08*2)/Top_limit;
cout<<sum<<endl;
cout<<evalue<<endl;
cout<<sum1<<endl;
cout<<price<<endl;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -