バックテスト用FXティックデータ:入手先、品質チェック、落とし穴 2026年10月31日 – Posted in: Arbitrage Software, Forex trading
バックテスト用FXティックデータ:入手先、品質チェック、落とし穴
バックテストの誠実さは、投入する価格データの質を超えることはできません。スキャルピングやアービトラージなど、数pipsの範囲で勝負する戦略では、1分足では不十分です。実際のビッドとアスクの気配の連続が必要になります。本ガイドでは、FXティックデータの入手先、同じ通貨ペアでも2つのデータセットが決して一致しない理由、結果を信頼する前に実施すべき品質チェック、そして生のティックをライブ取引に近いテストへと仕上げる方法を解説します。
FXティックデータとは
簡単に言うと:FXティックデータとは、通貨ペアのすべての気配変化の記録です。タイムスタンプ(通常はミリ秒単位)、ビッド価格、アスク価格、そして場合によっては各サイドの提示数量が含まれます。各期間の始値・高値・安値・終値しか残さないバーデータとは異なり、ティックデータはすべての価格更新の順序、タイミング、スプレッドを保持します。これこそが短期戦略が実際に取引している対象です。
典型的な行は次のようになります:
これは時刻、ビッド、アスク、そしてビッドとアスクで提示されている数量(ソースが提供している場合、単位は百万)です。このティックのスプレッドは0.7 pipsです。1秒後にはさらに5行あるかもしれませんし、1行もないかもしれません。
何よりも先に理解しておくべきことがあります。スポットFX市場には中央の取引記録(テープ)が存在しません。株式や先物には、公式な約定の順序を公表する取引所があります。FXは多数の銀行、ECN、ブローカーの間で相対取引(OTC)として取引され、それぞれが独自の気配を配信しています。つまり、あらゆるFXティックデータセットは、ひとつの取引場所またはひとつのアグリゲーターから見た市場の姿にすぎません。2つのソースが同じ瞬間に1pipの数分の一、数十ミリ秒の差で食い違うことがあり、それでも両方がそれぞれの取引場所にとっては正しい、ということがあり得ます。
この事実が本ガイドの大部分の前提になっています。「このティックデータは正確か?」は間違った問いです。有益な問いは、どの約定場所にとって正確なのか、どのように記録されたのか、そしてどのようにクリーニングされたのか、です。
気配ティックと約定ティック
ほとんどのFXデータセットは気配ティック、つまり最良ビッドまたは最良アスクの変化です。これらは約定ではありません。気配は1件の取引もなく10回変わることがあり、大口の取引が板の最良気配をまったく変えないこともあります。先物ベースや取引所上場のFXデータの中には約定ティック(直近価格と数量)を含むものもありますが、スポットFXのバックテストではビッドとアスクの気配が必要です。注文は買いならアスク、売りならビッドで約定するからです。
ティックデータとバーデータ:補間が隠すもの
「全ティック」でテストすると謳う多くのバックテストツールは、実は記録されたティックをまったく使っていません。1分足を取り込み、各バーの内部に合成ティックを生成しています。典型的には始値から高値と安値を経て終値へと至る滑らかな経路です。結果はティックデータのように見えますが、バーがもともと持っていた以上の情報は何も含まれていません。

