Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

Overview

A Contract for Differences (CFD) is an agreement between two parties to exchange, at the close of the contract, the difference between the opening and closing prices of an underlying security multiplied by the number of shares specified within the contract. The contract’s value is the same as a futures contract’s value where the day over day P&L is viewed as the assets market value.

CFDs are cash-settled product as there is no receipt or delivery of an underlying instrument, such as a share certificate. The result of the contract is a cash difference between the purchased and sold prices.

CFDs are available on numerous instruments, from individual equities to stock indices to foreign exchange and commodities. CFDs are most commonly base on individual equities, which can be traded on all North American, European, and Asian stock markets.

Eagle Accounting does not have core support for CFDs, so the use of other asset types is required model these instruments end-to-end.

This document outlines two approaches for modeling CFDs:

  • Total Return Swap (PSTs = SWCOTR, SWLEAC, SWLXEQ) if variation margin (VM) is managed outside of Eagle Accounting:

  • Future Contract and Long-Term Bond (FTXXXX, DBIBFD) if Eagle Accounting is used to calculate daily VM:

On this page

Total Return Swap Method

Modeling CFDs as Total Return Swaps takes advantage of Eagle Accounting’s ability to process accruals (financing), return calculations on the underlying asset, and corporate actions such as dividends.

Entity Setup

Entities trading swaps require a few specific pieces of data, which can be populated using Create/Edit Entity (V17) or Add/Change Entity (prior to V17).

  • Swap Accrual Method (1184): controls whether accruals are posted to Income/Expense or Unrealized ledger accounts (has no effect on cash or valuation)

  • Variable Rate Source (3301): specifies the source from which underlying floating rates will be pulled

    • If you receive an Expected number of underlying rates not found error, confirm the rates loaded to your underlying index match this source

  • Primary Amortization/Accretion Rule (3197): must be straight line (DEFAULTSL), straight line actual (DEFAULTSLA), or none (DEFAULTNONE)

    • If it is set to anything else, a security-level amortization/accretion rule must be established specifying one of the three above

  • Accrual Convention Offset (12038): leave the default of Settlement Date for standard accrual processing, or set to Settlement Date + 1 to put accrual calculations on a one-day delay (common in Canada)

    • When set to Settlement Date + 1, it can be overridden at trade time using Accrual Convention Offset Override (1604)

Swaps cannot be traded technical short even if Tech Short Eligible Indicator (57) is set to Yes.

Security Reference Data

Issue Viewer / Security Reference Manager > Add > Derivatives > Total Return Swap

The list below contains all fields required to configure a CFD security master file (SMF).

  • Contract & Shared

    • Issue Name (961)

    • Primary Asset ID Type (1432)

    • Primary Asset ID (14)

    • Processing Security Type (3931)

      • Contract: SWCOTR (Total Rate Return Swap Contract)

      • Return Leg: SWLXEQ (Swap Leg Total Rate Return on Equity)

      • Finance Leg: SWLEAC (Swap Leg Interest Accrual)

    • Issue Country (1418)

    • Asset Currency (85)

    • Notional Reset Type (4409) = Recalc Notional

    • Issue Date (68)

    • Dated Date (1183)

    • Maturity Date (38)

    • Payment Frequency (472)

    • Business Day Convention (1536)

    • Coupon Day Of Month (10551)

    • Business Calendar (1480)

    • First Payment/Valuation Date (473)

    • Last Payment/Valuation Date (474)

  • Finance Leg

    • Coupon (70)

    • Coupon Type (97)

    • Day Count Basis (471)

    • Floating Rate Fields (if applicable)

      • First Rate Reset Date (10911)

      • Reset Frequency (1788)

      • Underlying Security ID (1348) & Issue Name (1141)

      • Index Offset (215)

  • Return Leg

    • Reset Calc Price (3314)

    • Underlying Security ID (1348) & Issue Name (1141)

Reference Data Center (RDC)

RDC allows to create a new Data Strategy (DS) by duplicating an existing DS. In RDC > Setup > Data Strategies, select the Total Return Swap DS, right-click, and select Duplicate. Use a name of Contract for Difference.

Changes must be made in Web Panel Designer (WPD) to replicate the conditional logic. Find the TRS DS panels in Web Panel Designer and copy the ...LISTBOX logic from the contract and each leg to the contract and each leg of the new CFD DS. The RDC panels are stored under eagle > rdc > securities > UNLINKED FILES. This should be done in Core mode, not Overlay mode.  

DS security criteria must not conflict. Start by adding a new Sub-Security Type with Short Description = CFD and Long Description = Contract for Difference to the SUB SEC TYPE Code Category using the Codes module. Next, open the new DS > Criteria > Update and add this logic: AND Sub-Security Type = Contract for Difference. Finally, open the TRS DS > Criteria > Update and add this logic: AND Sub-Security Type != Contract for Difference.

Trade Processing

