Trade Signals

Get Trap Detection Signal

Trap detector — failed-breakout fade opportunities at gamma walls.

Flags failed breakouts (bull trap / bear trap) as fade opportunities when dealer long gamma reinforces a reversal at a resistance/support wall. Standalone detector, not part of the MSI composite.

Logic highlights (src/signals/advanced/trap_detection.py):

  • breakout_buffer_pct = min(0.1%, 0.15 × realized_sigma × √5) — vol-scaled noise floor.
  • Upside-fail (bear fade): close > resistance + buffer AND net_gex > 0 AND gamma strengthening AND call wall NOT migrating up.
  • Downside-fail (bull fade): mirror, with put wall NOT migrating down.
  • Score = 0.4 + 0.4 × distance_strength + 0.2 × gex_boost, then flow multiplier.
  • Triggered when |score| ≥ 25 (clamped 0.25).

Params: symbol (default SPY). Returns 404 when no data exists.

Returns:

{
  "score": -35.0, "clamped_score": -0.35, "direction": "bearish",
  "triggered": true,
  "signal": "bearish_fade",
  "breakout_up": true, "breakout_down": false,
  "net_gex_delta": 840000000.0,
  "net_gex_delta_pct": 0.018,
  "broken_resistance_level": 680.0,
  "broken_support_level": null,
  "breakout_buffer_pct": 0.0008,
  "call_wall": 680.0, "prior_call_wall": 680.0,
  "put_wall": 670.0, "prior_put_wall": 670.0,
  "call_wall_migrated_up": false, "put_wall_migrated_down": false,
  "context_values": {"...close, realized_sigma, long_gamma, gamma_strengthening, call_flow_decelerating, put_flow_decelerating..."},
  "score_history": [{"score": -35.0, "timestamp": "..."}, "...up to 90"]
}
  • score — [-100, +100].
  • signal — "bullish_fade" | "bearish_fade" | "none".
  • triggered — true when |score| ≥ 25.
  • breakout_up / breakout_down — whether price has crossed the buffer.
  • call_wall / prior_call_wall — current and ~30min-ago resistance level.
  • put_wall / prior_put_wall — current and ~30min-ago support level.
  • call_wall_migrated_up — invalidates a bear fade when true.
  • put_wall_migrated_down — invalidates a bull fade when true.

Trader interpretation:

  • signal == "bearish_fade" + breakout_up == true → price poked above the broken_resistance_level (now sitting below close) but dealers are long gamma and the call wall hasn't migrated; short-call-spread / put-debit.
  • signal == "bullish_fade" → mirror play; price slipped beneath broken_support_level (now sitting above close), put wall hasn't migrated, and is set up for a reclaim.
  • call_wall_migrated_up == true (bear fade) or put_wall_migrated_down == true (bull fade) → setup invalidated; dealers repositioning with price.

Note on field naming. broken_resistance_level and broken_support_level refer to the level price has just breached — so on an upside breakout the "broken resistance" sits below close, and on a downside breakdown the "broken support" sits above close. This is intentional: the trap setup keys off the recently-breached level, not the next unbroken one above/below.

Page design. Price ladder showing broken_support / close / broken_resistance with breakout-buffer bands. Red/green "TRAP" badge when triggered. Chips for gamma_strengthening, call_wall_migrated_up, put_wall_migrated_down.

get/api/signals/advanced/trap-detection

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/advanced/trap-detection
  • Auth: HTTP bearer

Query parameters

symbolstring

Response

Successful Response

unknown required

Changes

No recorded changes to this operation across all 1 revision of this API.