ブログに戻る

通貨ペアの完全ガイド:メジャー・マイナー・エキゾチック(開発者向け)

V
Vlado Grigirov
April 26, 2026
Currency API Exchange Rates Forex Currency Pairs Developer Guide Finexly Education

通貨ペアの完全ガイド:メジャー・マイナー・エキゾチック(開発者向け)

国際送金に関わるものを作るなら——チェックアウト、フィンテックのダッシュボード、トレーディングボット、トレジャリーツール、シンプルな通貨換算アプリでも——作業の最初の一時間以内に必ず通貨ペアという概念に出会います。ペアは外国為替(FX)市場における計量単位です。ある通貨はそれ単体では価格を持たず、別の通貨に対してのみ価格を持ちます。通貨ペアがどう分類され、どう気配されて、コード上でどう扱われるかを理解することは、あなたが作るあらゆる FX 機能の土台になります。

このガイドではメジャー・マイナー・エキゾチックの通貨ペアを開発者視点で解説します。それぞれのカテゴリの意味、ペア文字列を読み書きするときに守るべき慣習、Finexly API ドキュメントを通じてペアを取得・正規化・計算するための実務的なパターンをカバーします。読み終わるころには、最初に対応すべきペア、エッジケースの扱い方、数行のコードでライブレートを取得する方法がわかります。


通貨ペアとは

通貨ペアは、ある通貨の価格を別の通貨の単位で表す気配です。常に 2 つの ISO 4217 コードで書かれます——たとえば EUR/USDEURUSD——そして 1 つの十進数価格が付きます。

ペアの 1 つ目の通貨はベース通貨、2 つ目はクォート通貨(カウンター通貨ともいう)です。価格は、ベース通貨を1 単位買うのに必要なクォート通貨の量を示します。

つまり EUR/USD = 1.0850 は、1 ユーロが 1.0850 米ドルに相当することを意味します。気配が 1.0900 に上がれば、ユーロはドルに対して強くなったことになります。1.0800 に下がれば、ユーロは弱くなったことになります。ベース通貨は「値づけされている対象」、クォート通貨は「支払いに使うお金」です。

シンプルな約束ごとですが、ほぼすべての開発者が一度はつまずきます。どちら側がベースで、どちらがクォートか一貫して追跡せずにレートを保存すると、いずれ数字を反転させてユーザーから多く取りすぎたり少なく取りすぎたりすることになります。これを避ける方法は後のコードセクションで説明します。価格そのものを動かす要因については為替レートの仕組みのガイドをご覧ください。

世界の FX 市場は国際決済銀行の三年ごとの調査で、1 日あたり約 7.5 兆ドルを取引しており、世界最大の金融市場です。流動性はペア間で均等ではなく、その大半は「メジャーペア」と呼ばれる小さなグループに集中しています。


メジャー通貨ペア

メジャーペアは世界で最も取引されている通貨ペアです。市場に単一の公式定義はありませんが、実務上、すべてのメジャーペアには 2 つの性質があります。一方が米ドル(USD)で、もう一方が大規模で安定した先進国の通貨であることです。

ほぼ普遍的にメジャーとされる 7 ペアは以下のとおりです。

  • EUR/USD — ユーロ / 米ドル
  • USD/JPY — 米ドル / 日本円
  • GBP/USD — 英ポンド / 米ドル
  • USD/CHF — 米ドル / スイスフラン
  • AUD/USD — 豪ドル / 米ドル
  • USD/CAD — 米ドル / カナダドル
  • NZD/USD — ニュージーランドドル / 米ドル

