diff options
Diffstat (limited to 'R/load_cf.R')
| -rw-r--r-- | R/load_cf.R | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/R/load_cf.R b/R/load_cf.R index 715e2168..89511af0 100644 --- a/R/load_cf.R +++ b/R/load_cf.R @@ -179,26 +179,27 @@ getdealcf <- function(dealnames, zipfiles, tradedate=Sys.Date()){ return( cfdata ) } -getcusip_indicdata <- function(Cusip, dealname, date){ - sqlstr <- "SELECT DISTINCT isin FROM cusip_universe WHERE cusip=$1" - r <- tryCatch(dbGetQuery(etdb, sqlstr, params=list(Cusip)), - error = function(w) logerror(w$message)) - if(length(r$isin)>1){ +getcusip_indicdata <- function(cusip, dealname, date) { + cusip_universe <- tbl(etdb, "cusip_universe") + r <- cusip_universe %>% + filter(cusip == !!cusip) %>% + distinct(isin) %>% collect() + if(length(r$isin) > 1) { stop("We have a problem") } - isinval <- r$isin[1] + isin <- r$isin sqlstr <- "SELECT * FROM historical_dealname_universe($1, $2)" r <- tryCatch(dbGetQuery(etdb, sqlstr, params = list(dealname, date)), error = function(w) logerror(w$message)) - if(!is.na(isinval)){ - return(r %>% group_by(isin) %>% slice(1) %>% - summarize(cusip, curr_balance, orig_balance, spread, curr_attach) %>% + if(!is.na(isin)) { + return(r %>% group_by(isin) %>% slice(1) %>% ungroup() %>% arrange(desc(curr_attach)) %>% - mutate(cum_bal = cumsum(curr_balance)) %>% filter(isin==isinval) ) - }else{ + mutate(cum_bal = cumsum(curr_balance)) %>% filter(isin == !!isin) %>% + select(cusip, curr_balance, orig_balance, spread, curr_attach, cum_bal)) + } else { return(r %>% select(cusip, curr_balance, orig_balance, spread, curr_attach) %>% arrange(desc(curr_attach)) %>% - mutate(cum_bal = cumsum(curr_balance)) %>% filter(cusip==Cusip) ) + mutate(cum_bal = cumsum(curr_balance)) %>% filter(cusip == !!cusip) ) } } @@ -279,7 +280,6 @@ getcusipcf <- function(params, cfdata, dist, tradedate=Sys.Date()){ return(cusipdata) } - compute.delta <- function(indexdist, dealdata, cusip.pv, K1=0, K2=1){ dealweight <- dealdata$weight dealprice <- dealdata$price |
