# Kalman Filter-Based Pairs Trading

A pairs trading strategy using Kalman Filter to dynamically adjust hedge ratio between two ETFs.

Canonical: https://prismaticalgos.com/compendium/algo/858-kalman-filter-based-pairs-trading
Record ID: 858
Catalog rank: 2715 (reading order, not performance)
Snapshot: 2026-10-31 15:46 UTC
Family: Mean Reversion & Counter-Trend (B)
Source: https://www.quantstart.com/articles/kalman-filter-based-pairs-trading-strategy-in-qstrader/
Evidence label (unverified): backtest_shown

## Scope and limitations

These are machine-extracted research records, not verified trading systems. Catalog rank measures specification detail and claimed evidence, not profitability. The catalog extraction pipeline did not independently backtest these records. Its separate selected testing ledger does not validate the wider corpus. Rules, labels and parameters can be incomplete or wrong; consult the original source and its reuse terms.

No endorsement, ownership claim or source-code reuse permission is implied.

## Extraction warnings

Claim warnings: UNSIZED CLAIM: performance figures are published with no trade count, so the sample behind them cannot be judged.
Opacity warnings: OPAQUE ENTRY: every entry condition reads a value out of something the source never defined -- a custom-indicator buffer, an iCustom() call, or an author-named score. The rule names the signal without specifying it, so it cannot be reproduced bar-for-bar from this record.

## Recorded profile

- symbols: TLT, IEI
- timeframes: daily
- sessions: any
- market_regime: any

## Indicators

No indicator stack recorded.

## Recorded long-entry rules

- e_t < -sqrt(Q_t)

## Recorded short-entry rules

- e_t > sqrt(Q_t)

## Recorded exit rules

- e_t > -sqrt(Q_t) for long positions
- e_t < sqrt(Q_t) for short positions

## Recorded filters

- Not specified.

## Risk controls

- Stop loss: Not specified
- Take profit: Not specified
- Position sizing: fixed absolute value of N units
