CLEAN
Valuation library for mortgage-backed securities
mbs.h
1 // -*-C++-*- make sure Emacs is in C++ mode
10 #ifndef INCLUDED_ANDREW_KALOTAY_ASSOCIATES_CLEAN_MBS_H
11 #define INCLUDED_ANDREW_KALOTAY_ASSOCIATES_CLEAN_MBS_H
12 
13 #include "andrew_kalotay_associates/clean/dll_macros.h"
14 #include "andrew_kalotay_associates/clean/structs.h"
15 
16 namespace AndrewKalotayAssociates
17 {
18  namespace Clean
19  {
20  class InterestRateModel;
21  class VolatilityCalibrator;
22 
25  class CLEAN_API Mbs
26  {
27  public:
28  explicit Mbs(const Input::Mbs& mbs);
29 
30  ~Mbs();
31 
34  compute(const InterestRateModel& interest_rate_model,
35  const Input::PrepaymentModelParameters& parameters,
36  const Input::Quote& quote) const;
37 
41  const InterestRateModel& interest_rate_model,
42  const Input::PrepaymentModelParameters& parameters,
43  const Input::Quote& quote) const;
44 
46  void
48  const Input::ValuationSelection& selection,
49  const InterestRateModel& interest_rate_model,
50  const Input::PrepaymentModelParameters& parameters,
51  const Input::Quote& quote) const;
52 
54  double
56  (const InterestRateModel& interest_rate_model,
57  const Input::PrepaymentModelParameters& parameters,
58  const Input::Quote& quote) const;
59 
62  compute_cashflows(const InterestRateModel& interest_rate_model,
63  const Input::PrepaymentModelParameters& parameters,
64  const Input::Quote& quote,
65  bool smoothed = true) const;
66 
68  double
70  const InterestRateModel& interest_rate_model,
71  const Input::PrepaymentModelParameters& parameters,
72  const Input::Quote& quote,
73  bool smoothed = true) const;
74 
78  const InterestRateModel& interest_rate_model,
79  const Input::PrepaymentModelParameters& parameters,
80  const Input::Quote& quote,
81  bool smoothed = true) const;
82 
83  class Implementation;
84  private:
85  // *Disable copying and assignment*
86  Mbs(const Mbs&);
87  const Mbs& operator=(const Mbs&);
88 
89  Implementation* implementation_ptr_;
90  };
91  }
92 }
93 
94 #endif
Definition: interest_rate_model.h:31
double compute_cashflow_yield(const Input::YieldParameters &yield_parameters, const InterestRateModel &interest_rate_model, const Input::PrepaymentModelParameters &parameters, const Input::Quote &quote, bool smoothed=true) const
Yield-to-maturity using cash flows implied by prepayment model.
Output::ValuationReport compute(const Input::ValuationSelection &selection, const InterestRateModel &interest_rate_model, const Input::PrepaymentModelParameters &parameters, const Input::Quote &quote) const
Also, calculate specified risk measures.
void compute(Output::ValuationReport &valuation, const Input::ValuationSelection &selection, const InterestRateModel &interest_rate_model, const Input::PrepaymentModelParameters &parameters, const Input::Quote &quote) const
Deprecated (not threadsafe)
Output::CashflowReport compute_cashflows(const InterestRateModel &interest_rate_model, const Input::PrepaymentModelParameters &parameters, const Input::Quote &quote, bool smoothed=true) const
Projected cash flows implied by prepayment model.
Output::Price compute(const InterestRateModel &interest_rate_model, const Input::PrepaymentModelParameters &parameters, const Input::Quote &quote) const
Calculate OAS, price, accrued interest.
double compute_homeowner_credit_spread(const InterestRateModel &interest_rate_model, const Input::PrepaymentModelParameters &parameters, const Input::Quote &quote) const
Implied homeowner credit spread.
Output::YieldReport compute_yield_report(const Input::YieldParameters &yield_parameters, const InterestRateModel &interest_rate_model, const Input::PrepaymentModelParameters &parameters, const Input::Quote &quote, bool smoothed=true) const
Also, calculate risk measures.
Terms of a pass-through MBS.
Definition: structs.h:209
Bond price quote.
Definition: structs.h:702