API 快速入门

回测控制台指南用代码测试策略:设置、结果、完整脚本参考和 11 个示例 开发者交互式 API 参考、Python 和 JavaScript SDK、错误代码 预言机集成为智能合约提供的签名价格,Solidity 和 JavaScript 合作伙伴 API面向券商和培训者的激活码 学习技术分析每个指标和画线工具的讲解与示例

额度价格:$0.001(注册赠送 1000 免费额度)。基础 URL https://api.marketapi.app/v1。请在 Authorization 请求头中发送密钥。URL 中的密钥会被拒绝。

curl -H "Authorization: Bearer $KEY" "https://api.marketapi.app/v1/prices/latest?symbols=EURUSD,XAUUSD&require_live=true"
curl -H "Authorization: Bearer $KEY" "https://api.marketapi.app/v1/bars?symbol=EURUSD&timeframe=M1&from=2026-09-01T00:00:00Z&to=2026-09-02T00:00:00Z"
curl -H "Authorization: Bearer $KEY" "https://api.marketapi.app/v1/symbols/EURUSD"

EURUSD 和 XAUUSD 只是示例:请换成您需要的代码,写法与价格列表(按市场分组:外汇、金属、指数、股票、能源、加密货币,可搜索)或代码列表(CSV)中完全一致。多个代码用逗号分隔。

两款产品,一个 API 密钥。下方的市场价格 API 为应用、机器人和仪表盘提供价格。链上价格预言机以签名报告的形式提供相同价格,供智能合约在链上验证。

端点

接口费用
GET /prices/latest?symbols=每个返回的代码 1 额度
GET /ticks?symbol=&from=&to=每开始 1000 行计 1 额度
GET /bars?symbol=&timeframe=&from=&to=每开始 1000 行计 1 额度
GET /symbols, /symbols/{symbol}, /symbols/{symbol}/properties/history免费
GET /market-status, /account, /cost-preview免费
WSS /stream(订阅实时报价)每个代码每开始一分钟 1 额度
GET /oracle/report?symbols=&chain_id=(用于智能合约的签名报告)每份签名报告 5 额度
GET /oracle/feeds, /oracle/catalog免费

K 线可回溯多远: M1 7 days · M2–M6 30 days · M10–M30 3 months · H1 12 months · H2–H12 3 years · D1–MN1 5 years (以该市场自身历史所及为限)。

链上价格预言机(用于智能合约)

在智能合约中使用同样的外汇、黄金、指数和股票价格,用于 DeFi 借贷、代币化资产(RWA)、链上外汇、稳定币支付和合成资产。您的应用获取已签名的价格报告;您的合约将其交给我们的验证合约,在链上校验签名。价格在传输中无法被伪造,也无需信任传递者。

  1. 使用您的 API 密钥获取报告:
    curl -H "Authorization: Bearer $KEY" "https://api.marketapi.app/v1/oracle/report?symbols=XAUUSD&chain_id=10"
  2. 在您的交易中将其 report 和 signature 提交给验证合约的 submit()。
  3. 用 getPriceNoOlderThan(feedId, maxAge) 读取已验证的价格。它只返回比 maxAge 更新的实时价格(市场 OPEN)。

每份报告都注明市场状态(OPEN、CLOSED、HALTED)和买卖价差,并在签名后约一分钟过期。数据源有固定 ID(keccak256("XAUUSD")),熔断机制会拦截异常跳变,并提供兼容 Chainlink 的适配器(latestRoundData)。我们的中继器已存储在链上的价格可免费读取。

预言机文档 数据源、网络和合约

免费版(无需密钥)

无需账户即可试用 API:每个 IP 地址每分钟 10 次请求、每天 1000 次,每次请求最多 5 个代码。

curl "https://api.marketapi.app/v1/free/prices/latest?symbols=EURUSD"
curl "https://api.marketapi.app/v1/free/symbols"
curl "https://api.marketapi.app/v1/free/market-status?symbols=EURUSD"

需要更多?创建账户,用您自己的 API 密钥获得完整访问。

价格状态

每个价格都带有一个 status,它只说明一件事:价格有多新。

状态含义
LIVE当前:价格是最新的,仍在变动。
STALE市场应处于开放状态,但近期没有收到新价格。请将其视为最后已知价格。
MARKET_CLOSED在该品种交易时间之外;价格为收盘前的最后价格。
UNKNOWN尚未验证,例如刚重启后。通常几秒内恢复。
UNAVAILABLE数据源已停止为该品种报价。

添加 require_live=true 可只接收 LIVE 价格;被排除的代码不计费。每个请求的代码只会出现在一个列表中:data(有价格)、no_data(已知代码,暂无价格)或 unknown(未提供)。

交易时间。外汇、金属和大多数指数从周日晚间交易至周五晚间(UTC)。股票和 ETF 差价合约按其交易所当地时间的常规时段交易,并遵循夏令时:纽约 09:30–16:00,伦敦 08:00–16:30,法兰克福和巴黎 09:00–17:30。交易所假日(NYSE、LSE、Xetra、Euronext)视为休市。在这些时间之外,价格为 MARKET_CLOSED,而非 STALE;如果来源仍在报价(例如开盘前),价格为 LIVE。

品种规格

GET /v1/symbols/{symbol} 返回来源提供的完整品种规格,包括货币、合约大小、最小变动单位和交易量限制,以及交易时段。GET /v1/symbols/{symbol}/properties/history 列出其每次变更。代码列表(CSV)包含主要规格字段。

安全重试

发送 Idempotency-Key 请求头可确保重试安全:24 小时内用相同键重复请求,会原样返回第一次的响应,且不扣费(响应不超过 2 MB)。需要最新数据时请使用新键;响应已不再保存的键会收到 409 idempotency_key_used。

实时价格(交易机器人、仪表盘)

获取最新价格的两种方式。两者提供相同的报价;按您程序的工作方式选择。

