日本株の検証を、実測で。

寄付は09:00ではありません|「始値で買う」検証が静かに狂う

「翌日の寄りで買う」と書いたとき、その寄りは何時ですか。14営業日・4,266銘柄のティックで数えたら、09:00ちょうどに寄ったのは 89.48% でした。そして毎日きっかり09:00に寄る銘柄は、半分もありません(47.1%)

  • 前場が09:00ちょうどに寄った割合 89.48%、後場(12:30)は 79.96%
  • 5分より遅れたのは 前場5.51%・後場16.22%
  • 14日とも09:00に寄った銘柄は 4,142中1,949(47.1%)
  • 遅れる理由は、厚い銘柄と薄い銘柄で逆でした
  • 前場に一度も約定しなかった銘柄・日が 1,162件

なぜこれが検証に効くのか

日本株の検証で、いちばんよく書かれる約定のつけ方はこれです。

「シグナルが出た翌営業日の始値で買う」

この「始値」は、たいてい日足の O をそのまま使います。日足の Oその日の最初に付いた値段なので、値そのものは正しい。問題はそれが何時なのかです。

09:00に出る注文で買えるつもりでいるのに、実際はその銘柄が10時に寄っていたら、1時間ぶんの情報を先取りして売買していることになります。

数えました

2026年9月の14営業日ぶりのティックから、銘柄ごと・日ごとに前場で最初に約定した時刻を取り出しました。

import pandas as pd

# その日・その銘柄の「最初の約定」の時刻を出す
d = d[d["Session"] == 1]                      # 前場だけ
first = d.groupby("Code")["TimeUs"].min()     # マイクロ秒
late = first / 1e6 - 9 * 3600                 # 09:00:00 からの遅れ(秒)

print(f"09:00ちょうどに寄った割合 {(late.abs() <= 1).mean() * 100:.2f}%")
09:00:00 からの遅れ件数割合
ちょうど(±1秒)51,92289.48%
1分以内6551.13%
1〜5分2,2523.88%
5〜30分1,7362.99%
30分〜1時間5981.03%
1時間以上8641.49%
のべ58,027件(銘柄×日)。中央値0.1秒・平均144秒・最大2.5時間

中央値は0.1秒です。ほとんどの銘柄は時間どおりに寄ります。ですが平均は144秒。この差が、少数が大きく遅れていることを示しています。

後場はもっと遅い

前場(09:00)後場(12:30)
ちょうどに寄った89.48%79.96%
5分より遅れた5.51%16.22%
対象58,027件57,599件

後場は5件に1件が12:30ちょうどに寄りません。昼休みのあいだに注文が積み上がらない銘柄が多いためです。後場の寄りを使う戦略は、前場より慎重に扱う必要があります。

★ 銘柄で見ると、半分以下しか「毎日09:00」ではない

件数で見ると89%でも、銘柄で見ると景色が変わります。14営業日のうち何日きっかり09:00に寄ったかを、銘柄ごとに数えました。

14日のうち09:00に寄った割合銘柄数割合
毎日ぴったり1,94947.1%
8〜9割の日1,33132.1%
5〜8割の日70917.1%
2〜5割の日1383.3%
2割未満150.4%
14日のうち10日以上データがある4,142銘柄

「だいたい09:00に寄る」で済ませられる銘柄は、半分もありません。
全銘柄を対象にした検証を回すなら、2銘柄に1銘柄は、どこかの日で09:00に寄っていないと思っておくべきです。

★ 遅れる理由は、厚い銘柄と薄い銘柄で逆だった

ここが今回いちばん面白かったところです。売買代金で5つに分けて、遅れ方の内訳を出しました。

売買代金ちょうど1〜10秒10〜60秒1〜5分5〜30分30分超
最も薄い78.28%0.36%0.98%3.39%7.32%9.67%
薄い91.43%0.22%0.55%2.22%3.00%2.57%
96.10%0.28%0.33%1.97%1.03%0.29%
厚い94.61%0.60%0.36%3.32%1.08%0.03%
最も厚い86.98%1.07%0.89%8.51%2.53%0.03%

