楼主: fantuanxiaot
6662 13

[源码分享] [问题答疑]基于R语言的对数收益率正态分布评价 [推广有奖]

Ψ▄┳一大卫卍卐席尔瓦

大师

8%

还不是VIP/贵宾

-

威望
7
论坛币
-234475 个
通用积分
124.1424
学术水平
3783 点
热心指数
3819 点
信用等级
3454 点
经验
150207 点
帖子
7546
精华
32
在线时间
1327 小时
注册时间
2013-2-3
最后登录
2022-2-24

初级学术勋章 初级热心勋章 中级热心勋章 中级学术勋章 初级信用勋章 中级信用勋章 高级热心勋章 高级学术勋章 特级学术勋章 特级热心勋章 高级信用勋章 特级信用勋章

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

源自: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


本帖隐藏的内容




  1. #  代码实例
  2. rm(list=ls())

  3. setwd("D:/MyDriversRoad/R_files12")

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

  7. #  查看数据
  8. View(Data)

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

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

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

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

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

  18. #  画图

  19. par(family='serif')

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

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

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

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

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

##################################################################
##################################################################
#  代码实例
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


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






二维码

扫码加我 拉你入群

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

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

关键词:对数收益率 正态分布 R语言 收益率 thread 正态分布 收益率

已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
zbin7451f + 100 + 5 + 5 + 5 精彩帖子

总评分: 经验 + 100  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

本帖被以下文库推荐

沙发
fantuanxiaot 发表于 2015-3-20 13:33:28 |只看作者 |坛友微信交流群
OK!!!!!!!

使用道具

藤椅
mike68097 发表于 2015-3-20 13:49:54 |只看作者 |坛友微信交流群

使用道具

板凳
kzpan 发表于 2015-3-20 18:19:27 |只看作者 |坛友微信交流群
谢谢分享

使用道具

报纸
nieqiang110 学生认证  发表于 2015-3-21 08:42:55 |只看作者 |坛友微信交流群
hhhhhhhhhhhhhhhhhhhhhhhhhhh

使用道具

地板
dnq 发表于 2015-3-21 09:09:15 |只看作者 |坛友微信交流群
kankan

使用道具

7
microhard_lmj 发表于 2015-3-21 11:51:13 |只看作者 |坛友微信交流群

使用道具

8
jjxm20060807 发表于 2015-3-22 09:03:02 |只看作者 |坛友微信交流群
看看!!!!!!!!!!!!!

使用道具

9
地下爆菊 发表于 2015-3-22 20:53:12 |只看作者 |坛友微信交流群

使用道具

10
fantuanxiaot 发表于 2015-3-22 21:19:11 |只看作者 |坛友微信交流群
地下爆菊 发表于 2015-3-22 20:53
https://bbs.pinggu.org/thread-3625623-1-1.html
量化板块红包
大家速度顶起!!!!
大家速度顶起!!!!
大家速度顶起!!!!

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 11:51