aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--R/new_index_series.R37
1 files changed, 20 insertions, 17 deletions
diff --git a/R/new_index_series.R b/R/new_index_series.R
index f3416101..e88d0d41 100644
--- a/R/new_index_series.R
+++ b/R/new_index_series.R
@@ -44,7 +44,7 @@ newbasketID <- function(indextype='IG', series, version=1, mat_5yr, coupon, red)
insert.newcurves <- function(tickers) {
cds.fields <- c("cds_company_id", "cds_restructuring_type", "cds_corp_tkr",
- "sw_seniority", "cds_company_name")
+ "sw_seniority", "cds_company_name", "restructuring_type_short_code")
df <- bdp(paste(tickers, "Corp"), cds.fields)
r <- c()
for(t in tickers) {
@@ -53,15 +53,15 @@ insert.newcurves <- function(tickers) {
}
df["cds_curve"] <- r
sqlstr <- paste0("INSERT INTO bbg_issuers",
- "(name, company_id, ticker, currency, seniority, doc_clause, cds_curve)",
- "VALUES($1, $2, $3, $4, $5, $6, $7) ON CONFLICT DO NOTHING")
+ "(name, company_id, ticker, currency, seniority, doc_clause, cds_curve, short_code)",
+ "VALUES($1, $2, $3, $4, $5, $6, $7, $8) ON CONFLICT DO NOTHING")
with(df,
for(i in 1:nrow(df)) {
r <- dbSendQuery(serenitasdb, sqlstr,
params=list(cds_company_name[i],
cds_company_id[i], cds_corp_tkr[i],
- "USD", sw_seniority[i], cds_restructuring_type[i],
- cds_curve[i]))
+ "EUR", sw_seniority[i], cds_restructuring_type[i],
+ cds_curve[i], restructuring_type_short_code[i]))
if(dbHasCompleted(r)){
dbClearResult(r)
}
@@ -71,14 +71,15 @@ insert.newcurves <- function(tickers) {
newcurves <- function(indextype, series, basketid){
index <- bds(bbgname(indextype, series), "INDX_MEMBERS")
tickers <- index[,5]
- cds.fields <- c("cds_company_id", "cds_restructuring_type", "cds_corp_tkr", "sw_seniority")
+ cds.fields <- c("cds_company_id", "cds_restructuring_type", "cds_corp_tkr", "sw_seniority",
+ "restructuring_type_short_code")
df <- bdp(paste(tickers, "Corp"), cds.fields)
df <- cbind(tickers, df)
prep.data <- with(df, data.frame(Name=index[,1], company_id=cds_company_id,
ticker=cds_corp_tkr, currency=index[,3],
seniority=sw_seniority, doc_clause=cds_restructuring_type,
- curve_ticker=tickers))
+ curve_ticker=tickers, short_code=restructuring_type_short_code))
all.companyids <- dbGetQuery(serenitasdb, "SELECT company_id FROM bbg_issuers")
prep.data <- prep.data[!prep.data$company_id %in% all.companyids$company_id,]
if(nrow(prep.data) > 0){
@@ -94,21 +95,23 @@ newcurves <- function(indextype, series, basketid){
prep.data$doc_clause <- gsub("-", " ", prep.data$doc_clause)
sqlstr <- paste0("INSERT INTO bbg_issuers",
- "(name, company_id, ticker, currency, seniority, doc_clause, cds_curve)",
- "VALUES($1, $2, $3, $4, $5, $6, $7) ON CONFLICT DO NOTHING")
+ "(name, company_id, ticker, currency, seniority, doc_clause, cds_curve, short_code)",
+ "VALUES($1, $2, $3, $4, $5, $6, $7, $8) ON CONFLICT DO NOTHING")
with(prep.data,
for(i in 1:nrow(prep.data)){
r <- dbSendQuery(serenitasdb, sqlstr,
params = list(Name[i], company_id[i], ticker[i],
- currency[i], seniority[i], doc_clause[i], cds_curve[i]))
+ currency[i], seniority[i], doc_clause[i], cds_curve[i],
+ short_code[i]))
if(dbHasCompleted(r)){
dbClearResult(r)
}
})
}
- sqlstr <- "UPDATE bbg_issuers SET index_list=index_list||$1::int where company_id=$2"
- for(id in df$cds_company_id){
- r <- dbSendQuery(serenitasdb, sqlstr, params=list(basketid, id))
+ sqlstr <- "UPDATE bbg_issuers SET index_list=index_list||$1::int where company_id=$2 and seniority=$3"
+ for(i in 1:dim(df)[1]){
+ r <- dbSendQuery(serenitasdb, sqlstr, params=list(basketid, df[i, "cds_company_id"],
+ df[i, "sw_seniority"]))
if(dbHasCompleted(r)){
dbClearResult(r)
}
@@ -133,11 +136,11 @@ markit.mappings <- function(df){
}
if(interactive()) {
- basket.id <- newbasketID('HY', 32, 1, as.Date("2023-06-20"), 500, "2I65BRRT9")
- df <- newcurves('HY', 32, basket.id)
+ basket.id <- newbasketID('XO', 32, 1, as.Date("2024-12-20"), 100, "2I666VCV5")
+ df <- newcurves('XO', 32, basket.id)
mappings <- data.frame(company_id = df$company_id, seniority = df$seniority,
- markit_ticker=c("VISTREN"),
- markit_tier=c("SNRFOR"), coupon=500)
+ markit_ticker=c("FAUR", "TEOLVOI", "SCHAAG", "VOLVCAR"),
+ markit_tier=c("SNRFOR", "SNRFOR", "SNRFOR","SNRFOR"), coupon=500)
markit.mappings(mappings)
## then update index_list in markit/import_quotes.py and rerun insert_cds
}