なぜこれが重要なのかを説明します。EUR/USDの1分足を考えます。始値1.08500、高値1.08540、安値1.08480、終値1.08520。ロングポジションを保有しており、利確は1.08530、損切りは1.08485です。どちらの水準もバーの範囲内にあります。このトレードは勝ったのでしょうか、負けたのでしょうか?
- 安値が先に来た場合、1.08485で損切りにかかり、トレードは1.5 pipsの損失です。
- 高値が先に来た場合、1.08530で利確となり、トレードは3 pipsの利益です。
バーからは判断できません。ジェネレーターは順序を選び(多くの場合「陽線は先に安値へ向かう」といった固定ルールで)、バックテストは一部がコイン投げにすぎない結果を自信満々に報告します。100 pipsの目標を持つスイング戦略ではほとんど問題になりません。しかし、利確と損切りがエントリーから数pips以内にある戦略では、トレードの大部分の結果がこれで決まってしまいます。
補間は、記録されたティックが保持している3つの要素も消し去ります:
| 戦略に必要なもの | 記録されたティック | バーから生成されたティック |
|---|---|---|
| 1分間の中での高値と安値の順序 | 正確 | ルールによる推測 |
| 価格ジャンプ(1回の気配で1.5 pipsの変動) | あり | 小さなステップに平滑化 |
| すべての気配のスプレッド | あり(ビッドとアスク) | 通常は単一の固定スプレッド、またはバーごとに1つの値 |
| 気配間のタイミング(静かな秒と活発な秒) | あり | 等間隔または捏造 |
| 指標発表やロールオーバー前後の気配の動き | あり | 失われる |
ジャンプはレイテンシーアービトラージにとって決定的なポイントです。シグナルそのものがジャンプだからです。1.08500から1.08515まで15の小さなステップで進む合成経路ではシグナルがまったく発生しません。そのため、ライブでは取引するはずの戦略がテストでは動かないように見えたり、押し目買いの戦略が実際より良く見えたりします。
FXティックデータの入手先
現実的なソースは5つあります。コスト、深さ、そして何より、実際に取引する価格とどれだけ一致するかが異なります。
| ソース | 得られるもの | 強み | 制約 |
|---|---|---|---|
| 自分で記録する(ブローカーのAPIまたはFIXセッション経由) | 口座が受信したすべての気配と、ローカルの受信時刻 | 約定場所と完全に一致。タイムスタンプとフォーマットを自分で管理できる | 記録を始めた時点からしか存在しない。安定したマシンが必要。接続が切れると欠損が生じる |
| ブローカーの履歴ダウンロード | ブローカー自身のフィードによる過去のビッド/アスク | 自分の約定場所に近い。数年分の履歴があることが多い | 品質にばらつきがある。古いティックを間引いたりフィルタリングしたりするブローカーもある。タイムスタンプがサーバー時間の場合がある |
| 無料の公開アーカイブ(一部のECNブローカーやアグリゲーターが提供。例:Dukascopy、TrueFX、HistData.com) | 主要通貨ペアのビッド/アスクティック。2000年代まで遡れることが多い | 無料で履歴が長く、リサーチや頑健性テストに適している | ひとつの取引場所またはアグリゲーターの視点であり、あなたのものではない。スプレッドや気配頻度はブローカーと異なる。各ソースのタイムゾーン規則を確認する必要がある |
| 商用データベンダー | クリーニング・正規化済みの複数取引場所のティック履歴 | 手法が文書化されている、フォーマットが一貫している、サポートがある | 高価。それでもブローカーのフィードではない |
| リファレンス/高速フィード(例:ロンドン、東京、ニューヨークのノードで記録されたBJF Feedのティック履歴) | 高速で独立したリファレンス価格ストリーム | 低速フィードと高速フィードを比較する戦略のテストに必要 | アービトラージのテストではブローカー自身のティックと組み合わせる必要がある |
実践的なルール:リサーチには入手できる最も長いクリーンな履歴を使い、最終判断には自分の約定場所に最も近いデータを使います。ある無料アーカイブでしか機能せず、ブローカーで記録したティックでは失敗する戦略は、機能していません。現実的なコストを含めて両方で持ちこたえる戦略は、意味のあるテストに合格したと言えます。
数か月にわたって戦略を運用する予定なら、戦略が完成する前であっても、今日からブローカーのティックの記録を始めてください。最終チェックにおいては、自分のフィード3か月分のほうが、他人のデータ10年分よりも価値があります。
ブローカーのフィードとリファレンスフィード
各取引場所が独自の気配を配信しているため、同じ瞬間でも場所によって少しずつ違って見えます。その違いには一定の構造があります:
- 価格のずれ。仲値は流動性の高い時間帯には通常1pipの数分の一以内で一致しますが、薄商いの相場、ロールオーバー時、指標発表の前後には乖離します。
- 時間のずれ。リクイディティプロバイダーから価格を集約し、独自のマークアップを上乗せし、リスクチェックを行うブローカーは、高速なリファレンスフィードより遅れて値動きを表示することがよくあります。遅延は数ミリ秒のこともあれば、数百ミリ秒に及ぶこともあります。
- 気配の頻度。すべての変化を送るフィードもあれば、間引く(たとえば1銘柄あたり100 msに最大1回の更新)フィードもあります。間引かれたフィードはティック数が少なく、ジャンプが大きくなります。
- スプレッドの特性。生のECNフィードとマークアップ付きのリテール向けフィードでは、平均スプレッドが丸1pip異なることがあり、ロールオーバー時にはさらに大きく異なります。

