# Money Flow Multiplier and Money Flow Volume

`D07-F05-A18` · Technical Indicators → Volume Indicators · archetype `series-transform` · difficulty 2/5 · verification **verified**

Full page: https://docs.thefintechbuilder.com/technical-indicators/volume-indicators/money-flow-multiplier-and-money-flow-volume/
Agent skill: `npx skills add IslamBaraka90/Fintech-Algorithms-Library` — https://docs.thefintechbuilder.com/guides/agent-skill/

## Install and import

```bash
npm install fintech-algorithms
```

```ts
import { moneyFlowMultiplierAndMoneyFlowVolume } from "fintech-algorithms/technical-indicators/volume-indicators/money-flow-multiplier-and-money-flow-volume";
```

## Signature

```ts
moneyFlowMultiplierAndMoneyFlowVolume(input)
```

Returns the per-bar money flow multiplier, the close's position within the bar range mapped to minus one through one, and that multiplier times volume.

## Parameters

| Name | Type | Required | Notes |
| --- | --- | --- | --- |
| `input` | `TopicInput` | yes | `bars` needs `timestamp`, `high`, `low`, `close` and `volume`. This topic reads no parameters of its own; the family reads `period` (default 14), `fast_period` (default 3) and `slow_period` (default 10, minimum `fast_period` + 1) for every volume topic, so a non-integer or out-of-range value throws even when this topic ignores it. |

## Returns

`TopicResult`

`series` holds `mfm`, the multiplier, and `mfv`, the multiplier times volume; `latest` carries the last element of each. A bar whose `high` equals its `low` gets an `mfm` of 0 rather than null. Both series are populated from the first bar, so there is no warm-up.

## Warm-up

The first `none` positions are `0 on a bar whose high equals its low`. `ready_at` is 0. These are the per-bar building blocks the rest of the family accumulates, so nothing is smoothed.

## Errors

- When a bar carries a negative `volume` — throws Error
- When a `low` is above the bar's `open`, `high` or `close` — throws Error
- When a `close` is not a finite number — throws Error

## Complexity

Time `O(n)`, space `O(n)`.

## Worked example

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

`input`:

```json
{
  "bars": [
    {
      "timestamp": "2024-01-02",
      "basis": "synthetic-unadjusted",
      "open": 100,
      "high": 101.45,
      "low": 98.695,
      "close": 100,
      "volume": 750000,
      "benchmark": 200
    },
    {
      "timestamp": "2024-01-03",
      "basis": "synthetic-unadjusted",
      "open": 101.49111452,
      "high": 103.38381693,
      "low": 100.05480022,
      "close": 101.78791214,
      "volume": 795117,
      "benchmark": 200.56326135
    },
    {
      "timestamp": "2024-01-04",
      "basis": "synthetic-unadjusted",
      "open": 102.45519048,
      "high": 104.6701838,
      "low": 100.91147007,
      "close": 102.9549389,
      "volume": 840234,
      "benchmark": 201.11020913
    }
  ],
  "parameters": {}
}
```

### Call

```ts
moneyFlowMultiplierAndMoneyFlowVolume(input)
```

### Returns

object with 9 fields: topic_id, title, state, ready, ready_at, series, latest, parameters, …

```json
{
  "topic_id": "D07-F05-A18",
  "title": "Money Flow Multiplier and Money Flow Volume",
  "state": "calculated",
  "ready": true,
  "ready_at": 0,
  "series": {
    "mfm": [
      -0.052631578947366794,
      0.04121551255295672,
      0.08732347115990827,
      0.09293842014396132,
      0.062081849441474005,
      -0.004662878734817273
    ],
    "mfv": [
      -39473.6842105251,
      32771.15469456929,
      73372.14946657437,
      82283.12321287631,
      57765.17428610943,
      -4549.034550506709
    ]
  },
  "latest": {
    "mfm": -0.16556937573789185,
    "mfv": -207974.176405002
  },
  "parameters": {},
  "diagnostics": {
    "causal": true,
    "input_count": 96
  }
}
```

## Verification and provenance

Tier: **verified** (via E).

The worked example below is the figure published in this algorithm's article, replayed and asserted by the test suite on every build. The arithmetic cannot drift without the build failing.

Both tiers guarantee the signature. Full explanation: https://docs.thefintechbuilder.com/guides/verification/

Generated from the docs.json payload shipped inside fintech-algorithms@0.13.0.
The signature and parameter list are checked against the compiled implementation at build time,
so a description that contradicts the code fails the build rather than reaching this file.

## Links

- Article (how it works, step by step): https://thefintechbuilder.com/technical-indicators/volume-indicators/money-flow-multiplier-and-money-flow-volume/
- Implementation source: https://github.com/IslamBaraka90/Fintech-Algorithms-Library/blob/main/src/technical-indicators/volume-indicators/money-flow-multiplier-and-money-flow-volume/impl.ts
- Package on npm: https://www.npmjs.com/package/fintech-algorithms
- Domain index for agents: https://docs.thefintechbuilder.com/technical-indicators/llms.txt
