diff options
| -rw-r--r-- | R/new_index_series.R | 37 |
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 } |
