Exemplo n.º 1
0
 public override double value(double x)
 {
     if (x.IsNotEqual(vol_.value()))
     {
         vol_.setValue(x);
         engine_.calculate();
     }
     return(results_.value.Value - targetValue_);
 }
Exemplo n.º 2
0
        protected override double?controlVariateValue()
        {
            IPricingEngine controlPE = this.controlPricingEngine();

            Utils.QL_REQUIRE(controlPE != null, () => "engine does not provide control variation pricing engine");

            DiscreteAveragingAsianOption.Arguments controlArguments =
                (DiscreteAveragingAsianOption.Arguments)controlPE.getArguments();
            controlArguments = arguments_;
            controlPE.calculate();

            DiscreteAveragingAsianOption.Results controlResults =
                (DiscreteAveragingAsianOption.Results)(controlPE.getResults());

            return(controlResults.value);
        }
Exemplo n.º 3
0
        protected override double?controlVariateValue()
        {
            IPricingEngine controlPE = controlPricingEngine();

            Utils.QL_REQUIRE(controlPE != null, () => "engine does not provide control variation pricing engine");

            VanillaOption.Arguments controlArguments = controlPE.getArguments() as VanillaOption.Arguments;
            controlArguments          = arguments_;
            controlArguments.exercise = new EuropeanExercise(arguments_.exercise.lastDate());

            controlPE.calculate();

            VanillaOption.Results controlResults = controlPE.getResults() as VanillaOption.Results;

            return(controlResults.value);
        }
Exemplo n.º 4
0
        protected override double controlVariateValue()
        {
            IPricingEngine controlPE = controlPricingEngine();

            if (controlPE == null)
            {
                throw new Exception("engine does not provide control variation pricing engine");
            }

            VanillaOption.Arguments controlArguments = controlPE.getArguments() as VanillaOption.Arguments;
            controlArguments          = arguments_;
            controlArguments.exercise = new EuropeanExercise(arguments_.exercise.lastDate());

            controlPE.calculate();

            VanillaOption.Results controlResults = controlPE.getResults() as VanillaOption.Results;

            return(controlResults.value.GetValueOrDefault());
        }
Exemplo n.º 5
0
        protected override double controlVariateValue()
        {
            IPricingEngine controlPE = this.controlPricingEngine();

            if (controlPE == null)
            {
                throw new ApplicationException("engine does not provide " +
                                               "control variation pricing engine");
            }

            DiscreteAveragingAsianOption.Arguments controlArguments =
                (DiscreteAveragingAsianOption.Arguments)controlPE.getArguments();
            controlArguments = arguments_;
            controlPE.calculate();

            DiscreteAveragingAsianOption.Results controlResults =
                (DiscreteAveragingAsianOption.Results)(controlPE.getResults());

            return(controlResults.value.GetValueOrDefault());
        }
 public override double value(double x)
 {
     vol_.setValue(x);
     engine_.calculate();
     return(results_.value.GetValueOrDefault() - targetValue_);
 }