Skip to content

Commit

Permalink
Vineet Kumar Story2500_ValuationModelinCDM with updated expectations (#…
Browse files Browse the repository at this point in the history
…2279)

* Story2500_ValuationModelinCDM

Valuation Model in CDM

* Story2500_ValuationModelinCDM

Valuation Model in CDM

* Story2500_ValuationModelinCDM

Story 2500 Valuation Model in CDM

* Story2500_ValuationModelinCDM

Story 2500 Valuation Model in CDM

* Story2500_ValuationModelinCDM

Story 2500 Valuation Model in CDM

* Story2500_ValuationModelinCDM

Story 2500 Valuation Model in CDM

* update expectations

* Update RELEASE.md

* Update RELEASE.md

* Fix typos

* Update RELEASE.md

---------

Co-authored-by: Vineet Kumar <vineet.kumar@regnosys.com>
Co-authored-by: rvincentISDA <66018066+rvincentISDA@users.noreply.github.com>
Co-authored-by: Hugo Hills <39260692+hugohills-regnosys@users.noreply.github.com>
Co-authored-by: Vineet Kumar <84881498+winitall01@users.noreply.github.com>
  • Loading branch information
5 people authored Jul 21, 2023
1 parent b9d0c46 commit 925e5da
Show file tree
Hide file tree
Showing 13 changed files with 44 additions and 19 deletions.
15 changes: 11 additions & 4 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
# *Infrastructure - Dependency Updates*
# *Event Model - Representation of trade valuations*

_What is being released?_

