【发布时间】:2021-04-22 00:44:46
【问题描述】:
我知道有很好的资源可以使用 tidyquant for R 中的性能分析来计算股票和投资组合回报。例如,假设我们要确定包含“XOM”(0.5 )、"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") 的结果的字符值?最终,我想将这个概念扩展到每月的周期,但是一旦我弄清楚了多年,过程应该是相似的。
任何帮助将不胜感激!
【问题讨论】:
-
如果替代包也可以接受,那么这可能会有所帮助:quant.stackexchange.com/questions/60505/…
-
我一直在使用 PMwR 包,我相信它会起作用。但是在获取带有符号/调整后价格的数据框、带有日期的权重以及以正确格式重新平衡的日期时遇到了麻烦。从您的文档“计算回报”中可以看出,数据必须是动物园时间序列。那是对的吗?目前,我的交易品种列表和调整后的价格采用广泛的数据框格式,这不断给我带来错误。另外,您提到的“回报”函数是否有任何使用投资组合权重和重新平衡的示例。何时?
标签: r portfolio performanceanalytics tidyquant