Skip to content

[QL-9.x][EPIC-9][DEFER] Optionlet stripping: Normal/Bachelier + Stripper2 + OIS + switchStrike + non-flat oracle arms #577

Description

@benbenbang

Optionlet stripping: deferred paths + oracle arms

Deferred visibly from B2 (#573-576), which ships the ShiftedLognormal flat-surface stripping pipeline
(CapFloorTermVolSurface -> OptionletStripper1 -> StrippedOptionletAdapter) with the
testFlatTermVolatilityStripping1 round-trip oracle.

Deferred

  • Normal (Bachelier) stripping path - OptionletStripper1 with volatilityType == Normal needs
    BachelierCapFloorEngine (deferred [QL-11.x][DEFER] BachelierCapFloorEngine + DiscretizedCapFloor lattice path #440) + bachelierBlackFormulaImpliedVol. Oracle
    testTermVolatilityStrippingNormalVol (optionletstripper.cpp:611).
  • OptionletStripper2 (optionletstripper2.{hpp,cpp}) - the atm-strike correction layer on top of
    Stripper1.
  • OIS path - testTermVolatilityStripping1ON (:922), overnight-index caps.
  • testSwitchStrike (:876) - the floating switch-strike selection arm.
  • Non-flat term-vol oracle - testTermVolatilityStripping1 (:550) + the ...2 variants; fold
    into T4 if under the LOC cap, else port here.
  • dontThrow mode on Stripper1; smileSectionImpl on the adapter (needs the unported
    smile-section layer - consistent with the whole vol layer deferring smiles).

Priority: medium (rounds out the stripper; the flat ShiftedLognormal pipeline + round-trip are the
load-bearing proof). Epic: EPIC-9 #350.


Added (gate): T3's black_formula_implied_std_dev may require a finite guess and defer the Null-guess blackFormulaImpliedStdDevApproximation branch (the stripper always passes a finite guess, blackformula.cpp:425-427).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions