Logo
Fully annotated reference manual - version 1.8.12
Loading...
Searching...
No Matches
analyticxassetlgmeqoptionengine.hpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2016 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/analyticxassetlgmeqoptionengine.hpp
20 \brief analytic cross-asset lgm eq option engine
21 \ingroup engines
22*/
23
24#ifndef quantext_xassetlgm_eqoptionengine_hpp
25#define quantext_xassetlgm_eqoptionengine_hpp
26
27#include <ql/instruments/vanillaoption.hpp>
29
30namespace QuantExt {
31
32//! Analytic cross-asset lgm equity option engine
33/*!
34 This class prices an equity option analytically using the dynamics of
35 a CrossAssetModel. The formula is black-like, with the variance of the
36 underlying equity being dependent upon the dynamics of related interest
37 and FX rates within the CrossAssetModel universe.
38 See the book "Modern Derivatives Pricing and Credit Exposure Analysis"
39 by Lichters, Stamm and Gallagher.
40
41 \ingroup engines
42*/
43class AnalyticXAssetLgmEquityOptionEngine : public VanillaOption::engine {
44public:
45 AnalyticXAssetLgmEquityOptionEngine(const QuantLib::ext::shared_ptr<CrossAssetModel>& model, const Size equityIdx,
46 const Size ccyIdx);
47 void calculate() const override;
48
49 /*! the actual option price calculation, exposed to public,
50 since it is useful to directly use the core computation
51 sometimes */
52 Real value(const Time t0, const Time t, const QuantLib::ext::shared_ptr<StrikedTypePayoff> payoff,
53 const Real domesticDiscount, const Real eqForward) const;
54
55private:
56 const QuantLib::ext::shared_ptr<CrossAssetModel> model_;
57 const Size eqIdx_, ccyIdx_;
58};
59
60} // namespace QuantExt
61
62#endif
Analytic cross-asset lgm equity option engine.
Real value(const Time t0, const Time t, const QuantLib::ext::shared_ptr< StrikedTypePayoff > payoff, const Real domesticDiscount, const Real eqForward) const
const QuantLib::ext::shared_ptr< CrossAssetModel > model_
cross asset model