function downsidepot
downsidepot(
x: array,
mar?: number,
dim?: 0 | 1,
): number

Downside Potential.

Measure of the average deviation below a minimum acceptable return threshold

Examples

Downside potential with default MAR

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(downsidepot(x), 0.0023);

Downside potential with custom MAR

import { assertEquals } from "jsr:@std/assert";

assertEquals(downsidepot([0.05, 0.03, 0.08, -0.02], 0.02), 0.01);

Downside potential for matrix (row-wise)

import { assertEquals } from "jsr:@std/assert";

const matrix = [[0.01, 0.02], [0.03, -0.01], [0.05, 0.04]];
assertEquals(downsidepot(matrix, 0, 0), [0, 0.005, 0]);

Parameters

array or matrix of values

optional
mar: number

minimum acceptable return (def: 0)

optional
dim: 0 | 1

dimension 0: row, 1: column (def: 0)

Return Type

number

Downside Potential

downsidepot(
x: matrix,
mar?: number,
dim?: 0 | 1,
): array | matrix

Downside Potential.

Measure of the average deviation below a minimum acceptable return threshold

Examples

Downside potential with default MAR

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(downsidepot(x), 0.0023);

Downside potential with custom MAR

import { assertEquals } from "jsr:@std/assert";

assertEquals(downsidepot([0.05, 0.03, 0.08, -0.02], 0.02), 0.01);

Downside potential for matrix (row-wise)

import { assertEquals } from "jsr:@std/assert";

const matrix = [[0.01, 0.02], [0.03, -0.01], [0.05, 0.04]];
assertEquals(downsidepot(matrix, 0, 0), [0, 0.005, 0]);

Parameters

array or matrix of values

optional
mar: number

minimum acceptable return (def: 0)

optional
dim: 0 | 1

dimension 0: row, 1: column (def: 0)

Return Type

Downside Potential