From noreply at r-forge.r-project.org Wed Dec 21 10:44:06 2011 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Wed, 21 Dec 2011 10:44:06 +0100 (CET) Subject: [Pnl-commits] r10 - pkg/R Message-ID: <20111221094406.39B249C5EA@r-forge.r-project.org> Author: mark Date: 2011-12-21 10:44:05 +0100 (Wed, 21 Dec 2011) New Revision: 10 Modified: pkg/R/calcDvd.R Log: Replaced as.Date(0) by as.Date("1970-01-01") to resolve xts/zoo error. Modified: pkg/R/calcDvd.R =================================================================== --- pkg/R/calcDvd.R 2010-03-27 11:39:05 UTC (rev 9) +++ pkg/R/calcDvd.R 2011-12-21 09:44:05 UTC (rev 10) @@ -17,8 +17,8 @@ if("dvda" %in% colnames(series)) series$dvda = NULL if("udvd" %in% colnames(series)) series$udvd = NULL - divs = rbind(divs, xts(matrix(c(0,0), ncol=2), as.Date(0))) - txn = rbind(txn, xts(matrix(c(0,0,0), ncol=3), as.Date(0))) + divs = rbind(divs, xts(matrix(c(0,0), ncol=2), as.Date("1970-01-01"))) + txn = rbind(txn, xts(matrix(c(0,0,0), ncol=3), as.Date("1970-01-01"))) txn$pos = cumsum(txn$size) divs = cbind(divs, na.locf(cbind(divs, txn$pos)$pos), join="left") From noreply at r-forge.r-project.org Wed Dec 21 10:45:55 2011 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Wed, 21 Dec 2011 10:45:55 +0100 (CET) Subject: [Pnl-commits] r11 - pkg/R Message-ID: <20111221094555.7FC369C5EA@r-forge.r-project.org> Author: mark Date: 2011-12-21 10:45:54 +0100 (Wed, 21 Dec 2011) New Revision: 11 Modified: pkg/R/calcPnl.R Log: changed as.Date(0) with as.Date("1970-01-01") to get rid off xts/zoo error. Modified: pkg/R/calcPnl.R =================================================================== --- pkg/R/calcPnl.R 2011-12-21 09:44:05 UTC (rev 10) +++ pkg/R/calcPnl.R 2011-12-21 09:45:54 UTC (rev 11) @@ -1,18 +1,18 @@ ################################################################################## # Calculate trading-, unrealized- and realized pnl from transactions and price -# series. +# pseries. # ################################################################################## calcPnl <- -function(series, closepricecol, txn) { - series$tpnl = (series$pos * series[,closepricecol]) - (lag(series$pos) * lag(series[,closepricecol])) + (-(series$size) * series$price) - series[is.na(series$tpnl), "tpnl"] = 0 # remove NA's from top row caused by lag() +function(pseries, closepricecol, txn) { + pseries$tpnl = (pseries$pos * pseries[,closepricecol]) - (lag(pseries$pos) * lag(pseries[,closepricecol])) + (-(pseries$size) * pseries$price) + pseries[is.na(pseries$tpnl), "tpnl"] = 0 # remove NA's from top row caused by lag() # Calculate realized pnl from transactions if(!is.null(txn)) { - if("rpnl" %in% colnames(series)) series$rpnl = NULL + if("rpnl" %in% colnames(pseries)) pseries$rpnl = NULL - txn = rbind(txn, xts(matrix(c(0,0,0), ncol=3), as.Date(0))) + txn = rbind(txn, xts(matrix(c(0,0,0), ncol=3), as.Date("1970-01-01"))) txn$pos = cumsum(txn$size) txn$ec = (-(txn$size) * txn$price) + txn$fees @@ -23,16 +23,16 @@ t[which(t[, "pos"]==0), "rpnl"] = c(0, diff(t[which(t[,"pos"]==0), "cumec"])) txn$rpnl = t[, "rpnl"] - series = cbind(series, as.xts(txn[-1, "rpnl"]), fill=0) + pseries = cbind(pseries, as.xts(txn[-1, "rpnl"]), fill=0) } else { - series$rpnl = 0 + pseries$rpnl = 0 } # TODO: upnl should not depend on rpnl, but how to do this without falling back on a loop? - series$upnl = cumsum(series$tpnl + series$fees - series$rpnl) + pseries$upnl = cumsum(pseries$tpnl + pseries$fees - pseries$rpnl) - series[is.na(series$upnl), "upnl"] = 0 # remove NA from top row caused by cumsum() + pseries[is.na(pseries$upnl), "upnl"] = 0 # remove NA from top row caused by cumsum() - return(series) + return(pseries) } From noreply at r-forge.r-project.org Wed Dec 21 10:49:40 2011 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Wed, 21 Dec 2011 10:49:40 +0100 (CET) Subject: [Pnl-commits] r12 - pkg Message-ID: <20111221094940.6C4A79C5E7@r-forge.r-project.org> Author: mark Date: 2011-12-21 10:49:39 +0100 (Wed, 21 Dec 2011) New Revision: 12 Modified: pkg/DESCRIPTION Log: revision 0.2 Modified: pkg/DESCRIPTION =================================================================== --- pkg/DESCRIPTION 2011-12-21 09:45:54 UTC (rev 11) +++ pkg/DESCRIPTION 2011-12-21 09:49:39 UTC (rev 12) @@ -1,7 +1,7 @@ Package: pnl Type: Package Title: Profit and Loss calculation for financial instruments and portfolio's. -Version: 0.1 +Version: 0.2 Date: Author: Mark Breman Maintainer: Mark Breman