alpaca-fix
FIX (Financial Information eXchange) protocol client for the Alpaca trading platform.
Overview
alpaca-fix provides a FIX protocol implementation for high-frequency trading applications with Alpaca. It supports FIX 4.2 and 4.4 versions for order routing and market data.
Features
- FIX Session Management: Session initiation, heartbeat handling, sequence number management
- Order Routing: New Order Single, Cancel, Cancel/Replace requests
- Execution Reports: Real-time order status updates
- Market Data: Market data requests and snapshots
- Session Recovery: Automatic sequence number recovery
- Message Logging: Configurable FIX message logging
Installation
Add to your Cargo.toml:
[]
= "0.1.0"
Usage
use ;
use Credentials;
async
API Reference
Main Types
FixClient- The primary client for FIX protocol connectionsFixConfig- Configuration for FIX sessionsFixVersion- FIX protocol version (4.2, 4.4)
Message Types
Order Messages
NewOrderSingle(MsgType D) - New order requestOrderCancelRequest(MsgType F) - Cancel order requestOrderCancelReplaceRequest(MsgType G) - Modify order request
Execution Messages
ExecutionReport(MsgType 8) - Order execution statusOrderCancelReject(MsgType 9) - Cancel rejection
Market Data Messages
MarketDataRequest(MsgType V) - Request market dataMarketDataSnapshot(MsgType W) - Market data response
Session Messages
Logon(MsgType A) - Session initiationLogout(MsgType 5) - Session terminationHeartbeat(MsgType 0) - Keep-aliveTestRequest(MsgType 1) - Connection testResendRequest(MsgType 2) - Message recoverySequenceReset(MsgType 4) - Sequence reset
Main Modules
client- FIX client implementationconfig- Configuration typesmessages- FIX message typessession- Session managementcodec- FIX message encoding/decoding
FIX Field Tags
Common FIX tags used:
| Tag | Name | Description |
|---|---|---|
| 8 | BeginString | FIX version |
| 9 | BodyLength | Message body length |
| 35 | MsgType | Message type |
| 49 | SenderCompID | Sender identifier |
| 56 | TargetCompID | Target identifier |
| 34 | MsgSeqNum | Message sequence number |
| 52 | SendingTime | Message timestamp |
| 10 | CheckSum | Message checksum |
Configuration
use FixConfig;
let config = builder
.version
.sender_comp_id
.target_comp_id
.host
.port
.heartbeat_interval_secs
.reconnect_enabled
.reconnect_max_attempts
.message_logging
.build;
Changelog
v0.2.0 (latest)
- Full TCP connection implementation
- Async message sending/receiving
- Background heartbeat handling
- Automatic test request responses
- Session state management
- Message channel for incoming messages
- Graceful disconnect with logout
v0.1.0
- Initial FIX protocol implementation
- FIX 4.2 and 4.4 support
- Order routing messages
- Market data messages
- Session management
- Message encoding/decoding
Notes
FIX protocol is intended for high-frequency trading applications. Most users should use the REST API (alpaca-http) or WebSocket API (alpaca-websocket) instead.
License
MIT