Wealth Freedom OS
Foundation · 36 章Phase V · Build the Capital Engine

第 28 章 · 货币、通胀与税务

我的钱和我的支出是同一种货币吗?

关联资本
Financial CapitalKnowledge Capital
要交出的成果
Currency Exposure Map:收入、支出、资产与目标各自的币种。
用到的口径
currencyExposure

第 10 章 算过一笔钱从客户手上走到你账上要被扣掉多少、要走多少天。那是通道的问题:一笔钱、一次性、算完就结束。

这一章问的是另一件事:那笔钱躺下来之后,它的购买力还在不在。

它不是一次性的。它每年发生一次、每笔支出发生一次,而且它有三个来源:你的钱在跌(通胀)、你的钱换不成你要花的那种钱(币种)、你的钱在几个时点上被按当地规则扣掉一部分(税务)。三件事的共同点是:它们都不出现在「我今年赚了多少」这个数字里,但它们全都出现在「我二十年后能买到多少」这个数字里。

这一章要做出来的东西很小:一张把四样东西的币种写在一起的表——收入、支出、资产、目标。做完之后你能回答一个在此之前答不上来的问题:如果汇率往某个方向动,我的哪一行会变贵,变多少。

至于税,这一章只给核对清单。它不给任何税率,也不给任何结论——那些按地方、按身份、按账户类型、按持有年限都不一样,必须和当地专业人士核实。

机制

币种是四件事,不是一件

大部分人谈币种只谈一样:资产。「我有多少外币」。这个问法答不了任何问题,因为它少了另外三样:

四者问什么最容易被忽略的地方
收入的币种每个月进来的钱是哪种货币,占比多少以为有外币收入就分散了。收入的币种只决定你能换出什么,不决定你需要什么
支出的币种每个月、每年花出去的钱是哪种货币必要支出里那笔外币最关键:它不能延期,也不能换成本币版本
资产的币种存量按原始币种分组各占多少这是唯一有现成口径的一项(currencyExposure),所以它常常被当成全部
目标的币种你将来要花的那笔钱是哪种货币,在哪一年要花几乎总是漏的一项。一个没有币种和年份的目标金额,不是一个目标

四者必须放在同一张表上看,因为错配是它们之间的关系,不是其中任何一项自己的属性。

汇率错配Currency Mismatch

你的资产(或收入)的币种,和你未来支出的币种对不上。注意定义里没有「持有外币」这四个字——持有外币本身既不是错配,也不是对冲,要看你将来花什么。

四种常见形态:

形态资产/收入这一侧未来支出这一侧汇率往哪个方向动会伤到你
典型错配全是本币有一笔外币必要支出外币变贵
反向错配大头在某个外币这个币种的支出是 0这个外币变便宜
对上了某外币资产 ≈ 某外币未来支出同一个币种、同一个时间段汇率动了,两边同向,净影响小
看起来对上了某外币资产金额够支出在同一币种,但时间对不上需要用钱的那一年,那笔资产还锁着

第四种最隐蔽:币种对上了、金额够了,但支出的日期在资产能动用之前。这时候币种这一列写着「对上了」,而现实里仍然要在那一年去换汇。

一个关键的判断方法:不要问「我该不该持有外币」,要问「我将来要花的每一笔钱是什么币种、哪一年花、现在有没有同一币种的钱对着它」。 第一个问题没有答案,第二个问题有。

名义回报Nominal Return

没有扣掉通胀的那个回报数字。 账单上、对账单上、任何一个「涨了百分之几」的数字,默认都是名义的。

名义回报本身没有错,它是一个事实:你的账户余额确实从 A 变成了 B。它的问题只在于它不回答任何关于「能买到什么」的问题。两个名义回报相同的年份,如果通胀不同,结果可以差很远;两个名义回报不同的年份,实际结果可以一样。

所以这一章里凡是要做长期判断的地方,一律用实际口径。名义口径只用在一个地方:和对账单核对余额。

实际购买力Real Purchasing Power

同一笔钱,在扣掉物价上涨之后,还能买到多少同样的东西。 它是这一章唯一的结果变量。

两个方向,算的是同一件事:

  • 往后看一笔存量:今天的 500,000,在年通胀 i、n 年之后,相当于今天的多少钱?答案是 500,000 ÷ (1 + i)^n。
  • 往前看一笔目标:今天每月要花 11,000 的那个生活,n 年后同样的生活要花多少?答案是 11,000 × (1 + i)^n。

把名义回报换成实际回报,正确做法是除法,不是减法:

实际回报 = (1 + 名义回报) ÷ (1 + 通胀) − 1

「名义减通胀」是这个式子的近似。低通胀时两者差得很小,高通胀时差得很大,而且减法永远算得偏高——它一定让你高估自己的处境。下面「算一遍」会把这个差额算成具体的钱。

税务拖累Tax Drag

税在你的长期结果上扣掉的那一部分。 它不是一个数字,是一个结构:它取决于税在哪几个时点发生、发生在什么基数上、以及发生之后剩下的钱有没有继续参与复利。

这一章对它只做一件事:给出一张要去核实的清单,把四个时点列出来,每一项的结论都写成「按当地规则,需与当地专业人士核实」。

时点要核实的是什么为什么它影响长期结果
1. 持有期间持有一项资产的过程中,是否有需要申报或缴纳的项目它每年发生一次。每年被扣掉的部分不再参与后面的复利
2. 分配时拿到利息、分红、租金、分配款的那一刻,适用什么规则它决定「到手的现金流」和「宣告的现金流」之间的差
3. 变现时卖出、赎回、退保、转让的那一刻,适用什么规则,基数怎么算,持有年限有没有影响它决定账面金额和到手金额之间的差(第 19 章 那三个数里的第三个)
4. 跨境的第二层当资产、账户、你本人、收入来源不在同一个地方时,是否存在第二层规则,以及两层之间如何处理它可能让同一笔钱在两个地方各被处理一次,顺序与资格条件都要核实

这一章不给税率、不给结论、不给「哪种账户更有利」的判断。 四个时点的作用只是:让你在算长期结果的时候,知道自己在哪四个地方放了一个「待核实」,而不是在那四个地方放了一个 0。放 0 是这一章认为最危险的做法——它让一张表看起来算完了。

记账货币只是一个显示选项

记账货币(reportingCurrency)是你选的一个显示单位。它回答的问题是「把这些东西折成同一种货币来看,各是多少」。它不改变你持有什么。

