股币道
GUBIDAO · 股民转加密

币安 24 小时涨跌幅和 A 股当日涨跌幅的起算价格不一样

同样写着涨了 3%,币安行情页是从 24 小时前那一刻的价格算起、随时间往前滚,A 股是一整天都从前收盘价算起,两个数字说的不是一回事。

币安英文博客 Change (%) Basis 说明一屏:默认按过去 24 小时计算涨跌幅,选 UTC+8 时从 00:00 开盘价算起,改时区不作用于 K 线,App 路径为 Settings - Change Basis
留意图里那句「改时区不作用于 K 线」的注释,中文帮助中心的说法正好相反,两边怎么对照见切到 UTC+8 后日 K 线会不会跟着按北京时间划分(币安英文博客,2026 年 9 月)

币安行情页默认显示的涨跌幅,拿当前价格和 24 小时前那一刻的价格比,窗口随时间往前滚,起点跟着当前时间一起往后挪;A 股行情软件上的涨跌幅,拿最新成交价和前收盘价比,整个交易日分母不动。同一个币上午 10 点看一次、晚上 10 点再看一次,两个百分比的起点隔了 12 个小时;同一只沪市股票 9:30 和 14:00 各看一次,起点都是同一个前收盘价。

想让币安的百分比也有个固定起点,App 里能改:进【账户中心】-【设置】,在「主题」那一组找到「涨跌幅与图表时区」,从「近24小时」换成 UTC+8。币安英文博客举的例子是,选了 UTC+8,涨跌幅从北京时间 00:00 的开盘价算起。起点固定下来了,可它是当天零点的开盘价,和 A 股用的前收盘价还是对不上。

币安 24 小时涨跌幅拿哪个价格当起点

「24 小时」从哪一刻算起,可以对照币安现货 API 文档:/api/v3/ticker/24hr 接口的说明是 24 hour rolling window price change statistics,即 24 小时滚动窗口的涨跌统计。窗口的终点是现在,起点是现在往前推 24 小时;半小时后再查,起点也往后挪了半小时。炒股时习惯的「今天涨了多少」,这个数给不了(同花顺、雪球用户换到币圈行情页还会碰到哪些不一样,见看懂加密行情:和同花顺 / 雪球的异同的「陷阱二」)。

这个接口返回的字段里,和涨跌幅有关的是下面几个:

字段文档里的说明文档示例值
openPriceOpening price of the Interval(窗口开盘价)99
lastPriceClosing price of the interval(窗口收盘价)4.000002
priceChange—−94.999998
priceChangePercent—−95.96
prevClosePrice—0.10002
openTime / closeTimeStart / End of the ticker interval1499783499040 / 1499869899040

拿示例值验证:4.000002 − 99 = −94.999998,和 priceChange 一致;−94.999998 ÷ 99 × 100% ≈ −95.96%,和 priceChangePercent 一致。示例里的 prevClosePrice 是 0.10002,拿它当分母得到的是约 +3899%,对不上。openTime 和 closeTime 两个毫秒时间戳相差 86,400,000,正好 24 小时。看到 prevClosePrice 这个名字,别急着把它当成 A 股的昨收:示例里和百分比对得上的是 openPrice。

同一份文档里另有一个 Trading Day Ticker 接口(/api/v3/ticker/tradingDay),说明是 Price change statistics for a trading day,按交易日统计涨跌。它带一个 timeZone 参数,默认值 0,即 UTC。不传这个参数,接口里的「一天」按 UTC 划分,换算成北京时间是早上 8 点换日。

币安 App 里怎么把涨跌幅改成按北京时间 0 点算

  1. 登录币安 App,进入【账户中心】-【设置】。
  2. 在「主题」这一组里找到「涨跌幅与图表时区」,它和「涨跌颜色设置」在同一组。
  3. 把「近24小时」换成 UTC+8。
  4. 换之前先记下某个币在行情页上的百分比,换完回去对照,看数字有没有变。

入口出自币安帮助中心《如何自定义币安App的设置和通知》。在「主题」里翻不到这一项,可以按英文博客给的名字找:[Settings] - [Change Basis]。那篇博客发于 2022 年,是这个功能刚上线时的介绍;帮助中心这一页 2026 年还更新过。App 改版后菜单叫法可能变过,两个名字都对不上,就在设置页里找带「涨跌幅」或 Change 字样的条目。