メジャー全体で世界の FX 出来高の約 75% を占め、EUR/USD だけで全取引のおよそ 4 分の 1 を担います。この集中はあなたが作るものに直接的な影響を与えます。

  • 最もタイトなスプレッド。 ビッド(買い手が払う額)とアスク(売り手が要求する額)の差はメジャーで最小です。エンドユーザーにレートを表示する場合、ミッドマーケットレートとユーザーが実際に受け取る額の差は最小になります。
  • 最高の更新頻度。 メジャーのティックデータは取引時間中、毎秒何回も到着します。マイナーやエキゾチックはより散発的に更新されます。
  • 最も信頼できるヒストリカルデータ。 バックテスト、分析、チャート作成のいずれでも、メジャーは最もきれいで長く、ギャップのない履歴を持ちます。
  • 役立つレスポンスあたりの API コストが最低。 1 つのメジャーペアは多くの場合、他の数十のレートを構築するブロック(クロスレート計算経由)として機能するため、メジャーをアグレッシブにキャッシュして残りを派生させるだけでグローバル製品を運用できます。

Finexly から 7 つのメジャーを 1 リクエストで取得する最小例:

// Fetch all major pairs vs USD in a single call
const symbols = ['EUR', 'JPY', 'GBP', 'CHF', 'AUD', 'CAD', 'NZD'];

const response = await fetch(
  `https://api.finexly.com/v1/latest?base=USD&symbols=${symbols.join(',')}`,
  { headers: { 'Authorization': 'Bearer YOUR_API_KEY' } }
);

const data = await response.json();
console.log(data.rates);
// { EUR: 0.9217, JPY: 154.32, GBP: 0.7891, CHF: 0.8843, ... }

base=USD で要求し、各シンボルのレートを USD 基準で受け取っている点に注目してください。慣習どおりのペア方向(たとえば USD/EUR ではなく EUR/USD)を得るには反転が必要な場合があります。そのパターンは下のコードセクションで扱います。


マイナー(クロス)通貨ペア

マイナーペアクロスまたはクロス通貨ペアとも呼ばれ、米ドルを含まないメジャー 2 通貨の組み合わせです。「クロス」という名前は、歴史的にこれらのペアが 2 つの USD ペアを「掛け合わせて」計算する必要があった——たとえば EUR/USDGBP/USD から EUR/GBP を導く——ことに由来します。今日はほとんどの API やブローカーが直接気配しますが、背後の計算を理解しておくのは依然として有用です。

代表的なマイナーペア:

  • EUR/GBP — ユーロ / 英ポンド
  • EUR/JPY — ユーロ / 日本円
  • EUR/CHF — ユーロ / スイスフラン
  • GBP/JPY — 英ポンド / 日本円
  • AUD/JPY — 豪ドル / 日本円
  • CHF/JPY — スイスフラン / 日本円
  • EUR/AUD — ユーロ / 豪ドル
  • GBP/CAD — 英ポンド / カナダドル

クロスは依然として強い流動性を持ち——特に EUR と JPY のクロス——スプレッドはメジャー 7 ペアより広めで、日中ボラティリティはしばしば高くなります。たとえば GBP/JPY はトレーダーの間で激しい値動きで知られ、「ドラゴン」と呼ばれることもあります。

開発者にとっての実務的な含意は、すべての非 USD ペアにエキゾチック級のマークアップや更新頻度を仮定しないことです。クロスは中間に位置します。ほぼすべての B2C・B2B 製品にとって十分な流動性がありますが、EUR/USD ほどタイトなスプレッドではありません。

プロバイダが特定のクロスを直接気配していない場合でも、2 本の USD レッグから常に派生できます。

# Derive EUR/GBP from EUR/USD and GBP/USD
eur_usd = 1.0850   # 1 EUR = 1.0850 USD
gbp_usd = 1.2680   # 1 GBP = 1.2680 USD

# 1 EUR = (eur_usd / gbp_usd) GBP
eur_gbp = eur_usd / gbp_usd
print(f"EUR/GBP = {eur_gbp:.4f}")  # EUR/GBP = 0.8557

これがレートエンジンが裏で行っていることです。Finexly はクロスを通貨換算エンドポイントで直接返しますが、この計算を頭の中に入れておくと便利です——任意のレートをチェックでき、特定のペアがフィードに欠けたときも上手にフォールバックできます。


エキゾチック通貨ペア