这件事有一个很具体的后果,而且它骗过很多人:

换一次记账货币,表上每一个金额都会变,而资产的币种占比一个都不变。

占比不变是因为分子分母用同一组汇率折算,那个折算系数在除法里被约掉了。所以:

  • 「我的总资产涨了」 这句话,在多币种的表上有两种完全不同的来源:你真的多了东西,或者只是换算系数变了(汇率动了,或者你换了记账货币)。这两件事必须分开记。
  • 判断「我持有的结构变了没有」,看占比,不看折算后的总额。
  • 判断「我能买到的东西变了没有」,两个都不够——要看实际购买力,而那要和支出的币种一起算。

这里有一个前提必须说清:占比不变的前提是那组汇率互相自洽。 如果你表里 HKD→CNY 和 HKD→USD 是两条独立来源、不同日期的汇率,它们交叉乘出来对不上,那么换记账货币之后占比会轻微漂移。那个漂移不是四舍五入,是在告诉你「你的汇率表内部不一致」。下面实验二会把它变成一个看得见的数。

每一次换算都必须带来源、时间和方法

口径里的 convert 不提供「静默换算」。它的返回值一定带着四样东西:rate(用了哪个数)、method(direct 直接用一条汇率、inverse 用它的倒数、identity 同币种不需要汇率)、asOf(这条汇率是什么时候的)、source(它从哪儿来)。

缺汇率时它抛 MissingRateError,不当成 1:1。 sumIn 更严格:一组金额里任何一笔缺汇率,整个求和都抛错,不做部分求和。

这不是洁癖,是因为另外两种做法都会产出一个你会去相信的错数字:

  • 按 1:1 蒙过去:实验台默认那笔 HKD 150,000 会被当成 150,000 CNY,比按 0.915 折算多出 12,750。
  • 把算不出来的那笔跳过去:总资产从 502,050 变成 364,800,少了 137,250——那是整张表的 27.34%,而页面上不会有任何一处显示「这里少了一项」。

一张算不出来的表会让你去补那条汇率;一张少算了一项的表你会直接拿去做决定。所以口径选择了前者。

本章所有换算用的是实验台里那两条示例汇率:1 USD = 7.12 CNY(asOf 2026-01-01)与 1 HKD = 0.915 CNY(asOf 2025-12-31)。它们是示例输入,不构成行情,也不代表任何机构的报价,并且本章不预测汇率往哪个方向走——所有「如果汇率变成 X」的算法都只是敏感度,不是判断。

通胀不是一个数

总体物价指数是一个加权平均,权重是整个经济体的消费结构,不是你的。你自己的篮子和它可以差很多,而差多少取决于你花钱最多的那两三项是什么。

最常见的三个让个人篮子跑在总体指数前面的项目:

项目为什么它常常不一样
居住成本它在很多人的必要支出里占三到五成,而它的涨幅由局部供需决定,不跟着总体指数走
教育一旦开始就是多年连续支出,而且它常常同时带着币种(学费在另一种货币里)
医疗与保险它随年龄上升,也就是说它的权重本身在逐年变大,不只是单价在涨

所以「我自己的通胀」要自己算,而且算法很朴素:把必要支出拆成三到四项,每项的权重乘它自己的涨幅,加起来。 它不比总体指数更准确,它只是更对得上你。两个数差多少,才是你真正要知道的东西——下面「算一遍」第三样就是这个。

一个必须写下来的习惯:目标金额如果是按今天的物价写的,就必须标上「今天」是哪一年。 一个写着「每月 11,000」的目标,二十年后读起来是另一回事;标上年份之后,它才是一个能被复算的数。

这一章和第 10 章的分工

两章都讲多币种,但算的是两件不同的事,口径也不同:

第 10 章第 28 章(本章)
对象一笔钱走过一条通道存量与长期购买力
问题这笔钱到手还剩多少、要等多少天二十年后我这些钱能买到多少
成本来源手续费、点差、中转费、在途时间通胀、币种错配、四个时点上的待核实项
频率每笔一次每年一次,直到你花完它
产出Financial Access AuditCurrency Exposure Map

所以第 10 章那笔 USD 6,000 的拆解(手续费 180.00、中转费 129.60、点差 257.34,合计 566.94 CNY,占 1.31%)这一章直接引用,不重算。本章只在一个地方用到它:当你的 Currency Exposure Map 上出现一行「将来要把本币换成某种外币去花」的时候,那一行除了汇率风险,还要带上第 10 章算过的那条通道成本。 两个数相加才是那一行的真实代价。

现实案例

四个人,四种错法。第一个人把换算系数的变化读成了资产增长;第二个人的币种表看起来很分散,但对不上她将来要花的钱;第三个人用总体指数当自己的通胀;第四个人那天查不到一条汇率。

资产涨了 7,200,但他一样东西都没多贺,38 岁,在本地工作、有一个海外券商账户做季度快照的那天

他持有的三样东西,这个季度一样都没动过:

资产原始币种与金额
人民币活期80,000 CNY
美元券商账户40,000 USD
港币储蓄险现金价值150,000 HKD

上一次快照用的示例汇率是 1 USD = 7.12 CNY,这一次他改成了 7.30(他看到的一个报价)。记账货币都是 CNY:

  • 上次:80,000 + 40,000 × 7.12 + 150,000 × 0.915 = 502,050 CNY
  • 这次:80,000 + 40,000 × 7.30 + 150,000 × 0.915 = 509,250 CNY
  • 差:+7,200 CNY,+1.43%

他在复盘记录里写了一句「这个季度资产增长 1.43%」。

这句话错在哪儿:他的券商账户里还是 40,000 USD,股数没变、价格没变、他也没有新投入一分钱。 那 7,200 全部来自一个换算系数。更能说明问题的是:如果他把记账货币换成 USD,同一组持仓、同一天、同样这两个汇率表,结果是

  • 上次:80,000 ÷ 7.12 + 40,000 + 150,000 × 0.1285 = 70,510.96 USD
  • 这次:80,000 ÷ 7.30 + 40,000 + 150,000 × 0.1285 = 70,233.90 USD
  • 差:−277.05 USD,−0.39%

同一个季度、同一堆东西,一个记账货币说涨了 1.43%,另一个说跌了 0.39%。 两个数都对,它们回答的是「折成这种货币来看是多少」,而不是「我多了多少」。

