JSPM

  • Created
  • Published
  • Downloads 187
  • Score
    100M100P100Q91853F
  • License ISC

A TypeScript Node.js library for the https://alpaca.markets REST API and WebSocket streams.

Package Exports

  • @master-chief/alpaca

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@master-chief/alpaca) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

alpaca

Version Language Maintenance Prettier(idk)

A TypeScript Node.js library for the https://alpaca.markets REST API and WebSocket streams.

Contents

Install

From NPM:

> npm i @master-chief/alpaca

From GitHub:

> npm i 117/alpaca

Client

import * as alpaca from '@master-chief/alpaca'

let client = new alpaca.Client({
  credentials: {
    key: 'mykey',
    secret: 'mysecret',
  },
  paper: true,
  rate_limit: true,
})

The following methods are available on the client.

isAuthenticated

await client.isAuthenticated()

getAccount

await client.getAccount()

getOrder

await client.getOrder({
  order_id: '6187635d-04e5-485b-8a94-7ce398b2b81c',
})

getOrders

await client.getOrders({
  limit: 25,
  status: 'all',
})

placeOrder

await client.placeOrder({
  symbol: 'SPY',
  qty: 1,
  side: 'buy',
  type: 'market',
  time_in_force: 'day',
})

replaceOrder

await client.replaceOrder({
  order_id: '69a3db8b-cc63-44da-a26a-e3cca9490308',
  limit_price: 9.74,
})

cancelOrder

await client.cancelOrder({
  order_id: '69a3db8b-cc63-44da-a26a-e3cca9490308',
})

cancelOrders

await client.cancelOrders()

getPosition

await client.getPosition({ symbol: 'SPY' })

getPositions

await client.getPositions()

closePosition

await client.closePosition({ symbol: 'SPY' })

closePositions

await client.closePositions()

getAsset

await client.getAsset({ asset_id_or_symbol: 'SPY' })

getAssets

await client.getAssets({ status: 'active' })

getWatchlist

await client.getWatchlist({ uuid: '2000e463-6f87-41c0-a8ba-3e40cbf67128' })

getWatchlists

await client.getWatchlists()

createWatchlist

await client.createWatchlist({
  name: 'my watchlist',
  symbols: ['SPY', 'DIA', 'EEM', 'XLF'],
})

updateWatchlist

await client.updateWatchlist({
  uuid: '2000e463-6f87-41c0-a8ba-3e40cbf67128',
  name: 'new watchlist name',
  symbols: ['TSLA', 'AAPL'],
})

addToWatchlist

await client.addToWatchlist({
  uuid: '2000e463-6f87-41c0-a8ba-3e40cbf67128',
  symbol: 'F',
})

removeFromWatchlist

await client.removeFromWatchlist({
  uuid: '2000e463-6f87-41c0-a8ba-3e40cbf67128',
  symbol: 'F',
})

deleteWatchlist

await client.deleteWatchlist({
  uuid: '2000e463-6f87-41c0-a8ba-3e40cbf67128',
})

getCalender

await client.getCalendar({ start: new Date(), end: new Date() })

getClock

await client.getClock()

getAccountConfigurations

await client.getAccountConfigurations()

updateAccountConfigurations

await client.updateAccountConfigurations({
  no_shorting: true,
  suspend_trade: true,
})

getAccountActivities

await client.getAccountActivities({
  activity_type: 'FILL',
})

getPortfolioHistory

await client.getPortfolioHistory({
  period: '1D',
  timeframe: '1Min',
})

getBars

await client.getBars({
  symbols: ['SPY', 'DIA', 'XLF'],
})

getLastTrade

await client.getLastTrade({
  symbol: 'SPY',
})

getLastQuote

await client.getLastQuote({
  symbol: 'SPY',
})

Stream

Note: Each key is allowed only 1 simultaneous connection to each host.

import * as alpaca from '@master-chief/alpaca'

let stream = new alpaca.Stream({
  credentials: {
    key: 'mykey',
    secret: 'mysecret',
  },
  host: alpaca.URL.WSS_MARKET_DATA,
})

The following events are available on the market data stream.

aggregate_minute

stream.on('authenticated', () => stream.subscribe(['AM.SPY']))
stream.on('aggregate_minute', console.log)

quote

stream.on('authenticated', () => stream.subscribe(['Q.SPY']))
stream.on('quote', console.log)

trade

stream.on('authenticated', () => stream.subscribe(['T.SPY']))
stream.on('trade', console.log)

trade

stream.on('authenticated', () => stream.subscribe(['T.SPY']))
stream.on('trade', console.log)

The following events are available on the account stream.

trade_updates

stream.on('authenticated', () => stream.subscribe(['trade_updates']))
stream.on('trade_updates', console.log)

account_updates

stream.on('authenticated', () => stream.subscribe(['account_updates']))
stream.on('account_updates', console.log)

Contribute

Pull requests are encouraged. 😁