REST:GET /prices/latestWebSocket:/stream
通知方式您发起请求,获取最新报价报价一变动就会推送给您
最适合偶尔查询、脚本、电子表格交易机器人、实时仪表盘
账单每个返回的代码 1 额度每个代码每开始一分钟 1 额度

价格有多新?

您正在流式订阅的代码,或在过去 5 分钟内通过 /prices/latest 请求过的代码,会约每秒从数据源刷新一次(所有客户合计同时最多 个此类代码)。其他代码会在后台持续刷新,但频率较低。所以:请求或订阅您交易的代码,它们就会变快。

每条报价都带有 time(来源生成报价的时刻,UTC)和 status。交易程序应始终检查两者:

REST 示例

curl -H "Authorization: Bearer $API_KEY" \
  "https://api.marketapi.app/v1/prices/latest?symbols=EURUSD,XAUUSD&require_live=true"
{"data": [{"symbol": "EURUSD", "bid": "1.12946", "ask": "1.12967", "last": null,
           "time": "2026-10-02T09:15:42.381Z", "status": "LIVE"}],
 "not_live": [], "unknown": [], "no_data": []}

轮询频率高于每秒一次没有任何好处:活跃代码的数据源就是每秒读取一次。

WebSocket 协议

使用请求头 Authorization: Bearer <your key>(权限 read:latest)连接 /stream,然后发送 JSON 消息:

> {"action": "subscribe",   "symbols": ["EURUSD", "XAUUSD"]}
< {"type": "subscribed", "symbols": ["EURUSD", "XAUUSD"], "rejected": []}
< {"type": "quote", "symbol": "EURUSD", "bid": "1.12946", "ask": "1.12967", "last": null,
   "time": "2026-10-02T09:15:42.381Z", "status": "LIVE"}
> {"action": "unsubscribe", "symbols": ["XAUUSD"]}
< {"type": "error", "code": "...", "detail": "..."}

限制:每个连接最多 50 个代码。关闭代码:4401 密钥无效,4402 余额用完(充值后重新连接),4429 打开的连接过多。服务器每 20 秒发送一次 ping;大多数 WebSocket 库会自动响应。

Python 示例(pip install "websockets>=14")

import asyncio, json, os, websockets

async def main():
    url = "/stream"
    headers = {"Authorization": "Bearer " + os.environ["API_KEY"]}
    while True:                                   # reconnect with backoff
        try:
            async with websockets.connect(url, additional_headers=headers) as ws:
                await ws.send(json.dumps({"action": "subscribe", "symbols": ["EURUSD"]}))
                async for raw in ws:
                    msg = json.loads(raw)
                    if msg["type"] == "quote" and msg["status"] == "LIVE":
                        print(msg["symbol"], msg["bid"], msg["ask"], msg["time"])
        except websockets.ConnectionClosed as e:
            if e.code in (4401, 4402):            # wrong key / no balance: retrying will not help
                raise
        await asyncio.sleep(5)

asyncio.run(main())

Node.js 示例(npm install ws)

const WebSocket = require("ws");
const ws = new WebSocket("/stream", { headers: { Authorization: "Bearer " + process.env.API_KEY } });
ws.on("open", () => ws.send(JSON.stringify({ action: "subscribe", symbols: ["EURUSD"] })));
ws.on("message", (raw) => {
  const m = JSON.parse(raw);
  if (m.type === "quote" && m.status === "LIVE") console.log(m.symbol, m.bid, m.ask, m.time);
});
ws.on("close", (code) => console.log("closed", code));   // reconnect after a few seconds unless 4401/4402

请将 API 密钥保存在您的服务器或机器人中。切勿放入他人可打开的网页或应用中:任何持有密钥的人都能花掉您的余额。

须知

图表、指标、画线工具和价格提醒(网站)

每个代码都有免费的交互式图表,地址为 /price/<ticker>,例如 /price/EURUSD。这些是网站功能:不消耗 API 额度,只有保存分析和设置提醒才需要账户。

