public FDEuropeanEngine(GeneralizedBlackScholesProcess process, int timeSteps, int gridPoints, bool timeDependent) : base(process, timeSteps, gridPoints, timeDependent) { prices_ = new SampledCurve(gridPoints); process.registerWith(update); }
public StulzEngine(GeneralizedBlackScholesProcess process1, GeneralizedBlackScholesProcess process2, double correlation) { process1_ = process1; process2_ = process2; rho_ = correlation; process1_.registerWith(update); process2_.registerWith(update); }
public AnalyticDoubleBarrierEngine(GeneralizedBlackScholesProcess process, int series = 5) { process_ = process; series_ = series; f_ = new CumulativeNormalDistribution(); process_.registerWith(update); }
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); }
public AnalyticBSMHullWhiteEngine(double equityShortRateCorrelation, GeneralizedBlackScholesProcess process, HullWhite model) : base(model) { rho_ = equityShortRateCorrelation; process_ = process; process_.registerWith(update); }
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); }
// 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); }
/*! \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); }
// 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); }
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); }
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); }
public AnalyticDiscreteGeometricAveragePriceAsianEngine(GeneralizedBlackScholesProcess process) { process_ = process; process_.registerWith(update); }
public AnalyticBarrierWithPartiRateEngine(GeneralizedBlackScholesProcess process) { process_ = process; //registerWith(process_); process_.registerWith(update); }
public BaroneAdesiWhaleyApproximationEngine(GeneralizedBlackScholesProcess process) { process_ = process; process_.registerWith(update); }
//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); }
public AnalyticPerformanceEngine(GeneralizedBlackScholesProcess process) { process_ = process; process_.registerWith(update); }
public JuQuadraticApproximationEngine(GeneralizedBlackScholesProcess process) { process_ = process; //registerWith(process_); process_.registerWith(update); }
public AnalyticBarrierEngine(GeneralizedBlackScholesProcess process) { process_ = process; //registerWith(process_); process_.registerWith(update); }
public JuQuadraticApproximationEngine(GeneralizedBlackScholesProcess process) { process_ = process; process_.registerWith(update); }
public IntegralEngine(GeneralizedBlackScholesProcess process) { process_ = process; process_.registerWith(update); }
public ForwardVanillaEngine(GeneralizedBlackScholesProcess process, GetOriginalEngine getEngine) { process_ = process; process_.registerWith(update); getOriginalEngine_ = getEngine; }
public AnalyticBinaryBarrierEngine(GeneralizedBlackScholesProcess process) { process_ = process; process_.registerWith(update); }
public AnalyticContinuousGeometricAveragePriceAsianEngine(GeneralizedBlackScholesProcess process) { process_ = process; process_.registerWith(update); }
public AnalyticContinuousPartialFixedLookbackEngine(GeneralizedBlackScholesProcess process) { process_ = process; process_.registerWith(update); }
public BjerksundStenslandApproximationEngine(GeneralizedBlackScholesProcess process) { process_ = process; process_.registerWith(update); }
public AnalyticEuropeanEngine(GeneralizedBlackScholesProcess process) { process_ = process; process_.registerWith(update); }
public AnalyticDividendEuropeanEngine(GeneralizedBlackScholesProcess process) { process_ = process; process_.registerWith(update); }