株価が15分遅れて表示される理由
株価が15分遅れるのはなぜですか。配信の遅さではなく、取引所データのライセンス契約が定める仕組みと、実際の価格で見る15分の遅延コストを解説します。
ライセンス上の理由から、多くの無料ウェブサイトでは株価が15分遅れて表示されます。配信の仕組みが遅いわけではありません。取引所のマッチングエンジンを出た価格情報は、1秒未満で画面に届きます。15分という遅延は契約条件です。リアルタイム価格を表示できる事業者と、その対価を定める契約に明記されています。
株価が投資家に届くまでの形成過程
一つの米国株は、同時に十数カ所の公開市場で取引されている。これに加えて、取引結果を別途報告する店頭取引も広範に存在する。各市場は独自に気配値と約定を公表する。業界の計画では、これらすべてを一つのティッカーに統合する。NYSE上場銘柄向けの計画と、Nasdaq上場銘柄向けの計画がそれぞれある。これらを運用する処理機関がSIPで、securities information processorsの略称である。この統合ティッカーが、全国最良気配(NBBO)を算出する。NBBOとは、その時点で市場全体から得られる最良の買い気配と売り気配の組み合わせである。詳細は、NBBOとは何かの解説で説明している。
取引所は独自のダイレクトフィードも販売している。これは統合ティッカーより高速で情報量が多く、統合ティッカーとは別にライセンスされる。
株価が15分遅れで表示される理由:ライセンスの仕組み
市場データは、取引所にとって収益源の一つです。価格を配信するブローカー、ウェブサイト、端末、スマートフォンアプリなどの事業者は、取引所やテープ配信プランの運営者と契約を結びます。これらの契約では、同じ価格情報を二つの商品に分けています。リアルタイムデータは有料で、利用者数に応じた月額料金が発生します。15分以上遅れたデータはリアルタイム配信の対象外となり、配信事業者は利用者数を報告せずに無料提供できます。
料金体系には複数の費用が含まれます。データ回線への接続料、リアルタイム価格を閲覧できる利用者一人当たりの月額料金、そして人が直接見ずに価格情報を取り込むシステム向けの非表示利用料です。料金は公開され、ほとんどの年に改定されるため、個別の年の金額よりも仕組みの理解が重要です。リアルタイム価格には、利用者一人当たり毎月の料金が発生します。15分遅れた価格情報に料金を支払う人はいません。
無料版が無料である理由は、これですべて説明できます。リアルタイム価格を配信するコストには、データ量も大きく影響します。取引時間中、テープには気配値の更新が連続して流れます。オプションはその極端な例であり、オプション気配値フィードの規模が示すとおりです。
15分遅延に実際どれだけの価値があるか
遅延の影響は、その間に価格がどれだけ動くかで決まり、測定できます。以下のパネルでは、S&P 500連動ファンドであるSPYについて、2026年6月までの通常取引時間の一分足をすべて対象にし、それぞれを15分後の足と比較しています。分類は、先の足が含まれる時間帯ごとです。
各数値の背後にある正確なSQL
WITH regular_bars AS
(
SELECT
toTimeZone(window_start, 'America/New_York') AS et,
toTimeZone(window_start, 'America/New_York') + INTERVAL 15 MINUTE AS et_later,
toFloat64(close) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND close > 0
AND window_start >= '2026-06-01 00:00:00'
AND window_start < '2026-07-01 00:00:00'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
)
SELECT
formatDateTime(toStartOfHour(a.et), '%H:%i') AS et_time,
round(quantileDeterministic(0.5)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3) AS median_gap_pct,
round(quantileDeterministic(0.95)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3) AS p95_gap_pct,
count() AS sample_count
FROM regular_bars AS a
INNER JOIN regular_bars AS b ON b.et = a.et_later
GROUP BY et_time
ORDER BY et_time9時30分(ET)に始まる寄り付き後一時間の足は、その後15分間に中央値で0.125%動き、95パーセンタイルは0.556%でした。15:00の時間帯では中央値が0.065%でした。各区分には重複する一分足の組み合わせを630件集計しているため、特定の一日の偶然ではなく、典型的な数値を示しています。曲線は平坦ではありません。固定された遅延は、時間帯によって隠す値動きの大きさが異なります。
どれだけ隠れるかは、銘柄によっても異なります。同じ測定方法で、六つの有名銘柄を同じ月に比較しました。
各数値の背後にある正確なSQL
WITH regular_bars AS
(
SELECT
ticker,
toTimeZone(window_start, 'America/New_York') AS et,
toTimeZone(window_start, 'America/New_York') + INTERVAL 15 MINUTE AS et_later,
toFloat64(close) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'AMD')
AND close > 0
AND window_start >= '2026-06-01 00:00:00'
AND window_start < '2026-07-01 00:00:00'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
)
SELECT
a.ticker AS ticker,
round(quantileDeterministic(0.5)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3) AS median_gap_pct,
round(quantileDeterministic(0.99)(abs(b.px / a.px - 1) * 100, toUInt64(toUnixTimestamp(a.et))), 3) AS p99_gap_pct
FROM regular_bars AS a
INNER JOIN regular_bars AS b ON b.ticker = a.ticker AND b.et = a.et_later
GROUP BY ticker
ORDER BY median_gap_pct DESCAMDは、六銘柄の中で典型的な乖離が最も大きく、0.361%でした。SPYは最も小さく、0.071%でした。99パーセンタイルの列は、二度確認する価値があります。その月の15分間の値動きのうち、最も大きい一パーセントで、AMDは2.532%動きました。
同じ考え方を一日の値動きで見ることもできます。このパネルでは、SPYの日中レンジが最も広かった2026年6月の取引日を特定し、二本の線を描いています。一つは10分ごとのリアルタイムの約定値です。もう一つは、その時点で15分遅れのページに表示されていた値です。
各数値の背後にある正確なSQL
WITH
widest_session AS
(
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND close > 0
AND window_start >= '2026-06-01 00:00:00'
AND window_start < '2026-07-01 00:00:00'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY d
ORDER BY (max(toFloat64(high)) - min(toFloat64(low))) / min(toFloat64(low)) DESC
LIMIT 1
),
session_bars AS
(
SELECT
toTimeZone(window_start, 'America/New_York') AS et,
toTimeZone(window_start, 'America/New_York') - INTERVAL 15 MINUTE AS et_earlier,
toFloat64(close) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND close > 0
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM widest_session)
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
)
SELECT
formatDateTime(a.et, '%H:%i') AS et_time,
round(a.px, 2) AS live_price,
round(b.px, 2) AS delayed_price,
round(abs(a.px - b.px), 2) AS gap_delta,
formatDateTime(a.et, '%b %e') AS session_label
FROM session_bars AS a
INNER JOIN session_bars AS b ON b.et = a.et_earlier
WHERE toMinute(a.et) % 10 = 0
ORDER BY a.etJun 9の09:50(ET)時点では、SPYのリアルタイム価格は746.13でした。一方、遅延表示は744.22で、リアルタイム価格から$1.91離れていました。15:50までには、両者は735.29と734.49になりました。値動きが小さいときは二本の線が重なり、動きが大きいときは離れます。動かない相場では遅延による損失はありません。しかし、人々が注目している局面ほど、そのコストは大きくなります。
表示ルール:ウェブサイトが提示すべき情報
Regulation NMSには、Rule 603(c)に基づく統合表示要件があります。公開向けに気配値データを表示するベンダーは、単一市場の気配値を価格として見せるのではなく、統合された情報を提示しなければなりません。具体的には、統合された最終約定値とともに、全米最良買い気配・売り気配(NBBO)を表示します。ベンダーは遅延データについても、遅延データであることを明示する必要があります。各金融情報ページの下部に小さな注記があるのは、このためです。無料の気配値を読む際には、次の二点を押さえる必要があります。
- 単一取引所の無料リアルタイム気配値は実際の価格ですが、NBBOではありません。一つの市場の板を示すだけで、最良気配よりスプレッドが広い場合があります。
- リアルタイムの最終約定値だけが表示され、買い気配や売り気配がないページは珍しくありません。最終約定値と気配値は別々にライセンスされる商品であり、最終約定値の方が安価です。
二つの市場が板の最上位で接触した場合については、ロックド・アンド・クロスド市場を参照してください。
プロフェッショナルかノンプロフェッショナルか:料金を決める判定基準
個人がリアルタイムデータに支払う料金は、分類によって決まります。分類を左右するのは資産額ではなく、職業です。取引所が用いる用語で、以下のすべてに該当する場合はノンプロフェッショナル購読者となります。
- 会社その他の法人を代表せず、個人として自分で使うためにデータを取得する。
- SEC、CFTC、州の証券規制当局、証券取引所もしくは証券業協会、または先物市場に登録または資格認定されていない。
- 投資顧問または資産運用担当者として従事しておらず、そうした登録を必要とする業務にも雇用されていない。
- 勤務先が購読料を払い戻す場合を含め、データを業務目的で一切使用しない。
一つでも該当しなければ、取引所はプロフェッショナルに分類します。料金は取引所ごと、利用者ごと、月ごとに請求され、ノンプロフェッショナル料金の何倍にもなります。個人口座の残高が少なくても、ファンドに勤務するジュニアアナリストはプロフェッショナルです。一方、自分の資金だけを運用する大規模ポートフォリオの退職投資家は、プロフェッショナルではありません。データ配信業者には、利用者の回答を収集して報告する義務があります。そのため、リアルタイムデータの登録では、勤務先と登録資格について必ず確認されます。
スナップショット気配値とは
スナップショットとは、要求した時点で取得する一回限りのデータです。直近価格、または現在の買い気配と売り気配が一度だけ返され、その後は更新されません。ストリームは継続的な購読です。価格などの変化が発生するたびに、データがプッシュ配信されます。ライセンス料金はこの二つで異なり、クエリ単位とユーザー単位の月額料金として設定されることが多くあります。そのため、無料APIでは遅延スナップショットのエンドポイントだけが提供され、ライブストリームは利用できない場合があります。スナップショットを毎秒更新すれば、実質的にストリームを再構築したことになります。契約では、こうした利用方法を検知できるよう規定されています。
目の前の価格が遅延表示かどうかを見分ける方法
- 信頼できる手掛かりはタイムスタンプだけです。リアルタイムの気配値には、現在のET時刻から一~二秒以内の時刻が付いています。
- 日中高値と累積出来高も更新が止まるため、遅延ページでは、テープに十分前に記録された高値を見逃すことがあります。
- ET午前9時30分の寄り付き後、最初の一五分間は、遅延ページに当日セッションの情報が表示されません。前日終値か、プレマーケットの約定値が表示されます。
- 数値がまったく動くかを見るフリーズテストは、値動きのある銘柄にしか使えません。
最後の判断には、裏付けとなるデータが必要です。
各数値の背後にある正確なSQL
WITH regular_bars AS
(
SELECT
ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
toTimeZone(window_start, 'America/New_York') AS et,
toFloat64(close) AS px
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'KO', 'AAPL', 'MSFT', 'NVDA', 'AMD')
AND close > 0
AND window_start >= '2026-06-01 00:00:00'
AND window_start < '2026-07-01 00:00:00'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
),
stepped AS
(
SELECT
ticker,
et,
px,
lagInFrame(px) OVER (PARTITION BY ticker, session_date ORDER BY et
ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_px
FROM regular_bars
)
SELECT
ticker,
round(100 * countIf(px != prev_px) / count(), 1) AS minutes_price_moved_pct,
round(quantileDeterministic(0.5)(abs(px / prev_px - 1) * 10000, toUInt64(toUnixTimestamp(et))), 1) AS median_move_bps
FROM stepped
WHERE prev_px > 0
GROUP BY ticker
HAVING count() > 0
ORDER BY minutes_price_moved_pct DESC2026年6月までの期間で、AMDは通常取引時間の99.8%分において、直前の一分間とは異なる価格を記録しました。一分ごとの値動きの中央値は9.6ベーシスポイントでした。ベーシスポイントは一%の百分の一です。六銘柄のうち、KOの価格更新頻度が最も低く、比率は94.1%でした。これほど活発な銘柄で、セッションの途中に最終価格が数分間動かなければ、遅延またはキャッシュされた価格を見ている可能性が高いと考えられます。一方、薄商いの銘柄では同じ状態が通常のため、判定にはタイムスタンプを使うべきです。
個人投資家が無料で利用できる株価情報は本当にリアルタイムか
個人投資家が確実にリアルタイム価格を取得できる情報源は二つあります。また、一般的な表示区分には再確認が必要です。
- 入金済みの証券口座。証券会社は顧客向けに非プロフェッショナル利用者の資格を取得し、アプリを通じてリアルタイムの株価を提供します。そのため、口座開設時に勤務先について尋ねられます。
- 取引所運営会社の公式ウェブサイト。ただし、その取引所に上場する銘柄に限られます。リアルタイムで単一の取引所だけを対象とするため、統合NBBOではなく、一つの板情報です。
- ログインも利用者区分の自己申告も求めず、無料のリアルタイム株価をうたうサービス。利用する前に、株価表示のタイムスタンプを確認してください。
提供先が画面ではなくプログラムの場合、区分はさらに変わります。機械によるデータ利用は、利用者単位の契約とは別の、非表示利用条件に基づくライセンスとなります。無料の株式市場データAPIとSQLによる市場データの検索では、これらの区分を解説しています。
よくある質問
株価情報はなぜ正確に15分遅れるのですか?
米国株の価格は、取引所のデータ契約上、15分以上遅れると有料のリアルタイム商品ではなくなります。配信業者は、利用者数を報告せずに、少なくとも15分古い情報を公開できます。
プロ向けの市場データ購読者とは、どのような人ですか?
証券または先物の規制当局に登録していること、投資関連の職務に就いていること、法人などのためにデータを取得すること、または価格情報を業務で利用することのいずれかに該当する人です。純資産額や口座規模は判定に関係しません。
株価情報が遅れているかどうかは、どう確認できますか?
株価情報のタイムスタンプを現在のET時刻と照合し、配信業者に表示が義務付けられている遅延表示を確認してください。通常取引時間中に活発に取引される銘柄で、価格が数分間動かない場合も、遅延している可能性を示す手掛かりになります。
無料のリアルタイム株価情報はNBBOと同じですか?
多くの場合、同じではありません。単一の取引所が提供する無料の気配値は、その取引所の板だけを示します。NBBOは、統合テープから算出した、すべての取引所における最良買い気配と最良売り気配です。
15分の遅延は、日末データにも影響しますか?
いいえ。取引セッションが終了すれば、終値や日次出来高の遅延版とリアルタイム版は同一になります。遅延が影響するのは、セッション中だけです。
ここに掲載した各パネルには、そのデータを生成したSQLが付属しています。そのため、上記の数値は別のtickerや別の月についても再集計できます。追跡している銘柄で15分の価値を測定するには、Strasmore terminalで平易な英語で依頼してください。