コード例 #1
0
        public FDEuropeanEngine(GeneralizedBlackScholesProcess process, int timeSteps, int gridPoints, bool timeDependent)
            : base(process, timeSteps, gridPoints, timeDependent)
        {
            prices_ = new SampledCurve(gridPoints);

            process.registerWith(update);
        }
コード例 #2
0
        public FDEuropeanEngine(GeneralizedBlackScholesProcess process, int timeSteps, int gridPoints, bool timeDependent)
            : base(process, timeSteps, gridPoints, timeDependent)
        {
            prices_ = new SampledCurve(gridPoints);

            process.registerWith(update);
        }
コード例 #3
0
ファイル: StulzEngine.cs プロジェクト: sandboxorg/QLNet
 public StulzEngine(GeneralizedBlackScholesProcess process1, GeneralizedBlackScholesProcess process2, double correlation)
 {
     process1_ = process1;
     process2_ = process2;
     rho_      = correlation;
     process1_.registerWith(update);
     process2_.registerWith(update);
 }
コード例 #4
0
        public AnalyticDoubleBarrierEngine(GeneralizedBlackScholesProcess process, int series = 5)
        {
            process_ = process;
            series_  = series;
            f_       = new CumulativeNormalDistribution();

            process_.registerWith(update);
        }
コード例 #5
0
        public BinomialVanillaEngine(GeneralizedBlackScholesProcess process, int timeSteps)
        {
            process_   = process;
            timeSteps_ = timeSteps;

            Utils.QL_REQUIRE(timeSteps > 0, () => "timeSteps must be positive, " + timeSteps + " not allowed");

            process_.registerWith(update);
        }
コード例 #6
0
        public AnalyticBSMHullWhiteEngine(double equityShortRateCorrelation,
                                          GeneralizedBlackScholesProcess process,
                                          HullWhite model)
            : base(model)
        {
            rho_     = equityShortRateCorrelation;
            process_ = process;

            process_.registerWith(update);
        }
コード例 #7
0
        public BinomialVanillaEngine(GeneralizedBlackScholesProcess process, int timeSteps)
        {
            process_   = process;
            timeSteps_ = timeSteps;

            if (!(timeSteps > 0))
            {
                throw new ApplicationException("timeSteps must be positive, " + timeSteps + " not allowed");
            }

            process_.registerWith(update);
        }
コード例 #8
0
        // Constructor
        public FdBlackScholesRebateEngine(
            GeneralizedBlackScholesProcess process,
            int tGrid = 100, int xGrid = 100, int dampingSteps = 0,
            FdmSchemeDesc schemeDesc        = null,
            bool localVol                   = false,
            double?illegalLocalVolOverwrite = null)
        {
            process_                  = process;
            tGrid_                    = tGrid;
            xGrid_                    = xGrid;
            dampingSteps_             = dampingSteps;
            schemeDesc_               = schemeDesc == null ? new FdmSchemeDesc().Douglas() : schemeDesc;
            localVol_                 = localVol;
            illegalLocalVolOverwrite_ = illegalLocalVolOverwrite;

            process_.registerWith(update);
        }
コード例 #9
0
        /*! \param maxTimeSteps is used to limit timeSteps when using Boyle-Lau
         *           optimization. If zero (the default) the maximum number of
         *           steps is calculated by an heuristic: anything when < 1000,
         *           otherwise no more than 5*timeSteps.
         *           If maxTimeSteps is equal to timeSteps Boyle-Lau is disabled.
         *           Likewise if the lattice is not CoxRossRubinstein Boyle-Lau is
         *           disabled and maxTimeSteps ignored.
         */
        public BinomialBarrierEngine(GetTree getTree, GetAsset getAsset,
                                     GeneralizedBlackScholesProcess process, int timeSteps, int maxTimeSteps = 0)
        {
            process_      = process;
            timeSteps_    = timeSteps;
            maxTimeSteps_ = maxTimeSteps;
            getTree_      = getTree;
            getAsset_     = getAsset;

            Utils.QL_REQUIRE(timeSteps > 0, () =>
                             "timeSteps must be positive, " + timeSteps + " not allowed");
            Utils.QL_REQUIRE(maxTimeSteps == 0 || maxTimeSteps >= timeSteps, () =>
                             "maxTimeSteps must be zero or greater than or equal to timeSteps, " + maxTimeSteps + " not allowed");
            if (maxTimeSteps_ == 0)
            {
                maxTimeSteps_ = Math.Max(1000, timeSteps_ * 5);
            }
            process_.registerWith(update);
        }