エキゾチックペアはメジャー通貨(通常は USD か EUR)を、より小規模な、新興、あるいは流動性の低い経済の通貨と組み合わせます。例:

  • USD/TRY — 米ドル / トルコリラ
  • USD/MXN — 米ドル / メキシコペソ
  • USD/ZAR — 米ドル / 南アフリカランド
  • USD/BRL — 米ドル / ブラジルレアル
  • USD/INR — 米ドル / インドルピー
  • USD/THB — 米ドル / タイバーツ
  • EUR/PLN — ユーロ / ポーランドズロチ
  • EUR/HUF — ユーロ / ハンガリーフォリント
  • USD/SGD — 米ドル / シンガポールドル
  • USD/HKD — 米ドル / 香港ドル

「マイナー」と「エキゾチック」の境界は曖昧です。USD/SGDUSD/HKD は経済が高度に発達しているためマイナーに分類されることがあり、USD/CNH(オフショア人民元)は貿易量からメジャーに分類されることがあります。カテゴリよりも、コードに影響する特徴を押さえる方が重要です。

  • より広いスプレッド。 ビッド・アスク差はメジャーの 5〜20 倍に達することがあります。
  • 時間外の流動性低下。 多くのエキゾチックは現地市場の業務時間外に薄商いとなり、週末や夜間のレートは古かったり跳んだりします。
  • ヘッドライン感応度の高さ。 エキゾチックは現地の政治ニュース、中央銀行の決定、資本規制発表に大きく反応します。詳細は地政学的イベントが為替レートに与える影響を参照。
  • より頻繁なレートギャップ。 USD/TRY のようなペアは週末や金利決定後に数パーセント跳ぶことがあります。請求やプライシングのロジックでこれを扱っていないと、大きな動きの後に古いレートをユーザーに 1 時間表示してしまうこともあります。
  • ペッグ/管理通貨。 一部の「エキゾチック」は中央銀行の介入によりほとんど動きません——USD/HKD が代表例で、狭いバンドに維持されています。チャートはほぼ平坦に見えますが、それは正しいデータであり、バグではありません。

新興市場を相手にする製品なら、エキゾチックを脚注扱いしてはいけません。プライシングの最大の痛みはそこに住んでいることが多いです。運用面のパターンを掘り下げた2026 年の通貨ボラティリティ対応ガイドもあります。


ダイレクト・インダイレクト・インバース・クォート

メジャー / マイナー / エキゾチックの分類のほかに、すべての開発者が押さえるべき語彙がもう 1 つあります——ダイレクトインダイレクトのクォートの違いです。

ダイレクトクォートは外貨を自国通貨単位で表します。米国視点で USD/EUR = 0.92 はダイレクトクォートです——1 ドルで 0.92 ユーロを買えると米国ユーザーに伝えます。インダイレクトクォートはそれを反転させたもので、EUR/USD = 1.0850 は欧州視点ではダイレクトですが、米国視点ではインダイレクトです。

慣習的な FX 市場の気配はユーザー視点ではなく、歴史的な「ランキング」ルールに従います。

  • EUR は他の通貨とペアにされるとき、常にベースになります。
  • GBPEUR 以外に対してベースになります。
  • AUDNZDEURGBP 以外のほとんどに対してベースになります。
  • USD は上記 4 通貨以外のほとんどに対してベースになります。
  • JPY はほぼ常にクォート通貨になります。

したがって EUR/USDGBP/USDAUD/USDUSD/JPYUSD/CHF が慣習的な方向であり、USD/EUR ではありません。プロバイダが USD/EUR を返す場合、それはすべてのレートを USD ベースで返しているサインで、慣習方向を期待するトレーダーや金融プロに表示する際は、あなた側でペアを反転する必要があります。

反転は単純な計算ですが、間違えやすいです。

// Convert USD-based rate to conventional pair direction
function toConventionalQuote(base: string, quote: string, rate: number) {
  const usdBaseFirst = ['EUR', 'GBP', 'AUD', 'NZD'];
  // If the quote currency is "stronger" by convention, flip
  if (usdBaseFirst.includes(quote)) {
    return { pair: `${quote}/${base}`, rate: 1 / rate };
  }
  return { pair: `${base}/${quote}`, rate };
}

