Position Configuration

Position for all products other than position-based product (but including cash positions for position-based products) are computed by the Position engine which aggregates trades by book and by product (and additional user-defined criteria as needed).

The Position engine calculates positions based on the position configuration.

From the Calypso Navigator, navigate to Configuration > Books and Bundles > Position Configuration (menu action refdata.PositionInfoWindow).

» To create a new configuration, enter the fields as applicable then click Add/Modify and Save. The fields are described below.
» To modify a configuration, select a configuration, modify the fields as needed then click Add/Modify and Save.
» The position management capability is very configurable in Calypso. However, we provide a recommended setup that allows computing cross asset positions with the most sensible results.

See Recommended Setup for details.

 

Fields

Description

Book

Product Type

Select the book and product type to which the configuration applies.

Product Positions

Check to compute product positions for FX-related products (FX, FXForward, FXSpotReserve, FXSwap, FXTakeUp, FXTTM, FXCash).

Product positions correspond to trade aggregations. Based on the position specification, the product positions for FX-related products can be reported as follows:

Before settlement: trade by trade, or aggregated per settlement date and currency, or aggregated per settlement date and currency pair.

So you can have one position by trade, or one position per settlement date and currency, or one position per settlement date and currency pair.

After settlement: aggregated per currency (and aggregation level if any), or aggregated per currency pair (and aggregation level if any)

So you can have one position per currency / aggregation level, or one position per currency pair / aggregation level if any.

 Ⓘ   [NOTE: As of version 14.0, positions for FX NDF and FX NDF Swap trades are no longer created. These trades are now handled as individual trades]

Create Product Position By

Reference date for adding trades to product positions: Trade Date or Settle Date.

Cash Positions

Check to compute cash positions for the selected product type.

PositionCash

A PositionCash trade is created for settled flows of OTC trades and position-based trades, per currency (and aggregation criteria if any).

In other words, there is one PositionCash per currency / aggregation criteria that aggregates cash from all settled flows.

Make sure to include this product type as needed when creating trade filters for example.

Create Cash Position By

Reference date for adding trades to cash positions: Trade Date, Settle Date, or Both.

Positions store the inception trade date and the inception settle date.

You can set "Create Cash Position By" to "Both" so that the inception trade date is the trade date and the inception settle date is the settle date.

Otherwise:

If you select Trade Date, Inception Trade Date = Inception Settle Date = Trade Date.
If you select Settle Date, Inception Trade Date = Inception Settle Date = Settle Date.

Note: The "Both" option is not supported when the Cash Positions flag is selected.

Additional Sub-position Keys

Click ... to select a position aggregation configuration. The position aggregation configuration contains criteria to aggregate the trades in addition to book and product.

See Position Aggregation for details on creating position aggregation configurations.

 Ⓘ   [NOTE: If a position configuration has been set in the Liquidation configuration for a given product type, the same position aggregation must be set in the position configuration]

 

1. Additional Setup Requirements

 

1.1 Environment Properties

The following environment properties are required to use the Position engine.

POS_CASH_FLOWS = True

[NOTE: This property can also be set as an engine parameter on the position engine – In this case, it overrides the environment property]

USE_POSITION_ENGINE = True

 

1.2 Cash Positions of Listed Products (Futures and Future Options)

In order to generate cash positions for realized cash when listed products are liquidated, you need to setup the following engine parameter on the Position engine under Utilities > Maintenance > Monitoring > Engine Thread:

HANDLE_FUTURE_LIQ_CASH_FLOWS = True

If this parameter is not available, you can add it to the domain “engineParam”.

 

1.3 Late FX Trades

FX trades can be marked to have their positions effective prior to the trade entered time. This can be achieved with setting the position effective date in the LateTradeDatetime keyword when the trade is first booked.

When the initial version of such a trade is processed by the position engine, it will establish corresponding positions that are effective as of the date indicated in the LateTradeDatetime keyword.

Any amendments on an FX Late Trade that could result in a position change are not supported - You need to cancel the trade, and create a new one.
If the cancellation for the FX Late Trade comes in to the position engine within the same valuation period as the first version that established the position, the position back-out due to cancellation will be effective as of the LateTradeDatetime keyword date. Otherwise, the position back-out will be effective at the current cancellation time.
When a trade is booked with the LateTradeDatetime keyword, you may use the workflow action LATE_CANCEL. To utilize this, add the workflow: VERIFIED - LATE_CANCEL - CANCELED.

