24 #ifndef INCLUDED_ANDREW_KALOTAY_ASSOCIATES_COMMON_STRUCTS_H
25 #define INCLUDED_ANDREW_KALOTAY_ASSOCIATES_COMMON_STRUCTS_H
35 #include "andrew_kalotay_associates/common/dll_macros.h"
43 #include "andrew_kalotay_associates/common/enums.h"
51 #include "andrew_kalotay_associates/common/string.h"
52 #include "andrew_kalotay_associates/common/array.h"
54 namespace AndrewKalotayAssociates
92 bool operator==(
const Date& rhs)
const;
94 bool operator!=(
const Date& rhs)
const;
96 bool operator<(
const Date& rhs)
const;
98 bool is_before(
const Date& rhs)
const;
100 bool operator>(
const Date& rhs)
const;
102 bool operator<=(
const Date& rhs)
const;
104 bool is_on_or_before(
const Date& rhs)
const;
106 bool operator>=(
const Date& rhs)
const;
108 Date add_months(
int months)
const;
109 Date add_days(
int days)
const;
134 CalendarUnits::type input_units = CalendarUnits::unknown);
171 double input_rate = QuietNaN());
190 const Yield& input_yield);
222 :simple_business_day_convention(0),
223 simple_daycount(
Daycount::actual_360),
228 bool operator!()
const
230 return (0 == simple_yields.size()) &&
231 (0 == forward_yields.size()) &&
232 (0 == par_yields.size());
248 Daycount::type daycount;
252 bool operator!()
const;
282 double input_factor = QuietNaN());
290 Date settlement_date;
303 double input_rate = QuietNaN());
330 double input_index = QuietNaN());
420 Daycount::type daycount;
422 double initial_guess;
425 bool use_compounded_yield;
428 :daycount(Daycount::d30_360),
433 use_compounded_yield(
false)
464 :initial_principal(100)
562 double input_fixed_interest,
563 double input_index_factor = 0,
564 type_type input_type = standard,
565 double input_floor = 0,
566 double input_cap = 0);
640 double input_strike = 100.0);
710 yield_to_maturity = 2,
713 discount_margin = 20,
729 bool is_price()
const;
768 no_lattice_model = 2*2,
770 invalid_license = 256*2,
771 no_curve_model= 256*4,
772 computation_failed = 256*8,
773 invalid_quote = 256*16,
774 no_default_model = 256*32,
775 no_stock_model = 256*64,
776 invalid_handle = 256*256*256
779 bool operator!()
const;
783 const char* this_message =
"");
795 void set(
int code = ok,
const char* m =
"");
810 double accrued_interest;
819 :clean_price(QuietNaN()),
820 accrued_interest(QuietNaN()),
821 dirty_price(QuietNaN()),
823 call_value(QuietNaN()),
824 put_value(QuietNaN())
827 const Status& status()
const;
849 :duration(QuietNaN()),
850 convexity(QuietNaN())
863 :duration(QuietNaN())
874 double accrued_interest;
875 Date redemption_date;
880 const Status& status()
const;
885 clean_price(QuietNaN()),
886 accrued_interest(QuietNaN())
907 :principal(QuietNaN()),
922 :principal(QuietNaN()),
type
Definition: enums.h:106
@ semiannual
6 months
Definition: enums.h:122
Definition: structs.h:114
Date end
Day after last day of period.
Definition: structs.h:119
Date start
Start of period.
Definition: structs.h:116
Date(long input_year=0, long input_month=0, long input_day=0)
Default constructor sets year, month, date to zero.
Definition: structs.h:336
Definition: structs.h:916
Definition: structs.h:902
Definition: structs.h:858
Valuation without risk measures.
Definition: structs.h:808
Price()
Default constructor sets everything to a quiet NaN.
Definition: structs.h:818
void set_to_worst(Output::Status::code_type code, const char *m)
Internal use only.
void set(const Status &status)
Internal use only.
Duration and convexity.
Definition: structs.h:843
Risk()
Default constructor sets everything to a quiet NaN.
Definition: structs.h:848
Definition: structs.h:756
~Status()
Internal use only.
String message
Error message if any.
Definition: structs.h:760
void set_to_worst(int code, const char *m)
Internal use only.
void set_message(const char *m)
Internal use only.
void set_to_worst(Status status)
Internal use only.
void set_to_worst(int this_code=Status::ok)
Internal use only.
code_type
Definition: structs.h:765
void set(int code=ok, const char *m="")
Internal use only.
Status(code_type this_code=ok, const char *this_message="")
Internal use only.
YTM, YTW, or YTC report, including modified duration and convexity.
Definition: structs.h:871
void set(const Risk &modified_risk)
Internal use only.
Yield()
Default constructor sets everything to quiet NaN.
Definition: structs.h:883
const Risk & modified_risk() const
Modified duration and convexity.
void set(const Status &status)
Internal use only.
Definition: structs.h:125
long months() const
Converts to number of months as an integer. Use only if units are either years or months.
long periods
Number of time periods.
Definition: structs.h:127
TimeDifference(long input_periods=IntMin(), CalendarUnits::type input_units=CalendarUnits::unknown)
Default constructor initializes to invalid values.
CalendarUnits::type units
Units of time.
Definition: structs.h:130