記事概要

定量取引の実習や個人開発をしている方の多くが、共通の悩みを抱えています。過去分足データで戦略をバックテストすると好成績を出すのに、実際にリアルタイム相場で稼働させると売買シグナルや収益曲線が大きく乖離する現象です。

最初は戦略の計算式やパラメータに不具合があると思い、長時間コードを修正しても改善しないケースが大半です。複数回実習・検証を重ねた結果、乖離の根本原因は戦略ではなく、過去分足 K 線とリアル Tick データの基礎ルール不一致にあることが分かりました。米国株は複数タイムゾーン、前場後場取引といった特有の仕組みがあり、データ由来の誤差がさらに拡大しやすい特徴があります。

バックテストと実盤を分断する 4 つのデータ課題

1. 分足 K 線は圧縮データ、瞬間的な価格変動情報が欠落する

1 分足のローソク足は 1 分間に発生した全ての Tick 取引を集約したもので、始値・高値・安値・終値と出来高だけを記録し、途中の急騰・急落、反転の細かい動きは完全に失われます。

短期リバーサルやモメンタム戦略のように瞬間的な価格転換点を捉えるロジックの場合、過去の圧縮分足ではシグナルが発生しないのに、リアル Tick では複数回トリガーするといった差が生まれ、売買回数や最終的な収益に大きなズレが生じます。

2. 複数の時間基準が混在し、時系列にズレが発生する

米国株の相場データには取引所時間、UTC 標準時間、サーバーローカル時間の 3 種類が存在し、開発初心者が混同しやすいポイントです。

バックテスト側は取引所時間で指標計算を行い、実運用コードはサーバーローカル時間を参照している場合、データ参照ウィンドウが常にずれ続けます。数分の時差でも移動平均線、出来高集計、売買シグナルに影響を与え、長期間稼働すると収益差が拡大します。

私たちの実習ルールとして、全ての相場データを事前に取引所時間に統一し、各ローソク足の対象時間範囲を明記することで、時系列の不整合を事前に防ぐようにしています。

3. 株式分割・配当の修正ルール、異常データのフィルタ基準が不統一

過去の長期相場データは株式分割や配当を反映した補正価格で作成されているのに対し、リアルタイム配信の相場は未補正の生価格となっています。バックテストと実盤で価格基準が異なると、価格を利用した全ての指標、損益計算に系統的な誤差が発生します。

また、データ提供元ごとに瞬間的な異常注文、出来高ゼロの欠損ローソク、前後場の細かい約定の削除ルールが異なるため、細かい仕様の差が積み重なりバックテストの信頼性を低下させます。

データソース選定時は、「取引所時間統一」「分足の Tick 集約ルール」「補正価格切り替え機能」「Tick ストリームの連続性」の 4 点を確認することを推奨します。

4. 静的な過去分足はリアルタイム配信の仕組みを再現できない

事前生成済みの過去分足は一括で読み込む静的データであるのに対し、実際の運用では Tick が 1 件ずつ逐次配信される動的な仕組みです。データの読み込み・更新ロジック自体が根本的に異なるため、環境差が生まれてしまいます。

乖離を抑える標準解決策:生 Tick から分足を自作する

バックテストと実運用の結果を近づける核心は、事前作成された静的分足に依存せず、両方の環境で同一のルールで分足を生成することです。

実習では生の Tick データを元に分足を再集約する手法を統一して採用し、実運用と完全に同じデータ作成プロセスを再現しています。Tick ストリームの取得には AllTick API を活用し、バックテストと実盤のデータルールを統一して環境差を解消します。

拡張性の高いモジュール型プロジェクト構成

データ保存・一括バックテスト・価格変動アラートといった機能を追加する場合は、3 層に分離したアーキテクチャが実習・個人開発に適しています。

  1. 前処理層:タイムスタンプ統一、補正価格切り替え、異常約定データのフィルタ
  2. 相場集約層:Tick を一時保存し、取引所時間を基準に分足を逐次作成
  3. 戦略実行層:バックテストと実運用で同一のローソク解析・指標計算ロジックを共有

機能ごとにファイルを分割することで、新しい銘柄や周期の検証機能を追加する際に、基盤となるデータ校正ロジックを壊すリスクを抑えられます。

まとめ

多くの開発者はバックテストと実盤の収益乖離の原因を戦略コードに求めがちですが、複数回の実習検証から、時間規格の統一、分足生成ルール、価格補正処理といったデータ基礎設計が最も重要だと分かりました。

 

米国株は複数タイムゾーン、前後場取引、株式分割・配当補正といった特有の仕組みを持つため、既製の静的分足だけでバックテストを行うと、リアルタイム配信との乖離は避けられません。Tick による統一的なデータ取得、タイムスタンプの標準化、価格処理ルールの固定を同時に実装することで、バックテストの収益曲線に実用的な参考価値が生まれ、戦略改善時に収益変動の真の要因を特定しやすくなります。