Alpaca API + Websockets

// alpaca-api.js

// Import websocket libraries
const Websocket = require('ws');
const ReconnectingWebSocket = require('reconnecting-websocket');
// set up the Alpaca stream endpoint
const ALPACA_STREAM_URL = "wss://paper-api.alpaca.markets/stream";
// get the access_token from your OAuth Login function
const { access_token } = loginAlpaca();
// alpaca-api.js

// Import Libraries and set up Stream endpoint here (Step 1) ✅

// 1. Define a function for Websocket Instantiation
const alpacaOpenStream = () => {
  const options = {
    WebSocket,
    maxRetries: 100,
  };
// this creates the Reconnecting Websocket, it will be passed in proceeding steps
  const ws = new ReconnectingWebSocket(ALPACA_STREAM_URL, [], options);
  return ws;
};
// 2. Define a function for Alpaca /stream Authentication
const alpacaSubscribeAuth = async (ws, access_token) => {
  ws.send(
    JSON.stringify({
      action: 'authenticate',
      data: {
        oauth_token: access_token,
      },
     })
    );
  };
// 3. Define a function for subscribing to the Alpaca 'trade_updates' stream
const alpacaSubscribeToTrades = (ws) => {
  ws.send(
    JSON.stringify({
      action: 'listen',
      data: {
      streams: ['trade_updates'],
      },
    })
  );
};
// alpaca-api.js

// Import Libraries and set up Stream endpoint here (Step 1) ✅

// 1. Define a function for Websocket Instantiation
const alpacaOpenStream = () => {
  const options = {
    WebSocket,
    maxRetries: 100,
  };
// this creates the Reconnecting Websocket, it will be passed in proceeding steps
  const ws = new ReconnectingWebSocket(ALPACA_STREAM_URL, [], options);
  return ws;
};
// 2. Define a function for Alpaca /stream Authentication
const alpacaSubscribeAuth = async (ws, access_token) => {
  ws.send(
    JSON.stringify({
      action: 'authenticate',
      data: {
        oauth_token: access_token,
      },
     })
    );
  };
// 3. Define a function for subscribing to the Alpaca 'trade_updates' stream
const alpacaSubscribeToTrades = (ws) => {
  ws.send(
    JSON.stringify({
      action: 'listen',
      data: {
      streams: ['trade_updates'],
      },
    })
  );
};
const createSocket = (access_token) => {
  // websocket setup
	const ws = alpacaOpenStream();
	
	ws.addEventListener('open', async function open() {
    // authenticate, then subscribe to trade_updates
    await alpacaSubscribeAuth(ws, access_token);
		alpacaSubscribeToTrades(ws);

		console.log('Opened ⚡️tream ⚡️ocket');
	});
	
	ws.addEventListener('message', function incoming(msg) {
		console.log('Message: 📬 ', JSON.parse(msg.data));
   		if (msg.stream === 'trade_updates' && msg.data.event === 'new') {
     		console.log('New Trade 💹: ', msg.data);
   		}
	});
	return ws;
};
// finally call the function!
createSocket(access_token);

Similiar Collections

Python strftime reference pandas.Period.strftime python - Formatting Quarter time in pandas columns - Stack Overflow python - Pandas: Change day - Stack Overflow python - Check if multiple columns exist in a df - Stack Overflow Pandas DataFrame apply() - sending arguments examples python - How to filter a dataframe of dates by a particular month/day? - Stack Overflow python - replace a value in the entire pandas data frame - Stack Overflow python - Replacing blank values (white space) with NaN in pandas - Stack Overflow python - get list from pandas dataframe column - Stack Overflow python - How to drop rows of Pandas DataFrame whose value in a certain column is NaN - Stack Overflow python - How to drop rows of Pandas DataFrame whose value in a certain column is NaN - Stack Overflow python - How to lowercase a pandas dataframe string column if it has missing values? - Stack Overflow How to Convert Integers to Strings in Pandas DataFrame - Data to Fish How to Convert Integers to Strings in Pandas DataFrame - Data to Fish create a dictionary of two pandas Dataframe columns? - Stack Overflow python - ValueError: No axis named node2 for object type <class 'pandas.core.frame.DataFrame'> - Stack Overflow Python Pandas iterate over rows and access column names - Stack Overflow python - Creating dataframe from a dictionary where entries have different lengths - Stack Overflow python - Deleting DataFrame row in Pandas based on column value - Stack Overflow python - How to check if a column exists in Pandas - Stack Overflow python - Import pandas dataframe column as string not int - Stack Overflow python - What is the most efficient way to create a dictionary of two pandas Dataframe columns? - Stack Overflow Python Loop through Excel sheets, place into one df - Stack Overflow python - How do I get the row count of a Pandas DataFrame? - Stack Overflow python - How to save a new sheet in an existing excel file, using Pandas? - Stack Overflow Python Loop through Excel sheets, place into one df - Stack Overflow How do I select a subset of a DataFrame? — pandas 1.2.4 documentation python - Delete column from pandas DataFrame - Stack Overflow python - Convert list of dictionaries to a pandas DataFrame - Stack Overflow How to Add or Insert Row to Pandas DataFrame? - Python Examples python - Check if a value exists in pandas dataframe index - Stack Overflow python - Set value for particular cell in pandas DataFrame using index - Stack Overflow python - Pandas Dataframe How to cut off float decimal points without rounding? - Stack Overflow python - Pandas: Change day - Stack Overflow python - Clean way to convert quarterly periods to datetime in pandas - Stack Overflow Pandas - Number of Months Between Two Dates - Stack Overflow python - MonthEnd object result in <11 * MonthEnds> instead of number - Stack Overflow python - Extracting the first day of month of a datetime type column in pandas - Stack Overflow