计算最大回撤

最大回撤是投资组合在选定期间从最高点下跌到最低点的百分比。在下面的TypeScript代码中,我们将通过遍历给定投资组合的每一个点来计算最大回撤。这个函数接受一个数组,该数组代表一系列投资组合的价值,然后返回最大回撤值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function calculateMaxDrawdown(portfolioValues: number[]): number {
let maxDrawdown = 0;
let peak = portfolioValues[0];

for (const value of portfolioValues) {
if (value > peak) {
peak = value;
} else {
let drawdown = (peak - value) / peak;
maxDrawdown = Math.max(maxDrawdown, drawdown);
}
}

// 将结果转化为百分比
return maxDrawdown * 100;
}

你可以使用以下样例来测试这个函数:

1
2
let portfolioValues = [100, 120, 100, 80, 120, 150, 130, 150];
console.log(calculateMaxDrawdown(portfolioValues)); // 这将输出 33.33333333333333

在这个例子中,投资组合价值从120下降到80,所以最大回撤是 33.33%。