Skip to main content

PySabrVolSurface

Struct PySabrVolSurface 

pub struct PySabrVolSurface {
    pub(crate) inner: SabrVolSurface,
}
Expand description

A SABR rate smile over expiry × tenor: σ_ATM, ρ and ν at each node, β and the shift stated once, α implied at each read from the ATM vol at the read’s own forward. Pinned with with_swaption_vols or with_cap_vols beside a grid.

Fields§

§inner: SabrVolSurface

Implementations§

§

impl PySabrVolSurface

fn __repr__(&self) -> String

pub(crate) fn new( expiries: Vec<f64>, tenors: Vec<f64>, formula: Named<SabrFormula>, beta: f64, shift: f64, atm_vols: Vec<Vec<f64>>, rhos: Vec<Vec<f64>>, nus: Vec<Vec<f64>>, ) -> PyResult<Self>

A surface from ascending expiries and tenors, both in years, the formula, CEV exponent beta and displacement shift, and one row per expiry of ATM vols, ρs and νs, in tenor order.

fn expiries(&self) -> Vec<f64>

The expiry pillars, in years.

fn tenors(&self) -> Vec<f64>

The tenor pillars, in years.

fn formula(&self) -> String

The formula’s spelling.

fn beta(&self) -> f64

The CEV exponent.

fn shift(&self) -> f64

The displacement.

fn vol_convention(&self) -> String

The convention the formula’s vols are quoted in: normal or lognormal.

fn node_parameters( &self, expiry_years: f64, tenor_years: f64, ) -> (f64, f64, f64)

The node parameters (atm_vol, rho, nu) at (expiry_years, tenor_years): bilinear between nodes, flat beyond the edges.

fn vol( &self, expiry_years: f64, tenor_years: f64, forward: f64, strike: f64, ) -> PyResult<f64>

The smile’s vol at (expiry_years, tenor_years) for strike at forward, in the formula’s convention.

fn is_fitted(&self) -> bool

Whether the surface was fitted, carrying the quote Jacobian a par vega reads; one stated by its parameters was not.

Trait Implementations§

§

impl Clone for PySabrVolSurface

§

fn clone(&self) -> PySabrVolSurface

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 DerefToPyAny for PySabrVolSurface

§

impl From<&PySabrVolSurface> for RateSmileArg

§

fn from(surface: &PySabrVolSurface) -> Self

Converts to this type from the input type.
§

impl IntoPy<Py<PyAny>> for PySabrVolSurface

§

fn into_py(self, py: Python<'_>) -> PyObject

Performs the conversion.
§

impl PyClass for PySabrVolSurface

§

type Frozen = True

Whether the pyclass is frozen. Read more
§

impl PyClassImpl for PySabrVolSurface

§

const IS_BASETYPE: bool = false

#[pyclass(subclass)]
§

const IS_SUBCLASS: bool = false

#[pyclass(extends=…)]
§

const IS_MAPPING: bool = false

#[pyclass(mapping)]
§

const IS_SEQUENCE: bool = false

#[pyclass(sequence)]
§

type BaseType = PyAny

Base class
§

type ThreadChecker = SendablePyClass<PySabrVolSurface>

This handles following two situations: Read more
§

type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::ImmutableChild

Immutable or mutable
§

type Dict = PyClassDummySlot

Specify this class has #[pyclass(dict)] or not.
§

type WeakRef = PyClassDummySlot

Specify this class has #[pyclass(weakref)] or not.
§

type BaseNativeType = PyAny

The closest native ancestor. This is PyAny by default, and when you declare #[pyclass(extends=PyDict)], it’s PyDict.
§

fn items_iter() -> PyClassItemsIter

§

fn doc(py: Python<'_>) -> PyResult<&'static CStr>

Rendered class doc
§

fn lazy_type_object() -> &'static LazyTypeObject<Self>

§

fn dict_offset() -> Option<isize>

§

fn weaklist_offset() -> Option<isize>

§

impl PyClassNewTextSignature<PySabrVolSurface> for PyClassImplCollector<PySabrVolSurface>

§

fn new_text_signature(self) -> Option<&'static str>

§

impl<'a, 'py> PyFunctionArgument<'a, 'py> for &'a PySabrVolSurface

§

type Holder = Option<PyRef<'py, PySabrVolSurface>>

§

fn extract( obj: &'a Bound<'py, PyAny>, holder: &'a mut Self::Holder, ) -> PyResult<Self>

§

impl PyMethods<PySabrVolSurface> for PyClassImplCollector<PySabrVolSurface>

§

fn py_methods(self) -> &'static PyClassItems

§

impl PyTypeInfo for PySabrVolSurface

§

const NAME: &'static str = "SabrVolSurface"

Class name.
§

const MODULE: Option<&'static str>

Module name, if any.
§

fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject

Returns the PyTypeObject instance for this type.
§

fn type_object_bound(py: Python<'_>) -> Bound<'_, PyType>

Returns the safe abstraction over the type object.
§

fn is_type_of_bound(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type or a subclass of this type.
§

fn is_exact_type_of_bound(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of this type.

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.

§

impl<T> FromPyObject<'_> for T
where T: PyClass + Clone,

§

fn extract_bound(obj: &Bound<'_, PyAny>) -> Result<T, PyErr>

Extracts Self from the bound smart pointer obj. Read more
§

impl<'py, T> FromPyObjectBound<'_, 'py> for T
where T: FromPyObject<'py>,

§

fn from_py_object_bound(ob: Borrowed<'_, 'py, PyAny>) -> Result<T, PyErr>

Extracts Self from the bound smart pointer obj. Read more
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.

§

impl<T> PyErrArguments for T
where T: IntoPy<Py<PyAny>> + Send + Sync,

§

fn arguments(self, py: Python<'_>) -> Py<PyAny>

Arguments for exception
§

impl<T> PyTypeCheck for T
where T: PyTypeInfo,

§

const NAME: &'static str = <T as PyTypeInfo>::NAME

Name of self. This is used in error messages, for example.
§

fn type_check(object: &Bound<'_, PyAny>) -> bool

Checks if object is an instance of Self, which may include a subtype. Read more
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.
§

impl<T> Ungil for T
where T: Send,