27#include <ql/instruments/bond.hpp>
28#include <ql/instruments/callabilityschedule.hpp>
29#include <ql/instruments/dividendschedule.hpp>
30#include <ql/instruments/oneassetoption.hpp>
31#include <ql/quote.hpp>
32#include <ql/time/daycounter.hpp>
33#include <ql/time/schedule.hpp>
45class Ascot :
public Instrument {
51 const ext::shared_ptr<ConvertibleBond2>& bond,
const Leg&
fundingLeg);
68 ext::shared_ptr<ConvertibleBond2>
bond_;
79 ext::shared_ptr<ConvertibleBond2>
bond;
87class Ascot::engine :
public GenericEngine<Ascot::arguments, Ascot::results> {};
ext::shared_ptr< ConvertibleBond2 > bond
ext::shared_ptr< Exercise > exercise
void validate() const override
void setupArguments(PricingEngine::arguments *) const
const Leg & fundingLeg() const
ext::shared_ptr< ConvertibleBond2 > bond_
void setupArguments(PricingEngine::arguments *) const override
bool isExpired() const override
const Option::Type callPut()
ext::shared_ptr< Exercise > exercise_
ext::shared_ptr< Exercise > exercise()
const ext::shared_ptr< ConvertibleBond2 > & underlyingBond() const
const Real bondQuantity()