24 Volatility vol,
const DayCounter& dc, Real displacement,
25 const std::vector<Time>& bucketTimesDeltaGamma,
26 const std::vector<Time>& bucketTimesVegaOpt,
27 const std::vector<Time>& bucketTimesVegaUnd,
28 const bool computeDeltaVega,
const bool computeGamma,
29 const bool linearInZero)
30 : detail::BlackStyleSwaptionEngineDeltaGamma<detail::Black76Spec>(
31 discountCurve, vol, dc, displacement, bucketTimesDeltaGamma, bucketTimesVegaOpt, bucketTimesVegaUnd,
32 computeDeltaVega, computeGamma, linearInZero) {}
35 const Handle<YieldTermStructure>& discountCurve,
const Handle<Quote>& vol,
const DayCounter& dc, Real displacement,
36 const std::vector<Time>& bucketTimesDeltaGamma,
const std::vector<Time>& bucketTimesVegaOpt,
37 const std::vector<Time>& bucketTimesVegaUnd,
const bool computeDeltaVega,
const bool computeGamma,
38 const bool linearInZero)
39 : detail::BlackStyleSwaptionEngineDeltaGamma<detail::Black76Spec>(
40 discountCurve, vol, dc, displacement, bucketTimesDeltaGamma, bucketTimesVegaOpt, bucketTimesVegaUnd,
41 computeDeltaVega, computeGamma, linearInZero) {}
44 const Handle<SwaptionVolatilityStructure>& vol,
45 const std::vector<Time>& bucketTimesDeltaGamma,
46 const std::vector<Time>& bucketTimesVegaOpt,
47 const std::vector<Time>& bucketTimesVegaUnd,
48 const bool computeDeltaVega,
const bool computeGamma,
49 const bool linearInZero)
50 : detail::BlackStyleSwaptionEngineDeltaGamma<detail::Black76Spec>(discountCurve, vol, bucketTimesDeltaGamma,
51 bucketTimesVegaOpt, bucketTimesVegaUnd,
52 computeDeltaVega, computeGamma, linearInZero) {
53 QL_REQUIRE(vol->volatilityType() == ShiftedLognormal,
54 "BlackSwaptionEngineDeltaGamma requires (shifted) lognormal input "
59 Volatility vol,
const DayCounter& dc,
60 const std::vector<Time>& bucketTimesDeltaGamma,
61 const std::vector<Time>& bucketTimesVegaOpt,
62 const std::vector<Time>& bucketTimesVegaUnd,
63 const bool computeDeltaVega,
64 const bool computeGamma,
const bool linearInZero)
65 : detail::BlackStyleSwaptionEngineDeltaGamma<detail::BachelierSpec>(
66 discountCurve, vol, dc, 0.0, bucketTimesDeltaGamma, bucketTimesVegaOpt, bucketTimesVegaUnd, computeDeltaVega,
67 computeGamma, linearInZero) {}
70 const Handle<Quote>& vol,
const DayCounter& dc,
71 const std::vector<Time>& bucketTimesDeltaGamma,
72 const std::vector<Time>& bucketTimesVegaOpt,
73 const std::vector<Time>& bucketTimesVegaUnd,
74 const bool computeDeltaVega,
75 const bool computeGamma,
const bool linearInZero)
76 : detail::BlackStyleSwaptionEngineDeltaGamma<detail::BachelierSpec>(
77 discountCurve, vol, dc, 0.0, bucketTimesDeltaGamma, bucketTimesVegaOpt, bucketTimesVegaUnd, computeDeltaVega,
78 computeGamma, linearInZero) {}
81 const Handle<SwaptionVolatilityStructure>& vol,
82 const std::vector<Time>& bucketTimesDeltaGamma,
83 const std::vector<Time>& bucketTimesVegaOpt,
84 const std::vector<Time>& bucketTimesVegaUnd,
85 const bool computeDeltaVega,
86 const bool computeGamma,
const bool linearInZero)
87 : detail::BlackStyleSwaptionEngineDeltaGamma<detail::BachelierSpec>(discountCurve, vol, bucketTimesDeltaGamma,
88 bucketTimesVegaOpt, bucketTimesVegaUnd,
89 computeDeltaVega, computeGamma, linearInZero) {
90 QL_REQUIRE(vol->volatilityType() == Normal,
"BachelierSwaptionEngineDeltaGamma requires normal input volatility");
Swaption engine providing analytical deltas for vanilla swaps.
BachelierSwaptionEngineDeltaGamma(const Handle< YieldTermStructure > &discountCurve, Volatility vol, const DayCounter &dc=Actual365Fixed(), const std::vector< Time > &bucketTimesDeltaGamma=std::vector< Time >(), const std::vector< Time > &bucketTimesVegaOpt=std::vector< Time >(), const std::vector< Time > &bucketTimesVegaUnd=std::vector< Time >(), const bool computeDeltaVega=false, const bool computeGamma=false, const bool linearInZero=true)
BlackSwaptionEngineDeltaGamma(const Handle< YieldTermStructure > &discountCurve, Volatility vol, const DayCounter &dc=Actual365Fixed(), Real displacement=0.0, const std::vector< Time > &bucketTimesDeltaGamma=std::vector< Time >(), const std::vector< Time > &bucketTimesVegaOpt=std::vector< Time >(), const std::vector< Time > &bucketTimesVegaUnd=std::vector< Time >(), const bool computeDeltaVega=false, const bool computeGamma=false, const bool linearInZero=true)