ほとんどの戦略にとって、これは実際に取引するフィードでテストすべきだということを意味します。レイテンシーアービトラージにとっては、さらに強い意味があります。戦略の優位性そのものが2つのフィードの差なので、同じ時計によるタイムスタンプで記録された両方のストリームが必要です。1つのベンダーのティックだけでアービトラージ戦略をテストしても無意味です。フィードをティック単位で比較する方法はFXアービトラージとHFTにおけるティック比較の記事で、リファレンス側が高速でなければならない理由はアービトラージ用高速データフィードのガイドで解説しています。
タイムスタンプ、タイムゾーン、夏時間
タイムスタンプの問題は、不正確な価格よりも多くの「気づかれないバックテストの誤り」を引き起こします。確認すべきことは4つです:
1. データはどのタイムゾーンか?
一般的な規則は、UTC/GMT、米国東部時間(夏時間ありまたはなし)、そしてブローカーの「サーバー時間」です。多くのブローカーは、取引日がニューヨーク時間17:00に終わるよう、サーバー時間を冬はGMT+2、夏はGMT+3に設定しています。戦略が「08:00のロンドンオープンで取引する」となっている場合、1時間のずれがあると別の相場環境で取引することになります。
2. 夏時間は適用されているか、どの地域のものか?
欧州と米国は異なる日付で時計を切り替えます。3月の約3週間と、10月末から11月初めにかけての約1週間は、ロンドンとニューヨークの時差が5時間ではなく4時間になります。誤ったルールで変換されたデータセットでは、その期間中、セッションに基づくロジックが1時間ずれます。この誤差は小さく、季節的で、資産曲線で気づくのは非常に困難です。
3. タイムスタンプはどこで付与されたか?
ティックに付く時刻は、取引場所が気配を生成した時刻、取引場所のサーバーから送出された時刻、あるいはあなたのマシンが受信した時刻のいずれかです。トレンド戦略ではこの違いは問題になりません。レイテンシーに敏感な戦略ではそれがすべてです。2つのフィードを比較できるのは、両方が同じ時計でタイムスタンプされている場合だけです。理想的には、NTPまたはPTPで同期した自分の受信時刻を使います。
4. 分解能と順序
秒単位のタイムスタンプは短期の分析には不十分です。数十の気配が同じ秒を共有することがあり、ソートするとその秒内の順序が失われる可能性があります。ミリ秒(またはそれより細かい)分解能を使い、元のファイルの順序を同順位の判定に使うために保持してください。
データセットを信頼する前の品質チェック
生のティックデータには必ず誤りが含まれています。目標は完璧さではなく、データに何が含まれているかを把握し、テストを歪めるものを取り除くことです。私たちが新しいデータセットを最適化に使う前に必ず実施しているチェックは次のとおりです:
| チェック項目 | 確認する内容 | 一般的な対処 |
|---|---|---|
| 時刻の単調性 | タイムスタンプが逆行している | 原因が分かっている場合のみ再ソートする。そうでなければファイルにフラグを付ける |
| 重複 | 同一の行(時刻、ビッド、アスクが同じ) | 完全な重複は削除する。時刻の異なる同一価格は残す |
| 逆転またはゼロのスプレッド | アスク ≤ ビッド | 削除する。頻発する場合はソースの故障やフィードの混在を示している |
| 異常なスプレッド | 既知のイベント以外で、スプレッドが1時間ごとの中央値の、たとえば10×を超えている | フラグを付ける。ロールオーバーや指標発表と一致すれば残し、孤立していれば削除する |
| 価格スパイク | 直近のボラティリティの何倍もの仲値のジャンプが、数ティック以内に反転している | 孤立したスパイクは削除する。本物の指標発表による値動きは決してフィルタリングしない |
| 欠損 | 流動性の高い時間帯に60秒を超えてティックがない | 欠損を記録し、その期間をテストから除外するか、その中のトレードにマークを付ける |
| 停滞した気配 | 他のソースが動いている間、同じビッド/アスクが数分間繰り返されている | 欠損として扱う |
| 週末・祝日のティック | 金曜のクローズから日曜のオープンまでの間の気配 | 削除する。丸1時間分が現れる場合はタイムゾーンを確認する |
| ティック密度 | 1時間あたりのティック数を、他の日の同じ時間帯と比較 | 急激な減少は間引きや記録の問題を示唆している |
| 価格のスケールと桁数 | 4桁と5桁の気配、小数点以下3桁のJPYペア | ソースを結合する前に正規化する |
シンプルで頑健なスパイク判定ルール:直近200ティックにおける仲値変化の移動中央絶対偏差(MAD)を計算し、変化がMADの約15×を超え、かつ次の3ティック以内に大部分が戻っているティックにフラグを付けます。本物の指標発表による値動きは3ティックで戻ることはありませんが、誤ったプリントはたいてい戻ります。しきい値は通貨ペアごとに調整し、削除した内容を必ず確認してください。過剰なフィルターは、アービトラージ戦略や指標トレード戦略がまさに必要とする値動きを削除してしまうからです。
ステップ・バイ・ステップ:バックテスト用ティックデータの準備

