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