bond.hpp
Go to the documentation of this file.
1 #ifndef JULIAN_BOND_HPP
2 #define JULIAN_BOND_HPP
3 
4 #include <dates/_all_dates.hpp>
5 #include <utils/utils.hpp>
7 
8 namespace julian {
20  class Bond {
21  public:
24  Bond(){};
25 
30  virtual double prize(const SmartPointer<ir::Curve>& curve) const = 0;
31 
37  virtual double prize(const SmartPointer<ir::Curve>& discounting_curve,
38  const SmartPointer<ir::Curve>& projection_curve) const = 0;
39 
43  virtual void valuation(const SmartPointer<ir::Curve>& curve) const = 0;
44 
49  virtual void valuation(const SmartPointer<ir::Curve>& discounting_curve,
50  const SmartPointer<ir::Curve>& projection_curve) const = 0;
51 
54  virtual double getPrincipal() const = 0;
55 
58  virtual Date getDate() const = 0;
59 
62  virtual ~Bond(){};
63 
66  virtual Bond* clone() const = 0;
67  private:
68  };
69 }
70 
71 #endif
virtual Date getDate() const =0
returns the bond&#39;s maturity
Contains headers of all files with definitions of classes gathered in dates calendar and holidays mod...
Definition: cadHoliday.cpp:3
File contains small programming tools.
Class is an abstract class expressing the concept of bonds.
Definition: bond.hpp:20
virtual ~Bond()
destructor
Definition: bond.hpp:62
virtual Bond * clone() const =0
virtual copy constructor
virtual double getPrincipal() const =0
returns the bond&#39;s principal
Class implements a date object.
Definition: date.hpp:27
Bond()
constructor
Definition: bond.hpp:24
virtual double prize(const SmartPointer< ir::Curve > &curve) const =0
prize bonds
File contains interface of interest rate curves.
virtual void valuation(const SmartPointer< ir::Curve > &curve) const =0
bond valuation