FpMLv53-0.1: A binding for the Financial Products Markup Language (v5.3)

Safe HaskellSafe-Infered

Data.FpML.V53.Doc

Synopsis

Documentation

newtype QueryParameterValue Source

A type representing a value corresponding to an identifier for a parameter describing a query portfolio.

data Allocation Source

Constructors

Allocation 

Fields

allocation_tradeId :: Maybe TradeIdentifier

Unique ID for the allocation.

allocation_partyReference :: PartyReference

Reference to a party.

allocation_accountReference :: Maybe AccountReference

Reference to an account.

allocation_choice3 :: Maybe (OneOf2 Decimal [Money])

Choice between:

  1. The fractional allocation (0.45 = 45%) of the notional and block fees to this particular client subaccount.
  2. The notional allocation (amount and currency) to this particular client account.
allocation_collateral :: Maybe Collateral

The sum that must be posted upfront to collateralize against counterparty credit risk.

allocation_creditChargeAmount :: Maybe Money

Special credit fee assessed to certain institutions.

allocation_approvals :: Maybe Approvals

A container for approval states in the workflow.

allocation_masterConfirmationDate :: Maybe Date

The date of the confirmation executed between the parties and intended to govern the allocated trade between those parties.

allocation_relatedParty :: [RelatedParty]

Specifies any relevant parties to the allocation which should be referenced.

data Approval Source

A specific approval state in the workflow.

Constructors

Approval 

Fields

approval_type :: Maybe NormalizedString

The type of approval (e.g. Credit).

approval_status :: Maybe NormalizedString

The current state of approval (.e.g preapproved, pending approval, etc.)

approval_approver :: Maybe NormalizedString

The full name or identifiying ID of the relevant approver.

data BestFitTrade Source

A type used to record the differences between the current trade and another indicated trade.

Constructors

BestFitTrade 

Fields

bestFitTrade_tradeIdentifier :: Maybe TradeIdentifier

The identifier for the trade compared against.

bestFitTrade_differences :: [TradeDifference]

An optional set of detailed difference records.

data Collateral Source

A type for defining the obligations of the counterparty subject to credit support requirements.

Constructors

Collateral 

Fields

collateral_independentAmount :: Maybe IndependentAmount

Independent Amount is an amount that usually less creditworthy counterparties are asked to provide. It can either be a fixed amount or a percentage of the Transaction's value. The Independent Amount can be: (i) transferred before any trading between the parties occurs (as a deposit at a third party's account or with the counterparty) or (ii) callable after trading has occurred (typically because a downgrade has occurred). In situation (i), the Independent Amount is not included in the calculation of Exposure, but in situation (ii), it is included in the calculation of Exposure. Thus, for situation (ii), the Independent Amount may be transferred along with any collateral call. Independent Amount is a defined term in the ISDA Credit Support Annex. (with respect to a party, the amount specified as such for that party in Paragraph 13; if no amount is specified, zero).

data ContractId Source

A contact id identifier allocated by a party. FpML does not define the domain values associated with this element.

data ContractIdentifier Source

A type defining a contract identifier issued by the indicated party.

Constructors

ContractIdentifier 

Fields

contrIdent_ID :: Maybe ID
 
contrIdent_partyReference :: Maybe PartyReference

A pointer style reference to a party identifier defined elsewhere in the document. The party referenced has allocated the contract identifier.

contrIdent_choice1 :: Maybe (OneOf2 [ContractId] [VersionedContractId])

Where the legal activity is to agree a contract of variation then the business process should be to modify a contract. This is a contract in its own right and not a version of a previous contract. Where the business process is to replace and supersede a contract then you have a new contract and a contract version should not be used.

Choice between:

  1. A contract id which is not version aware.
  2. A contract id which is version aware.

data CreditDerivativesNotices Source

Constructors

CreditDerivativesNotices 

Fields

creditDerivNotices_creditEvent :: Maybe Boolean

This element corresponds to the Credit Event Notice Delivered Under Old Transaction and Deemed Delivered Under New Transaction under the EXHIBIT C to 2004 ISDA Novation Definitions.

creditDerivNotices_publiclyAvailableInformation :: Maybe Boolean

