こんにちは~投資ツール開発や株価分析が好きな方に向けて、超実用的なテクニックを紹介します✨
今回は「米国株のリアルタイム分足データを安定的に取得する方法」について、実際にツールを作りながら試行錯誤したノウハウをまとめました。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 ラインより自由度が高く、好きな指標や戦略を拡張できるのが最大のメリットです✨
まとめ
米国株リアルタイム行情から分足データを作成する流れはシンプル!
- WebSocket でティックデータを取得
- 1 分ごとに集計して K ラインを作成
- 保存・分析・バックテストに活用
この方法を使えば、遅延や制限に悩まされず、安定した高品質な米国株分足データを使い続けられます。投資分析ツール作りや、個人のトレード環境構築にぜひ活用してみてくださいね!
最後まで読んでいただきありがとうございました😊また次回の記事でお会いしましょう!