import type { array, matrix } from "../types"; /** * Computes the Average Drawdown. * * Computes the average drawdown of an asset/portfolio. * If `k` is greater than 0, it calculates the average of the `k` largest drawdowns. * * **Formula:** * - If `k = 0`: **Average Drawdown = Mean of all continuous drawdowns** * - If `k > 0`: **Average of the `k` largest drawdowns** * * @param x Asset/portfolio returns * @param k Number of largest drawdowns to consider (0 for all) * @param dim Dimension to operate on (0: row-wise, 1: column-wise) * @returns The computed average drawdown * @throws If the input is invalid * * @example Average drawdown for a single asset * ```ts * import { assertEquals } from "jsr:@std/assert"; * * const x = [0.003, 0.026, 0.015, -0.009, 0.014, 0.024, 0.015, 0.066, -0.014, 0.039]; * assertEquals(avgdrawdown(x), 0.007299999999999999); * * ``` * * @example Average of largest drawdown only * ```ts * import { assertEquals } from "jsr:@std/assert"; * * const x = [0.003, 0.026, 0.015, -0.009, 0.014, 0.024, 0.015, 0.066, -0.014, 0.039]; * * assertEquals(avgdrawdown(x, 1), 0.014); * * ``` * * @example Average drawdown for multiple assets (matrix) * ```ts * import { assertEquals } from "jsr:@std/assert"; * * const x1 = [0.003, 0.026, 0.015, -0.009, 0.014]; * const x2 = [0.024, 0.015, 0.066, -0.014, 0.039]; * assertEquals(avgdrawdown([x1, x2]), [0.0036, 0.0056]); * ``` */ export default function avgdrawdown(x: array, k?: number, dim?: 0 | 1): number; /** * Computes the Average Drawdown. * * Computes the average drawdown of an asset/portfolio. * If `k` is greater than 0, it calculates the average of the `k` largest drawdowns. * * **Formula:** * - If `k = 0`: **Average Drawdown = Mean of all continuous drawdowns** * - If `k > 0`: **Average of the `k` largest drawdowns** * * @param x Asset/portfolio returns * @param k Number of largest drawdowns to consider (0 for all) * @param dim Dimension to operate on (0: row-wise, 1: column-wise) * @returns The computed average drawdown * @throws If the input is invalid * * @example Average drawdown for a single asset * ```ts * import { assertEquals } from "jsr:@std/assert"; * * const x = [0.003, 0.026, 0.015, -0.009, 0.014, 0.024, 0.015, 0.066, -0.014, 0.039]; * assertEquals(avgdrawdown(x), 0.007299999999999999); * * ``` * * @example Average of largest drawdown only * ```ts * import { assertEquals } from "jsr:@std/assert"; * * const x = [0.003, 0.026, 0.015, -0.009, 0.014, 0.024, 0.015, 0.066, -0.014, 0.039]; * * assertEquals(avgdrawdown(x, 1), 0.014); * * ``` * * @example Average drawdown for multiple assets (matrix) * ```ts * import { assertEquals } from "jsr:@std/assert"; * * const x1 = [0.003, 0.026, 0.015, -0.009, 0.014]; * const x2 = [0.024, 0.015, 0.066, -0.014, 0.039]; * assertEquals(avgdrawdown([x1, x2]), [0.0036, 0.0056]); * ``` */ export default function avgdrawdown(x: matrix, k?: number, dim?: 0 | 1): array; //# sourceMappingURL=avgdrawdown.d.ts.map