This element corresponds to the Notice of Publicly Available Information Delivered Under Old Transaction and Deemed Delivered Under New Transaction under the EXHIBIT C to 2004 ISDA Novation Definitions.

creditDerivNotices_physicalSettlement :: Maybe Boolean

This element corresponds to the Notice of Intended Physical Settlement Delivered Under Old Transaction under the EXHIBIT C to 2004 ISDA Novation Definitions.

data DataDocument Source

A type defining a content model that is backwards compatible with older FpML releases and which can be used to contain sets of data without expressing any processing intention.

Constructors

DataDocument 

Fields

dataDocument_fpmlVersion :: XsdString

Indicate which version of the FpML Schema an FpML message adheres to.

dataDocument_expectedBuild :: Maybe PositiveInteger

This optional attribute can be supplied by a message creator in an FpML instance to specify which build number of the schema was used to define the message when it was generated.

dataDocument_actualBuild :: Maybe PositiveInteger

The specific build number of this schema version. This attribute is not included in an instance document. Instead, it is supplied by the XML parser when the document is validated against the FpML schema and indicates the build number of the schema file. Every time FpML publishes a change to the schema, validation rules, or examples within a version (e.g., version 4.2) the actual build number is incremented. If no changes have been made between releases within a version (i.e. from Trial Recommendation to Recommendation) the actual build number stays the same.

dataDocument_validation :: [Validation]

A list of validation sets the sender asserts the document is valid with respect to.

dataDocument_choice1 :: Maybe (OneOf2 Boolean Boolean)

Choice between:

  1. Indicates if this message corrects an earlier request.
  2. Indicates if this message corrects an earlier request.
dataDocument_onBehalfOf :: Maybe OnBehalfOf

Indicates which party (and accounts) a trade is being processed for.

dataDocument_originatingEvent :: Maybe OriginatingEvent
 
dataDocument_trade :: [Trade]

The root element in an FpML trade document.

dataDocument_party :: [Party]
 
dataDocument_account :: [Account]

Optional account information used to precisely define the origination and destination of financial instruments.

data ExecutionDateTime Source

A type defining the trade execution date time and the source of it. For use inside containing types which already have a Reference to a Party that has assigned this trade execution date time.

data ExecutionDateTimeAttributes Source

Constructors

ExecutionDateTimeAttributes 

Fields

executDateTimeAttrib_executionDateTimeScheme :: Maybe AnyURI

Identification of the source (e.g. clock id) generating the execution date time.

data IndependentAmount Source

Constructors

IndependentAmount 

Fields

indepAmount_payerPartyReference :: Maybe PartyReference

A reference to the party responsible for making the payments defined by this structure.

indepAmount_payerAccountReference :: Maybe AccountReference

A reference to the account responsible for making the payments defined by this structure.

indepAmount_receiverPartyReference :: Maybe PartyReference

A reference to the party that receives the payments corresponding to this structure.

indepAmount_receiverAccountReference :: Maybe AccountReference

A reference to the account that receives the payments corresponding to this structure.

indepAmount_paymentDetail :: [PaymentDetail]

A container element allowing a schedule of payments associated with the Independent Amount.

data InstrumentTradeDetails Source

The economics of a trade of a multiply traded instrument.

Constructors

InstrumentTradeDetails 

Fields

instrTradeDetails_ID :: Maybe ID
 
instrTradeDetails_primaryAssetClass :: Maybe AssetClass

A classification of the most important risk class of the trade. FpML defines a simple asset class categorization using a coding scheme.

instrTradeDetails_secondaryAssetClass :: [AssetClass]

A classification of additional risk classes of the trade, if any. FpML defines a simple asset class categorization using a coding scheme.

instrTradeDetails_productType :: [ProductType]

A classification of the type of product. FpML defines a simple product categorization using a coding scheme.

instrTradeDetails_productId :: [ProductId]

A product reference identifier. The product ID is an identifier that describes the key economic characteristics of the trade type, with the exception of concepts such as size (notional, quantity, number of units) and price (fixed rate, strike, etc.) that are negotiated for each transaction. It can be used to hold identifiers such as the UPI (universal product identifier) required by certain regulatory reporting rules. It can also be used to hold identifiers of benchmark products or product temnplates used by certain trading systems or facilities. FpML does not define the domain values associated with this element. Note that the domain values for this element are not strictly an enumerated list.

