Skip to content

Instantly share code, notes, and snippets.

@thecatfix
Last active February 4, 2026 16:05
Show Gist options
  • Select an option

  • Save thecatfix/9e9c99d9882b211053c6ed0f86b2dc78 to your computer and use it in GitHub Desktop.

Select an option

Save thecatfix/9e9c99d9882b211053c6ed0f86b2dc78 to your computer and use it in GitHub Desktop.
KatanaEquities Pairs Trading Signal Report by- Compression probability signals for S&P 500 stock pairs

KatanaEquities Trading Signals Report

KatanaEquities Pairs Trading Signal Report by- Compression probability signals for S&P 500 stock pairs


Generated: January 26, 2026
Models: V2 (fixed training: BatchNorm, Dropout, proper 'both' spread)
Universe: S&P 500 stock pairs

Top Consensus Pairs (V2)

These pairs appear in 4+ models with p>0.70 and cointegration confirmed:

Pair Models Avg Prob Z-Score Action
CPB/GIS 4 0.772 -1.36 MONITOR (wait for z < -2)
AVB/EQR 4 0.775 -2.24 BUY SPREAD (Long AVB, Short EQR)

Actionable Signals (Z-Score Entry Threshold Met)

BUY SPREAD Signals (z < -1.5)

Pair Model Prob Z-Score Trade
AVB/EQR both_100ep 0.774 -2.24 Long AVB, Short EQR
EQR/UDR coint_25ep 0.758 -3.18 Long EQR, Short UDR
GEHC/RVTY coint_25ep 0.787 -2.89 Long GEHC, Short RVTY
HBAN/MTB both_50ep 0.731 -3.34 Long HBAN, Short MTB
ETN/GNRC coint_25ep 0.704 -2.08 Long ETN, Short GNRC
ALL/TRV both_100ep 0.735 -1.68 Long ALL, Short TRV

SELL SPREAD Signals (z > +1.5)

Pair Model Prob Z-Score Trade
MCHP/NXPI both_50ep 0.745 +2.04 Short MCHP, Long NXPI
PPL/WEC both_50ep 0.717 +1.97 Short PPL, Long WEC
DG/DLTR both_50ep 0.729 +1.69 Short DG, Long DLTR

Generated: January 29, 2026 Models: V2 (fixed training: BatchNorm, Dropout, proper 'both' spread) Universe: S&P 500 stock pairs

Top Consensus Pairs (V2)

These pairs appear in 2+ models with p>0.70 and cointegration confirmed:

