fintech-algorithms
Using a coding agent? Give it the skill: npx skills add IslamBaraka90/Fintech-Algorithms-Library What it does →

Drawdown and Maximum Drawdown

Install and import#

bash
npm install fintech-algorithms
ts
import { drawdownAndMaximumDrawdown } from "fintech-algorithms/financial-mathematics-statistics-and-data-foundations/financial-risk-and-performance-statistics/drawdown-and-maximum-drawdown";

Signature#

drawdownAndMaximumDrawdown(input)

Worked example#

verified This is the worked example published in the article, replayed by the test suite on every run. The output cannot drift.

Input#

input
{
  "returns": [0.01, -0.02, 0.015, -0.01, 0.03],
  "benchmark": [0.008, -0.01, 0.012, -0.006, 0.02],
  "frequency": 252,
  "target": 0,
  "confidence": 0.8,
  "riskFree": 0.0001,
  "weights": [0.6, 0.4],
  "covarianceMatrix": [
    [0.04, 0.01],
    [0.01, 0.09]
  ]
}

Call#

drawdownAndMaximumDrawdown(input)

Returns#

object with 2 fields: drawdowns, maximumDrawdown

{
  "drawdowns": [0, -0.020000000000000018, -0.0053000000000001934, -0.015247000000000233, 0],
  "maximumDrawdown": -0.020000000000000018
}

Diagrams#

Drawdown and Maximum Drawdown — article hero
Drawdown and Maximum Drawdown — calculation ledger
Drawdown and Maximum Drawdown — concept anatomy
Drawdown and Maximum Drawdown — failure boundary
Drawdown and Maximum Drawdown — method map
Drawdown and Maximum Drawdown — scenario contrast

How it works#

This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.

Read the article →

References#

The rest of the Financial Risk and Performance Statistics family#