在这个帖子我会展示如何获取金融数据,用以实践各类金融模型。因为Julia的data science和database API暂时还不完备,在这里我会使用R,大家可以通过RCall在Julia里面直接使用,或者在R里面获得数据后储存到本地,再通过RData.jl读进Julia (其他的数据格式比如csv, txt, fst, feather也都可以)。
因为国内学校没有彭博数据库,沃顿数据库也只有五六所学校有,所以我的例子使用的是开源的数据(暂时没有债券和衍生品,不过有股票和外汇,以及各种大宗商品),这样大家就可以免费使用。
require(tidyquant) # 使用包
tq_index_options() # 查看可以获得的股票指数
aapl_prices <- tq_get("AAPL", get = "stock.prices", from = " 1990-01-01")
# 获得苹果公司的股票价格数据
aapl_divs <- tq_get("AAPL", get = "dividends", from = "1990-01-01")
#获得苹果公司的股息数据
wti_price_usd <- tq_get("DCOILWTICO", get = "economic.data")
#获得原油价格数据
eur_usd <- tq_get("EUR/USD",
get = "exchange.rates",
from = Sys.Date() - lubridate::days(10))
#获得欧元对美元汇率数据
plat_price_eur <- tq_get("plat", get = "metal.prices",
from = Sys.Date() - lubridate::days(10),
base.currency = "EUR")
#获得铝的欧元价格
##############################################################
Ra <- c("AAPL", "GOOG", "NFLX") %>%
tq_get(get = "stock.prices",
from = "2010-01-01",
to = "2015-12-31") %>%
group_by(symbol) %>%
tq_transmute(select = adjusted,
mutate_fun = periodReturn,
period = "monthly",
col_rename = "Ra")
#获取苹果,谷歌,和和NETFLIX的股票价格,转换成月收益率。
记住一点,所有的金融模型的基础都是以收益率为基础,不是价格!所以获得价格数据后要转化成收益率。加密货币的数据有,不过暂时没有很好的金融模型可以用,以后可以介绍一些。