instrTradeDetails_buyerPartyReference :: Maybe PartyReference

A reference to the party that buys this instrument, ie. pays for this instrument and receives the rights defined by it. See 2000 ISDA definitions Article 11.1 (b). In the case of FRAs this the fixed rate payer.

instrTradeDetails_buyerAccountReference :: Maybe AccountReference

A reference to the account that buys this instrument.

instrTradeDetails_sellerPartyReference :: Maybe PartyReference

A reference to the party that sells (writes) this instrument, i.e. that grants the rights defined by this instrument and in return receives a payment for it. See 2000 ISDA definitions Article 11.1 (a). In the case of FRAs this is the floating rate payer.

instrTradeDetails_sellerAccountReference :: Maybe AccountReference

A reference to the account that sells this instrument.

instrTradeDetails_underlyingAsset :: Maybe Asset

Define the underlying asset, either a listed security or other instrument.

instrTradeDetails_quantity :: Maybe InstrumentTradeQuantity

A description of how much of the instrument was traded.

instrTradeDetails_pricing :: Maybe InstrumentTradePricing

The price paid for the instrument.

instrTradeDetails_principal :: Maybe InstrumentTradePrincipal

The value, in instrument currency, of the amount of the instrument that was traded.

data InstrumentTradeQuantity Source

A structure describing the amount of an instrument that was traded.

Constructors

InstrumentTradeQuantity 

Fields

instrTradeQuant_choice0 :: Maybe (OneOf2 Decimal Money)

Choice between:

  1. The (absolute) number of units of the underlying instrument that were traded.
  2. The monetary value of the security (eg. fixed income security) that was traded).

data InstrumentTradePrincipal Source

A structure describing the value in native currency of an instrument that was traded.

Constructors

InstrumentTradePrincipal 

Fields

instrTradePrinc_principalAmount :: Maybe NetAndGross

The net and/or gross value of the amount traded in native currency.

data LinkId Source

The data type used for link identifiers.

data NetAndGross Source

A structure including a net and/or a gross amount and possibly fees and commissions.

Constructors

NetAndGross 

Fields

netAndGross_choice0 :: OneOf2 Decimal (Decimal, Maybe Decimal)

Choice between:

  1. Value including fees and commissions.
  2. Sequence of:
  • Value excluding fees and commissions.
  • Value including fees and commissions.

data PartyPortfolioName Source

A type to represent a portfolio name for a particular party.

Constructors

PartyPortfolioName 

Fields

partyPortfName_ID :: Maybe ID
 
partyPortfName_partyReference :: Maybe PartyReference

A pointer style reference to a party identifier defined elsewhere in the document. The party referenced has allocated the trade identifier.

partyPortfName_portfolioName :: [PortfolioName]
 

data PartyTradeIdentifier Source

A type defining one or more trade identifiers allocated to the trade by a party. A link identifier allows the trade to be associated with other related trades, e.g. trades forming part of a larger structured transaction. It is expected that for external communication of trade there will be only one tradeId sent in the document per party.

Constructors

PartyTradeIdentifier 

Fields

partyTradeIdent_ID :: Maybe ID
 
partyTradeIdent_choice0 :: OneOf2 (IssuerId, TradeId) (PartyReference, Maybe AccountReference, [OneOf2 TradeId VersionedTradeId])

Choice between:

  1. Sequence of:
  • issuer
  • tradeId
  1. Sequence of:
  • Reference to a party.
  • Reference to an account.
  • unknown
partyTradeIdent_linkId :: [LinkId]

A link identifier allowing the trade to be associated with other related trades, e.g. the linkId may contain a tradeId for an associated trade or several related trades may be given the same linkId. FpML does not define the domain values associated with this element. Note that the domain values for this element are not strictly an enumerated list.

partyTradeIdent_allocationTradeId :: [TradeIdentifier]

The trade id of the allocated trade. This is used by the block trade to reference the allocated trade.

partyTradeIdent_blockTradeId :: Maybe TradeIdentifier

The trade id of the block trade. This is used by each one of the allocated trades to reference the block trade. This element can also represent the trade id of the parent trade for N-level allocations. In the case, this element is only used to model N-level allocations in which the trade acts as block and allocated trade at the same time. This basically means the ability to allocate a block trade to multiple allocation trades, and then allocate these in turn to other allocation trades (and so on if desired).

