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
A TypeScript Node.js library for the https://alpaca.markets REST API and WebSocket streams.
Contents
Install
From NPM:
> npm i @master-chief/alpacaFrom GitHub:
> npm i 117/alpacaClient
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
- getAccount
- getOrder
- getOrders
- placeOrder
- replaceOrder
- cancelOrder
- cancelOrders
- getPosition
- getPositions
- closePosition
- closePositions
- getAsset
- getAssets
- getWatchlist
- getWatchlists
- createWatchlist
- updateWatchlist
- addToWatchlist
- removeFromWatchlist
- deleteWatchlist
- getCalendar
- getClock
- getAccountConfigurations
- updateAccountConfigurations
- getAccountActivities
- getPortfolioHistory
- getBars
- getLastTrade
- getLastQuote
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. 😁