時間どおりに寄る率が一番高いのは、一番厚い銘柄ではなく「中」の層(96.10%)でした。両端が落ちています。ただし、落ち方がまったく違います。

  • 最も薄い層:30分超が 9.67%。5〜30分も7.32%。相手がいないので、いつまでも寄らない
  • 最も厚い層:30分超は 0.03% しかないのに、1〜5分が 8.51%注文が片側に偏りすぎて、板寄せがすぐ決まらない(特別気配)

実際、最も厚い層で遅れた日が多かったのはレーザーテック・フジクラ・村田製作所・パナソニックといった、最も売買の多い銘柄でした。薄いから遅れるのではありません。強い買い(売り)が集中した日は、大型株ほど寄りが後ろにずれます。

「流動性が高い=時間どおり」ではありません。
しかも大型株が遅れる日は、ニュースが出て一方向に注文が偏った日です。つまり戦略がいちばん売買したい日ほど、寄りが遅れます。たまたま起きるのではなく、狙ったときに起きるのが厄介なところです。

そもそも寄らない日もある

件数
前場に一度も約定しなかった(後場だけ出来た)1,162
後場に一度も約定しなかった(前場だけ出来た)734
のべ58,761

この日の「始値」を日足から取ると、後場に付いた値段が返ってきます。日足の O だけを見ていると、これに気づけません。


どう直すか

いちばん安全なのは、寄りの時刻に条件を付けて、外れたら見送ることです。

# 「翌日の寄りで買う」を、時刻を確かめてから実行する
first = ticks[ticks["Session"] == 1].groupby("Code")["TimeUs"].min()

# 09:05 までに寄らなかった銘柄はその日は見送る、と決めておく
ok = first <= (9 * 3600 + 300) * 1_000_000
skipped = (~ok).sum()

# 見送った数は必ず結果に書く。黙って落とすと成績が良く見える
  1. 「寄り」を何時と定義したか、結果に書く。09:00の板寄せなのか、その日の最初の約定なのか
  2. 09:0X までに寄らなかった銘柄をどうするか決める。見送る/その値段で買う/次の日に回す。どれでもいいが、決めて書く
  3. 見送った件数を必ず出す。黙って落とすと、寄らなかった日=板が薄い日が消えて、成績が良く見えます
  4. 後場の寄りは別扱いにする。時間どおり率が10ポイント低い
  5. 薄い銘柄を除くだけでは足りない。大型株のほうが「数分の遅れ」は多いからです

まとめ

「翌日の寄りで買う」は、日本株の検証でいちばんよく使われる約定のつけ方です。そして10回に1回は、その寄りが09:00ではありません

遅れの中身は2種類あります。薄い銘柄は相手がいなくて寄らない。厚い銘柄は注文が偏りすぎて寄らない。前者は除外すれば消えますが、後者は除外しても残ります

数字そのものより、自分が何を「寄り」と呼んでいるかを書いておくことが大事だと思っています。書いてあれば、あとで直せます。

この記事の出どころ

  • データ:J-Quants API V2 の bulk ティック(equities/trades)。Light プラン+分足・ティックアドオン
  • 期間:2026-09-01 〜 2026-09-18 の14営業日
  • 対象:のべ58,027件(銘柄×日)/4,266銘柄。銘柄別の集計は10日以上データがある4,142銘柄
  • 寄りの定義:そのセッションで最初に約定したティックの時刻(Session=1 は 09:00〜11:30、Session=2 は 12:30〜15:30 を実測で確認)
  • 流動性の分け方:銘柄ごとの日次売買代金の中央値で5分位
  • 環境:Windows 11 / Python 3.12 / pandas 3.0 / pyarrow 21
  • 測定日:2026年9月21日
  • 注意:掲載したのは集計結果です。取得したデータそのものは配布していません。銘柄名は、遅れの理由を説明するために必要な範囲で挙げています