Bloomberg bond security mapping
This mapping is used for Security Type Debt instrument (BOND).
In FA Back, this mapping is used when you go to Tools → Create security → Bloomberg → Bond.
Configuration
Base instruments for Floating Rate Bonds
The mappings exist in FA prior to creating Bonds. The base instrument Interest Rate needs to have Security Code equal to FA Standard <CCY><TENOR> (note for EUR <CCY>LI/IB<TENOR> LI=Libor, IB=Euribor).
Mapping
Mapping name: mapping.bloomberg.bond
Updated fields
|
|
|
Mapping table
Source field | Value mapping | FA field | Script |
CFI_CODE | CFI | ||
BLOOMBERG_CFI_CODE | CFI | ||
s.type | output = "[CFI]".substring(0,1) | ||
s.subType | output = "[CFI]".substring(0,2) | ||
ID_ISIN | s.isinCode | ||
CRNCY | s.currency | ||
s.securityCode | output="[ID_ISIN]"+"_"+"[CRNCY]" ; | ||
ID_BB_GLOBAL | s.updateCode | ||
ID_MIC1 | USEMIC | if("[ID_MIC1]"=='YYYY')
{
output='XFRA'
}
else
{
if((!"[ID_MIC1]"?.trim())||("[ID_MIC1]"=='')||("[ID_MIC1]"=='null')||("[ID_MIC1]"=='N.A.'))
{
output='-'
}
else
{
output="[ID_MIC1]"
}
}
; | |
ID_MIC_PRIM_EXCH | USEMIC | ||
HOLEX | switch("[USEMIC]")
{
case "XSWX":
output = "CHZU"
break
case "XVTX":
output = "CHZU"
break
case "XMAD":
output = "ESMA"
break
case "XNGS":
output ="USNY"
break
case "XNYS":
output ="USNY"
break
case "XNAS":
output ="USNY"
break
case "GLBX":
output ="USNY"
break
case "XCME":
output ="USNY"
break
case "XSES":
output = "SGSI"
break
case "XSTO":
output = "SEST"
break
case "XCSE":
output = "DKCO"
break
case "XETR":
output = "DEFR"
break
case "XEUR":
output = "DEFR"
break
case "FRAB":
output = "DEFR"
break
case "MUNA":
output = "DEFR"
break
case "XBER":
output = "DEFR"
break
case "XHEL":
output = "FIHE"
break
case "FNFI":
output = "FIHE"
break
case "NOTC":
output = "NOOS"
break
case "XOSL":
output = "NOOS"
break
case "XOAM":
output = "NOOS"
break
case "XLDN":
output = "GBLO"
break
case "SETS":
output = "GBLO"
break
case "XPAR":
output = "FRPA"
break
case "XTKS":
output = "JPTO"
break
case "XJPX":
output = "JPTO"
break
case "XTSX":
output = "CATO"
break
case "XTSE":
output = "CATO"
break
case "XASX":
output = "AUSY"
break
case "XNZE":
output = "NZWE"
break
default:
output="-"
break
}
; | ||
CDR_EXCH_CODE | CAL | ||
CALENDAR_CODE | CAL | ||
CNTRY_OF_DOMICILE | s.country | if("[CNTRY_OF_DOMICILE]"!="EU")
{
if("[CNTRY_OF_DOMICILE]".length()==2)
{
output="[CNTRY_OF_DOMICILE]"
}
else
{
output=''
}
}
else
{
output=''
}
; | |
CALCODE | switch('[CAL]')
{
case "A7":
output="AUSY"
break
case "AU":
output="AUSY"
break
case "AX":
output="AUSY"
break
case 'A$':
output="AUSY"
break
case "BZ":
output="BRBD"
break
case "RI":
output="BRBD"
break
case "ML":
output="CAMO"
break
case "CA":
output="CATO"
break
case "T4":
output="CATO"
break
case "WG":
output="CATO"
break
case "#V":
output="CHZU"
break
case "BS":
output="CHZU"
break
case "CH":
output="CHZU"
break
case "S5":
output="CHZU"
break
case "SZ":
output="CHZU"
break
case "V1":
output="CHZU"
break
case "ZU":
output="CHZU"
break
case "CZ":
output="CZPR"
break
case "P1":
output="CZPR"
break
case "FA":
output="DEFR"
break
case "GE":
output="DEFR"
break
case "CP":
output="DKCO"
break
case "CP":
output="DKCO"
break
case "DE":
output="DKCO"
break
case "TE":
output="EUTA"
break
case "FI":
output="FIHE"
break
case "HE":
output="FIHE"
break
case "FR":
output="FRPA"
break
case "M9":
output="FRPA"
break
case "MT":
output="FRPA"
break
case "PA":
output="FRPA"
break
case "AP":
output="GBLO"
break
case "EN":
output="GBLO"
break
case "GB":
output="GBLO"
break
case "LM":
output="GBLO"
break
case "LS":
output="GBLO"
break
case "B8":
output="HUBU"
break
case "HU":
output="HUBU"
break
case "FX":
output="JPTO"
break
case "JN":
output="JPTO"
break
case "OK":
output="JPTO"
break
case "T2":
output="JPTO"
break
case "T3":
output="JPTO"
break
case "TK":
output="JPTO"
break
case "ME":
output="MXMC"
break
case "MX":
output="MXMC"
break
case "NO":
output="NOOS"
break
case "OS":
output="NOOS"
break
case "FD":
output="NYFD"
break
case "NY":
output="NYSE"
break
case "KD":
output="NZAU"
break
case "ND":
output="NZAU"
break
case "NZ":
output="NZAU"
break
case "WL":
output="NZWE"
break
case "PD":
output="PLWA"
break
case "PL":
output="PLWA"
break
case "O2":
output="SEST"
break
case "ST":
output="SEST"
break
case "SW":
output="SEST"
break
case "CE":
output="USNY"
break
case "M4":
output="USNY"
break
case "US":
output="USNY"
break
case "#A":
output="USNY"
break
case "JH":
output="ZAJO"
break
case "SA":
output="ZAJO"
break
case "X1":
output="ZAJO"
break
case "ZA":
output="ZAJO"
break
default:
output='Sat/Sun'
break
}
; | ||
s.exchange | if("[USEMIC]"=='-')
{
output=''
}
else
{
output="[USEMIC]"
}
; | ||
s.holidayCalendar | if("[HOLEX]"!='-')
{
output="[HOLEX]"
}
else
{
output="[CALCODE]"
}
; | ||
DAYS_TO_SETTLE | s.settlementDateOffset | ||
s.enableSettlementDateOffset | if("[DAYS_TO_SETTLE]" != null && !"[DAYS_TO_SETTLE]".isEmpty() && !"[DAYS_TO_SETTLE]".trim().isEmpty())
{
output='1'
}
else
{
output="0"
}
; | ||
AMT_OUTSTANDING | s.share | ||
s.status | output="ACTIVE"; | ||
s.tradeCode | output="[ID_BB_GLOBAL]" ; | ||
SECURITY_DES | |||
ISSUE_PX | s.issuePrice | if("[ISSUE_PX]" != null && !"[ISSUE_PX]".isEmpty() && !"[ISSUE_PX]".trim().isEmpty())
{
output="[ISSUE_PX]"
}
else
{
output='100'
}
; | |
CALC_MATURITY | s.maturityDate | if((!"[CALC_MATURITY]"?.trim())||("[CALC_MATURITY]"=='')||("[CALC_MATURITY]"=='null')||("[CALC_MATURITY]"=='N.A.'))
{
output=''
}
else
{
if(new Date().parse('MM/dd/yyyy','[CALC_MATURITY]').format('yyyy')>'2120')
{
output = new Date().parse('MM/dd/yyyy','[CALC_MATURITY]').format('2120-MM-dd')
}
else
{
output = new Date().parse('MM/dd/yyyy','[CALC_MATURITY]').format('yyyy-MM-dd')
}
}
; | |
PCT_PAR_QUOTED | s.multiplier | if("[PCT_PAR_QUOTED]"=='N')
{
output=1
}
else
{
output=100
}
; | |
s.multiplierView | output="[s.multiplier]" ; | ||
CPN_FREQ | s.couponFrequency | switch("[CPN_FREQ]")
{
case '1':
output='P12M'
break
case '2':
output='P6M'
break
case '4':
output='P3M'
break
case '12':
output='P1M'
break
case '52':
output='P1W'
break
case '365':
output='P1D'
break
default:
output=''
}
; | |
DAY_CNT_DES | s.accrualCalendar | switch("[DAY_CNT_DES]")
{
case '30/360':
output='30U/360'
break
case 'ACT/360':
output='Act/360'
break
case 'ACT/365':
output='Act/365F'
break
case 'ACT/365-66':
output='Act/366'
break
case 'AFB ACT/ACT':
output='Act/Act AFB'
break
case 'ISDA 30E/360':
output='30E/360 ISDA'
break
case 'ISMA-30/360':
output='30E/360'
break
case 'ISMA-30/360 NONEOM':
output='30E/360'
break
case 'ISMA 30/360':
output='30E/360'
break
case 'ISDA ACT/ACT':
output='Act/Act ICMA'
break
case 'ACT/ACT':
output='Act/Act ICMA'
break
case 'MUNI30/360 NON-EOM':
output='30E/360 ISDA'
break
case 'US MUNI: 30/360':
output='30U/360'
break
case '30/360 NON-EOM':
output='30U/360'
break
case 'ACT/360 NON-EOM':
output='Act/360'
break
case 'ACT/ACT NON-EOM':
output='Act/Act ISDA'
break
default:
output=''
break
}
; | |
START_ACC_DT | s.firstCouponDate | if((!"[START_ACC_DT]"?.trim())||("[START_ACC_DT]"=='')||("[START_ACC_DT]"=='null')||("[START_ACC_DT]"=='N.A.'))
{
output=''
}
else
{
output = new Date().parse('MM/dd/yyyy','[START_ACC_DT]').format('yyyy-MM-dd')
}
;
| |
REDEMP_VAL | s.maturityPrice | output = '[REDEMP_VAL]' ; | |
s.coupons | output="" | ||
FLT_CPN_HIST | s.coupons | ||
CPN | s.coupon | if("[s.coupons]"=="") {output="[CPN]"}else{output=""}
; | |
s.exCouponPeriod | switch("[s.exchange]")
{
case "XSTO":
output='4'
break
case "XOSL":
output='1'
break
case "NOTC":
output='1'
break
case "XOAM":
output='1'
break
default:
output='0'
break
}
; | ||
CPN_TYP | CPNTYP | ||
s.offsetDays | if("[CPN_TYP]"=="FLOATING")
{output="2"}
else
{output="0"}
; | ||
END_ACC_DT | ENDACC | if((!"[END_ACC_DT]"?.trim())||("[END_ACC_DT]"=='')||("[END_ACC_DT]"=='null')||("[END_ACC_DT]"=='N.A.'))
{
output=''
}
else
{
output = new Date().parse('MM/dd/yyyy','[END_ACC_DT]').format('yyyy-MM-dd')
}
;
| |
ISSUE_DT | if((!"[ISSUE_DT]"?.trim())||("[ISSUE_DT]"=='')||("[ISSUE_DT]"=='null')||("[ISSUE_DT]"=='N.A.'))
{
output=''
}
else
{
output = new Date().parse('MM/dd/yyyy','[ISSUE_DT]').format('yyyy-MM-dd')
}
; | ||
SSTUB | if("s.firstCouponDate"<"s.issueDate")
{
output = "Short First"
}
else if("s.firstCouponDate">"s.issueDate")
{
output = "Long First"
}
else
{
output = "Normal"
} | ||
LSTUB | if('[ENDACC]'<'[s.maturityDate]')
{
output = "Long Last"
}
else if('[ENDACC]'>'[s.maturityDate]')
{
output = "Short Last"
}
else
{
output = "Normal"
} | ||
s.stubConvention | if("[LSTUB]"=='Normal')
{if("[SSTUB]"=="Normal")
{output="None"}
else
{if("[SSTUB]"=="Short First")
{output="ShortInitial"}
else
{if("[SSTUB]"=="Long First")
{output="LongInitial"}
else
{output=""}
}
}
}
else
{if("[LSTUB]"=='Long')
{if("[SSTUB]"=="Normal")
{output="LongFinal"}
else
{if("[SSTUB]"=="Short First")
{output="Both"}
else
{if("[SSTUB]"=="Long First")
{output="Both"}
else
{output=""}
}
}
}
else
{if("[LSTUB]"=='Short')
{if("[SSTUB]"=="Normal")
{output="ShortFinal"}
else
{if("[SSTUB]"=="Short First")
{output="Both"}
else
{if("[SSTUB]"=="Long First")
{output="Both"}
else
{output=""}
}
}
}
}
}
; | ||
RESET_IDX | s.baseInstrument | def str = "[RESET_IDX]"
def lgt = str.length()
def ccy = "[CRNCY]"
if(str.substring(0,4)=='CDOR')
{
if(str.substring(lgt-2,lgt)=='12')
{
suffix='1Y'
}
else
{
suffix=str.substring(lgt-1,lgt)+'M'
}
}
else
{
if(str.substring(lgt-3,lgt)=='12M')
{
suffix='1Y'
}
else
{
suffix=str.substring(lgt-2,lgt)
}
}
if("[CRNCY]"=="EUR")
{
if(str.substring(0,2)=="EE")
{
prefix="EURLI"
}
else
{
prefix="EURIB"
}
}
else
{
prefix="[CRNCY]"
}
output=prefix+suffix
; | |
FLT_SPREAD | s.spread | if("[FLT_SPREAD]" != null && !"[FLT_SPREAD]".isEmpty() && !"[FLT_SPREAD]".trim().isEmpty())
{
double dnum = Double.parseDouble("[FLT_SPREAD]")
output=dnum/100
}
else
{
output=''
}
; | |
ISSUE_DT | s.issueDate | if((!"[ISSUE_DT]"?.trim())||("[ISSUE_DT]"=='')||("[ISSUE_DT]"=='null')||("[ISSUE_DT]"=='N.A.'))
{
output=''
}
else
{
output = new Date().parse('MM/dd/yyyy','[ISSUE_DT]').format('yyyy-MM-dd')
}
; | |
FLT_CPN_CONVENTION | s.businessDayConvention | switch("[FLT_CPN_CONVENTION]")
{
case 'Mod bus day - adj':
output='ModifiedFollowing'
break
case 'Mod Bus Day-Adj Nxt Month':
output='ModifiedFollowing'
break
case 'Mod bus day - unadj':
output='ModifiedFollowing'
break
case 'Following bus day - adj':
output='ModifiedPreceding'
break
case 'Following bus day - unadj':
output='Following'
break
case 'Preceding bus day - adj':
output='ModifiedPreceding'
break
case 'Preceding bus day - unadj':
output='Preceding'
break
default:
output='NoAdjust'
break
}
; | |
s.tags | output="Reference data-Bloomberg bond" ; | ||
s.profileAttributes | if(!"[CIC]"?.trim())
{
output=""
}
else
{
output = "security.sii.listedIn=" + "[CIC]".substring(0,2) + ":string#security.sii.cic=" + "[CIC]".substring(2) + ":string#"
}
; | ||
TICKER | s.keyFigures | if("[TICKER]"!='') {output="***BloombergId=2000-01-01=[TICKER]"}else {output="***"} |