Esempio n. 1
0
        public AsianOption(AsianOptionParameter param, int MaxDegreeOfParallelism)
        {
            this.param = param;

            //SET THE DRIFT OF THE PROCESS
            double drift = (param.rf - param.div - 0.5 * param.vol * param.vol);

            // the parameter of the Sequence
            object[] par = { "6" };
            // set the stochastic process
            this.mc = new ContinuousMarkovChainGenerator(typeof(SobolSequence), new GeometricBrownianMotion(param.s, param.N, drift, param.vol, param.ttm), param.N, MaxDegreeOfParallelism, par);
        }
Esempio n. 2
0
 public static double PutStrikePayoff(AsianOptionParameter param, double[] markov_chain)
 {
     return(Math.Exp(-param.rf * param.ttm) * Math.Max(markov_chain[markov_chain.Length] - ArrayStatistics.Mean(markov_chain), 0));
 }
Esempio n. 3
0
 public static double PutPricePayoff(AsianOptionParameter param, double[] markov_chain)
 {
     return(Math.Exp(-param.rf * param.ttm) * Math.Max(param.k - ArrayStatistics.Mean(markov_chain), 0));
 }