博客说这项设置用在现货、杠杆、期权和合约的图表上,模拟交易和每日期权(Daily Options)除外。选 UTC+8 时,「percentage change data will be calculated from the open price at 00:00 UTC+8」,涨跌幅改从北京时间 00:00 的开盘价算。帮助中心那一节讲的是账户这一侧:选了新的 UTC 时区,现货、杠杆、期权和合约账户的盈亏涨跌幅按新时区计算;选「近24小时」,系统用过去 24 小时的数据算盈亏。

按博客的说法,改成 UTC+8 以后,涨跌幅的起点钉在北京时间零点,当天之内不再跟着时间滑动,读起来更接近老股民熟悉的「今天涨了多少」,但起点是 0 点开盘价,不是 A 股的前收盘价。

切到 UTC+8 后日 K 线会不会跟着按北京时间划分

币安自己的两份页面,在这件事上说法不一致。

英文博客在 UTC+8 的例子后面加了一句注:「Changing time zones will only affect the percentage change calculation using market information. Changes will not be applied to Kline candlesticks.」意思是改时区只影响涨跌幅的计算,不作用于 K 线。

中文帮助中心「涨跌幅与图表时区」一节先说「时区的切换不会影响交易图表中显示的价格涨跌幅」,接着又说:「如果切换到 UTC+8,设置将同时适用于涨跌幅 (%) 和现货/杠杆图表,而如果使用其他时区,则只影响涨跌幅 (%)。」

博客说 K 线不受影响;帮助中心说选 UTC+8 会连现货和杠杆图表一起改,同一节里又说图表上显示的价格涨跌幅不受影响。你手上这个版本的 App 实际怎样,切换前后各看一次同一个币的日 K:最新一根的开盘价如果变了,日 K 的分界就跟着动了。

写程序取数据的,接口文档这边没有歧义。K 线接口 /api/v3/klines 的 timeZone 参数默认 0(UTC);传了 timeZone,K 线周期按该时区划分,可以只填小时(文档举的例子是 0、8、4),也可以写成带分钟的形式,范围是 −12:00 到 +14:00。startTime 和 endTime 不管传不传 timeZone,一律按 UTC 解释。想要按北京时间切的日 K,传 timeZone=8。

A 股涨跌幅为什么一整天都拿前收盘价比

这一节的条文都出自《上海证券交易所交易规则(2026年修订)》。这一版 2026 年 7 月 6 日起施行,2023 年修订版同时废止。

5.2.2 条列了连续竞价期间即时行情的内容:证券代码、证券简称、前收盘价格、最新成交价格、当日最高和最低成交价格、当日累计成交数量和金额,以及实时最高 5 个买入申报价格和数量、实时最低 5 个卖出申报价格和数量。3.3.13 条定涨跌停价,公式是:涨跌幅限制价格 = 前收盘价 ×(1 ± 涨跌幅限制比例),比例为 10%;同一份规则里,科创板股票在 6.6 条另定为 20%。

交易规则里没有哪一条专门规定行情软件怎样显示涨跌幅。不过行情里前收盘价格和最新成交价格一起发布,涨跌停又是从前收盘价往上下各推一个比例,软件那一栏涨跌幅拿的就是最新成交价对前收盘价:(最新成交价 − 前收盘价)÷ 前收盘价 × 100%。代入这个式子,价格大约在 +10% 碰到涨停价(涨停价按 3.3.17 条四舍五入到 0.01 元)。

3.3.13 条同时列了四种不实行涨跌幅限制的股票:首次公开发行上市的股票上市后的前 5 个交易日;进入退市整理期交易的退市整理股票首个交易日;退市后重新上市的股票首个交易日;交易所认定的其他情形。

「前收盘价」也不总是上一个交易日收盘的那个数。除权除息日,4.3.2 条规定当天即时行情里显示的前收盘价是除权(息)参考价,4.3.3 条规定当天按这个参考价作为计算涨跌幅度的基准;新股上市首日,5.2.3 条规定即时行情显示的前收盘价格是发行价,交易所另有规定的除外。

