Построение функции, в том числе для циклов в R - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь создать алгоритм установки цены для европейских опционов, используя R. Я создал функцию, которая может выводить цену опциона в зависимости от того, на сколько шагов мы разбили временной интервал опциона. Моя проблема в том, что мне нужно построить график цены опциона, поскольку количество шагов увеличивается, и моя функция выводит только одну цену. Моя функция построена следующим образом:

strike=110
startprice = 100
alpha = 0.055
sigma = 0.2
R=1.05
r=0.05
T = 3

CallPrice <- function(n){
  dt = T/n
  u = exp(alpha*dt+sigma*sqrt(dt))
  d = exp(alpha*dt-sigma*sqrt(dt))
  q=(R-d)/(u-d)
  Call = matrix(0,nrow=n+1, ncol = n+1)
  Call[,n+1] <- pmax(startprice*(u^(0:n))*(d^(n:0))-strike,0)
  CallVal <- matrix(0,nrow = n,ncol = 1)


  for (k in n:1){
      for (i in k:1) {
        for (j in 1:i){
          Call[j,i] <- (q*Call[j+1,i+1]+(1-q)*Call[j,i+1])/R
        }
        CallVal[k,1] <- Call[1,1]
      }

  }
  return(CallVal)
}

CallPrice(n)  

Я ожидал, что я могу просто установить n на интервал при построении графика, и функция будет повторяться, но я получаю ошибку I 0: n: числовое выражение имеет 10 элементы: только первый использованный. Так что я не понимаю, как я смогу построить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...