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

Active Return and Tracking Error

Install and import#

bash
npm install fintech-algorithms
ts
import { activeReturnAndTrackingError } from "fintech-algorithms/foundations/financial-risk-and-performance-statistics/active-return-and-tracking-error";

Signature#

activeReturnAndTrackingError(input)

Subtracts the benchmark from the portfolio period by period, then reports the average and the annualized volatility of that difference.

Parameters#

NameTypeNotes
inputD00InputReads returns and benchmark, two aligned non-empty lists of finite periodic returns, frequency, the number of periods per year, and confidence, used when the loss series is prepared.

Returns#

D00Output

activeReturns holds the per-period differences, averageActiveReturn their mean, and trackingError their sample standard deviation times the square root of frequency.

Errors#

  • When returns or benchmark is absent, empty, or holds a non-finite number — throws RangeError
  • When returns and benchmark differ in length, or hold fewer than two observations — throws RangeError
  • When frequency is zero or negative — throws RangeError
  • When confidence is absent, or outside the range zero to one — the engine reads it for every topic from A04 onward, including those that never use it — throws RangeError

Complexity: time O(n log n), space O(n).

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#

activeReturnAndTrackingError(input)

Returns#

object with 2 fields: activeReturns, averageActiveReturn

{
  "activeReturns": [0.002, -0.01, 0.002999999999999999, -0.004, 0.009999999999999998],
  "averageActiveReturn": 0.0001999999999999995
}

Diagrams#

Active Return and Tracking Error — article hero
Active Return and Tracking Error — calculation ledger
Active Return and Tracking Error — concept anatomy
Active Return and Tracking Error — failure boundary
Active Return and Tracking Error — method map
Active Return and Tracking Error — 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#