Volatilities

Volatility Term Structure Types

DiffFusion.VolatilityTermstructureType
abstract type VolatilityTermstructure <: Termstructure end

An abstract volatility term structure that provides methods to calculate volatility values for various incarnations of signatures.

DiffFusion.BackwardFlatVolatilityType
struct BackwardFlatVolatility <: VolatilityTermstructure
    alias::String
    times::AbstractVector
    values::AbstractMatrix
end

A vector-valued volatility term structure with piece-wise constant (backward-flat) interpolation and constant extrapolation.

DiffFusion.backward_flat_volatilityFunction
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_volatilityFunction
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.volatilityFunction
volatility(ts::VolatilityTermstructure, t::ModelTime, result_size::TermstructureResultSize = TermstructureVector)

Return a volatility for a given observation time t.

DiffFusion.volatilityMethod
volatility(ts::VolatilityTermstructure, t::ModelTime, x::ModelValue)

Return a scalar volatility for a given observation time t and underlying or strike value x.

DiffFusion.volatilityFunction
volatility(ts::BackwardFlatVolatility, t::ModelTime, result_size::TermstructureResultSize = TermstructureVector)

Return a vector of volatilities for a given observation time t.

DiffFusion.time_idxMethod
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.