---
title: Skill Runtime Lookup Guide
description: How a MobiusQuant Skill (running inside Claude Code / Codex / OpenClaw / Hermes) should look up indicators and market symbols on demand.
---

# Skill Runtime Lookup Guide

> Audience: a MobiusQuant **Skill** running inside an AI Agent tool (Claude Code, Codex, OpenClaw, Hermes, or similar). This page tells the Skill **where to fetch what**, in what order, when the end user asks about indicators or market symbols.
>
> Paste-friendly: drop a link to this page into your `SKILL.md`, or paste the relevant sections inline.

---

## TL;DR

| User intent | Best source | Why |
| --- | --- | --- |
| "What indicators do you have?" | `GET /llms-full.txt` (this site) | Single 25 KB fetch lists all 56 indicators in English |
| "What params does \`X\` take?" | `GET /indicators/<id>.md` (this site) | Structured English, no narrative noise |
| "How do I interpret \`X\` signals?" | `GET /zh/indicators/<id>.md` (this site) | Chinese narrative — interpretation, caveats, focus points |
| "What's the canonical symbol for `<alias>`?" | `GET /api/symbols/search?q=<alias>` (engine) | Live fuzzy lookup, includes Chinese/English aliases |
| "Is `<symbol>` on `<venue>`?" | `GET /api/markets/<exchange>/<market>/symbols` (engine) | Authoritative live list |
| "What's BTC's 5m kline right now?" | `POST /api/klines` or `POST /api/indicators` (engine) | Live data — always use the API, never cite cached docs |
| **"How do I interpret these indicator values?"** | **`POST /api/indicators?explain=true`** (engine) | **Response carries `knowledge.summary_focus` / `signals` / `caveats` — pass these to your LLM verbatim, do NOT have it guess interpretation rules** |

**Rule of thumb**: static reference info → fetch from `docs.mobiusquant.ai`. Live data → call `api.mobiusquant.ai`. **Indicator interpretation rubrics → always include `?explain=true` and forward the knowledge block to your LLM.**

---

## Static reference (docs.mobiusquant.ai)

This site is **public**, **CORS-enabled**, **no token required**. Fetch and cache freely.

### Bootstrapping: one-shot full reference

```http
GET https://docs.mobiusquant.ai/llms-full.txt
```

Returns ~25 KB of structured English covering: API token rules, all 11 venues, all 56 indicators (with default params + output columns), Skill integration, and AI agent guidance.

**Recommended**: fetch once at Skill startup (or first time the user mentions data/indicators). Cache for the session.

### Per-indicator detail

```http
GET https://docs.mobiusquant.ai/indicators/<id>.md         # English (structured)
GET https://docs.mobiusquant.ai/zh/indicators/<id>.md      # Chinese (with interpretation)
```

Where `<id>` is the canonical lowercase ID. Full list of 56 IDs:

```
accelerator_oscillator awesome_oscillator cci chande_mo connors_rsi
coppock_curve dpo kst macd momentum ppo roc smi_ergodic stoch_rsi
trix tsi ultimate_oscillator williams_r          # momentum (18)

fisher_transform rci_ribbon rsi rvi              # oscillator (4)

alligator alma ema hma lsma mcginley_dynamic
mobius_trend parabolic_sar supertrend tema
vwma williams_stops                              # trend (12)

adx aroon_oscillator choppiness_index vortex     # trend_strength (4)

atr bollinger chande_kroll_stop donchian_channels
fibonacci_bollinger_bands historical_volatility
keltner_channels linear_regression_channel
mass_index stdev                                 # volatility (10)

chaikin_oscillator cmf cvd kvo obv pvo vwap      # volume (7)

price                                            # base (1)
```

**Möbius Lab (proprietary)**: `mobius_trend`. These are MobiusQuant in-house indicators, not classic public ones.

### Catalog & navigation

| URL | Use |
| --- | --- |
| `/llms.txt` | 2 KB site index (English) — overview before deep-diving |
| `/llms-full.txt` | 25 KB full English reference — recommended first fetch |
| `/indicators/index.md` | English catalog overview |
| `/zh/indicators/index.md` | Chinese catalog overview |
| `/markets.md` | English venue + canonical-symbol rules |
| `/zh/markets.md` | Chinese venue + **full enumerated symbol lists** (all 512 with company names) |
| `/token.md` | Token application + Bearer auth + rate limits |
| `/agents.md` | General AI Agent operating manual |

All HTML pages also resolve as `.md` at the same path. CORS `*` on every `.md` and `.txt`.

---

## Live data (api.mobiusquant.ai)

**Optional** `Authorization: Bearer mq_<43chars>`. Without a token you still get 10 req/min per IP (good for exploration). Add a token to upgrade to 60 req/min. Get one free at <https://www.mobiusquant.ai/zh/apply-token> (7-day anonymous) or <https://www.mobiusquant.ai/zh/account> (logged-in permanent).

Rate limit: anonymous 10 req/min per IP · with token 60 req/min.

### Discovery endpoints (live, authoritative)

```bash
# All venues + WS health
curl -H "Authorization: Bearer mq_xxx" https://api.mobiusquant.ai/api/markets

# Symbols on one venue
curl -H "Authorization: Bearer mq_xxx" \
     https://api.mobiusquant.ai/api/markets/binance/perp/symbols

# Live indicator catalog (params + output cols)
curl -H "Authorization: Bearer mq_xxx" https://api.mobiusquant.ai/api/indicators/registry

# Chartable subset + drawing protocol
curl -H "Authorization: Bearer mq_xxx" https://api.mobiusquant.ai/api/indicators/catalog

# Interval support matrix
curl -H "Authorization: Bearer mq_xxx" https://api.mobiusquant.ai/api/intervals
```

