- Notifications
You must be signed in to change notification settings - Fork41
A crate for interacting with the Alpaca API at alpaca.markets.
License
d-e-s-o/apca
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
apca is a library for interacting with the Alpaca API atalpaca.markets. The crate is entirely written in Rust and exposes afully async API based on the nativeasync
/await
language feature.
The crate provides access to the majority of functionality provided byAlpaca, including, but not limited to:
- inquiring of account information
- changing of the account configuration
- retrieving of past account activity
- accessing the market clock
- submitting, changing, listing, and canceling orders
- listing and closing open positions
- listing and retrieving general asset information
- streaming of order updates over WebSocket
- historic market data retrieval through Alpaca's Data API
- real time market data streaming via Alpaca's websocket API
For convenient command-line based access to the API, please useapcacli
.
The following example illustrates how to create aClient
object andthen submit a limit order forAAPL
with a limit price of USD 100:
let api_info =ApiInfo::from_env().unwrap();let client =Client::new(api_info);let request = order::CreateReqInit{type_:Type::Limit,limit_price:Some(Num::from(100)), ..Default::default()}.init("AAPL",Side::Buy, order::Amount::quantity(1));let order = client.issue::<order::Create>(&request).await.unwrap();
The returnedorder
object can subsequently be inspected to find outdetails about the order (such as its ID). The full example is availablehere.
Please refer to the fulldocumentation for more details.
About
A crate for interacting with the Alpaca API at alpaca.markets.