partyTradeIdent_originatingTradeId :: Maybe TradeIdentifier

The trade id of the trade upon which this was based, for example the ID of the trade that was submitted for clearing if this is a cleared trade, or of the original trade if this was novated or cancelled and rebooked. The originatingEvent will explain why the trade was created.

data PartyTradeInformation Source

A type defining additional information that may be recorded against a trade.

Constructors

PartyTradeInformation 

Fields

partyTradeInfo_partyReference :: PartyReference

Reference to a party.

partyTradeInfo_accountReference :: Maybe AccountReference

Reference to an account.

partyTradeInfo_relatedParty :: [RelatedParty]

Identifies a related party performing a role within the transaction.

partyTradeInfo_reportingRole :: Maybe ReportingRole

Identifies the role of this party in reporting this trade (e.g. originator, counterparty).

partyTradeInfo_relatedBusinessUnit :: [RelatedBusinessUnit]

Provides information about a unitdivisiondesk etc. that executed or supports this trade

partyTradeInfo_relatedPerson :: [RelatedPerson]

Provides information about a person that executed or supports this trade

partyTradeInfo_isAccountingHedge :: Maybe Boolean

Specifies whether the trade used to hedge a risk for accounting purposes for the specified party. (TODO: do we need to distinguish between asset and liability hedges?)

partyTradeInfo_category :: [TradeCategory]

Used to categorize trades into user-defined categories, such as house trades vs. customer trades.

partyTradeInfo_executionDateTime :: Maybe ExecutionDateTime

Trade execution date time provided by a central execution facility.

partyTradeInfo_timestamps :: Maybe TradeProcessingTimestamps

Allows timing information about a trade to be recorded.

partyTradeInfo_intentToAllocate :: Maybe Boolean

Specifies whether the trade is anticipated to be allocated.

partyTradeInfo_allocationStatus :: Maybe AllocationReportingStatus

Specifies whether the trade is anticipated to be allocated, has been allocated, or will not be allocated.

partyTradeInfo_intentToClear :: Maybe Boolean

Specifies whether the trade is anticipated to be cleared via a derivative clearing organization

partyTradeInfo_clearingStatus :: Maybe ClearingStatusValue

Describes the status with respect to clearing (e.g. Submitted, Pending, Cleared, RejectedForClearing, etc.)

partyTradeInfo_collateralizationType :: Maybe CollateralizationType

Specifies whether this party posts collateral. For Recordkeeping, the collateralization type refers to collateral that is posted by this firm, and One-Way is not meaningful. In other words, if the collateralization type is Full, this trade is fully collateralized by this party. For Transparency view, the options include Full, Partial, Uncollateralized, and One-Way.

partyTradeInfo_reportingRegime :: [ReportingRegime]

Allows the organization to specify which if any relevant regulators or other supervisory bodies this is relevant for, and what reporting rules apply.

partyTradeInfo_choice16 :: Maybe (OneOf2 Boolean EndUserExceptionDeclaration)

Choice between:

  1. Specifies whether the trade is not obligated to be cleared via a derivative clearing organization because the End User Exception was invoked.
  2. Claims an end user exception and provides supporting evidence.
partyTradeInfo_nonStandardTerms :: Maybe Boolean

Indicates that the trade has price-affecting characteristics in addition to the standard real-time reportable terms. The flag indicates that the price for this trade is not to be construed as being indicative of the market for standardised trades with otherwise identical reportable terms.

partyTradeInfo_offMarketPrice :: Maybe Boolean

Indicates that the price does not reflect the current market. For example, in a credit trade where the two counterparties are not of equal credit standing, there is no initial margin and one party pays collateral to the other in the form of an add-on to the price (say a price that would otherwise be 100 at the market is struck at 105 to include the collateral, resulting in a very off-market looking price.)

partyTradeInfo_largeSizeTrade :: Maybe Boolean

Specifies whether the sender of this trade considers it to be a large notional trade or block trade for reporting purposes, and thus eligible for delayed public reporting. Normally this will only be applicable for off-facility trades.

partyTradeInfo_executionType :: Maybe ExecutionType

