Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
analyticeuropeanengine.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2022 Quaternion Risk Management Ltd
3 All rights reserved.
4
5 This file is part of ORE, a free-software/open-source library
6 for transparent pricing and risk analysis - http://opensourcerisk.org
7
8 ORE is free software: you can redistribute it and/or modify it
9 under the terms of the Modified BSD License. You should have received a
10 copy of the license along with this program.
11 The license is also available online at <http://opensourcerisk.org>
12
13 This program is distributed on the basis that it will form a useful
14 contribution to risk analytics and model standardisation, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE. See the license for more details.
17*/
18
19/*! \file qle/pricingengines/analyticeuropeanengine.hpp
20 \brief Wrapper of QuantLib analytic European engine to allow for flipping back some of the additional
21 results in the case of FX instruments where the trade builder may have inverted the underlying pair
22*/
23
24#pragma once
25
26#include <ql/instruments/vanillaoption.hpp>
27#include <ql/pricingengines/vanilla/analyticeuropeanengine.hpp>
28#include <ql/processes/blackscholesprocess.hpp>
29
30namespace QuantExt {
31
32using namespace QuantLib;
33
34//! Pricing engine for European vanilla options using analytical formulae
35
36class AnalyticEuropeanEngine : public QuantLib::AnalyticEuropeanEngine {
37public:
38 explicit AnalyticEuropeanEngine(ext::shared_ptr<GeneralizedBlackScholesProcess> gbsp, const bool flipResults = false)
39 : QuantLib::AnalyticEuropeanEngine(gbsp), flipResults_(flipResults) {}
40
41 AnalyticEuropeanEngine(ext::shared_ptr<GeneralizedBlackScholesProcess> process,
42 Handle<YieldTermStructure> discountCurve, const bool flipResults = false)
43 : QuantLib::AnalyticEuropeanEngine(process, discountCurve), flipResults_(flipResults) {}
44 void calculate() const override;
45
46private:
47 ext::shared_ptr<GeneralizedBlackScholesProcess> process_;
48 Handle<YieldTermStructure> discountCurve_;
50};
51
52} // namespace QuantExt
Pricing engine for European vanilla options using analytical formulae.
Handle< YieldTermStructure > discountCurve_
AnalyticEuropeanEngine(ext::shared_ptr< GeneralizedBlackScholesProcess > process, Handle< YieldTermStructure > discountCurve, const bool flipResults=false)
ext::shared_ptr< GeneralizedBlackScholesProcess > process_
AnalyticEuropeanEngine(ext::shared_ptr< GeneralizedBlackScholesProcess > gbsp, const bool flipResults=false)