変動スプレッド:固定スプレッドが隠すコスト
多くのテストは、EUR/USDで0.8 pipsといった単一のスプレッド値を使います。実際のスプレッドは一日中変動します。ロンドンとニューヨークが重なる時間帯は狭く、アジア時間は広く、日次ロールオーバーや主要指標の発表前後の数分間は数pipsにまで広がります。原因についてはFXスプレッドが拡大する理由のガイドで解説しています。
固定スプレッドは系統的に誤っています。戦略はランダムな時刻に取引するわけではないからです。ブレイクアウト戦略はボラティリティが高まったとき、まさにスプレッドが広がるときにシグナルを出しがちです。静かなアジア時間に取引する平均回帰戦略は、1日の平均を上回るスプレッドに直面します。記録されたビッド/アスクのティックを使えば、各トレードはその瞬間に実際に提示されていたスプレッドを支払うことになります。
計算例(説明用の数値)。あるスキャルピング戦略が、EUR/USDで1スタンダードロット(1 pipあたり約$10)により月に400回の往復取引を行うとします。
1.1 pipsという数値は仕組みを示すための例であり、特定のブローカーの実測値ではありません。戦略のトレードが実際に直面する平均スプレッドを、ティックデータで測定してください。
データの前提が結果をどれだけ変えるか
各前提の影響を示すため、下のチャートでは1つの仮想的な短期戦略を取り上げ、データと約定モデルだけを変えています。数値は説明用であり、バーベースのテストから現実的な約定を伴うティックベースのテストへ移行したときに私たちが日常的に目にする効果の方向とおおよその大きさを反映するように作られています。特定の戦略の結果ではありません。