平常日子里,前收盘价就是上一个交易日的收盘价。按 2.4.2 条,竞价交易 9:15 至 9:25 是开盘集合竞价,9:30 至 11:30、13:00 至 14:57 是连续竞价,14:57 至 15:00 是收盘集合竞价。4.1.3 条规定收盘价通过集合竞价产生;收盘集合竞价产生不了收盘价,或者没有进行收盘集合竞价的,取当日最后一笔交易前一分钟所有交易的成交量加权平均价(含最后一笔);当天没有成交,就以前收盘价作为当日收盘价。币安的 24 小时窗口里没有这样一个按规则产生的收盘价,起点只是「现在减 24 小时」那一刻(加密市场不收盘给作息带来的变化,见币圈7×24小时:没有收盘钟声,股民作息怎么调)。

同一个价格按三种起点算涨跌幅会显示多少

下面的价格全是假设的:

  • 某币:昨天北京时间 20:00 成交价 100 USDT;今天北京时间 00:00 开盘价 104 USDT;今天 20:00 最新价 102 USDT。
  • 某只沪市主板股票:前收盘价 10.00 元;今天开盘价 10.20 元;14:00 最新成交价 10.35 元。
看的是哪个数起点公式涨跌幅
币安默认(近 24 小时),今天 20:00 看24 小时前的 100 USDT(102 − 100) ÷ 100 × 100%+2.00%
币安改成 UTC+8 后(按博客的算法),今天 20:00 看北京时间 00:00 开盘价 104 USDT(102 − 104) ÷ 104 × 100%−1.92%
A 股行情软件,14:00 看前收盘价 10.00 元(10.35 − 10.00) ÷ 10.00 × 100%+3.50%
同一只股票拿当天开盘价当起点开盘价 10.20 元(10.35 − 10.20) ÷ 10.20 × 100%+1.47%

币价 102 USDT 一分没动,起点从 100 换成 104,百分比就从正变负。用默认的 24 小时数还要留意,20:30 再看时起点换成了昨天 20:30 的价格,哪怕现价还是 102,百分比也可能跟着变;改成 UTC+8 后,今天之内的起点一直是那个 104。

股票那两行,起点从 10.00 换成 10.20,同一个 10.35 元算出来差了两个多百分点。按 3.3.13 条,这只股票当天的涨停价是 10.00 × 1.1 = 11.00 元,跌停价是 10.00 × 0.9 = 9.00 元,现价离涨停还差 0.65 元。涨跌停这道闸换到币圈是什么情况,可以接着读币圈没有涨跌停板:风险和机会都被放大。

参考来源

  • 币安帮助中心《如何自定义币安App的设置和通知》:「涨跌幅与图表时区」一节,App 入口、盈亏涨跌幅按所选时区计算、UTC+8 同时适用于现货/杠杆图表的说法。
  • 币安英文博客《New Percentage Change Basis Feature Available on Binance Spot, Margin, Options, and Futures Charts》:默认按过去 24 小时计算,选 UTC+8 从 00:00 开盘价算起,改时区不作用于 K 线。
  • 币安现货 REST API 文档 Market 部分:24hr ticker、Trading Day Ticker 和 K 线接口的字段与 timeZone 参数。
  • 上海证券交易所交易规则(2026年修订):2.4.2、3.3.13、3.3.17、4.1.3、4.3.2、4.3.3、5.2.2、5.2.3、6.6 条。

常见问题

除权除息那天 A 股涨跌幅按什么算?

按除权(息)参考价算。上交所交易规则 4.3.3 条规定,除权(息)日以除权(息)参考价格作为计算涨跌幅度的基准(交易所另有规定的除外),4.3.2 条规定当天即时行情显示的前收盘价就是这个参考价。参考价 =[(前收盘价格 − 现金红利)+ 配股价格 × 流通股份变动比例]÷(1 + 流通股份变动比例)。

沈牧 · 股币道编辑部
「沈牧」是笔名。这个站写给从股市转来看加密货币的人,拿 A 股的交易规则对照着讲币圈的规则。