返回主界面

API

用一个 API key 直接读取我们的行情、指标和结构分析。key 是只读的,用量算在你的套餐里。 API 目前只对企业版开放。

我的 API key

key 是只读的,不带管理权限,用量算在你的套餐里。创建后只显示一次,服务器只保存它的哈希,丢了只能重建。

怎么用

每个请求都带上这个请求头(只支持 GET):

Authorization: Bearer ts_sk_…

例如读取 BTC 的多周期 DeMark 状态:

curl -H "Authorization: Bearer $TS_KEY" \
  "https://tradingsignal.pro/api/methods?symbol=BTC/USDT&method=td9&across=1"

让 AI 帮你接入

把下面这段整段复制给 ChatGPT、Claude、DeepSeek 或你的编程助手,它就知道怎么调用这些接口。里面不含你的 key,也请不要把 key 发给 AI。

你要帮我接入 TradingSignal 的只读数据 API。请严格按下面的说明写代码;没有列出的接口、参数和字段都不存在,不要猜。

【基础】
- 地址前缀:https://tradingsignal.pro
- 只有 GET,返回 JSON(UTF-8)。
- 鉴权:每个请求都带请求头 Authorization: Bearer <API key>。key 以 ts_sk_ 开头。
- key 从环境变量 TS_API_KEY 读取。不要写进代码、日志、报错信息或任何前端页面,只在服务端调用;也不要让我把 key 发到对话里。
- 品种写法:加密货币用 BASE/QUOTE(例如 BTC/USDT),美股用代码(AAPL),港股带后缀(0700.HK)。放进 URL 时要做 URL 编码。
- 时间字段是 Unix 秒(UTC)。需要日期时用标准库换算,不要心算。

【接口,共 14 个】
GET /api/methods — 结构方法分析:DeMark TD 序列、缠论、VCP、威科夫
  - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK
  - timeframe:周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d
  - method(必填):td9 / chan / vcp / wyckoff
  - across:仅 td9:传 1 返回各周期的 DeMark 状态(多周期共振表用的就是它)
  返回:across=1 时:across[],每个周期一项,rounds[] 为一轮一轮的状态(regime、setup、countdown、establishedTs、exhaustedTs、strong、failed)。否则:result 为该方法在该周期的完整结果。
  示例:https://tradingsignal.pro/api/methods?symbol=BTC/USDT&method=td9&across=1

GET /api/td9-read — DeMark 多周期 AI 解读(四行:结论 / 多周期 / 复盘 / 提醒)
  - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK
  - timeframe:读者正在看的周期,影响“提醒”里引用的价位
  - lang:zh(默认)或 en
  返回:structured(v=1;asOf / barDate = 事实所属的那根 bar,structures[] 每项还带自己周期的 asOf;focus[] 是结论,structures[] 每周期的方向与 stage(forming / established / exhausted / exhaustion-failed,countdown 是独立的进度数字,不是一个 stage),live13 只有还站着 13 的周期才有,review[].verdict 由程序按价格算出);text 是四行可读摘要;createdAt / ageSeconds / cached 只描述 text 的生成时间,不是整份响应的数据时间——解读最多可缓存 15 分钟,而 structured 每次按最新 bar 重算,两者本就可能不同时;source(model = 模型生成;rules = 模型暂时不可用,由程序按规则生成)。
  示例:https://tradingsignal.pro/api/td9-read?symbol=BTC/USDT&timeframe=1h&lang=zh

GET /api/klines — K 线
  - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK
  - timeframe:周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d
  - limit:根数,默认 500
  返回:candles[]:t(秒)、o、h、l、c、v。
  示例:https://tradingsignal.pro/api/klines?symbol=BTC/USDT&timeframe=1h

GET /api/indicators — 技术指标与多空共振分解
  - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK
  - timeframe:周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d
  - lang:zh 或 en
  返回:各指标的数值、信号(bullish / bearish / neutral)和理由,以及汇总的共振计数。
  示例:https://tradingsignal.pro/api/indicators?symbol=AAPL&timeframe=1d

