Assuming t=1, you forgot to discount
updating the function
fun <- function(x, K=100)
{
(gbm(x) - 100) * dnorm(x) * exp(-0.05)
}
should give you the result you want.
Nikos
On 4/13/2013 6:00 AM, r-sig-finance-request at r-project.org wrote:
Today's Topics:
1. euro call by integration (Dominykas Grigonis)
----------------------------------------------------------------------
Message: 1
Date: Sat, 13 Apr 2013 07:42:23 +0100
From: Dominykas Grigonis <dominykasgrigonis at gmail.com>
To: r-sig-finance <r-sig-finance at r-project.org>
Subject: [R-SIG-Finance] euro call by integration
Message-ID: <31AE529DE9C041BEB5DEEC9B6837B355 at gmail.com>
Content-Type: text/plain
Valuing european call option by taking expectation and integrating:
gmb <- function(x,s0=100,r=0.05,vol=0.1){
s0*exp( (r - vol^2/2) + vol * x)}
fun <- function(x, K=100){
(gbm(x) - 100) * dnorm(x)}
min = -(log(1) + (0.05-0.1^2/2)) / 0.1
integrate(fun,min,Inf)
could someone tell me what am I doing wrong? I do not even know if this is R related question or not...
returns 7.153855, while actual risk neutral price is 6.804958
Thank you in advance.
Kind regards,--
Dominykas Grigonis
[[alternative HTML version deleted]]
------------------------------
_______________________________________________ R-SIG-Finance mailing list R-SIG-Finance at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-finance End of R-SIG-Finance Digest, Vol 107, Issue 11 **********************************************