功能您能获得什么
图表全部 21 个周期(M1 到 MN1:常用的以按钮显示,全部在下拉菜单中);K 线、平均 K 线(Heikin Ashi)或折线;最后一根 K 线随实时价格变动,实时买价(实线)和卖价(虚线)在各周期中横贯图表绘制,价格标在价格刻度上;实时买价、卖价和点差也显示在图表上方,旁边是 52 周区间、典型日内波幅以及 1 个月和 1 年涨跌幅。用 + − ‹ › 按钮(为手机设计)缩放和滚动,在电脑上也可拖动、Ctrl + 滚轮和 Shift + 滚轮;⟲ 返回最新 K 线。时间为 UTC。
网站图表组件券商和合作伙伴可在自己网站上展示任意代码的实时图表:<iframe src="https://app.marketapi.app/price/EURUSD/embed?tf=H1" width="100%" height="520">。该组件即完整图表(指标、画线工具、向导)。允许的网站由我们设置:活跃合作伙伴的网站自动允许,其他网站需申请(联系我们)。
全屏全屏按钮(或 F)可将图表变为铺满屏幕的仪表盘,指标显示在下方窗格中;在 Android 手机上还会将屏幕转为横向,在 iPhone 上则铺满窗口。在小屏幕上,工具栏会把所有周期放进一个下拉菜单并使用图标按钮,避免内容被边缘遮挡。Esc 退出。
71 种指标所有经典指标,均按标准定义计算:移动平均线(SMA、EMA、SMMA、LWMA)、AMA、DEMA、TEMA、FrAMA、VIDYA、布林带、包络线、一目均衡表、抛物线 SAR、ADX 和 ADX Wilder、标准差、ATR、Bears 和 Bulls Power、CCI、Chaikin 振荡器、DeMarker、Force Index、MACD、动量、OsMA、RSI、RVI、随机指标、TRIX、威廉 %R、累积/派发、资金流量指数、能量潮、成交量,以及 Bill Williams 的 Accelerator、Alligator、Awesome Oscillator、Fractals、Gator 和 Market Facilitation Index。另有 ZigZag 及常用扩展:VWAP、SuperTrend、肯特纳通道和唐奇安通道、Hull MA、枢轴点、Stochastic RSI、Aroon、Chaikin Money Flow、终极振荡器和 Choppiness Index。还有:VWMA、ZLEMA、ALMA、McGinley Dynamic、最小二乘均线、Chandelier Exit、变动率、Chande 动量、真实强度指数、PPO、去趋势价格振荡器、Know Sure Thing、Vortex、简易波动指标、Mass Index、Coppock 曲线、历史波动率、Fisher 变换、Squeeze Momentum、Connors RSI 和价量趋势。所有设置均可修改;振荡器有独立窗格。
图表类型K 线、平均 K 线(Heikin Ashi)和折线,另有(在更多类型中)砖形图、区间 K 线、新价线和点数图,均由当前周期的 K 线生成。格值:自动(平均真实波幅取整)或自定义(图表类型标签上的 ⚙),点数图转向格数和新价线的线数同样可设。指标、画线、图表提醒和回放均可在砖块和列上使用;设置随分析一起保存。
51 种画线工具经典分析对象:趋势线、射线、延长线和箭头线、水平线和垂直线、角度趋势线、周期线;等距通道、标准差通道和回归通道、安德鲁斯音叉线;江恩线、江恩扇形和江恩网格;斐波那契回撤、时间周期、扇形、弧线、通道和扩展;艾略特推动浪(1-2-3-4-5,检查艾略特三条规则和波浪比率)、调整浪(A-B-C)、三角形(A-B-C-D-E)、双重(W-X-Y)和三重(W-X-Y-X-Z)组合;矩形、三角形、椭圆、文字、价格标签、箭头和买卖标记。另有带波段比率的谐波 XABCD 形态,可自动识别加特利、蝙蝠、备选蝙蝠、蝴蝶、螃蟹、深海螃蟹和 Cypher,以及 AB=CD、三推、头肩形、价格/日期/价格与时间测量工具、锚定 VWAP、固定范围成交量分布(基于 tick 成交量)以及带盈亏比的多空仓位框。形态工具会绘制形态的预测:谐波、AB=CD、三推和头肩形以绿色显示目标(T1、T2)、红色显示止损;艾略特波浪显示第 5 浪或 C 浪可能结束的位置以及完整五浪后的调整目标;放置最后一点时,虚线会显示它将在何处完成形态。在画线设置中关闭“显示目标”可隐藏它们。
编辑选择一个工具并点击其各点(或按住拖动)。点击画线可选中它,拖动画线或其点,并更改颜色、粗细、样式、延伸、标签或水平位。Delete 删除,Ctrl + Z 撤销,Esc 取消。磁吸会让点自动吸附到开盘价、最高价、最低价或收盘价。画线与时间和价格绑定,因此切换周期时位置保持不变。
价格刻度↕+ 拉伸 K 线,↕− 压扁 K 线,为上下方的画线和目标留出空间;也可以上下拖动右侧的价格刻度。⟲(或双击价格刻度)恢复自动刻度。
在手机上画线触摸图表,滑动手指瞄准(手指上方的圆形放大镜会显示下方图表、精确点位及其价格),抬起手指即放置一个点。轻点画线即可选中,然后拖动它或其控制点;未选中任何内容时,在图表上滑动会照常滚动页面。
已保存的分析保存会将画线、指标、周期、图表类型和屏幕上的时间段连同标题和说明保存到您的账户;任何打开它的人(您、俱乐部成员或通过秘密链接访问的人)都会看到相同的时间段,即使它早于通常加载的 K 线(此时图表会显示“图表显示至 …”并提供回到现在按钮);我的分析可在任何设备上重新打开。没有账户时,画线保存在您的浏览器中。所有分析都列在 控制台 → 图表与提醒 下。
问 AI图表上(或画线设置中)的 ✦ 问 AI:勾选您想听取意见的画线(或全部),并选择 ChatGPT、Claude、Perplexity、Gemini 或 DeepSeek。随后会打开一份书面摘要,可用您自己的账户直接发送:代码、周期和实时价格、最新 K 线和近期区间、指标及其最新值,以及每个画线的点位(价格和时间)、斐波那契水平、谐波比率、盈亏比和形态的预测目标。指标可逐个勾选。您从形态向导保留的形态(保留为我的画线)会附带其分析:质量、更大级别波浪背景、建议交易(入场、止损、目标和盈亏比)、满足和未满足的规则,以及历史表现(交易数、胜率对比盈亏平衡、每笔结果、95% 区间以及优势是否统计显著);未保留的形态不会发送。在 Android 手机上,如已安装助手应用则打开应用(否则打开其网站);在 iPhone 上链接会打开应用;分享到应用…可将摘要发送到手机上的任意应用。您的问题放在最后。无法通过链接预填的助手会以空白打开,摘要会被复制供您粘贴;复制适用于其他任何助手。我们自己不会向 AI 服务发送任何内容。
学习每个指标和画线工具都在 /learn 有通俗指南:背后的原理、计算方法、解读方式、示例和历史。指标列表、画线菜单和画线设置中的 ↗ 链接会在新标签页打开对应指南。
提醒图表上的 🔔 提醒:价格(涨到、跌到或穿越某价位,向上、向下或任一方向)、指标(RSI、随机指标或 CCI 穿越或高于/低于某水平;MACD 穿越信号线或零轴;价格穿越简单或指数移动平均线或布林带,基于图表周期,实时或仅在 K 线收盘时)以及通过任意画线的 🔔 提醒按钮设置的画线提醒:勾选需要的价位,每个一条提醒(持仓的止盈、止损和入场价、每个斐波那契水平、形态的目标和止损、矩形的边),或对趋势线、射线、延长线、箭头线或水平射线,提醒线条本身(它会完全按照图表上的斜率延伸到未来)。提醒可附带设置时的图表截图:截图会出现在包含画线价位(目标、止盈、止损)的邮件中、发送到 Telegram,并在浏览器支持时显示在浏览器通知中。每条提醒触发一次后关闭,或开启重复后保持有效(最多每 10 分钟一次;指标提醒每根 K 线一次)。提醒可通过电子邮件、Telegram、浏览器通知和/或您的 webhook 发送:在 控制台 → 图表与提醒 → 提醒发送到 中连接。Webhook 会收到用您的密钥签名的 JSON POST(X-Alert-Signature: sha256= 为 timestamp + "." + body 的 HMAC-SHA256,时间戳在 X-Alert-Timestamp 中)。约每 15 秒检查一次;市场休市时从不检查。最多 50 条有效提醒;需要已确认的电子邮件地址。

