跨市场行情应用的涨跌幅:同刻黄金−0.69%还是+0.24%
TickDB Research ·
做跨市场行情App,最容易被用户截图投诉的,是价格旁边那个红绿百分比。同一刻、同一个金价,涨跌可以是−0.69%,也可以是+0.24%。本文拆解涨幅榜、价格提醒、持仓页、首页详情页4个最容易出错的场景,附一张跨市场分母清单。
做跨市场行情App,最容易被用户截图投诉的,往往是价格旁边那个红绿百分比。
2026年10月13日周二,北京时间10:56,黄金4,175.15美元。同一个价格,我按5种常见算法各算了一遍涨跌幅:
| 跟谁比 | 基准价(美元) | 涨跌 |
|---|---|---|
| 24小时前(约) | 4,204.35 | −0.69% |
| 我实测的接口给的“前收” | 4,190.27 | −0.36% |
| 纽约17:00 | 4,171.38 | +0.09% |
| UTC 0点(日K收盘) | 4,170.54 | +0.11% |
| 北京时间0点 | 4,164.95 | +0.24% |
单次快照。基准价都取自同一数据源的K线,涨跌幅按同一个公式重算,可以自己验算。
换成钱:持有100盎司黄金,按“24小时前”算,账面一天亏约2,920美元;按“北京时间0点”算,赚约1,020美元,相差3,940美元。两个App给出相反的颜色,都没算错。
黄金只是一个品种。把A股、港股、美股、外汇、加密放进同一个App,这种事会成倍出现:寒武纪除权那天,日K线上“暴跌36.7%”,实际只跌5.6%;同一只苹果,首页显示+1.29%,详情页显示+0.47%;比特币的“今日涨跌”,其实是过去24小时。
跨市场行情应用里,涨跌幅不是一个现成的字段,而是一道除法:分子是现价,各家一样;分母是“跟谁比”,每个市场都不一样。分母不统一就上屏,涨幅榜、价格提醒、持仓页、首页推送,四个地方都会出错。

这篇写给做行情产品的人——产品、运营和技术同事,也写给每天看行情App的投资者。读完你能带走:
- 4个最容易出错的产品场景:用户看到什么、错在哪、代价多大、怎么修
- 一张跨市场“分母清单”:每个市场的涨跌幅该跟谁比,界面上该写什么
- 上线前问数据供应商的5个问题
- 一段代码(给技术同事):按统一基准重算涨跌,自动识别A股除权除息日
先记住一句话:看涨跌,先问“跟谁比”。
一、一分钟看懂:涨跌幅为什么会对不上
涨跌幅 =(现价 − 基准价)÷ 基准价。现价各家一样,分歧全在基准价。
系列上一篇《行情看板Demo三天、上线三个月:拆解7个返工点》提出过一个检查框架:界面上的每个数字,都要能说清自己的品种、时段、算法、时间、状态。涨跌幅是“算法”这一格里最常见、也最容易出错的数字。
拆开看,基准价由3个问题决定:

- 跟哪个价比?昨天的收盘价、某个整点的价格,还是除权后的参考价。
- 跟几点的价比?“今天”从北京时间0点算、UTC 0点算、纽约17:00算,还是干脆用“过去24小时”。
- 中间发生过什么?除权除息、跨时段(盘后、夜盘)、休市。
连“收盘价”本身都是规则算出来的。上交所从2018年8月20日起,股票收盘价由14:57–15:00的收盘集合竞价产生,这三分钟可以报单、不能撤单;纳斯达克16:00的收盘撮合产生官方收盘价;黄金干脆没有官方收盘价。每个市场规则不同,默认分母也不同:
| 市场 | 涨跌幅通常跟谁比 | 最容易出错的地方 |
|---|---|---|
| A股 | 上一交易日收盘价 | 除权除息日要改用参考价 |
| 港股 | 上一交易日收市价(由收市竞价时段决定) | 跨市场排序时和美股、加密的窗口不同 |
| 美股 | 上一常规交易日收盘价 | 盘前、盘后、夜盘另有基准 |
| 黄金、外汇 | 没有官方收盘:纽约17:00、UTC 0点、北京0点都有人用 | 周日开盘会切出一根“迷你日K” |
| 加密资产 | 没有收盘:滚动24小时,或用户自选0点 | 窗口每时每刻都在挪 |
| 指数 | 上一交易日收盘价 | 休市时段,各家显示不同 |
一个App里只放一个市场,问题不大;放进六个市场,这六套规则就会在同一块屏幕上撞车。下面是撞车最多的4个地方。
二、4个出错场景:钱和信任在哪里流失
每个场景都是同一个毛病:不同分母的涨跌幅,被当成同一种数放在了一起。
场景① 涨幅榜和自选列表:跨市场一排序,名次就失真
用户看到的:自选列表按涨跌幅排序,苹果+1.29%排第一,比特币−1.07%排最后。
错在哪:这5个涨跌幅,量的是5段不同的时间。