toConventionalQuote('USD', 'EUR', 0.9217);
// → { pair: 'EUR/USD', rate: 1.0850 }

市場慣習を気にしないエンドユーザーにのみ価格を表示するなら、これを完全にスキップして自国通貨基準で気配しても構いません。一方、トレーダー、トレジャラー、会計士などプロフェッショナルなユーザーが対象なら、方向を正しく見せることが信頼性の証になります。


コードでの通貨ペアの扱い方

ほとんどのバグはここに住んでいます。数千件の API 統合経験から蒸留した推奨パターンを紹介します。

1. 内部では常に ISO 4217 コードを使う

通貨識別子をシンボル($¥)や名称(「ドル」)で保存しないでください。3 文字の ISO 4217 コードで保存します——USDEURJPY。シンボルは曖昧($ は 20 以上の通貨で使われています)で、名称はローカライズされます。ISO コードは曖昧さがなく言語中立です。

2. ペア文字列は境界で正規化する

EURUSDEUR/USDEUR-USDEUR_USDeur/usd といった様々な書き方を見ることになります。1 つの内部表現を選び、システムの境界で正規化します。

function normalizePair(input) {
  const cleaned = input.toUpperCase().replace(/[^A-Z]/g, '');
  if (cleaned.length !== 6) {
    throw new Error(`Invalid pair: ${input}`);
  }
  return {
    base: cleaned.slice(0, 3),
    quote: cleaned.slice(3, 6),
    canonical: `${cleaned.slice(0, 3)}/${cleaned.slice(3, 6)}`,
  };
}

normalizePair('eur-usd');
// → { base: 'EUR', quote: 'USD', canonical: 'EUR/USD' }

内部では文字列より構造化された形({ base, quote })を優先してください。文字列はログと API のため、構造化データはコードのためのものです。

3. 任意の 2 通貨をピボット経由で変換する

レートを単一のベース(慣習的には USD)でキャッシュしていれば、任意のペアをその場で計算できます。

def convert(amount, source, target, rates_in_usd):
    """
    rates_in_usd: dict like {'EUR': 0.9217, 'GBP': 0.7891, ...}
    Each value is "1 USD = X units of currency"
    """
    if source == target:
        return amount
    if source == 'USD':
        return amount * rates_in_usd[target]
    if target == 'USD':
        return amount / rates_in_usd[source]
    # Pivot through USD
    amount_in_usd = amount / rates_in_usd[source]
    return amount_in_usd * rates_in_usd[target]

# Convert 100 EUR to JPY using USD-based rates
rates = {'EUR': 0.9217, 'JPY': 154.32}
print(convert(100, 'EUR', 'JPY', rates))  # 16,743.31

このパターンを使えば、「USD 対全通貨」という単一のホットキャッシュだけで 170+ 通貨をサポートできます。Finexly の /v1/latest?base=USD エンドポイントはまさにこの形を返します。

4. 小数精度を正しく扱う

通貨ペアは慣習的に異なる精度レベルを使います。多くのメジャーは 4〜5 桁の小数で気配(1.08503)、JPY ペアは 2〜3 桁で気配(154.32)されます。ベトナムドンのように補助単位を持たない通貨もあります。ユーザー残高に触れる金額を計算する際は、必ず Decimal/BigDecimal 型で保存し、float は使わないでください。詳しい落とし穴はPython Currency API チュートリアルで解説しています。

5. 賢くキャッシュする、力技ではなく

メジャーペアは静かな市場では秒単位ではほとんど動かないので、誰にも気づかれずに 30〜60 秒キャッシュできます。エキゾチックは予定された経済指標の周辺では短い TTL が必要かもしれません。両方に対応するレイヤー化されたキャッシュ戦略はキャッシュとエラーハンドリングのガイドで解説しています。


避けるべきよくあるミス

