aboutsummaryrefslogtreecommitdiffstats
path: root/R/loadcashflows.R
diff options
context:
space:
mode:
Diffstat (limited to 'R/loadcashflows.R')
-rw-r--r--R/loadcashflows.R38
1 files changed, 38 insertions, 0 deletions
diff --git a/R/loadcashflows.R b/R/loadcashflows.R
new file mode 100644
index 00000000..26ea12f1
--- /dev/null
+++ b/R/loadcashflows.R
@@ -0,0 +1,38 @@
+cusips <- c("000743AA2","00083VAE1","009368AD3","00936BAA2","00936XAA4","03761KAG3","03761LAE6","039549AC4","30605LAA7","82626RAA0","92849RAA0")
+cfdir <- "T:/Analytics/Runs/20100608"
+test <- read.table(paste(cusip[1],"cashflow.txt",sep="_"),header=T)
+index_scen <- function(data,i){
+ return( which(data$"Scenario"==paste("SCENARIO",i,sep="")) )
+}
+
+as.Date(as.character(test[index_scen(test,1),]$Date),format="%Y%m%d")
+
+library(zoo)
+today <- function(){
+ as.Date(Sys.time())
+}
+df <- function(spreadcurve){
+ df <- exp(-cumsum(as.numeric(diff(c(spreadcurve$curvedate,time(spreadcurve$curve)))/365)*spreadcurve$curve))
+ list(curvedate=spreadcurve$curvedate,curve=zoo(df,time(spreadcurve$curve)))
+}
+test <- zoo(c(100,200,300),c(today+365*1:3))
+yc.usd <-list(curvedate=today(),curve=zoo(c(100,200,300),today()+365*1:3))
+
+addcurves <- function(curveA,curveB){
+ if(curveA$curvedate==curveB$curvedate){
+ curvemerged <- na.locf(na.locf(merge(curveA$curve,curveB$curve),na.rm=F,fromLast=T))
+ return(list(curvedate=curveA$curvedate,curve=curvemerged[,1]+curvemerged[,2]))
+ }else{
+ return(0)
+ }
+}
+multcurves <- function(curveA,curveB){
+ if(curveA$curvedate==curveB$curvedate){
+ curvemerged <- na.locf(na.locf(merge(curveA$curve,curveB$curve),na.rm=F,fromLast=T))
+ return(list(curvedate=curveA$curvedate,curve=curvemerged[,1]*curvemerged[,2]))
+ }else{
+ return(0)
+ }
+}
+spreadfrombondprice <- function(price,spread,maturity,yieldcurve){
+}