Ejemplo n.º 1
0
        public override void setupArguments(IPricingEngineArguments args)
        {
            base.setupArguments(args);

            DiscreteAveragingAsianOption.Arguments moreArgs = args as DiscreteAveragingAsianOption.Arguments;
            Utils.QL_REQUIRE(moreArgs != null, () => "wrong argument type");

            moreArgs.averageType        = averageType_;
            moreArgs.runningAccumulator = runningAccumulator_;
            moreArgs.pastFixings        = pastFixings_;
            moreArgs.fixingDates        = fixingDates_;
        }
Ejemplo n.º 2
0
        public override void setupArguments(IPricingEngineArguments args)
        {
            base.setupArguments(args);

            DiscreteAveragingAsianOption.Arguments moreArgs = args as DiscreteAveragingAsianOption.Arguments;
            if (!(moreArgs != null))
            {
                throw new Exception("wrong argument type");
            }

            moreArgs.averageType        = averageType_;
            moreArgs.runningAccumulator = runningAccumulator_;
            moreArgs.pastFixings        = pastFixings_;
            moreArgs.fixingDates        = fixingDates_;
        }
Ejemplo n.º 3
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);
        }
Ejemplo n.º 4
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());
        }