刚接触图表?用通俗语言学习每个指标和画线工具:原理、公式、用法和示例。

自选列表、对比、多图表和筛选器(网站)

功能您能获得什么
自选列表在 /watchlist 中管理您自己的代码列表,显示实时买卖价、今日、1 周和 1 个月涨跌幅以及日线 RSI。在任意图表或筛选器中点击☆ 加入自选即可添加代码;拖动 ⠿ 可调整顺序。最多 20 个列表,每个 100 个代码;未登录访客会看到热门代码列表。
图表旁自选列表按钮(或 W)会在图表旁打开您的列表,全屏时也可用。点击代码即可按您正在查看的周期打开其图表;图表也会记住您上次使用的周期。
K 线回放在图表上点击 Replay,再点击回放起点的 K 线(或选择日期):之后的 K 线会消失,指标只能看到当时已知的数据。▶ 播放逐根恢复 K 线(每秒 0.5 到 10 根),下一根 K 线(或 →)逐步前进,空格键播放和暂停,⏮ 选择其他起点。切换周期会在同一时刻继续,使用当时已收盘的 K 线。回放时,交易可在回放中练习:以 K 线收盘价买入或卖出,并设止损和止盈(按每根新 K 线的最高价和最低价检查;若同一根 K 线同时触及,先算止损);退出回放时显示结果。无需账户;不会保存任何内容。
模拟交易图表上的交易:用 $100000 虚拟资金按实时价格练习。支持市价单、限价单和止损单,以手(1 手 = 该代码的合约大小:外汇货币对 100,000 单位、黄金 100 盎司 …)或单位计;买入按卖价成交、卖出按买价成交,因此点差与真实交易一样计入。止损和止盈(在面板中设置,或在图表上拖动其线条;挂单也可拖动)。编辑可修改挂单的所有内容(买入或卖出、限价、止损或市价、价格、数量、止损和止盈);对已开仓位,可修改止损和止盈并减少数量(减少部分按实时价格平仓)。形态向导给出的仓位大小可为您自动填写订单。其他货币的盈利按实时汇率换算为美元;杠杆 1:30,权益归零的账户会被强制平仓。图表打开时每隔几秒检查一次订单、止损和目标,否则每 15 秒检查一次。您的账户、历史和结果(胜率、盈利因子、平均盈利和亏损):控制台 → 模拟交易,也可在那里重新开始。需要免费账户。
对比图表上的对比可添加最多 4 个其他代码,以彩色线条显示。它们从图表左边缘同时起步,让您一眼看出哪个市场波动更大;自左边缘以来的涨跌幅显示在每条线上以及图表上方的标签中(悬停时显示光标处的数值)。滚动或缩放会从新的左边缘重新开始对比。对比设置按代码保存在您的浏览器中,并随分析一起保存。
多图表/multichart:一个屏幕显示 1、2、3、4 或 6 个实时图表(并排、上下排列、一大两小、2 × 2、3 × 2)。每个单元格都是完整图表,包含所有指标、画线工具、对比、问 AI 和保存功能。点击单元格的代码即可更换;“所有图表使用相同周期”让所有单元格保持同一周期(可在任意单元格中修改,或一次修改全部)。布局会保存在您的浏览器中,复制链接可分享布局,例如 /multichart?l=4&s=EURUSD,XAUUSD,US500,BTCUSD&tf=H1。在自选列表中点击“在多图表中打开”会打开其前几个代码。
筛选器/screener:每个代码的实时价格、1 小时、今日、1 周、1/3/12 个月涨跌幅,日线和小时线 RSI(14),ATR 占价格百分比,与 52 周高低点的距离,以及相对 50 日和 200 日均线的趋势。提供现成筛选(涨幅榜和跌幅榜、超卖、超买、接近 52 周高点或低点、上升和下降趋势、波动最大)、市场筛选、搜索、最多五个自定义筛选条件(“日线 RSI 低于 30”、“1 个月涨幅高于 5%”),并可按任意列排序。链接会保留筛选条件,例如 /screener?preset=oversold&market=Forex。
数据如何得出价格为实时价格。其他数据来自已存储的日线和小时线,每几分钟重新计算一次,并以实时价格作为最新收盘价(因此 RSI、涨跌幅和 52 周区间会随市场变动)。不构成投资建议。

交易观点、个人主页与关注(网站)

主题运作方式
发布观点在任意图表上画出您的分析并点击发布:标题、推理、方向(做多、做空或中性),如愿意还可附上测试器中任何人都能运行的策略。发布时附带图表截图,查看者可在实时图表上打开您完全相同的画线、指标和时间段。之后可修改标题、正文和方向,但图表永远不能修改。每天最多 5 个观点。
观点/ideas:热门(按点赞和评论,较新的观点优先)、最新和关注,可按代码或方向筛选。每个观点都会显示发布以来价格的走势,是对其有利还是不利。每个代码页面都会列出其最新观点。
个人主页您的主页 /u/your-handle 会列出您的观点、粉丝、获赞数以及简短简介和头像。在控制台 → 个人资料与观点中选择显示名称和用户名。您的电子邮件地址永远不会显示。
关注、点赞、评论关注他人,即可在“关注”中查看他们的观点,也可选择接收每日邮件。♥ 可为观点点赞(不能给自己的)。评论为纯文本;您可在发布后 15 分钟内删除自己的评论,作者也可删除其观点下的评论。任何人都可用 ⚑ 举报观点或评论;我们的团队会审核举报。

