LUSID C# SDK
Public Member Functions | Properties | List of all members
Lusid.Sdk.Model.PricingContext Class Reference

Pricing context node. In order to price an instrument a number of configuration parameters are required to determine which (a) pricing model (ranging from a simple lookup of a market quote/price through to a Monte-Carlo simulation for the behaviour of its cashflows) (b) vendor library (Lusid internal models or those provided through an external Vendor such as Refinitiv (proprietary) or QuantLib (open source) are used in the pricing. In conjunction with these there are a number of parameters that govern the behaviour of these models. For example, in pricing an Fx volatility dependent product such as an Fx option, there are various parameters that affect model behaviour for the smile. In Lusid a distinction is made between those which are understood natively and those which are only held for use with a given vendor-model combination. The problem is that, unlike market quote data, there are few standards around model descriptions. Hence, apparently similar terminology can be mis-leading; for example in SABR models where the basic parameters are agreed upon but most practical models have used an approximation with adjustments where the parameters can have wildly different meanings. To avoid confusion or mis-behaviour in this area, where parameters are not understood to be interchangeable, they are only settable on a per-library per-model basis, essentially as opaque data that will be given to the Vendor library "verbatim" but not used with any other. More...

Inheritance diagram for Lusid.Sdk.Model.PricingContext:
Inheritance graph
[legend]

Public Member Functions

 PricingContext (List< VendorModelRule > modelRules=default(List< VendorModelRule >), Dictionary< string, ModelSelection > modelChoice=default(Dictionary< string, ModelSelection >), PricingOptions options=default(PricingOptions), List< ResultKeyRule > resultDataRules=default(List< ResultKeyRule >))
 Initializes a new instance of the PricingContext class. More...
 
override string ToString ()
 Returns the string presentation of the object More...
 
virtual string ToJson ()
 Returns the JSON string presentation of the object More...
 
override bool Equals (object input)
 Returns true if objects are equal More...
 
bool Equals (PricingContext input)
 Returns true if PricingContext instances are equal More...
 
override int GetHashCode ()
 Gets the hash code More...
 

Properties

List< VendorModelRuleModelRules [get, set]
 The set of model rules that are available. There may be multiple rules for Vendors, but only one per model-instrument pair. Which of these preference sets is used depends upon the model choice selection if specified, or failing that the global default model specification in the options. More...
 
Dictionary< string, ModelSelectionModelChoice [get, set]
 The choice of which model selection (vendor library, pricing model) to use in evaluation of a given instrument type. More...
 
PricingOptions Options [get, set]
 Gets or Sets Options More...
 
List< ResultKeyRuleResultDataRules [get, set]
 Set of rules that control querying of unit results either for direct queries into aggregation or for overriding intermediate calculations. For example, a dirty price is made up from a clean price and the accrued interest. One might consider overriding the accrued interest calculated by a model (perhaps one wants to match an external value or simply disagrees with the calculated result) and use that in calculation of the dirty price. More...
 

Detailed Description

Pricing context node. In order to price an instrument a number of configuration parameters are required to determine which (a) pricing model (ranging from a simple lookup of a market quote/price through to a Monte-Carlo simulation for the behaviour of its cashflows) (b) vendor library (Lusid internal models or those provided through an external Vendor such as Refinitiv (proprietary) or QuantLib (open source) are used in the pricing. In conjunction with these there are a number of parameters that govern the behaviour of these models. For example, in pricing an Fx volatility dependent product such as an Fx option, there are various parameters that affect model behaviour for the smile. In Lusid a distinction is made between those which are understood natively and those which are only held for use with a given vendor-model combination. The problem is that, unlike market quote data, there are few standards around model descriptions. Hence, apparently similar terminology can be mis-leading; for example in SABR models where the basic parameters are agreed upon but most practical models have used an approximation with adjustments where the parameters can have wildly different meanings. To avoid confusion or mis-behaviour in this area, where parameters are not understood to be interchangeable, they are only settable on a per-library per-model basis, essentially as opaque data that will be given to the Vendor library &quot;verbatim&quot; but not used with any other.

Constructor & Destructor Documentation

◆ PricingContext()

Lusid.Sdk.Model.PricingContext.PricingContext ( List< VendorModelRule modelRules = default(List<VendorModelRule>),
Dictionary< string, ModelSelection modelChoice = default(Dictionary<string, ModelSelection>),
PricingOptions  options = default(PricingOptions),
List< ResultKeyRule resultDataRules = default(List<ResultKeyRule>) 
)
inline

Initializes a new instance of the PricingContext class.

Parameters
modelRulesThe set of model rules that are available. There may be multiple rules for Vendors, but only one per model-instrument pair. Which of these preference sets is used depends upon the model choice selection if specified, or failing that the global default model specification in the options..
modelChoiceThe choice of which model selection (vendor library, pricing model) to use in evaluation of a given instrument type..
optionsoptions.
resultDataRulesSet of rules that control querying of unit results either for direct queries into aggregation or for overriding intermediate calculations. For example, a dirty price is made up from a clean price and the accrued interest. One might consider overriding the accrued interest calculated by a model (perhaps one wants to match an external value or simply disagrees with the calculated result) and use that in calculation of the dirty price..

Member Function Documentation

◆ Equals() [1/2]

override bool Lusid.Sdk.Model.PricingContext.Equals ( object  input)
inline

Returns true if objects are equal

Parameters
inputObject to be compared
Returns
Boolean

◆ Equals() [2/2]

bool Lusid.Sdk.Model.PricingContext.Equals ( PricingContext  input)
inline

Returns true if PricingContext instances are equal

Parameters
inputInstance of PricingContext to be compared
Returns
Boolean

◆ GetHashCode()

override int Lusid.Sdk.Model.PricingContext.GetHashCode ( )
inline

Gets the hash code

Returns
Hash code

◆ ToJson()

virtual string Lusid.Sdk.Model.PricingContext.ToJson ( )
inlinevirtual

Returns the JSON string presentation of the object

Returns
JSON string presentation of the object

◆ ToString()

override string Lusid.Sdk.Model.PricingContext.ToString ( )
inline

Returns the string presentation of the object

Returns
String presentation of the object

Property Documentation

◆ ModelChoice

Dictionary<string, ModelSelection> Lusid.Sdk.Model.PricingContext.ModelChoice
getset

The choice of which model selection (vendor library, pricing model) to use in evaluation of a given instrument type.

The choice of which model selection (vendor library, pricing model) to use in evaluation of a given instrument type.

◆ ModelRules

List<VendorModelRule> Lusid.Sdk.Model.PricingContext.ModelRules
getset

The set of model rules that are available. There may be multiple rules for Vendors, but only one per model-instrument pair. Which of these preference sets is used depends upon the model choice selection if specified, or failing that the global default model specification in the options.

The set of model rules that are available. There may be multiple rules for Vendors, but only one per model-instrument pair. Which of these preference sets is used depends upon the model choice selection if specified, or failing that the global default model specification in the options.

◆ Options

PricingOptions Lusid.Sdk.Model.PricingContext.Options
getset

Gets or Sets Options

◆ ResultDataRules

List<ResultKeyRule> Lusid.Sdk.Model.PricingContext.ResultDataRules
getset

Set of rules that control querying of unit results either for direct queries into aggregation or for overriding intermediate calculations. For example, a dirty price is made up from a clean price and the accrued interest. One might consider overriding the accrued interest calculated by a model (perhaps one wants to match an external value or simply disagrees with the calculated result) and use that in calculation of the dirty price.

Set of rules that control querying of unit results either for direct queries into aggregation or for overriding intermediate calculations. For example, a dirty price is made up from a clean price and the accrued interest. One might consider overriding the accrued interest calculated by a model (perhaps one wants to match an external value or simply disagrees with the calculated result) and use that in calculation of the dirty price.


The documentation for this class was generated from the following file: