pub struct TermStructure {
pub dates: Vec<Date>,
pub discount_factors: Vec<f64>,
pub day_count_convention: DayCountConvention,
pub interpolation_method: InterpolationMethod,
pub asof_date: Date,
pub year_fractions: Vec<f64>,
pub zero_rates: Vec<f64>,
/* private fields */
}Expand description
An interest rate term structure.
Stores a grid of (date, discount-factor) pairs and derives zero rates and an interpolator for off-grid queries.
Fields§
§dates: Vec<Date>§discount_factors: Vec<f64>§day_count_convention: DayCountConvention§interpolation_method: InterpolationMethod§asof_date: Date§year_fractions: Vec<f64>§zero_rates: Vec<f64>Implementations§
Source§impl TermStructure
impl TermStructure
Sourcepub fn new(
dates: Vec<Date>,
discount_factors: Vec<f64>,
day_count_convention: DayCountConvention,
interpolation_method: InterpolationMethod,
asof_date: Date,
) -> Result<Self, String>
pub fn new( dates: Vec<Date>, discount_factors: Vec<f64>, day_count_convention: DayCountConvention, interpolation_method: InterpolationMethod, asof_date: Date, ) -> Result<Self, String>
Create a new term structure from dates and discount factors.
Sourcepub fn flat_curve(
rate: f64,
asof_date: Date,
day_count_convention: DayCountConvention,
max_tenor_years: f64,
) -> Result<Self, String>
pub fn flat_curve( rate: f64, asof_date: Date, day_count_convention: DayCountConvention, max_tenor_years: f64, ) -> Result<Self, String>
Build a flat (constant-rate) term structure.
Sourcepub fn from_zero_rates(
dates: Vec<Date>,
zero_rates: Vec<f64>,
day_count_convention: DayCountConvention,
asof_date: Date,
) -> Result<Self, String>
pub fn from_zero_rates( dates: Vec<Date>, zero_rates: Vec<f64>, day_count_convention: DayCountConvention, asof_date: Date, ) -> Result<Self, String>
Build a term structure from continuously-compounded zero rates.
Sourcepub fn discount_factor(&self, maturity_date: Date) -> f64
pub fn discount_factor(&self, maturity_date: Date) -> f64
Discount factor for a given maturity date.
Sourcepub fn discount_factor_at_time(&self, t: f64) -> f64
pub fn discount_factor_at_time(&self, t: f64) -> f64
Discount factor at time t (in years).
Sourcepub fn zero_rate(&self, maturity_date: Date) -> f64
pub fn zero_rate(&self, maturity_date: Date) -> f64
Zero-coupon rate (continuously compounded) for a given maturity date.
Sourcepub fn zero_rate_at_time(&self, t: f64) -> f64
pub fn zero_rate_at_time(&self, t: f64) -> f64
Zero-coupon rate at time t (in years).
Sourcepub fn forward_rate(
&self,
start_date: Date,
end_date: Date,
) -> Result<f64, String>
pub fn forward_rate( &self, start_date: Date, end_date: Date, ) -> Result<f64, String>
Continuously-compounded forward rate between two dates.
Sourcepub fn forward_rate_at_time(&self, t1: f64, t2: f64) -> Result<f64, String>
pub fn forward_rate_at_time(&self, t1: f64, t2: f64) -> Result<f64, String>
Continuously-compounded forward rate between two times.
pub fn summary(&self) -> String
Trait Implementations§
Source§impl Clone for TermStructure
impl Clone for TermStructure
Source§fn clone(&self) -> TermStructure
fn clone(&self) -> TermStructure
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TermStructure
impl Debug for TermStructure
Auto Trait Implementations§
impl Freeze for TermStructure
impl RefUnwindSafe for TermStructure
impl Send for TermStructure
impl Sync for TermStructure
impl Unpin for TermStructure
impl UnsafeUnpin for TermStructure
impl UnwindSafe for TermStructure
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more