手机应用(iPhone 和 Android)

用您的账户登录,即可使用带实时价格的自选列表、完整图表(所有指标、画线工具和形态向导,以及您保存的分析)、手机通知形式的价格提醒(在提醒中勾选 push;在应用的“账户”中开启通知)以及社区观点。双因素登录与网站相同。您登录过的每台手机都列在账户中,可在那里退出登录;修改密码会让所有手机退出登录。套餐和充值在本网站管理。您可以在应用中或此处的“账户”中删除账户。

邀请好友(推荐)

在控制台 → 邀请好友中可以找到您的专属链接(/r/your-code;加上 ?next=/premium 或本站任意页面即可将人引导到那里)。打开链接并在 30 天内创建账户的人会与您关联。在其注册后的 12 个月内,对方每次付费充值(主流网络上的加密货币或银行卡,至少 $5)都会为您带来 20% 返现。返现会等待 14 天以防退款,之后计入您的余额:可用于 API 额度、套餐或 Chart Premium。 您也可以提现(稳定币或 PayPal),最低 $50,需邮件确认并经我们团队审核。 邀请自己或自己的第二个账户不计入,且每位邀请人每月有上限。

合作伙伴计划(券商和培训者)

企业可为客户提供 Chart Premium:在 控制台 → 合作伙伴 申请;获批后您将获得合作伙伴 ID 和 5 个免费试用席位(每个 14 天 Pro)。席位按套餐(10, 50, 250)以 30% 折扣从余额购买,可选 Pro 或 Pro+,每个 1、3、6 或 12 个月。每个席位会成为一次性激活码,可在合作伙伴页面或通过合作伙伴 API 生成,并可附上您自己的客户编号(以掩码方式保存)。未使用的码可取消并退回席位。客户在 Premium 页面输入兑换码。

形态向导(网站)

图表上的 ✦ 向导会扫描当前周期的 K 线并列出发现结果,附上每个结果通过的规则、建议交易,以及可在图表上显示或保留为您自己画线的图形。这是对历史价格的自动分析,不构成投资建议。如何解读结果、历史表现、置信区间和显著性:形态向导指南。

主题运作方式
它能找到什么谐波形态(加特利、蝙蝠、备选蝙蝠、蝴蝶、螃蟹、深海螃蟹、Cypher、鲨鱼、5-0、三推和 AB=CD),已完成或仍在形成;艾略特波浪:推动浪(已完成、第 3 浪进行中、第 5 浪进行中)、终结楔形、调整浪(锯齿形 A-B-C、平台形、扩张平台形以及进行中的 C 浪)和收缩三角形(A-B-C-D-E);头肩形及其倒置形态;双重和三重顶底;上升、下降和对称三角形以及上升和下降楔形;矩形(交易区间);看涨和看跌旗形与三角旗;杯柄形及其倒置形态;支撑阻力位的反转 K 线(吞没、锤子线、射击之星、早晨之星和黄昏之星、刺透线、乌云盖顶、平头、三白兵或三只乌鸦);最后一段大摆动的斐波那契回撤和扩展;安德鲁斯音叉线;江恩扇形线(1×1、1×2、2×1 角度);平行通道;支撑和阻力位(市场多次掉头的价格)以及趋势线。每个形态还会被放到其周围更大级别的波浪中(高一级和高两级),已完成或已失败的形态单独列出,回测显示每个策略在该代码历史上的表现,附置信区间以及 90%、95% 和 99% 水平的显著性。
如何找出摆动点一种精细的 ZigZag,其最小波动为平均真实波幅的倍数,因此适应每个市场的波动性;每个点都精确落在其 K 线的最高或最低点。谐波和艾略特形态会在这些摆动点由干净波段连接而成的所有组合中搜索(中间没有 K 线超出该波段两端),因此一个形态可以有一段大波段和若干小波段,规模不限。经典图表形态使用三种尺度的 ZigZag。只显示近期形态:其最后一个点是最新的摆动点之一。
规则谐波形态使用 Scott Carney 的比率,窗口很窄(例如加特利需要 AB = 0.588–0.648 × XA,D = 0.766–0.806 × XA)。艾略特推动浪必须满足所有规则(第 2 浪绝不超过第 1 浪起点,第 3 浪绝不是最短的,第 4 浪绝不进入第 1 浪区域,第 5 浪超过第 3 浪),并按准则评分(第 2 浪在 38.2–78.6%,第 3 浪 ≥ 1.618 × 第 1 浪,第 4 浪在 23.6–50%,交替原则,第 5 浪 = 第 1 浪、0.618 × 第 1 浪或 0.618 × 第 1–3 浪)。楔形(diagonal)是唯一允许第 4 浪与第 1 浪重叠的五浪形态:其各浪必须逐渐缩小,边线必须收敛。调整浪按 B 浪区分:锯齿形的 B 回撤 A 的 38.2–88.6%,平台形约 100%,扩张平台形 105–138%。比率刚好超出窗口(最多 0.015)时仍会接受,但评分较低并附说明。每个结果下的原因会列出每项检查,无论是否通过。
完成区对于仍在形成中的谐波形态(X、A、B 和 C 已就位),向导会为 D 点应完成的区域着色:即 XA 比率与 BC 投影一致之处,并进一步收窄到 AB=CD 及其他 BC 投影也交汇的位置(吻合的量度越多,评分越高)。预期的 D 点按上一段波段的速度推算最后一段所需时间来绘制。您自己画 X、A、B 和 C 时也会显示同样的区域。
建议交易方向、入场(市价、在区域内挂限价单,或在突破时挂止损单)、止损和止盈(谐波:AD 的 38.2% 和 61.8%;头肩形、双顶、三角形:量度涨跌幅;五浪艾略特之后:38.2%、50% 和 61.8% 回调以及第 4 浪终点),各附盈亏比。只建议止损位于正确一侧的交易;已失败或已达最后目标的形态不会列出。
K 线确认对每笔建议交易,向导都会检查入场处(¾ 个 ATR 范围内)的最后三根 K 线:与交易方向一致的反转 K 线会确认该交易并提高评分;真正的反向反转 K 线会显示为警示并降低评分;突破入场则需在其价位之外有强势收盘才算确认。小于半个 ATR 的 K 线会被忽略。若市场提供成交量,突破还会结合成交量检查。详情:K 线确认。
指标根据市场状态推荐:强趋势(ADX 高于 25)推荐 50 EMA、SuperTrend、ADX 和 MACD;震荡(ADX 低于 20)推荐布林带、RSI 和随机指标;收窄(通道异常狭窄)推荐 Squeeze Momentum 和肯特纳通道;高波动时推荐 ATR 和 Chandelier Exit。添加可将其放到图表上。
历史表现每个结果都会显示该策略在历史价格上的表现:交易数、胜率与其盈亏比所需的盈亏平衡胜率对比、以风险倍数(R)和价格百分比表示的每笔预期收益、胜率和预期收益的 90/95/99% 置信区间,以及 90%、95% 和 99% 水平的显著性(胜率对盈亏平衡的精确二项检验,以及预期收益对零的 t 检验和自助法检验;三者须一致,并针对同时测试的大量策略进行校正)。最常用的代码会在每根新 K 线时自动回测。详情:解读历史表现。
市场扫描市场扫描会对您所选市场的每个代码运行向导,只列出当前处于入场位置(已由K线确认)、且在胜率和预期收益上都达到您所选显著性水平(90%、95% 或 99%)的形态,最好的排在前面。您可以选择形态数量、时间周期、市场和方向。它使用您的形态扫描计算时间,仅在运行时计时;如果扫描中途时间用完,它会暂停并在重置后完成。当通过筛选的结果多于您要求的数量时,“再加载 10 个”和“全部显示”可免费显示其余结果。选择“任意”显著性即可列出每个处于入场位置的形态。详情:指南。
频率每次扫描都计入滚动额度(显示在“扫描”按钮下方;访客和免费账户默认每 12 小时 5 次)。扫描会排队以保持网站速度;面板会显示您在队列中的位置。在同一根 K 线内扫描相同代码和周期的所有人共享同一结果。

