市場データAPIの鮮度を測る:取得時刻だけでは足りない

外部APIから取得した価格データは、受信時刻が新しくても市場側の生成時刻が古い場合があります。取得時刻、データ時刻、更新間隔、欠損、重複を記録し、バックテストや執行分析に使えるデータ鮮度を定量的に検証する方法を整理します。

APIで取得できることと分析に使えることは別です

外部APIを分析基盤へ接続すると価格や板情報を自動収集できますが、レスポンスが返った時刻だけではデータの新しさを判断できません。配信元で生成された時刻と、自分のシステムが受信した時刻には差があり、さらに配信仕様による遅延も存在します。この差を無視すると、実際には古い価格を同時刻の市場情報として扱う可能性があります。

二つの時刻と更新間隔を保存する

最低限記録したいのは、データ自身のタイムスタンプとAPIレスポンスを受信した時刻です。両者の差をデータ遅延として計算し、さらに前回データからの更新間隔を保存します。同じタイムスタンプが連続する回数も数えれば、APIへ頻繁に問い合わせても実データが更新されていない状態を識別できます。タイムゾーンは保存時に統一し、変換前の情報も残すと検証しやすくなります。

欠損と重複も同じログで測る

APIは通信成功だけを品質指標にせず、期待した時間間隔に対する欠損率、タイムスタンプの逆転、重複レコード数も記録します。ティックや板データでは更新頻度そのものが流動性の観測値になるため、欠損を単純補間すると市場状態まで書き換える恐れがあります。欠損フラグを別列で保持すれば、補正前後を比較できます。

執行ログと結合して価値が生まれる

最終的にはAPIデータの時刻をEAの発注時刻、約定時刻、Bid、Ask、スリッページと突合します。これにより、約定価格との差が市場変動によるものか、参照データの遅延によるものかを切り分けやすくなります。API導入の価値はデータ量ではなく、価格情報の鮮度と執行品質の関係を継続して測定できる点にあります。

ABOUTこの記事をかいた人

MetaTrader 5 向けの検証ツールを開発しています。個人開発です。 扱っているのは売買の方向を示すシグナルではありません。スプレッドや手数料といったコスト、スリッページを含む約定の実態、口座全体のエクスポージャー——損益の構造側を数値で可視化する道具です。 実運用の記録は GogoJungle の REAL TRADE で第三者計測・公開しています。 詳細は「このサイトについて」をご覧下さい。 ご要望はこちらで承ります。