具有共同基准货币的两个汇率
假设一个示例快照显示 1 USD = 0.80 EUR,且 1 USD = 120 JPY。要计算一欧元值多少日元,应将每美元对应的日元数除以每美元对应的欧元数,USD 单位会相消。
120 JPY/USD ÷ 0.80 EUR/USD = 150 JPY/EUR
10 EUR × 150 JPY/EUR = 1,500 JPY当单位已经形成链条时相乘
相同输入也可以换一种计算顺序。将每 USD 兑换 0.80 EUR 的汇率取倒数,得到每 EUR 兑换 1.25 USD,再乘以每 USD 兑换 120 JPY 的汇率,同样得到每 EUR 兑换 150 JPY。
公式取决于单位,不能一律相乘。基准货币相同时,用目标货币汇率除以源货币汇率即可;若报价货币相同或方向不一致,应先将各汇率写成“每单位付出货币可兑换的货币数量”。
谨慎反转结果
每 EUR 兑换 150 JPY 的反向汇率为每 JPY 兑换 1/150 EUR,显示时约为 0.00666667。进行金额换算时,应保留比这一显示值更多的计算精度。
一个有用的检查是:正汇率乘以其未舍入的倒数应等于 1。除以零、汇率缺失或数值不为正都表示输入无效,不能作为货币换算结果。
获取兼容的输入
Narwhal 可以针对请求的基准货币返回选定货币。下面的请求获取相对于 USD 的 EUR 和 JPY;它不保证得到上述示例值。每条返回记录都有自己的时间戳和 stale 标志。
curl --request GET \
--url "https://api.narwhalapi.com/v1/fx/rates/USD?currencies=EUR,JPY" \
--header "Authorization: Bearer $NARWHAL_API_KEY"一个响应可能包含不同的观测时间
不要因为两个汇率出现在同一个 HTTP 响应中,就假设它们来自同一市场时刻。由较早观测值和较新观测值组合出的派生汇率具有混合的时间背景。
- 比较输入时间戳和两个 stale 标志。
- 根据你的使用场景选择可接受的时间差;不存在通用阈值。
- 将两个输入观测值与派生结果一起保留。
- 如果用一个经过时长概括数据时效性,应以较早的输入观测时间为准,同时保留两个时间戳。
计算出的交叉汇率是参考结果
兼容的中间价或参考汇率可以给出指示性交叉汇率,但不能建立可执行的交易价格。买卖价差、不同交易场所和观测时间可能使单独报价的货币对不同。
保持汇率类型一致,避免在除法前分别对两个输入汇率舍入。如果只需要金额换算,请通过文档规定的换算操作直接请求目标货币对,并保留其返回的汇率和时间信息。
来源与参考
发布于 。最近核查于 。