GET /api/levels — 多周期关键支撑 / 阻力位
  - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK
  返回:按周期分组的支撑阻力位及其来源。
  示例:https://tradingsignal.pro/api/levels?symbol=BTC/USDT

GET /api/v2/levels — 多周期关键支撑 / 阻力位(v2:各周期单独成败)
  - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK
  - timeframes:逗号分隔的周期子集,例如 1h,4h,1d;不传则为该品种的全部周期。未知或重复的周期直接 400
  - t:可选,历史锚点(unix 秒);不传为实时
  返回:某个周期取不到时只标出这一个(status + errorCode),其余照常返回;succeeded / failed / complete 说明是否完整;全部周期都失败才返回 503。spot.price 只取 1h,取不到时为 null 并给出原因:实时(不传 t)时是 1h 序列最后一根 K 线(可能尚未收盘)的最新收盘价,basis=forming_1h_last_value;传 t 时是锚点前最后一根已收盘 K 线的收盘价,basis=close_at_anchor。两者都没有可核实的报价时间,不能当作经核实的“当前现价”。fetchedAt 是我们抓取数据的时间,不是行情时间;拿不到可核实的行情时间时 sourceAsOf 为 null、timeState 为 unknown。不含原始 K 线。v1(/api/levels)保持不变。
  示例:https://tradingsignal.pro/api/v2/levels?symbol=BTC/USDT&timeframes=1h,4h,1d

GET /api/v2/chart/history — 指标线的全部历史,按页取(预计算存储;第一期仅加密货币)
  - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK
  - timeframe(必填):5m / 15m / 1h / 4h / 1d / 1w
  - lines(必填):逗号分隔的图层 id,与 /api/chart/spec 的 overlay id 同一套命名,例如 ma_ribbon,macd,obv,td9-signal。快照类图层(支撑阻力、形态、TD 计数与风险区)不在存储里,会以 line_not_stored 拒绝并列出可选 id
  - before:可选,unix 秒:返回这一时刻之前最多 500 根。不传则返回最新一页(含正在走的那根,formingTs 标出)
  返回:bars(列式 t/o/h/l/c/v)与 overlays(每个 id 的 series 与 extras,每根一个值);td9-signal 以 markers 返回。每个周期从一个固定起点开始保存与计算:1d、1w 从该品种在交易所的第一根 K 线起;4h 从 2026-02-01 起;1h 从 2026-07-01 起;15m、5m 从 2026-08-01 起(computeWindow.start 给出实际起点)。所有累计类指标(OBV、ADL)与 TD 计数都从这个起点算起,所以翻页拼接处连续,但绝对值与 /api/indicators(按其默认窗口计算)不同。computeWindow 给出起点、本页终点和到本页终点为止的总根数;hasMoreBefore 与 nextUrl 用于继续往前翻。单页超过 256 KB 返回 413 lines_too_large。尚未构建的品种:不带 before 请求最新页时,交易所确认该品种存在后才登记构建并返回 202 building;确认不了返回 502 symbol_unverified,不登记;登记写入失败返回 503 store_unavailable。带 before 请求一个从未登记的品种返回 409 start_from_latest(请先请求最新页),不会登记。历史不足 1000 根的品种全部现算,同样可以沿 nextUrl 翻到第一根。每次请求计 1 次计算额度。
  示例:https://tradingsignal.pro/api/v2/chart/history?symbol=BTC/USDT&timeframe=1h&lines=ma_ribbon,macd

GET /api/trend — 趋势强弱
  - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK
  - timeframe:周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d
  返回:趋势方向、强度评分及其构成。
  示例:https://tradingsignal.pro/api/trend?symbol=BTC/USDT&timeframe=4h

GET /api/resonance — 历史共振点(多个指标同时给出同向信号的位置)
  - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK
  - timeframe:周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d
  - thresh:共振阈值
  返回:points[]:时间、方向、多空计数。
  示例:https://tradingsignal.pro/api/resonance?symbol=BTC/USDT&timeframe=1d

