私は金融データの分析を仕事にしていますが、外国為替の 1 分足ヒストリカルデータを扱ううえで、誰もがぶつかる大きな問題があります。 それは週末や休場日にデータが完全に欠落すること。
このギャップを放置しておくと、移動平均やボラティリティなどの指標計算がズレたり、チャートが途切れたり、バックテストの結果が信用できなくなったりします。 API からリアルタイムデータを取得する場合、休場中はそもそもデータが返ってこないため、これは避けて通れない課題です。
今回は、実務で使えるデータギャップの特定方法から安全な埋め方、システム化するコツまで、コードなしで分かりやすく解説します。
データギャップが起きる場面
外国為替市場は 24 時間取引されていますが、それでも週末や国際的な休場日は価格が動かず、取引データが発生しません。
多くのリアルタイム API は、データが存在しない時間を丸ごと省略して返すため、 タイムスタンプが飛び、データ系列が途切れてしまうのです。
これにより起きる問題は:
- 指標計算が正常に行えない
- チャートが不自然に途切れる
- バックテストの結果が歪曲される
- 分析自体の信頼性が落ちる
など、実務・研究どちらにも深刻な影響が出ます。
まずやるべきこと:ギャップの位置を特定する
データを埋める前に、どこが欠落しているかを正確に把握する必要があります。
1 分足のデータの場合、基本的なルールはただ一つ。 「次の足との時間差が 60 秒を超えたらギャップ」 これだけで、欠落区間を簡単に見つけられます。
週末や休場日は、長時間のギャップとして自動的に判別できるようになります。
実務で使える 3 つのデータ埋め方法
私が実際のシステムで使っているのは、「偽の相場を作らない」 3 つの方法だけです。
1. 前方埋め(前の値を引き継ぐ)
ギャップの直前の終値をそのまま継続して表示する方法です。 最も安定しており、バックテストで最も推奨されます。 無駄な変動を作らず、指標も歪みません。
2. 線形補間
前の値と次の値を滑らかにつなぐ方法。 チャートを自然に見せたいとき、レポートや可視化に適しています。
3. 欠落マークをつける
NaN やフラグで「ここはデータがない」と明示する方法。 監査や厳密な分析で必要になります。
実践的な使い分け
- バックテスト・戦術検証 → 前方埋め
- チャート表示・可視化 → 線形補間
- データ監査・記録 → 欠落マーク
この使い分けをするだけで、データの品質が劇的に向上します。
休場ギャップを自動化するコツ
手動で埋めていては限界があります。
実務のシステムでは:
- ヒストリカルデータを自動取得
- ギャップを自動判定
- ルールに従って自動埋め
- 埋めた箇所にマークをつけて記録
このフローを組むことで、休日でも途切れない安定したデータ環境を作れます。
最後に私が実務で守っているルール
- 長期の休場期間は無理に補間しない
- 埋めたデータには必ず目印をつける
- 偽のトレンドを作る補間は使わない
- バックテストでは前方埋めを基本とする
- データフォーマットは統一して管理する
これを守るだけで、分析の信頼度が大きく変わります。
まとめ
外国為替 1 分足の休場ギャップは、API の問題ではなく AllTick APIデータ処理の問題です。
ギャップを正しく特定し、状況に合った方法で埋め、自動化まで仕組み化すれば、 バックテストも指標計算も安定し、信頼できる分析ができるようになります。
データを「埋める」ことが目的ではなく、相場の性質を壊さずに連続性を保つことが最も重要なのです。