Professional Documents
Culture Documents
Contents
iii
1
2
3
23
4
27
5 -
Black-Scholes
45
6 (Hedge Funds)
57
List of Figures
2
t
N
Chapter 1
(Linear Algebra)
1.1
(Data In Data
Out)f x
f x x2
x=7
f=3*x^2
f
x
x 2
f
xx xf x
f x x2
f x
x
f g
g
xf gx
f gx f gx
f x x2 gx x
gf
f gx f gx f x x 2
x<-7
g<-function(x){x-8}
f<-function(x){3*x^2}
f(g(x))
. .
., , ., ,
max(3.14 , 1000 , 0.5 , 999 , -9999)
1.2
n
x=10 #Scalar
y=c(3.14 , 1000 , 0.5 , 999 , -9999) #Vector
m n
x=c(1,2,3)
#vector
y=c(4,5,6)
#vector
z=c(7,8,9)
#vector
A=cbind(x,y,z)#matrix
A
T A
AT
A
AT
x=c(1,2,3)
y=c(4,5,6)
z=c(7,8,9)
#vector
#vector
#vector
A=cbind(x,y,z)#matrix
t(A)
#traspose
x
xT
T
b
b
a ||
aT ||
m m
S
x y
x=c(1,2,3)
#vector
y=c(4,5,6)
#vector
x+y
A B
x=c(1,2,3)
#vector
y=c(4,5,6)
#vector
z=c(7,8,9)
#vector
A=cbind(x,y,z)#matrix
B=cbind(x,x,x)#matrix
A+B
a A
a=10
A=cbind(x,y,z)#matrix
a+A
1.3
X X X
xy
x=c(1,2,3)
y=c(4,5,6)
x%*%y
#vector
#vector
x y | |
A x
A%*%x
A A
A%*%A
solve
. .
.
.
A A1 . .
.
. .
A=matrix(c(1,4,7,2,0,8,3,6,9),nrow=3,ncol=3,byrow = TRUE)
solve(A)
A%*%solve(A)
x y
1.4
x y z
x y z
x y z
x y z
x z
x y z
x
y
x
x 1
y
x
x 1 .
y .
.
z
A=matrix(c(1,4,7,2,0,8,3,6,9),nrow=3,ncol=3,byrow = TRUE)
f=c(11,9,5)
solve(A)%*%f
1.5
x2 xy y 2
xy
x y x
y
x
A
xT Ax
t(x)%*%A%*%x
A
AA
A
Chapter 2
Returns
2.1
r
r .
Revenue
r Deposit .
R
R r .
.
R r r r rn
R . . . .10 .
T otal Deposit R . .
R . .
. .
.
n
X
i=1
R rt,
t
t .
t .
t r
r .t
R rt e( . .
R
r=.06
deposite=10000
# Revenue
r*10000
# Gross return
R=1+r
# Total
(1+r)*10000
# Compound Interest for 10 Years
year=1:10
deposit=10000
gross_return=(1+.06)^year
total=gross_return*10000
cbind(year,gross_return,total)
#Compound Interest by Sum
log(1.790848 )
10*log(1+0.06)
exp(10*log(1+0.06))
#Continuous Return
r=0.06
dt=1
exp(r*dt)
2.2
r
., ., , ., ., .
R yr r
.R yr
R yr
x=c(1,2,3,4,5)
cumsum(x)
R
price R
rR
. .
./ .
# Price of a Townhouse
price0=300000 #US Dollars
year=1:6
r=c(.13,.05,0,-.01,-.025,.19)
R_yr=1+r
log_R_yr=log(R_yr)
sum=cumsum(log_R_yr)
R=exp(sum)
price=R*price0
cbind(year,r,R_yr,log_R_yr,sum,R,price)
2.3
LrrL
rL L r
L r .rL
rL L r . .
rL .
#Leverage
0.20*300000
0.80*300000
L=1/0.2 #ratio
r=0.1
#market change
300000*r
300000*r/60000
r_L=L*r #return on leverage
2.4
y
z
x ., ., , ., ., .
y ., ., ., ., ., .
z ., ., ., ., ., .
xy
A
A
#return estimations
x=c(.13,.05,0,-.01,-.025,.19)
y=c(.06,.06,.06,.06,.06,.06)
z=c(.09,.1,.2,-.2,-.05,.01)
mean(x)
mean(y)
mean(z)
var(x)
var(y)
var(z)
cov(cbind(x,y,z))
2.5
dif f
pi+1 pi
ri {pi+1 pi }
Garch
R
library(fGarch)
library(tseries)
eurusd <- get.hist.quote(instrument = "EUR/USD", provider =
"oanda",end="2012-02-01",
start = "2011-02-01",)
plot(eurusd)
eurusd=as.numeric(eurusd)
r=exp(diff(log(eurusd)))-1
qqnorm(r,main="Return Q-Q Plot")
plot(density(r))
acf(r)
model = garchFit(~arma(1,0)+garch(1,1),cond.dist="std",data=r,
prediction.interval=T)
qqnorm(model@residuals,main="Residual Q-Q Plot")
predict(model,n.ahead=20,plot=TRUE) # T 95% interval
Chapter 3
(Bonds)
3.1
(Zero)
Coupon
.
.10
10000/1.06^10
.
.20
10000/1.03^20
.
{. }
10000/exp(0.06*10)
.
.9
10000/(1.07)^9
10
X
t=1
t=1:10
a=600/1.07^t
b=10000/(1.07)^10
sum(a,b)
.
t
.
.10
T
X
t=1
C
P AR
t
r
rT
C
P AR
{ rT }
r
rT
C
C
{P AR } rT
r
r
3.2
(Yield to Maturity)
{
} r10
r
r
r .
r=.0592386
600/r+(10000-600/r)*(1+r)^10-9900
Xy
yT
3.3
(Term Structure)
Pt
yt
P AR 1/t
Pt
1/1
} .
1/2
} .
y2 {
1/3
y3 {
} .
y1 {
t=1:3
PAR=10000
P=c(9500,8100,7300)
(PAR/P)^(1/t)-1
Chapter 4
(Portfolio)
r
rEr
Er
4.1
(Two Assets)
Er1 ., Er2
.1 ., 2 .
Er
.
covar 1 2
variance p2 12 p2 22 p pcovar
p
p
p
variance
Er pEr1 pEr2
p p
p
R
rho =.19
covar =rho*sigma1*sigma2
p =c(0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1)# percent of Asset1
##Portfolio return as function of percent of Asset1##
variance=p^2*sigma1^2+(1-p)^2*sigma2^2+2*p*(1-p)*covar
sigma=sqrt(variance)
portfolio_return=r1*p+r2*(1-p)
cbind(p,sigma,return)
plot(sigma,portfolio_return,type=o)
4.2
Er1
Er2
Er
ErN
2
2
2
2
11 12
1N
2
2
2
21 22 2N
2
2
N
1 N 2
2
N
N
S=matrix(c( .10, .01,.03, .05,
.01, .30,.06,-.04,
.03, .06,.40, .02,
.05,-.04,.02, .50),nrow=4,ncol=4)
x1 , x2 , xN
x1
N
x2 X
x ,
xi
i=1
xN
x1 ., x2 ., x3 ., x4 .
x=c(0.2,0.1,0.6,0.1)
sum(x)
Erx
Er1
N
Er2 X
Erx xT Er x1 x2 ... xN
xi Eri
i=1
ErN
x=c(0.2,0.1,0.6,0.1)
Er=c(0.1,0.2,0.15,0.01)
x%*%Er
2
2
11 12
1N
x1
N N
2
2
2
21 22 2N x2 X X
x2 xT Sx x1 x2 xN
xi xj ij
2
2
N
1 N 2
2
N
N
i=1 j=1
xN
x=c(0.2,0.1,0.6,0.1)
S=matrix(c( .10, .01,.03, .05,
.01, .30,.06,-.04,
.03, .06,.40, .02,
.05,-.04,.02, .50),nrow=4,ncol=4)
t(x)%*%S%*%x
x%*%S%*%x
4.3
(N Assets)
Er
S 1 {Er c}
x P 1
S {Er c}
Er ., ., ., .., ., ., .,
.
.
.
.
.
.
. .
S
.
.
. .
. . .
.
Er=c(0.1,0.2,0.15,0.01)
S=matrix(c( .10, .01,.03, .05,
.01, .30,.06,-.04,
.03, .06,.40, .02,
.05,-.04,.02, .50),nrow=4,ncol=4)
c=0.00000001
a=solve(S)%*%(Er-c)
b=sum(a)
x1=a/b
Er_x1=t(x1)%*%Er
sigma1=sqrt(t(x1)%*%S%*%x1)
c=0.021
a=solve(S)%*%(Er-c)
b=sum(a)
x2=a/b
Er_x2=t(x2)%*%Er
sigma2=sqrt(t(x2)%*%S%*%x2)
c=.45
a=solve(S)%*%(Er-c)
b=sum(a)
x3=a/b
Er_x3=t(x3)%*%Er
sigma3=sqrt(t(x3)%*%S%*%x3)
c=.8
a=solve(S)%*%(Er-c)
b=sum(a)
x4=a/b
Er_x4=t(x4)%*%Er
sigma4=sqrt(t(x4)%*%S%*%x4)
c=4
a=solve(S)%*%(Er-c)
b=sum(a)
x5=a/b
Er_x5=t(x5)%*%Er
sigma5=sqrt(t(x5)%*%S%*%x5)
sigma=c(sigma3,sigma4,sigma5,sigma1,sigma2)
return=c(Er_x3,Er_x4,Er_x5,Er_x1,Er_x2)
plot(sigma,return,type=o)
cbind(sigma,return)
x1 y1
...
x y
xN yN
x5 x3 , x4
.
.
.
.
.
.
x3
x4 . x5 .
.
.
.
.
x3=c(0.63193682,0.15591812,0.08067196,0.13147311)
x4=c(0.61876576,0.18214624,0.08760799,0.11148000)
x5=c(0.60844141,0.20270559,0.09304492,0.09580808)
(x3-x4)/(x5-x4)
lambda=-1.2757275
lambda*x3+(1-lambda)*x4
4.4
(CAPM)
rM , M rf
rx , x
rM rf
rx rf
x
M
rM > rf x rx
x
SP
rf .
rM ., M .rM rf /M .
./. .., .x rx
rx1 rf .x1 . . . .
rx2 rf .x2 . . . .
rx1 , rx2 x
x .
x .x /M
x /M
.
r_f=0.06
r_M=0.2
sigma_M=0.4
slope=(r_M-r_f)/sigma_M
r_x1=r_f+slope*0.2
r_x2=r_f+slope*0.3
return=c(r_x1,r_x2)
sigma=c(0.2,0.3)
plot(sigma,return,type=o,ylim=c(0.06,.2),main="CML")
0.2/sigma_M
1-0.2/sigma_M
y
yx
Erx , Ery rf
Erx rf x Ery rf
where
Covx, y
x
, and
y2
Covx, y xT Sy
x
x
x
ySP yx
rf .yEry .
y2 .xx, y
Covx, y .x
x ./. .
Erx . .. . .
CML R
r_f=0.04
r_y=0.12
cov=0.001
var=0.0008
beta=cov/var
r_f+beta*(r_y-r_f)
50*(1+0.14)
SP
ri { Pi+1 Pi }
Pi i
sp500=exp(diff(as.numeric(log(sp500))))-1
>
CAPM
fit<-lm(ms ~ sp500)
summary(fit)
4.5
Black-Litterman
1991
x |., .|
rx .
rf .
. .
S
. .
. .
T
V arx x Sx |., .|
. .
.
. .
rx rf
. .
.
V arx
.
.
. . .
.
r Sx rf .
.
. . .
Blac-Litterman Model, R
#Black-Litterman Model
S=matrix(c( .1100, .0044,
S 1 {Er c}
S 1 {Er c}
x S 1 {Er c}
S
Sx Er c
c
Sx c Er
rf c
Er Sx rf
rx rf
x2
Chapter 5
-
Black-Scholes
5.1
S0
C .
r ., .
nn
ts.plot
S200
S200 S200 >
S200 S200 <
S200 X,
{rt}
{. /} .
/. .
0
R
ST St e(r0.5
5.2
2 )(T t)+
T tZT
S0 St
rrf
rx
5.3
S0
C > S0 X,
S0
C > S0 P V X,
P V X {rt}X
P V
St
St P V X, > St X,
X t .
S
r .S X
S P V X,
. . . .
P S0 C P V X
P S0
P V XC P V X
C1 X1 C2
X2 C3 X3 X < X < XX1 X2
X2 X3 X3 X2 X2 X1 X2 X1 X3 /
C1 C3
C2 <
X1
X2 X3 /C1 C3 C2
<
X=seq(from=0,to=100,by=.1)
C=((X-50)^2+(X-50)+2000)/100
plot(X,C,type=o)
5.4
Call SN d1 Xert N d2
P ut C S Xert
P ut Xe
rt
N d2 SN d1
S
X
r . 2 t
d2 d t
d1
t
d1 , d2 d1 , d2 N N d1
N d2 N d1 N d2 N
pnorm(d1)
N d1 , N d2 , N d1 , N d2
S P C P V X
theref ore
P C P V X S
S , X , r ., t .,
.
/ . . .2 .
.
. .
d2 . . . .
d1
C N . . . N . .
P . . . .
P . . N . N . .
-
R
S, X, r, t, C
d1 , d2
Error
Error N d1 X/S {rt}N d2 C/S
Error
S , X , r ., t ., C .
Error
-
R
#Black-Scholes Implied volatility Calculation
S =30
#Current stock price
X =25
#Exercise price
r =.06 #Risk-free of interest
dt =.8 #Time to maturity of option(in years)
C =6.19#Call Price
sigma =seq(0,.2,.02)
d1 =(log(S/X)+(r+0.5*sigma^2)*dt)/(sigma*sqrt(dt))
d2 =d1-sigma*sqrt(dt)
Error = pnorm(d1) - X/S*exp(-r*dt)*pnorm(d2) - C/S
cbind(sigma,Error)
plot(sigma,Error,type=o,ylim=c(-.0025,.004))
abline(h=0)
Chapter 6
(Hedge Funds)
6.1
(Insured Portfolio)
d1 , d2
N d1 , N d2 p
S N d1
S put
. . . .
.
. . . .
.
. . .
p =omega(S,X,dt,r,sigma)
stock.R =c(exp(diff(log(S))),1)
bond.R =c(rep(1+r/52,52),1)
R =p*stock.R+(1-p)*bond.R
cum.R =exp(cumsum(log(R)))
value =deposit*cum.R
cbind(week,S,p,1-p,stock.R,bond.R,R,cum.R,value)
par(mar = c(5, 4, 4, 4) + 0.3) # Leave space for z axis
plot(week, S,type="o",col="red") # first plot stock price
par(new = TRUE)
plot(week, value, type = "l", axes = FALSE, bty = "n", xlab =
"", ylab = "")
axis(side=4, at = pretty(range(value)))
./. .
.
S , X , r ., ., t
./ .
.
6.2
(Delta hedging)
Self Financing
Portfolio
N S
V NS C
N d1
N d1
S
r . .X
t .N d1
S/X r . 2 t
t
/ . . .2 .
. .
.
d1
N d1 pnorm. .
14
tN d1
C .
.
t
/N d1 .
S .
. .. .
t /
Cost ert e0.041/52 .
. .
d1 <-(log(S/X)+(r+0.5*sigma^2)*dt)/(sigma*sqrt(dt))
Nd1 <-pnorm(d1)
return(Nd1)
}
S=c( 100,98.79,102.52,103.41,102.82,102.25,100.67,
106.05,104.17,106.08,105.86,110.4,112.46,108.47)
X=105
week=0:13
dt=1/4-week/52
r=0.04
sigma=.23
N=delta(S,X,dt,r,sigma)*10000
stock.cost=N*S
stock.change=c(0,diff(N))*S
R=c(1,rep(exp(r/52),13))
cost=stock.cost
intrest.cost=rep(0,14)
for(i in 2:14){
cost[i]=cost[i-1]*R[i]+stock.change[i]
}
#interest.cost=cost*(exp(r/52)-1)
#interest.cost=c(0,interest.cost[-14])
cbind(week,S,N,stock.cost,stock.change,cost)
S .
.e0.0413/52
.e0.0413/52 . .