GET /api/fib-rhythm — 斐波那契节奏
  - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK
  - timeframe:周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d
  返回:摆动点、回撤 / 扩展位与时间节奏。
  示例:https://tradingsignal.pro/api/fib-rhythm?symbol=BTC/USDT&timeframe=1d

GET /api/symbols — 品种列表与搜索(搜索用 /api/symbols/search?q=)
  - market:crypto / stock / forex / commodity
  - q:仅 /search:关键字
  返回:品种代码、名称、所属市场。
  示例:https://tradingsignal.pro/api/symbols/search?q=tesla

GET /api/leaders — 各市场领涨 / 强势品种
  - market:市场
  - limit:条数
  返回:按相对强弱排序的品种。
  示例:https://tradingsignal.pro/api/leaders?market=crypto

GET /api/screener — 选股 / 选币筛选器
  - market:市场
  - preset:预设条件
  - sort:排序
  - limit:条数
  返回:符合条件的品种及命中的条件。更多筛选参数见页面上的筛选器。
  示例:https://tradingsignal.pro/api/screener?market=crypto&limit=20

GET /api/expert-notes — 专家点评(只读)
  - symbol(必填):品种,例如 BTC/USDT、AAPL、0700.HK
  - method(必填):目前只有 td9
  返回:notes[]:正文、作者、时间。
  示例:https://tradingsignal.pro/api/expert-notes?symbol=BTC/USDT&method=td9

【错误处理】
出错时返回 JSON:error(中文,可以直接显示给用户)、message(英文)、code。
- 401 api_key_invalid:key 不存在或写错了
- 401 api_key_revoked:key 已被吊销
- 401 api_key_expired:key 已过期
- 403 api_key_plan:key 是对的,但它所属的账号不是企业版(API 只对企业版开放)
- 403 api_key_required:请求既没有带 API key,也不是从我们的网页发出的
- 429 api_key_rate_limited:这个 key 超过了每分钟额度(读取类、计算类各 500 次);响应里有 retryAfterSec,响应头有 Retry-After
- 其他 403(没有 code,带 requiredTier):这个品种或功能需要更高的套餐。
- 401 和 403 不要重试,把 error 原样显示给用户。
- 429:读取响应头 Retry-After(秒)或 JSON 里的 retryAfterSec,等够了再试。每个 key 每分钟读取类、计算类各最多 500 次,请串行或小并发调用,并对同一请求做短时间缓存。
- 5xx 或网络错误:指数退避,最多重试 3 次。

【写代码时的约定】
- 先用上面的示例各请求一次,按真实返回的 JSON 定义类型;字段以实际返回为准,不要编造。
- 把“取数”封装成一个带超时(建议 30 秒)和上述错误处理的函数,其余代码只调用它。
- 这些数据是指标读数和结构状态,不是交易指令。DeMark 的 9 表示趋势确立、13 表示趋势衰竭,描述的是趋势所处的阶段,不要写成胜率或买卖建议。

【最小示例】
curl -H "Authorization: Bearer $TS_API_KEY" "https://tradingsignal.pro/api/methods?symbol=BTC/USDT&method=td9&across=1"

请先用我指定的语言写出这个取数函数和一个调用示例,再问我要做什么功能。

数据接口(14 个,只读)

地址前缀 https://tradingsignal.pro,返回 JSON。能看哪些品种、每天多少次,取决于你的套餐。

GET /api/methods结构方法分析:DeMark TD 序列、缠论、VCP、威科夫
  • symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HK
  • timeframe · 周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d
  • method必填 · td9 / chan / vcp / wyckoff
  • across · 仅 td9:传 1 返回各周期的 DeMark 状态(多周期共振表用的就是它)
