ECB参照レートの解説
欧州中央銀行(ECB)は、営業日ごとに1回、公式な外国為替参照レートを公表している。これが何を意味し、ライブのスポットデータとどう違い、APIからどう読み取るかを説明する。
/v1/latest/USDを呼び出してsource: ecb_dailyが返ってきたとき、それは欧州中央銀行のユーロ外国為替参照レートを読んでいる — CET16:00頃に営業日ごとに1回公表され、参照および情報提供を目的としており、取引には使えない。これはEURペアにとって最も権威ある日次のFX数値だが、あくまで1回のスナップショットであり、市場はCET16:00以降も動き続け、フィックスは翌営業日まで更新されない。
source: ecb_dailyとして表し、live(集約スポット)やfred_daily(米連邦準備制度の日次系列)とは区別される。is_forward_filled: trueが付く。ECB参照レートとは何か
欧州中央銀行は営業日ごとに、ユーロ外国為替参照レートの一式を公表している。これらはCET16:00頃、欧州中央銀行制度の内外の中央銀行との協議プロセスを通じて算出される。レートはその時点でのコンセンサス・ミッドマーケット値を表しており、ECB自身の文書が明記するとおり、情報提供および参照目的のみに用いることを意図している。
これらは公的機関に由来し、固定された透明なスケジュールで公表されるため、EU域内の金融契約、会計、規制報告で広く使われている。APIレスポンスでsource: ecb_dailyを見たとき、まさにこれを読んでいることになる。
/v1/latestレスポンスには、これを確認するnoticeフィールドが含まれる:「Indicative rates, not for settlement. Source: incl. ECB statistics.」APIにおける3つのソースクラス
APIのすべてのレスポンスには、そのレートがどのデータクラスに由来するかを示すsourceフィールドが含まれる。3種類ある:
3つ目のクラスであるfred_dailyは米連邦準備制度の日次系列に由来し、連邦準備制度が独自の参照値を公表しているUSDペアで最も重要になる。ecb_dailyと似た頻度で、営業日ごとに1回、米国の祝日には欠落がある。
ECB由来のレスポンスを読む
任意のベース通貨で最新レートをリクエストし、sourceを確認すれば何を見ているかがわかる:
すべてのレスポンスに2つのタイムスタンプフィールドが現れる。data_updated_atは元のレートがデータストアに最後に書き込まれた時刻だ。ecb_dailyの場合、直近の営業日のCET16:00頃になる。timestampはAPIがレスポンスを構築した時刻だ。レスポンスをキャッシュするなら、鮮度を追跡すべきフィールドはdata_updated_atだ。
この最初のリクエストはキーなしで動く。スケジュールされたジョブやアプリケーションで呼び出すようになったら、無料キーを作成してアカウント単位のクォータを得て、サーバー側に保管する。
フィックス間、週末、フォワードフィル
ECBフィックスは1日1回のスナップショットだ。CET16:00頃の公表から翌営業日のフィックスまでの間、ecb_dailyのデータは更新されない — 日中や夜間の市場変動は反映されない。ECBは週末や祝日にも公表しないため、土曜日や日曜日のリクエストには金曜日のフィックスが返る。APIはis_forward_filledフィールドで非公表日を扱う:
is_forward_filledがtrueのとき、レスポンス中のレートは直前の営業日から持ち越された最後の公表値だ。新しい観測値ではない。多くの用途(週末にレートを表示する、チャートを埋めるなど)ではこれで問題ない。会計や監査証跡のように、特定の日に実際にフィックスが存在したかを記録する必要がある場合は、このフラグを確認すべきだ。
liveソースは取引週を通じて約60秒ごとに更新される — ECBの日次フィックスの合間や夜間も含む。CET16:00昨日時点ではなく、今現在の市場を反映するレートが必要なら、レスポンスにsource: liveが含まれるか確認するとよい。Pythonでsourceを確認する
レートを読み取り、sourceによって表示方法を分岐させるのはよくあるパターンだ:
1999年までの履歴
ECBはユーロ導入時にEXRシリーズを開始した。APIは日付指定エンドポイント/v1/{date}/{base}とレンジエンドポイント/v1/rangeを通じてこの全履歴を公開している。どちらも該当箇所にはis_forward_filledを返す。任意の期間について、特定の通貨ペアの時系列を取得できる:
パラメータ名に注意:start_dateとend_date(スネークケース)、symbolsはカンマ区切りの文字列だ。レンジは公表された営業日ごとに1行を返し、各行に固有のsourceとis_forward_filledが付く。週末の日付は行として含まれない。
ECBフィックスは営業日ごとの1つの観測値だ。ライブスポット、フォワードフィル、三角測量によるクロスレートは、すべてそのアンカーを取り巻く文脈にすぎない。
sourceとmarket_sessionを読んでみる。履歴と自分のクォータが必要になったら、無料キーは月10,000コール — カード不要。