private static double[] RealDeltaSingleMonde( double maturity, double[] currents, //on le veut (l'actif) dans la monnaie etrangère,sa monnaie de base quoi ici.Tableau de taille 1. double[] volatilities, //les vol dans un ordre suivant: actif puis taux de change de 1euro en dollars double[] interestRates, //les taux d'interets domestiques et etrangers dans cet ordre! double[] correlations, double date) { double[] deltas = new double[2]; deltas[0] = 100 / currents[0] * (TestsQuanto.RealDeltaQuanto0(maturity, 0.85 * currents[0], new double[1] { currents[0] }, volatilities, interestRates, correlations, new double[1] { currents[1] }, date)[0] - TestsQuanto.RealDeltaQuanto0(maturity, 1.15 * currents[0], new double[1] { currents[0] }, volatilities, interestRates, correlations, new double[1] { currents[1] }, date)[0]); deltas[1] = 100 / currents[0] * (TestsQuanto.RealDeltaQuanto0(maturity, 0.85 * currents[0], new double[1] { currents[0] }, volatilities, interestRates, correlations, new double[1] { currents[1] }, date)[1] - TestsQuanto.RealDeltaQuanto0(maturity, 1.15 * currents[0], new double[1] { currents[0] }, volatilities, interestRates, correlations, new double[1] { currents[1] }, date)[1]); return(deltas); }
private static double RealPriceSingleMonde( double maturity, double[] currents, //on le veut (l'actif) dans la monnaie etrangère,sa monnaie de base quoi ici.Tableau de taille 1. double[] volatilities, //les vol dans un ordre suivant: actif puis taux de change de 1euro en dollars double[] interestRates, //les taux d'interets domestiques et etrangers dans cet ordre! double[] correlations, double date) { return(85 * Math.Exp(-interestRates[0] * (maturity - date)) + 100 / currents[0] * TestsQuanto.RealPriceCallQuanto(maturity, 0.85 * currents[0], currents, volatilities, interestRates, correlations, date) - 100 / currents[0] * TestsQuanto.RealPriceCallQuanto(maturity, 1.15 * currents[0], currents, volatilities, interestRates, correlations, date)); }