重要なのはパターンです。現実的な前提を加えるたびにエッジの一部が失われ、短期戦略では最後のステップである約定時間が最も大きく削ることがよくあります。戦略が4つのステップすべてを経てもプラスの結果と妥当なトレード数を保てるなら、小規模なライブテストに進む価値があります。最初の列でしか良く見えないなら、そのエッジは市場ではなくデータモデルに由来するものです。
ティックは必要条件であって十分条件ではない:約定時間
完璧なティックデータセットであっても、すべての注文がトリガーとなったティックの価格で約定するなら、テストは楽観的になります。ライブでは、判断から約定までの間に必ず遅延があります。プラットフォーム、ネットワーク、ブローカーの処理による遅延です。その間にも相場は動き続けます。静かな日であれば影響は1pipの数分の一ですが、急な値動きの最中には勝ちトレードと負けトレードを分けるほどの差になります。
正しいモデルは、約定時間のうちリクエスト部分の長さだけティックストリームを先に進め、その後の時点で提示されていたビッドまたはアスクで約定させます。これにより、スリッページの数値を推測することなく、プラスとマイナスの両方の現実的なスリッページが得られます。このモデル、レイテンシーの4つの構成要素、計算例についてはレイテンシーアービトラージのバックテストにおける約定時間のギャップの記事で、ライブ約定でのスリッページの測定方法はFXスリッページの解説で説明しています。
これは「なぜライブの結果がバックテストと違うのか?」という質問に対する最も一般的な答えでもあります。データは問題なかったのに、約定モデルが遅延ゼロを前提としていたのです。目安として、測定した約定時間でテストし、さらにその1.5〜2倍の値でもテストするとよいでしょう。高いほうの値で崩れる戦略は脆弱です。
保存、フォーマット、取り扱い
ティックデータは容量が大きく、選択するフォーマットはディスク容量と、オプティマイザーがデータを再生する速度の両方に影響します。活発な主要通貨ペア1つあたりの概算は次のとおりです:
桁数レベルの概算です。圧縮された列指向フォーマットでは、ティックファイルは通常さらに数分の一に縮小されます。
- 価格はポイント単位の整数で保存する(1.08512 → 108512)。価格を比較する際の浮動小数点の丸め誤差を避けられ、サイズも半分になります。
- 銘柄と日付で分割する。1銘柄1日1ファイルにすると、欠損チェック、部分的な再読み込み、並列最適化が簡単になります。
- 生ファイルには手を加えない。クリーニングは別のデータセットに対して行い、クリーニングログを保存しておけば、どの結果も再現できます。
- 受け渡し用にはCSVを残す。タイムスタンプ、ビッド、アスクを含むシンプルなフォーマットは、ほとんどのツールで読み込めます。たとえばSharpTrader Optimizerは、タイムスタンプ、ビッド、アスクを含むCSVで独自のティックデータを受け付けます。
よくある落とし穴
- 補間されたバーを「ティックデータ」と呼ぶ。使っているツールが記録された気配を再生しているのか、バーから生成しているのかを確認してください。
- 仲値でテストする。仲値のみのデータセットはスプレッドを完全に無視します。コストはビッドとアスクから計算しなければなりません。
- 1つのテストでソースを混在させる。2つのベンダーのファイルを結合すると、継ぎ目で人工的なジャンプが生じ、1つの期間に異なるスプレッド環境が混在します。
- タイムゾーンと夏時間を無視する。セッションフィルターや日次ロールオーバーのロジックが気づかないうちにずれます。
- 欠損を捏造した価格で埋める。実際の気配が存在しなかった障害時間中に、戦略が「取引」できてしまいます。欠損は代わりに除外してください。
- 過剰なクリーニング。大きな値動きをすべて削除すると、一部の戦略がまさに取引するために作られている指標発表時のスパイクやジャンプが消えてしまいます。
- レイテンシーゼロの約定。シグナルのティックでの完璧な約定は、ほぼあらゆる短期戦略を利益が出るように見せてしまいます。
- 全データで最適化する。アウトオブサンプル期間とウォークフォワードのチェックがなければ、大きなパラメータグリッドは過去にだけ当てはまり、それ以外には通用しないカーブを見つけ出すだけです。
SharpTrader Optimizerのティックデータ
私たちは本ガイドのポイントを踏まえてSharpTrader Optimizerを開発しました。補間されたバーではなく実際の過去のビッド/アスクティックを再生し、スプレッドはすべてのティックから取得し、注文の約定時間をミリ秒単位で設定できるため、各約定はその遅延後のティックストリームから得られます。ロンドン、東京、ニューヨークのノードで記録されたBJF Feedのティック履歴を使うことも、ご自身のブローカーのティックをCSVでインポートすることもできます。パラメータグリッドはすべてのCPUコアで実行されます。1つの通貨ペアの1年分が数千万ティックに及ぶ場合、これは重要です。
すでに独自の戦略をお持ちなら、SharpTraderで独自のボットをテストする記事で、コードからティックレベルの最適化までの一連のワークフローをご覧いただけます。
戦略が実際に直面するティックでテストしましょう
実際のビッド/アスクティック、すべての気配での変動スプレッド、そしてミリ秒単位のブローカーの約定時間。この3つの入力が、短期戦略がライブ取引で生き残れるかどうかを決めます。
無料アービトラージスキャナー+短いメール講座
無料スキャナーのリンクと、Boris からの短く実践的なメールをお届けします。コスト差し引き後の価格差が本当に意味すること、実際の資金を投じる前に戦略をテストする方法、あなたの市場に合うツールについて。誇張はありません。 メールは英語で配信されます。
よくある質問
FXティックデータとは何ですか?
FXティックデータとは、通貨ペアのすべての気配変化を、タイムスタンプ、ビッド価格、アスク価格、場合によっては提示数量とともに記録したものです。バーデータでは失われる、価格更新の正確な順序、タイミング、スプレッドが保持されます。
無料のFXティックデータはどこで入手できますか?
一部のECNブローカーやアグリゲーターは主要通貨ペアの過去のビッド/アスクティックを無料で公開しており、多くのブローカーでは自社の履歴をダウンロードできます。無料アーカイブはリサーチに役立ちますが、ひとつの取引場所の価格を示しているにすぎないため、最終結果はご自身のブローカーで記録したティックで確認してください。
バックテストにはティックデータのほうが1分足データより優れていますか?
利確と損切りが数pips以内にある戦略、スキャルピング、指標トレード、アービトラージでは、はい、優れています。1分足は高値と安値の順序、価格ジャンプ、実際のスプレッドを隠してしまいます。損切り幅の広いスイング戦略であれば、現実的なスプレッドを適用したクリーンな1分足データで十分なことが多いです。
2つのデータソースでバックテスト結果が異なるのはなぜですか?
スポットFXには中央の取引記録がないため、どのソースも異なる取引場所からの視点です。スプレッド、気配頻度、タイムゾーン、夏時間の扱い、クリーニングルールがすべて異なります。2つのデータセットの1時間ごとの価格とスプレッドを比較して原因を突き止め、ご自身の約定場所に最も近いソースを信頼してください。
FXティックデータ1年分にはどれくらいの保存容量が必要ですか?
活発な主要通貨ペア1つで、年間およそ数千万ティックです。CSVテキストで約2 GB、圧縮前のコンパクトなバイナリ形式で約0.6 GBになります。複数の通貨ペアを数年分そろえると、すぐに数十ギガバイトに達します。
ティックデータのバックテストで約定が完璧になるのはなぜですか?
テストが各注文を、シグナルを生成したティックで約定させているからです。実際の注文はブローカーに届くまでに時間がかかり、その間に価格は動きます。ティックストリームを先に進めて後の時点のビッドまたはアスクで約定させることで約定時間をモデル化し、測定した遅延の1.5〜2倍でもテストしてください。
ビッドとアスクの両方が必要ですか、それとも仲値で十分ですか?
両方が必要です。買いはアスクで、売りはビッドで約定するため、スプレッドはすべてのトレードにかかる実際のコストです。仲値のみのデータセットはそのコストを取り除いてしまい、短期戦略を実際より良く見せてしまいます。
本記事は教育目的のものであり、投資助言を構成するものではありません。イメージまたは説明用と記載された例、チャート、数値は、特定のブローカーや戦略を測定したものではありません。データソース、規則、コストはプロバイダーによって異なり、時間とともに変化します。