This release updates the bundle dependency version. The bundle dependency comprises a number of dependencies that are released together as a bundle, including [rosetta-common](https://github.com/REGnosys/rosetta-common) and [rosetta-code-generators](https://github.com/REGnosys/rosetta-code-generators).
This release introduces the `Valuation` data type that will document the valuation details of a trade during its life cycle. The history of all the valuations will be inscribed in the new `ValuationHistory` attribute of a `TradeState`. Future work will explore how to codify the state transitions for valuations.
Additionally, the existing `valuation` type present in `ReturnsTermsBase` is renamed as `valuationTerms`

- Bundle version upgrade includes:
- 7.4.0: Java function memoization that significantly improves function execution time by caching repeating function calls that share the same signature. No changes are required in the CDM.
_Review Directions_

In the CDM Portal, select the textual view or graphical view and inspect:

- the structural definition of the `Valuation` data type and associated enum type `ValuationTypeEnum`, `ValuationSourceEnum`
- the insertion of the valuationHistory attribute for the `TradeState` data type
- renaming of existing `Valuation` type to `ValuationTerms`
- renaming of existing `valuation` attribute in `ReturnTermsBases` to `valuationTerms`
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@
},
"returnTerms" : {
"varianceReturnTerms" : {
"valuation" : {
"valuationTerms" : {
"futuresPriceValuation" : true
},
"exchangeTradedContractNearest" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@
"additionalDividends" : false,
"optionsExchangeDividends" : true
},
"valuation" : {
"valuationTerms" : {
"optionsPriceValuation" : true
},
"exchangeTradedContractNearest" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@
"additionalDividends" : false,
"optionsExchangeDividends" : true
},
"valuation" : {
"valuationTerms" : {
"optionsPriceValuation" : true
},
"exchangeTradedContractNearest" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@
"returnTerms" : {
"varianceReturnTerms" : {
"initialLevel" : 0.80,
"valuation" : {
"valuationTerms" : {
"futuresPriceValuation" : true
},
"varianceStrikePrice" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@
"returnTerms" : {
"varianceReturnTerms" : {
"initialLevel" : 0.80,
"valuation" : {
"valuationTerms" : {
"futuresPriceValuation" : true
},
"varianceStrikePrice" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@
"returnTerms" : {
"varianceReturnTerms" : {
"expectedN" : 542,
"valuation" : {
"valuationTerms" : {
"futuresPriceValuation" : true
},
"varianceCapFloor" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@
"returnTerms" : {
"varianceReturnTerms" : {
"expectedN" : 542,
"valuation" : {
"valuationTerms" : {
"futuresPriceValuation" : true
},
"varianceCapFloor" : {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@
"returnTerms" : {
"volatilityReturnTerms" : {
"expectedN" : 5,
"valuation" : {
"valuationTerms" : {
"futuresPriceValuation" : true
},
"volatilityCapFloor" : {
Expand Down
7 changes: 7 additions & 0 deletions rosetta-source/src/main/rosetta/event-common-enum.rosetta
Original file line number Diff line number Diff line change
Expand Up @@ -143,3 +143,10 @@ enum CreditEventTypeEnum: <"Represents the enumerated values to specify a credit
RepudiationMoratorium <"The reference entity, or a governmental authority, either refuses to recognise or challenges the validity of one or more obligations of the reference entity, or imposes a moratorium thereby postponing payments on one or more of the obligations of the reference entity. Subject to the default requirement amount. ISDA 2003 Term: Repudiation/Moratorium.">
Restructuring <"A restructuring is an event that materially impacts the reference entity's obligations, such as an interest rate reduction, principal reduction, deferral of interest or principal, change in priority ranking, or change in currency or composition of payment. ISDA 2003 Term: Restructuring.">
Writedown <"Results from the fact that the underlier writes down its outstanding principal amount.">

enum ValuationTypeEnum: <"Method used for the valuation of the transaction by the valuation party.">
MarkToMarket <"Mark-to-Market">
MarkToModel <"Mark-to-Model">

enum ValuationSourceEnum: <"Source for the valuation of the transaction by the valuation party.">
CentralCounterparty <"Central Counterparty's Valuation">
11 changes: 11 additions & 0 deletions rosetta-source/src/main/rosetta/event-common-type.rosetta
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ type TradeState: <"Defines the fundamental financial information that can be cha
resetHistory Reset (0..*) <"Represents the updated Trade attributes which can change as the result of a reset event. Only the changed values are captured, leaving the remaining data attributes empty. See Create_Reset function for further details on how TradeState is used in the Reset event. The TradeState data type is used to maintain backwards compatibility with the current Reset mechanism.">
transferHistory TransferState (0..*) <"Represents the updated Trade attributes which can change as the result of a transfer event.">
observationHistory ObservationEvent (0..*) <"Represents the observed events related to a particular product or process, such as credit events or corporate actions.">
valuationHistory Valuation (0..*)

type ObservationEvent: <"Specifies the necessary information to create any observation event.">
creditEvent CreditEvent (0..1) <"Specifies the necessary information to create a credit event.">
Expand Down Expand Up @@ -250,6 +251,16 @@ type SettlementOrigin: <"Defines the origin to the transfer as a reference for l
type TradeIdentifier extends Identifier: <"Defines a trade identifier as a special case of the generic identifier type, that also includes the trade identifier class.">
identifierType TradeIdentifierTypeEnum (0..1) <"The enumerated classification of the identifier. Optional as a trade identifier may be party-specific, in which case it may not correspond to any established classification.">

type Valuation: <"Defines the value of an investment, asset, or security">
amount Money (1..1) <"Current value of the outstanding contract">
timestamp zonedDateTime (1..1) <"Date and time of the last valuation marked to market, provided by the central counterparty (CCP) or calculated using the current or last available market price of the inputs.">
method ValuationTypeEnum (0..1) <"Method used for the valuation of the transaction by the valuation party.">
source ValuationSourceEnum (0..1) <"Source of the valuation of the transaction by the valuation party.">
delta number (0..1) <"The ratio of the change in the price of a derivative transaction to the change in the price of the underlying. This field is applicable only to options and swaptions.">

condition ValuationType: <"The below condition ensures one and only one of the two attributes: 'Valuation Method' or 'Valuation Source' is allowed. Valuation of a trade or a portfolio is either internally calculated (via M2Market or M2Model methods) or supplied from an external source (e.g Central Counterparty's Valuation). Valuation cannot be based upon internal calculations and external source at the same time.">
required choice method, source

type Trade: <"Defines the output of a financial transaction between parties - a Business Event. A Trade impacts the financial position (i.e. the balance sheet) of involved parties.">
[metadata key]
[docReference ICMA GMRA namingConvention "Transaction"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ synonym source FpML_5_Confirmation_To_TradeState extends FpML
// Common for variance, volatility and correlation (ReturnTermsBase)
+ dividendApplicability
[value "amount" set when path = "volatilityLeg"]
+ valuation
+ valuationTerms
[value "valuation" set when path = "volatilityLeg"]
// Volatility specific
+ volatilityStrikePrice
Expand All @@ -188,7 +188,7 @@ synonym source FpML_5_Confirmation_To_TradeState extends FpML
// Common for variance, volatility and correlation (ReturnTermsBase)
+ dividendApplicability
[value "amount" set when path = "varianceLeg"]
+ valuation
+ valuationTerms
[value "valuation" set when path = "varianceLeg"]
// Variance specific
+ varianceStrikePrice
Expand All @@ -210,7 +210,7 @@ synonym source FpML_5_Confirmation_To_TradeState extends FpML
// Common for variance, volatility and correlation (ReturnTermsBase)
+ dividendApplicability
[value "amount" set when path = "correlationLeg"]
+ valuation
+ valuationTerms
[value "valuation" set when path = "correlationLeg"]
// Correlation specific
+ correlationStrikePrice
Expand Down Expand Up @@ -257,7 +257,7 @@ synonym source FpML_5_Confirmation_To_TradeState extends FpML
+ lowerBarrier
[value "lowerBarrier"]

Valuation:
ValuationTerms:
+ futuresPriceValuation
[value "futuresPriceValuation"]
+ optionsPriceValuation
Expand Down
6 changes: 3 additions & 3 deletions rosetta-source/src/main/rosetta/product-asset-type.rosetta
Original file line number Diff line number Diff line change
Expand Up @@ -442,7 +442,7 @@ type PriceReturnTerms:

type ReturnTermsBase: <"Contains all common elements in variance, volatility and correlation return Terms.">

valuation Valuation (1..1) <"Contains all non-date valuation information.">
valuationTerms ValuationTerms (1..1) <"Contains all non-date valuation information.">
annualizationFactor int (0..1) <"This specifies the numerator of an annualization factor. Frequently this number is equal to the number of observations of prices in a year e.g. 252.">
dividendApplicability DividendApplicability (0..1) <"The parameters which define whether dividends are applicable">
equityUnderlierProvisions EquityUnderlierProvisions (0..1) <"Contains Equity Underlyer provisions regarding jurisdiction and fallbacks.">
Expand Down Expand Up @@ -478,7 +478,7 @@ type VarianceReturnTerms extends ReturnTermsBase:
then exchangeTradedContractNearest -> productIdentifier exists

condition ReferenceContract: <"If futurePriceValuation is true, an exchange traded contract is used as a reference, therefore such contract must be specified in exchangeTradedContractNearest">
if valuation -> futuresPriceValuation = True then exchangeTradedContractNearest exists
if valuationTerms -> futuresPriceValuation = True then exchangeTradedContractNearest exists

condition StrikePriceMustExist: <"The strike price must be present, but it can be expressed in either variance or volatility terms">
required choice volatilityStrikePrice, varianceStrikePrice
Expand Down Expand Up @@ -510,7 +510,7 @@ type CorrelationReturnTerms extends ReturnTermsBase:
condition CorrelationValue: <"The correlation strike price is a decimal with allowed values only between 1 and -1">
correlationStrikePrice -> value > -1 and correlationStrikePrice -> value < 1

type Valuation:
type ValuationTerms:
futuresPriceValuation boolean (0..1) <"The official settlement price as announced by the related exchange is applicable, in accordance with the ISDA 2002 definitions.">
optionsPriceValuation boolean (0..1) <"The official settlement price as announced by the related exchange is applicable, in accordance with the ISDA 2002 definitions">
numberOfValuationDates int (0..1) <"The number of valuation dates between valuation start date and valuation end date.">
Expand Down

0 comments on commit 925e5da

Please sign in to comment.