Tuesday, September 15, 2026
finlight で Python から株式ニュースをリアルタイムにストリーミングする
finlight で Python から株式ニュースをリアルタイムにストリーミングする
ニュースのために API をポーリングするということは、いつも少し遅れているということです。ライブダッシュ ボードやトレーディングシグナルでは、各記事を公開された瞬間に手に入れたいものです。finlight の WebSocket は まさにそれを実現し、Python SDK ならわずか数行で書けます。本チュートリアルでは、ティッカーでフィルターし、 すでにセンチメントが付与されたライブの株式ニュースストリームを構築します。
SDK のインストール
pip install finlight-client
完全な例
import asyncio
from finlight_client import FinlightApi, ApiConfig
from finlight_client.models import GetArticlesWebSocketParams
client = FinlightApi(config=ApiConfig(api_key="YOUR_API_KEY"))
def on_article(article):
print(f"[{article.sentiment}] {article.title} - {article.source}")
async def main():
await client.websocket.connect(
request_payload=GetArticlesWebSocketParams(
tickers=["AAPL", "NVDA"],
includeEntities=True,
),
on_article=on_article,
)
if __name__ == "__main__":
asyncio.run(main())
これを実行すると、一致する記事が公開されるたびに、あなたの on_article コールバックが記事とともに発火
します。記事には sentiment、title、source、そして(includeEntities が有効なため)タグ付けされた
企業が含まれます。
何が起きているのか
client.websocket.connect(...)は持続的な接続を開き、一致する記事をストリーミングします。これは非同期 呼び出しなので、asyncio.run(...)の中で実行されます。GetArticlesWebSocketParamsは REST API と同じ種類のフィルターを受け取ります:tickers、query、sources、countries、categories、language、includeEntitiesなど。on_articleはあなたのハンドラーです。ここで、単に出力するのではなく、キューにプッシュしたり、 ダッシュボードを更新したり、シグナルを評価したりします。
SDK はバックオフ付きの自動再接続を含め、接続を代わりに管理するので、一度の切断でストリームが止まることは ありません。
enhanced と raw
client.websocket は enhanced ストリームです。記事はフルエンリッチメント(センチメントとエンティティ)
付きで届きます。軽量で基本的な記事データをできるだけ速く取得したいだけなら、同じ connect(...) の形を持つ
client.raw_websocket もあります。分析が欲しいときは enhanced を、最小のレイテンシが欲しいときは raw を
使いましょう。
必要なものだけに正確にフィルターする
WebSocket は REST と同じフィルターを受け付けるので、正確なスライスをストリーミングできます。暗号資産 ニュースだけ、ウォッチリストのティッカーだけ、特定の国だけ、というように。フィルターの全セットは 高度なフィルタリングを参照してください。
次に読むもの
- REST・WebSocket・Webhooks・MCPで、 いつストリーミングが正しい選択かを判断しましょう。
- WebSocket ガイドについては完全なドキュメント。
