Trade Signals

Get Latest Score

Composite Market State Index (MSI) — single 0–100 regime gauge.

Aggregates 6 option-structure components into one reading of "what kind of market are we in right now?" Each component returns a raw score in [-1, +1], multiplied by its weight (points) to form a signed contribution. The contributions are summed into a single signed offset, which is squashed onto the final scale: MSI = 50 + 50 * tanh(sum_offset / 50), clamped to [0, 100]. This is a directionless regime gauge: a high MSI means trends can run (NOT bullish) and a low MSI means the tape is choppy / fragile (NOT bearish). Read direction from the Trade Bias panel, never from this number.

Params: underlying (default SPY). Returns 404 when no rows exist.

Components and weights:

ComponentMax ptsWhat it measures
net_gex_sign16Sign of dealer net gamma
gamma_anchor30Blended proximity to gamma flip / local gamma density / max-gamma strike
put_call_ratio12OI-weighted P/C tilt
volatility_regime6Realized/VIX regime
order_flow_imbalance19Smart-money premium-weighted call vs put flow
dealer_delta_pressure17Dealer net delta forced-hedge direction

gamma_anchor exposes its three sub-signals nested under context: flip_distance_subscore, local_gamma_subscore, price_vs_max_gamma_subscore, plus the active blend_weights. Use those for the per-sub-signal breakdown that previously appeared as standalone components.

Returns:

{
  "composite_score": 63.42,
  "components": {
    "net_gex_sign":          {"max_points": 16, "contribution":  9.60, "score":  0.6},
    "gamma_anchor":          {
      "max_points": 30,
      "contribution":  -2.10,
      "score": -0.07,
      "context": {
        "score": -0.07,
        "flip_distance_subscore":  0.21,
        "local_gamma_subscore":   -0.42,
        "price_vs_max_gamma_subscore": 0.17,
        "blend_weights": {"flip_distance": 0.45, "local_gamma": 0.35, "price_vs_max_gamma": 0.20}
      }
    },
    "put_call_ratio":        {"max_points": 12, "contribution":  2.40, "score":  0.2},
    "volatility_regime":     {"max_points":  6, "contribution": -0.08, "score": -0.013},
    "order_flow_imbalance":  {"max_points": 19, "contribution":  6.65, "score":  0.35},
    "dealer_delta_pressure": {"max_points": 17, "contribution":  3.40, "score":  0.2}
  }
}
  • composite_score — float [0, 100]; 50 is the neutral/fallback value.
  • components[*].max_points — the component's weight ceiling.
  • components[*].contribution — signed points fed into the pre-squash sum (sum_offset), rounded to 4 decimals.
  • components[*].score — raw component score [-1, +1], 6-decimal precision.
  • components[*].context — optional, present when the component emits diagnostic sub-fields (e.g. gamma_anchor exposes its three subscores here).

Regime interpretation:

  • ≥ 70 — trend/expansion; favor directional trades in the prevailing bias.
  • 40–70 — controlled trend; moderate directional edge, size down.
  • 20–40 — chop/range; fade extremes, avoid trend trades.
  • < 20 — high-risk reversal; mean-reversion only.

Page design. Big radial gauge (0–100). Horizontal bar stack below showing each component's signed contribution. Hover for score and max_points. For gamma_anchor specifically, render a smaller secondary breakdown of the three subscores from context so operators retain visibility into which sub-signal is driving the blended reading.

get/api/signals/score

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/score
  • Auth: HTTP bearer

Query parameters

underlyingstring

Response

Successful Response

unknown required

Changes

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