Used to describe how the trade was executed, e.g. via voice or electronically.

partyTradeInfo_executionVenueType :: Maybe ExecutionVenueType

Used to describe the type of venue where trade was executed, e.g via an execution facility or privately.

partyTradeInfo_verificationMethod :: Maybe ConfirmationMethod

Used to describe how the trade was or will be verified, e.g via a confirmation facility, via private electronic service, or via written documentation. This affect the timing of real-time reporting requirements. This field is provisional pending detailed confirmation of the data requirements, and may not be included in subsequent working drafts.

partyTradeInfo_confirmationMethod :: Maybe ConfirmationMethod

Used to describe how the trade was confirmed, e.g via a confirmation facility, via private electronic service, or via written documentation. This affects the process flow for confirmation messages. This field is provisional pending detailed confirmation of the data requirements, and may not be included in subsequent working drafts.

data AllocationReportingStatus Source

Code that describes what type of allocation applies to the trade. Options include Unallocated, ToBeAllocated, Allocated.

data CollateralizationType Source

Code that describes what type of collateral is posted by a party to a transaction. Options include Uncollateralized, Partial, Full, One-Way.

data EndUserExceptionDeclaration Source

Records supporting information justifying an end user exception under 17 CFR part 39.

Constructors

EndUserExceptionDeclaration 

Fields

endUserExceptDeclar_creditDocument :: [CreditDocument]

What arrangements will be made to provide credit? (e.g. CSA, collateral pledge, guaranty, available resources, financing).

endUserExceptDeclar_organizationCharacteristic :: [OrganizationCharacteristic]

Allows the organization to specify which categories or characteristics apply to it for end-user exception determination. Examples include FinancialEntity, CaptiveFinanceUnit, BoardOfDirectorsApproval.

endUserExceptDeclar_transactionCharacteristic :: [TransactionCharacteristic]

Allows the relevant transaction level categories or characteristics to be recorded for end-user exception determination. Examples include BoardOfDirectorsApproval, HedgesCommercialRisk.

endUserExceptDeclar_supervisorRegistration :: [SupervisorRegistration]

Allows the organization to specify which if any relevant regulators it is registered with, and if so their identification number. For example, it could specify that it is SEC registered and provide its Central Index Key.

data ReportingPurpose Source

A value that explains the reason or purpose that information is being reported. Examples might include RealTimePublic reporting, PrimaryEconomicTerms reporting, Confirmation reporting, or Snapshot reporting.

data SupervisorRegistration Source

Provides information about a regulator or other supervisory body that an organization is registered with.

Constructors

SupervisorRegistration 

Fields

supervRegist_supervisoryBody :: SupervisoryBody

The regulator or other supervisory body the organization is registered with (e.g. SEC).

supervRegist_registrationNumber :: Maybe RegulatorId

