スポット、Bid、Ask、スプレッド:貴金属価格の提示のしくみ
金・銀・プラチナ・パラジウムにおけるスポット、Bid、Ask、仲値、スプレッドの意味、ディーラーが見積もりを作るしくみ、APIでBid/Askを取得して表示する方法を解説します。
金1オンスに複数の価格がある理由
同じ瞬間に3つのウェブサイトで金価格を調べると、少しずつ異なる3つの数字が表示されることがよくあります。コイン販売業者のサイトを見れば、さらに2つの数字が出てきます。どれかが間違っているとは限りません。それぞれが異なる問いに答えているのです。あるサイトは市場の仲値であるスポット価格を、別のサイトは先物価格を、また別のサイトはディーラーが地金バーを販売する価格や買い取る価格を示しています。
ディーラーのオンラインストア、ポートフォリオ管理ツール、ジュエリー価格計算ツール、社内レポートなど、貴金属の価格を表示したり利用したりするものを作るなら、自分がどの数字を扱っているのかを把握しておく必要があります。この記事では、スポット、Bid、Ask、仲値、スプレッドといった用語を解説し、ディーラーが卸売の気配値から小売価格を作るしくみを紹介したうえで、MetalAPIのREST APIを使ってBid価格とAsk価格を取得し、表示する方法を説明します。
この記事は価格の提示方法に関する教育目的のものです。投資や取引の助言ではなく、例に登場する数値はすべて例示です。
スポット価格:即時受け渡しの基準
スポット価格とは、将来の日付ではなく即時に受け渡す場合の、標準的な数量の金属の価格です。金の卸売市場は主に店頭取引(OTC)で、ロンドンを中心としています。この市場では慣例として、「スポット」は取引の2営業日後の決済を意味します。
貴金属は通常、米ドル建てでトロイオンス(31.1034768グラム)あたりの価格で提示され、ISO形式のコードが使われます。金はXAU、銀はXAG、プラチナはXPT、パラジウムはXPDです。したがってXAU/USDは「金1トロイオンスあたりの米ドル」と読みます。EUR/USDが「1ユーロあたりの米ドル」と読むのと同じです。
スポット市場はOTCであるため、公式の最終取引価格を出す単一の取引所は存在しません。銀行やリクイディティプロバイダーがそれぞれ双方向の気配値を配信しており、ウェブサイトで目にする「スポット価格」は、それらの気配値から算出された代表値で、多くの場合は仲値です。これと混同しやすい価格がいくつかあります:
- 先物価格(COMEXの金先物など)は、将来の限月に受け渡すための価格です。通常、受け渡しまでの金利や保管料といったキャリーコストの分だけスポット価格と差があります。
- ベンチマーク価格(ロンドンの営業日ごとに1日2回のオークションで決まるLBMA Gold Priceや、1日1回決まるLBMA Silver Priceなど)は、契約の決済や保有資産の評価に使われる単一の参照値です。決められた時刻に確定し、その間は変動しません。
- 小売価格(コインや地金バーの価格)には、スポット価格に上乗せされたプレミアムが含まれます。これについては後述します。
Bid、Ask、仲値
双方向の市場では、すべての気配値が2つの数字で構成されます:
- Bidは、マーケットメーカーが現時点で支払う意思のある最も高い価格です。あなたが売るときの価格です。
- Ask(オファーとも呼ばれます)は、マーケットメーカーが売る意思のある最も低い価格です。あなたが買うときの価格です。
AskはBid以上の値になります。仲値(Mid)は両者の平均で、(bid + ask) / 2です。仲値そのもので取引する人はいません。仲値は2つの価格の間に位置し、買い手と売り手のどちらにも偏らない中立的な参照値です。そのため、チャート、ポートフォリオの評価、「今日の金価格」といった見出しに自然に使われる数字であり、ほとんどの価格APIがデフォルトで返すのもこの値です。
| 用語 | 意味 | 主な用途 |
|---|---|---|
| Bid | 買い手が支払う最も高い価格 | 売却する金属の評価、ディーラーの買取価格の基準 |
| Ask(オファー) | 売り手が受け入れる最も低い価格 | 購入コスト、ディーラーの販売価格の基準 |
| 仲値(Mid) | BidとAskの平均 | チャート、評価額、見出しの価格 |
| スプレッド | AskからBidを引いた差 | 流動性や往復取引のコストの測定 |
例示の数値で計算してみましょう。金の卸売の気配値が、1トロイオンスあたりの米ドル建てでBid 3,997.62、Ask 3,998.16だとします:
Bid = 3,997.62
Ask = 3,998.16
仲値(Mid) = (3,997.62 + 3,998.16) / 2 = 3,997.89
スプレッド = 3,998.16 - 3,997.62 = 0.54 USD
仲値に対するスプレッドの割合 = 0.54 / 3,997.89 ≈ 0.0135 %(約1.35ベーシスポイント)実際のスプレッド
スプレッドは即時性の対価です。つまり、買ってすぐに売り戻した場合にかかるコストです。スプレッドは、仲値に対する割合やベーシスポイント(0.01%単位)といった相対値で比較してください。絶対値で0.50のスプレッドは、1オンス数千ドルの金と数十ドルの銀とではまったく意味が異なります。
スプレッドの広さはいくつかの要因で変わります:
- 金属の流動性。 金は最も活発に取引されている貴金属で、通常は相対的なスプレッドが最も狭くなります。プラチナとパラジウムは取引量がはるかに少ないため、割合で見たスプレッドは一般に広くなります。
- 時間帯。 スプレッドは主要な取引拠点の取引時間が重なる時間帯に最も狭くなり、閑散とした時間帯には広がる傾向があります。たとえば、ニューヨーク時間での毎日のクローズ前後や、日曜日夕方の週明けの取引再開時などです。
- ボラティリティとニュース。 重要な経済指標の発表前後や市場の混乱時には、マーケットメーカーは自らを守るために気配値の幅を広げます。
- 数量。 提示されたスプレッドは標準的な取引サイズに適用されます。非常に大きな注文はより広いスプレッドで価格が付けられることがあり、小口の小売購入には卸売のスプレッドにはまったく含まれないコストがかかります。
コードでスプレッドを計算する際は、フィードから取得した丸める前の数値を使い、相対スプレッドは仲値を基準に計算してください:
function spreadStats(bid, ask) {
const mid = (bid + ask) / 2;
const spread = ask - bid;
return {
mid,
spread,
spreadPct: (spread / mid) * 100,
spreadBps: (spread / mid) * 10000,
};
}
spreadStats(3997.62, 3998.16);
// mid ≈ 3997.89, spread ≈ 0.54, spreadPct ≈ 0.0135, spreadBps ≈ 1.35卸売のスプレッドと小売のスプレッドは別物です。金のインターバンクのスプレッドはごくわずかな割合にすぎません。1オンス金貨のディーラーの販売価格と買取価格の差ははるかに大きく、製品のプレミアム、流通コスト、ディーラーの利益も含まれています。
ディーラーがスポット価格から見積もりを作るしくみ
地金商、宝石商、取引アプリが卸売の気配値をそのまま表示することはほとんどありません。多くの場合、仲値またはBidとAskといったリアルタイムの参照価格を起点に、それぞれの側に独自の条件を適用します。一般的な構成は次のとおりです:
- 販売価格(顧客が支払う金額) = 参照Ask × 重量 × 純度 + プレミアム
- 買取価格(顧客が受け取る金額) = 参照Bid × 重量 × 純度 − ディスカウント
プレミアムには、加工費(小さなコインの鋳造は大きな地金バーの鋳造よりも1オンスあたりのコストが高くなります)、保険、送料、決済手数料、利益が含まれます。スポット価格に対する割合、1点あたりの固定額、またはその両方で設定され、製品、サイズ、ディーラー、需要によって異なります。
その間に2つの換算が入ることがよくあります。米国外の顧客向けの価格は米ドルから現地通貨に換算されるため、為替レートと、場合によっては為替のスプレッドも加わります。また、ジュエリーのようにグラム単位やカラット単位で販売される製品は、トロイオンスから換算したうえで純度を掛けます。22Kの金は22/24で純度約91.67%、18Kは純度75%です。
| ステップ(例示、1オンス金貨) | 販売側 | 買取側 |
|---|---|---|
| 卸売の参照価格(1トロイオンスあたりUSD) | Ask 3,998.16 | Bid 3,997.62 |
| ディーラーの調整(例) | +3.0%のプレミアム | −1.0%のディスカウント |
| 顧客向け価格(USD) | ≈ 4,118.10 | ≈ 3,957.64 |
この表のプレミアムとディスカウントは説明のための架空の値で、実際の値は大きく異なります。重要なのは構造です。顧客向けのスプレッドは、卸売のスプレッドに両側でのディーラーの調整を加えたものであり、通常は卸売の部分が最も小さな要素です。
MetalAPIでBidとAskを取得する
MetalAPIはデフォルトで仲値を返します。スポットの貴金属の場合、この仲値はインターバンクのBid/Askフィードから算出されています。Standardプラン以上では、currencies内のシンボルに-BIDと-ASKを付けることで、両側の価格も取得できます:
curl "https://metalapi.com/api/v1/latest?currencies=XAU,XAU-BID,XAU-ASK" \
-H "Authorization: Bearer YOUR_API_KEY"リクエストした各サイドは、仲値とまったく同じようにratesに両方向で含まれます。USDXAU-BIDは1トロイオンスあたりの米ドル建てのBidで、XAU-BIDはその逆数です:
{
"success": true,
"timestamp": 1792834892,
"date": "2026-10-24",
"base": "USD",
"rates": {
"XAU": 0.0002501319446,
"USDXAU": 3997.89,
"XAU-BID": 0.0002501488386,
"USDXAU-BID": 3997.62,
"XAU-ASK": 0.0002501150529,
"USDXAU-ASK": 3998.16
}
}知っておくと役立つ点がいくつかあります:
- 対象シンボル。 BidとAskは、インターバンクのフィードから提示されるシンボル、つまり貴金属と主要通貨で利用できます。銅や原油などの先物ベースのシンボルは単一の価格で配信されます。あるシンボルでサイドが利用できない場合、そのキーは
ratesに含まれないため、キーが存在すると決めつけずに確認してください。 - 同一のスナップショット。 Bid、Ask、仲値は同じスナップショットから取得されるため、互いに整合しています。更新はプランの間隔に従います。Standardは10分ごと、AdvancedとProは1分ごと、UltraとBusinessは15秒ごと、Enterpriseは5秒ごとです。
- 他の通貨と単位。
baseとunitは通常どおり使えるので、base=EUR&unit=gramとすれば、金のBidとAskが1グラムあたりのユーロ建てで返されます。別の基準通貨への換算にはその通貨の仲値が使われます。為替スプレッドも適用したい場合は、ご自身で加算してください。 - プラン。 FreeとLiteでは、
-BIDや-ASKのシンボルを含むリクエストはエラー106(plan_restriction)を返します。他のプラン制限と同様に、このリクエストは課金されません。 - 履歴。 過去データのエンドポイント(日次終値、時系列、OHLC)は仲値を返します。BidとAskは最新の気配値にのみ含まれます。
- AIアシスタント。 ClaudeやChatGPTからMetalAPIを使う場合も、
get_latest_pricesMCPツールのsymbols引数で同じサフィックスが使えます。AI・MCPをご覧ください。
気配値を正しく表示する
金属価格に関するミスのほとんどは、データではなく表示レイヤーで起こります。簡単なチェックリストです:
- どの価格かを明示する。 仲値にはそのとおりのラベル(「スポット」または「仲値」)を付けてください。両側を表示する場合は、顧客の視点でラベルを付けます。顧客はAskで買い、Bidで売ります。ディーラーのサイトでは「買取」「販売」のようにディーラー側の視点で表記することが多く、1つのページで2つの表記方法を混在させるとユーザーが混乱します。
- 単位と通貨を表示する。 「$3,997.89」だけでは意味があいまいです。「1トロイオンスあたりUSD」や「1グラムあたりEUR」と書いてください。オンスには注意が必要です。MetalAPIの
unitパラメーターでは、ounceとozは常衡オンス(28.35 g)を意味し、地金はトロイオンス(troy_oz、デフォルト)あたりで価格が付けられます。 - 時刻を表示する。 レスポンスの
timestampフィールドから気配値の時刻を表示してください。これはリクエストの時刻ではなく、データの時刻です。更新に遅延があるプランでは、価格の更新頻度を明記してください。 - 市場の取引時間に対応する。 スポットの金属と主要通貨は、ニューヨーク時間の日曜日17:00から金曜日17:00まで取引されます。週末の間、MetalAPIは金曜日の終値を返し続けるため、止まった価格がリアルタイムのように見えないよう「取引時間外」の注記を表示してください。
- 丸めは表示時だけにする。 計算では完全な精度を保ち、最後の最後で丸めてください。丸めたBidとAskから計算したスプレッドは、スプレッド自体の大きさに対して大きくずれることがあります。
- 逆転した気配値に備える。 独自の調整によって販売価格が買取価格を下回ることがあれば、それはバグとして扱い、修正されるまで見積もりの提示を停止してください。
- 価格が参考値であることを明確にする。 データAPIから取得した価格は情報であり、取引の申し込みではありません。顧客に表示する場合は、拘束力のある価格は決済時または取引確認書で確定した価格であることを明確にしてください。
これらをまとめた小さな例として、金の仲値、Bid、Askを1グラムあたりのユーロ建てで取得し、ラベルとタイムスタンプ付きで出力するコードを示します:
const res = await fetch(
"https://metalapi.com/api/v1/latest?base=EUR&unit=gram¤cies=XAU,XAU-BID,XAU-ASK",
{ headers: { Authorization: "Bearer " + process.env.METALAPI_KEY } },
);
const data = await res.json();
if (!data.success) throw new Error(data.error.code + ": " + data.error.info);
const r = data.rates;
const eur = new Intl.NumberFormat("en-GB", { style: "currency", currency: "EUR" });
const asOf = new Date(data.timestamp * 1000).toISOString();
console.log("Gold, EUR per gram, as of " + asOf);
console.log("Mid:", eur.format(r.EURXAU));
if (r["EURXAU-BID"] !== undefined && r["EURXAU-ASK"] !== undefined) {
console.log("You sell at (bid):", eur.format(r["EURXAU-BID"]));
console.log("You buy at (ask):", eur.format(r["EURXAU-ASK"]));
}用語のまとめ
| 用語 | 定義 |
|---|---|
| スポット | 即時受け渡しの価格。卸売市場では取引の2営業日後に決済 |
| Bid | 市場があなたから買い取る価格 |
| Ask / オファー | 市場があなたに売る価格 |
| 仲値(Mid) | (bid + ask) / 2。一般的な参照価格で、APIのデフォルト価格 |
| スプレッド | AskからBidを引いた差。仲値に対する割合やベーシスポイントで示されることが多い |
| ベーシスポイント | 0.01%、つまり1%の100分の1 |
| プレミアム | 現物商品について、ディーラーが参照価格に上乗せする金額 |
| トロイオンス | 31.1034768グラム。貴金属の価格の単位 |
実際に試すには、登録して無料のキーを取得すれば仲値を扱えます。BidとAskを含むプランは料金ページをご覧ください。APIドキュメントにはすべてのパラメーターが記載されており、データ形式と単位ガイドでは基準通貨、質量単位、逆数レートについて詳しく解説しています。
関連記事
MCPでClaudeとChatGPTを金のリアルタイム価格に接続する
MetalAPIのMCPサーバーで、Claude、ChatGPT、Cursor、VS Codeを金・金属のリアルタイム価格に接続。OAuthまたはAPIキーでの設定、ツール、安全性、クォータを解説します。
銅・アルミニウム・亜鉛・原油の価格をAPIで取得する:開発者ガイド
銅、アルミニウム、亜鉛、鋼、原油、天然ガスの価格をAPIで取得する方法を解説します。市場ごとの単位、APIの正規化、期近先物、単位と通貨の換算をコード例とともに紹介します。
貴金属価格APIの選び方:確認すべき12の質問
特定のベンダーに偏らない、貴金属価格APIの選定チェックリスト。データソース、鮮度、過去データ、単位、Bid/Ask、制限、料金、セキュリティ、利用規約、MCP対応を確認します。