### Natural-language symbol resolution

The user says "BTC", "比特币", "Tencent", "茅台" — let the engine resolve:

```bash
curl -H "Authorization: Bearer mq_xxx" \
     "https://api.mobiusquant.ai/api/symbols/search?q=比特币"
# → [{"canonical": "BTCUSDT", "exchange": "binance", "market": "perp", ...}]
```

Or fetch the full mapping table once:

```bash
curl -H "Authorization: Bearer mq_xxx" https://api.mobiusquant.ai/api/symbols/builtin
```

### Compute / data endpoints

```bash
# Raw OHLCV
GET https://api.mobiusquant.ai/api/klines?exchange=binance&market=perp&symbol=BTCUSDT&interval=5m&limit=100

# Indicators on klines
POST https://api.mobiusquant.ai/api/indicators
  body: {
    "exchange":"binance","market":"perp","symbol":"BTCUSDT",
    "interval":"5m","limit":100,
    "calc":[{"name":"rsi","params":{"period":14}}]
  }

# Same + chart drawing protocol
POST https://api.mobiusquant.ai/api/chart

# Compute indicators on caller-supplied OHLCV (backtest / custom feed)
POST https://api.mobiusquant.ai/api/indicators/compute
  body: {
    "klines": [[1735689600000, 95000, 95500, 94800, 95200, 1234.5], ...],
    "interval": "1h",
    "calc": [{"name":"rsi","params":{"period":14}}]
  }
  # ≤ 2000 bars, no warmup buffer (caller owns the history)
```

---

## Canonical symbol rules (bake in, no fetch needed)

| Asset class | Form | Examples |
| --- | --- | --- |
| Crypto | `{BASE}{QUOTE}` all-upper, no separator | `BTCUSDT`, `BTCUSDC`, `1000PEPEUSDT` |
| A-shares (`stock:cn`) | 6-digit bare code (no `sh`/`sz` prefix, no `.SS` suffix) | `600519`, `300750` |
| Hong Kong (`stock:hk`) | 5-digit with leading zero | `00700`, `09988` |
| US (`stock:us`) | Bare ticker | `AAPL`, `NVDA` |
| Forex (`forex:spot`) | 6-letter `{BASE}{QUOTE}` | `EURUSD`, `USDJPY` |

The engine auto-translates native venue formats. You don't need to convert `BTC-USDT-SWAP` → `BTCUSDT` yourself; the engine handles it. But for **consistency in your prompts and citations**, always use canonical form.

---

## Decision flow

When the user asks something data-related:

```
┌─ Is the user asking about LIVE data (current price, current indicator value)?
│   └─ YES → call api.mobiusquant.ai with Bearer token
│           - /api/klines for raw OHLCV
│           - /api/indicators for computed values
│           - /api/chart for klines + drawing protocol
│
├─ Is the user asking what's AVAILABLE (which indicators, which venues)?
│   └─ Have you fetched /llms-full.txt this session?
│       ├─ YES → answer from cache
│       └─ NO  → fetch /llms-full.txt once, then answer + cache
│
├─ Is the user asking HOW TO INTERPRET an indicator?
│   └─ Fetch /zh/indicators/<id>.md (Chinese — has signal interpretation + caveats)
│
├─ Is the user asking about a SPECIFIC SYMBOL's existence / canonical form?
│   └─ Call /api/symbols/search?q=<user's words> (engine resolves Chinese/English aliases)
│
└─ Is the user asking about PARAMETERS or OUTPUT COLUMNS of an indicator?
    └─ Fetch /indicators/<id>.md (English structured) OR /api/indicators/registry (live)
```

---

## Caching guidance

- `/llms-full.txt`, `/indicators/<id>.md`, `/markets.md` — content updates **infrequently** (when new indicators are added or venue list adjusts). Cache for the entire Skill session. Refresh on next session start.
- `/api/markets`, `/api/indicators/registry` — live data, but content also rarely changes minute-to-minute. Safe to cache for 5-10 minutes.
- `/api/klines`, `/api/indicators` (compute) — **always live**, never cache.

---

## Quick example: user asks "show me MACD on BTC 1-hour"

1. Skill identifies intent: compute indicator on live data
2. Resolve symbol: user said "BTC" → from cached `/llms-full.txt` or by calling `/api/symbols/search?q=BTC` → canonical `BTCUSDT` on `binance:perp`
3. Resolve indicator: user said "MACD" → from cache: `macd`, default params `{fast:12, slow:26, signal:9}`
4. Call live:
   ```bash
   curl -X POST -H "Authorization: Bearer $MOBIUS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{"exchange":"binance","market":"perp","symbol":"BTCUSDT",
          "interval":"1h","limit":100,
          "calc":[{"name":"macd","params":{"fast":12,"slow":26,"signal":9}}]}' \
     https://api.mobiusquant.ai/api/indicators
   ```
5. (Optional) If user asks "what does the histogram mean", fetch `/zh/indicators/macd.md` for interpretation.

---

## Citation hygiene

When quoting from this docs site to the end user:
- Always include the source URL so the user can dive deeper.
- Prefer `.md` URLs over `.html`.
- Mention if the source is Chinese-only (so user with English-only context knows).

---

_This page is the single source of truth for Skill runtime data lookup. Skill maintainers: link to this page from your `SKILL.md`, do not inline-copy (linking lets you pick up updates automatically)._