Chart Premium(网站)

图表免费。Chart Premium 可在 1、3、6 或 12 个月内提供更多重型工具,从与 API 相同的预付余额中支付(周期越长,每月越便宜)。

主题运作方式
套餐Pro 和 Pro+。在 Premium 页面点击套餐按钮:费用从余额扣除,套餐立即生效。购买已有的套餐会在当前周期后追加新周期。
续订周期结束时,套餐会从您的余额中续费。若余额不足,我们会提前 3 天发邮件提醒;余额不够时套餐结束,图表仍可免费使用。可随时在 Premium 页面关闭续费:套餐将持续到结束日期。
升级从 Pro 升级到 Pro+ 会立即开始 Pro+;Pro 未使用的部分会从价格中扣除(若其价值超过价格,则改为增加天数)。
锁定标有 🔒 的工具属于 Pro 或 Pro+,开通相应套餐后即可使用(点击会显示套餐)。使用了锁定工具的已保存图表和分析会在不含该工具的情况下打开。
合理使用形态扫描和市场扫描按计算时间而非扫描次数计量:仅在扫描运行时计时,排队等待时或结果来自共享缓存时从不计时。每个套餐有一个短窗口(从您首次扫描开始,5 小时后重置)和一个每周限额(在您注册的星期几和时刻重置)。达到限额的扫描不会丢失:它会在重置后完成。向导旁的小圆环显示已用时间、剩余时间和下次重置。其他重型工具采用滚动额度。
激活码来自合作伙伴或促销活动的兑换码(如 K7QM-3XTP-9RWA-FD2H)可开通一定天数的套餐:登录后在 Premium 页面的有激活码?处输入。每个码只能使用一次。
任务长时间任务(例如扫描大量市场)会排队等待,以保持网站速度。控制台 → 任务显示每个任务的排队位置、预计等待时间和结果,控制台概览会列出仍在运行的任务;套餐用户优先。任务无法完成时会自动重试,若仍失败会通知您。卡住或已运行 30 分钟的任务可在那里取消;其原本在结束时收取的费用不会收取。

策略测试器(网站)

图表上的策略会在当前周期的历史 K 线上测试交易策略,并在图表上显示每笔交易、盈利、回撤、胜率以及与买入持有对比的资金曲线。选择内置策略并修改参数,或用 JavaScript 编写您自己的策略。登录后可在多达 20,000 根 K 线上测试,并保存最多 50 个策略。您的脚本只在浏览器中运行,处于无法访问互联网、您的账户或本网站的沙箱内。

完整的回测控制台指南讲解每项设置和结果、完整的脚本参考(包括代码中全部 71 个指标)以及 11 个可直接运行的示例。

主题运作方式
内置策略均线交叉、RSI 反转(止损和目标以 % 计)、布林带均值回归、MACD 信号线交叉、唐奇安突破(海龟法则,带 ATR 止损)和 SuperTrend。查看代码可准确了解每个策略的逻辑;编辑副本可将其变成您自己的脚本。
交易如何成交在某根 K 线上下的订单会以下一根 K 线的开盘价成交,因此策略绝不会以它当时不可能知道的价格交易。止损和止盈在每根 K 线内用其最高价和最低价检查;若两者可能在同一根 K 线内都被触及,则按止损计算(谨慎假设);跳空越过止损时按开盘价成交。同一时间只有一个仓位:持空单时下多单会反手。结束时仍未平仓的交易按最后收盘价平仓。
设置初始资金、订单大小(权益百分比或固定单位数)、佣金(成交额百分比,双边各计)、滑点/点差(每次成交均按不利方向加入,以价格计;K 线为买价)以及是否允许做空(关闭时,做空信号只会平掉多单)。金额以价格所用货币计。
结果净利润及百分比、同一批 K 线上的买入持有收益、最大回撤、交易次数和胜率、盈利因子(总盈利 ÷ 总亏损)、平均每笔交易、夏普比率(由 K 线收益年化)、持仓时间占比、多空分别统计、最大盈利和最大亏损以及最长连亏。交易列出每笔交易(点击可在图表上查看,或下载 CSV);资金曲线将账户与买入持有对比绘制。
您自己的脚本脚本顶部只运行一次;function onBar(i) { … } 会按从旧到新的顺序对每根 K 线运行。示例:
const len = input("Average period", 50, { min: 2, max: 500 });
const avg = ta.sma(close, len);
plot(avg, "SMA " + len, "#2F80ED");