- 苹果、标普500:北京时间上午美股休市,显示的是上周五收盘到周一收盘的涨跌;
- 寒武纪:昨天收盘到现在;
- 黄金:看你选几点切日,图里按UTC 0点;
- 比特币:过去24小时,而且这个窗口一直在滑动。我实测它的“前收”,10月12日11:08是83,049.15,同日14:01是83,074.01,10月13日10:56是83,866.01,同一天里查两次,分母就变了。币安官方API文档把24小时行情定义为滚动窗口;Gate 则让用户在“过去24小时”“UTC+8 0点”“UTC 0点”三种起止时间里自己选。
指数还有一种情况:我实测标普500在10月12日北京白天显示0.00%(前收和最新价都是7,811.54),10月13日早上显示−0.06%(周一的涨跌)。同样是美股休市的北京白天,一天显示0,一天显示上一交易日的涨跌。
代价:榜单名次没有可比性。用户按“今日最强”去追,追的可能是两天前的涨幅;运营做跨市场涨幅榜活动,排第一的未必真涨得最多;指数休市显示0.00%,用户以为平盘。
怎么修:跨市场排序前,用K线按同一个窗口(比如“北京时间今天0点至今”)把所有品种重算一遍再排;休市的品种标“休市”,不和交易中的品种混排。
先问供应商:涨跌幅的基准时刻是几点、哪个时区?休市时显示什么?
场景② 价格提醒:同一个阈值,一个响一个不响
用户看到的:用户设了“黄金跌0.5%提醒我”。同一时刻,A平台推送了提醒,B平台没有。
错在哪:按“24小时前”算是−0.69%,提醒响;按“北京时间0点”算是+0.24%,提醒不响。两个平台都没算错,只是分母不同。

根子在于黄金没有官方收盘价。伦敦 LBMA 黄金价格每天定两次(伦敦时间10:30、15:00),上海金每天两次(北京时间10:15、14:15),COMEX 期货结算价按收盘前一段时间的成交量加权平均价算。现货平台不受这些约束,各自选时刻切“日”。CME 在2026年9月29日的文章里写,纽约时间17:00之后的一小时,是全球外汇日的“行政分界”——按这个时刻切日很常见,但不是唯一的选择。
切日时刻还会切出意外。按UTC 0点切日K线的数据源,周日晚上开盘那几个小时会单独成一根“日K”:我实测黄金10月11日(周日)这根K线成交量只有8,813,前后几个交易日都在15万以上。我实测的接口给出的“前收”4,190.27,正好就是这根周日K线的收盘,算出来是−0.36%,既不是纽约17:00的价格,也不是周一的收盘。
代价:误触发,用户可能据此卖出或加仓;漏触发,该提醒的没提醒。客服还解释不清“为什么别家提醒了你们没提醒”。
怎么修:提醒规则里写明基准,比如“较纽约17:00跌0.5%”,用户设置时就能看到;周日开盘那几个小时单独处理,不当成一个交易日。
两个边界:用小时K线取的“纽约17:00价格”,和别家的纽约收盘可能差零点几美元;“24小时前”只能取到最近的整点,是近似值。
先问供应商:黄金、外汇按几点切日?周日开盘那几个小时怎么算?
场景③ 持仓和资产页:除权那天“一夜亏三成”
用户看到的:持有寒武纪的用户,5月8日早上打开App,持仓市值少了三成;跌幅榜第一名是寒武纪,−36.70%。
错在哪:这天是寒武纪的除权除息日。2025年度分配方案是每股派现1.50元、每股转增0.49股,股权登记日5月7日。交易所规定,除权除息日的涨跌幅不跟昨天收盘比,而是跟除权(息)参考价比:
参考价 =(前收盘价 − 现金红利)÷(1 + 流通股份变动比例)=(1,868.00 − 1.50)÷ 1.49 = 1,252.68元

