我知道有很好的资源可以使用 tidyquant for R 中的性能分析来计算股票和投资组合回报。例如,假设我们要确定包含“XOM”(0.5)的投资组合的年度投资组合回报(2011 年到 2015 年),“ MA”(0.3)和“GOOG”(0.2),其中()表示投资组合中的资产权重。代码只是:
Ra_symbols <- c("XOM", "MA", "GOOG")
wts_map <- tibble(
symbols = c("XOM", "MA", "GOOG"),
weights = c(0.5, 0.3, 0.2)
)
Ra_2010to2020 <- Ra_symbols %>%
tq_get(get = "stock.prices",
from = "2010-12-31",
to = "2015-12-31") %>%
group_by(symbol) %>%
tq_transmute(select = adjusted,
mutate_fun = periodReturn,
period = "yearly",
col_rename = "Ra")
Ra_weightedportfolioreturn <- Ra_2010to2020 %>%
tq_portfolio(assets_col = symbol,
returns_col = Ra,
weights = wts_map,
col_rename = "Ra_using_wts_map")
但是,如果投资组合每年包含不同权重的不同资产,我找不到任何资源来帮助编写代码。例如,假设我们有两个数据框:一个带有每年的符号,另一个带有各自的投资组合权重。下面是读取带有符号和权重的 csv 文件的代码,以及用于说明数据帧的图像。
symbols2011to2015 <- read_csv("Symboltest_2011to2015.csv")
weights2011to2015 <- read_csv("wtstest_2011to2015.csv")
我认为这将涉及一些 tidyverse 功能,如“应用”或“地图”,但不确定。此外,tidyquant 是否可以像我拥有的那样在数据框中使用符号(和权重),或者我是否需要将它们转换为类似于 c("XOM"、"MA"、"GOOG") 的结果的字符值?最终,我想将这个概念扩展到每个月,但是一旦我弄清楚了多年,这个过程应该是相似的。
任何帮助将非常感激!