他后来把快照改成三行记法:原始币种金额(没变)、换算后金额(变了)、以及变动中有多少来自汇率。第三行那个季度是 7,200 ÷ 7,200 = 100%。

资产的币种很分散,但没有一笔对着她真正要花的那笔钱任,41 岁,本地工作,孩子 2027 年秋季去海外读书把四样东西的币种第一次写在同一张表上

她的四块:

  • 收入:工资 25,000 CNY/月(税后),100% CNY。
  • 必要支出:本地 11,000 CNY/月;另外一笔按美元计价的学费与保费 2,000 USD/月(按 7.12 折算 = 14,240 CNY)。
  • 资产:人民币活期 80,000 CNY、美元券商 40,000 USD、港币储蓄险现金价值 150,000 HKD。按 CNY 计合计 502,050,币种占比 USD 56.7% / HKD 27.3% / CNY 15.9%。
  • 目标:2027-09 到 2031-08,四年学费与保费合计 96,000 USD(每年 24,000)。按 7.12 折算 = 683,520 CNY。

她原本的结论是「我的资产一大半在美元,所以这笔学费的汇率风险我已经覆盖了」。

把目标那一栏填上之后,这个结论不成立:

  • 她将来要花的美元是 96,000,她现在的美元资产是 40,000。覆盖 41.67%。
  • 缺口 56,000 USD,这部分必须从 CNY 收入换过去。按 7.12 是 398,720 CNY;如果换汇那几年汇率变成 7.60,同样的 56,000 USD 要 425,600 CNY,多 26,880。
  • 敏感度:这一行上,汇率每变动 0.10,就是 5,600 CNY。

而那 27.3% 的港币对着多少未来港币支出?0。 她的支出表上没有任何一笔以港币计价。那不是对冲,是反向错配:它的购买力绑在一个与她的支出无关的币种上,而且那份储蓄险退保有损失、前几年现金价值低于已交保费——币种对不上,时间也对不上。

她标出的「错配最大的那一行」是学费缺口那 56,000 USD,理由写了三条:它是必要支出、有确定的日期、而且必须经过一次换汇(于是还要带上第 10 章算过的那条通道成本)。港币那一行她标成第二行,并注明它的错配方向相反、处理方式也不同。

她没有在这一章做任何「该换多少美元」的决定。 这张表交出的是三个数:覆盖率 41.67%、缺口 56,000 USD、每 0.10 汇率等于 5,600 CNY。决定在第 30 章那份投资政策里按规则做,不在发现问题的这一天拍脑袋做。

她的篮子跑在总体假设前面 3.36 个百分点尹,36 岁,租房,两个孩子在上学把长期目标从「每月 11,000」改成「2026 年物价下的每月 11,000」那天

她原来用的长期通胀假设是 2.5%,来自一篇文章里的总体数字。她的必要支出 11,000 拆开之后是这样:

项目月金额权重她自己核对到的年涨幅贡献
房租4,50040.9091%6.0%2.4545 pp
食品与日用2,60023.6364%3.0%0.7091 pp
教育2,40021.8182%8.0%1.7455 pp
医疗与保险1,50013.6364%7.0%0.9545 pp
合计11,000100%5.8636%

她自己的通胀是 5.86%,她用的假设是 2.5%,差 3.36 个百分点。

3.36 个百分点听起来不多。放到二十年:

  • 按 2.5%:同一个生活二十年后每月要 18,024.78。
  • 按 5.86%:每月要 34,381.82。
  • 两个数差 16,357.04 元/月,接近一倍。

换个方向看同一件事。她手上 500,000 的购买力,二十年后:

  • 按 2.5%:相当于今天的 305,135.47。
  • 按 5.86%:相当于今天的 159,968.27。

差别从哪来:她的权重里有两项(房租 40.9%、教育 21.8%)合起来 62.7%,而这两项正是跑在总体指数前面的那两项。 总体指数的权重不是她的权重,所以那个 2.5% 对别人可能是对的,对她不是。

她改了三件事,都很小:目标那一栏写成「2026 年物价下的 11,000/月」;长期假设从一个数改成两个(2.5% 和 5.86% 各算一遍);在教育那一行后面加了一个标记——它同时带着币种,所以它在 Currency Exposure Map 上也有一行。

那天查不到一条汇率,于是她的季度表算不出合计数万,44 岁,三个地方各有一个账户季度快照当天

她的港币储蓄险那一笔 150,000 HKD 当天没有可引用的汇率:上一份券商结算单是 2025-12-31 的,而她的快照日期更晚;她能查到的其他数字都是即时报价,既没有她能写下来的 source,也对不上一个固定的 asOf。

她面前有三条路:

  1. 按 1:1 处理:那笔算成 150,000 CNY。比按 0.915 折算多 12,750,而表上不会有任何地方提示这件事。
  2. 跳过那一笔:总资产 364,800 而不是 502,050,少 137,250,也就是 27.34%——她第二大的一个币种整块消失,而合计数看起来完全正常。
  3. 让它停下来:不出合计数,三笔资产按原始币种列示,那一行的汇率栏写「缺失」。

口径选的是第三条:currencyExposure 直接抛 MissingRateError,报的是「缺少 HKD → CNY 的汇率」。她把记账货币换成 USD 再试一次,错误变成「缺少 HKD → USD 的汇率」——因为口径只用直接给出的汇率和它的倒数,不做三角换算,它不会拿 USD/CNY 去绕一下把港币凑出来。

她那天的处理:快照里保留三行原币种金额,合计那一格写「待补一条 HKD → CNY 汇率」,并记下第二天补上的那条(含来源与日期)。那份快照晚了一天,但没有一个数是蒙的。

她事后写了一句话在模板顶上:合计数是一个有条件的数字,条件就是那张汇率表。条件缺了,正确的显示是空白加原因,不是一个数。

四个人的共同点:他们都有一张币种表,但表上少了一栏。 贺少的是「这次变动里有多少来自汇率」,任少的是「目标」那一块,尹少的是「这是哪一年的物价」,万少的是「这条汇率从哪来、是什么时候的」。四栏都不难填,难的是在填之前就相信那张表算完了。

算一遍

三样东西。第一样用实验台(口径在 finance-core 里,不在页面上重写);后两样是纯粹的乘除法,笔和纸就能全部复算。

算一遍资产的币种暴露,以及换算背后的那条汇率口径:currencyExposure

