原油とドル円と日経225

xts , gdata , quantmod パッケージ

コード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
library(xts)
library(gdata)
library(quantmod)
#wtiのデータダウンロード
d1<-read.xls("http://www.eia.gov/dnav/pet/hist_xls/RCLC1d.xls",sheet=2,skip=3,header=F)
wti<-d1
#ここで日付けの書式を確認
head(wti)
names(wti)<-c("date","wti")
#
Sys.setlocale("LC_TIME", "C")
#windowsとlinuxとでは日付けの書式が微妙に違うことあり
#以下はlinuxの場合
#wti$date<-strptime(wti$date,format ="%b %d, %Y")
#以下はwindowsの場合
wti$date<-strptime(wti$date,format ="%b %d %Y")
head(wti)
#brent のデータダウンロード
d1<-read.xls("http://www.eia.gov/dnav/pet/hist_xls/RBRTEd.xls",sheet=2,skip=3,header=F)
brent<-d1
head(brent)
names(brent)<-c("date","brent")
Sys.setlocale("LC_TIME", "C")
#以下はlinuxの場合
#brent$date<-strptime(brent$date,format ="%b %d, %Y")
#以下はwindowsの場合
brent$date<-strptime(brent$date,format ="%b %d %Y")
head(brent)
#rm(d1)
#OPECバスケット価格のデータダウンロード
doc <- readLines("http://www.opec.org/basket/basketDayArchives.xml")
doc <- subset(doc, grepl("BasketList data=",doc))
d<-gsub("\"","",gsub("<BasketList data=","",gsub("val=","",gsub(" />","",doc))))
opec<-data.frame(date=substring(d,1,10),opec=as.numeric(substring(d,11)))
#mergeするall=Tをつけること
oil <- merge(merge(wti,brent, all=T),opec,all=T)
#
#みずほ銀行 ヒストリカルデータ(為替)
#2002-04-01
d<-read.csv("http://www.mizuhobank.co.jp/rate/market/csv/quote.csv",skip=2)
#
#Nikkei225
getSymbols('^N225',from ="2002-04-01")
attributes(N225)$tzone
#[1] "UTC"
#原油(oil)ドル円(d)をN225とマージするときこのままだと9時間ずれる UTC to JST(UTC+9)
# xtsオブジェクトにするとき +9*60*60 してずれをなくす
d.xts<-as.xts(zoo(d[,2]), as.POSIXct(d[,1])+9*60*60)
names(d.xts)<-"USD"
#
oil.xts <- as.xts(zoo(oil[,-1]), as.POSIXct(oil[,1])+9*60*60)
#
#原油のデータとUSD/JPYのデータをマージする
#data.xts<-na.locf(merge(oil.xts["2002-04-01::",],d.xts["2002-04-01::",],N225["2002-04-01::",4]))
data.xts<-merge(oil.xts["2002-04-01::",],d.xts["2002-04-01::",],N225["2002-04-01::",4])
#
#png("data201601.png",width=1000,height=800)
par(mfcol=c(3,2),mar = c(3, 5, 2, 2))
plot.zoo(data.xts[,c("wti","brent","opec")],col = c("blue","red","green"), lwd=0.8,las=1,plot.type = "single" , xlab="Year", ylab="USD",main="Crude Oil Prices(2002-04-01~)")
legend("topleft", colnames(data.xts[,1:3]), lty = 1, col = c("blue", "red","green"))
abline(h=30,lty=3,lwd=0.5,col="red")
plot.zoo(data.xts[,"N225.Close"], xlab="Year", ylab="YEN",main="Nikkei225(2002-04-01~)")
plot.zoo(data.xts[,"USD"], xlab="Year", ylab="YEN",las=1,main="USD/JPY(2002-04-01~)")
plot.zoo(data.xts["2012::","wti"]*data.xts["2012::","USD"], xlab="Year", ylab="YEN",main="WTI原油価格(円換算)2012~")
abline(h=4000,lty=3,lwd=0.5,col="red")
plot.zoo(data.xts["2012::","N225.Close"], xlab="Year", ylab="YEN",main="Nikkei225 2012~")
abline(h=14000,lty=3,lwd=0.5,col="red")
plot.zoo(data.xts["2012::","N225.Close"]/data.xts["2012::","USD"], xlab="Year", ylab="USD",main="Nikkei225(USドル換算)2012~")
abline(h=140,lty=3,lwd=0.5,col="red")
par(mfrow=c(1,1))
#dev.off()