UNPKG

@alpacahq/alpaca-trade-api

Version:

Javascript library for the Alpaca Trade API

74 lines (58 loc) 1.62 kB
"use strict"; /** * This example shows how to use the Alpaca Data V2 websocket to subscribe to events. * The socket is available under the `data_steam_v2` property on an Alpaca instance. * There are separate functions for subscribing (and unsubscribing) to trades, quotes and bars as seen below. */ const Alpaca = require("@alpacahq/alpaca-trade-api"); const API_KEY = "<YOUR_API_KEY>"; const API_SECRET = "<YOUR_API_SECRET>"; class DataStream { constructor({ apiKey, secretKey, feed }) { this.alpaca = new Alpaca({ keyId: apiKey, secretKey, feed, }); const socket = this.alpaca.data_stream_v2; socket.onConnect(function () { console.log("Connected"); socket.subscribeForQuotes(["AAPL"]); socket.subscribeForTrades(["FB"]); socket.subscribeForBars(["SPY"]); socket.subscribeForStatuses(["*"]); }); socket.onError((err) => { console.log(err); }); socket.onStockTrade((trade) => { console.log(trade); }); socket.onStockQuote((quote) => { console.log(quote); }); socket.onStockBar((bar) => { console.log(bar); }); socket.onStatuses((s) => { console.log(s); }); socket.onStateChange((state) => { console.log(state); }); socket.onDisconnect(() => { console.log("Disconnected"); }); socket.connect(); // unsubscribe from FB after a second setTimeout(() => { socket.unsubscribeFromTrades(["FB"]); }, 1000); } } let stream = new DataStream({ apiKey: API_KEY, secretKey: API_SECRET, feed: "sip", paper: true, });