FpML Issues Tracker
closed
Minor
Always
Validation Rules
Admin
danieldui
Summary
FX WG has finished with its initial review of the Validation Rules for for Redesigned FX product model and is asking Validation Working Group to review the changes and comments, in addition to provide their help to finalize the FX rules for publication in 5-1-LCWD.
Notes:
iyermakova
12/06/10 2:01 pm
iyermakova
12/06/10 6:42 pm
As per Nov-11-2010 – VALWG:
– The Validation Rules for FX Derivatives were updated (see attached The blackline-FpML Validation Rules for FX Derivatives-12-01-2010.doc)
– Updated schema/examples/rules 11,12,42 (rule 13 and 42 has comments) with Rate Observation proposal (see attached zip file with schema/example).
– fx-14: Within FXBarrierFeature complex type, moved
elements observationStartDate and observationEndDate in side an optional
xsd:sequence. Made observationStartDate required and observationEndDate
optional. This eliminates the second if statement in the rule fx-14.
The change is committed to FpML-5-1 (and will be published with LCWD)
iyermakova
12/16/10 11:50 pm
Dec-12-2010: Daniel Dui and Irina Yermakova reviewed up until rule fx-31.
– The Validation Rules for FX Derivatives were updated with some comments (see attached The blackline-FpML Validation Rules for FX Derivatives-12-16-2010.doc).
danieldui
12/20/10 1:42 am
iyermakova
01/05/11 9:29 pm
Added to FpML-5-1:
1. agreed updated existing FX business validation rules
– rules that still require updates:
fx-4, fx-5, fx-6 – crossRate redefined
fx-18, fx-22, fx-32, fx-45, – party reference
– rules that require confirmation:
fx-19, fx-23, fx-31, fx-49
2. agreed new rules (fx-48, fx-50, fx-51, fx-52, fx-53)
iyermakova
01/24/11 5:14 pm
danieldui
01/25/11 1:46 pm
About FX-4,5, and 6.
I have tried to formulate a rule. That ensures that you can go from quotedCurrencyPair/currency1 to quotedCurrencyPair/currency2 via the cross rates.
Even restricting to the case when crossRate occurs twice (which is the most common case), the rule would need to cover 18 combinations in which currency1, currency2 and
quoteBasis in quotedCurrencyPair, crossRate[1], and crossRate[2] can be populated.
I don’t think we can write a rule in the rule syntax that we have.
Context: QuotedCurrencyPair (complex type)
If currency1 and currency2 have the same same-currency-scheme, then currency1 is not equal to currency2
Context: CrossRate (complex type)
(same as above)
Note that CrossRate extends QuotedCurrencyPair.
Informal rule:
The elements currency1, currency2, and quoteBasis in quotedCurrencyPair and crossRate, and the element rate in exchangeRate and crossRate must populated so that exchangeRate/currency2 can be obtained from exchangeRate/currency1 via the cross rates.
For example
exchangeRate/quotedCurrencyPair/currency1 = GBP
exchangeRate/quotedCurrencyPair/currency2 = EUR
exchangeRate/quotedCurrencyPair/quoteBasis = Currency2PerCurrency1
exchangeRate/rate = 0.630068
exchangeRate/crossRate/currency1 = GBP
exchangeRate/crossRate/currency2 = USD
exchangeRate/crossRate/quoteBasis = Currency2PerCurrency1
exchangeRate/crossRate/rate = 1.4800
exchangeRate/crossRate/currency1 = USD
exchangeRate/crossRate/currency2 = EUR
exchangeRate/crossRate/quoteBasis = Currency2PerCurrency1
exchangeRate/crossRate/rate = 0.9325
danieldui
02/01/11 1:15 pm
Also…
A document should include only the crossRate’s elements needed to obtain exchangeRate/currency2 from exchangeRate/currency2.
danieldui
02/15/11 1:31 pm
iyermakova
02/15/11 2:02 pm
An English description of the rules fx-22, fx-32, fx-45, – party reference has been corrected – http://www.fpml.org/spec/fpml-5-1-6-rec-1/html/confirmation/validation-rules/rules-english-fx.html
danieldui
04/18/11 4:55 pm
Fx-22 and fx-45 seem ambiguous. Does “otherwise” match the inner or the outer “if”?
danieldui
06/21/11 10:23 am
Email from AJ sent on 8 June 2011:
After a little a experimentation I found that XPath 2.0 has an empty() function which functions like not exists () so fx-18 can be expressed as
Context: FxSingleLeg
The payer and receiver of exchangedCurrency1 must have the reverse role in exchangedCurrency2.
exchangedCurrency1/payerPartyReference/@href eq exchangedCurrency2/receiverPartyReference/@href and
exchangedCurrency2/payerPartyReference/@href eq exchangedCurrency1/receiverPartyReference/@href and
((empty (exchangedCurrency1/payerAccountReference/@href) and empty (exchangedCurrency2/receiverAccountReference/@href)) or
(exchangedCurrency1/payerAccountReference/@href eq exchangedCurrency2/receiverAccountReference/@href)) and
((empty (exchangedCurrency2/payerAccountReference/@href) and empty (exchangedCurrency1/receiverAccountReference/@href)) or
(exchangedCurrency2/payerAccountReference/@href eq exchangedCurrency1/receiverAccountReference/@href))
As for the model groups for payer/receiver and buyer/seller we need:
(payerPartyReference/@href ne receiverPartyReference/@href) or
(exists (payerAccountReference/@href) and exists (receiverAccountReference/@href) and (payerAccountReference/@href ne receiverAccountReference/@href)
(buyerPartyReference/@href ne sellerPartyReference/@href) or
(exists (buyerAccountReference/@href) and exists (sellerAccountReference/@href) and (buyerAccountReference/@href ne sellerAccountReference/@href)
danieldui
07/05/11 10:09 am
Discussed on 21 June
FX-18: OK to usee XPath 2.0 formulation that AJ propsed.
ACTION: ISDA update FX-18 as proposed. Also add a comment mentioning that the rule uses an XPath 2.0 funciton.
ACTION: ISDA – 1st step: Buy/Sell model group. Check which rules are affected. 2nd step: look at product definitions. Some rules may be missing.
ACTION: AJ: go throught rules to find which need to be updated.
FX-10:
ACTION: ISDA/AJ Update comment in rule to mention relevant section of date calculation paper.
FX-12:
ACTION: ISDA/AJ Update comment to mention relevant section of date calculation paper.
lyteck
07/18/11 8:36 pm
FX-18: implemented as proposed above (please double check)
FX-10: done
FX-12: done
danieldui
07/19/11 1:13 pm
danieldui
07/19/11 1:14 pm
All issues resolved.