Skip to content

Commit

Permalink
Manuel Carrera CDM FX NDS dev (finos#2866)
Browse files Browse the repository at this point in the history
* CDM FX NDS dev

This contribution adds qualification support for FX NDS

* Update RELEASE.md

---------

Co-authored-by: Manuel Carrera <[email protected]>
Co-authored-by: JayasriR <[email protected]>
Co-authored-by: Jayasri Radhakrishnan <[email protected]>
  • Loading branch information
4 people authored Apr 18, 2024
1 parent 0535547 commit f3b86e3
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 8 deletions.
17 changes: 9 additions & 8 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
# _Infrastructure - Dependency Update_
# _Product Model - Qualification of Foreign Exchange NDS_

_What is being released?_

This release updates the `rosetta-bundle` dependency.
_Background_

Version updates include:
- `rosetta-bundle` 10.15.7: Translate bug fix to handle enum name clashes.
Currently, Foreign Exchange Non-Deliverable Swaps are not supported in the Common Domain Model. This release adds qualification support for this kind of product.

There are no changes to the model or test expectations.
_What is being released?_

- Added the function `Qualify_ForeignExchange_NDS` that qualifies as true if a product has two forward payouts with an FX underlier and the `cashSettlementTerms` populated.
_Review directions_

The changes can be reviewed in PR: [#2870](https://github.com/finos/common-domain-model/pull/2870)
In the Rosetta platform, select the Textual View and inspect each of the changes identified above.

PR: [#2866](https://github.com/finos/common-domain-model/pull/2866)

12 changes: 12 additions & 0 deletions rosetta-source/src/main/rosetta/product-qualification-func.rosetta
Original file line number Diff line number Diff line change
Expand Up @@ -1434,6 +1434,18 @@ func Qualify_ForeignExchange_NDF: <"Qualifies a product as Foreign Exchange Non-
and economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange count = 1
and economicTerms -> payout -> forwardPayout -> settlementTerms -> cashSettlementTerms exists

func Qualify_ForeignExchange_NDS: <"Qualifies a product as Foreign Exchange NDS based on economic terms, which is defined as a contract in which one party borrows one currency from, and simultaneously lends another to, the second party. Each party uses the repayment obligation to its counterparty as collateral and the amount of repayment is fixed at the FX forward rate as of the start of the contract.">
[qualification Product]
inputs:
economicTerms EconomicTerms (1..1)
output:
is_product boolean (1..1)
set is_product:
Qualify_AssetClass_ForeignExchange(economicTerms) = True
and economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange only exists
and economicTerms -> payout -> forwardPayout -> underlier -> foreignExchange count = 2
and economicTerms -> payout -> forwardPayout -> settlementTerms -> cashSettlementTerms exists

func Qualify_ForeignExchange_ParameterReturnVariance: <"Qualifies a product as Foreign Exchange Swap for which the performance is based on the variance of a foreign exhange underlier. The determination of the qualification is based on the economic terms and the following criteria: 1) Is a Foreign Exchange product (the underlier is foreign exchange) 2) with only one performance leg 3) which has variance return terms, 4) there are no option features.">
[qualification Product]
inputs:
Expand Down

0 comments on commit f3b86e3

Please sign in to comment.