maxdrawdown功能

时间:2012-12-05 21:55:31

标签: r finance

在R中,我看到有两个包具有maxdrawdown功能。

一个是 fTrading ,另一个是 PerformaceAnalytics

每个人都做了不同的计算。

  1. fTrading似乎假设价值是资产的价格,因此缩减是在估值中。
  2. 同样适用于PerformanceAnalytics,但它以百分比形式给出答案。
  3. 是否有一个包含maxdrawdown函数的软件包需要系列中的P / L数据,并根据该函数给出下拉?

    例如如果你有以下数据

    c(12,10,5,-4,-2,1,5,6)
    

    最大亏损将是:

    -4 + -2=-6.
    

2 个答案:

答案 0 :(得分:4)

编写自己的函数很容易:

drawdown <- function(pnl) {
   cum.pnl  <- c(0, cumsum(pnl))
   drawdown <- cum.pnl - cummax(cum.pnl)
   return(tail(drawdown, -1))
}

maxdrawdown <- function(pnl)min(drawdown(pnl))

(当然,如果您的约定是缩编应为正数,则可以更改符号并将min替换为max

pnl <- c(12,10,5,-4,-2,1,5,6)
drawdown(pnl)
# [1]  0  0  0 -4 -6 -5  0  0
maxdrawdown(pnl)
# [1] -6

答案 1 :(得分:3)

您正在尝试查找PnL maxDrawDown的{​​{1}}(与帐户值相同)。

cumsum