返回:across=1 时:across[],每个周期一项,rounds[] 为一轮一轮的状态(regime、setup、countdown、establishedTs、exhaustedTs、strong、failed)。否则:result 为该方法在该周期的完整结果。
/api/methods?symbol=BTC/USDT&method=td9&across=1
GET /api/td9-readDeMark 多周期 AI 解读(四行:结论 / 多周期 / 复盘 / 提醒)
  • symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HK
  • timeframe · 读者正在看的周期,影响“提醒”里引用的价位
  • lang · zh(默认)或 en
返回:structured(v=1;asOf / barDate = 事实所属的那根 bar,structures[] 每项还带自己周期的 asOf;focus[] 是结论,structures[] 每周期的方向与 stage(forming / established / exhausted / exhaustion-failed,countdown 是独立的进度数字,不是一个 stage),live13 只有还站着 13 的周期才有,review[].verdict 由程序按价格算出);text 是四行可读摘要;createdAt / ageSeconds / cached 只描述 text 的生成时间,不是整份响应的数据时间——解读最多可缓存 15 分钟,而 structured 每次按最新 bar 重算,两者本就可能不同时;source(model = 模型生成;rules = 模型暂时不可用,由程序按规则生成)。
/api/td9-read?symbol=BTC/USDT&timeframe=1h&lang=zh
GET /api/klinesK 线
  • symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HK
  • timeframe · 周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d
  • limit · 根数,默认 500
返回:candles[]:t(秒)、o、h、l、c、v。
/api/klines?symbol=BTC/USDT&timeframe=1h
GET /api/indicators技术指标与多空共振分解
  • symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HK
  • timeframe · 周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d
  • lang · zh 或 en
返回:各指标的数值、信号(bullish / bearish / neutral)和理由,以及汇总的共振计数。
/api/indicators?symbol=AAPL&timeframe=1d
GET /api/levels多周期关键支撑 / 阻力位
  • symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HK
返回:按周期分组的支撑阻力位及其来源。
/api/levels?symbol=BTC/USDT
GET /api/v2/levels多周期关键支撑 / 阻力位(v2:各周期单独成败)
  • symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HK
  • timeframes · 逗号分隔的周期子集,例如 1h,4h,1d;不传则为该品种的全部周期。未知或重复的周期直接 400
  • t · 可选,历史锚点(unix 秒);不传为实时
返回:某个周期取不到时只标出这一个(status + errorCode),其余照常返回;succeeded / failed / complete 说明是否完整;全部周期都失败才返回 503。spot.price 只取 1h,取不到时为 null 并给出原因:实时(不传 t)时是 1h 序列最后一根 K 线(可能尚未收盘)的最新收盘价,basis=forming_1h_last_value;传 t 时是锚点前最后一根已收盘 K 线的收盘价,basis=close_at_anchor。两者都没有可核实的报价时间,不能当作经核实的“当前现价”。fetchedAt 是我们抓取数据的时间,不是行情时间;拿不到可核实的行情时间时 sourceAsOf 为 null、timeState 为 unknown。不含原始 K 线。v1(/api/levels)保持不变。
/api/v2/levels?symbol=BTC/USDT&timeframes=1h,4h,1d
GET /api/v2/chart/history指标线的全部历史,按页取(预计算存储;第一期仅加密货币)
  • symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HK
  • timeframe必填 · 5m / 15m / 1h / 4h / 1d / 1w
  • lines必填 · 逗号分隔的图层 id,与 /api/chart/spec 的 overlay id 同一套命名,例如 ma_ribbon,macd,obv,td9-signal。快照类图层(支撑阻力、形态、TD 计数与风险区)不在存储里,会以 line_not_stored 拒绝并列出可选 id
  • before · 可选,unix 秒:返回这一时刻之前最多 500 根。不传则返回最新一页(含正在走的那根,formingTs 标出)
