[Rquantlib-commits] r327 - in pkg/RQuantLib: . R demo man src
noreply at r-forge.r-project.org
noreply at r-forge.r-project.org
Sun Feb 17 22:10:52 CET 2013
Author: edd
Date: 2013-02-17 22:10:52 +0100 (Sun, 17 Feb 2013)
New Revision: 327
Modified:
pkg/RQuantLib/ChangeLog
pkg/RQuantLib/DESCRIPTION
pkg/RQuantLib/R/arrays.R
pkg/RQuantLib/cleanup
pkg/RQuantLib/demo/OptionSurfaces.R
pkg/RQuantLib/man/Bond.Rd
pkg/RQuantLib/man/DiscountCurve.Rd
pkg/RQuantLib/man/FixedRateBond.Rd
pkg/RQuantLib/man/FloatingRateBond.Rd
pkg/RQuantLib/man/ZeroCouponBond.Rd
pkg/RQuantLib/src/discount.cpp
Log:
Release 0.3.10 with a flat discount curve in examples plus minor updates
Modified: pkg/RQuantLib/ChangeLog
===================================================================
--- pkg/RQuantLib/ChangeLog 2012-12-02 17:10:25 UTC (rev 326)
+++ pkg/RQuantLib/ChangeLog 2013-02-17 21:10:52 UTC (rev 327)
@@ -1,3 +1,20 @@
+2013-02-17 Dirk Eddelbuettel <edd at debian.org>
+
+ * DESCRIPTION: Release 0.3.10
+
+ * man/Bond.Rd: Use a flat discount curve in example
+ * man/DiscountCurve.Rd: Idem
+ * man/FixedRateBond.Rd: Idem
+ * man/FLoatingRateBond.Rd: Idem
+ * man/ZeroCouponBond.Rd: Idem
+
+ * R/arrays.R (plotOptionSurface): Use explicit `rgl::' prefix for all
+ function from the rgl package to suppress spurious codetools warning
+
+ * demo/OptionSurfaces.R: Reindented
+
+ * cleanup: Simplified and updated
+
2012-12-02 Dirk Eddelbuettel <edd at debian.org>
* src/discount.cpp (DiscountCurve): R-devel on Windows now longer
@@ -10,8 +27,7 @@
* src/vanilla.cpp (AmericanOption): Support engine choice, adding
"CrankNicolson" to the default "BaroneAdesiWhaley" as the former adds
- delta, gamma and vega greeks -- thanks to Bryan Lewis for the
- suggestion
+ delta + gamma -- thanks to Bryan Lewis for the suggestion
* R/option.R: Support new the new 'engine' option
* man/AmericanOption.Rd: Document new 'engine' option
Modified: pkg/RQuantLib/DESCRIPTION
===================================================================
--- pkg/RQuantLib/DESCRIPTION 2012-12-02 17:10:25 UTC (rev 326)
+++ pkg/RQuantLib/DESCRIPTION 2013-02-17 21:10:52 UTC (rev 327)
@@ -1,6 +1,6 @@
Package: RQuantLib
Title: R interface to the QuantLib library
-Version: 0.3.9
+Version: 0.3.10
Date: $Date$
Maintainer: Dirk Eddelbuettel <edd at debian.org>
Author: Dirk Eddelbuettel <edd at debian.org> and Khanh Nguyen <knguyen at cs.umb.edu>
Modified: pkg/RQuantLib/R/arrays.R
===================================================================
--- pkg/RQuantLib/R/arrays.R 2012-12-02 17:10:25 UTC (rev 326)
+++ pkg/RQuantLib/R/arrays.R 2013-02-17 21:10:52 UTC (rev 327)
@@ -116,6 +116,7 @@
plotOptionSurface <- function(EOres, ylabel="", xlabel="", zlabel="", fov=60) {
stopifnot(require(rgl))
+ utils::globalVariables(c("clear3d", "bg3d", "ligh3d", "rgl.viewpoint", "rgl.surface", "tgl.texts"))
axis.col <- "black"
text.col <- axis.col
ylab <- ylabel
@@ -124,39 +125,39 @@
y <- EOres
## clear scene:
- clear3d()
- clear3d(type="bbox")
- clear3d(type="lights")
+ rgl::clear3d()
+ rgl::clear3d(type="bbox")
+ rgl::clear3d(type="lights")
## setup env:
- bg3d(color="#DDDDDD")
- light3d()
+ rgl::bg3d(color="#DDDDDD")
+ rgl::light3d()
- rgl.viewpoint(fov=fov)
+ rgl::rgl.viewpoint(fov=fov)
x <- 1:nrow(y)
z <- 1:ncol(y)
x <- (x-min(x))/(max(x)-min(x))
y <- (y-min(y))/(max(y)-min(y))
z <- (z-min(z))/(max(z)-min(z))
- rgl.surface(x, z, y, alpha=0.6, lit=TRUE, color="blue")
- rgl.lines(c(0,1), c(0,0), c(0,0), col=axis.col)
- rgl.lines(c(0,0), c(0,1), c(0,0), col=axis.col)
- rgl.lines(c(0,0),c(0,0), c(0,1), col=axis.col)
- rgl.texts(1,0,0, xlab, adj=1, col=text.col)
- rgl.texts(0,1,0, ylab, adj=1, col=text.col)
- rgl.texts(0,0,1, zlab, adj=1, col=text.col)
+ rgl::rgl.surface(x, z, y, alpha=0.6, lit=TRUE, color="blue")
+ rgl::rgl.lines(c(0,1), c(0,0), c(0,0), col=axis.col)
+ rgl::rgl.lines(c(0,0), c(0,1), c(0,0), col=axis.col)
+ rgl::rgl.lines(c(0,0),c(0,0), c(0,1), col=axis.col)
+ rgl::rgl.texts(1,0,0, xlab, adj=1, col=text.col)
+ rgl::rgl.texts(0,1,0, ylab, adj=1, col=text.col)
+ rgl::rgl.texts(0,0,1, zlab, adj=1, col=text.col)
## add grid (credit's to John Fox scatter3d)
xgridind <- round(seq(1, nrow(y), length=25))
zgridind <- round(seq(1, ncol(y), length=25))
- rgl.surface(x[xgridind], z[zgridind], y[xgridind,zgridind],
- color="darkgray", alpha=0.5, lit=TRUE,
- front="lines", back="lines")
+ rgl::rgl.surface(x[xgridind], z[zgridind], y[xgridind,zgridind],
+ color="darkgray", alpha=0.5, lit=TRUE,
+ front="lines", back="lines")
## animate (credit to rgl.viewpoint() example)
start <- proc.time()[3]
while ((i <- 36*(proc.time()[3]-start)) < 360) {
- rgl.viewpoint(i,i/8);
+ rgl::rgl.viewpoint(i,i/8);
}
}
Modified: pkg/RQuantLib/cleanup
===================================================================
--- pkg/RQuantLib/cleanup 2012-12-02 17:10:25 UTC (rev 326)
+++ pkg/RQuantLib/cleanup 2013-02-17 21:10:52 UTC (rev 327)
@@ -1,28 +1,9 @@
#!/bin/sh
-for f in ./config.*; do
- rm -f $f
-done
-if [ -e confdefs.h ]; then
- rm -f confdefs.h
-fi
-if [ -e src/Makevars ]; then
- rm -f src/Makevars
-fi
-if [ -e src/libRQuantLib.a ]; then
- rm -f src/libRQuantLib.a
-fi
-if [ -e src/libRQuantLib.def ]; then
- rm -f src/libRQuantLib.def
-fi
-if [ -e autom4te.cache ]; then
- rm -rf autom4te.cache
-fi
-for f in src/*.o src/*.so; do
- rm -f $f
-done
+
+rm -f config.log config.status confdefs.h autom4te.cache \
+ src/Makevars src/libRQuantLib.a src/libRQuantLib.def src/*.o src/*.so src/symbols.rds \
+ RcppSrc/*.a RcppSrc/*.o RcppSrc/config.* inst/Rcpp-version.txt
+
find . -name \*~ | xargs rm -f
-#rm -vf configure
-rm -vf config.log config.status
-rm -f RcppSrc/*.a RcppSrc/*.o RcppSrc/config.*
-rm -f inst/Rcpp-version.txt
+
exit 0
Modified: pkg/RQuantLib/demo/OptionSurfaces.R
===================================================================
--- pkg/RQuantLib/demo/OptionSurfaces.R 2012-12-02 17:10:25 UTC (rev 326)
+++ pkg/RQuantLib/demo/OptionSurfaces.R 2013-02-17 21:10:52 UTC (rev 327)
@@ -3,68 +3,65 @@
## Dirk Eddelbuettel, September 2005
## $Id: OptionSurfaces.R,v 1.1 2005/10/12 03:42:45 edd Exp $
-OptionSurface <- function(EOres, label, fov=60) {
- axis.col <- "black"
- text.col <- axis.col
- ylab = label
- xlab = "Underlying"
- zlab = "Volatility"
- y <- EOres
+OptionSurface <- function(EOres, label, fov=60) {
+ axis.col <- "black"
+ text.col <- axis.col
+ ylab = label
+ xlab = "Underlying"
+ zlab = "Volatility"
+ y <- EOres
- # clear scene:
- clear3d()
- clear3d(type="bbox")
- clear3d(type="lights")
-
- # setup env:
-# bg3d(color="#887777")
- bg3d(color="#DDDDDD")
- light3d()
+ ## clear scene:
+ clear3d()
+ clear3d(type="bbox")
+ clear3d(type="lights")
- rgl.viewpoint(fov=fov)
- #rgl.bg(col="white", fogtype="exp2")
- #rgl.bg(col="black", fogtype="exp2")
- #rgl.bg(col="black", fogtype="exp")
- #rgl.bg(col="white", fogtype="exp")
+ ## setup env:
+ ## bg3d(color="#887777")
+ bg3d(color="#DDDDDD")
+ light3d()
- x <- (1:nrow(y))
- z <- (1:ncol(y))
- x <- (x-min(x))/(max(x)-min(x))
- y <- (y-min(y))/(max(y)-min(y))
- z <- (z-min(z))/(max(z)-min(z))
- rgl.surface(x, z, y, alpha=0.6, lit=TRUE, color="blue")
- rgl.lines(c(0,1), c(0,0), c(0,0), col=axis.col)
- rgl.lines(c(0,0), c(0,1), c(0,0), col=axis.col)
- rgl.lines(c(0,0),c(0,0), c(0,1), col=axis.col)
- rgl.texts(1,0,0, xlab, adj=1, col=text.col)
- rgl.texts(0,1,0, ylab, adj=1, col=text.col)
- rgl.texts(0,0,1, zlab, adj=1, col=text.col)
+ rgl.viewpoint(fov=fov)
+ ##rgl.bg(col="white", fogtype="exp2")
+ ##rgl.bg(col="black", fogtype="exp2")
+ ##rgl.bg(col="black", fogtype="exp")
+ ##rgl.bg(col="white", fogtype="exp")
- ## add grid (credit's to John Fox scatter3d)
- xgridind <- round(seq(1, nrow(y), length=25))
- zgridind <- round(seq(1, ncol(y), length=25))
- rgl.surface(x[xgridind], z[zgridind], y[xgridind,zgridind],
- color="darkgray", alpha=0.5, lit=TRUE,
- front="lines", back="lines")
+ x <- (1:nrow(y))
+ z <- (1:ncol(y))
+ x <- (x-min(x))/(max(x)-min(x))
+ y <- (y-min(y))/(max(y)-min(y))
+ z <- (z-min(z))/(max(z)-min(z))
+ rgl.surface(x, z, y, alpha=0.6, lit=TRUE, color="blue")
+ rgl.lines(c(0,1), c(0,0), c(0,0), col=axis.col)
+ rgl.lines(c(0,0), c(0,1), c(0,0), col=axis.col)
+ rgl.lines(c(0,0),c(0,0), c(0,1), col=axis.col)
+ rgl.texts(1,0,0, xlab, adj=1, col=text.col)
+ rgl.texts(0,1,0, ylab, adj=1, col=text.col)
+ rgl.texts(0,0,1, zlab, adj=1, col=text.col)
- ## animate (credit to rgl.viewpoint() example)
- start <- proc.time()[3]
- while ((i <- 36*(proc.time()[3]-start)) < 360) {
- rgl.viewpoint(i,i/8);
- }
+ ## add grid (credit's to John Fox scatter3d)
+ xgridind <- round(seq(1, nrow(y), length=25))
+ zgridind <- round(seq(1, ncol(y), length=25))
+ rgl.surface(x[xgridind], z[zgridind], y[xgridind,zgridind],
+ color="darkgray", alpha=0.5, lit=TRUE,
+ front="lines", back="lines")
+
+ ## animate (credit to rgl.viewpoint() example)
+ start <- proc.time()[3]
+ while ((i <- 36*(proc.time()[3]-start)) < 360) {
+ rgl.viewpoint(i,i/8);
+ }
}
RQuantLib.demo.OptionSurfaces <- function() {
-
- if (require(rgl,quiet=TRUE)) {
- stopifnot(require(RQuantLib,quiet=TRUE))
und.seq <- seq(10, 200, by = 2.5)
vol.seq <- seq(0.05, 2, by = 0.025)
cat("Calculating surface ...")
EOarr <- EuropeanOptionArrays("call", underlying = und.seq, strike = 100,
- dividendYield = 0.01, riskFreeRate = 0.03,
+ dividendYield = 0.01, riskFreeRate = 0.03,
maturity = 1, volatility = vol.seq)
cat(" done.\n")
@@ -74,7 +71,10 @@
OptionSurface(EOarr$gamma, "Gamma")
OptionSurface(EOarr$vega, "Vega")
OptionSurface(EOarr$theta, "Theta")
- }
+
}
+require(rgl,quiet=TRUE)
+require(RQuantLib,quiet=TRUE)
+
RQuantLib.demo.OptionSurfaces()
Modified: pkg/RQuantLib/man/Bond.Rd
===================================================================
--- pkg/RQuantLib/man/Bond.Rd 2012-12-02 17:10:25 UTC (rev 326)
+++ pkg/RQuantLib/man/Bond.Rd 2013-02-17 21:10:52 UTC (rev 327)
@@ -62,7 +62,7 @@
s5y = 0.0443,
s10y = 0.05165,
s15y = 0.055175)
-
+tsQuotes <- list("flat" = 0.02) ## While discount curve code is buggy
times <- seq(0,10,.1)
discountCurve <- DiscountCurve(params, tsQuotes, times)
Modified: pkg/RQuantLib/man/DiscountCurve.Rd
===================================================================
--- pkg/RQuantLib/man/DiscountCurve.Rd 2012-12-02 17:10:25 UTC (rev 326)
+++ pkg/RQuantLib/man/DiscountCurve.Rd 2013-02-17 21:10:52 UTC (rev 327)
@@ -144,6 +144,7 @@
s10y = 0.05165,
s15y = 0.055175)
+tsQuotes <- list("flat" = 0.02) ## While discount curve code is buggy
times <- seq(0,10,.1)
# Loglinear interpolation of discount factors
Modified: pkg/RQuantLib/man/FixedRateBond.Rd
===================================================================
--- pkg/RQuantLib/man/FixedRateBond.Rd 2012-12-02 17:10:25 UTC (rev 326)
+++ pkg/RQuantLib/man/FixedRateBond.Rd 2013-02-17 21:10:52 UTC (rev 327)
@@ -187,6 +187,7 @@
s5y =0.0443,
s10y =0.05165,
s15y =0.055175)
+tsQuotes <- list("flat" = 0.02) ## While discount curve code is buggy
discountCurve <- DiscountCurve(params, tsQuotes)
FixedRateBond(bond, coupon.rate, discountCurve, dateparams)
Modified: pkg/RQuantLib/man/FloatingRateBond.Rd
===================================================================
--- pkg/RQuantLib/man/FloatingRateBond.Rd 2012-12-02 17:10:25 UTC (rev 326)
+++ pkg/RQuantLib/man/FloatingRateBond.Rd 2013-02-17 21:10:52 UTC (rev 327)
@@ -152,8 +152,8 @@
s5y =0.0443,
s10y =0.05165,
s15y =0.055175)
+tsQuotes <- list("flat" = 0.02) ## While discount curve code is buggy
-
## when both discount and libor curves are flat.
discountCurve.flat <- DiscountCurve(params, list(flat=0.05))
Modified: pkg/RQuantLib/man/ZeroCouponBond.Rd
===================================================================
--- pkg/RQuantLib/man/ZeroCouponBond.Rd 2012-12-02 17:10:25 UTC (rev 326)
+++ pkg/RQuantLib/man/ZeroCouponBond.Rd 2013-02-17 21:10:52 UTC (rev 327)
@@ -155,6 +155,8 @@
s5y =0.0443,
s10y =0.05165,
s15y =0.055175)
+tsQuotes <- list("flat" = 0.02) ## While discount curve code is buggy
+
discountCurve <- DiscountCurve(discountCurve.param, tsQuotes)
ZeroCouponBond(bond, discountCurve, dateparams)
Modified: pkg/RQuantLib/src/discount.cpp
===================================================================
--- pkg/RQuantLib/src/discount.cpp 2012-12-02 17:10:25 UTC (rev 326)
+++ pkg/RQuantLib/src/discount.cpp 2013-02-17 21:10:52 UTC (rev 327)
@@ -5,6 +5,7 @@
// Copyright (C) 2005 - 2007 Dominick Samperi
// Copyright (C) 2007 - 2009 Dirk Eddelbuettel
// Copyright (C) 2009 - 2011 Dirk Eddelbuettel and Khanh Nguyen
+// Copyright (C) 2012 - 2013 Dirk Eddelbuettel
//
// $Id$
//
@@ -99,7 +100,7 @@
//SEXP fwds = PROTECT(Rf_allocVector(REALSXP, ntimes));
//SEXP zero = PROTECT(Rf_allocVector(REALSXP, ntimes));
Rcpp::NumericVector disc(ntimes), fwds(ntimes), zero(ntimes);
-
+
QuantLib::Date current = settlementDate;
for (i = 0; i < ntimes; i++) {
//t = REAL(times)[i];
More information about the Rquantlib-commits
mailing list