public override double value(double x) { if (x.IsNotEqual(vol_.value())) { vol_.setValue(x); engine_.calculate(); } return(results_.value.Value - targetValue_); }
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); }
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); }
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()); }
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_); }