Contextual I (Price per Share)

Stock of MAPI.JK

library(readxl)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
mapi = read_excel("MAPI.JK.xlsx")
mapi = mapi %>%
  mutate(growth= ((mapi$Dividends- lag(mapi$Dividends))/lag(mapi$Dividends)))
growth.avg = mean(mapi$growth[2:nrow(mapi)])
growth.avg
## [1] 0.2357713
jr = 0.24
gr = growth.avg
d0 = mapi$Dividends[14]

Dividend Yield

yield = function(j, g){
  yield = (jr - gr)/(1 + gr)
  return(yield)
}
dividend.yield = yield(jr, gr)
dividend.yield
## [1] 0.003421913

Share Price

share = function(yield, d){
  share = d0/yield*1/100
  return(share)
}
share(dividend.yield, d0)
## [1] 23.37874

Contextual II (Option Price)

S = 100
K = 95
v = 0.50
t = 3
r = 0.025

Calculating Components Required

d1

d1 = function(S, K, v, t, r){
  d1 = 1/(v*sqrt(t/12))*(log(S/K) + (r + (v^2/2))*(t/12))
  return(d1)
}
d1(S, K, v, t, r)
## [1] 0.3551732

d2

d_1 = d1(S, K, v, t, r)
d2 = function(d_1, v, t){
  d2 = d_1 - v*sqrt(t/12)
  return(d2)
}
d2(d_1, v, t)
## [1] 0.1051732

N(d)

N_d1 = pnorm(d_1)
N_d1
## [1] 0.6387701
N_d2 = pnorm(d2(d_1, v, t))
N_d2
## [1] 0.5418808

N(-d)

N_d1.1 = pnorm(-d_1)
N_d1.1
## [1] 0.3612299
N_d2.2 = pnorm(-d2(d_1, v, t))
N_d2.2
## [1] 0.4581192

Calculation of Option Price

Call Option Price

C = function(S, K, r, t, N_d1, N_d2){
  C= N_d1*S - N_d2*(K*exp(-r*(t/12)))
  return(C)
}
C(S, K, r, t, N_d1, N_d2)
## [1] 12.71907

Put Option Price

P = function(S, K, r, t, N_d1.1, N_d2.2){
  P = N_d2.2*(K*exp(-r*(t/12))) - N_d1.1*S
  return(P)
}
P(S, K, r, t, N_d1.1, N_d2.2)
## [1] 7.127171