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

McClellan Family

6 algorithms in Market Breadth and Internals · 6 with asserted arithmetic.

In this family#

  1. Traditional McClellan Oscillator verified

    The difference between a 19-day and a 39-day EMA of net advances. Because both averages are taken over raw counts, values are not comparable across eras in which the number of listed issues changed — which is exactly what the ratio-adjusted variant fixes.

    calculateMcClellanValues(netAdvances)
  2. Ratio-Adjusted McClellan Oscillator verified

    The McClellan oscillator computed on net advances divided by advances plus declines. Ratio adjustment is what makes a 1970 reading comparable with a 2026 one — without it the oscillator's range grows with the exchange.

    calculate(records, cutoff)
  3. Traditional McClellan Summation Index verified

    The running total of the McClellan oscillator. Turns a fast, noisy signal into a slow regime gauge — the oscillator says what is happening this week, the summation index what has been happening for months.

    calculate(records, cutoff)
  4. Ratio-Adjusted Summation Index (RASI) verified

    RASI: the summation index built on the ratio-adjusted oscillator. The variant most practitioners mean when they quote 'the summation index', and the only one whose historical thresholds hold up across eras.

    calculate(records, cutoff)
  5. McClellan Volume Oscillator verified

    The McClellan construction applied to advancing minus declining *volume* rather than issue counts. It weights participation by size, so it can disagree with the issue-based oscillator — and that disagreement is itself the signal.

    calculate(records, cutoff)
  6. McClellan Volume Summation Index verified

    The running total of the volume oscillator — the volume-weighted counterpart of the summation index.

    calculate(records, cutoff)

What they share#

Every topic here is a record-transform, so once you have called one the rest follow the same shape. Import paths differ only in the final segment:

ts
import { calculateMcClellanValues } from "fintech-algorithms/market-breadth-and-internals/mcclellan-family/traditional-mcclellan-oscillator";
import { calculate } from "fintech-algorithms/market-breadth-and-internals/mcclellan-family/ratio-adjusted-mcclellan-oscillator";

Read them in the order above — the sequence is pedagogical, not alphabetical.

Where this sits#

Market Breadth and Internals collects 28 algorithms across 5 families. For the concept behind this family rather than the call signatures, see the concept guides.