fintech-algorithms

Amihud Illiquidity Ratio

Install and import

bash
npm install fintech-algorithms
ts
import { amihudIlliquidity } from "fintech-algorithms/market-microstructure/liquidity-and-spreads/amihud-illiquidity-ratio";

Signature

amihudIlliquidity(closes, dollarVolumes, scale)

Average absolute return per unit of dollar volume — how much price moves per dollar traded. The most widely used low-frequency illiquidity proxy precisely because it needs only daily data.

Parameters

NameTypeNotes
closesnumber[]Daily closing prices.
dollarVolumesnumber[]Daily traded value, aligned index-for-index with the closes.
scalenumberScaling applied to the raw ratio. The unscaled value is tiny, so published figures are almost always scaled — and papers differ on by how much.
min: 0

Returns

{ ratio, daily_ratios, observations, scale }

The averaged ratio with the daily series and the scale applied, since a figure quoted without its scale is not comparable.

Errors

  • When a dollar volume is zero, making the daily ratio undefined — excluded from the average and reported

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

Worked example

executed Captured by running this function on the input its own test provides. Real output of real code — but not asserted against a published figure.

Input

closes
[100, 101, 100.5, 102, 101.5, 103]
dollarVolumes
[1000000, 1200000, 900000, 1500000, 1100000, 1400000]
scale
1000000

Call

amihudIlliquidity(closes, dollarVolumes, scale)

Returns

object with 9 fields: model, observation_count, return_count, returns, daily_illiquidity, illiquidity_per_currency_unit, scale, illiquidity_per_scaled_volume, …

{
  "model": "amihud-illiquidity",
  "observation_count": 6,
  "return_count": 5,
  "returns": [
    0.010000000000000009,
    -0.004950495049504955,
    0.014925373134328401,
    -0.004901960784313708,
    0.014778325123152802
  ],
  "daily_illiquidity": [
    8.33333333333334e-9,
    5.500550055005505e-9,
    9.950248756218935e-9,
    4.4563279857397345e-9,
    1.0555946516537716e-8
  ],
  "illiquidity_per_currency_unit": 7.759281329367046e-9,
  "scale": 1000000,
  "illiquidity_per_scaled_volume": 0.0077592813293670465,
  "state": "estimated"
}

Other exports

This module also exports quotedSpread, effectiveSpread, realizedSpread, rollSpread, corwinSchultzSpread, calculate. Every module additionally exports run as an alias of its primary function, and a meta object carrying its catalog id, domain, family, shape and article URL.

Diagrams

Amihud Illiquidity Ratio — calculation map
Amihud Illiquidity Ratio — decision boundary
Amihud Illiquidity Ratio — failure boundary
Amihud Illiquidity Ratio — scenario matrix
Amihud Illiquidity Ratio — system map

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

  • Amihud (2002), Illiquidity and Stock Returns — Journal of Financial Markets
  • NYSE Daily TAQ product description — New York Stock Exchange