私はしばらくの間、簡単なことのためにRを使ってきました。さて、私は資産のBlack-Scholes値を計算する関数を作成しようとしています。これは、金融分野ではかなり標準的なことです。私は構文が正しいと確信していますが、私は奇妙な結果を得ています。ここで私の最初のユーザー定義関数を作成しようとしています
は私のパラメータです:ここでは
myfunction(1000000000,500000000,.04,.2,5)
は私の関数である。ここでは
myfunction <- function(Firm_Value, Face_Value, Rate, Volatility_Value, Time)
{
s <- Firm_Value
X <- Face_Value
r <- Rate
v <- Volatility_Value
T <- Time
t1 <- log(s/X) + (r + v^2/2) * T
t2 <- v * sqrt(T)
d1 <- t1/t2
t3 <- log(s/X) + (r - v^2/2) * T
d2 <- t3/t2
ta <- s * qnorm(d1)
tb <- X * exp(- r * T) * qnorm(d2)
Equityvalue <- ta - tb
}
は私の結果である:
Warning messages:
1: In qnorm(d1) : NaNs produced
2: In qnorm(d2) : NaNs produced
結果は、実際にする必要があります:
$593,035,186.31
私はここで間違っていますか?
デバッグに役立つ –
ドキュメントから:qnorm(p、平均= 0、sd = 1、lower.tail = TRUE、log.p = FALSE) pは確率のベクトルです。 – stats0007