Taker Intensity Guide

One of Blave's core alpha indicators — what it measures, why it matters, and three ways to build strategies with it.

Last updated 2026-10
Key Takeaways
  • Taker Intensity (TI) is a Blave proprietary indicator of whether futures traders are aggressively going long or short, and by how much more than usual. It reads how unusual the activity is, not absolute volume.
  • High TI is not always bullish: spikes during sharp drops are often short liquidations — combine with Holder Concentration to tell them apart.
  • Three ways to use it: threshold with a dead zone (most common), zero-line crossover, and regime filter (most powerful).
  • Longer windows are smoother: a strategy can check every 5 minutes but read 24h TI to avoid short-window noise.
  • All Blave alpha indicators are reference data, not buy/sell signals — check the stat field and is_data_sufficient.

What is Taker Intensity?

Taker Intensity (TI) is a Blave proprietary indicator that measures whether futures traders are aggressively going long or aggressively going short, compared with the coin's usual level. "Aggressive" means the side that does not wait with a resting order but takes the price to fill right away.

TI ValueWhat it means
Positive (+)More aggressive buying than usual — traders aggressively going long
Zero (≈ 0)Balanced — neither side is dominant
Negative (−)More aggressive selling than usual — traders aggressively going short

No upper or lower bound: around 0 is the normal level, and the larger the absolute value, the more unusual. Beyond ±2 is rare and beyond ±3 extreme, on the same scale for every coin. Scan your thresholds with a backtest. The same buying pressure might produce only TI +0.5 in an active market but +2.5 in a quiet one. Blave offers TI on six timeframes: 15min, 1h, 4h, 8h, 24h, 3d. Longer timeframes are smoother and suit position strategies; shorter ones react faster but carry more noise.

The critical nuance: high TI ≠ always bullish

This is where most people misread the indicator. Aggressive buying has two sources:

  1. Genuine buyers — traders who want to go long and are willing to pay the ask.
  2. Short liquidations (forced closes) — when a short position is force-closed, the exchange buys it back. That forced buying also pushes TI up, but nobody is actually bullish.
Key insight: A sudden spike in TI during a sharp price drop is often short liquidations, not buyer conviction. To distinguish them, combine TI with Holder Concentration — if HC is positive (machine/institutional long concentration) and TI is positive, that's a much stronger signal than TI alone.

Three ways to use Taker Intensity

1. Threshold (most common)

Enter long when TI exceeds an entry threshold; exit when TI falls below an exit threshold. The dead zone between the two thresholds prevents the strategy from flip-flopping when TI hovers near a single level.

Python
ENTRY_TH = 1.686
EXIT_TH  = -0.473

def compute_signals(df, entry_th=None, exit_th=None):
    eth = entry_th if entry_th is not None else ENTRY_TH
    xth = exit_th  if exit_th  is not None else EXIT_TH
    ti  = df['TI']
    signal = pd.Series(np.nan, index=df.index)
    signal[ti > eth] = 1.0   # enter long
    signal[ti < xth] = 0.0   # go flat
    return signal

This is exactly the logic in the btc_ti_5min example — TI on a 24h window, checked every 5 minutes. The ENTRY_TH = 1.686 and EXIT_TH = -0.473 values were found by parameter scanning, not guessed.

A separate independent backtest (2022/01–2025/12, long above TI 1.8 / short below -1.8 — a different threshold from btc_ti_5min) posted +1000.3% total return, -27.74% max drawdown, and a 1.682 Sharpe ratio across both bull and bear regimes. The two parameter sets differ but point the same direction — evidence the TI momentum filter holds up across thresholds, not a guarantee any threshold works. Always scan and verify your own.

2. Crossover (simpler, often noisier)

Treat the zero line as the signal threshold. Long when TI crosses above zero, flat when it crosses below. This is intuitive but tends to generate many short-lived trades on 15min or 1h timeframes, running up fees. Works better on 8h or 24h windows where crossovers are more meaningful.

Python
signal[ti > 0] = 1.0
signal[ti < 0] = 0.0

3. Regime filter (most powerful)

Use TI as a gate for another primary signal. Only take entries when TI is positive (net buying pressure exists). This prevents trend strategies from entering into heavy selling environments.

Python
primary = compute_primary_signals(df)  # e.g. SMA cross
ti_positive = (df['TI'] > 0)
signal = primary.copy()
signal[~ti_positive] = 0.0  # suppress entries when TI is negative

Regime filtering typically reduces trade count and fees while improving Sharpe, at the cost of missing some trades. It works best with TI on longer timeframes (8h, 24h) as a macro filter on shorter-interval strategies.

Choosing the right timeframe

TI WindowBest forNotes
15minVery short-term scalpingVery noisy, high fee exposure
1hIntraday strategiesBalanced
4hSwing strategiesFewer signals, higher quality
8hRegime filter on short strategiesGood macro signal
24hDaily position managementSmoothest, least noise
3dMulti-day trend confirmationVery smooth, good for regime detection

In btc_ti_5min, the strategy runs every 5 minutes but uses 24h TI. This is intentional: you want the speed of a 5-minute check (react quickly to TI crossing a threshold) without the noise of a 5-minute TI window.

Combining TI with other indicators

TI in isolation is useful. TI combined with Blave's other alpha indicators is powerful:

CombinationPurpose
TI + Holder Concentration (HC)Distinguish genuine buying from short squeezes — the full HC × TI matrix is in the Holder Concentration guide.
TI + Whale Hunter (WH)WH detects large OI/volume changes; TI confirms direction. Both strong = high-conviction entry.
TI + Market Direction (MD)Use MD as a macro filter, TI as the entry trigger. Reduces against-trend trades.
Remember: All Blave alpha indicators are reference data, not buy/sell signals. They are inputs to your strategy logic — the stat field (up_prob, exp_value, return_ratio) provides historical context for each indicator reading. Always check is_data_sufficient before trusting the stats.