海外FXの利益の税金|国内FXとの違いと、入出金から1年の損益を出す計算
FXの利益の税金は、取引の相手によって扱いが変わります。国税庁のタックスアンサーでは、国内の登録業者(第一種金融商品取引業者など)を相手にしたFXは申告分離課税(所得税15%+住民税5%)、それ以外の取引は一般的には雑所得として総合課税とされています。日本で登録の無い海外の業者の口座での利益は、後者に当たると考えられます。この記事では、国税庁の説明を整理し、1年の確定した損益を残高と入出金から出す計算と、2つの課税の税額の差を計算します。
(確認:国税庁 タックスアンサー No.1521「外国為替証拠金取引(FX)の課税関係」、No.2260「所得税の税率」。いずれも令和8年4月1日現在の法令等。確認日:2026年10月22日。この記事は令和8年分の計算の目安で、税務の判断は税務署や税理士に確認してください)
国税庁の説明
| 項目 | 国内の登録業者との店頭FXなど | それ以外のFX |
|---|---|---|
| 所得の区分 | 先物取引に係る雑所得等 | 一般的には雑所得 |
| 課税の方法 | 申告分離課税。所得税15%(ほかに地方税5%) | 総合課税。ほかの所得と合わせた額に、累進税率(5〜45%) |
| 損失が出た場合 | 「先物取引に係る雑所得等」の中で通算でき、残りは翌年以後3年内に繰り越して控除できる(一定の要件) | 雑所得の範囲内で通算できるが、ほかの所得とは通算できない。申告分離の先物取引に係る雑所得等とも通算できない |
どちらも、令和29年(2047年)分までは所得税に復興特別所得税(基準所得税額の2.1%)が加わります(令和9年以後の所得は、税率の引下げと防衛特別所得税の創設が予定されている、と注記があります)。Titan FXの公式サイトには、日本国内で金融商品取引業を営んでおらず、金融庁の登録・監督下にない旨が書かれています。
コード:1年の損益と、税額の差
確定した損益は「年末の残高 − 年初の残高 − 入金 + 出金」で出します。残高は含み損益を含まないため、決済した分の損益(スワップ・手数料を含む)になります。税額は、ほかの課税される所得を230万円と置き、所得税の速算表と住民税10%(総合課税)・5%(申告分離)で計算しています。
# 海外FX(日本で登録の無い業者)の利益の税金の目安(国税庁 No.1521・No.2260 にもとづく筆者の計算・令和8年分)
# 国内の登録業者との店頭FX: 申告分離課税 所得税15%(+復興特別所得税2.1%)+住民税5%
# それ以外のFX: 一般的には雑所得として総合課税(累進税率)。住民税は所得割10%で置く
# 1年の確定した損益は、口座の残高(含み損益を除く)と入出金から出す
def realized_pl(start, end, deposits, withdrawals):
# 年末残高 − 年初残高 − 入金 + 出金
return end - start - deposits + withdrawals
BRACKETS = [(1_949_000, 0.05, 0), (3_299_000, 0.10, 97_500), (6_949_000, 0.20, 427_500),
(8_999_000, 0.23, 636_000), (17_999_000, 0.33, 1_536_000), (39_999_000, 0.40, 2_796_000), (float('inf'), 0.45, 4_796_000)]
def income_tax(taxable):
taxable = taxable // 1000 * 1000
for upper, rate, ded in BRACKETS:
if taxable <= upper:
return max(0, taxable * rate - ded) * 1.021 # 復興特別所得税を加える
pl = realized_pl(start=300_000, end=820_000, deposits=200_000, withdrawals=100_000)
print(f'年初残高 300,000円・年末残高 820,000円・入金 200,000円・出金 100,000円 → 確定した損益 {pl:,}円')
base = 2_300_000 # 例:給与などほかの所得だけの「課税される所得」
print(f'\nほかの課税される所得 {base:,}円 に、FXの利益を加えた時の税の増加(所得税・復興特別所得税・住民税)')
print(f'{"FXの利益":>12}{"総合課税":>12}{"申告分離(国内)":>16}{"差":>10}')
for profit in (100_000, 300_000, 1_000_000, 3_000_000):
sougou = income_tax(base + profit) - income_tax(base) + profit * 0.10
bunri = profit * 0.15 * 1.021 + profit * 0.05
print(f'{profit:>12,}{sougou:>12,.0f}{bunri:>16,.0f}{sougou - bunri:>10,.0f}')
計算の結果(Python 3)
年初残高 300,000円・年末残高 820,000円・入金 200,000円・出金 100,000円 → 確定した損益 420,000円
ほかの課税される所得 2,300,000円 に、FXの利益を加えた時の税の増加(所得税・復興特別所得税・住民税)
FXの利益 総合課税 申告分離(国内) 差
100,000 20,210 20,315 -105
300,000 60,630 60,945 -315
1,000,000 202,100 203,150 -1,050
3,000,000 810,500 609,450 201,050
- 入出金をはさんでも、残高の差から入金を引き、出金を足せば、1年の確定した損益(42万円)が出る
- ほかの所得が230万円なら、利益100万円までは、総合課税と申告分離の差はわずか(足した後の所得が、所得税の税率10%の帯にほぼ収まるため)
- 利益が300万円になると、税率の高い帯に入る分が増え、総合課税の方が約20万円多い
海外FXの利益で気をつけること(筆者の考え)
- 損失はほかの所得と相殺できず、繰り越せない:総合課税の雑所得の損失は、給与などとは通算できず、国内FXのような3年の繰越しもない
- 必要経費:雑所得では、その所得を得るための経費を差し引ける。VPSの代金などを按分する考え方は副業の経費の按分にあります
- 記録を残す:年初と年末の残高、入出金の記録、取引の履歴を保存する(MT5の取引履歴を書き出す方法)。外貨建ての口座なら、円に直すレートの記録も要る
- 給与のある人の20万円:給与以外の所得が20万円以下でも、住民税の申告は別に要る場合がある(副業が20万円以下の住民税の申告)
この記事で確かめていないこと
- 個々の取引が、税法上どちらに当たるかの判断(業者の登録の状況や取引の形で変わりうる)
- 外貨建ての口座の損益を円に直す時の、レートの取り方
- 住民税の均等割や、各種の控除・非課税の判定を入れた正確な税額
まとめ
- 国内の登録業者とのFXは申告分離課税(所得税15%+地方税5%)。それ以外は、一般的には雑所得として総合課税
- 1年の確定した損益は「年末残高 − 年初残高 − 入金 + 出金」で出せる
- 利益が大きいほど、総合課税は税率の高い帯に入り、申告分離との差が開く。損失は、ほかの所得と通算できず繰り越せない
本記事は国税庁の公開資料にもとづく計算の目安です。申告の前に、最新の法令と自分の状況を税務署や税理士に確認してください。Titan FXでMT5を使う前の確認はTitan FXでMT5を使う前に確認する6項目にまとめています。