5月8日实际开盘1,217.03元、收盘1,182.53元:
- 按昨收1,868.00算:低开34.85%,收跌36.70%
- 按参考价1,252.68算:低开2.85%,收跌5.60%
我实测的复权因子也对得上:这次除权的前复权因子是0.6706,1,868.00 × 0.6706 = 1,252.68。
还有一个反证。寒武纪是科创板股票,涨跌幅限制20%。按参考价算,当天涨跌停区间是1,002.14–1,503.22元;如果错按昨收算,跌停价应是1,494.40元,而寒武纪全天都在1,158.01–1,220.00元之间成交——那就等于全天都在“跌停价以下”成交,这不可能。交易所自己用的分母,就是参考价。
代价:从持仓看,转增后股数变成1.49倍,每股还拿了1.50元现金,市值并没有少三成,但用户看到的是“亏了三成”,第一反应是截图投诉。跌幅榜挂错,运营要出面解释。做量化的拿不复权日K回测,除权日是一根假的大阴线,止损会在这天被误触发。
这不是一年碰上一次的事。10月正赶上中期分红集中除权,我实测的分红日历里,10月12日、13日两天的A股除权除息记录就超过20条。
怎么修:快照的前收和昨日收盘差得多,先标“除权除息”,涨跌按参考价算,持仓按新股数显示;回测用复权数据。
先问供应商:除权除息日的前收,是不是参考价?
场景④ 首页和详情页:同一只苹果,两个涨幅
用户看到的:首页上苹果+1.29%,点进详情页+0.47%。用户的第一反应:数据坏了。
错在哪:10月13日北京时间10:56,美股正在夜盘时段。我实测同一时刻的苹果有4个涨跌:
- 主快照340.97美元(周一常规盘收盘),较上周五收盘336.64,+1.29%
- 盘后341.36,较周一收盘,+0.11%
- 夜盘342.57,较周一收盘,+0.47%
- 夜盘较上周五收盘,+1.76%(自己算)

