💡 前阵子我给自己写了个小脚本:把一只股票的日线拉下来存成 CSV,然后现算指标,不信任任何网站页面上写好的结论。第一个标的选了 Microsoft(NASDAQ: MSFT)——够大、够有讨论度,而且刚好走完了一个特别戏剧化的年份。
结果出来我盯着屏幕愣了两秒。同一只股票、同一段一年时间,三个数字互相打架:
| 一年净变动 | 路径长度 | 区间最大回撤 |
|---|---|---|
| −1.33% | 351.0% | −34.91% |
账面几乎回到原点,中间却一度跌掉三成半;累计走过的涨跌幅度是净变动的两百多倍。这三个数字都是对的,它们只是回答了三个不同的问题。
更麻烦的是,这一年里最狠的两天——单日 −9.99% 和单日 +15.51%——都发生在财报公布后的第一个交易日,也就是说整整一年的行情节奏,被两次开盘跳空决定了大半。
所以这篇想把 MSFT 的 2025-10-01 到 2026-10-01 摊开来算一遍:数据从哪来、每个数字怎么定义、五段行情分别对上了哪天哪条新闻,以及最后我把这件事脚本化时踩到的那个均线坑。它是一篇数据复盘,不是投资建议,也不会给你"该不该买"的答案。
1. 先把数据口径钉死
行情类文章最容易写歪的地方,不是判断错,而是数字来路说不清。
我的链路很短,全程只有一份原始数据:
stockanalysis.com 日线接口 --> 252 行 OHLCV --> sources/*.csv --> Python 现算 --> 本文所有数字
具体口径一次性列清楚,后文出现的每个百分比都能回到这张表:
| 项 | 取值 | 说明 |
|---|---|---|
| 数据源 | stockanalysis.com 的历史行情页 | 同域 JSON 接口,一次返回 252 个交易日 |
| 窗口 | 2025-10-01 → 2026-10-01 | 共 252 个交易日,即 251 个日收益样本 |
| 价格 | 每日收盘价(USD) | 起点 519.71,终点 512.80 |
| 快照时间 | 2026-10-01 收盘 | 盘中价、盘后价一律不采信 |
| 衍生指标 | 全部由本地 CSV 现算 | 均值、标准差、回撤、路径长度、季度收益 |
| 基本面 | Microsoft FY26 Q4 财报新闻稿 | 2026-07-29 发布,官方口径 |
Q1:为什么用收盘价而不是日内最低价来算回撤?
因为日内价是"你未必能以那个价格成交"的价格。用收盘价算出来的回撤,对应的是一个每天只在收盘看一眼、按收盘价记账的人的真实体感;用盘中低点算,会把闪跌、开盘瞬间的错价也算进来,得到一个没人真正承受过的数字。
本文统一用收盘价。作为对照,两个盘中极值也记一下,只用于说明"52 周区间"这种常用口径:
| 口径 | 高 | 低 |
|---|---|---|
| 收盘价(本文用) | 542.07(2025-10-28) | 352.83(2026-06-25) |
| 盘中价(52 周区间口径) | 553.72 | 349.20 |
Q2:"跌掉三成半"和"全年只跌 1.33%"怎么会同时成立?
因为它们量的是两件事:一个量的是端点,一个量的是路径。这一点是整篇文章的地基,下一节用一个图讲完。
2. 三个数字看完这一年
把三个最容易混淆的指标定义清楚,绝大多数行情争论就已经消失了一半。

三个指标的定义:
| 指标 | 算法 | 这一年 | 它回答什么 |
|---|---|---|---|
| 净变动 | c[末]/c[首] - 1 | −1.33% | 拿到年底还剩多少 |
| 路径长度 | `Σ | r[日] | ` |
| 最大回撤 | 相对历史滚动最高点的最大跌幅 | −34.91% | 中途最疼的那一下 |
用一行的方式写出来更直观:
净值 519.71 (10-01) ──── 512.80 (10-01) 全年净变动 -1.33%
峰值 542.07 (10-28) 此后 232 个交易日没再摸到 年底仍差 -5.40%
谷底 352.83 (06-25) 相对峰值回撤 -34.91%
脉冲 451.10 (07-30) 当天单日 +15.51%
其余几个描述"这一年有多颠簸"的数字,一并列在这:
| 指标 | 数值 | 口径 |
|---|---|---|
| 日均收益 | +0.0156% | 251 个样本的算术平均 |
| 日收益标准差 | 2.065% | 样本标准差 |
| 年化波动率 | 32.78% | σ × √252 |
| 上涨天数 / 下跌天数 | 123 / 128 | 不含零变动 |
| 单日涨跌幅超 3% | 25 天 | 约每 10 个交易日一次 |
| 单日涨跌幅超 5% | 4 天 | 全部落在 1~7 月之间 |
| 涨跌幅在 ±1% 以内的日子 | 116 / 251 天 | 刚过一半 |
| 日涨跌幅中位数(绝对值) | 1.11% | 典型的一天 |
| 日均成交量 | 31.66M 股 | 全年均值 |
还有一个特别容易被忽略的数字:距离上一次创新高,已经过了 232 个交易日,到 2026-10-01 收盘仍差 −5.40%。
也就是说,如果你在 2025-10-28 那天买入并拿到这一年结束,你的持仓曲线是"先亏掉三成半,然后爬回来,最后离回本还差 5.4%"。这就是路径和端点的区别:净值只关心你现在值多少,路径关心你中途被要求承受什么。
Q3:为什么"今年以来涨 6.03%"和"一年跌 1.33%"也不矛盾?
因为起点不同。2025-12-31 收盘是 483.62,比 2025-10-01 的 519.71 低了 6.9%。用不同的起点算,同一段行情可以给出 +6.03%(自然年 2026 年初至今)和 −1.33%(滚动一年)两个都正确的答案。
这也是我看所有"涨了多少"的新闻标题时的第一反应:先问起点是哪一天。 分季度拆开就更清楚了:
| 区间 | 收益 | 一句话 |
|---|---|---|
| 2026 Q1(1/1~3/31) | −23.46% | 财报砸盘 + 两个月阴跌 |
| 2026 Q2(4/1~6/30) | +0.77% | 反弹完又被卖回谷底 |
| 2026 Q3(7/1~9/30) | +37.50% | 一次财报脉冲 + 一季修复 |
| 2026 Q4 至今(10/1) | −0.02% | 一天,还没开始 |
| 自然年 2026 至今 | +6.03% | 起点是 12/31 的 483.62 |
Q3 那 +37.50% 还有个外部对照:TipRanks 直接把它写成"微软自 1991 年以来最好的一个季度"。我自己算出来的季度收益和这个说法对得上,这种"自己算一遍刚好能对上外部口径"的时刻,是数据复盘里最让人安心的瞬间。
3. 五段行情:每一段对上了哪一天、哪条新闻
把曲线切成段,每段单独问一句"这几天到底发生了什么"。

分段用收盘价端点,幅度可以完全复算:
| 段 | 区间(收盘) | 幅度 | 公开报道给出的解释 |
|---|---|---|---|
| ① 冲顶 | 10-01 → 10-28 519.71 → 542.07 | +4.30% | 财报前的平静期,没找到能对齐到某一天的单一事件 |
| ② 财报砸盘 | 01-28 → 02-05 481.63 → 393.67 | −18.26% | Investopedia:Azure 增速略超预期但低于市场最乐观预期、AI 资本开支继续上行 |
| ③ 春季反弹 | 03-30 → 05-29 358.96 → 450.24 | +25.43% | 软件板块整体修复:市场此前担心 AI 会冲垮传统软件的订阅模式,这个担忧在二季度明显退潮 |
| ④ 二次探底 | 06-01 → 06-25 460.52 → 352.83 | −23.38% | 没找到单一催化剂(下面单独说) |
| ⑤ 财报脉冲与修复 | 07-29 → 09-30 390.54 → 512.90 | +31.33% | 财联社:7/30 单日市值增加约 4500 亿美元,创全球股市个股单日市值增幅纪录 |
逐段补几句人话:
① 冲顶这段是全年最"没剧情"的一段。10/28 那根 542.07 的收盘是这一年真正的顶部,此后再也没有被摸到——而且它是在财报前的平静期创出来的。这条时间线后面回看很有教育意义:最高点通常出现在没有任何坏消息的那几天。
② 财报砸盘很干净。1/28 收盘还在 481.63,1/29 一天直接 −9.99% 掉到 433.50,成交量 128.9M 股,是全年第二高。按 Investopedia 当天的说法,这一个交易日抹掉了接近 3600 亿美元市值,是当时美股史上个股单日市值损失的第二大(第一是 Nvidia 在 DeepSeek 事件那天的约 6000 亿美元)。值得记住的是它的结构:Azure 其实超过了公司自己给的指引,只是增速不如买方模型里最乐观的那一档,同时资本开支的天花板还在往上抬。"业绩很好但不及预期 + 花钱更多"这个组合,杀估值比杀业绩更利落。
③ 春季反弹从 3/30 的 358.96 起,到 5/29 收 450.24,两个月涨回 25%。这段的宏观解释我不硬编(板块轮动、软件股估值修复这些说法都对,但都不精确到某一天)。
④ 二次探底是全年我最不舒服的一段:6 月一个月 −17.15%,把反弹全部还回去,6/25 收盘 352.83、盘中 349.20 就是这一年的绝对低点。我翻了当时能找到的报道,没有找到任何一条能对齐到具体某天的单一催化剂——没有新指引、没有监管动作、没有 OpenAI 相关的大新闻落在窗口里。所以我给它的答案是"这一段我没能解释"。行情里就是有这种段落,它是估值、仓位和资金流共同作用的结果,硬要配一个原因只会写出假新闻。
⑤ 财报脉冲是这一年最值得单独记的一天。7/29 收盘 390.54,7/30 直接跳到 451.10,单日 +15.51%、成交量 110.2M 股、开盘 437.90(跳空 12%)、当日最高 458.69。按 财联社 的统计口径,这一天微软市值增加约 4500 亿美元,超过了 Nvidia 在 2025 年 4 月创下的约 4400 亿美元,成为全球股市单只个股单日市值增幅的新纪录。同一批报道里的两个对照我印象很深:这个单日涨幅大于标普 500 里 96% 成分股的总市值,也大于那 41 只最小成分股的市值合计。
4. 波动才是这一年的主角
净值只走了 1.33%,路上却发生了 25 次超过 3% 的单日移动。
全年单日涨跌幅绝对值最大的 12 天(收盘价与成交量均来自本地 CSV):
| 日期 | 收盘 | 单日涨跌幅 | 成交量 | 落在哪一段 |
|---|---|---|---|---|
| 2026-07-30 | 451.10 | +15.51% | 110.2M | ⑤ 财报脉冲 |
| 2026-01-29 | 433.50 | −9.99% | 128.9M | ② 财报砸盘 |
| 2026-06-26 | 372.97 | +5.71% | 186.2M | ④→⑤ 谷底次日反弹 |
| 2026-05-29 | 450.24 | +5.45% | 79.7M | ③ 反弹末段 |
| 2026-02-05 | 393.67 | −4.95% | 66.3M | ② 砸盘尾段 |
| 2026-08-03 | 487.65 | +4.93% | 66.8M | ⑤ 修复 |
| 2026-04-15 | 411.22 | +4.61% | 45.1M | ③ 反弹起点区 |
| 2026-06-02 | 441.31 | −4.17% | 37.0M | ④ 二次探底起点 |
| 2026-04-23 | 415.75 | −3.97% | 38.3M | ③ 反弹中段 |
| 2026-04-30 | 407.78 | −3.93% | 70.9M | ③ 财报日回落 |
| 2026-06-17 | 378.91 | −3.79% | 42.0M | ④ 二次探底 |
| 2026-09-25 | 516.17 | +3.66% | 37.9M | ⑤ 修复末段 |
三个观察:
- 成交量前三天,全都是 ±5% 以上的日子。 全年日均 31.66M 股,而 110M/128M/186M 是它的 3.5~5.9 倍。价格发现只在少数几天里集中发生,剩下的 249 天基本是在为这几天做准备。
- 换手最凶的一天,不是最低点本身,而是最低点的旁边那天。 6/25 收在年内最低的 352.83,6/26 一根 +5.71% 的阳线,成交量 186.2M 股是全年最大(比 1/29 砸盘那天还高 45%)。这不是玄学:价格被砸到极端位置时,割肉盘和承接盘才会同时放量,真正成交巨大的日子往往是"分歧最大"的那天,而不是"最惨"的那天。
- 两个方向的极端都由两次财报决定。 全年最大涨幅和最大跌幅都发生在财报后的第一个交易日,中间隔了 6 个月,幅度是 +15.51% 和 −9.99%。把这两天按顺序连起来看,一年 351% 的路径里有 25.5 个百分点来自这两天。
Q4:那"错过最好的几天就全完了"这种说法,到底能不能信?
先把算术摆出来,这部分是真的:
| 假设 | 全年结果 |
|---|---|
| 原样持有 252 天 | −1.33% |
| 错过全年最好的 4 天(+15.51/+5.71/+5.45/+4.93%) | −26.97% |
| 错过全年最差的 4 天(−9.99/−4.95/−4.17/−3.97%) | +25.33% |
但我不把它当结论用,原因有三条:
- 这组数字天生不对称。随机抽 4 天,抽到大涨日和抽到大跌日的概率一样,可"错过最好 4 天"的代价明显大于"错过最差 4 天"的好处——原因很朴素:这一年的单日上界是 +15.51%,而下界只有 −9.99%,涨幅那一侧有一条更长的尾巴。所以这类对照必须双向同时报,只报一边就是话术。
- 样本只有 251 个日收益,"最好/最差的 4 天"是从这一段里挑出来的,属于事后视角。
- 真正可复现的只有"这一年哪几天动了大钱",不蕴含"你能提前躲开或赶上"。
我的处理方式是:把这三个数字当成"路径风险的度量"来记,而不是当成择时策略。这跟做系统时的思路一样——P99 是用来估计容量的,不是用来预测下一次请求耗时的。
5. 股价走平的这一年,基本面那边完全不是同一张图
这一节回答:账面没动的这一年,公司本身变了多少。

先看官方口径。以下数字全部取自 Microsoft FY26 Q4 财报新闻稿(2026-07-29 发布,财季截止 2026-06-30):
| 指标 | FY26 Q4 | 同比 | FY26 全年 | 同比 |
|---|---|---|---|---|
| 营收 | $90.0B | +18% | $331.8B | +18% |
| 营业利润 | $40.6B | +18% | $155.2B | +21% |
| 净利润(GAAP) | $35.8B | +31% | $133.7B | +31% |
| 摊薄 EPS(GAAP) | $4.81 | +32% | $17.95 | +32% |
| Microsoft Cloud 收入 | $59.3B | +27% | — | — |
| 商业剩余履约义务(RPO) | $678B | +84% | — | — |
| Intelligent Cloud | $39.3B | +32% | — | —(其中 Azure 增速 +43%) |
| Productivity & Business Processes | $37.8B | +14% | — | — |
| More Personal Computing | $12.9B | −4% | — | —(Windows OEM −7%、XBOX 内容与服务 −10%) |
| 单季向股东返还 | $10.2B | 股息 + 回购 | — | — |
新闻稿里还有两句容易被划过去、但对解释全年行情很关键的话:一是全年 Azure 收入首次突破 1000 亿美元,二是 Microsoft 365 Copilot 付费席位超过 3000 万。另外这个季度有一批"一次性事项",合计给摊薄 EPS 带来 $0.27 的正向影响,其中包含来自 Anthropic 投资的 32 亿美元浮盈;而非 GAAP 口径则专门剔除了 OpenAI 投资带来的影响。换句话说,连官方自己的报表都必须把"两家 AI 公司的股权波动"单列出来才能看懂主业,这本身就是这一年最重要的注脚之一。
再看市场给这只股票的定价快照(2026-10-01 收盘,来源同为 stockanalysis.com):
| 项 | 数值 |
|---|---|
| 收盘价 | $512.80(−0.02%) |
| 市值 | $3.81T |
| 流通股本 | 7.43B 股 |
| 市盈率 / 远期市盈率 | 28.57 / 25.97 |
| TTM 营收 / 净利润 | $331.84B(+17.8%) / $133.75B(+31.3%) |
| 年股息 / 股息率 | $3.92 / 0.76% |
| Beta | 1.11 |
| 52 周区间 | 349.20 – 553.72 |
| 卖方评级 / 平均目标价 | Strong Buy(55 位) / $577.26(+12.57%) |
| 下一次财报 | 2026-10-28 |
这一年的"账面没动"其实有个非常省事的解释。股价可以拆成两个因子相乘:
股价 = TTM 每股收益 × 市盈率
用今天的报价数字(EPS 17.95、PE 28.57)和站点给出的 TTM 增速(+31.6%)反推一年前,再和 2025-10-01 的收盘价 519.71 对一遍:
| 因子 | 2025-10-01(反推) | 2026-10-01 | 变动 |
|---|---|---|---|
| TTM EPS | ≈ $13.64 | $17.95 | +31.6% |
| 市盈率 | ≈ 38.1 倍 | 28.57 倍 | −25.0% |
| 股价 | 519.71 | 512.80 | −1.33% |
把两个因子乘回去:1.316 × 0.750 = 0.987,也就是 −1.3%,和第 2 节算出来的全年净变动 −1.33% 正好对上。
这就是整篇文章最核心的一句话:公司这一年多赚了三分之一,市场愿意为每一块钱利润付的价钱少了四分之一,两件事相乘的结果是股价原地。 一年 351% 的路径,本质上是这个"四分之一"在一月被砸出来、在七月被收回去的过程。
(反推口径:一年前的 EPS 由今日 17.95 与 +31.6% 增速倒算,市盈率再除以当时收盘价;假设股本不变。属于自洽校验,不是官方披露数字,见文末台账。)
Q5:营收 +18%、RPO +84%、Azure +43%,为什么股价一年下来没创新高?
三个层次,证据强度依次递减:第一条是算术,第二条有报道口径,第三条属于我的读法。
- 倍数被压了 25%,价格才会不动。 上一段已经把账算平了:账面收益的上涨几乎全部来自利润,而不是来自估值。于是问题从"公司怎么没长大"变成"为什么市场只肯付 28 倍而不是 38 倍"。
- 市场在重定价的是资本开支,不是当期收入。 1/29 那次砸盘的报道口径里,被反复提到的两件事是"AI 基建投入继续上行"和"订单积压里高度依赖单一客户"。按 Investopedia 当天的说法,接近一半的商业剩余履约义务与 OpenAI 相关——这个比例我没有在官方披露里找到单独口径,属于媒体二手数字(见文末台账)。
- RPO +84% 是"已签未确认",不是现金。 6780 亿美元的剩余履约义务能说明需求真实存在,但它同时把"未来几年要花多少电、多少卡、多少机房"绑在了一起。买方模型里改的是这条曲线,不是报表上那 18%。
Q6:那 7/30 为什么又能一天涨回 15.51%?
同一批数字换了预期基准就会是另一个故事:财报前市场已经把"资本开支失控 + 客户集中"当成默认剧本,结果 Azure 增速给到 +43%(新闻稿口径),财联社那篇报道还特别提到这是 2022 年初以来的最高增速,而资本开支计划没有继续上调——于是折价被一次性收回来。这就是第 3 节说的"两次财报决定了一年节奏":同一家公司、同一份报表,差的是市场当时假设了什么。
6. 我把它脚本化了,顺便踩了一个均线的坑
技术人看行情的正确姿势:能一行行复算的数字,就不要抄网页上的结论。
上面所有百分比都来自同一个不到 30 行的脚本,输入只有那份 CSV:
import csv, statistics as st
rows = list(csv.DictReader(open("sources/msft-2025-10_2026-10-daily.csv")))
c = [float(r["close"]) for r in rows]
d = [r["date"] for r in rows]
rets = [(c[i] / c[i - 1] - 1) * 100 for i in range(1, len(c))]
print("net", round((c[-1] / c[0] - 1) * 100, 2)) # -1.33
print("path", round(sum(abs(r) for r in rets), 1)) # 351.0
print("annvol", round(st.stdev(rets) * 252 ** 0.5, 2)) # 32.78
peak, trough_dd = c[0], 0 # 最大回撤(滚动高点)
for i in range(len(c)):
peak = max(peak, c[i])
trough_dd = min(trough_dd, c[i] / peak - 1)
print("mdd", round(trough_dd * 100, 2)) # -34.91
这个脚本在写作过程中给我抓出了三个真实的数据坑,值得单独记一下。
坑一:接口最多只给 252 行,200 日均线算不出来。 我原本想在图里画 200 日均线——行情文章的标配。结果把请求参数从 range=1Y 换成 range=2Y,返回还是 252 行(接口做了截断)。200 日均线需要 200 个历史样本,于是在这 252 天里只有最后 53 天可算。硬画会得到一条从 7 月中才出现的均线,看起来像"这只股票 7 月才追上长期趋势",而真实原因是我的数据不够。最后我把这个指标整个从图里去掉了,只在台账里写下能算的那部分:可算区间内价格在上方的有 45 天、下方的有 8 天,唯一一次上穿发生在 7/30(就是那根 +15.51% 的阳线)。
坑二:收盘价可能是复权也可能不是。 不同站点对"close"的定义不一致(原始价 / 前复权 / 后复权),分红日就会出现偏差。MSFT 年股息 $3.92、股息率 0.76%,量级不大但方向明确:如果这条序列是原始收盘价,含分红的总收益会比 −1.33% 好大约 0.7 个百分点。我没能在页面上找到该站点历史接口的复权口径声明,所以正文里的 −1.33% 只当价格变动用,不当总回报使用。
坑三:同一天的成交量会有两个版本。 我抓数据时页面顶部快照显示 10-01 成交量 19,731,883,而历史接口同一行返回 18,883,693——结算前的量还在补。凡是拿"某天成交量"做结论,先确认它是快照还是终值。
Q7:为什么不直接用 pandas / yfinance?
因为这两层的失败方式很隐蔽。yfinance 走的是另一家数据商的接口,字段命名和复权处理是黑盒,取回 252 行之后你依然不知道自己是"原始价"还是"复权价"。我的偏好是:数据源显式落盘成 CSV,指标自己算,宁可少一个功能,也不要一个说不清来路的数字。这跟我们在生产里宁可用手写 SQL 也不让 ORM 悄悄生成 N+1 查询,是同一个心态。
最后总结
- 先问口径,再谈结论。 同一年的行情换个起点或换个算法,就能给出 −1.33% / +6.03% / −26.97% 三个都正确的数字,行情争论有一半是起点之争。
- 端点骗人,路径不骗人。 净变动只回答"还剩多少",最大回撤回答的是"中途要求你承受什么"——这一年是 −34.91%,而且是 232 个交易日之后仍未回补。
- 利润 × 倍数 = 股价。 这一年 TTM 每股收益 +31.6%、市盈率 −25.0%,乘出来正好是 −1.33%。想看懂"什么都没发生"的一年,就得把它拆成这两个因子。
- 少数日子承担全部信息量。 25 天超过 ±3%,4 天超过 ±5%,全年最大成交量的三天全在这些日子里;剩下的时间是在等待。
- 没找到原因就不编原因。 6 月那一整月 −17.15%、把年内低点砸到 349.20 的段落,我在公开报道里没对齐到任何单一催化剂,这篇文章里它就标着"未解释"。
- 对做工程的人,这一年最有共鸣的部分:市场对"资本开支先行、收入滞后"的资产反复重定价——1 月因为花钱被卖掉三成半,7 月因为花出去的钱开始变成 Azure 收入被买回来。这个结构跟我们做基础设施投入的决策逻辑一模一样,难的一直是"什么时候该被记账"。
- 最后重申一句:这是数据复盘,不构成任何投资建议。上面的每个数字都可以照第 6 节的脚本自己复算一遍——这也是我建议的用法。
参考资料 & 致谢
[1] MSFT 历史行情(日线)- stockanalysis.com
[2] MSFT 报价与统计快照 - stockanalysis.com
[3] Earnings Release FY26 Q4 - Microsoft Investor Relations
[4] Looking back on Microsoft’s FY26 - Microsoft Blogs
[5] Microsoft Shares Plunge 10%, Wiping Out Nearly $360 Billion - Investopedia
[6] Microsoft Stock Soars on Solid Q4 Results - Investopedia
[7] 一夜扫尽AI阴霾!微软创全球股市单日市值涨幅之最 - 财联社
[8] Microsoft stock plunges as Wall Street questions AI investments - Al Jazeera
[9] Software roared back last quarter - CNBC
[10] Microsoft Stock (MSFT) Closes Out Best Quarter Since 1991 - TipRanks
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/YangCheney/article/details/166993097


![[程序人生]美股 MSFT 一年行情复盘:账面只跌 1.33%,路上却最深跌掉 34.91%封面图](https://i-blog.csdnimg.cn/direct/1121effc0d224a569e34d175b0f89fab.png?x-oss-process=image/resize,m_fixed,h_300)

