diff options
Diffstat (limited to 'R/load_cf.R')
| -rw-r--r-- | R/load_cf.R | 61 |
1 files changed, 26 insertions, 35 deletions
diff --git a/R/load_cf.R b/R/load_cf.R index a3aec9c7..47291658 100644 --- a/R/load_cf.R +++ b/R/load_cf.R @@ -5,7 +5,7 @@ library(hash) library(data.table)
options(stringsAsFactors = FALSE)
args <- commandArgs(trailingOnly=TRUE)
-options(warn=2)
+##options(warn=2)
if(.Platform$OS.type == "unix"){
root.dir <- "/home/share/CorpCDOs"
@@ -286,45 +286,36 @@ save(cusipdata, cfdata, file=file.path(save.dir, "cashflows.RData"), compress="xz")
## upload wapbasis
+sqlstring <- paste0("UPDATE et_deal_model_numbers SET ",
+ "wapbasis = $1 WHERE dealname= $2 AND updatedate = $3")
for(dealname in names(cfdata)){
- sqlstring <- sprintf(paste0("UPDATE et_deal_model_numbers SET ",
- "wapbasis = '%s' WHERE dealname= '%s' AND updatedate = '%s'"),
- cfdata[[dealname]]$wapbasis*100,
- dealname,
- strftime(tradedate))
- dbSendQuery(dbCon, sqlstring)
+ r <- dbSendQuery(dbCon, sqlstring, params = list(cfdata[[dealname]]$wapbasis*100,
+ dealname,
+ tradedate))
+ if(dbHasCompleted(r)){
+ dbClearResult(r)
+ }
}
## upload model data
for(cusip in names(cusipdata)){
- sqlstring <- sprintf(paste0("SELECT updatedate from et_cusip_model_numbers",
- " WHERE cusip='%s'"), cusip)
- sqldata <- dbGetQuery(dbCon, sqlstring)
- if(nrow(sqldata)&& (tradedate %in% sqldata$updatedate)){
- columns <- c("price", "wal", "duration", "delta")
- values <- c(cusipdata[[cusip]]$price, cusipdata[[cusip]]$wal,
- cusipdata[[cusip]]$duration, cusipdata[[cusip]]$delta)
- index <- which(!is.na(values))
- setstring <- character(length(index))
- for(i in 1:length(index)){
- setstring[i] <- sprintf("%s = %s", columns[index[i]], values[index[i]])
- }
- setstring <- paste(setstring, collapse=",")
- sqlstring <- sprintf(paste0("UPDATE et_cusip_model_numbers SET ",
- "%s WHERE cusip='%s' and updatedate='%s'"),
- setstring,
- cusip,
- strftime(tradedate))
+ sqlstring <- paste0("SELECT updatedate from et_cusip_model_numbers",
+ " WHERE cusip=$1")
+ sqldata <- dbGetQuery(dbCon, sqlstring, params=list(cusip))
+ columns <- c("price", "wal", "duration", "delta")
+ values <- cusipdata[[cusip]][match(columns, names(cusipdata[[cusip]]))]
+ if(nrow(sqldata) && (tradedate %in% as.Date(sqldata$updatedate))){
+ params <- c(values, cusip, as.character(tradedate))
+ sqlstring <- paste0("UPDATE et_cusip_model_numbers SET price=$1, wal=$2, duration=$3,",
+ "delta=$4 WHERE cusip=$5 and updatedate=$6")
+
}else{
- columns <- c("Cusip", "price", "wal", "duration", "delta", "updatedate")
- values <- c(cusip, cusipdata[[cusip]]$price, cusipdata[[cusip]]$wal,
- cusipdata[[cusip]]$duration, cusipdata[[cusip]]$delta,
- strftime(tradedate))
- colstring <- paste(columns[!is.na(values)], collapse=",")
- valstring <- paste(values[!is.na(values)], collapse="','")
- sqlstring <- sprintf(paste0("INSERT INTO et_cusip_model_numbers",
- "(%s) VALUES('%s')"),
- colstring, valstring)
+ sqlstring <- paste0("INSERT INTO et_cusip_model_numbers ",
+ "VALUES($1, $2, $3, $4, $5, $6)")
+ params <- c(cusip, values, as.character(tradedate))
+ }
+ r <- dbSendQuery(dbCon, sqlstring, params=params)
+ if(dbHasCompleted(r)){
+ dbClearResult(r)
}
- dbSendQuery(dbCon, sqlstring)
}
|