Trade > Book Trade > Open (OPENSWAP) / Close Swap Contract (CLOSESWAP)

The list below contains all fields required to book a CFD trade.

  • Trade Date (35)

  • Settlement Date (37)

  • Primary Asset ID (14) & Issue Name (961)

  • Broker (88)

  • Shares (40): entered on return leg, calculated on finance leg

  • Price (45): entered on return leg

  • Select Values to be Calculated by STAR (7000)

Valuation

TRS Valuation is based on Return Leg prices. It can be priced on a daily basis, and unrealized gain/loss is calculated based on the day-to-day price movements. The contract should not be priced.

  • Add Issue Price can be accessed through Issue Viewer, SRM, or Reference Data Center (RDC)

    • The contract and finance leg are filtered out, ensuring that only return legs are available

    • If a price is loaded to the return leg's underlying for Effective Date (1109), it will be pulled into the screen automatically when the return leg is retrieved

      • You must click Submit to add this price to the return leg

  • Rules can be established in Pricing Center to automatically pull the underlying price up to the return leg; refer to TRS Price from Underlying Processing Notes for more information

Total Market Value of TRS = Cumulative Unrealized Gain/Loss Return Leg + PTD Accrual Finance Leg

  • Cumulative Unrealized G/L = Shares * (Current Price - Initial Price)

Effective Date

Issue Name

Price

2008.06.11

EQUITY INDEX SWAP HIMALAYA/CDOR (ESD1455)_EQUITY_R

0.18950000

2008.06.12

EQUITY INDEX SWAP HIMALAYA/CDOR (ESD1455)_EQUITY_R

0.18970000

2008.06.13

EQUITY INDEX SWAP HIMALAYA/CDOR (ESD1455)_EQUITY_R

0.19500000

Effective Date

Equity Shares

Price Change

URGL

Cumulative URGL

2008.06.12

8,741,881.00

0.00020000

1,748.38

1,748.38

2008.06.13

8,741,881.00

0.00530000

46,331.97

48,080.35

Lifecycle Events

Reset Processing: Global > Global Processing Center > Total Return Swap Reset

Total Return Swap Reset processing is used to create the cash difference between the opening price and the closing price for Contracts for Differences. The cash flow direction (payment or receipt) will depend on the price movement.

Calculation

The direction of the cash flow is determined by the price change above or below the trade price or most recent reset price.

  • Shares of Return Leg: 1,000,000

  • Start Price for Reset Period: $80

  • End Price for Reset Period: $85

  • Reset Payment = (85 - 80) * 1,000,000 = $5,000,000

Corporate Actions: Reference > Corporate Action Announcements

Corporate actions can be set up and processed for CFDs on the return leg.

Future & Bond Method

Entity Setup

Future Contract

Entities trading the Future Contract side of a CFD need two additional pieces of data. The Add Entity, Change Entity, Master Fund Setup, or Change Master/Sector Entity panels can be used to populate the following fields:

Entities trading Futures need three specific pieces of data, which can be populated using Create/Edit Entity or Add/Change Entity.

  • Lot Selection Method (27): multi-lot Future positions are often closed using Modified FIFO (MFIFO), which is a variation of FIFO that closes lowest cost lots first when relieving multiple open lots from a given date

    • If Futures are going to be comingled with other securities, you may have to set up a Mixed Cost Basis Rule to enforce MFIFO specifically for Futures, as described in Manage Mixed Cost Basis Rules

    • Regular FIFO only considers the Event Sequence (126) when relieving multiple open lots from a given date

    • Details about MFIFO and other lot relief methods are available in Understand Lot Selection Methods

  • Margin Price Source (18041): this price source is used for VM processing and can be different than the price sources used for URGL

    • If an entity has multiple bases, this must be the same across all bases; when adding a secondary basis it will default to the same value as the primary basis

  • Futures & Options with Margin Transaction Fees (3889): this only affects Futures with VM and allows the commission and fees to be either included or excluded in cost for gain/loss calculations

  • Net Futures Positions (632)

    • Yes: long and short trades are netted to a single long position (all trades are considered long, with negative units if a position or trade is short)

      • This is allowed even if Tech Short Eligible (57) = No, which would typically prevent negative units

    • No: long and short trades create two separate position rows (trades and positions are considered long or short, always with positive units)

  • Futures Clearing Broker (634): there can only be one Clearing Broker per futures trade

    • The trade panel will automatically default to this value, but it can be overridden if necessary

Some clients have a requirement to process the same Future with VM in certain funds and without VM in others. This can be accomplished by using a Variation Margin Override Rule. Refer to Override a Security's Variation Margin Setting for an Entity for details.

Long-Term Debt

There are no special entity configurations necessary for the Long-Term Bond side of a CFD. The bond is purchased at par and therefore accrues only interest, so no amortization will be calculated.

Security Reference Data

Future Contract

