在R中,我看到有两个具有maxdrawdown函数的软件包。
一个是fTrading,另一个是PerformaceAnalytics。
这些每个都进行不同的计算。
是否有一个带有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)
编写自己的函数很容易:
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)
(当然,如果约定缩水应为正数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
Run Code Online (Sandbox Code Playgroud)