本文整理汇总了C++中Option::getPayOff方法的典型用法代码示例。如果您正苦于以下问题:C++ Option::getPayOff方法的具体用法?C++ Option::getPayOff怎么用?C++ Option::getPayOff使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Option
的用法示例。
在下文中一共展示了Option::getPayOff方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PrixSE
// MonteCarlo avec arrêt par Standard Error:
double MC::PrixSE(int secondes, Option& Option)
{
unsigned long k=0;
double runningSum(0);
double runningSumCarre(0);
double VarianceEmpirique(100);
double resultatSansEscompte(0);
double resultat(0);
double resultataucarre(0);
while ((secondes<VarianceEmpirique) || (k<10) )
{
k+=1;
double VAR=Option.getPayOff(Option)[1];
runningSum+=VAR;
runningSumCarre+=VAR*VAR;
if (k==1) {
runningSum+=Option.getPayOff(Option)[1];
runningSumCarre+=Option.getPayOff(Option)[1]*Option.getPayOff(Option)[1];
k=2;
}
resultatSansEscompte=(runningSum/k);
resultataucarre=(runningSumCarre/k);
VarianceEmpirique=sqrt((resultataucarre-resultatSansEscompte*resultatSansEscompte)/k);
}
resultat=resultatSansEscompte*exp(-Option.getExpiry()*Option.getr());
return resultat;
}
示例2: runningSum
//Methode de Monte Carlo avec Arrêt par nombre de chermins
QVector <double> MC::PrixA(unsigned long NumberOfPaths, Option& Option)
{
QVector <double> PrixAV(NumberOfPaths);
double runningSum(0);
unsigned long i(0);
while (i<NumberOfPaths-1)
{
i+=1;
runningSum+=0.5*(Option.getPayOff(Option)[0]+Option.getPayOff(Option)[1]);
PrixAV[i]=(runningSum/i)*exp(-Option.getExpiry()*Option.getr());
}
return PrixAV;
}
示例3: PrixCV
double MC::PrixCV(double secondes, Option& Option)
{
unsigned long k(1);
double runningSum(0);
double resultat(0);
double resultatancien(100);
// Date du debut
while (fabs(resultat-resultatancien)>secondes)
{
resultatancien=(runningSum/k)*exp(-Option.getExpiry()*Option.getr());
runningSum+=0.5*(Option.getPayOff(Option)[0]+Option.getPayOff(Option)[1]);
resultat=(runningSum/k)*exp(-Option.getExpiry()*Option.getr());
k+=1;
}
return resultat;
}
示例4: PrixT
//Methode de monte Carlo avec arrêt par le nombre de seconde(s) ecoulee(s)
double MC::PrixT(int secondes, Option& Option)
{
time_t tbegin,tend;
unsigned long k=0;
double texec=0.;
double runningSum(0);
tbegin=time(NULL); // Date du debut
while (texec<secondes)
{
tend=time(NULL); // Date de fin
k+=1;
runningSum+=0.5*(Option.getPayOff(Option)[0]+Option.getPayOff(Option)[1]);
texec=difftime(tend,tbegin); // tend-tbegin (resultat en secondes)
}
double resultat=(runningSum/k)*exp(-Option.getExpiry()*Option.getr());
return resultat;
}