There are two sets of cases for this, LATE_CANCEL on a regular FX trade and LATE_CANCEL on an FX Late Trade

Whenever a FX trade is first/initially booked with the LateTradeDatetime keyword, that trade is deemed to be a FX Late trade.

When the LATE_CANCEL action is applied on a FX trade, validation is done to ensure no financial data has been changed. If validation fails, LATE_CANCEL action is not permitted on the FX trade. When LATE_CANCEL on a FX trade is processed by the position engine, the cancel of positions is effective at the same time as when the trade was first booked.
When LATE_CANCEL action is applied on a FX Late trade, validation is done to ensure no financial data has been changed. If validation fails, LATE_CANCEL action is not permitted on the FX Late trade. When LATE_CANCEL on an FX Late trade is processed by the position engine, the cancel of positions is effective at a time indicated in the LateTradeDatetime keyword of the trade or at the same time the position was first booked, whichever is earlier.
LATE_CANCEL should be added to the domain "PositionKeeping.PropagateActions" as this will ensure that all routed trades from the Late Trade are also canceled.
The scheduled task EOD_SPOT_PLSWEEP is used to sweep the position from one book to another book after EOD. The SpotPLSweep trade is created as a late trade with the LateTradeDatetime being the valuation date time of the scheduled task.
If a back-dated snapshot is re-created using the scheduled task, a CREATE_POSITION_SNAPSHOT_INFORMATION type of exception is created with comments that indicate there are snapshots in the future that need to be regenerated as well.

This only applies if FX positions are computed by position and not trade by trade.

 

Sample Cancellation on FX Late Trade

Consider three valuation buckets set at 3:00 PM, 4:00 PM and 5:00 PM.

Current time: 3.30 PM [the time the trade is booked].

1. FX Late trade comes in with a "LateTradeDatetime" keyword that says the datetime is today 2.30 PM.

2. Positions will be established for this trade with the effective date of 2.30 PM.

The positions will be part of the 3:00 PM snapshot/bucket even though the trade was booked at 3.30 PM.

Current time: 3.45 PM [the time the trade is canceled - trade action 'CANCEL'].

The cancellation is in the same valuation period [3:00 -> 4:00 PM] as the trade creation time. Hence the positions back-out due to cancellation will be effective as of "LateTradeDatetime" date in the keyword. So, the positions back-out should be visible in the 3:00 PM snapshot as well.

Current time: 4.45 PM [the time the trade is canceled - trade action 'CANCEL'].

The cancellation is in the [4:00 -> 5:00 PM] period, where as the trade creation was in the [3:00 -> 4:00 PM] period. In this situation, the cancellation will only be effective at the current valuation period. So, the positions back-out will NOT be visible in the 3:00 PM snapshot. It will only be visible in the 5:00 PM snapshot onwards.

 

2. Recommended Setup

Products

Recommended Settings

ALL

Create Product Position By = Create Cash Position By = Settle Date

Additional Sub-position Keys = optional (if you have a product type with an aggregation criteria in the liquidation config, you must add a position config for that same product type with the same aggregation criteria).

Cash Positions= Checked

Product Positions = Unchecked

FX, FXCash, FXForward, FXOptionForward, FXSpotReserve, FXSwap, FXTakeUp, FXTTM, PLSweep

Create Product Position By = Create Cash Position By = Settle Date

Additional Sub-position Keys = none

Cash Position = Checked

Product Positions = Checked

Note: It is possible to save an FXNDF configuration to include Currency Pair as an Additional Sub-position Key. This ensures that post-fixing, the NDF Settlement Amount is generated as a currency pair position, which can be viewed in the Position Monitor, Position Rollover and Forward Ladder.

Money Market products (cash, FRA, call notice)

Create Product Position By = Create Cash Position By = Settle Date

Additional Sub-position Keys = CurrencyPair (optional – for FX traders)

Cash Positions = Checked

Product Positions = Unchecked

 

What's Next?

See Position Engine for information on starting the Position engine.