实验台默认的那组数字是故意配成这样的:它入不敷出。 收入只有工资 25,000 CNY/月,必要支出是本地 11,000 CNY 加上一笔按美元计价的 2,000 USD(按 7.12 折算 14,240 CNY),合计 25,240 CNY——比收入多 240。这 240 的来源不是哪一项支出变大了,而是支出里那笔外币:它随汇率动,而收入不动。

资产那一侧默认是 80,000 CNY + 40,000 USD + 150,000 HKD,按 CNY 计合计 502,050,币种占比 USD 56.7273% / HKD 27.3379% / CNY 15.9347%。

算一算:换算过的数字,和它背后的汇率口径 3.0.0
最大币种暴露
USD:56.7%
资产合计 502,050 CNY
收入的币种
100% CNY
折成 CNY 后为 25,000 CNY / 月
必要支出里有外币
2,000 美元 / 月
必要支出合计 25,240 CNY / 月
资产原始币种与金额换算为 CNY汇率换算方式汇率时间汇率来源
人民币活期80,000 CNY80,000 CNY1.0000identity同币种,无需汇率同币种,无需汇率
美元券商账户40,000 USD284,800 CNY7.1200direct2026-01-01中国外汇交易中心人民币中间价
港币储蓄险现金价值150,000 HKD137,250 CNY0.9150direct2025-12-31券商结算单(用户手填,比快照日期旧一天)

资产的币种暴露(按 CNY 计)

原始币种折成 CNY占比
USD284,800 CNY56.7%
HKD137,250 CNY27.3%
CNY80,000 CNY15.9%

把记账货币从 CNY 换成 USD:每一个数字都变了,而你持有的东西一样都没变。 这就是为什么换算值必须带来源和时间——它是一次口径选择的结果,不是一个事实。 真正的错配在上面那三个格子里:收入全是人民币,必要支出里却有一笔按美元计价, 而资产的大头又在另一个币种。汇率动一次,这三件事会被同时推向不同方向。

调用的口径: currencyExposure、convert、monthlyCashFlow

本次计算的假设:

  • 每项资产保留原始币种;下面显示的换算值一律附带汇率、来源与汇率时间。
  • 记账货币是 CNY,它是一个显示选择,不改变你实际持有什么。
  • 美元兑人民币按你拖的汇率计;港币兑人民币按 0.915(券商结算单,时间比快照日期旧一天)。
  • 缺汇率时不按 1:1 处理,也不跳过那一笔,而是整张表算不出来并抛 MissingRateError。
  • 只用直接给出的汇率和它的倒数,不做三角换算;缺哪一条就是缺哪一条,不靠第三种货币绕过去。
  • 汇率按单一时点取值,不含买卖价差、跨境手续费、额度限制与税务处理。
  • 这里不预测汇率走向。它只回答「按这个汇率,这些数字是多少」。

这是教育性计算,不是投资建议,也不是对未来的预测。它只回答「在上面这些假设下,数字会是多少」。

实验一:只换记账货币,什么都不动

下拉框从 CNY 切到 USD,再切到 HKD。什么都别拖。

记账货币合计USD 占比HKD 占比CNY 占比
CNY502,050.0056.7274%27.3379%15.9347%
USD70,510.9656.7288%27.3362%15.9350%
HKD548,715.7456.7296%27.3366%15.9339%

每一个金额都变了,三个占比在页面显示的精度上一个都没变(56.7% / 27.3% / 15.9%)。资产表里每一行的「原始币种与金额」那一列也一个都没变——因为你持有的东西没变。

同时看一下资产表右边那四列:汇率、换算方式、汇率时间、汇率来源。切到 USD 的时候,人民币活期那一行的换算方式从 identity(同币种,无需汇率)变成了 inverse(用 USD→CNY 那条汇率的倒数,1 ÷ 7.12 = 0.1404),而汇率时间仍然是 2026-01-01。同一笔 80,000 CNY,在三种记账货币下分别显示 80,000、11,235.96、87,431.69,而它一直是同一笔钱。

这就是「我的资产涨了」这句话要先排除的那个来源。要判断结构有没有变,看占比;要判断自己有没有多出东西,看原始币种那一列。

实验二:占比真的一个都不变吗

现在把 USD / CNY 汇率从 7.12 拖到 7.30,然后在 CNY 和 USD 之间切一次记账货币:

记账货币USD 占比HKD 占比CNY 占比
CNY57.3392% → 57.3%26.9514% → 27.0%15.7094% → 15.7%
USD56.9526% → 57.0%27.4440% → 27.4%15.6034% → 15.6%

这次三个占比都不一样了。 原因不是口径坏了,是你的汇率表内部不自洽:实验台里的港币有两条独立汇率,HKD→CNY = 0.915 与 HKD→USD = 0.1285,都来自同一份 2025-12-31 的券商结算单。交叉验算一下——

  • 7.12 的时候:0.1285 × 7.12 = 0.914920,和 0.915 差 0.00008,所以占比在一位小数上完全对得上。
  • 7.30 的时候:0.1285 × 7.30 = 0.938050,和 0.915 差了 0.023,于是占比开始明显漂移。

这个漂移是一个信号,不是一个误差:它在说「你表上有两条汇率不是同一时点的」。 正确的处理不是去纠结哪个占比是真的,而是把那两条汇率换成同一时点、同一来源的一组。

把汇率拖回 7.12,占比就重新对齐。顺手再看一眼拖到 6.60 的样子:USD 占比从 56.7% 掉到 54.9%、HKD 升到 28.5%、CNY 升到 16.6%,合计从 502,050 变成 481,250——她一股都没卖,三个占比全都动了。 这是「占比也是换算的产物」这件事的另一半:汇率变了,占比会变;只是换记账货币不会让它变。

实验三:撤掉一条汇率,看整张表停下来

打开开关 「今天拿不到港币的可引用汇率」。

页面上原来的统计格、资产表、币种占比表全都消失,换成一个方框:

算不出来:缺少 HKD → CNY 的汇率 缺少 HKD → CNY 的汇率,无法换算。请补一条汇率(含来源与时间)或改用原币种显示。

把记账货币切到 USD,错误变成「缺少 HKD → USD 的汇率」;切到 HKD,错误变成「缺少 CNY → HKD 的汇率」——因为这时候港币那一笔成了 identity,轮到另外两笔算不出来。三次报错都精确指向缺的那一条,而且没有一次尝试用第三种货币绕过去。

