【发布时间】:2021-10-26 02:25:19
【问题描述】:
我正在尝试为股票生成滚动 Beta,但我的滚动功能无法正常工作。到目前为止我尝试过的:
library(tidyquant)
library(tidyverse)
library(tibbletime)
ticker_data <- tq_get(c("AAPL", "SPY"))
daily_returns <- ticker_data %>%
group_by(symbol) %>%
tq_transmute(select = close,
mutate_fun = periodReturn,
period = "daily",
col_rename = "daily_return") %>%
ungroup
all_returns_df <- left_join(daily_returns %>% filter(symbol == "AAPL"),
daily_returns %>% filter(symbol == "SPY") %>%
select(-symbol) %>%
rename(mkt_daily_return = daily_return))
# Can generate one Beta for all dates
all_returns_df %>%
tq_performance(Ra = daily_return,
Rb = mkt_daily_return,
scale = 252,
performance_fun = table.CAPM)
# Rolling Beta is not working
#Function that is not working
roll_beta <- rollify(.f = function(xy){ tq_performance(data = xy,
Ra = daily_return,
Rb = mkt_daily_return,
scale = 252,
performance_fun = table.CAPM)},
window = 40)
# This fails
all_returns_df %>% roll_beta()
关于如何使这项工作适合我的任何想法?
我的主要目标是以“整洁”的方式做到这一点。
【问题讨论】:
标签: r performanceanalytics tidyquant tibbletime