Repository navigation
Description
Audited 2026-09-27 against released v0.29.0. This replaces the original “break down once L5 lands” placeholder. Methods are already released; this epic tracks the remaining explicitly deferred depth.
Delivered
- Monte Carlo: scalar and multi-factor paths, antithetic sampling, European Black-Scholes/Heston engines, and the shared engine base ([QL-9.x] MultiPath + MultiPathGenerator, multi-factor path generation (Batch HMC 2/4) #476, [QL-9.x] Generalize the Monte-Carlo stack over path type + antithetic averaging (Batch HMC 3/4) #477, [QL-11.x] MCEuropeanHestonEngine + testMcVsCached bit-exact cached gate (Batch HMC 4/4) #478, [QL-11.x] Unify McVanillaEngineBase on the multi-factor StochasticProcess #482). See MC implementation.
- Sobol/low-discrepancy European engines and RNG policies ([QL-9.x][DEFER] Low-discrepancy RSG bundle + scalar InverseCumulativeRng + Poisson traits #454); single-asset Longstaff-Schwartz American/Bermudan pricing and expanded basis/oracle coverage ([MC-American][T2] EarlyExercisePathPricer trait + LsmBasisSystem + PathPricer-for-Shared bridge #759, [MC-American][T3] LongstaffSchwartzPathPricer (two-phase LSM core) #760, [MC-American][T4] MCLongstaffSchwartzEngine + MCAmericanEngine + MakeMCAmericanEngine #761, [MC-American][DEFER] Depth: remaining testAmericanOption grid + Gauss basis families + BermudanExercise #763).
- Lattices: trinomial trees, discretized assets, rollback/state prices and 1-D tree lattices ([QL-9.6] Tree + TrinomialTree (recombining trinomial lattice) #460, [QL-9.7] Lattice base + DiscretizedAsset + DiscretizedOption/DiscountBond #461, [QL-9.8] TreeLattice + TreeLattice1D (backward induction + state prices) #462), with Hull-White swaption/cap-floor consumers ([QL-9.x][DEFER] DiscretizedSwaption date-snapping (prepare_swaption_with_snapped_dates) #467, [QL-11.x][DEFER] BachelierCapFloorEngine + DiscretizedCapFloor lattice path #440). See lattice implementation.
- Finite differences: 1-D Black-Scholes meshes/operators, Douglas/implicit-Euler rollback, European/American/Bermudan pricing and Greeks ([QL-9.x][EPIC-9] Finite-difference framework: the European Black-Scholes vertical #635, [QL-9.x][FDM] American finite-difference option pricing (FdmAmericanStepCondition + vanillaComposite) #826, [QL-9.x][FDM] Bermudan finite-difference pricing (BermudanExercise + FdmBermudanStepCondition) #827). Python/C/Go FD facades shipped through [SIMOPT-2][ffi+go] Finite-difference Black-Scholes vanilla engine in Go #1108/[SIMOPT-3][itofin-py] Finite-difference Black-Scholes vanilla engine in Python #1109; Go tests and Python tests cover the released surface.
Remaining
- [QL-9.x][DEFER] MC remainder: Brownian bridge, control variates and TimeGrid accessor #453: Brownian bridge, Monte Carlo control variates, and the remaining TimeGrid convenience accessor.
- [QL-9.x][DEFER] FDM remainder: sparse operators, Krylov, boundaries and multidimensional engines #636: sparse matrix export, iterative solvers, concrete boundary conditions, multidimensional/non-Black-Scholes FD machinery and builder coverage.
- [QL-9.x][FDM][DEFER] FD vanilla engine dividend/escrowed/quanto/local-vol paths #828: FD vanilla cash dividends, escrowed dividends, quanto and local-vol paths (child of [QL-9.x][DEFER] FDM remainder: sparse operators, Krylov, boundaries and multidimensional engines #636).
Completion policy
Keep this epic open while those deferrals remain. Prioritize a concrete pricing consumer before activating broad machinery. Every activated increment needs an independent numerical oracle, unchanged existing tolerances, and matching Python/C/Go exposure where it introduces a public pricing capability. Generic Rust machinery can remain Rust-only with that boundary documented.
This is a released-scope reconciliation, not a claim of full QuantLib parity. Model-specific engines remain under #73; Heston process schemes remain under #410. Deferred child work must be completed or explicitly superseded before closing this epic.
Activity
benbenbang commentedon Aug 5, 2026
Batch: American-option Monte Carlo via Longstaff-Schwartz (LSM) filed + gated (senior-PM: DISPATCH-READY-WITH-FIXES, 8 fixes folded). Roadmap step A. 5 tickets, linear stack, prices an American Put by MC/LSM matching a binomial reference within a k-sigma band:
Deferred (own issues): BrownianBridge #453, Sobol LowDiscrepancy #454, control variate + max/multi-asset engine, BermudanExercise, Gauss basis families. Next (roadmap B): expose the MC engines in Python.
[-][EPIC-9] Methods (L9)[/-][+][EPIC-9] Methods: remaining MC and finite-difference depth[/+]