把没有这条汇率的三种做法的结果摆在一起:

做法合计(CNY)和 502,050 的差页面上看得出来吗
按 1:1 处理514,800+12,750看不出来
跳过那一笔364,800−137,250(27.34%)看不出来
抛 MissingRateError算不出来—只有这一种看得出来

前两行的危险在同一个地方:它们都产出一个完整的、格式正确的数字,而你会拿那个数字去算净资产、算币种占比、算目标覆盖率。第三行难看,但它是唯一一个会让你去补那条汇率的。

实验四:把外币支出拖起来,看错配从哪儿冒出来

把 「海外学费与保费(USD,月)」 从 2,000 往上拖,盯着右上角第三个格子「必要支出合计」。

外币必要支出必要支出合计(CNY,按 7.12)和工资 25,000 的差
0 USD11,000+14,000
1,000 USD18,120+6,880
2,000 USD(默认)25,240−240
3,000 USD32,360−7,360

再做一件事:把外币支出拖回 2,000,然后只动汇率。支出金额那个数字你一个都没改,但必要支出合计会跟着走:7.12 的时候 25,240,7.60 的时候 11,000 + 2,000 × 7.60 = 26,200,差 960 元/月,11,520 元/年。

这就是汇率错配的全貌,而它需要同时看两边才能看见:

  • 右上角第二个格子:收入 100% CNY。
  • 右上角第三个格子:必要支出里有一笔按美元计价。
  • 资产那张表:大头在 USD 56.7% 和 HKD 27.3%。

资产那一侧和支出那一侧都有美元,看起来是对上的。但对上不对上要看金额和时间:实验台里那笔美元资产 40,000,而那笔美元支出按 2,000/月算,一年 24,000——它两年就花完了,而她的美元资产是她唯一的投资性资产。那 27.3% 的港币对着 0 港币支出。

所以一个 56.7% 的美元占比既不说明她对冲了,也不说明她在冒险。 这个数字必须和「她的美元支出是多少、哪一年要花」放在一起才有含义——那正好是下一节那张表的四块。

第二样:一笔钱的实际购买力,以及减法到底错多少

第一步:两个通胀假设下的购买力。 今天的 500,000,按 500,000 ÷ (1 + i)^n:

2% 通胀5% 通胀
10 年后的物价系数1.2189941.628895
相当于今天的410,174.15306,956.63
购买力损失17.97%38.61%
20 年后的物价系数1.4859472.653298
相当于今天的336,485.67188,444.74
购买力损失32.70%62.31%

两件事值得停一下:

  1. 通胀假设从 2% 换成 5%,二十年后的购买力损失从 32.70% 变成 62.31%。 一个三个百分点的假设差异,在结果上是接近一倍。所以长期规划里通胀不能用一个数,至少要两个。
  2. 这四个数全都是实际口径。如果你这二十年里什么都不做,名义余额还是 500,000——那个数字一点没少,这正是只看名义回报最大的问题。

第二步:名义减通胀,到底算高了多少。

名义回报通胀近似(减法)精确(除法)差额
7%5%2.0000%1.9048%0.0952 pp
12%10%2.0000%1.8182%0.1818 pp
6%2.5%3.5000%3.4146%0.0854 pp

精确算法:(1 + 0.07) ÷ (1 + 0.05) − 1 = 1.07 ÷ 1.05 − 1 = 0.0190476。

减法永远算得偏高,而且通胀越高偏得越多:第一行偏高 0.0952 个百分点,第二行偏高 0.1818 个百分点——通胀翻倍,误差也差不多翻倍。

第三步:那零点几个百分点在二十年后是多少钱。 还是 500,000:

组合算式20 年后(今天的购买力)
名义 7% / 通胀 5%,按近似 2%500,000 × 1.02^20742,973.70
名义 7% / 通胀 5%,按精确 1.9048%500,000 × 1.07^20 ÷ 1.05^20729,221.69
差额13,752.01
名义 12% / 通胀 10%,按近似 2%500,000 × 1.02^20742,973.70
名义 12% / 通胀 10%,按精确 1.8182%500,000 × 1.12^20 ÷ 1.10^20716,930.00
差额26,043.70

自己验一遍第二组:不要算 500,000 × 1.018182^20,先算 1.12^20 = 3.869684…… 不对,那是 1.07 的。1.12^20 = 9.646293,1.10^20 = 6.727500,比值 1.433860,乘 500,000 = 716,930.00。两种写法结果一样,但用比值这种写法你不会在四舍五入上丢精度。

0.1818 个百分点 = 26,043.70 元。 这就是为什么长期规划要用除法:低通胀的时候减法够用,而你最需要算准的恰恰是高通胀的时候。

第三样:你自己的通胀

算法只有一行:每项权重 × 每项涨幅,加起来。 用尹的四项:

项目月金额权重 = 金额 ÷ 11,000年涨幅贡献 = 权重 × 涨幅
房租4,50040.9091%6.0%2.4545 pp
食品与日用2,60023.6364%3.0%0.7091 pp
教育2,40021.8182%8.0%1.7455 pp
医疗与保险1,50013.6364%7.0%0.9545 pp
合计11,000100%5.8636%

和一个总体假设 2.5% 比:差 3.3636 个百分点。

差在哪儿,贡献那一列直接给出答案:房租 2.4545 + 教育 1.7455 = 4.2000 个百分点,占 5.8636 的 71.6%。 这两项的权重合起来 62.73%,而它们的涨幅又是四项里最高的两个——权重高、涨幅高,两件事叠在一起。食品那一项涨幅 3.0% 低于加权结果,但它只贡献 0.7091,拉不动整体。

两个口径的差额落到结果上:

按 2.5%按 5.8636%
20 年物价系数1.6386163.125620
今天 11,000/月的生活,20 年后要花18,024.7834,381.82
今天的 500,000,20 年后相当于305,135.47159,968.27

这不是说 5.86% 比 2.5% 更正确。 它是说:你的目标金额对通胀假设的敏感度,比大多数人以为的大得多,而最有可能偏的那一项不是回报率,是通胀。所以这个数要自己算一遍,并且两个都算,不要只留一个。

三件事会让这个数以后变,到时候要重算:某一项的权重变了(孩子毕业、搬家、医疗支出上升)、某一项的涨幅变了(续租、换学校)、或者某一项带上了币种——比如尹那笔教育支出,它同时要去 Currency Exposure Map 上占一行。