コード例 #10
0
 // constructor
 public MCDiscreteAveragingAsianEngine(
     GeneralizedBlackScholesProcess process,
     int maxTimeStepsPerYear,
     bool brownianBridge,
     bool antitheticVariate,
     bool controlVariate,
     int requiredSamples,
     double requiredTolerance,
     int maxSamples,
     ulong seed) : base(antitheticVariate, controlVariate)
 {
     process_             = process;
     maxTimeStepsPerYear_ = maxTimeStepsPerYear;
     requiredSamples_     = requiredSamples;
     maxSamples_          = maxSamples;
     requiredTolerance_   = requiredTolerance;
     brownianBridge_      = brownianBridge;
     seed_ = seed;
     process_.registerWith(update);
 }
コード例 #11
0
        public FdBlackScholesVanillaEngine(
            GeneralizedBlackScholesProcess process,
            FdmQuantoHelper quantoHelper = null,
            int tGrid = 100, int xGrid = 100, int dampingSteps = 0,
            FdmSchemeDesc schemeDesc            = null,
            bool localVol                       = false,
            double?illegalLocalVolOverwrite     = null,
            CashDividendModel cashDividendModel = CashDividendModel.Spot)
        {
            process_                  = process;
            tGrid_                    = tGrid;
            xGrid_                    = xGrid;
            dampingSteps_             = dampingSteps;
            schemeDesc_               = schemeDesc == null ? new FdmSchemeDesc().Douglas() : schemeDesc;
            localVol_                 = localVol;
            illegalLocalVolOverwrite_ = illegalLocalVolOverwrite;
            quantoHelper_             = quantoHelper;

            process_.registerWith(update);
        }
コード例 #12
0
        public MCBarrierEngine(GeneralizedBlackScholesProcess process,
                               int?timeSteps,
                               int?timeStepsPerYear,
                               bool brownianBridge,
                               bool antitheticVariate,
                               int?requiredSamples,
                               double?requiredTolerance,
                               int?maxSamples,
                               bool isBiased,
                               ulong seed)
            : base(antitheticVariate, false)
        {
            process_           = process;
            timeSteps_         = timeSteps;
            timeStepsPerYear_  = timeStepsPerYear;
            requiredSamples_   = requiredSamples;
            maxSamples_        = maxSamples;
            requiredTolerance_ = requiredTolerance;
            isBiased_          = isBiased;
            brownianBridge_    = brownianBridge;
            seed_ = seed;

            Utils.QL_REQUIRE(timeSteps != null || timeStepsPerYear != null, () => "no time steps provided");
            Utils.QL_REQUIRE(timeSteps == null || timeStepsPerYear == null, () => "both time steps and time steps per year were provided");

            if (timeSteps != null)
            {
                Utils.QL_REQUIRE(timeSteps > 0, () => "timeSteps must be positive, " + timeSteps + " not allowed");
            }

            if (timeStepsPerYear != null)
            {
                Utils.QL_REQUIRE(timeStepsPerYear > 0, () => "timeStepsPerYear must be positive, " + timeStepsPerYear + " not allowed");
            }

            process_.registerWith(update);
        }