规则是:常规盘的涨跌,跟上一个常规交易日的收盘比;盘后、夜盘的涨跌,跟当天常规盘的收盘比。数据里写得很清楚:盘后、夜盘的前收是340.97(周一收盘),主快照的前收是336.64(上周五收盘)。四个数都对,只是分母不同。
代价:用户真正想知道的,往往是“从上周五到现在涨了多少”,答案是+1.76%,首页和详情页给他的哪个都不是。两个数并排、又不写分母,用户只会得出一个结论:这个App的数据不靠谱。到了财报季,盘后动辄跳空几个百分点,首页和详情页的差距会更大(本周五的文章专门讲)。
怎么修:同一屏上的每个涨跌幅,旁边写上时段和基准,比如“夜盘 较周一收盘 +0.47%”。
先问供应商:盘前、盘后、夜盘的涨跌,按哪个收盘算?
4个场景收在一张表里:
| 场景 | 用户看到的 | 错在哪 | 代价 | 怎么修 |
|---|---|---|---|---|
| 涨幅榜 | 苹果第一、比特币最后 | 5个涨跌幅量的是5段时间 | 名次失真,用户追错 | 按同一窗口重算再排 |
| 价格提醒 | 一家响、一家不响 | 黄金切日时刻不同 | 误触发、漏触发 | 规则里写明基准 |
| 持仓页 | 一夜“亏三成” | 除权日没用参考价 | 恐慌、投诉、回测失真 | 识别除权日,按参考价算 |
| 首页/详情页 | +1.29%和+0.47% | 常规盘和夜盘分母不同 | 用户不再信任数据 | 每个涨跌幅标时段和基准 |
这4件事看起来是技术细节,其实是产品问题。卡尼曼和特沃斯基1979年提出的前景理论有一个结论:人判断得失,看的是相对某个参照点的变化,而不是绝对水平。行情App上的涨跌幅,就是替用户选好的参照点。同样4,175.15美元的金价,参照点选在24小时前,用户觉得亏了;选在北京时间0点,用户觉得赚了。谁定分母,谁就定了用户今天的情绪,所以分母应该写在界面上。
三、怎么修:跨市场统一分母,分3步
先给每个涨跌幅贴上分母标签,再按同一个窗口重算,最后单独处理除权。
1. 一张跨市场分母清单
| 市场 | 建议的分母 | 界面上要写的字 |
|---|---|---|
| A股 | 上一交易日收盘;除权除息日用参考价 | “较前收(除权调整)” |
| 港股 | 上一交易日收市价 | “较前收” |
| 美股常规盘 | 上一常规交易日收盘 | “较上一交易日收盘” |
| 美股盘前/盘后/夜盘 | 当天常规盘收盘 | “夜盘 较今日收盘” |
| 黄金、外汇 | 选定一个切日时刻(如纽约17:00)并写出来 | “较纽约17:00” |
| 加密 | 滚动24小时,或指定时区0点 | “24h”或“较UTC 0点” |
| 指数(休市时段) | 上一交易日涨跌并标日期,或标“休市” | “10/12 收盘” |
照着这张表,每个涨跌幅旁边都能写出它在跟谁比。A股参考价按交易所规则执行,其余是建议做法。
2. 三步落地
第一步,贴标签。每个涨跌幅带上基准价和基准时刻。不贴,用户拿两个App一比颜色不一样就来问;解释一次,下一个用户还会问。
第二步,统一窗口。跨市场比较(涨幅榜、资产总览、跨市场提醒)时,不比现成的百分比,用K线按同一个窗口自己重算。不重算,名次取决于谁的分母更旧。
第三步,单独处理除权。A股先判断是不是除权除息日:快照的前收和昨日收盘差得多,就按参考价或复权数据处理。
3. 为什么跨市场更难:6类资产,6套规则
只做A股,记住“前收、除权”两件事就够了。做跨市场,要同时管6套规则:A股的除权、港股的收市竞价、美股的四个时段、黄金外汇的切日时刻、加密的滚动窗口、指数的休市显示。
如果每个市场各接一家数据源,同样叫“前收”的字段,名字、时间戳格式、切日时刻都可能不一样。统一分母之前,得先写一层“翻译”;市场越多,翻译层越厚。规则还在变:美国夏令时11月1日结束,纽约17:00对应的北京时间要从早上5点变成6点,每一家数据源的处理都得重新核对一遍。
所以做跨市场行情应用,省事的做法是:一套接口拿到所有市场的快照、K线和复权数据,分母标签层只写一次。
4. 我用 TickDB 把6类资产跑了一遍
TickDB 为开发者和 AI 应用提供统一的全球行情数据接口,让团队通过一套接入获取多市场实时与历史数据,更快构建行情、分析和监控产品。
本文寒武纪、苹果、黄金、比特币、标普500的数字,都是我用同一套接口取的:
| 能做到 | 要你自己处理 |
|---|---|
| 6类资产(A股、港股、美股、外汇贵金属、指数、加密)的快照,用同一组字段返回现价、前收和时间戳 | 接口给的涨跌幅是一个现成的数,不带“分母说明”,标签要自己加 |
| 同一套K线接口覆盖各市场,可以按任意基准时刻(纽约17:00、北京0点、UTC 0点)自己重算 | 黄金、外汇这类没有官方收盘的品种,建议按自己选定、并写在界面上的基准重算 |
| 美股快照同时带盘后、夜盘各自的价格和前收;复权因子能还原寒武纪的除权参考价 | 复权数据会随新的公司行为更新,回测要记下查询时间和复权方式 |
左边是一套接口能直接支撑的,右边是任何数据源都替代不了的产品判断。(作者实测,2026年10月12–13日。)
5. 给技术同事:一段代码
不写代码的读者可以跳过这一节。下面这段代码做两件事:用小时K线按4种基准时刻重算黄金涨跌;自动识别A股除权除息日。
# 测试环境:Python 3.11
# 接口端点与字段名已于 2026-10-13 通过实际调用核对
import os
import sys
from datetime import datetime, timedelta, timezone
from decimal import Decimal
from zoneinfo import ZoneInfo
import requests
API_KEY = os.getenv("TICKDB_API_KEY") # 从环境变量读取,不要写进前端
BASE_URL = "https://api.tickdb.ai/v1/market"
UTC, BJ, NY = timezone.utc, ZoneInfo("Asia/Shanghai"), ZoneInfo("America/New_York")
HOUR_MS = 3_600_000
def get(path, **params):
"""调用接口,同时检查 HTTP 状态和业务返回码。"""
try:
resp = requests.get(f"{BASE_URL}/{path}", params=params,
headers={"X-API-Key": API_KEY}, timeout=10)
body = resp.json()
except (requests.RequestException, ValueError) as e:
raise RuntimeError(f"{path} 请求失败: {e}") from e
if resp.status_code != 200 or body.get("code") != 0:
raise RuntimeError(f"{path}: HTTP {resp.status_code}, code={body.get('code')}, {body.get('message')}")
return body["data"]
def pct(last, base):
"""涨跌幅(%)=(现价 − 基准价)÷ 基准价 × 100。"""
last, base = Decimal(str(last)), Decimal(str(base))
return (last - base) / base * 100
def price_at(hourly, moment):
"""取某一时刻的价格:用“结束于该时刻”的那根小时K线的收盘价(K线时间戳为该小时的开始)。"""
target = int(moment.timestamp() * 1000) - HOUR_MS
for bar in hourly:
if bar["time"] == target:
return bar["close"]
return None
def last_moment(now, tz, hour):
"""now 之前最近一次 tz 时区的 hour 点(自动处理夏令时)。"""
local = now.astimezone(tz)
m = local.replace(hour=hour, minute=0, second=0, microsecond=0)
if m > local:
m -= timedelta(days=1)
return m
def gold_changes(symbol="XAUUSD"):
"""同一个现价,按4种自选基准价分别算涨跌。"""
q = get("ticker", symbols=symbol, type="forex")[0]
hourly = get("kline", symbol=symbol, interval="1h", type="forex", limit=48)["klines"]
now = datetime.fromtimestamp(q["timestamp"] / 1000, UTC)
day_ago = (now - timedelta(hours=24) + timedelta(minutes=30)).replace(minute=0, second=0, microsecond=0) # 24小时前,取最近的整点
bases = {
"24小时前(近似)": price_at(hourly, day_ago),
"纽约17:00收盘": price_at(hourly, last_moment(now, NY, 17)),
"UTC 0点": price_at(hourly, last_moment(now, UTC, 0)),
"北京时间0点": price_at(hourly, last_moment(now, BJ, 0)),
}
print(f"{symbol} 现价 {q['last_price']}({now.astimezone(BJ):%m-%d %H:%M} 北京时间)")
for name, base in bases.items():
print(f" 较{name:<10} 基准 {base} 涨跌 {pct(q['last_price'], base):+.2f}%" if base else f" 较{name}:缺数据")
def is_ex_rights_day(prev_close, last_daily_close, tol=Decimal("0.005")):
"""快照的前收和上一根日K收盘相差超过0.5%,大概率是除权除息日,要用参考价/复权数据核对。"""
p, c = Decimal(str(prev_close)), Decimal(str(last_daily_close))
return abs(p / c - 1) > tol
def check_ex_rights(symbol="688256.SH"):
q = get("ticker", symbols=symbol, type="stock")[0]
daily = get("kline", symbol=symbol, interval="1d", type="stock", limit=2)["klines"]
yesterday_close = daily[-2]["close"] # 最后一根是今天(可能未结束),取倒数第二根
flag = is_ex_rights_day(q["prev_close"], yesterday_close)
print(f"{symbol} 快照前收 {q['prev_close']} / 昨日K线收盘 {yesterday_close} → {'疑似除权除息日' if flag else '正常'}")
if __name__ == "__main__":
if not API_KEY:
sys.exit("请先设置环境变量 TICKDB_API_KEY")
gold_changes()
check_ex_rights()
# 历史核对:寒武纪 2026-05-08 除权除息日,参考价 1252.68,前一日收盘 1868.00
print("2026-05-08 寒武纪:", "疑似除权除息日" if is_ex_rights_day("1252.68", "1868.00") else "正常")
用10月13日10:56的实测数据跑出来的结果:
XAUUSD 现价 4175.15(10-13 10:56 北京时间)
较24小时前(近似) 基准 4204.35 涨跌 -0.69%
较纽约17:00收盘 基准 4171.38 涨跌 +0.09%
较UTC 0点 基准 4170.54 涨跌 +0.11%
较北京时间0点 基准 4164.95 涨跌 +0.24%
688256.SH 快照前收 971.88 / 昨日K线收盘 971.88 → 正常
2026-05-08 寒武纪: 疑似除权除息日
三点说明:
- 基准价都取自小时K线。K线时间戳是该小时的开始,所以代码取的是“结束于某时刻”的那根K线的收盘价。
- 纽约17:00用时区库换算,夏令时自动处理,11月1日之后不用改代码。
- 0.5%的阈值是经验值,只负责标记;标记出来以后,要再用参考价或复权因子核对。
6. 上线前问供应商的5个问题
- 涨跌幅的基准价是哪个价?昨收、某个时刻的价格,还是除权后的参考价。
- 基准时刻是几点、哪个时区?周日开盘那几个小时怎么算?决定黄金、外汇、加密的涨跌能不能和股票放在一起。
- 除权除息日用不用参考价?不用,持仓页就会出现“一夜亏三成”。
- 盘前、盘后、夜盘的涨跌按哪个收盘算?不说清,首页和详情页就会对不上。
- 休市时显示上一交易日涨跌,还是0?显示0,用户会以为平盘。
常见问题
行情App的涨跌幅,为什么和别家不一样?
因为分母不同。涨跌幅=(现价−基准价)÷基准价,现价各家一样,基准价各家可以不同:A股除权日用参考价还是昨收,黄金按纽约17:00还是UTC 0点切日,加密用滚动24小时还是0点,美股夜盘跟周一收盘比还是跟上周五比。两个App的涨跌幅不一样,多半不是谁算错,而是分母不同。
跨市场涨幅榜怎么排才可比?
不要直接拿各市场现成的涨跌幅排序。先选定一个统一窗口,比如“北京时间今天0点至今”或“过去24小时”,用K线把每个品种按这个窗口重算一遍再排;休市的品种单独标出,不和交易中的品种混排。
黄金的收盘价是几点的价格?
黄金现货没有交易所规定的官方收盘价。伦敦 LBMA 黄金价格每天定两次,伦敦时间10:30和15:00;上海金每天两次,北京时间10:15和14:15;COMEX 黄金期货结算价按收盘前一段时间的成交量加权平均价确定。现货平台各自选时刻切“日”,常见的有纽约17:00、UTC 0点、北京时间0点。
为什么除权那天股价“暴跌”,涨跌幅却不大?
除权除息日的涨跌幅,基准不是昨天的收盘价,而是除权(息)参考价。寒武纪2026年5月8日前收1,868.00元,每股派现1.50元、转增0.49股,参考价1,252.68元;收盘1,182.53元,看着跌了36.7%,按参考价只跌5.6%。价格降下去的部分,换成了多出来的股份和到账的现金。
美股盘后、夜盘的涨跌是跟谁比?
跟当天常规盘的收盘比;常规盘的涨跌,跟上一个常规交易日的收盘比。2026年10月13日北京时间10:56,苹果主快照较上周五收盘涨1.29%,夜盘较周一收盘涨0.47%。首页显示主快照、详情页显示夜盘,就会出现两个不同的涨幅。
最后一个问题
你们App上的涨跌幅,分母写在哪?
今天就能做的一件事:打开自己App的涨幅榜,逐行写出每个涨跌幅跟谁比、从几点算起。写不出来的那一行,就是下一个客诉工单。
如果你只是用行情App的投资者,也可以试一次:同一时刻打开三个App,记下同一个品种的涨跌幅。不一样,多半不是谁错了,只是三个参照点。
看涨跌,先问“跟谁比”。
参考资料
- LBMA,LBMA Gold Price
- CME Group,When FX Futures Pause: Understanding spread risk around the daily close,2026-09-29
- 上海证券交易所,收盘集合竞价相关说明,2018-08-06
- Nasdaq,Opening and Closing Cross FAQ
- 香港交易所,Trading Mechanism of CAS in the Securities Market
- 上海黄金交易所,Shanghai Gold Benchmark Price Launching Ceremony,2016-04
- CME Group,Gold 结算方法说明
- 寒武纪,2025年年度权益分派实施公告(公告编号2026-011)
- 上海证券交易所,《上海证券交易所科创板股票交易特别规定》
- Spot API 文档:24hr Ticker Price Change Statistics
- Gate 帮助中心,如何切换涨跌幅起止时间
- Kahneman, D. & Tversky, A. (1979). Prospect Theory: An Analysis of Decision under Risk. Econometrica, 47(2), 263–291