こんにちは~投資ツール開発や株価分析が好きな方に向けて、超実用的なテクニックを紹介します✨

今回は「米国株のリアルタイム分足データを安定的に取得する方法」について、実際にツールを作りながら試行錯誤したノウハウをまとめました。HTTP ポーリングの遅延や制限に悩んでいる方、ぜひ最後までご覧ください!


こんな悩み、ありませんか?

リアルタイム行情ツールを作るとき、私が一番困ったのはコチラです。

  • HTTP ポーリングは頻繁にアクセス制限(レートリミット)に引っかかる
  • データの遅延が大きく、数秒のラグが発生する
  • 行情データが欠落したり、接続が不安定になったりする

これらの問題を一気に解決してくれるのが…WebSocket を使ってティックデータを取得し、自分で分足 K ラインを計算する方法です!


データ取得方法:HTTP ポーリング vs WebSocket

米国株リアルタイムデータを取得する方法は大きく 2 つあります。

HTTP ポーリング

  • 実装が簡単
  • 遅延が大きい(数秒レベル)
  • 頻繁にアクセス制限されやすい

WebSocket

  • 常時接続でリアルタイム受信
  • 遅延が非常に少ない
  • 安定してデータが届く
  • 私はいつもコッチを使っています!

高速道路を走るようにスムーズにデータが届くので、リアルタイムトレード用途にはWebSocket 一択です✨


ティックデータ → 分足 K ラインの作り方

ティックデータ(1 約定ごとの価格・出来高)を使って、分足データを自作できます。

必要な項目はたったの 5 つ!

  • 始値:1 分間の最初の約定価格
  • 終値:1 分間の最後の約定価格
  • 高値:1 分間の最高価格
  • 安値:1 分間の最低価格
  • 出来高:1 分間の合計出来高

Python 実装コード(分足集計)

from datetime import datetime

minute_data = {}

def update_tick(tick):
    minute = datetime.fromtimestamp(tick['time']).strftime('%Y-%m-%d %H:%M')
    if minute not in minute_data:
        minute_data[minute] = {
            'open': tick['price'],
            'high': tick['price'],
            'low': tick['price'],
            'close': tick['price'],
            'volume': tick['volume']
        }
    else:
        minute_data[minute]['close'] = tick['price']
        minute_data[minute]['high'] = max(minute_data[minute]['high'], tick['price'])
        minute_data[minute]['low'] = min(minute_data[minute]['low'], tick['price'])
        minute_data[minute]['volume'] += tick['volume']

実践!AllTick API で米国株リアルタイムデータを取得

今回はAllTick APIの WebSocket インターフェースを使って、米国株のティックデータを購読します。AAPL・TSLA・MSFT など、銘柄を指定してリアルタイムデータが取得可能👍

WebSocket 接続コード

import websocket
import json

def on_message(ws, message):
    tick = json.loads(message)
    update_tick(tick)

ws = websocket.WebSocketApp("wss://api.alltick.co/stock/ws",
                            on_message=on_message)
ws.run_forever()

データが届くと即座にon_messageが反応し、リアルタイムで分足データが作成されます。分析ツールや売買戦略のバックエンドに最適です!


分足データの保存方法

作成した分足データは、用途に合わせて保存しましょう。

表格

保存形式 メリット デメリット
CSV/Parquet 扱いやすくデバッグしやすい データ量が多いと読み込みが遅い
SQLite シングルファイル、SQL で検索可能 高頻度書き込みに不向き
Redis 読み込み超高速、リアルタイム向き 永続化が弱め

私はCSV/Parquet でテストしてから、本番は Redis やデータベースに切り替えて使っています。


便利な小技!実践で使えるコツ

  • 平均価格・変動幅などの指標も一緒に計算
  • 複数銘柄をまとめて購読・分析
  • 過去のティックデータを使って、分足 K ラインを再現

自分でデータを作ると、第三者製 K ラインより自由度が高く、好きな指標や戦略を拡張できるのが最大のメリットです✨


まとめ

米国株リアルタイム行情から分足データを作成する流れはシンプル!

  1. WebSocket でティックデータを取得
  2. 1 分ごとに集計して K ラインを作成
  3. 保存・分析・バックテストに活用

この方法を使えば、遅延や制限に悩まされず、安定した高品質な米国株分足データを使い続けられます。投資分析ツール作りや、個人のトレード環境構築にぜひ活用してみてくださいね!

最後まで読んでいただきありがとうございました😊また次回の記事でお会いしましょう!