drawdown(): DrawdownResult
Drawdown.
Calculates drawdown from peak, which represents any continuous losing return period. Returns drawdown array, recovery index, maximum drawdown, and maximum drawdown recovery period.
Returns an object with:
- dd (drawdown array)
- ddrecov (drawdown recovery index)
- maxdd (max drawdown)
- maxddrecov (max drawdown recovery period): [start period, end period]
Calculate drawdown metrics for a return series
Calculate drawdown metrics for a return series
import { assertEquals } from "jsr:@std/assert"; import { drawdown } from "../../index.ts"; const x = [0.003, 0.026, 0.015, -0.009, 0.014, 0.024, 0.015, 0.066, -0.014, 0.039]; const result = drawdown(x); assertEquals(result.dd, [0, 0, 0, 0.00900000000000004, 0, 0, 0, 0, 0.013999999999999995, 0]); assertEquals(result.ddrecov, [0, 0, 0, 4, 0, 0, 0, 0, 9, 0]); assertEquals(result.maxdd, 0.013999999999999995); assertEquals(result.maxddrecov, [8, 9]);
Drawdown with geometric mode
Drawdown with geometric mode
import { assertEquals } from "jsr:@std/assert"; import { drawdown } from "../../index.ts"; const x = [0.003, 0.026, 0.015, -0.009, 0.014, 0.024, 0.015, 0.066, -0.014, 0.039]; assertEquals(drawdown(x, "geometric").maxdd, 0.014098924379501637);
Drawdown for multiple assets
Drawdown for multiple assets
import { assertEquals } from "jsr:@std/assert"; import { drawdown } from "../../index.ts"; const x = [0.003, 0.026, 0.015, -0.009, 0.014, 0.024, 0.015, 0.066, -0.014, 0.039]; const y = [-0.005, 0.081, 0.04, -0.037, -0.061, 0.058, -0.049, -0.021, 0.062, 0.058]; assertEquals((drawdown([x, y]) as any).length, 2);
x: array
Asset/portfolio returns
Drawdown information object
drawdown(): DrawdownResult[]
Drawdown.
Calculates drawdown from peak, which represents any continuous losing return period. Returns drawdown array, recovery index, maximum drawdown, and maximum drawdown recovery period.
Returns an object with:
- dd (drawdown array)
- ddrecov (drawdown recovery index)
- maxdd (max drawdown)
- maxddrecov (max drawdown recovery period): [start period, end period]
Calculate drawdown metrics for a return series
Calculate drawdown metrics for a return series
import { assertEquals } from "jsr:@std/assert"; import { drawdown } from "../../index.ts"; const x = [0.003, 0.026, 0.015, -0.009, 0.014, 0.024, 0.015, 0.066, -0.014, 0.039]; const result = drawdown(x); assertEquals(result.dd, [0, 0, 0, 0.00900000000000004, 0, 0, 0, 0, 0.013999999999999995, 0]); assertEquals(result.ddrecov, [0, 0, 0, 4, 0, 0, 0, 0, 9, 0]); assertEquals(result.maxdd, 0.013999999999999995); assertEquals(result.maxddrecov, [8, 9]);
Drawdown with geometric mode
Drawdown with geometric mode
import { assertEquals } from "jsr:@std/assert"; import { drawdown } from "../../index.ts"; const x = [0.003, 0.026, 0.015, -0.009, 0.014, 0.024, 0.015, 0.066, -0.014, 0.039]; assertEquals(drawdown(x, "geometric").maxdd, 0.014098924379501637);
Drawdown for multiple assets
Drawdown for multiple assets
import { assertEquals } from "jsr:@std/assert"; import { drawdown } from "../../index.ts"; const x = [0.003, 0.026, 0.015, -0.009, 0.014, 0.024, 0.015, 0.066, -0.014, 0.039]; const y = [-0.005, 0.081, 0.04, -0.037, -0.061, 0.058, -0.049, -0.021, 0.062, 0.058]; assertEquals((drawdown([x, y]) as any).length, 2);
x: matrix
Asset/portfolio returns
Drawdown information object