コード例 #13
0
 public AnalyticDiscreteGeometricAveragePriceAsianEngine(GeneralizedBlackScholesProcess process)
 {
     process_ = process;
     process_.registerWith(update);
 }
コード例 #14
0
 public AnalyticBarrierWithPartiRateEngine(GeneralizedBlackScholesProcess process)
 {
     process_ = process;
     //registerWith(process_);
     process_.registerWith(update);
 }
コード例 #15
0
        public BaroneAdesiWhaleyApproximationEngine(GeneralizedBlackScholesProcess process)
        {
            process_ = process;

            process_.registerWith(update);
        }
コード例 #16
0
 //public FDEngineAdapter(GeneralizedBlackScholesProcess process, Size timeSteps=100, Size gridPoints=100, bool timeDependent = false)
 public FDEngineAdapter(GeneralizedBlackScholesProcess process, int timeSteps, int gridPoints, bool timeDependent)
 {
     optionBase = (Base) new Base().factory(process, timeSteps, gridPoints, timeDependent);
     process.registerWith(update);
 }
コード例 #17
0
 public AnalyticPerformanceEngine(GeneralizedBlackScholesProcess process)
 {
     process_ = process;
     process_.registerWith(update);
 }
コード例 #18
0
 public JuQuadraticApproximationEngine(GeneralizedBlackScholesProcess process)
 {
     process_ = process;
     //registerWith(process_);
     process_.registerWith(update);
 }
コード例 #19
0
 public AnalyticBarrierEngine(GeneralizedBlackScholesProcess process)
 {
     process_ = process;
     //registerWith(process_);
     process_.registerWith(update);
 }
コード例 #20
0
 public JuQuadraticApproximationEngine(GeneralizedBlackScholesProcess process)
 {
     process_ = process;
     process_.registerWith(update);
 }
コード例 #21
0
        public BaroneAdesiWhaleyApproximationEngine(GeneralizedBlackScholesProcess process)
        {
            process_ = process;

            process_.registerWith(update);
        }
コード例 #22
0
        public IntegralEngine(GeneralizedBlackScholesProcess process)
        {
            process_ = process;

            process_.registerWith(update);
        }
コード例 #23
0
 public ForwardVanillaEngine(GeneralizedBlackScholesProcess process, GetOriginalEngine getEngine)
 {
     process_ = process;
     process_.registerWith(update);
     getOriginalEngine_ = getEngine;
 }
コード例 #24
0
 public AnalyticBinaryBarrierEngine(GeneralizedBlackScholesProcess process)
 {
     process_ = process;
     process_.registerWith(update);
 }
コード例 #25
0
 public AnalyticContinuousGeometricAveragePriceAsianEngine(GeneralizedBlackScholesProcess process)
 {
     process_ = process;
     process_.registerWith(update);
 }
コード例 #26
0
 public AnalyticContinuousPartialFixedLookbackEngine(GeneralizedBlackScholesProcess process)
 {
     process_ = process;
     process_.registerWith(update);
 }
コード例 #27
0
        public BjerksundStenslandApproximationEngine(GeneralizedBlackScholesProcess process)
        {
            process_ = process;

            process_.registerWith(update);
        }
コード例 #28
0
        public AnalyticEuropeanEngine(GeneralizedBlackScholesProcess process)
        {
            process_ = process;

            process_.registerWith(update);
        }
コード例 #29
0
 public AnalyticDividendEuropeanEngine(GeneralizedBlackScholesProcess process)
 {
     process_ = process;
     process_.registerWith(update);
 }
コード例 #30
0
        public BjerksundStenslandApproximationEngine(GeneralizedBlackScholesProcess process) {
            process_ = process;

            process_.registerWith(update);
        }
コード例 #31
0
ファイル: Integralengine.cs プロジェクト: sandboxorg/QLNet
        public IntegralEngine(GeneralizedBlackScholesProcess process)
        {
            process_ = process;

            process_.registerWith(update);
        }