你的行动

你的行动做出你的 Currency Exposure Map:收入、支出、资产与目标各自的币种

一个文本文件或一张表格就够。四块,列一样,最后两个数字加一句话。

可照抄的格式

四块的列完全一致,这样你能横着比:

列填什么验收这一列的标准
币种ISO 代码,CNY / USD / HKD / JPY…一行只能有一个币种。一行里出现两个,说明它该拆成两行
金额原始币种的原始金额,不是换算后的带频率:月 / 年 / 一次性
什么时候需要支出与目标必填:哪一年、持续多久。收入与资产填「现在」或「可动用日期」不能写「将来」「以后」。没有年份的一行不算填完
换算汇率 / 来源 / 日期三样一起写,缺一样算没填。同币种写「identity,无需汇率」日期要能指到一份具体的东西(结算单、官方页面、你自己的记录)

第一块 · 收入

每一笔收入一行。重点不是金额,是占比:收入里有多少比例不是本币。

第二块 · 支出

分两段:必要支出和其他支出。必要支出里的外币那几行要单独标出来,因为它们不能延期、也不能换成本币版本。

第三块 · 资产

按原始币种分组,列出每组金额与占比(口径 currencyExposure)。这是四块里唯一有现成口径的一块,也是唯一一块你能在上面那个实验台里直接验算的。

第四块 · 目标

这一块最常被漏掉,而它是整张表能不能回答问题的关键。每个目标一行,必须有币种和年份:

  • 有确定币种的目标(学费、海外医疗、迁移、某笔要在特定地方付的款):写币种、总额、起止年份。
  • 没有外币的目标(本地生活的长期必要支出):币种写本币,金额必须标上它是哪一年的物价,并写上你用的通胀假设——按「第三样」那个算法算出来的,以及一个总体假设,两个都写。

最后两个数字 + 一句话

  1. 每个外币目标的覆盖率 = 同一币种的资产 ÷ 该币种的未来支出总额。
  2. 错配最大的那一行的敏感度 = 缺口金额 × 汇率每变动 0.10。
  3. 一句话:错配最大的那一行是哪一行,为什么是它。 判断依据三条——是不是必要支出、有没有确定日期、要不要经过一次换汇(要的话,带上第 10 章算过的那条通道成本)。

填好的示例(任,2026-10-17)

汇率:1 USD = 7.12 CNY(示例输入,asOf 2026-01-01);1 HKD = 0.915 CNY(券商结算单,asOf 2025-12-31)。两条都是示例值,不构成行情,也不代表任何机构的报价。

一 · 收入

币种金额什么时候需要换算汇率 / 来源 / 日期
CNY25,000 / 月(税后)现在identity,无需汇率

本币占比 100%。

二 · 支出

币种金额什么时候需要换算汇率 / 来源 / 日期
CNY11,000 / 月(必要)每月,持续identity,无需汇率
USD2,000 / 月(必要)每月,2027-09 起共 48 个月7.12 / 示例输入 / 2026-01-01 → 14,240 CNY

必要支出合计 25,240 CNY/月,比收入多 240。外币必要支出占必要支出的 56.42%。

三 · 资产

币种金额什么时候需要换算汇率 / 来源 / 日期
CNY80,000现在可动用identity,无需汇率
USD40,000现在可动用7.12 / 示例输入 / 2026-01-01 → 284,800 CNY
HKD150,000退保有损失,前几年现金价值低于已交保费0.915 / 券商结算单 / 2025-12-31 → 137,250 CNY

合计 502,050 CNY。占比 USD 56.73% / HKD 27.34% / CNY 15.93%(currencyExposure,记账货币 CNY)。

四 · 目标

币种金额什么时候需要换算汇率 / 来源 / 日期
USD96,000(四年学费与保费)2027-09 至 2031-087.12 / 示例输入 / 2026-01-01 → 683,520 CNY
CNY11,000 / 月必要支出,2026 年物价长期identity。通胀假设两个都写:自己的篮子 5.86%、总体 2.5%

覆盖率:USD 目标 96,000,USD 资产 40,000 → 41.67%。HKD 资产 150,000,HKD 目标 0 → 覆盖率这个指标在这一行上不成立,它是反向的。

敏感度:USD 缺口 56,000。汇率每变动 0.10 = 5,600 CNY。7.12 → 7.60 这一段 = 26,880 CNY。

错配最大的那一行:USD 学费缺口 56,000。三条理由都命中——必要支出、有确定起止日期(2027-09 至 2031-08)、必须经过换汇(所以还要加上第 10 章算过的那条通道成本,按那一章的拆法是手续费 + 点差 + 中转费 + 在途时间)。

第二行:HKD 150,000(27.34% 的资产,0 的港币支出)。它的错配方向相反,而且时间也对不上——退保有损失。

税务:四个时点全部标「待核实」,一个都不填数:持有期间(那份储蓄险、那个券商账户)/分配时(券商账户的分配款)/变现时(退保、卖出)/跨境的第二层(账户、资产、我本人不在同一个地方)。核对方式:找当地专业人士,每一项记下核实日期。

复核触发条件:换汇那几年的任何一次实际换汇、任何一笔外币支出的金额或起止年份变动、任何一项汇率的来源日期超过一个季度、以及每半年至少一次。

填的时候注意五件事

  1. 目标那一块不能空着。 前三块只能告诉你现状,错配是现状和目标之间的关系。目标空着的时候,那张表上的币种占比没有任何可判断的方向——56.7% 的美元既不好也不坏。
  2. 「什么时候需要」不是可选项。 币种对上、金额够了、但日期对不上,仍然是错配(任那 150,000 HKD 就是)。
  3. 汇率三件套缺一不可。 只有数字没有来源与日期的一行,和没填一样:半年后你不知道它是哪天的,也不知道该不该更新。
  4. 四块用同一个记账货币折算一次,但不要用折算后的数字当原始记录。 原始币种那一列是事实,折算那一列是口径选择的结果。贺那个 1.43% 就是把第二列读成了第一列。
  5. 税那四格只写「待核实」,不填任何数。 填一个 0 比填「待核实」危险得多——0 会被当成已经算过。

检查标准