function onBar(i) {
  if (avg[i] == null) return;                       // still warming up
  if (position <= 0 && close[i] > avg[i]) long({ slPct: 2 });
  if (position >= 0 && close[i] < avg[i]) short({ slPct: 2 });
}
K 线与输入参数open、high、low、close、volume、time(UTC 秒)均为数组,按从旧到新排列;bars、symbol 和 timeframe 描述它们。在 onBar(i) 中读取 i 之后的 K 线会使测试报错停止(不能偷看未来)。input("Name", 14, { min, max, step }) 或 input("Mode", "EMA", { options: ["SMA", "EMA"] }) 会在结果上方添加一个字段;其值随策略保存。
序列ta.sma、ta.ema、ta.wma、ta.rma(Wilder)、ta.rsi、ta.stdev、ta.highest、ta.lowest、ta.change、ta.roc 参数为(序列,长度);ta.atr(14)、ta.tr();ta.macd(close, 12, 26, 9) → {macd, signal, hist};ta.bb(close, 20, 2) → {upper, middle, lower};ta.stoch(14, 3, 3) → {k, d};ta.supertrend(10, 3) → {line, dir}。ind("adx", { period: 14 }) 可调用图表 71 个指标中的任意一个(返回第一条线;其余在 .lines 中)。K 线数量不足时值为 null。
信号与订单ta.crossover(a, b, i)、ta.crossunder(a, b, i)、ta.cross(a, b, i)(b 可以是数字)、ta.rising(s, n, i)、ta.falling(s, n, i)。long()、short()、exit("reason"),可带选项 { sl, tp }(价格)、{ slPct, tpPct }(相对成交价的 %)、{ qty }(单位)和 { comment };stopLoss(price) 和 takeProfit(price) 用于移动持仓的止损止盈。position(1、−1 或 0)、positionSize、entryPrice、entryBar、equity 和 cash 在 onBar 中为当前值。
输出plot(series, "Name", "#hex") 在价格图上绘制一条线(最多 12 条);log("text", value) 写入 Log 标签页(最多 200 行)。错误会显示脚本中的行号。运行超过 20 秒的测试会被停止。
限制过往表现不代表未来结果。回测不考虑隔夜利息、融资成本和变动的点差,而针对历史数据调优的策略在新数据上通常表现更差:请在其他时间段或代码上检验。这不构成投资建议。

分享分析与俱乐部

通过链接分享一个分析,或在俱乐部中协作:一个带聊天和图表分析书架的共享工作区。

主题运作方式
秘密链接在图表上依次点击我的分析 → 分享 → 创建秘密链接。任何拿到链接的人都能在其图表上查看该分析,无需账户,且无法修改;已登录的查看者可保存自己的副本。链接不会泄露您账户的任何信息,关闭链接会立即使其失效。
俱乐部俱乐部分为两种。私密俱乐部是团队、朋友或学生的共同项目:对其他人不可见,可通过俱乐部的秘密邀请链接(管理员可以更换或关闭)或个人电子邮件邀请(仅限该地址,14 天内有效,只能使用一次)加入。公开俱乐部是任何人都能阅读、任何已确认邮箱的人都能加入的社区。每位客户最多可创建 10 个俱乐部,每个最多 10000 名成员。
共享分析分享 → 分享到俱乐部会将副本放入俱乐部,并在聊天中发送一条可在图表上打开它的消息;您的原件仍为私密。在共同项目中,每位成员都可以打开并完善俱乐部的分析(俱乐部会显示最后编辑者);所有者可以将编辑权限限制为作者和管理员。
回复、提及和话题标签对消息点击回复会在您的消息上方引用它;点击引用可跳回原消息,无论它在多远的上方。输入 @ 和成员名字的前几个字母即可提及对方(从列表中选择),或在其消息上点击 @。提及您和回复您的消息会高亮显示,在俱乐部列表中计数,并且每个俱乐部每小时最多给您发送一封邮件(可在俱乐部页面的您中关闭)。用 # 标记话题,例如 #EURUSD 或 #elliott:标签会变成按钮,列出带该标签的所有消息,俱乐部当月最常用的标签显示在聊天上方。
聊天新消息几秒内即会出现。您可在发送后 15 分钟内删除自己的消息;之后消息将保留,以免对话事后被改写。俱乐部管理员可删除任何消息。每位成员每分钟最多 12 条消息。
角色所有者:设置、头像、管理员、移交俱乐部、删除俱乐部。管理员:邀请、移除和屏蔽成员、删除消息、处理举报、俱乐部头像。成员:聊天和共享分析。每个人都以自选昵称显示,绝不显示电子邮件地址。
防机器人保护创建俱乐部和在聊天中发言会经过 reCAPTCHA 检查(不可见;只有 Google 不确定时才显示勾选框,之后 30 分钟聊天内不再出现)。新账户需短暂等待后才能创建俱乐部,首日的消息额度较小;每分钟和每天的消息数、重复的相同消息、每个网络地址新建的俱乐部数以及全站刷屏均有限制。
审核任何人都可用 ⚑ 举报消息。举报会显示给俱乐部管理员(在被举报的消息中,可删除或保留)以及网站工作人员。管理员可以禁止成员发言(仍可阅读)并在之后恢复,或移除成员,也可永久移除。
俱乐部图片所有者和管理员可上传不超过 3 MB 的 PNG、JPEG、WebP 或 GIF;图片会被裁成正方形,显示在俱乐部页面和俱乐部列表中。公开俱乐部足够多时,最活跃的三个会出现在首页。
隐私私密俱乐部仅对成员可见;不会向搜索引擎提供任何俱乐部页面。退出俱乐部后将失去对其分析和聊天的访问。消息和分析是成员的观点,不构成投资建议。

