MSFT 股價換算台幣:匯率如何改變報酬
同一檔 MSFT,美元帳面漲了,台幣對帳單卻可能沒動。本文拆開三層機制:美元股價報酬、換匯時適用的 USD/TWD 匯率,以及兩者相乘後的台幣報酬,並以可重跑的查詢量測一年、三年、五年的美元價格報酬,情境表再把匯率變動固定在正負 20% 之間試算,說明 30% 股利預扣稅與換匯時點對台灣持有人的實際影響。
MSFT 股價換算台幣之後,你看到的報酬和美元線圖上的報酬會是兩個數字。差別來自兩層機制:一層是這檔股票本身的美元漲跌,另一層是你在換匯那一刻拿到的 USD/TWD 匯率。台北的投資人多半用複委託或海外券商持有 MSFT,成本基礎記在新台幣,讀到的頭條與線圖卻都是美元,兩邊對不起來是正常的。
本文的每一個數字都來自下方可以展開重跑的查詢。匯率報價不在其中:你實際成交的匯率印在自己的交割單上,任何第三方牌告都只是參考,所以這裡談的是機制與情境試算,不引用即期報價,也不預測匯率走向。
MSFT 股價換算台幣,到底在換什麼
被混成一團的其實是三件各自獨立的事。
- 美元股價報酬:MSFT 在美股收盤價的變化,也就是所有圖表與新聞在講的那個數字。
- 換匯匯率:你把新台幣換成美元、以及日後換回來時所適用的價格。銀行牌告的「即期」用於帳上的外幣轉換,「現金」適用美金鈔票,現金價通常比即期差。牌告上的買入與賣出是站在銀行那一側:你買美元時用的是銀行的賣出價,換回台幣時用的是銀行的買入價。複委託的交割則多半由券商在指定時點以合作銀行的即期價成交,真正的成交匯率會落在交割單上,未必等於你下單當下看到的牌告。
- 台幣報酬:上面兩者相乘的結果。公式是 (1 + 美元報酬) × (1 + 匯率變動) - 1。當美元報酬 20%、同期間美元對台幣走弱 10%,台幣報酬是 1.20 × 0.90 - 1,也就是 8%,比直覺的兩個百分比相減再低一些。
MSFT 的美元側:歷年收盤與年報酬
先把可以精確測量的那一半攤開。下面這張表是 MSFT 每年最後一個交易日的收盤價,以及與前一年年末相比的價格報酬。
| year | year_close_usd | usd_return_pct |
|---|---|---|
| 2016 | 62.14 | 12 |
| 2017 | 85.54 | 37.66 |
| 2018 | 101.57 | 18.74 |
| 2019 | 157.7 | 55.26 |
| 2020 | 222.42 | 41.04 |
| 2021 | 336.32 | 51.21 |
| 2022 | 239.82 | -28.69 |
| 2023 | 376.04 | 56.8 |
| 2024 | 421.5 | 12.09 |
| 2025 | 483.62 | 14.74 |
| 2026 | 506.39 | 4.71 |
每個數據背後的精確 SQL 語法
WITH yearly AS
(
SELECT
toYear(date) AS y,
argMax(toFloat64(close), date) AS px
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'MSFT'
AND date >= '2015-01-01'
GROUP BY y
)
SELECT
toString(cur.y) AS year,
round(cur.px, 2) AS year_close_usd,
round(100 * (cur.px / prev.prev_px - 1), 2) AS usd_return_pct
FROM yearly AS cur
INNER JOIN
(
SELECT
y + 1 AS join_year,
px AS prev_px
FROM yearly
) AS prev ON cur.y = prev.join_year
ORDER BY cur.y最新一列是 2026 年,收盤 $506.39,年初至今的價格變化為 4.71%(該年度尚未結束,這一列量的是年初至今)。整張表共 11 個年度。這裡量到的全是價格報酬,不含股利;價格報酬與含息總報酬的差別,在 價格報酬與總報酬的差異 有完整拆解。
一年、三年、五年的美元報酬
滾動視窗比年度切分更接近多數人的持有經驗:買進的那天不會剛好是元旦。
| label | basis_start | start_close_usd | latest_close_usd | usd_return_pct |
|---|---|---|---|---|
| 1 年 | 2025 年 9 月 | 514.45 | 506.39 | -1.57 |
| 3 年 | 2023 年 9 月 | 317.54 | 506.39 | 59.47 |
| 5 年 | 2021 年 9 月 | 299.56 | 506.39 | 69.04 |
每個數據背後的精確 SQL 語法
SELECT
concat(toString(intDiv(lookback_days, 365)), ' 年') AS label,
concat(toString(toYear(min(date))), ' 年 ', toString(toMonth(min(date))), ' 月') AS basis_start,
round(argMin(toFloat64(close), date), 2) AS start_close_usd,
round(argMax(toFloat64(close), date), 2) AS latest_close_usd,
round(100 * (argMax(toFloat64(close), date) / argMin(toFloat64(close), date) - 1), 2) AS usd_return_pct
FROM global_markets.stocks_daily_aggs
ARRAY JOIN [365, 1095, 1825] AS lookback_days
WHERE ticker = 'MSFT'
AND date >= today() - 1825
AND date >= today() - lookback_days
GROUP BY lookback_days
ORDER BY lookback_days以最近一個交易日的收盤 $506.39 為終點,過去一年的美元價格報酬是 -1.57%,三年是 59.47%,五年是 69.04%,五年期的起算點落在 2021 年 9 月。這三個數字就是台北的持有人在美元帳面上看到的東西。台幣帳面看到的是另一回事。
同一筆美元報酬,換成台幣可以差多少
下面這張表把剛剛量到的五年美元報酬固定住,再讓 USD/TWD 的累計變動在正負 20% 之間移動,看台幣報酬被推到哪裡。表中的匯率變動是假設情境,不是預測,也不對應任何一段真實歷史。
| usd_twd_change_pct | usd_return_pct | twd_return_pct |
|---|---|---|
| -20 | 69.04 | 35.23 |
| -15 | 69.04 | 43.68 |
| -10 | 69.04 | 52.14 |
| -5 | 69.04 | 60.59 |
| 0 | 69.04 | 69.04 |
| 5 | 69.04 | 77.49 |
| 10 | 69.04 | 85.94 |
| 15 | 69.04 | 94.4 |
| 20 | 69.04 | 102.85 |
每個數據背後的精確 SQL 語法
WITH
(
SELECT round(100 * (argMax(toFloat64(close), date) / argMin(toFloat64(close), date) - 1), 2)
FROM global_markets.stocks_daily_aggs
WHERE ticker = 'MSFT'
AND date >= today() - 1825
) AS msft_5y_usd
SELECT
toInt32(fx_move) AS usd_twd_change_pct,
round(msft_5y_usd, 2) AS usd_return_pct,
round(100 * ((1 + msft_5y_usd / 100) * (1 + fx_move / 100) - 1), 2) AS twd_return_pct
FROM
(
SELECT arrayJoin([-20, -15, -10, -5, 0, 5, 10, 15, 20]) AS fx_move
)
ORDER BY usd_twd_change_pct固定住的美元報酬是 69.04%。若整段期間 USD/TWD 完全沒動,台幣報酬與美元報酬相同,為 69.04%。若美元對台幣累計走弱 20%,同一筆部位的台幣報酬落在 35.23%;若美元累計走強 20%,則是 102.85%。兩端的差距完全來自匯率那一層,這段期間 MSFT 的美元價格一分錢都沒有變。一張綠色的美元線圖配上一份平坦的台幣對帳單,機制就在這裡。
股利變成台幣之前,先被扣掉 30%
美國對非居民的股利所得採就源扣繳。台灣與美國之間沒有所得稅協定可以調降這個稅率,適用的是 30%,券商在股利入帳時就先扣好,進到你帳戶的已經是稅後美元,之後才輪到換匯。
| year | gross_dividend_usd | after_withholding_usd | payments |
|---|---|---|---|
| 2016 | 1.47 | 1.029 | 4 |
| 2017 | 1.59 | 1.113 | 4 |
| 2018 | 1.72 | 1.204 | 4 |
| 2019 | 1.89 | 1.323 | 4 |
| 2020 | 2.09 | 1.463 | 4 |
| 2021 | 2.3 | 1.61 | 4 |
| 2022 | 2.54 | 1.778 | 4 |
| 2023 | 2.79 | 1.953 | 4 |
| 2024 | 3.08 | 2.156 | 4 |
| 2025 | 3.4 | 2.38 | 4 |
| 2026 | 2.73 | 1.911 | 3 |
每個數據背後的精確 SQL 語法
SELECT
toString(toYear(ex_dividend_date)) AS year,
round(sum(cash_amount), 4) AS gross_dividend_usd,
round(sum(cash_amount) * 0.70, 4) AS after_withholding_usd,
count() AS payments
FROM
(
SELECT
ex_dividend_date,
any(cash_amount) AS cash_amount
FROM global_markets.stocks_dividends
WHERE ticker = 'MSFT'
AND ex_dividend_date >= '2016-01-01'
AND ex_dividend_date <= today()
GROUP BY id, ex_dividend_date
)
GROUP BY year
ORDER BY year2026 年到目前為止,MSFT 每股現金股利合計 $2.73,分 3 次除息,扣除 30% 之後剩下 $1.911。整張表涵蓋 11 個年度。股利的逐季節奏與金額在 MSFT 2026 年股利 有完整紀錄,預扣稅的申報與退稅機制則整理在 非美國投資人的股利預扣稅。
台幣計價的股利收入因此要過兩道手續:先乘上 0.7,再乘上入帳當下的匯率。用美元殖利率去估台幣現金流,會高估三成再加減匯率那一層。
換匯的時點,成本常常大於手續費
換匯成本由三段構成:牌告的買賣價差、手續費、以及你成交的時點。價差的量級可以用一組假設性的數字看清楚。假設某日即期賣出 32.10、即期買入 32.00,一買一賣走完是 0.10 元的價差,約當本金的 0.31%,而且不論你什麼時候換都會付。
時點那一段更大。同樣是假設值:換匯手續費若以 0.1% 計,一筆 300 萬新台幣的部位是 3,000 元;而同一週之內 USD/TWD 的高低點相差 1% 並不罕見,對同一筆金額就是 30,000 元。優化手續費的空間,通常遠小於成交時點本身帶來的差異。機制上,把換匯拆成多筆,等於把成交價平均到多個時點;一次換完,整筆部位的台幣結果就綁在那一天的牌告上。兩種做法都有人用,差別在於你把結果暴露在一個價格還是一串價格上。
FAQ
MSFT 股價怎麼換算成新台幣?
把當天的美元收盤價乘上你適用的 USD/TWD 匯率就是市值。報酬則要用相乘:(1 + 美元報酬) × (1 + 匯率變動) - 1。把兩個百分比直接相加,在幅度大的時候誤差會很明顯。
為什麼我的台幣報酬和美元線圖差這麼多?
線圖只量了美元股價那一層。你的成本基礎是用買進當天的匯率換出來的台幣,將來換回去又是另一個匯率,中間整段的匯率變動都算在你的台幣報酬裡。
複委託買 MSFT 是用哪一個匯率交割?
多數券商在交割日以合作銀行的即期匯率成交,實際價格印在交割單上,通常不等於你下單當下看到的牌告。現金匯率只有在提領美金鈔票時才用得到。
台灣投資人領 MSFT 股利會被扣多少稅?
美國來源股利對非居民就源扣繳 30%,台灣與美國之間沒有所得稅協定可以降低這個稅率。上面的表把 MSFT 各年度每股股利與扣除 30% 後的金額並排列出來。
美元走弱的時候,持有 MSFT 的台幣部位會怎麼樣?
在美元股價不變的前提下,美元對台幣走弱會讓同一筆部位換回的新台幣變少。情境表把這個關係整條畫了出來。這是機制描述,不是對匯率方向的判斷。
上面每一張表底下都附著完整 SQL,展開就能看到數字是怎麼算出來的。想換一檔股票或換一段期間重跑同樣的計算,可以在 Strasmore 終端機直接用白話把問題問出來。