{
  "id": 858,
  "rank": 2715,
  "name": "Kalman Filter-Based Pairs Trading",
  "aka": [
    "Kalman Pairs Trading Strategy",
    "Kalman Filter Strategy"
  ],
  "family": "B",
  "subtype": "B4",
  "one_liner": "A pairs trading strategy using Kalman Filter to dynamically adjust hedge ratio between two ETFs.",
  "market_regime": "any",
  "timeframes": [
    "daily"
  ],
  "symbols": [
    "TLT",
    "IEI"
  ],
  "sessions": [
    "any"
  ],
  "indicators": [],
  "entry_long": [
    "e_t < -sqrt(Q_t)"
  ],
  "entry_short": [
    "e_t > sqrt(Q_t)"
  ],
  "exit_rules": [
    "e_t > -sqrt(Q_t) for long positions",
    "e_t < sqrt(Q_t) for short positions"
  ],
  "filters": [],
  "stop_loss": null,
  "take_profit": null,
  "position_size": "fixed absolute value of N units",
  "evidence_type": "backtest_shown",
  "completeness": 80.0,
  "signal_warnings": null,
  "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."
  ],
  "build_warnings": null,
  "canonical": "https://prismaticalgos.com/compendium/algo/858-kalman-filter-based-pairs-trading",
  "snapshot": "2026-10-31 15:46 UTC",
  "source_url": "https://www.quantstart.com/articles/kalman-filter-based-pairs-trading-strategy-in-qstrader/",
  "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."
}