提醒发送到:电子邮件、Telegram、手机、浏览器和 webhook

渠道如何开启
邮件对每个已确认的邮箱地址均开启,若提醒附有图表截图则一并发送。
Telegram控制台 → 图表与提醒 → 提醒发送到 → 连接 Telegram 会打开我们的机器人;点击 Start 即完成绑定。可在同一处断开,或屏蔽该机器人。
浏览器通知同一位置 → 在此浏览器中开启(每个浏览器和设备开启一次)。
手机登录手机应用并允许通知;勾选了 push 的提醒会推送到手机。
Webhook您自己服务器的 https 地址(仅限公网)。每条提醒都是带 X-Alert-Timestamp 和 X-Alert-Signature: sha256=… 的 JSON POST(用您的 webhook 密钥对 timestamp + "." + body 计算 HMAC-SHA256)。发送测试会显示您服务器的响应。
# Python: check that a webhook really comes from us (Flask example)
import hashlib, hmac, time
from flask import Flask, request, abort
SECRET = b"your-webhook-secret"
app = Flask(__name__)

@app.post("/alerts")
def alerts():
    ts = request.headers.get("X-Alert-Timestamp", "")
    sig = request.headers.get("X-Alert-Signature", "").removeprefix("sha256=")
    good = hmac.new(SECRET, ts.encode() + b"." + request.get_data(), hashlib.sha256).hexdigest()
    if not hmac.compare_digest(sig, good) or abs(time.time() - int(ts or 0)) > 300:
        abort(401)
    alert = request.get_json()
    print(alert)            # your trading bot, Slack, a spreadsheet…
    return "ok"

限制与错误(价格 API)

速率限制每个 API 密钥:每分钟 600 次请求,每小时 20000 次;无需密钥的免费端点:每个 IP 地址每分钟 10 次、每天 1000 次,每次请求最多 5 个代码。 月度套餐可提高密钥限额。每个响应都带有 X-RateLimit-Limit、X-RateLimit-Remaining,超限时返回 429 并附 Retry-After。
错误错误以 JSON(application/problem+json)返回,包含 status、稳定的 code(例如 unauthenticated、insufficient_balance、insufficient_scope、ip_not_allowed、unknown_symbol、rate_limited)、可读的 detail 和 request_id。联系支持时请提供请求 ID。所有代码:开发者 → 错误。
安全重试遇到 429 和 5xx 时稍候重试(SDK 会自动处理);遇到 4xx 时,未修改请求前切勿重试。
网站错误如果网站某个页面出错,会显示一个简短的错误页面并附参考编号。在支持工单中提供该编号,我们就能准确找到发生了什么。

您的账户:API 密钥、安全与团队

API 密钥控制台 → API 密钥:按需创建任意数量,每个只授予所需权限(read:latest、read:history、read:ohlcv、read:symbols、read:metadata、read:oracle),也可限定为您服务器的 IP 地址。密钥只显示一次;我们只保存其指纹。密钥一旦泄露请立即撤销。测试密钥(mdp_test_…)用于试运行代码:不能调用付费端点,也从不消耗额度。
双因素登录账户 → 安全:身份验证器应用(Google Authenticator、Microsoft Authenticator、1Password…)及恢复码。强烈建议启用;工作人员必须启用。
手机与会话所有登录了应用的手机都列在账户中,可对单台或全部点击退出登录。修改密码会让所有手机退出登录。
团队控制台 → 团队:邀请同事协作管理您的账户(余额、密钥和用量),角色可为管理员、开发者(密钥、用量、文档)或账单(充值、套餐、收据)。每个人都使用自己的密码和双因素验证登录。
用量控制台 → 用量:按天、密钥和端点统计的请求和额度。余额不足时会在额度用完前发送邮件提醒。
删除您的账户在账户中(或在应用中):您会立即退出登录,个人数据将在 7 天后删除。按法律要求,付款记录会以匿名方式保留。

额度、充值与套餐

额度API 使用预付额度付费(每 1,000 额度 $1):每返回一个最新价格 1 额度,每 1000 行历史数据 1 额度,流式推送每个代码每分钟 1 额度。每个新账户赠送 1000 免费额度,且始终优先使用。图表、提醒和社区免费。
加密货币充值控制台 → 账单:Ethereum、BNB Smart Chain、Arbitrum、Optimism、Base 或 Solana 上的 USDT 或 USDC,最低 $5。 用您的钱包扫描二维码;付款最终确认后余额会自动更新,并为您生成收据。
银行卡充值在已开启银行卡支付的地区,账单页面上的银行卡支付。
月度套餐价格:每月额度的积分,比按量付费更便宜,并且速率限制更高。套餐有效期间,请求只使用套餐积分,绝不动用您的余额:用完后,可在账单页面为本月追加积分或升级套餐。套餐结束后,除非您续订或选择按量付费,否则不会使用您的余额。可随时取消。
Chart Premium与 API 分开:面向重度图表用户的 Pro 和 Pro+(参见 Chart Premium)。
收据每次充值和套餐付款在“账单”下都有带二维码的收据。

任务

重型任务(形态扫描、大批量兑换码、长报告)会在公平队列中等待,而不会拖慢网站。控制台 → 任务会显示每个任务的排队位置和预计时间;您可以离开页面,完成后会在控制台通知您(耗时长的还会发邮件)。失败的任务会自动重试,绝不会悄无声息地消失。

帮助与支持

指标和画线在您的浏览器中计算。图表、指标和提醒仅为信息,不构成投资建议。