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

Look-Ahead Leakage and Time-Aware Data Splits

Install and import#

bash
npm install fintech-algorithms
ts
import { lookAheadLeakageAndTimeAwareDataSplits } from "fintech-algorithms/foundations/financial-time-series-foundations/look-ahead-leakage-and-time-aware-data-splits";

Signature#

lookAheadLeakageAndTimeAwareDataSplits(input)

Splits a timestamped series at a given position and reports whether the training block reaches into the testing block's time range.

Parameters#

NameTypeNotes
inputD00InputReads values, a non-empty list of finite numbers, timestamps of the same length, and splitIndex, the position where testing begins.

Returns#

D00Output

trainCount and testCount size the two blocks, leakage is true when the latest training timestamp is at or after the earliest testing one, and trainEnd and testStart are the boundary timestamps exactly as supplied.

Errors#

  • When values is absent, empty, or holds a non-finite number — throws RangeError
  • When timestamps and values have different lengths — throws RangeError
  • When the series holds fewer than two observations — throws RangeError
  • When splitIndex is not an integer that leaves both blocks non-empty — throws RangeError

Complexity: time O(n^2), 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
{
  "timestamps": [
    "2025-01-01T00:00:00Z",
    "2025-01-02T00:00:00Z",
    "2025-01-03T00:00:00Z",
    "2025-01-04T00:00:00Z",
    "2025-01-05T00:00:00Z",
    "2025-01-06T00:00:00Z"
  ],
  "values": [100, 102, 101, 104, 106, 105],
  "lag": 1,
  "window": 3,
  "resampleSize": 2,
  "period": 3,
  "stationarityTolerance": 3,
  "alpha": 0.4,
  "splitIndex": 4
}

Call#

lookAheadLeakageAndTimeAwareDataSplits(input)

Returns#

object with 2 fields: trainCount, testCount

{
  "trainCount": 4,
  "testCount": 2
}

Diagrams#

Look-Ahead Leakage and Time-Aware Data Splits — article hero
Look-Ahead Leakage and Time-Aware Data Splits — calculation ledger
Look-Ahead Leakage and Time-Aware Data Splits — concept anatomy
Look-Ahead Leakage and Time-Aware Data Splits — failure boundary
Look-Ahead Leakage and Time-Aware Data Splits — method map
Look-Ahead Leakage and Time-Aware Data Splits — 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 Time-Series Foundations family#