The Future Contract will have its own security master record. The following characteristics are unique to modeling CFDs as Futures with Variation:

  • Processing Security Type (3931) = FTXXXX (Future)

  • Price Multiplier (18) = 1.00

  • Contract Size (19) = 1.00

  • Variation Margin (4533) = Yes

  • Variation Margin Rule (2289) = Standard Life to Date

Long-Term Bond

The Long-Term Bond will be a separate security master record. Ensure data is populated as follow:

  • Payment Frequency (472) = 1_D (Daily)

  • Issue Price (69) = 100.00

  • First Coupon Date (473) = as calculated

  • Last Coupon Date (474) = as calculated

  • Maturity Price (42) = 100.00

Trade Processing

Future Contract

Required Data: Entity ID, Trade Date, Accounting Date, Settlement Date, Price per Contract, Broker Name, and Broker Code. Clearing Broker and Clearing Broker Code are also required when Variation Margin = Yes. Any commissions or other fees may also be entered on the trade.

Open

Future Contract positions can be established as either long or short. Once the security reference and entity data is setup, trades can be entered using the Trade > Book Trade module. Other than basic information like Trade Date and Settlement Date, below are Future Contract-specific considerations:

  • Entity - Net Futures Positions: No (entities with this election will have two options to open a position; by selecting No during entity setup, long and short positions will be treated as two separate holdings)

    • Open Long: establishes a long position

    • Open Short: establishes a short position

  • Entity - Net Futures Positions: Yes (entities with this election will have one option to open a position)

    • Open Long: establishes a long position

    • Note: if a user wants to trade a short position they will use the Close Long option to go short (also referred to as technical short)

  • Clearing Broker: Accounting has a hard edit to prevent a single Future Contract from being traded with two different clearing brokers in the same fund; if this is attempted the trade will fail with a “Future trade clearing broker must be same as previous trades” error

Close

The Book Trade module should be used to process close transactions. Accounting supports both full and partial terminations.

  • Entity - Net Futures Positions: No (entities with this election will have two options to close a position; by selecting No during entity setup, long and short positions will be treated as two separate holdings)

    • Close Long: closes a long position

    • Close Short: closes a short position

  • Entity - Net Futures Positions: Yes (entities with this election will have one option to close a position)

    • Close Long: closes a long position or establishes a short position

Long-Term Bond

Required Data: Trade Date, Accounting Date, Settlement Date, Select Values to be Calculated by STAR, Par Value/Current Face, Price, Broker Name, and Broker Code.

  • The trade price must be clean and par-based

Buy

The Long-Term Bond side of the CFD can be booked using Book Trade > Open > Buy or ShortSell depending on whether the accrued interest is being paid or received.

Close

Book Trade > Open > Sell or BuytoCover can be used to close out the Long-Term Bond side of the CFD, depending on whether the initial position was opened long or short.

Valuation

Future Contract

CFDs with VM calculated by Accounting will always have market values equal to zero. Each day’s VM (after calculation and approval) will be captured in Market Value Income, as the security’s true value is equal to its day-over-day price change.

The Standard Life to Date VM formula is:

  • Variation Margin = Notional Market Value of Future Contract on T - Notional Cost of Future

    • Notional Market Value = Future Price * Price Multiplier * Number of Contracts * Contract Size

    • The current day’s Notional Market Value becomes Notional Cost used for the next day’s variation margin calculation

Variation Margin

The VM process will have to be triggered on a daily basis for the Future Contract side of a CFD. This can be done using Global Process Center module. It is a three-step process that involves calculation, approval, and cash settlement.

  • Step 1: Calculating Daily VM

    • Calculates Variation Margin based on Future price change

    • Posts it to unrealized gain/loss of the fund

  • Step 2: Approving VM

    • On Approval, Variation Margin posts to receivable or payable

    • By default, VM will settle the following business day if a Business Calendar is selected on the entity; if no calendar is selected, VM settlement date will be equal to VM approval date

    • Market Value Income is impacted after running approval

  • Step 3: Cash Settlement – via Contract Cash or Manual Settlements

    • Upon settlement, VM posts to CASH

    • The direction of the price movement will determine if VM is paid or received

Clients who do not wish to impact cash on the current day can elect to delay cash settlement when approving margin. On the Approve Margin panel, setting Advance Variation Margin Settlement Date to Yes (or leaving it null) will result in the cash being settled on margin date + 1 business day. Selecting No will cause the cash to be settled on margin date when a contract cash event is run.

  • When margin settlement is delayed by a day, running Contract Cash on T + 1 settles the cash records that were created on T

  • If users elect to delay cash settlement of the margin by one day, the same approach should be followed for the related income or expense posting

Long-Term Bond

Prices for the Long-Term Bond side the CFDs must be clean and par-based. Accounting calculates the security’s value by using the formula below:

  • Market Value = Par Value * Clean Unit Price * Price Multiplier * Quantity Scale

  • No labels