Look-Ahead Leakage and Time-Aware Data Splits
Install and import#
npm install fintech-algorithmsimport { 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#
| Name | Type | Notes |
|---|---|---|
input | D00Input | Reads 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
valuesis absent, empty, or holds a non-finite number — throws RangeError - When
timestampsandvalueshave different lengths — throws RangeError - When the series holds fewer than two observations — throws RangeError
- When
splitIndexis 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#
{
"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#
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.
References#
- Time Series Plot — NIST/SEMATECH e-Handbook
- Common Pitfalls and Recommended Practices — scikit-learn
- Historical-example decision