実際のチームを焼いてきた失敗の短いリスト:

  • ペアの方向を保存せずレートだけ保存する。 「1.0850」は EUR/USDUSD/EUR か分からなければ意味を持ちません。
  • 同じ UI でユーザー視点と市場視点の気配を混在させる。 1 つを選び明確にラベル付けします。
  • 週末のレートをライブとして扱う。 FX 市場は金曜の米東時間 17 時から日曜の 17 時まで休場です。土曜の朝に提供するレートは金曜の終値です——多くのアプリには問題ありませんが、執行系では危険です。フォレックス取引時間を参照。
  • 「サポート対象ペア」のリストをハードコードする。 API の symbols エンドポイントを真実の源泉として使ってください。新しい通貨は時々現れます(消えるのは稀)。
  • 早すぎる丸め。 表示時に丸めるべきで、計算中に丸めてはいけません。4 桁の小数のミッドマーケットレートに小額をかけたとき、パイプライン途中で丸めると意味のある精度を失う可能性があります。

よくある質問

通貨ペアは全部で何種類ありますか? 活発に取引される国際通貨は約 180 で、理論上のユニークペア数は約 16,000(180 × 179 / 2)です。実際には数百ペアだけが意味のある流動性で取引され、Finexly を含む大半の API は 170+ 通貨を提供しており、約 14,000 ペアを派生できます。多くの製品は UI 上で 20〜50 ペアをサポートすれば十分です。

世界で最も取引されている通貨ペアは? EUR/USD で、日次フォレックス出来高のおよそ 22〜24% を占めます。USD/JPYGBP/USD が続きます。

USD/EUREUR/USD は同じ? 違います。数値は数学的に互いに逆数(USD/EUR = 1 / EUR/USD)ですが、別の気配です。慣習表記は EUR/USD です。USD/EUR を金融プロに表示すると、何かが間違っていると判断されます。

エキゾチックペアはなぜリスクが高いの? エキゾチックペアは流動性の低い市場の上に成り立っているため、スプレッドが広く、ニュース後のギャップが大きく、現地の政治イベントへの感応度が高く、時には資本規制や中央銀行介入があります。これらが使えなくなるわけではなく、メジャーのように「狭いスプレッドと滑らかなティックストリーム」を前提にしてはいけない、ということです。

エキゾチックペアには別の API プランが必要ですか? Finexly では不要です。170+ すべての通貨——メジャー、マイナー、エキゾチック——は無料プランを含むすべてのプランで利用できます。プランの違いはコール量、更新頻度、履歴の深さであって、ペアのカバレッジではありません。詳細は料金プランページで比較できます。

為替レートはどれくらいの頻度で更新すべき? ほとんどのユースケース(EC 表示、請求、レポート):5〜15 分ごとで十分です。アクティブトレーディングやヘッジ:数秒ごと、またはフィードを購読。会計期末締め:1 日 1 回のスナップショットが正解です。


通貨ペアのライブデータを使い始める

通貨ペアは FX の言語です。メジャー / マイナー / エキゾチックの明確なメンタルモデルと、整理された正規化ヘルパーがコードに揃えば、その後に作る FX 機能——コンバーター、マルチ通貨チェックアウト、SaaS 課金、レポート——すべてが格段に楽になります。

ライブレートをプロジェクトに繋ぎ込む準備はできましたか?無料登録で 1 分以内に Finexly の API キーが手に入ります——クレジットカード不要。月 1,000 リクエストまで無料、170+ 通貨へのアクセス、プロのフィンテック製品が使うのと同じミッドマーケットレートが使えます。無料枠を超えたら、有料プランはインディプロジェクトに優しい価格から始まり、エンタープライズ規模まで拡張できます。

まずは選択肢を比較したい方は、2026 年のベスト通貨換算 APIの記事をご覧ください。

Vlado Grigirov

Senior Currency Markets Analyst & Financial Strategist

Vlado Grigirov is a senior currency markets analyst and financial strategist with over 14 years of experience in foreign exchange markets, cross-border finance, and currency risk management. He has wo...

View full profile →

この記事を共有する