---
title: "Get Dealer Delta Pressure Signal"
method: GET
path: "/api/signals/basic/dealer-delta-pressure"
tags: ["Trade Signals"]
---

# Get Dealer Delta Pressure Signal

`GET /api/signals/basic/dealer-delta-pressure`

## Request

- Base URL: `https://api.zerogex.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.zerogex.io/api/signals/basic/dealer-delta-pressure`
- Auth: HTTP bearer

Dealer net-delta imbalance (DNI) — intraday leading indicator.

Answers: *does the assumed dealer-position model produce net-short or
net-long options delta?* This is modeled options-only inventory, not
observed dealer ownership or a forecast of executed hedge flow.

**Logic highlights** (`src/signals/basic/dealer_delta_pressure.py`).
Three data paths in priority order:
1. `ctx.dealer_net_delta` — if populated upstream, used directly.
2. `gex_by_strike.{call_delta_oi, put_delta_oi}` — sum
   `−(call_delta_oi + put_delta_oi)` across strikes (dealer sign is
   flipped from customer OI; customers are typically long calls & puts).
3. Distance-proxy fallback — use `call_oi` / `put_oi` with a linear
   delta proxy (0.5 at ATM, decaying to 0 at ±5% OTM), ×100 shares/contract.

- `score = −clip(dni / SIGNAL_DNI_NORM, [-1, 1])` (default norm ~$3e8
  shares-equivalent). **Inverted**: dealer short delta (negative DNI)
  scores bullish, because they must buy into strength.
- **Abstains (score=0)** if no data path yields an estimate.

**Params:**
- `symbol` (default `SPY`). Returns 404 if no row exists yet.

**Returns:**
```json
{
  "underlying": "SPY", "timestamp": "...",
  "clamped_score": 0.45, "score": 45.1, "direction": "bullish",
  "weighted_score": 0.0, "weight": 0.0,
  "dealer_net_delta_estimated": -135000000.0,
  "dni_normalized": -0.45,
  "source": "gex_by_strike.delta_oi",
  "context_values": {
    "dealer_net_delta_estimated": -135000000.0,
    "dni_normalized": -0.45,
    "source": "gex_by_strike.delta_oi"
  },
  "score_history": [{"score": 28.1, "timestamp": "..."}, "...up to 90"]
}
```

- `score` / `clamped_score` — `[-100, +100]` / `[-1, +1]`; `+` = bullish.
- `dealer_net_delta_estimated` — shares-equivalent, signed.
  Negative = dealer net **short** delta (bullish for price after inversion).
- `dni_normalized` — `dni / DNI_NORM` clipped to `[-1, +1]`.
  **Sign is opposite the score** (signal is inverted).
- `source` — data-path quality:
  `"dealer_net_delta_field"` (best) | `"gex_by_strike.delta_oi"` |
  `"gex_by_strike.distance_proxy"` (weakest) | `"unavailable"`.
- `score_history` — up to 90 recent points.

**Trader interpretation.**
- `score > +60` → dealers deeply short delta; any up-move likely accelerated
  (chase risk). Favor long-delta plays (calls, long futures).
- `score < −60` → dealers net long; rallies will be sold into. Favor
  mean-reversion or short-delta debit spreads.
- `source = "gex_by_strike.distance_proxy"` → fallback-quality estimate;
  widen conviction threshold before acting.
- **Cross-signal:** when this disagrees with `gex_gradient` (structural
  view), trust `dealer_delta_pressure` on a ≤ 30m horizon.

**Page design.** Single horizontal ±100 bar labeled "Dealer Delta Pressure."
Subtext: `"Dealers short delta → bullish"` on `+` side;
`"Dealers long delta → bearish"` on `−` side. Data-quality chip shows
the `source` value. Sparkline of `score_history` beneath.

## Query parameters

- `symbol` string

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/zerogex/apis/zerogex-api.md) · [All operations](https://skmtc.dev/zerogex/apis/zerogex-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zerogex/apis/zerogex-api/revisions/753b26bf0592?raw)
