设为首页 加入收藏

TOP

时间序列分析工具箱——tidyquant(一)
2019-09-03 02:41:25 】 浏览:413
Tags:时间序列 分析 工具箱 tidyquant

时间序列分析工具箱——tidyquant

本文翻译自《Demo Week: class(Monday) <- tidyquant》

原文链接:http://www.business-science.io/code-tools/2017/10/23/demo_week_tidyquant.html

tidyquant 的用途

使用 tidyquant 的六大理由:

  1. 直接从 Yahoo! Finance、FRED Database、Quandl 等数据源获得网络数据
  2. 简化 xts、zoo、quantmod、TTR 和 PerformanceAnalytics 中金融及时间序列函数的调用
  3. 可视化: 漂亮的主题以及针对金融的 geom(例如 geom_ma
  4. 构建投资组合
  5. 财务分析以及投资组合归因方法
  6. 为金融与时间序列分析提供坚实的基础tidyquant 会自动加载 tidyverse 和各种金融、时间序列分析包,这使得它成为任何金融或时间序列分析的理想起点。

该教程将会介绍前两个主题。其他主题请查看 tidyquant 的文档

加载包

请先安装 tidyquant

# Install libraries
install.packages("tidyquant")

加载 tidyquant

# Load libraries
library(tidyquant) # Loads tidyverse, financial pkgs, used to get and manipulate data

tq_get:获得数据

使用 tq_get() 获得网络数据。tidyquant 提供了大量 API 用于连接包括 Yahoo! Finance、FRED Economic Database、Quandl 等等在内的数据源。

从 Yahoo! Finance 获得股票数据

将一列股票代码传入 tq_get(),同时设置 get = "stock.prices"。可以添加 fromto 参数设置数据的起始和结束日期。

# Get Stock Prices from Yahoo! Finance

# Create a vector of stock symbols
FANG_symbols <- c("FB", "AMZN", "NFLX", "GOOG")

# Pass symbols to tq_get to get daily prices
FANG_data_d <- FANG_symbols %>%
    tq_get(
        get = "stock.prices",
        from = "2014-01-01", to = "2016-12-31")

# Show the result
FANG_data_d
## # A tibble: 3,024 x 8
##    symbol       date  open  high   low close   volume adjusted
##     <chr>     <date> <dbl> <dbl> <dbl> <dbl>    <dbl>    <dbl>
##  1     FB 2014-01-02 54.83 55.22 54.19 54.71 43195500    54.71
##  2     FB 2014-01-03 55.02 55.65 54.53 54.56 38246200    54.56
##  3     FB 2014-01-06 54.42 57.26 54.05 57.20 68852600    57.20
##  4     FB 2014-01-07 57.70 58.55 57.22 57.92 77207400    57.92
##  5     FB 2014-01-08 57.60 58.41 57.23 58.23 56682400    58.23
##  6     FB 2014-01-09 58.65 58.96 56.65 57.22 92253300    57.22
##  7     FB 2014-01-10 57.13 58.30 57.06 57.94 42449500    57.94
##  8     FB 2014-01-13 57.91 58.25 55.38 55.91 63010900    55.91
##  9     FB 2014-01-14 56.46 57.78 56.10 57.74 37503600    57.74
## 10     FB 2014-01-15 57.98 58.57 57.27 57.60 33663400    57.60
## # ... with 3,014 more rows

可以使用 ggplot2 画出上述结果。使用 tidyquant 提供的主题(调用 theme_tq()scale_color_tq())实现金融、商务风格的可视化效果。

# Plot data
FANG_data_d %>%
    ggplot(aes(x = date, y = adjusted, color = symbol)) + 
    geom_line() +
    facet_wrap(~ symbol, ncol = 2, scales = "free_y") +
    theme_tq() +
    scale_color_tq() +
    labs(title = "Visualize Financial Data")

从 FRED 获得经济数据

下面的例子来自房地美副首席经济学家 Leonard Kieffer 近期的文章——《A (TIDYQUANT)UM OF SOLACE》。我们将使用 tq_get() 并设置参数 get = "economic.data" 来从 FRED 经济数据库获取数据。

将一列 FRED 代码传递到 tq_get()

# Economic Data from the FRED

# Create a vector of FRED symbols
FRED_symbols <- c('ETOTALUSQ176N',    # All housing units
                  'EVACANTUSQ176N',   # Vacant
                  'EYRVACUSQ176N',    # Year-round vacant
                  'ERENTUSQ176N')     # Vacant for rent

# Pass symbols to tq_get to get economic data
FRED_data_m <- FRED_symbols %>%
    tq_get(get="economic.data", from = "2001-04-01")

# Show results
FRED_data_m
## # A tibble: 260 x 3
##           symbol       date  price
##            <chr>     <date>  <int>
##  1 ETOTALUSQ176N 2001-04-01 117786
##  2 ETOTALUSQ176N 2001-07-01 118216
##  3 ETOTALUSQ176N 2001-10-01 118635
##
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇时间序列深度学习:seq2seq 模型.. 下一篇[转载]机器学习预测世界杯:巴西..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目