maxdrawdown函数

Dea*_*gor 3 finance r

在R中,我看到有两个具有maxdrawdown函数的软件包。

一个是fTrading,另一个是PerformaceAnalytics

这些每个都进行不同的计算。

  1. fTrading似乎假设价值是资产的价格,因此亏损是在估值中。
  2. 这同样适用于PerformanceAnalytics,但它以百分比形式给出了答案。

是否有一个带有maxdrawdown函数的软件包,该软件包期望一系列P / L数据并基于该数据进行提取?

例如,如果您有以下数据

c(12,10,5,-4,-2,1,5,6)
Run Code Online (Sandbox Code Playgroud)

最大亏损为:

-4 + -2=-6.
Run Code Online (Sandbox Code Playgroud)

flo*_*del 5

编写自己的函数很容易:

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))
Run Code Online (Sandbox Code Playgroud)

(当然,如果约定缩水应为正数minmax则可以更改符号并替换为)

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
Run Code Online (Sandbox Code Playgroud)