2026年10月24日、金が1トロイオンスあたり$3,996.00、銀が$53.9171のとき、金銀比価は74.1になります。比価は金価格を銀価格で割った値で、どちらも1トロイオンスあたりの米ドル建てです。
APIで比価を計算する
計算には金価格と銀価格が必要です。Narwhalはコモディティのスポット APIで両方を返し、各価格の単位はtroy_ounceです。結果は、金1オンスで銀が何オンス買えるかを表します。計算全体を通して、金を分子、銀を分母にしてください。
- APIキーを取得 無料のAPIキーを取得し、環境変数
NARWHAL_API_KEYに保存します。スクリプトはこの変数を読み取り、Authorization: Bearer YOUR_KEYヘッダーでキーを送信します。 - 金と銀の価格を選ぶ 金には
GET /v1/commodities/spot/XAU/USD、銀にはGET /v1/commodities/spot/XAG/USDを使います。リクエストは別々ですが、どちらの価格も1トロイオンスあたりの米ドルなので、通貨と単位が揃っています。 - 金を銀で割る Pythonスクリプトを実行して各レスポンスの
priceを読み取り、金を銀で割ります。出力には比価と並んで両方の入力価格が含まれるため、計算を入力値とともに確認できます。import os import requests H = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"} API = "https://api.narwhalapi.com/v1/commodities/spot" def price(code): return float( requests.get(f"{API}/{code}/USD", headers=H, timeout=10).json()["price"] ) gold, silver = price("XAU"), price("XAG") print(f"gold {gold:.2f} / silver {silver:.4f} = {gold / silver:.2f}") - 結果を読む 2026年10月24日の例では、出力は
gold 3996.00 / silver 53.9171 = 74.11です。比価は金1オンスあたりの銀のオンス数として読み、2つの入力価格は1トロイオンスあたりの米ドル額です。
スクリプトでは、price("XAU")が金、price("XAG")が銀を読み取ります。この関数は各金属のコードと/USDをコモディティのスポットURLに付け足し、JSONレスポンスのpriceフィールドを数値として読み取ります。最後の行で、金価格、銀価格、その商を並べて出力します。スクリプトは比価を小数点以下2桁、金を2桁、銀を4桁で表示します。これらの桁数は出力表示にのみ適用され、割り算にはレスポンスから読み取った価格の値そのものを使います。金銀比価が必要な計算ではこの商を使い、入力に立ち戻りたいときは個々の価格も保持してください。
スプレッドシートで計算する、またはオンラインで確認する
金銀比価ページを開くと、ウェブサイト上で比価を確認できます。2回のAPIリクエストを自分で行わずに数値だけ見たいときは、これが最短の方法です。金と銀の価格をスプレッドシートに入力して、そこで割り算することもできます。
金価格をB1、銀価格をB2に入力します。どちらも1トロイオンスあたりの米ドルです。比価を表示したいセルに数式を入力し、入力セルの横にラベルを付けて各金属がわかるようにします。
=B1/B2別の価格の組を入力するときは、B1の金の入力とB2の銀の入力を置き換えます。数式は金を銀で割る形のままにします。結果を比べたい場合は、シートとAPIでの計算に同じ価格の組を使ってください。スプレッドシートの数式は入力をそれらのセルから取り、Pythonスクリプトは入力をスポットのレスポンスから取ります。
状況に応じた方法の選び方
| 状況 | 適した方法 | 理由 |
|---|---|---|
| 比価を読む | 金銀比価ページ | ウェブサイトで数値を確認 |
| グラフやモデルを作る | 金と銀の日足 | 同じ日付の価格同士を割る |
| アラートを設定する | 比価を保存して比較する | アラート用に保存した比価を比較する |
グラフやモデルには、GET /v1/commodities/spot/XAU/USD/barsとGET /v1/commodities/spot/XAG/USD/barsを使います。interval=1dを指定し、両方の金属に必要な開始日と終了日を渡します。金と銀に同じ期間を指定し、同じ日付のバー同士で金を銀で割ります。各ペアが、グラフやモデルのその日の比価の入力になります。スポットの計算と同じく、履歴全体で金の系列を分子にしてください。アラートの場合は、計算した比価を保存し、コモディティ価格アラートの手順に従って比較します。
2つの価格は同じ時点のものが必要ですか?
はい、同じ時点の価格を使ってください。時点が異なると比価にノイズが入るためです。2つのスポット価格は同時に取得するか、同じ日付の日足を使います。比価の履歴を作るときは、割り算の前に各金のバーをその日付の銀のバーと組み合わせます。
スポット比価では、金と銀のリクエストを同時に行います。日次系列では、日付を使って入力を対応付けます。ある日付の金価格は、同じ日付の銀価格と組み合わせます。割り算は対応付けた各ペアに適用します。
銀を別の通貨で使ってはいけないのはなぜですか?
比価が通貨に左右されないのは、両方の価格が同じ通貨のときだけです。この計算では両方のリクエストでUSDを使います。金がUSD、銀が別の通貨の場合、たとえ両方が1トロイオンスあたりで表示されていても、この条件を満たしません。通貨と単位の両方が一致している必要があります。
比価はライブですか?
はい。コモディティのスポット価格はすべてのアカウントでライブなので、比価は市場とともに動きます。結果を読むときは、各価格のtimestampを確認してください。割り算は変わらず、金価格を銀価格で割ります。どちらも1トロイオンスあたりの米ドルです。
計算例:金銀比価を計算する
2026年10月24日の例では、金が1トロイオンスあたり$3,996.00、銀が$53.9171です。まず金価格から始め、それを銀価格で割ります。計算では与えられた銀価格をそのまま保持し、得られた比価はPythonスクリプトと同じ精度で表示します。
| 手順 | 2026年10月24日 |
|---|---|
| 金価格 | 1トロイオンスあたり$3,996.00 |
| 銀価格 | 1トロイオンスあたり$53.9171 |
| 金を銀で割る | 3,996.00 / 53.9171 = 74.11 |
| 比価を読む | 金1オンスで銀約74オンスが買えます |
公開。