From 4e723ffa229db059601d3a0c47f6c229652ee208 Mon Sep 17 00:00:00 2001 From: Bertrand Date: Wed, 20 Apr 2016 21:56:00 +0200 Subject: modification de la structure asian option --- src/opti.cpp | 2 +- src/option.hpp | 16 +++++++++++----- src/projet.cpp | 13 +++++-------- 3 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/opti.cpp b/src/opti.cpp index 18759cf..8a9b34e 100644 --- a/src/opti.cpp +++ b/src/opti.cpp @@ -11,7 +11,7 @@ double f (const std::vector &X, std::vector &grad, void *params) for(int i=0; i, double> { - asian_option(double r, double T, double S0, double V, int d, double K) - : r(r), T(T), S0(S0), V(V), d(d), K(K) {}; + asian_option(double r, double T, double S0, double V, double K, bool call = true) + : r(r), T(T), S0(S0), V(V), K(K) {}; - double operator()(std::vector X) const { + double operator()(std::vector &X) const { + int d= X.size(); std::vector S(d); S[0]= S0*exp((r-V*V/2)*(T/d)+V*sqrt(T/d)*X[0]); for(int i=1;i, double> double T; double S0; double V; - int d; double K; + bool call; }; diff --git a/src/projet.cpp b/src/projet.cpp index af322ed..9d3ac15 100644 --- a/src/projet.cpp +++ b/src/projet.cpp @@ -82,7 +82,7 @@ std::vector normalize (std::vector mu) { u = normalize(mu); vector q = quantile_norm(100, 1); vector p(100, 0.01); - asian_option A(0.05, 1.0, 50, 0.1, d, 45); + asian_option A(0.05, 1.0, 50, 0.1, 45, true); exponential_tilt G(mu, A); typedef compose_t, multi_gaussian_truncated> tilted_option; std::vector X; @@ -90,16 +90,13 @@ std::vector normalize (std::vector mu) { for(int i=1; i<100; i++) { X.push_back(compose(G, multi_gaussian_truncated(q[i-1],q[i], u))); } - for(int i=0; i<100; i=i+10){ - std::cout< S(p, X); - S.draw(1000); + S.draw(1000000); cout<<"l'estimateur de la moyenne est :"< > data1, vector< vector > data2) { +int make_table1(vector< vector > data1, vector< vector > data2) { std::fstream fs("doc/table.tex", std::fstream::out);; fs< > data1 = exemple1_stratified(); cout<<"Randomised quasi Monte-Carlo sur l'exemple 1 de la normale"< > data2 = exemple1_rqmc(); - make_table(data1, data2); + make_table1(data1, data2); exemple2_stratified(16); return 0; -- cgit v1.2.3-70-g09d2