「翌日の寄りで買う」と書いたとき、その寄りは何時ですか。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,922 | 89.48% |
| 1分以内 | 655 | 1.13% |
| 1〜5分 | 2,252 | 3.88% |
| 5〜30分 | 1,736 | 2.99% |
| 30分〜1時間 | 598 | 1.03% |
| 1時間以上 | 864 | 1.49% |
中央値は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,949 | 47.1% |
| 8〜9割の日 | 1,331 | 32.1% |
| 5〜8割の日 | 709 | 17.1% |
| 2〜5割の日 | 138 | 3.3% |
| 2割未満 | 15 | 0.4% |
「だいたい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()
# 見送った数は必ず結果に書く。黙って落とすと成績が良く見える- 「寄り」を何時と定義したか、結果に書く。09:00の板寄せなのか、その日の最初の約定なのか
- 09:0X までに寄らなかった銘柄をどうするか決める。見送る/その値段で買う/次の日に回す。どれでもいいが、決めて書く
- 見送った件数を必ず出す。黙って落とすと、寄らなかった日=板が薄い日が消えて、成績が良く見えます
- 後場の寄りは別扱いにする。時間どおり率が10ポイント低い
- 薄い銘柄を除くだけでは足りない。大型株のほうが「数分の遅れ」は多いからです
まとめ
「翌日の寄りで買う」は、日本株の検証でいちばんよく使われる約定のつけ方です。そして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日
- 注意:掲載したのは集計結果です。取得したデータそのものは配布していません。銘柄名は、遅れの理由を説明するために必要な範囲で挙げています