Volatilities
Volatility Term Structure Types
DiffFusion.VolatilityTermstructure — Type
abstract type VolatilityTermstructure <: Termstructure endAn abstract volatility term structure that provides methods to calculate volatility values for various incarnations of signatures.
DiffFusion.BackwardFlatVolatility — Type
struct BackwardFlatVolatility <: VolatilityTermstructure
alias::String
times::AbstractVector
values::AbstractMatrix
endA vector-valued volatility term structure with piece-wise constant (backward-flat) interpolation and constant extrapolation.
DiffFusion.backward_flat_volatility — Function
backward_flat_volatility(
alias::String,
times::AbstractVector,
values::AbstractMatrix,
)Create a BackwardFlatVolatility object for vector-valued volatility.
Volatility values are of size (nvols, ntimes).
backward_flat_volatility(
alias::String,
times::AbstractVector,
values::AbstractVector,
)Create a BackwardFlatVolatility object for scalar volatility.
DiffFusion.flat_volatility — Function
flat_volatility(alias::String, value)Create a BackwardFlatVolatility object for a flat volatility.
flat_volatility(alias::String, value)Create a BackwardFlatVolatility object for a flat volatility.
Functions
Call operator for VolatilityTermstructure is defined as
(ts::VolatilityTermstructure)(args...) = volatility(ts, args...)DiffFusion.volatility — Method
volatility(ts::VolatilityTermstructure, t::ModelTime)Return a volatility for a given observation time t.
DiffFusion.volatility — Method
volatility(ts::VolatilityTermstructure, t::ModelTime, x::ModelValue)Return a scalar volatility for a given observation time t and underlying or strike value x.
DiffFusion.volatility — Method
volatility(ts::BackwardFlatVolatility, t::ModelTime)Return a vector of volatilities for a given observation time t.
DiffFusion.scalar_volatility — Function
scalar_volatility(ts::BackwardFlatVolatility, t::ModelTime)Return a scalar volatility (if possible).
DiffFusion.is_constant — Function
is_constant(ts::Termstructure, s::ModelTime, t::ModelTime)Determine whether term structure values are constant on the intervall (s, t).
is_constant(ts::BackwardFlatVolatility, s::ModelTime, t::ModelTime)Determine whether volatility values are constant on the intervall (s, t).
DiffFusion.time_idx — Method
time_idx(ts::BackwardFlatVolatility, t)Find the index such that T[idx-1] < t <= T[idx]. If t is larger than the last (or all) times T then return length(T)+1.