全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 量化投资
7344 13
2015-03-20

源自:https://bbs.pinggu.org/thread-3622067-1-1.html




基础准备1:
##  strptime的一些实例:用于时间字符串的转换


dates <- c("02/27/92", "02/27/92", "01/14/92", "02/28/92", "02/01/92")
times <- c("23:03:20", "22:29:56", "01:03:30", "18:21:03", "16:56:26")
x <- paste(dates, times)
strptime(x, "%m/%d/%y %H:%M:%S")


#  The answer
# [1] "1992-02-27 23:03:20" "1992-02-27 22:29:56"
# [3] "1992-01-14 01:03:30" "1992-02-28 18:21:03"
# [5] "1992-02-01 16:56:26"


strptime(c("2006-01-08 10:07:52", "2006-08-07 19:33:02"),"%Y-%m-%d %H:%M:%S")
#  以上得到了相同的结果
# [1] "2006-01-08 10:07:52" "2006-08-07 19:33:02"


strptime(c("2006:01:08 10:07:52", "2006:08:07 19:33:02"),"%Y:%m:%d %H:%M:%S")
# [1] "2006-01-08 10:07:52" "2006-08-07 19:33:02"


strptime(c("06:01:08 10:07:52", "06:08:07 19:33:02"),"%y:%m:%d %H:%M:%S")
#  [1] "2006-01-08 10:07:52" "2006-08-07 19:33:02"


strptime(c("06?01?08 10:07:52", "98?08?07 19:33:02"),"%y?%m?%d %H:%M:%S")
#  [1] "2006-01-08 10:07:52" "1998-08-07 19:33:02"

##################################################################
##################################################################
基础准备2


#  as.POSIXlt用于得到区域的日期时间或者把时间撮数据转成POSIXlt类别
Sys.time()
#  [1] "2015-03-20 12:57:38 CST"


as.POSIXlt(Sys.time(), "EST" )
#  "2015-03-19 23:57:59 EST"


as.POSIXlt(Sys.time(), "GMT")
#  [1] "2015-03-20 04:58:08 GMT"


as.POSIXlt(Sys.time(), "America/New_York")
#  [1] "2015-03-20 01:00:04 EDT"


z <- 1472562988
as.POSIXct(z, origin = "1960-01-01")   
#  [1] "2006-08-30 21:16:28 CST"


as.POSIXlt(strptime(c("06?01?08 10:07:52", "98?08?07 19:33:02"),"%y?%m?%d %H:%M:%S"))
#  [1] "2006-01-08 10:07:52" "1998-08-07 19:33:02"
##################################################################
##################################################################



实例


数据:

Empirical csv Data.zip
大小:(7.57 KB)

 马上下载

本附件包括:

  • HS300_240minuete.csv


本帖隐藏的内容




复制代码

##################################################################
##################################################################
#  代码实例
rm(list=ls())

setwd("D:/MyDriversRoad/R_files12")

#  设定我自己的R语言工作目录
#  下面有数据
Data<-read.csv(file='HS300_240minuete.csv', header=TRUE, col.names=c("Date","Tick"))

#  查看数据
View(Data)

Data$Date<-as.POSIXlt(strptime(Data$Date,"%Y/%m/%d %H:%M"))
#  注意举例中的数据没有分钟(Seconds)

#  获取对数收益率(Log Return)
#  LogReturn(t)=log(Stock(t)/Stock(t-1))=log(Stock(t))-log(Stock(t-1))

logtick<-diff(log(Data$Tick))

#  获取标准化的对数收益率(对数据进行标准化)
logtick <- (logtick-mean(logtick))/sd(logtick)

#  seq制造等差数列:以floor(min(logtick))为初值,以ceiling(max(logtick))为终值,0.01为间隔
x <- seq(floor(min(logtick)), ceiling(max(logtick)), by=0.01)

#  画图

par(family='serif')

#  density(logtick)得到对数收益率的核密度,log="y"意味着y轴进行对数化

plot(density(logtick), log="y", xlab="", ylab="", axes=FALSE, main="Log Scale")

#  dnorm(x)求得的是x正态分布的密度

lines(x,dnorm(x), lty=2)

#  一个是实际的收益密度,一个是理论的收益密度,lty代表线型
legend("topleft", legend=c("Empirical","Theoretical"), lty=c(1,2))

#  此目的在于比较股票的对数收益率是否能够拟合正态分布
#  或者说股票的对数收益率是否服从正态分布



360截图20150320132505282.jpg


# 此目的在于比较股票的对数收益率是否能够拟合正态分布
# 或者说股票的对数收益率是否服从正态分布






二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2015-3-20 13:33:28
OK!!!!!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-20 13:49:54
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-20 18:19:27
谢谢分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-21 08:42:55
hhhhhhhhhhhhhhhhhhhhhhhhhhh
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-3-21 09:09:15
kankan
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群