搜索
人大经济论坛 附件下载

附件下载

所在主题:
文件名:  i106.rar
资料下载链接地址: https://bbs.pinggu.org/a-2423629.html
本附件包括:
  • i106.RData
附件大小:
84.01 KB   举报本内容
时间类型的tibble类数据,数据清洗与一般的tibble数据会有不同,我们可以用不同的packages来尝试一下:
【数据】
选取深圳综指300106.SZ的18年2月22/23日的高频数据(tick级),可下载,但仅用于学习和练习之用,勿做任何商业用途。
  1. # SETUP
  2. library(tidyverse)

  3. # load data
  4. load("i106.RData")

  5. i106 %>%
  6. tbl_df() %>%
  7. head(3)

  8. #> datetime close volume
  9. #2018-02-22 09:25:03 1754.307 155945300
  10. #2018-02-22 09:30:00 1754.148 12515800
  11. #2018-02-22 09:30:03 1756.871 116001200
复制代码
【用tidyquant包】
  1. library(tidyquant)

  2. # 变为分钟的价格数据
  3. i106 %>%
  4. tq_transmute(select = close, mutate = to.minutes) %>%
  5. head(3)
  6. #> datetime close
  7. #2018-02-22 09:25:03 1754.307
  8. #2018-02-22 09:30:57 1758.003
  9. #2018-02-22 09:31:57 1755.187

  10. # 变成日算数收益率的数据
  11. i106 %>%
  12. tq_transmute(select = close,
  13. mutate_fun = periodReturn,
  14. period = "daily",
  15. type = "arithmetic")
  16. #> datetime daily.returns
  17. #2018-02-22 15:00:03 0.010066826
  18. #2018-02-23 15:00:03 0.001806975

  19. # 增加MACD指标数据
  20. i106 %>%
  21. tq_mutate(select = close,
  22. mutate_fun = MACD,
  23. col_rename = c("MACD", "Signal")) %>%
  24. tail(3)
  25. #> datetime close volume MACD Signal
  26. #2018-02-23 14:57:00 1774.756 7101900 0.009579118 0.008594071
  27. #2018-02-23 14:57:03 1774.770 1073700 0.009929062 0.008861070
  28. #2018-02-23 15:00:03 1775.169 219719500 0.011883175 0.009465491
复制代码
【用tibbletime包(0.0.2版本)】
  1. library(tibbletime)#要手动安装0.0.2版本的,最新的0.1.1版不好用

  2. # 按照每45秒一次的数据
  3. i106 %>%
  4. as_tbl_time(index = datetime) %>%
  5. as_period(45~second) %>%
  6. slice(1:5)
  7. # A time tibble: 5 x 3
  8. # Index: datetime
  9. #datetime close volume
  10. #* <dttm> <dbl> <dbl>
  11. #1 2018-02-22 09:25:03 1754. 155945300.
  12. #2 2018-02-22 09:30:00 1754.12515800.
  13. #3 2018-02-22 09:30:18 1758. 8272000.
  14. #4 2018-02-22 09:31:03 1758.10190700.
  15. #5 2018-02-22 09:31:48 1755.10640000.

  16. # 变成每45秒一次的K线数据
  17. i106 %>%
  18. as_tbl_time(index = datetime) %>%
  19. time_collapse(period = 45~second) %>%
  20. group_by(datetime) %>%
  21. summarise(open= first(close),
  22. high= max(close),
  23. low = min(close),
  24. close = last(close)) %>%
  25. slice(1:5)
  26. # A time tibble: 5 x 5
  27. # Index: datetime
  28. #datetime openhigh low close
  29. #* <dttm> <dbl> <dbl> <dbl> <dbl>
  30. #1 2018-02-22 09:25:03 1754. 1754. 1754. 1754.
  31. #2 2018-02-22 09:30:15 1754. 1758. 1754. 1758.
  32. #3 2018-02-22 09:31:00 1758. 1759. 1758. 1758.
  33. #4 2018-02-22 09:31:45 1758. 1758. 1756. 1756.
  34. #5 2018-02-22 09:32:30 1755. 1756. 1754. 1754.

  35. # 对数据做滚动总结
  36. # 先编写需要计算的函数
  37. summary_df <- function(x) {
  38. data.frame(rolled_summary_type = c("mean", "sd", "min", "max", "median"),
  39. rolled_summary_val = c(mean(x), sd(x), min(x), max(x), median(x)))
  40. }

  41. # 再变成rolling的版本
  42. rolling_summary <- rollify(~summary_df(.x), window = 5, unlist = FALSE)

  43. i106 %>%
  44. mutate(summary_list_col = rolling_summary(close)) %>%
  45. filter(!is.na(summary_list_col)) %>%
  46. unnest()
  47. ## A tibble: 47,440 x 5
  48. # datetime close volume rolled_summary_type rolled_summary_val
  49. # <dttm> <dbl> <dbl> <fct> <dbl>
  50. # 1 2018-02-22 09:30:09 1758. 10882600. mean 1756.
  51. # 2 2018-02-22 09:30:09 1758. 10882600. sd 1.75
  52. # 3 2018-02-22 09:30:09 1758. 10882600. min 1754.
  53. # 4 2018-02-22 09:30:09 1758. 10882600. max 1758.
  54. # 5 2018-02-22 09:30:09 1758. 10882600. median 1757.
  55. # 6 2018-02-22 09:30:12 1758.8906900. mean 1757.
  56. # 7 2018-02-22 09:30:12 1758.8906900. sd 1.56
  57. # 8 2018-02-22 09:30:12 1758.8906900. min 1754.
  58. # 9 2018-02-22 09:30:12 1758.8906900. max 1758.
  59. # 10 2018-02-22 09:30:12 1758.8906900. median 1757.
  60. # ... with 47,430 more rows
复制代码
【小结】
  • tidyquant包的优点是,从quantmod,TTR,xts等包转移过来的成本较小,对于熟悉这些包的同学是福音,缺点就是函数比较规范化,比较难做个性化的数据操纵——类似我们在第二个例子中做的每隔45秒做一次切面的做法。
  • tibbletime包可以满足较多个性化的数据清洗,但是版本还不太稳定,且做Rolling计算时,速度较慢,还需要等待其逐渐完善。





    熟悉论坛请点击新手指南
下载说明
1、论坛支持迅雷和网际快车等p2p多线程软件下载,请在上面选择下载通道单击右健下载即可。
2、论坛会定期自动批量更新下载地址,所以请不要浪费时间盗链论坛资源,盗链地址会很快失效。
3、本站为非盈利性质的学术交流网站,鼓励和保护原创作品,拒绝未经版权人许可的上传行为。本站如接到版权人发出的合格侵权通知,将积极的采取必要措施;同时,本站也将在技术手段和能力范围内,履行版权保护的注意义务。
(如有侵权,欢迎举报)
二维码

扫码加我 拉你入群

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

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

GMT+8, 2026-2-8 00:43