Correlations
Correlation Term Structure Type
DiffFusion.CorrelationTermstructure — Typeabstract type CorrelationTermstructure <: Termstructure endAn abstract correlation term structure that provides methods to calculate instantaneous correlations.
DiffFusion.CorrelationHolder — Typestruct CorrelationHolder <: CorrelationTermstructure
alias::String
correlations::Dict{String, ModelValue}
sep::String
value_type::DataType
endA container holding correlation values.
A CorrelationHolder allows to calculate correlation matrices based on String alias keys (identifiers).
value_type specifies the type of correlation entries. This ensures that all values are of consistent type. This feature is required for correlation sensitivity calculation.
DiffFusion.correlation_holder — Functioncorrelation_holder(
alias::String,
correlations::Dict,
sep::String = "<>",
value_type::DataType = ModelValue,
)Create a CorrelationHolder object from dictionary.
correlation_holder(
alias::String,
sep::String = "<>",
value_type::DataType = ModelValue,
)Create an empty CorrelationHolder object.
correlation_holder(m::AssetModel)Return the correlation holder term structure.
Return the model's CorrelationHolder.
Functions
Call operator for CorrelationTermstructure is defined as
(ts::CorrelationTermstructure)(args...) = correlation(ts, args...)DiffFusion.correlation — Functioncorrelation(ts::CorrelationTermstructure, alias1::String, alias2::String)Return a scalar instantaneous correlation.
correlation(ts::CorrelationTermstructure, aliases::AbstractVector{String})Return a symmetric matrix of instantaneous correlations.
correlation(ts::CorrelationTermstructure, aliases1::AbstractVector{String}, aliases2::AbstractVector{String})Return a matrix of instantaneous correlations, each element of aliases1 versus each element of aliases2. The size of the resulting matrix is (length(aliases1), length(aliases2)).
correlation(ts::CorrelationTermstructure, alias1::String, aliases2::AbstractVector{String})Return an (1,N) matrix of instantaneous correlations.
correlation(ts::CorrelationTermstructure, aliases1::AbstractVector{String}, alias2::String)Return an (N, 1) matrix of instantaneous correlations.
correlation(ch::CorrelationHolder, alias1::String, alias2::String)Return a scalar instantaneous correlation.
correlation(ch::CorrelationHolder, aliases1::AbstractVector{String}, aliases2::AbstractVector{String})Return a matrix of instantaneous correlations, each element of aliases1 versus each element of aliases2. The size of the resulting matrix is (length(aliases1), length(aliases2)).
correlation(ch::CorrelationHolder, aliases::AbstractVector{String})Return a symmetric matrix of instantaneous correlations.
DiffFusion.correlation_key — Functioncorrelation_key(ch::CorrelationHolder, alias1::String, alias2::String)Derive the key for correlation dictionary from two aliases.
DiffFusion.set_correlation! — Functionset_correlation!(
ch::CorrelationHolder,
alias1::String,
alias2::String,
value::ModelValue
)Insert a new correlation value into CorrelationHolder. If a correlation already exists it is overwritten.
DiffFusion.get — Functionget(ch::CorrelationHolder, alias1::String, alias2::String)Implement methodology to obtain a scalar correlation from a CorrelationHolder.