On Mar 13, 2012, at 4:24 PM, Anna Dunietz wrote:

Hello all!

I would like to create a 3d plot, with the option price explained by the underlying price and time. Unfortunately, I can't quite get it to work. I would very much appreciate your help!


The usual problem with lattice calls that you "can't quite get ... to work" is failure to read the R-FAQ ( or the help(lattice) page) where it is explained that you need to print() the function result. At the moment my R-machine is tied up with a long process but try wrapping print() around that wireframe call.

--
David.

Thanks,
Anna

# Black-Scholes Option Graph
library(lattice)


blackscholes <- function(s, k, r=.1, t=5, sigma=.9,call=TRUE) {
   #calculate call/put option
   d1 <- (log(s/k)+(r+sigma^2/2)*t)/(sigma*sqrt(t))
   d2 <- d1 - sigma * sqrt(t)
ifelse(call==TRUE,s*pnorm(d1) - k*exp(-r*t)*pnorm(d2),k*exp(-r*t) * pnorm(-d2) - s*pnorm(-d1))
   }

plotbs <- function(price){
   #create
   s<-seq(0,price,len=price/2)
   k<-s

   t<-0:5
   sigma<-seq(0,0.9,by=.1)

   #expand information
   OptionPrice<-matrix(nrow=length(s),ncol=length(k))
   for(i in 1:length(s)) OptionPrice[i,]<-mapply(blackscholes,s[i],k)
   grid <- expand.grid(list(Time=t, UnderlyingPrice=s))

   #plot
wireframe(OptionPrice~Time*UnderlyingPrice,data=grid,main="3D Option", drape=T,col.regions=heat.colors(100),scales = list(arrows=FALSE),)
   }

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

David Winsemius, MD
West Hartford, CT

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to