### R code from vignette source 'FinTeX.Rnw'

###################################################
### code chunk number 1: FinTeX.Rnw:26-29
###################################################
options(continue = "  ", digits = 3, width = 80, useFancyQuotes = FALSE)
pv <- packageVersion("PMwR")
pv <- gsub("(.*)[.](.*)", "\\1-\\2", pv)


###################################################
### code chunk number 2: FinTeX.Rnw:43-49
###################################################
library("PMwR")
library("zoo")
data("DAX")
data("REXP")
DAX  <- zoo(DAX[[1]],  as.Date(row.names(DAX)))
REXP <- zoo(REXP[[1]], as.Date(row.names(REXP)))


###################################################
### code chunk number 3: FinTeX.Rnw:61-62
###################################################
returns(DAX, period = "month")


###################################################
### code chunk number 4: FinTeX.Rnw:85-86
###################################################
toLatex(returns(DAX, period = "month"), ytd = "\\textsc{ytd}")


###################################################
### code chunk number 5: returns-dax
###################################################
returns(DAX, period = "annualised")


###################################################
### code chunk number 6: FinTeX.Rnw:108-111
###################################################
toLatex(summary(as.NAVseries(DAX,  title = "DAX"),
                as.NAVseries(REXP, title = "REXP")),
        template = "%title: %return\\% \\\\")


###################################################
### code chunk number 7: FinTeX.Rnw:117-122
###################################################
tmpl <- c("Equities (%title) made %return\\%, with a drawdown of %mdd\\%;",
          "bonds (%title) returned %return\\%.")
toLatex(summary(as.NAVseries(DAX,  title = "DAX"),
                as.NAVseries(REXP, title = "REXP")),
        template = tmpl)


###################################################
### code chunk number 8: FinTeX.Rnw:126-128
###################################################
toLatex(summary(as.NAVseries(DAX,  title = "DAX")),
        template = "The DAX %sparkline made %return\\% during the period.")


###################################################
### code chunk number 9: FinTeX.Rnw:138-141
###################################################
toLatex(summary(as.NAVseries(DAX,  title = "DAX"),
                as.NAVseries(REXP, title = "REXP")),
        template = "%title & %sparkline & %return & %volatility  \\\\")


###################################################
### code chunk number 10: FinTeX.Rnw:148-151 (eval = FALSE)
###################################################
## toLatex(summary(as.NAVseries(DAX,  title = "DAX"),
##                 as.NAVseries(REXP, title = "REXP")),
##         template = "%title & %sparkline & %return & %volatility  \\\\")


###################################################
### code chunk number 11: random-series
###################################################
na <- 50
no <- 250
P <- array(rnorm(no*na, sd = 0.01), dim = c(no, na))
P <- rbind(1, apply(P, 2, function(x) cumprod(x + 1)))
str(P)


###################################################
### code chunk number 12: FinTeX.Rnw:171-187
###################################################
matrixify <- function(s, cols) {
    s <- as.character(s)
    nrow <- ceiling(length(s)/cols)
    s <- c(s, rep("", nrow*cols - length(s)))
    dim(s) <- c(nrow, cols)
    s
}

## make LaTeX table
Plist <- unname(
  lapply(split(P, col(P)), function(x) NAVseries(x)))
s <- toLatex(do.call(summary, Plist),
             template = "%return & %volatility & %sparkline")
o <- order(P[nrow(P), ], decreasing = TRUE)
s <- s[o]
cat(toLatex(as.data.frame(matrixify(s, 3))))