返回:bars(列式 t/o/h/l/c/v)与 overlays(每个 id 的 series 与 extras,每根一个值);td9-signal 以 markers 返回。每个周期从一个固定起点开始保存与计算:1d、1w 从该品种在交易所的第一根 K 线起;4h 从 2026-02-01 起;1h 从 2026-07-01 起;15m、5m 从 2026-08-01 起(computeWindow.start 给出实际起点)。所有累计类指标(OBV、ADL)与 TD 计数都从这个起点算起,所以翻页拼接处连续,但绝对值与 /api/indicators(按其默认窗口计算)不同。computeWindow 给出起点、本页终点和到本页终点为止的总根数;hasMoreBefore 与 nextUrl 用于继续往前翻。单页超过 256 KB 返回 413 lines_too_large。尚未构建的品种:不带 before 请求最新页时,交易所确认该品种存在后才登记构建并返回 202 building;确认不了返回 502 symbol_unverified,不登记;登记写入失败返回 503 store_unavailable。带 before 请求一个从未登记的品种返回 409 start_from_latest(请先请求最新页),不会登记。历史不足 1000 根的品种全部现算,同样可以沿 nextUrl 翻到第一根。每次请求计 1 次计算额度。
/api/v2/chart/history?symbol=BTC/USDT&timeframe=1h&lines=ma_ribbon,macd
GET /api/trend趋势强弱
  • symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HK
  • timeframe · 周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d
返回:趋势方向、强度评分及其构成。
/api/trend?symbol=BTC/USDT&timeframe=4h
GET /api/resonance历史共振点(多个指标同时给出同向信号的位置)
  • symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HK
  • timeframe · 周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d
  • thresh · 共振阈值
返回:points[]:时间、方向、多空计数。
/api/resonance?symbol=BTC/USDT&timeframe=1d
GET /api/fib-rhythm斐波那契节奏
  • symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HK
  • timeframe · 周期:5m / 15m / 1h / 4h / 1d / 1w(各品种支持的不同),默认 1d
返回:摆动点、回撤 / 扩展位与时间节奏。
/api/fib-rhythm?symbol=BTC/USDT&timeframe=1d
GET /api/symbols品种列表与搜索(搜索用 /api/symbols/search?q=)
  • market · crypto / stock / forex / commodity
  • q · 仅 /search:关键字
返回:品种代码、名称、所属市场。
/api/symbols/search?q=tesla
GET /api/leaders各市场领涨 / 强势品种
  • market · 市场
  • limit · 条数
返回:按相对强弱排序的品种。
/api/leaders?market=crypto
GET /api/screener选股 / 选币筛选器
  • market · 市场
  • preset · 预设条件
  • sort · 排序
  • limit · 条数
返回:符合条件的品种及命中的条件。更多筛选参数见页面上的筛选器。
/api/screener?market=crypto&limit=20
GET /api/expert-notes专家点评(只读)
  • symbol必填 · 品种,例如 BTC/USDT、AAPL、0700.HK
  • method必填 · 目前只有 td9
返回:notes[]:正文、作者、时间。
/api/expert-notes?symbol=BTC/USDT&method=td9

错误和限流

出错时返回 JSON:error(中文,可以直接显示给用户)、message(英文)和 code。

401api_key_invalidkey 不存在或写错了
401api_key_revokedkey 已被吊销
401api_key_expiredkey 已过期
403api_key_plankey 是对的,但它所属的账号不是企业版(API 只对企业版开放)
403api_key_required请求既没有带 API key,也不是从我们的网页发出的
429api_key_rate_limited这个 key 超过了每分钟额度(读取类、计算类各 500 次);响应里有 retryAfterSec,响应头有 Retry-After
403(无 code,见 error / requiredTier)这个品种或功能需要更高的套餐
  • 每个 key 每分钟 120 次;另外按来源地址限流(读取 120 次 / 分钟,计算类 40 次 / 分钟)。
  • key 只对上面列出的 GET 接口生效。其他接口和所有写操作都不认 key,按未登录处理。
  • 这些接口只认两种来源:带 API key 的请求,和我们自己的网页。其他请求(脚本、命令行、别的网站)一律返回 403 api_key_required。