检查标准0 / 8
  • 我的 Currency Exposure Map 四块都填了——收入、支出、资产、目标——而且第四块(目标)不是空的:每个目标都有币种和年份,没有一行写着「将来」。
  • 我能回答「我的未来支出币种和资产币种对得上吗」:每个有外币支出的币种我都算了覆盖率(同币种资产 ÷ 该币种未来支出),也写出了资产占比不小而未来支出为 0 的那些币种,并且知道这两种错配的方向相反、处理方式不同。
  • 我的每一个换算都有汇率、来源和日期三样,一个不缺;同币种那几行写的是「identity,无需汇率」;没有任何一行是按 1:1 蒙过去的,也没有任何一笔被跳过而不留痕迹。
  • 我标出了错配最大的那一行,写了它为什么是最大的(必要支出 / 确定日期 / 要不要换汇三条),并算出了它的敏感度——缺口金额在汇率每变动 0.10 时是多少钱;要换汇的那一行还带上了第 10 章算过的通道成本。
  • 我用自己的三到四项必要支出算过「我自己的通胀」(权重 × 涨幅加总),和一个总体假设比出了差额,知道差额主要来自哪两项;长期目标两个假设都算了一遍,而不是只留一个数。
  • 我的长期规划用的是实际口径,而且换算用的是除法不是减法;我能说出在我自己那组假设下,减法比除法算高多少个百分点、二十年后是多少钱。
  • 我的目标金额标了它是哪一年的物价,并且我知道同一个生活在 N 年后的名义金额是多少;我没有把一个没标年份的数字当成长期目标。
  • 税的四个时点(持有期间 / 分配时 / 变现时 / 跨境的第二层)我都列成了一行,每一行都写着「按当地规则,需与当地专业人士核实」,没有一行填了 0,也没有一行填了我自己猜的数。

容易搞错的地方

把换算系数的变化读成资产增长。 以为合计数涨了就是自己多了东西。实际上多币种表上的合计数是「这些东西折成某种货币是多少」,它有两个来源:你真的多了东西,或者折算系数变了。后果是贺那个季度:记账货币是 CNY 的时候写着 +1.43%(+7,200),同一天同一堆东西换成 USD 是 −0.39%(−277.05),而他一股都没买卖。正确的记法是三行:原始币种金额、换算后金额、变动中有多少来自汇率。

以为「持有外币」就是对冲了。 以为资产里有 56.7% 的美元,那笔美元支出的风险就覆盖了。实际上覆盖率是同币种资产 ÷ 同币种未来支出:任的美元资产 40,000,美元未来支出 96,000,覆盖 41.67%,缺口 56,000。后果是她在填目标那一块之前一直以为这件事已经解决了,而那 56,000 的敏感度是每 0.10 汇率 5,600 元。

以为错配就是「外币占比太高」。 实际上错配是方向性的,而且有两个相反的方向:本币资产对着外币支出(外币变贵伤你),和外币资产对着零外币支出(外币变便宜伤你)。任那 27.34% 的港币对着 0 港币支出,属于后者,而且它还叠了一层时间问题——退保有损失。后果是只盯着「外币占比」这一个数的人会把两种相反的问题当成同一个问题,然后做出一个同时让两边变糟的动作。

用「名义减通胀」当实际回报。 以为 7% 减 5% 就是 2%。实际上要用除法:1.07 ÷ 1.05 − 1 = 1.9048%,减法偏高 0.0952 个百分点;通胀 10% 的时候偏高 0.1818 个百分点。后果是在 500,000 上按二十年算,两种算法差 13,752.01 和 26,043.70——而减法永远偏高,也就是永远让你高估自己的处境,在你最需要算准的高通胀情形下偏得最多。

用总体物价指数当自己的通胀。 以为总体指数是一个客观的数,所以用它就对了。实际上那是一个按整个经济体消费结构加权的平均,权重不是你的:尹的房租 40.91% + 教育 21.82% 合起来 62.73%,而这两项的涨幅恰好是她四项里最高的两个,加权结果 5.86% 对总体假设 2.5% 高出 3.36 个百分点。后果是同一个 11,000/月的生活,二十年后一个算出 18,024.78、一个算出 34,381.82,接近一倍。

目标金额不标年份。 以为「我的目标是每月 11,000」是一句完整的话。实际上它只在某一年的物价下成立;换一年就是另一个数,而目标金额恰恰是要和二十年后的现实比的那个数。后果是一份读起来很具体的计划,它的分子按未来年份算、分母按今天物价算,中间那个系数(按 5.86% 是 3.125620)没有任何地方记着。

缺汇率的时候按 1:1 蒙过去,或者把那一笔跳过。 以为只差一条汇率,先算个大概。实际上两种处理都产出一个格式完整的数字:按 1:1 多出 12,750,跳过那一笔少 137,250,也就是整张表的 27.34%,而页面上没有任何一处会提示。后果是你会拿那个数字去算净资产和覆盖率。这就是 MissingRateError 的意义——一张算不出来的表会让你去补那条汇率,一张少算了一项的表你会直接相信它。

以为换记账货币占比一定不变,于是把漂移当成四舍五入。 实际上占比不变的前提是那组汇率互相自洽。把 USD/CNY 拖到 7.30 之后,0.1285 × 7.30 = 0.938050,和表里那条 0.915 差了 0.023,于是 CNY 记账下的 USD 占比是 57.3%、USD 记账下是 57.0%。后果是把一个「你表上有两条汇率不是同一时点」的信号读成了精度问题,然后继续用那张表。正确的动作是换掉那两条汇率,不是挑一个占比去相信。

在税那四格里填 0。 以为暂时没核实就先写 0,反正可以回头补。实际上 0 和「待核实」在表上长得一样,但在你脑子里完全不同:0 会让这张表看起来算完了。后果是一个长期结果里有四个被当成零的时点,而其中第一个时点(持有期间)每年发生一次,被扣掉的部分不再参与后面的复利。这一章对此只有一条规则:四格全部写「按当地规则,需与当地专业人士核实」,一个数都不填。

把这一章和 第 10 章 当成同一件事,于是只做一遍。 以为算过跨境收款的成本就算处理过币种了。实际上第 10 章算的是一笔钱走一条通道的成本(苏那笔 USD 6,000 是 566.94 CNY,占 1.31%,一次性),这一章算的是存量的长期购买力(每年发生一次,直到花完)。后果是把一个每年重复的问题当成一次性的问题处理掉了。正确的关系是相加:Currency Exposure Map 上每一行「将来要换汇去花」的,都要同时带汇率敏感度和那条通道成本。

本章自测

