CashFlowBuilder.hpp
Go to the documentation of this file.
1 #ifndef JULIAN_CASHFLOWBUILDER_HPP
2 #define JULIAN_CASHFLOWBUILDER_HPP
3 
5 #include <dates/date.hpp>
12 #include <map>
13 
14 namespace julian {
25  public:
27 
32 
33  CashFlowBuilder& withNotional(const double);
34  CashFlowBuilder& withQuote(const double);
35  CashFlowBuilder& withFxRate(const double);
36  CashFlowBuilder& withAdditiveMargin(const double);
38  CashFlowBuilder& withFixing(const std::map<Date,double>&);
39 
42 
44 
47 
48  operator CashFlowVector();
49 
50  private:
53 
56  double notional_;
63  double quote_;
66  double fx_rate_;
68  std::map<Date,double> fixings_;
72  };
73 
74 } // namespace julian
75 #endif
void fixedCFWithExchangeOfNotional()
Constructs the CashFlowVector with fixed cash flows, the first and the last CF contain notional...
Definition: CashFlowBuilder.cpp:170
double quote_
Quote used to calculate the fixed cashflow.
Definition: CashFlowBuilder.hpp:63
File contains types common to all financial instruments.
CashFlowBuilder & withExchangeOfNotional(bool)
If exchange of notional is set to true, notional is added to first and last CF.
Definition: CashFlowBuilder.cpp:157
CashFlowBuilder & withFixing(const std::map< Date, double > &)
provides fixings, if fixing dates match CF dates, the value CF are set
Definition: CashFlowBuilder.cpp:99
Calendar calendar_
Calendar used in construction of CF vector.
Definition: CashFlowBuilder.hpp:58
Date end_date_
Payment of last CFs.
Definition: CashFlowBuilder.hpp:61
CashFlowVector cfv_
Cash flow vector.
Definition: CashFlowBuilder.hpp:54
File contains definition of cash flow class.
InterestRate rate_
Interest rate convention.
Definition: CashFlowBuilder.hpp:71
CashFlowBuilder & withAdditiveMargin(const double)
adds margin to floating CFs
Definition: CashFlowBuilder.cpp:71
CashFlowBuilder & withTenor(const Tenor &)
provides tenor of last date
Definition: CashFlowBuilder.cpp:26
CashFlowBuilder & buildFloatingCashFlows()
builds Floating CFs
Definition: CashFlowBuilder.cpp:106
Definition: cadHoliday.cpp:3
File contains definition of floating cash flow class.
Date start_date_
Start date of first CFs.
Definition: CashFlowBuilder.hpp:60
File contains definition of fixed cash flow class.
Class implements calendar object.
Definition: calendar.hpp:30
double notional_
Notional of the cash flows.
Definition: CashFlowBuilder.hpp:56
Class helps to handle the vector of CFs.
Definition: CashFlowVector.hpp:22
File contains definition of date class.
double additive_margin_
Additive margin used by floating cashflows.
Definition: CashFlowBuilder.hpp:64
CashFlowBuilder()
constructor
Definition: CashFlowBuilder.cpp:7
std::map< Date, double > fixings_
Fixing used to determined pasted floating cash flows.
Definition: CashFlowBuilder.hpp:68
CashFlowBuilder & usingCalendar(const Calendar &)
provides calendar used in calculating dates
Definition: CashFlowBuilder.cpp:17
Frequency frequency_
Frequency of CFs.
Definition: CashFlowBuilder.hpp:59
CashFlowBuilder & withQuote(const double)
provides quote
Definition: CashFlowBuilder.cpp:56
bool exchange_of_notional_
If exchange of notional is set to true the first and the last CFs contains notional.
Definition: CashFlowBuilder.hpp:70
CashFlowBuilder & withStartDate(const Date &)
provides starting date
Definition: CashFlowBuilder.cpp:33
CashFlowBuilder & withFxRate(const double)
provide Fx Spot
Definition: CashFlowBuilder.cpp:64
CashFlowBuilder & buildFixedCashFlows()
builds Fixed CFs
Definition: CashFlowBuilder.cpp:145
double multiplicative_margin_
Multiplicative margin used by floating cashflows.
Definition: CashFlowBuilder.hpp:65
File contains the definition of calendar class.
Tenor tenor_
Tenor of the last CF.
Definition: CashFlowBuilder.hpp:57
Class implements Builder that helps to construct vector of cash flows.
Definition: CashFlowBuilder.hpp:24
CashFlowBuilder & withInterestRate(const InterestRate &)
provides interest rate convention
Definition: CashFlowBuilder.cpp:85
double fx_rate_
FxRate.
Definition: CashFlowBuilder.hpp:66
void fixedCFWithoutExchangeOfNotional()
Constructs the CashFlowVector with fixed cash flows,.
Definition: CashFlowBuilder.cpp:205
Class implements a date object.
Definition: date.hpp:27
CashFlowBuilder & withMultiplicativeMargin(const double)
adds multiplicative margin to floating CFs
Definition: CashFlowBuilder.cpp:78
CashFlowBuilder & withNotional(const double)
provide notional
Definition: CashFlowBuilder.cpp:49
Class implements a tenor object.
Definition: tenor.hpp:23
CashFlowBuilder & withPaymentFrequency(Frequency)
frequency of payments
Definition: CashFlowBuilder.cpp:92
The class implements the concept of interest rate.
Definition: interestRate.hpp:25
Frequency
Definition: timeUnit.hpp:68
CashFlowBuilder & withEndDate(const Date &)
payment of last CF
Definition: CashFlowBuilder.cpp:42
File contains definition of InterestRate class.
File contains definition of cash flow vector.