The ID assigned by the regulator (e.g. SEC's Central Index Key).

data ReportingRegime Source

Provides information about how the information in this message is applicable to a regulatory reporting process.

Constructors

ReportingRegime 

Fields

reportRegime_choice0 :: OneOf2 (ReportingRegimeName, [SupervisorRegistration]) [SupervisorRegistration]

Choice between:

  1. Sequence of:
  • Identifies the reporting regime under which this data is reported. For example, Dodd-Frank, MiFID, HongKongOTCDRepository, ODRF
  • Identifies the specific regulator or other supervisory body for which this data is produced. For example, CFTC, SEC, UKFSA, ODRF, SFC, ESMA.
  1. Identifies the specific regulator or other supervisory body for which this data is produced. For example, CFTC, SEC, UKFSA, ODRF, SFC, ESMA.
reportRegime_reportingRole :: Maybe ReportingRole

Identifies the role of this party in reporting this trade for this regulator; roles could include ReportingParty and Voluntary reporting.

reportRegime_reportingPurpose :: [ReportingPurpose]

The reason this message is being sent, for example Snapshot, PET, Confirmation, RealTimePublic.

reportRegime_mandatorilyClearable :: Maybe Boolean

Whether the particular trade type in question is required by this regulator to be cleared.

data RegulatorId Source

An ID assigned by a regulator to an organization registered with it. (NOTE: should this just by represented by an alternate party ID?)

data TradeProcessingTimestamps Source

Allows timing information about when a trade was processed and reported to be recorded.

Constructors

TradeProcessingTimestamps 

Fields

tradeProcesTimest_orderEntered :: Maybe DateTime

When an order was first generated, as recorded for the first time when it was first entered by a person or generated by a trading algorithm (i.e., the first record of the order).

tradeProcesTimest_orderSubmitted :: Maybe DateTime

The time when an order is submitted by a market participant to an execution facility, as recorded based on the timestamp of the message that was sent by the participant. If the participant records this time (i.e. it is in the participant's party trade information), it will be the time the message was sent. If the execution facility records this time (i.e. it is in the facility's party trade information), it will be the time the message was received.

tradeProcesTimest_publiclyReported :: Maybe DateTime

When the public report of this was created or received by this party. If the participant records this time (i.e. it is in the participant's party trade information), it will be the time the message was sent. If the execution records this time (i.e. it is in the facility's party trade information), it will be the time the message was received.

tradeProcesTimest_publicReportUpdated :: Maybe DateTime

When the public report of this was most recently corrected or corrections were sent or received by this party.

tradeProcesTimest_nonpubliclyReported :: Maybe DateTime

When the non-public report of this was created or received by this party.

tradeProcesTimest_nonpublicReportUpdated :: Maybe DateTime

When the non-public report of this was most recently corrected or corrections were received by this party.

tradeProcesTimest_submittedForConfirmation :: Maybe DateTime

When this trade was supplied to a confirmation service or counterparty for confirmation.

tradeProcesTimest_updatedForConfirmation :: Maybe DateTime

When the most recent correction to this trade was supplied to a confirmation service or counterparty for confirmation.

tradeProcesTimest_confirmed :: Maybe DateTime

When this trade was confirmed.

tradeProcesTimest_submittedForClearing :: Maybe DateTime

When this trade was supplied to a clearing service for clearing.

tradeProcesTimest_updatedForClearing :: Maybe DateTime

When the most recent correction to this trade was supplied to a clearing service for clearing.

tradeProcesTimest_cleared :: Maybe DateTime

When this trade was cleared.

tradeProcesTimest_allocationsSubmitted :: Maybe DateTime

When allocations for this trade were submitted or received by this party.

tradeProcesTimest_allocationsUpdated :: Maybe DateTime

When allocations for this trade were most recently corrected.

tradeProcesTimest_allocationsCompleted :: Maybe DateTime

When allocations for this trade were completely processed.

tradeProcesTimest_timestamp :: [TradeTimestamp]

Other timestamps for this trade. This is provisional in Recordkeeping and Transparency view and may be reviewed in a subsequent draft.

data ReportingRegimeName Source

An identifier of an reporting regime or format used for regulatory reporting, for example DoddFrankAct, MiFID, HongKongOTCDRepository, etc.

data SupervisoryBody Source

An identifier of an organization that supervises or regulates trading activity, e.g. CFTC, SEC, FSA, ODRF, etc.

data ExecutionType Source

A type used to represent the type of market where a trade can be executed.

data ConfirmationMethod Source

A type used to represent the type of mechanism that can be used to confirm a trade.

data PaymentRule Source

The abstract base type from which all calculation rules of the independent amount must be derived.

data PercentageRule Source

A type defining a content model for a calculation rule defined as percentage of the notional amount.

Constructors

PercentageRule 

Fields

percenRule_paymentPercent :: Maybe Decimal

A percentage of the notional amount.

percenRule_notionalAmountReference :: Maybe NotionalAmountReference

A reference to the notional amount.

data Portfolio Source

A type representing an arbitary grouping of trade references.

Constructors

Portfolio 

Fields

portfolio_ID :: Maybe ID
 
portfolio_partyPortfolioName :: Maybe PartyPortfolioName

The name of the portfolio together with the party that gave the name.

portfolio_choice1 :: Maybe (OneOf2 [TradeId] [PartyTradeIdentifier])

Choice between:

  1. tradeId
  2. partyTradeIdentifier
portfolio :: [Portfolio]

An arbitary grouping of trade references (and possibly other portfolios).

data QueryParameter Source

A type representing criteria for defining a query portfolio. The criteria are made up of a QueryParameterId, QueryParameterValue and QueryParameterOperator.

data QueryParameterId Source

A type representing an identifier for a parameter describing a query portfolio. An identifier can be anything from a product name like swap to a termination date.

data QueryParameterOperator Source

A type representing an operator describing the relationship of a value to its corresponding identifier for a parameter describing a query portfolio. Possible relationships include equals, not equals, less than, greater than. Possible operators are listed in the queryParameterOperatorScheme.

data QueryPortfolio Source

A type representing a portfolio obtained by querying the set of trades held in a repository. It contains trades matching the intersection of all criteria specified using one or more queryParameters or trades matching the union of two or more child queryPortfolios.

Constructors

QueryPortfolio 

Fields

queryPortf_ID :: Maybe ID
 
queryPortf_partyPortfolioName :: Maybe PartyPortfolioName

The name of the portfolio together with the party that gave the name.

queryPortf_choice1 :: Maybe (OneOf2 [TradeId] [PartyTradeIdentifier])

Choice between:

  1. tradeId
  2. partyTradeIdentifier
queryPortf_portfolio :: [Portfolio]

An arbitary grouping of trade references (and possibly other portfolios).

queryPortf_queryParameter :: [QueryParameter]
 

data ReportingRole Source

A type containing a code representing the role of a party in a report, e.g. the originator, the recipient, the counterparty, etc. This is used to clarify which participant's information is being reported.

data Strategy Source

A type defining a group of products making up a single trade.

Constructors

Strategy 

Fields

strategy_ID :: Maybe ID
 
strategy_primaryAssetClass :: Maybe AssetClass

A classification of the most important risk class of the trade. FpML defines a simple asset class categorization using a coding scheme.

strategy_secondaryAssetClass :: [AssetClass]

A classification of additional risk classes of the trade, if any. FpML defines a simple asset class categorization using a coding scheme.

strategy_productType :: [ProductType]

A classification of the type of product. FpML defines a simple product categorization using a coding scheme.

strategy_productId :: [ProductId]

A product reference identifier. The product ID is an identifier that describes the key economic characteristics of the trade type, with the exception of concepts such as size (notional, quantity, number of units) and price (fixed rate, strike, etc.) that are negotiated for each transaction. It can be used to hold identifiers such as the UPI (universal product identifier) required by certain regulatory reporting rules. It can also be used to hold identifiers of benchmark products or product temnplates used by certain trading systems or facilities. FpML does not define the domain values associated with this element. Note that the domain values for this element are not strictly an enumerated list.

strategy_premiumProductReference :: Maybe ProductReference

Indicates which product within a strategy represents the premium payment.

strategy_product :: [Product]

An abstract element used as a place holder for the substituting product elements.

data Trade Source

A type defining an FpML trade.

Constructors

Trade 

Fields

trade_ID :: Maybe ID
 
trade_header :: Maybe TradeHeader

The information on the trade which is not product specific, e.g. trade date.

trade_product :: Maybe Product

An abstract element used as a place holder for the substituting product elements.

trade_otherPartyPayment :: [Payment]

Other fees or additional payments associated with the trade, e.g. broker commissions, where one or more of the parties involved are not principal parties involved in the trade.

trade_brokerPartyReference :: [PartyReference]

Identifies that party (or parties) that brokered this trade.

trade_calculationAgent :: Maybe CalculationAgent

The ISDA calculation agent responsible for performing duties as defined in the applicable product definitions.

trade_calculationAgentBusinessCenter :: Maybe BusinessCenter

The city in which the office through which ISDA Calculation Agent is acting for purposes of the transaction is located The short-form confirm for a trade that is executed under a Sovereign or Asia Pacific Master Confirmation Agreement ( MCA ), does not need to specify the Calculation Agent. However, the confirm does need to specify the Calculation Agent City. This is due to the fact that the MCA sets the value for Calculation Agent but does not set the value for Calculation Agent City.

trade_determiningParty :: [PartyReference]

The party referenced is the ISDA Determination Party that specified in the related Confirmation as Determination Party.

trade_hedgingParty :: [PartyReference]

The party referenced is the ISDA Hedging Party that specified in the related Confirmation as Hedging, or if no Hedging Party is specified, either party to the Transaction.

trade_collateral :: Maybe Collateral

Defines collateral obiligations of a Party

trade_documentation :: Maybe Documentation

Defines the definitions that govern the document and should include the year and type of definitions referenced, along with any relevant documentation (such as master agreement) and the date it was signed.

trade_governingLaw :: Maybe GoverningLaw

Identification of the law governing the transaction.

trade_allocations :: Maybe Allocations

Short-form representation of allocations in which the key block economics are stated once within the trade structure, and the allocation data is contained in this allocations structure.

data TradeDifference Source

A type used to record the details of a difference between two business objects/

Constructors

TradeDifference 

Fields

tradeDiffer_differenceType :: Maybe DifferenceTypeEnum

The type of difference that exists.

tradeDiffer_differenceSeverity :: Maybe DifferenceSeverityEnum

An indication of the severity of the difference.

tradeDiffer_element :: Maybe XsdString

The name of the element affected.

tradeDiffer_basePath :: Maybe XsdString

XPath to the element in the base object.

tradeDiffer_baseValue :: Maybe XsdString

The value of the element in the base object.

tradeDiffer_otherPath :: Maybe XsdString

XPath to the element in the other object.

tradeDiffer_otherValue :: Maybe XsdString

Value of the element in the other trade.

tradeDiffer_missingElement :: [XsdString]

Element(s) that are missing in the other trade.

tradeDiffer_extraElement :: [XsdString]

Element(s) that are extraneous in the other object.

tradeDiffer_message :: Maybe XsdString

A human readable description of the problem.

data TradeHeader Source

A type defining trade related information which is not product specific.

Constructors

TradeHeader 

Fields

tradeHeader_partyTradeIdentifier :: [PartyTradeIdentifier]

The trade reference identifier(s) allocated to the trade by the parties involved.

tradeHeader_partyTradeInformation :: [PartyTradeInformation]

Additional trade information that may be provided by each involved party.

tradeHeader_tradeDate :: Maybe IdentifiedDate

The trade date. This is the date the trade was originally executed. In the case of a novation, the novated part of the trade should be reported (by both the remaining party and the transferee) using a trade date corresponding to the date the novation was agreed. The remaining part of a trade should be reported (by both the transferor and the remaining party) using a trade date corresponding to the original execution date.

tradeHeader_clearedDate :: Maybe IdentifiedDate

If the trade was cleared (novated) through a central counterparty clearing service, this represents the date the trade was cleared (transferred to the central counterparty).

data TradeId Source

A trade reference identifier allocated by a party. FpML does not define the domain values associated with this element. Note that the domain values for this element are not strictly an enumerated list.

data TradeIdentifier Source

A type defining a trade identifier issued by the indicated party.

Constructors

TradeIdentifier 

Fields

tradeIdent_ID :: Maybe ID
 
tradeIdent_choice0 :: OneOf2 (IssuerId, TradeId) (PartyReference, Maybe AccountReference, [OneOf2 TradeId VersionedTradeId])

Choice between:

  1. Sequence of:
  • issuer
  • tradeId
  1. Sequence of:
  • Reference to a party.
  • Reference to an account.
  • unknown

data IssuerId Source

The data type used for issuer identifiers.

data Validation Source

A reference identifying a rule within a validation scheme.

data VersionedContractId Source

Contract Id with Version Support

Constructors

VersionedContractId 

Fields

versiContrId_contractId :: Maybe ContractId
 
versiContrId_version :: Maybe NonNegativeInteger

The version number

versiContrId_effectiveDate :: Maybe IdentifiedDate

Optionally it is possible to specify a version effective date when a versionId is supplied.

data VersionedTradeId Source

Trade Id with Version Support

Constructors

VersionedTradeId 

Fields

versiTradeId_tradeId :: Maybe TradeId
 
versiTradeId_version :: Maybe NonNegativeInteger

The version number

versiTradeId_effectiveDate :: Maybe IdentifiedDate

Optionally it is possible to specify a version effective date when a versionId is supplied.

elementInstrumentTradeDetails :: XMLParser InstrumentTradeDetailsSource

A type to hold trades of multiply-traded instruments. Typically this will be used to represent the trade resulting from a physically-settled OTC product where the underlying is a security, for example the exercise of a physically-settled option.