在 R 中每天从交易矩阵 return 计算投资组合
in R compute portfolio daily return from a trade matrix
亲爱的 Whosebugers,
TRADES 是一个 2000 行的交易损益矩阵,head.matrix(TRADES) 给出:
Date P&L
20170101 90
20170101 100
20170102 -50
20170102 35
20170102 180
我需要计算每日投资组合损益并将其存储到新矩阵中。问题是每天的交易次数不是固定的。
我可以根据日期对交易进行子集化,并将所有相同日期的交易存储到一个新矩阵中,例如 2017 年 1 月 1 日:
20170101 <- TRADES[grep("20140101", TRADES$Date), ]
然后我可以求和以获得每日损益并将其存储到我的每日 returns 矩阵中:
DailyReturns170101 <- sum(20170101$P&L)
但是我不知道如何制作一个循环来为所有交易重复这个操作,有人可以帮我解决这个问题吗?乔
假设您有一个 data.frame
或者您可以将矩阵转换为 data.frame
:
head(df)
# Date PL
#1 20170101 90
#2 20170101 100
#3 20170102 -50
#4 20170102 35
#5 20170102 130
aggregate(PL~Date, data=df,sum)
# Date PL
#1 20170101 190
#2 20170102 115
亲爱的 Whosebugers,
TRADES 是一个 2000 行的交易损益矩阵,head.matrix(TRADES) 给出:
Date P&L
20170101 90
20170101 100
20170102 -50
20170102 35
20170102 180
我需要计算每日投资组合损益并将其存储到新矩阵中。问题是每天的交易次数不是固定的。
我可以根据日期对交易进行子集化,并将所有相同日期的交易存储到一个新矩阵中,例如 2017 年 1 月 1 日:
20170101 <- TRADES[grep("20140101", TRADES$Date), ]
然后我可以求和以获得每日损益并将其存储到我的每日 returns 矩阵中:
DailyReturns170101 <- sum(20170101$P&L)
但是我不知道如何制作一个循环来为所有交易重复这个操作,有人可以帮我解决这个问题吗?乔
假设您有一个 data.frame
或者您可以将矩阵转换为 data.frame
:
head(df)
# Date PL
#1 20170101 90
#2 20170101 100
#3 20170102 -50
#4 20170102 35
#5 20170102 130
aggregate(PL~Date, data=df,sum)
# Date PL
#1 20170101 190
#2 20170102 115