---
title: Indicator Catalog
description: All 56 technical indicators across 7 categories, including the Möbius Lab proprietary subset.
---

# Indicator Catalog

The engine ships **56** technical indicators (classic public indicators plus a small MobiusQuant proprietary set). Math is aligned with TradingView Pine Script. Each indicator has:

- A self-describing parameter signature ([`/api/indicators/registry`](https://api.mobiusquant.ai/api/indicators/registry))
- A drawing protocol for chart clients ([`/api/indicators/catalog`](https://api.mobiusquant.ai/api/indicators/catalog))
- A knowledge entry — description, signal interpretation, caveats, analysis focus points (Chinese, see `/zh/indicators/<id>`)

## Why this isn't just numbers — knowledge attached to every response

This is the key differentiator if you're building an **AI Agent** on top of indicators. Call `/api/indicators?explain=true` and the response carries the numerical series **plus** a `knowledge` block telling your LLM exactly how to read those numbers.

```bash
POST https://api.mobiusquant.ai/api/indicators?explain=true
  body: {"exchange":"binance","market":"perp","symbol":"BTCUSDT",
         "interval":"5m","limit":100,
         "calc":[{"name":"cvd"}]}
```

Response shape:

```json
{
  "data": {
    "cvd_hist":  [-12, -8, -3, 5, 11, ...],
    "bear_div":  [false, false, true, ...],
    "bear_div_strength": [0, 0, 2, ...]
  },
  "knowledge": {
    "summary_focus": [
      "当前 cvd_hist 为正还是为负,反映买/卖力量主导",
      "最近是否触发了牛/熊背离,强度等级(Normal/Good/Strong)",
      "三个周期的背离信号是否存在共振"
    ],
    "signals": {
      "bear_divergence": "价格创新高但 cvd_hist 高点降低,多头量能不足,潜在空头反转",
      "strong_signal":   "强度=3(Strong),反转概率显著提升"
    },
    "caveats": "背离需要 fractal 确认延迟;单边趋势中信号较少;是反转预警而非即时信号"
  }
}
```

### Why this matters for your LLM

| Field | Source | What it does for your LLM |
| --- | --- | --- |
| `summary_focus` | `engine_indicator_knowledge.summary_focus` | "Look at these things, in this order" — gives the LLM a structured walkthrough instead of free-form analysis |
| `signals` | `.signals` | Precise threshold definitions (e.g. RSI overbought = 70, not the LLM's guess) — prevents hallucinated rules |
| `caveats` | `.caveats` | Author-written pitfalls (e.g. fractal confirmation lag, fewer signals in single-direction trends) — prevents over-confident reads |
| `guide_desc` | `.guide_desc` | Use-case context — when this indicator is most informative |

**The result**: your LLM stops guessing standard interpretive rules from training memory. It reads numbers + the rubric and produces grounded analysis. Hallucination drops noticeably; output structure becomes consistent across runs.

::: tip Recommended Skill pattern
Pass BOTH `data` and `knowledge` to your downstream LLM in a single prompt. Don't drop `knowledge` to save tokens — it's the part that makes the analysis trustworthy. See the [Skill Runtime Lookup Guide](/lookup-guide) for details.
:::

---


## Category breakdown

| Category | Count | Examples |
| --- | --- | --- |
| `base` | 1 | `price` |
| `momentum` | 18 | MACD, RSI family, TSI, ... |
| `oscillator` | 4 | RSI, Fisher Transform, RVI |
| `trend` | 12 | EMA, SuperTrend, PSAR, ... |
| `trend_strength` | 4 | ADX, Aroon, Vortex |
| `volatility` | 10 | ATR, Bollinger, Keltner, ... |
| `volume` | 7 | OBV, CMF, CVD, KVO, VWAP |

::: tip Registry vs catalog
- `/api/indicators/registry` → full self-description (params, output cols, types) — consumed by programs
- `/api/indicators/catalog` → chartable subset + drawing metadata — consumed by chart clients
- `/api/indicators` → POST compute endpoint, returns klines + indicator values
:::

---

## Möbius Lab (proprietary)

| ID | Category |
| --- | --- |
| [`mobius_trend`](./mobius_trend) | trend |

These are MobiusQuant in-house indicators, not classic public ones.

---

## All indicators

### base (1)

| ID |
| --- |
| [`price`](./price) |

### momentum (18)

| ID |
| --- |
| [`accelerator_oscillator`](./accelerator_oscillator) |
| [`awesome_oscillator`](./awesome_oscillator) |
| [`cci`](./cci) |
| [`chande_mo`](./chande_mo) |
| [`connors_rsi`](./connors_rsi) |
| [`coppock_curve`](./coppock_curve) |
| [`dpo`](./dpo) |
| [`kst`](./kst) |
| [`macd`](./macd) |
| [`momentum`](./momentum) |
| [`ppo`](./ppo) |
| [`roc`](./roc) |
| [`smi_ergodic`](./smi_ergodic) |
| [`stoch_rsi`](./stoch_rsi) |
| [`trix`](./trix) |
| [`tsi`](./tsi) |
| [`ultimate_oscillator`](./ultimate_oscillator) |
| [`williams_r`](./williams_r) |

### oscillator (4)

| ID |
| --- |
| [`fisher_transform`](./fisher_transform) |
| [`rci_ribbon`](./rci_ribbon) |
| [`rsi`](./rsi) |
| [`rvi`](./rvi) |

### trend (12)

| ID |
| --- |
| [`alligator`](./alligator) |
| [`alma`](./alma) |
| [`ema`](./ema) |
| [`hma`](./hma) |
| [`lsma`](./lsma) |
| [`mcginley_dynamic`](./mcginley_dynamic) |
| [`mobius_trend`](./mobius_trend) |
| [`parabolic_sar`](./parabolic_sar) |
| [`supertrend`](./supertrend) |
| [`tema`](./tema) |
| [`vwma`](./vwma) |
| [`williams_stops`](./williams_stops) |

### trend_strength (4)

| ID |
| --- |
| [`adx`](./adx) |
| [`aroon_oscillator`](./aroon_oscillator) |
| [`choppiness_index`](./choppiness_index) |
| [`vortex`](./vortex) |

### volatility (10)

| ID |
| --- |
| [`atr`](./atr) |
| [`bollinger`](./bollinger) |
| [`chande_kroll_stop`](./chande_kroll_stop) |
| [`donchian_channels`](./donchian_channels) |
| [`fibonacci_bollinger_bands`](./fibonacci_bollinger_bands) |
| [`historical_volatility`](./historical_volatility) |
| [`keltner_channels`](./keltner_channels) |
| [`linear_regression_channel`](./linear_regression_channel) |
| [`mass_index`](./mass_index) |
| [`stdev`](./stdev) |

### volume (7)

| ID |
| --- |
| [`chaikin_oscillator`](./chaikin_oscillator) |
| [`cmf`](./cmf) |
| [`cvd`](./cvd) |
| [`kvo`](./kvo) |
| [`obv`](./obv) |
| [`pvo`](./pvo) |
| [`vwap`](./vwap) |

---

## Usage examples

### Single indicator: EMA(20) on BTC 5-minute

```bash
curl -X POST -H "Authorization: Bearer mq_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "exchange": "binance",
    "market":   "perp",
    "symbol":   "BTCUSDT",
    "interval": "5m",
    "limit":    100,
    "calc":     [{"name": "ema", "params": {"period": 20}}]
  }' \
  https://api.mobiusquant.ai/api/indicators
```

### Multiple indicators: RSI + MACD + Bollinger

```bash
curl -X POST -H "Authorization: Bearer mq_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "exchange": "binance",
    "market":   "perp",
    "symbol":   "BTCUSDT",
    "interval": "1h",
    "limit":    200,
    "calc": [
      {"name": "rsi",       "params": {"period": 14}},
      {"name": "macd",      "params": {"fast": 12, "slow": 26, "signal": 9}},
      {"name": "bollinger", "params": {"period": 20, "stdev": 2}}
    ]
  }' \
  https://api.mobiusquant.ai/api/indicators
```

### Same indicator with different params (use `id` to disambiguate)

```json
{
  "calc": [
    {"id": "ema_fast", "name": "ema", "params": {"period": 12}},
    {"id": "ema_slow", "name": "ema", "params": {"period": 26}}
  ]
}
```

---

## Full interpretation guide

The detailed signal interpretation, analysis focus points, and caveats for each indicator are documented in Chinese. Each English detail page links to its Chinese counterpart at the bottom.

For the rich Chinese version of this catalog: [Chinese version](/zh/indicators/).

## Companion endpoints

| Method | Path | Purpose |
| --- | --- | --- |
| GET | `/api/indicators/registry` | All indicators — param signatures + output columns |
| GET | `/api/indicators/catalog` | Chartable subset + drawing protocol |
| POST | `/api/indicators` | Compute endpoint — returns klines + indicator values |
| POST | `/api/chart` | Same + drawing protocol for chart-rendering clients |