不要回头翻,先自己答一遍。

  1. 币种是四件事,分别是哪四件?哪一件有现成的口径,哪一件最常被漏掉?漏掉它之后,「我的美元占 56.7%」这句话还能判断好坏吗?
  2. 汇率错配的定义里为什么没有「持有外币」这四个字?四种形态里,哪一种币种对上了却仍然是错配,为什么?
  3. 实验一:只换记账货币,哪些数字会变、哪些不会?三个占比在显示精度上为什么一个都不变?要判断「我有没有多出东西」该看哪一列?
  4. 贺那个季度,CNY 记账说 +1.43%、USD 记账说 −0.39%。两个数哪个是对的?他该在复盘里写哪三行?
  5. 实验二:把 USD/CNY 拖到 7.30 之后,为什么两种记账货币下的占比不再一致?0.1285 × 7.30 等于多少,它和表里哪条汇率对不上?正确的处理动作是什么?
  6. convert 的返回值一定带哪四样?identity、direct、inverse 三种换算方式各在什么时候出现?只换一次记账货币,实验台里哪一行的换算方式会变?
  7. 撤掉港币汇率之后,三种记账货币下的报错各是哪一条?为什么口径不拿 USD/CNY 去凑一个港币汇率出来?
  8. 缺一条汇率时,按 1:1、跳过那一笔、抛错,三种做法的合计数各是多少?为什么说只有第三种看得出来?
  9. 实验四:外币必要支出从 2,000 USD 拖到 3,000,必要支出合计变成多少?如果一分钱不改、只把汇率从 7.12 动到 7.60,每月差多少、一年差多少?
  10. 今天的 500,000,20 年后按 2% 和 5% 通胀各相当于今天的多少?购买力损失各是多少?为什么长期规划里通胀不能只用一个数?
  11. 名义 7%、通胀 5%,实际回报精确是多少?写出算式。减法算高了多少个百分点,20 年后在 500,000 上是多少钱?通胀换成 10% 之后这两个数各变成多少?
  12. 为什么说减法的误差方向是固定的?固定在哪一边,这件事为什么重要?
  13. 尹那四项的加权涨幅是多少?其中房租和教育合起来贡献多少个百分点、占总数多少?她为什么不能直接用那个 2.5%?
  14. 同一个 11,000/月的生活,20 年后按 2.5% 和 5.86% 各要多少?这两个数对「目标金额要标年份」这件事提出了什么要求?
  15. 税的四个时点是哪四个?为什么第一个时点(持有期间)对长期结果的影响方式和第三个(变现时)不一样?这一章为什么只允许在这四格里写「待核实」?
  16. 这一章和第 10 章各算什么、各发生几次?任那张表上,哪一行需要把两章的成本相加?
  17. 覆盖率这个指标在哪种情况下不成立?任的港币那一行为什么属于这种情况?

第 3、5、7、9 题答不上来,回到「算一遍」把四个实验各做一次——第 5 题那个漂移只有自己拖过汇率才看得清。第 11、12 题答不上来,把第二样那三步的算式自己写一遍。第 1、17 题答不上来,说明你的 Currency Exposure Map 第四块还是空的:那张表现在只有现状,没有方向。


这一章对应的 Knowledge Object。「例子」那一栏里的覆盖率 41.67% 来自第四块那张表,57.3% 对 57.0% 来自实验二那次汇率不自洽:

WF-CURRENCY-028第 28 章 货币、通胀与税务
核心问题
我的钱和我的支出是同一种货币吗?
学习目标
能把收入、支出、资产、目标四块的币种写在同一张表上,并算出每个外币目标的覆盖率与最大错配那一行的敏感度。
基础解释
币种是四件事,不是一件:收入的、支出的、资产的、目标的。持有外币本身既不是错配也不是对冲,要看你将来花什么、哪一年花。实际购买力才是结果,名义口径只用在一个地方——和对账单核对余额。
进阶解释
记账货币只是一个显示选项:换一次记账货币每个金额都会变,而资产的币种占比不变——前提是那组汇率互相自洽,占比一漂移就说明表里有两条汇率不是同一时点的。名义换实际要用除法,减法永远算得偏高,而且相对误差正好等于通胀率本身。缺汇率时正确的显示是算不出来,不是按 1:1 蒙过去,也不是把那一笔跳过;税只在四个时点上写「待核实」,填 0 最危险,因为 0 会让整张表看起来算完了。
例子
任的美元目标 96,000 对着美元资产 40,000,覆盖率 41.67%,缺口 56,000——汇率每变动 0.10 就是 5,600 CNY;而那 27.3% 的港币对着 0 港币支出,是方向相反的错配。自洽性也能算出来:把 USD/CNY 从 7.12 拖到 7.30 之后,0.1285 × 7.30 = 0.938050 对不上表里那条 0.915,于是同一堆持仓的 USD 占比在 CNY 记账下是 57.3%、在 USD 记账下是 57.0%。
计算或实验
currencyExposure
现实行动
做出 Currency Exposure Map:四块(收入、支出、资产、目标)加上覆盖率、最大错配那一行的敏感度与一句说明它为什么是最大的话。
检查标准
  • 第四块(目标)不是空的:每个目标都有币种和年份,没有一行写着「将来」或「以后」
  • 每一次换算都带汇率、来源与日期三样,同币种写 identity,没有任何一行按 1:1 蒙过去或被跳过而不留痕迹
  • 税的四个时点(持有期间/分配时/变现时/跨境的第二层)各一行,全部写「需与当地专业人士核实」,没有一行填 0
关联概念
WF-TIME-026、WF-ALLOC-027、WF-IPS-030
来源
prd-v1.md 第 07 节 Phase V 第 28 章、第 26 节 多币种与跨境数据规范(汇率来源、汇率时间、换算方法);prd-v1.md 第 07 节 Phase V 阶段约束:不得规定所有人都该买某个指数,必须按投资期限/流动性需求/地区/税务/风险承受能力/现有资产结构分析
最近核对
2026-10-17

带走的结论

实际购买力才是结果;收支币种错配会在最需要钱的时候放大损失。

这一章我走到哪了查看全部进度
成果已经做出来了Currency Exposure Map:收入、支出、资产与目标各自的币种。

自评(三项是分开的,不要一起勾)

进度只存在这台设备的浏览器里,不会上传。清理浏览器数据、换设备或使用隐私窗口都会丢失,请用下面的导出保留一份。

On this page