QuantLib: a free/open-source library for quantitative finance
fully annotated source code - version 1.34
Loading...
Searching...
No Matches
jamshidianswaptionengine.hpp
Go to the documentation of this file.
1/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
3/*
4 Copyright (C) 2001, 2002, 2003 Sadruddin Rejeb
5 Copyright (C) 2013 Peter Caspers
6
7 This file is part of QuantLib, a free-software/open-source library
8 for financial quantitative analysts and developers - http://quantlib.org/
9
10 QuantLib is free software: you can redistribute it and/or modify it
11 under the terms of the QuantLib license. You should have received a
12 copy of the license along with this program; if not, please email
13 <quantlib-dev@lists.sf.net>. The license is also available online at
14 <http://quantlib.org/license.shtml>.
15
16 This program is distributed in the hope that it will be useful, but WITHOUT
17 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
18 FOR A PARTICULAR PURPOSE. See the license for more details.
19*/
20
21/*! \file jamshidianswaptionengine.hpp
22 \brief Swaption engine using Jamshidian's decomposition
23 Concerning the start delay cf. http://ssrn.com/abstract=2246054
24*/
25
26#ifndef quantlib_pricers_jamshidian_swaption_hpp
27#define quantlib_pricers_jamshidian_swaption_hpp
28
32#include <utility>
33
34namespace QuantLib {
35
36 //! Jamshidian swaption engine
37 /*! \ingroup swaptionengines
38 \warning The engine might assume that the exercise date equals the
39 start date of the passed swap unless the model provides
40 an implementation of the discountBondOption method with
41 start delay
42 */
43
45 : public GenericModelEngine<OneFactorAffineModel,
46 Swaption::arguments,
47 Swaption::results > {
48 public:
49 /*! \note the term structure is only needed when the short-rate
50 model cannot provide one itself.
51 */
53 const ext::shared_ptr<OneFactorAffineModel>& model,
56 termStructure_(std::move(termStructure)) {
58 }
59 void calculate() const override;
60
61 private:
63 class rStarFinder;
64 };
65
66}
67
68
69#endif
70
Base class for some pricing engine on a particular model.
Shared handle to an observable.
Definition: handle.hpp:41
JamshidianSwaptionEngine(const ext::shared_ptr< OneFactorAffineModel > &model, Handle< YieldTermStructure > termStructure=Handle< YieldTermStructure >())
Handle< YieldTermStructure > termStructure_
std::pair< iterator, bool > registerWith(const ext::shared_ptr< Observable > &)
Definition: observable.hpp:228
Single-factor affine base class.
Swaption class
Definition: swaption.hpp:88
Generic option engine based on a model.
Definition: any.hpp:35
STL namespace.
Abstract one-factor interest rate model class.
Swaption class.