Mapping for interest rate swaps
Interest rate swaps are imported as two separate securities/transactions, ones for the fixed leg and ones for the floating leg. The handling of IRSs in FA is detailed in the User guide article: Interest rate swaps (IRS)
Securities
Mapping scripts mapping.bbgTradeFeed.irsFixSec and mapping.bbgTradeFeed.irsFltSec:
Source field in Online trade feed | Target field in FA | Notes |
---|---|---|
/TradeFeed/Common/SecurityIdentifier/text() | s.securityCode | Fixed leg: [SecurityIdentifier] with last character adjusted by +1 alphabetically (e.g. XXXA would become XXXB). Floating leg: [SecurityIdentifier] with last character adjusted by +2 alphabetically (e.g. XXXA would become XXXC). |
/TradeFeed/Common/SecurityCurrencyISOCode/text() | s.currency | |
/TradeFeed/Common/TransactionNumber/text() /TradeFeed/Common/MaturityDateExpirationDate/text() /TradeFeed/Common/SecurityCurrencyISOCode/text() /TradeFeed/Common/CouponStrikePrice/text() /TradeFeed/SwapFields/PaySideFrequency/text() /TradeFeed/SwapFields/ReceiveSideFrequency/text() | s.name | Assuming [Frequency] is [PaySideFrequency] or [ReceiveSideFrequency], depending on the leg and which leg is Pay and which Receive: Fixed leg: IRS #[TransactionNumber] [MaturityDateExpirationDate] [SecurityCurrencyISOCode] [Frequency] [CouponStrikePrice]% Fixed Floating leg: IRS #[TransactionNumber] [MaturityDateExpirationDate] [SecurityCurrencyISOCode] [Frequency] [CouponStrikePrice]% Float |
s.type | S | |
s.subType | SR | |
/TradeFeed/SwapFields/EffectiveDate/text() | s.issueDate | |
/TradeFeed/SwapFields/EffectiveDate/text() | s.firstCouponDate | |
s.issuePrice | 100 | |
/TradeFeed/Common/MaturityDateExpirationDate/text() | s.maturityDate | |
s.maturityPrice | 100 | |
/TradeFeed/SwapFields/PaySideFrequency/text() /TradeFeed/SwapFields/ReceiveSideFrequency/text() | s.couponFrequency | [PaySideFrequency] or [ReceiveSideFrequency], depending on the leg and which leg is Pay and which Receive |
/TradeFeed/SwapFields/PaySideDayCount/text() /TradeFeed/SwapFields/ReceiveSideDayCount/text() | s.accrualCalendar | [PaySideDayCount] or [ReceiveSideDayCount], depending on the leg and which leg is Pay and which Receive |
/TradeFeed/Common/CouponStrikePrice/text() | s.coupon | Not imported for floating leg. |
/TradeFeed/SwapFields/PayStubReset/text() | s.coupons | Not imported for fixed leg. Floating leg: [s.firstCouponDate]=[PayStubReset] |
/TradeFeed/SwapFields/PaySideBusinessDayAdjustment/text() /TradeFeed/SwapFields/ReceiveSideBusinessDayAdjustment/text() | s.businessDayConvention | [PaySideBusinessDayAdjustment] or [ReceiveSideBusinessDayAdjustment], depending on the leg and which leg is Pay and which Receive |
/TradeFeed/SwapFields/PayFloatingRateIndex/text() /TradeFeed/SwapFields/ReceiveFloatingRateIndex/text() | s.baseInstrument | Not imported for fixed leg. Floating leg: First part before space in [PayFloatingRateIndex] or [ReceiveFloatingRateIndex], depending on whether the floating leg pays or receives. |
/TradeFeed/Common/SecurityIdentifier/text() | s.tradeCode | [SecurityIdentifier]-[s.securityCode] |
s.status | ACTIVE | |
/TradeFeed/Common/SecurityCurrencyISOCode/text() | s.holidayCalendar | Mapped as follows: NOK=NOOS SEK=SEST USD=USNY EUR=EUTA DKK=DKCO GBP=GBLO |
s.offsetDays | Not imported for fixed leg. Floating leg: 2 | |
s.multiplier | 100 | |
s.multiplierView | 100 |
Transactions
Mapping scripts mapping.bbgTradeFeed.irsFixTrs and mapping.bbgTradeFeed.irsFltTrs:
Source field in Online Trade Feed | Target field in FA | Notes |
---|---|---|
/TradeFeed/Common/TraderAccountName/text() | tr.parentPortfolio | If a portfolio that has the ext ID "AIM-ID" with the given TraderAccountName is found, then the transaction is imported into that portfolio. Otherwise, the parent portfolio short name is assumed to be the TraderAccountName. |
/TradeFeed/Common/TransactionNumber/text() | tr.reference | Fixed leg: [TransactionNumber]FIX Floating leg: [TransactionNumber]FLT |
tr.type | B or S, depending on the leg and which leg is Pay and which Receive | |
tr.status | OK | |
/TradeFeed/Common/SystemDate/text() | tr.trasnactionDate | |
/TradeFeed/Common/SettlementDate/text() | tr.settlementDate | |
/TradeFeed/Common/SecurityIdentifier/text() | tr.security | Fixed leg: [SecurityIdentifier] with last character adjusted by +1 alphabetically (e.g. XXXA would become XXXB). Floating leg: [SecurityIdentifier] with last character adjusted by +2 alphabetically (e.g. XXXA would become XXXC). |
tr.account | AUTO | |
/TradeFeed/Common/TradeAmount/text() | tr.amount | |
tr.unitPrice | 100 | |
tr.fxRate | AUTO | |
/TradeFeed/TransactionCosts/TransactionCost[1]/Cost/text() | tr.cost | |
/TradeFeed/TransactionCosts/TransactionCost[1]/Type/text() | tr.costType1 | If Type = 2, then COMA If Type = 3, then EXCH |
/TradeFeed/TransactionCosts/TransactionCost[2]/Cost/text() | tr.cost2 | |
/TradeFeed/TransactionCosts/TransactionCost[2]/Type/text() | tr.costType2 | If Type = 2, then COMA If Type = 3, then EXCH |
/TradeFeed/Common/AccruedInterestRepoInterest/text() | tr.accruedInterest | |
/TradeFeed/Common/CustomerAccountCounterparty/text() | tr.counter | If a contact that has the ext ID "AIM-ID" with the given CustomerAccountCounterparty is found, then that contact is used. Otherwise, the contact ID is assumed to be the CustomerAccountCounterparty. |
/TradeFeed/Common/SecurityCurrencyISOCode/text() | tr.currency | |
/TradeFeed/Common/SecurityIdentifier/text() | tr.intInfo | [SecurityIdentifier]-[tr.security] |