Pair Models Avg Prob Z-Score Action
AVB/EQR 2 0.771 -2.24 BUY SPREAD (Long AVB, Short EQR)
BEN/RJF 2 0.754 1.82 Consider entry
BK/C 2 0.880 -0.36 MONITOR (wait for
BRO/MRSH 2 0.711 -0.74 MONITOR (wait for
CDNS/UBER 2 0.746 1.99 Consider entry
CPB/GIS 2 0.732 -1.36 MONITOR (wait for
EFX/VRSK 2 0.792 -1.31 MONITOR (wait for
EQR/UDR 2 0.747 -3.18 BUY SPREAD (Long EQR, Short UDR)
ERIE/MRSH 2 0.805 -0.73 MONITOR (wait for
FITB/KEY 2 0.843 -0.54 MONITOR (wait for

Actionable Signals (Z-Score Entry Threshold Met)

BUY SPREAD Signals (z < -1.5)

Pair Model Prob Z-Score Trade
ROP/TYL both_50ep 0.771 -3.52 Long ROP, Short TYL
ROP/TYL both_100ep 0.730 -3.52 Long ROP, Short TYL
EQR/UDR coint_10ep 0.735 -3.18 Long EQR, Short UDR
EQR/UDR coint_25ep 0.758 -3.18 Long EQR, Short UDR
GEHC/RVTY coint_10ep 0.708 -2.89 Long GEHC, Short RVTY
GEHC/RVTY coint_25ep 0.787 -2.89 Long GEHC, Short RVTY
AVB/EQR log_75ep 0.790 -2.24 Long AVB, Short EQR
AVB/EQR log_50ep 0.752 -2.24 Long AVB, Short EQR
ETN/GNRC coint_25ep 0.704 -2.08 Long ETN, Short GNRC
CMS/CNP both_50ep 0.743 -2.05 Long CMS, Short CNP

SELL SPREAD Signals (z > +1.5)

Pair Model Prob Z-Score Trade
NTRS/TROW both_50ep 0.785 2.28 Short NTRS, Long TROW
NTRS/TROW both_100ep 0.718 2.28 Short NTRS, Long TROW
BEN/TROW both_50ep 0.761 2.25 Short BEN, Long TROW
OTIS/XYL both_50ep 0.748 2.18 Short OTIS, Long XYL
CDNS/UBER both_100ep 0.754 1.99 Short CDNS, Long UBER
CDNS/UBER both_50ep 0.737 1.99 Short CDNS, Long UBER
PNR/XYL both_100ep 0.777 1.85 Short PNR, Long XYL
BEN/RJF both_100ep 0.778 1.82 Short BEN, Long RJF
BEN/RJF both_50ep 0.731 1.82 Short BEN, Long RJF
DG/DLTR log_75ep 0.734 1.69 Short DG, Long DLTR

Generated: February 03, 2026
Models: V2 (fixed training: BatchNorm, Dropout, proper 'both' spread)
Universe: S&P 500 stock pairs

Top Consensus Pairs

These pairs appear in 2+ models with p>0.70 and cointegration confirmed:

Pair Models Avg Prob Z-Score Action
APO/BEN 2 0.767 -2.63 BUY SPREAD(Long APO, Short BEN)
APO/NTRS 2 0.778 -2.64 BUY SPREAD(Long APO, Short NTRS)
APO/PFG 2 0.755 -2.91 BUY SPREAD(Long APO, Short PFG)
AVB/EQR 2 0.771 -2.24 BUY SPREAD(Long AVB, Short EQR)
BRO/MRSH 2 0.711 -0.74 MONITOR (wait for
CMS/D 2 0.738 -1.40 MONITOR (wait for
CMS/PEG 2 0.728 -0.94 MONITOR (wait for
CPB/GIS 2 0.732 -1.36 MONITOR (wait for
EFX/VRSK 2 0.801 -1.54 Consider entry
EQR/UDR 2 0.747 -3.18 BUY SPREAD(Long EQR, Short UDR)

Actionable Signals (Z-Score Entry Threshold Met)

BUY SPREAD Signals (z < -1.5)

Pair Model Prob Z-Score Trade
EQR/UDR coint_10ep 0.735 -3.18 Long EQR, Short UDR
EQR/UDR coint_25ep 0.758 -3.18 Long EQR, Short UDR

Understanding the Signal Columns

Column What It Means How to Use It
ticker_a / ticker_b The two stocks in the pair Trade both simultaneously
spread_zscore How far apart (standard deviations) < -2: A is cheap, > +2: A is expensive
compression_probability ML confidence spread will narrow > 0.70 = actionable signal (V2)
is_cointegrated Statistical confirmation they move together True = much safer to trade
hedge_ratio Shares of B per share of A Use for position sizing

Z-Score Action Guide

Z-Score    Interpretation           Action
─────────────────────────────────────────────────
  -3.0     Extremely oversold       STRONG BUY spread
  -2.0     Significantly oversold   BUY spread
  -1.5     Entry threshold          Consider entry
   0.0     Normal                   EXIT position
  +1.5     Entry threshold          Consider entry
  +2.0     Significantly overbought SELL spread
  +3.0     Extremely overbought     STRONG SELL spread

Trade Example: AVB/EQR

Current Signal:

  • Z-Score: -2.24 (AVB undervalued vs EQR)
  • Probability: 0.775 (77.5% confidence spread compresses)
  • Cointegrated: Yes (statistically confirmed relationship)
  • Hedge Ratio: 0.99

Trade Setup ($10k per leg):

LONG:  AVB - Buy $10,000 worth
SHORT: EQR - Short $10,000 worth (hedge_ratio ≈ 1.0)

Entry: Z-score = -2.24
Exit:  Z-score crosses 0 (spread normalized)
Stop:  Z-score < -4.0 (relationship may be broken)

Expected Outcome: When z-score returns to 0, both positions profit from convergence.


Risk Management

Entry Criteria (ALL must be true)

  • is_cointegrated = True
  • compression_probability > 0.70 (V2 threshold)
  • |spread_zscore| > 1.5 (meaningful divergence)
  • Sector makes sense (same industry preferred)

Exit Rules

  • Profit exit: Z-score crosses 0 (spread normalized)
  • Time exit: 20 trading days max hold
  • Stop loss: |Z-score| > 4.0 (relationship breakdown)

Position Sizing

  • Max 5% of portfolio per pair
  • Use hedge_ratio for dollar-neutral positioning
  • Never more than 3 pairs from same sector

About This Project

KatanaEquities is built on KatanaDNN, a proprietary 5-layer neural network originally developed for fixed income markets.

Background:

  • Originated from Katana Labs (ING spinout, 2019)
  • Analyzed 200M+ bond pairs with 91% accuracy
  • Integrated on Bloomberg Terminal (325K+ users)
  • IP acquired in 2022, adapted for equity markets

Architecture: 90→90→90→90→90→2 (or 180→90→... for 'both' spread type)

You can't vibe code a 5-layer DNN - this represents production-grade ML infrastructure, not weekend prompt engineering.

Full story and whitepaper


References


Generated by KatanaEquities V2 - Properly trained models with BatchNorm + Dropout

Comments are disabled for this gist.