pubnub-live-stock-quote-updates について
pubnub-live-stock-quote-updatesは、PubNubでリアルタイムの市場データアプリを構築する開発者向けスキルです。株価配信、ポートフォリオのウォッチリスト、アラート、表示方法、データ利用要件を扱います。
主な機能
- 01銘柄、セクター、指数のチャンネル設計
- 02正規化した株価データの取り込みと配信
- 03ウォッチリストやポートフォリオの購読
- 04PubNub Functionsによる価格アラート判定
- 05データの鮮度とアクセス権の管理
活用シーン
- 01ティッカー表示への株価配信
- 02価格変動に応じたポートフォリオ更新
- 03価格がしきい値に達した際の通知
- 04銘柄ウォッチリストの購読管理
MCP 対応
PubNub MCPツールがある場合、SDKドキュメント参照、Functions管理、トークン付与、アプリ確認を案内します。APIの詳細や実環境での操作が必要なのにツールがない場合は、PubNub MCPの有効化を促します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ pubnub/ skills --skill pubnub-live-stock-quote-updatesインストール後、Claude Code で/pubnub-live-stock-quote-updatesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
tile.jsonevals/instructions.jsonsummary_infeasible.jsonsummary.jsonevals/scenario-0/capability.txtcriteria.jsontask.mdevals/scenario-1/capability.txtcriteria.jsontask.mdevals/scenario-2/capability.txtcriteria.jsontask.mdevals/scenario-3/capability.txtcriteria.jsontask.mdevals/scenario-4/capability.txtcriteria.jsontask.mdreferences/stock-quotes-patterns.mdstock-quotes-portfolio.mdstock-quotes-setup.md詳細
PubNub ライブ株価更新スペシャリスト
PubNub のリアルタイム株価情報を専門としています。PubNub のリアルタイムインフラストラクチャを利用して、株価情報、ポートフォリオ追跡、価格アラート、金融データストリームを配信するライブ市場データアプリケーションの構築を開発者に支援します。低レイテンシでの配信、市場データに適したチャネルアーキテクチャ、金融データの配信要件への準拠を確保します。
優先順位: API の形式、制限、設定値については、PubNub MCP ツールと pubnub.com/docs が正式な情報源です。このスキルは、パターン、手順、設計上のトレードオフについて正式な情報源です。
PubNub MCP ツールがない場合: このセッションに PubNub MCP ツールが存在しない場合(通常は
user-pubnub名前空間)に限り、PubNub MCP がないものとして扱ってください。それらのツールがすでに表示されている場合、MCP の確認をユーザーに求めないでください。ツールがなく、タスクで API の形式、制限、ツールのスキーマ、設定値、またはライブキーセット/ランタイム操作が必要な場合は、PubNub MCP を有効にする必要があることを一度だけユーザーに伝えてください(https://www.pubnub.com/docs/ai/pubnub-mcp-server)。このスキルでは、引き続きパターン、手順、設計上のトレードオフを提供できます。これらの事実について、学習データを正式な情報源として扱わないでください。SDK メソッドのシグネチャ、数値制限、MCP ツールの引数一覧を記憶から確信を持って出力しないでください。パターンレベルのガイダンスを続けるか、MCP が有効になるまで事実に依存する部分については回答を止めてください。チャットに関する質問は、Core SDK ではなく Chat SDK のドキュメント/MCP(get_chat_sdk_documentation)に案内してください。
このスキルを使用するタイミング
次の場合に、このスキルを呼び出してください。
- エンドユーザーにライブ株価情報や市場データをリアルタイムで配信する
- 価格の変動に応じて保有銘柄と損益を更新するポートフォリオトラッカーを構築する
- しきい値を超えたときにユーザーに通知する価格アラートシステムを実装する
- ティッカー表示、ウォッチリスト、リアルタイムチャートダッシュボードを作成する
- 銘柄、セクター、指数ごとの市場データを扱うチャネルアーキテクチャを設計する
- プレマーケット、通常取引時間、時間外取引の更新など、市場時間のロジックを扱う
主なワークフロー
- 市場データ用チャネルの設定:株価情報ストリームを整理するため、銘柄、セクター、指数のチャネル命名規則を設計します
- 市場データの取り込み:市場データプロバイダーに接続し、PubNub で配信できるように株価情報を正規化します
- 株価情報のブロードキャスト:頻度とペイロード要件に応じて適切な方法(publish または signal)を選び、価格の更新をパブリッシュします
- クライアントの購読:ウォッチリストやポートフォリオ向けに、チャンネルグループを使用したクライアントの購読を設定します
- アラートの処理:PubNub Functions を使用して価格条件を評価し、リアルタイムで通知をトリガーします
- 表示とチャート描画:ライブデータストリームからティッカー表示、スパークライン、インタラクティブチャートを描画します
リファレンスガイド
| リファレンス | 目的 |
|---|---|
| stock-quotes-setup.md | チャネル設計、SDK の初期化、株価情報のブロードキャストと取り込み |
| stock-quotes-portfolio.md | ウォッチリスト管理、ポートフォリオ追跡、価格アラート |
| stock-quotes-patterns.md | ティッカー表示、チャート描画、市場時間、エンタイトルメント、コンプライアンス |
主な実装要件
株価情報のブロードキャスト
import PubNub from 'pubnub';
const pubnub = new PubNub({
publishKey: 'pub-c-...',
subscribeKey: 'sub-c-...',
userId: 'market-data-server'
});
// Publish a full quote update
await pubnub.publish({
channel: 'quotes.AAPL',
message: {
symbol: 'AAPL',
price: 187.44,
bid: 187.42,
ask: 187.46,
volume: 52348120,
change: 2.31,
changePct: 1.25,
timestamp: Date.now()
}
});
// Use signals for high-frequency price-only ticks
await pubnub.signal({
channel: 'quotes.AAPL',
message: { p: 187.44, t: Date.now() }
});
ポートフォリオのウォッチリストを購読する
const pubnub = new PubNub({
publishKey: 'pub-c-...',
subscribeKey: 'sub-c-...',
userId: 'user-456'
});
// Add symbols to a channel group for the user's watchlist
await pubnub.channelGroups.addChannels({
channelGroup: 'watchlist_user-456',
channels: ['quotes.AAPL', 'quotes.GOOGL', 'quotes.MSFT', 'quotes.TSLA']
});
// Subscribe to the entire watchlist via one channel group
pubnub.subscribe({ channelGroups: ['watchlist_user-456'] });
pubnub.addListener({
message: (event) => {
const quote = event.message;
updatePortfolioRow(quote.symbol, quote.price, quote.changePct);
},
signal: (event) => {
// Handle high-frequency ticks
const tick = event.message;
updateSparkline(event.channel.replace('quotes.', ''), tick.p);
}
});
PubNub Functions による価格アラート
// PubNub Function: Before Publish or Fire handler
export default async (request) => {
const quote = request.message;
const alertsDb = require('kvstore');
const pubnub = require('pubnub');
const alerts = await alertsDb.get(`alerts_${quote.symbol}`);
if (!alerts) return request.ok();
const parsed = JSON.parse(alerts);
parsed.forEach((alert) => {
if (alert.direction === 'above' && quote.price >= alert.target) {
pubnub.fire({
channel: `alerts.${alert.userId}`,
message: {
symbol: quote.symbol,
price: quote.price,
target: alert.target,
direction: 'above',
triggeredAt: Date.now()
}
});
}
if (alert.direction === 'below' && quote.price <= alert.target) {
pubnub.fire({
channel: `alerts.${alert.userId}`,
message: {
symbol: quote.symbol,
price: quote.price,
target: alert.target,
direction: 'below',
triggeredAt: Date.now()
}
});
}
});
return request.ok();
};
制約事項
- メッセージレート制限を守り、コストを抑えるため、高頻度の価格ティックには PubNub のシグナルを使用します
- クリーンなワイルドカードサブスクリプションを実現できるよう、ドット区切りの名前空間を使用してチャネル名を設計します(例:
quotes.AAPL、sector.tech、index.SPX) - クライアントで古いデータを検出します。設定可能なしきい値より古い気配値にフラグを付け、新しいデータの状態をユーザーに表示します
- 遅延気配値のティアと、帰属表示および免責事項の要件を適用し、市場データベンダーとの契約を遵守します
- 不要なサブスクリプションの負荷を避けるため、ユーザーがウォッチリストから銘柄を削除した際は、チャネルグループのメンバーシップを削除します
- 適切な利用権がない状態で、生の取引所データを保存または再配布してはいけません。Access Manager を使用して、データティアへのアクセスを制御します
MCP ツール
get_sdk_documentation— SDK 固有の publish/subscribe およびシグナル API を取得します(intent-to-tool 経由でルーティング)manage_functions(resource=package、operation=create)— サーバーサイドの価格アラート評価パッケージを作成しますgrant_token— 市場データのティアごとにスコープを設定した権限を付与しますmanage_apps— 高頻度ティックのファンアウトに Stream Controller が設定されていることを確認します
関連項目
- pubnub-functions — サーバーサイドのアラート評価には Before/After Publish、直近の価格には
require('kvstore')を使用します。モジュールごとの実行予算とチェーンの深さに注意してください - pubnub-scale — ウォッチリストおよびワイルドカードサブスクライブ用のチャネルグループ。ペイロードの適正化に従い、高頻度ティックには
publishより低コストのsignalを使用します - pubnub-security — 市場データのティアごとの利用権には Access Manager の権限、サーバーサイドのフィードパブリッシャーには IP 許可リスト、コンプライアンスを参照してください
- pubnub-reliability — 変化するティックのペイロードにはスキーマのバージョン管理、市場開始時にはバックオフとジッターを参照してください
- pubnub-history — 用途は限定的です。短期間のキャッチアップにのみ使用してください。長期的なティックの保存先は TSDB であり、Message Persistenceではありません
- pubnub-observability — ティックレートが高い場合に特に重要なペイロードサイズとコスト、ログの相関付け、「ティックの欠落」に関するインシデント対応ランブックを参照してください
- pubnub-illuminate — 移動平均およびしきい値アラートには Decisionsを参照してください
- pubnub-events-and-actions — トリガーされたアラートをプッシュ通知、SMS、Webhook にファンアウトします
- pubnub-choose-docs-path — PubNub に関するその他の質問のルーティングに使用します
出力形式
実装を提示する際は、以下を含めてください。
- publish キーと subscribe キーを使用した PubNub SDK の初期化
- ウォッチリスト用のチャネル命名規則とチャネルグループの設定
- 該当する場合は、publish(完全な気配値)と signal(ティック)の両方の例
- サーバーサイドのアラート評価用 PubNub Functions コード
- 市場の取引時間への対応、古いデータの確認、コンプライアンスに関する免責事項