Correlations
Correlation Term Structure Type
DiffFusion.CorrelationTermstructure
— Typeabstract type CorrelationTermstructure <: Termstructure end
An 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
end
A 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
.