Skip to main content

CdsDiagnostics

Struct CdsDiagnostics 

pub struct CdsDiagnostics {
    pub premium: f64,
    pub accrual: f64,
    pub rebate: f64,
    pub upfront: f64,
    pub protection: f64,
    pub annuity: f64,
}
Expand description

What a credit default swap resolved to when it was priced: each part of its value, signed as it enters that value, and the risky annuity behind its quote.

The parts sum to npv. They are reported signed rather than as magnitudes because a protection buyer’s premium leg is a cost and its protection leg is a benefit, and a reader needs to know which is which without inferring it from a side.

The premium leg here is the survival-weighted one the pricer computes. It is not what summing the contract’s cashflow leg gives: that leg is a schedule of coupons, and discounting it without weighting each by the probability of surviving to collect it values a bond, not a swap.

Fields§

§premium: f64

The survival-weighted premium leg.

§accrual: f64

The premium accrued to the default date, under the contract’s accrual-on-default convention.

§rebate: f64

The accrual the first coupon charges for but protection did not cover, returned at cash settlement and discounted from it.

§upfront: f64

The upfront, as money rather than as a decimal of the notional, discounted from the cash-settlement date it is paid on.

§protection: f64

The protection leg: the default-time integral over the contract’s grid.

§annuity: f64

The risky annuity at unit coupon, which is what the quote divides by. Unsigned: it is a per-unit-coupon cost, not a value.

Implementations§

§

impl CdsDiagnostics

pub fn npv(&self) -> f64

The contract’s value: its parts, which are already signed, added up.

Trait Implementations§

§

impl Clone for CdsDiagnostics

§

fn clone(&self) -> CdsDiagnostics

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Copy for CdsDiagnostics

§

impl Debug for CdsDiagnostics

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
§

impl PartialEq for CdsDiagnostics

§

fn eq(&self, other: &CdsDiagnostics) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl StructuralPartialEq for CdsDiagnostics

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.