Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
braverock
GitHub Repository: braverock/portfolioanalytics
Path: blob/master/sandbox/paper_analysis/data/preparedata.R
1433 views
1
2
3
4
setwd("c:/Documents and Settings/Administrator/Desktop/risk budget programs")
5
6
library(zoo);
7
8
# Load the data
9
10
start = as.Date("1991-01-01") ; end = as.Date("2009-12-31") ;
11
12
# Risky assets:
13
14
data = as.data.frame(read.csv( file = "data/MSCI_Europe.csv",skip=6,sep=","))
15
colnames(data) = c("Date","Europe")
16
#data$Europe[(as.character(data$Europe)=="#NA")]=NA;
17
MSCI_Europe = zoo( data$Europe , order.by = as.Date( as.character(data$Date) , format = "%m/%d/%Y" ) )
18
MSCI_Europe = window( MSCI_Europe , start = start , end = end );
19
20
data = as.data.frame(read.csv( file = "data/MSCI_Japan.csv",skip=6,sep=","))
21
colnames(data) = c("Date","Japan")
22
#data$Japan[(as.character(data$Japan)=="#NA")]=NA;
23
MSCI_Japan = zoo( data$Japan , order.by = as.Date( as.character(data$Date) , format = "%m/%d/%Y" ) )
24
MSCI_Japan = window( MSCI_Japan , start = start , end = end );
25
26
data = as.data.frame(read.csv( file = "data/MSCI_US.csv",skip=6,sep=","))
27
colnames(data) = c("Date","US")
28
#data$US[(as.character(data$US)=="#NA")]=NA;
29
MSCI_US = zoo( data$US , order.by = as.Date( as.character(data$Date) , format = "%m/%d/%Y" ) )
30
MSCI_US = window( MSCI_US , start = start , end = end );
31
32
#data = as.data.frame(read.csv( file = "data/barclaysglobalbond.csv",skip=6,sep=","))
33
#data = as.data.frame(read.csv( file = "data/usgovbond.csv",skip=6,sep=","))
34
data = as.data.frame(read.csv( file = "data/MLDOMMASTER.csv",skip=6,sep=","))
35
colnames(data) = c("Date","bond")
36
#data$bond[(as.character(data$bond)=="#NA")] = NA;
37
bond = zoo( as.numeric(data$bond) , order.by = as.Date( as.character(data$Date) , format = "%m/%d/%Y" ) )
38
bond = window( bond , start = start , end = end );
39
40
data = as.data.frame(read.csv( file = "data/SPGSCI.csv",skip=6,sep=","))
41
colnames(data) = c("Date","SPGSCI")
42
#data$SPGSCI[(as.character(data$SPGSCI)=="#NA")]=NA;
43
SPGSCI = zoo( data$SPGSCI , order.by = as.Date( as.character(data$Date) , format = "%m/%d/%Y" ) )
44
SPGSCI = window( SPGSCI , start = start , end = end );
45
46
data = as.data.frame(read.csv( file = "data/SP500.csv",skip=6,sep=","))
47
colnames(data) = c("Date","SP500")
48
#data$SP500[(as.character(data$SP500)=="#NA")]=NA;
49
SP500 = zoo( data$SP500 , order.by = as.Date( as.character(data$Date) , format = "%m/%d/%Y" ) )
50
SP500 = window( SP500 , start = start , end = end );
51
52
data = as.data.frame(read.csv( file = "data/MSCI_EAFEbis.csv",skip=0,sep=","))
53
colnames(data) = c("Date","EAFE")
54
MSCI_EAFEbis = zoo( data$EAFE , order.by = as.Date( as.character(data$Date) , format = "%Y%m%d" ) )
55
MSCI_EAFEbis = window( MSCI_EAFEbis , start = start , end = end );
56
57
# Data Brian
58
59
data = as.data.frame(read.csv( file = "data/SPGSCIbis.csv",skip=6,sep=","))
60
colnames(data) = c("Date","SPGSCI")
61
SPGSCIbis = zoo( data$SPGSCI , order.by = as.Date( as.character(data$Date) , format = "%Y%m%d" ) )
62
SPGSCIbis = window( SPGSCIbis , start = start , end = end );
63
64
plot(SPGSCIbis)
65
66
# Middle interest rate on secondary market 3-month treasury bill:
67
68
data = as.data.frame(read.csv( file = "data/TBill.csv",skip=6,sep=","))
69
colnames(data) = c("Date","TBill")
70
#data$TBill[(as.character(data$TBill)=="#NA")]=NA;
71
# The rates listed on Treasury bills are annualized discount rates, assuming a year has 360 days.
72
# T-bill discount rate = [face value-bill price]*(360/number of days until maturity)
73
# A three month T-Bill has a maturity of 91 days
74
# The bond equivalent yield associated to the T-Bill is
75
# T-bill yield = [ (face value - bill price)/bill price ]x(365/number of days until maturity)
76
# The annualized yield is then (take face value of 1000):
77
# bill price = 100 - (91/360)*rate
78
# yield = {[(91/360)*rate]/[100 - (91/360)*rate]}*(365/91)
79
# See e.g. Mizrach, Bruce and Neely, Christopher J.,The Microstructure of the U.S. Treasury Market(April 2008). FRB St. Louis Working Paper No. 2007-052B. Available at SSRN: http://ssrn.com/abstract=1070226
80
81
# Bond-equivalent annualized yield
82
data$TBill = (91/360)*(365/91)*data$TBill/(100-data$TBill*(91/360) ) ;
83
TBill = zoo( data$TBill , order.by = as.Date( as.character(data$Date) , format = "%m/%d/%Y" ) )
84
TBill = window( TBill , start = start , end = end );
85
86
# International equity + bond portfolio
87
88
data = merge( bond , MSCI_Europe , MSCI_Japan , MSCI_US , TBill)
89
colnames(data) = c( "Bond" , "Europe", "Japan" , "US" , "TBill")
90
data = na.locf(data);
91
head(data); plot(data);
92
write.zoo( data , file="data/intequitybonds/data.txt" , row.names=F )
93
save( data , file = paste( getwd(),"/data/intequitybonds/intequitybonds.Rdata" , sep="") )
94
95
# Mixed portfolio
96
97
data = merge.zoo( bond , SP500 , MSCI_EAFEbis , SPGSCIbis , TBill)
98
colnames(data) = c( "Bond" , "SP500", "EAFE" , "SPGSCI" , "TBill")
99
data = na.locf(data);
100
head(data); plot(data);
101
write.zoo( data , file="data/equitybondscommodity/data.txt" , row.names=F )
102
save( data , file = paste( getwd(),"/data/equitybondscommodity/equitybondscommodity.Rdata" , sep="") )
103
104
105
106