Alpaca Trading Skill
Trade and manage portfolios via Alpaca's REST API using scripts/alpaca.sh.
Setup
Required env vars
| Variable | Purpose |
|---|
| INLINECODE1 | Alpaca API key |
| INLINECODE2 |
Alpaca API secret |
Optional env vars
| Variable | Default | Purpose |
|---|
| INLINECODE3 | INLINECODE4 | Trading endpoint. Set to https://api.alpaca.markets for live |
| INLINECODE6 |
https://data.alpaca.markets | Market data endpoint |
Paper trading is the default. Always confirm with the user before switching to live.
Helper script
Source scripts/alpaca.sh from this skill directory. Usage:
CODEBLOCK0
Quick Reference
Account & portfolio
CODEBLOCK1
Orders — Equities & Crypto
CODEBLOCK2
Orders — Options
CODEBLOCK3
Positions
CODEBLOCK4
Market data — Stocks
CODEBLOCK5
Market data — Options
CODEBLOCK6
Market data — Crypto
CODEBLOCK7
Corporate Actions
CODEBLOCK8
Assets & Watchlists
CODEBLOCK9
Full API reference
Read references/api.md for complete endpoint documentation including:
- - All order types (limit, stop, stop-limit, trailing stop, bracket, OCO, OTO)
- Order field reference (side, type, timeinforce, order_class)
- Watchlist CRUD
- Options contracts
- Historical bars/trades/quotes with all query params
- Crypto endpoints
- Market calendar
Safety Rules
- 1. Default to paper trading. Never set
APCA_API_BASE_URL to live without explicit user confirmation. - Show the order JSON before submitting. Let the user confirm symbol, qty, side, and type.
- Check market clock before placing orders — stocks only trade during market hours (9:30-16:00 ET) unless
extended_hours: true on limit orders. - Verify buying power via
GET /v2/account before large orders. - Never provide financial advice. Present data; let the user decide.
- Warn about irreversible actions — closing all positions, canceling all orders.
Troubleshooting
| Symptom | Fix |
|---|
| INLINECODE13 | Check APCA_API_KEY_ID / APCA_API_SECRET_KEY are set and valid |
| INLINECODE16 |
Paper keys on live URL or vice versa; check
APCA_API_BASE_URL |
|
HTTP 422 (insufficient qty) | Check buying power, fractional support, or symbol validity |
|
HTTP 429 | Rate limited — wait and retry; Alpaca allows 200 req/min |
| Order rejected outside hours | Add
"extended_hours":true (limit orders only) or wait for market open |
|
jq: command not found | Script falls back to
python3 -m json.tool; install jq for better output |
Alpaca 交易技能
通过 scripts/alpaca.sh 脚本使用 Alpaca 的 REST API 进行交易和投资组合管理。
设置
必需的环境变量
| 变量 | 用途 |
|---|
| APCAAPIKEYID | Alpaca API 密钥 |
| APCAAPISECRETKEY |
Alpaca API 密钥密码 |
可选的环境变量
| 变量 | 默认值 | 用途 |
|---|
| APCAAPIBASEURL | https://paper-api.alpaca.markets | 交易端点。设置为 https://api.alpaca.markets 用于实盘 |
| APCADATAAPIBASE_URL |
https://data.alpaca.markets | 市场数据端点 |
默认使用模拟交易。 切换到实盘前务必与用户确认。
辅助脚本
从本技能目录加载 scripts/alpaca.sh。使用方法:
bash
alpaca METHOD PATH [JSON_BODY]
市场数据:
ALPACA_DATA=1 alpaca METHOD PATH
快速参考
账户与投资组合
bash
alpaca GET /v2/account # 余额、权益、购买力
alpaca GET /v2/account/configurations # 交易配置
alpaca GET /v2/account/portfolio/history?period=1M&timeframe=1D # 投资组合图表
alpaca GET /v2/account/activities?activity_types=FILL,DIV # 交易/分红历史
alpaca GET /v2/clock # 市场开/关状态
alpaca GET /v2/calendar?start=2026-03-01&end=2026-03-31 # 交易日历
订单 — 股票与加密货币
bash
市价买入(按数量或金额)
alpaca POST /v2/orders {symbol:AAPL,qty:10,side:buy,type:market,time
inforce:day}
alpaca POST /v2/orders {symbol:AAPL,notional:1000,side:buy,type:market,time
inforce:day}
加密货币(7x24小时)
alpaca POST /v2/orders {symbol:BTC/USD,qty:0.001,side:buy,type:market,time
inforce:gtc}
限价/止损/止损限价/追踪止损/括号单/OTO/OCO — 参见 references/api.md
查看/获取/修改/取消
alpaca GET /v2/orders
alpaca GET /v2/orders/ORDER_ID
alpaca PATCH /v2/orders/ORDER
ID {qty:20,limitprice:190.00}
alpaca DELETE /v2/orders/ORDER_ID
alpaca DELETE /v2/orders # 取消所有
订单 — 期权
bash
买入看涨期权(Level 2+)
alpaca POST /v2/orders {symbol:AAPL260418C00260000,qty:1,side:buy,type:market,time
inforce:day}
卖出备兑看涨期权(Level 1+,每张合约需持有100股)
alpaca POST /v2/orders {symbol:AAPL260418C00270000,qty:1,side:sell,type:limit,limit
price:2.00,timein_force:day}
买入/卖出看跌期权、现金担保看跌期权、价差策略(Level 3)— 参见 references/api.md
行权
alpaca POST /v2/positions/AAPL260418C00260000/exercise
查询合约
alpaca GET /v2/options/contracts?underlying
symbols=AAPL&expirationdate_gte=2026-04-01&type=call&limit=10
alpaca GET /v2/options/contracts/AAPL260418C00260000
持仓
bash
alpaca GET /v2/positions # 所有持仓
alpaca GET /v2/positions?assetclass=usoption # 仅期权
alpaca GET /v2/positions/AAPL # 单只股票
alpaca GET /v2/positions/NVDA260417C00220000 # 单张期权
alpaca DELETE /v2/positions/AAPL # 平仓
alpaca DELETE /v2/positions/AAPL?qty=5 # 部分平仓
alpaca DELETE /v2/positions?cancel_orders=true # 全部平仓
市场数据 — 股票
bash
ALPACA_DATA=1 alpaca GET /v2/stocks/AAPL/snapshot # 报价+成交+K线
ALPACA_DATA=1 alpaca GET /v2/stocks/snapshots?symbols=AAPL,MSFT,GOOGL # 多只快照
ALPACA_DATA=1 alpaca GET /v2/stocks/AAPL/bars?timeframe=1Day&start=2026-03-01&limit=30
ALPACA_DATA=1 alpaca GET /v1beta1/screener/stocks/most-actives
ALPACA_DATA=1 alpaca GET /v1beta1/screener/stocks/movers?top=10
ALPACA_DATA=1 alpaca GET /v1beta1/news?symbols=AAPL&limit=5
市场数据 — 期权
bash
ALPACA_DATA=1 alpaca GET /v1beta1/options/snapshots/AAPL?feed=indicative&limit=10 # 期权链
ALPACA_DATA=1 alpaca GET /v1beta1/options/bars?symbols=NVDA260417C00220000&timeframe=1Day&limit=10
ALPACA_DATA=1 alpaca GET /v1beta1/options/quotes/latest?symbols=NVDA260417C00220000
ALPACA_DATA=1 alpaca GET /v1beta1/options/trades/latest?symbols=NVDA260417C00220000
feed: indicative(免费/延迟)或 opra(需订阅)
市场数据 — 加密货币
bash
ALPACA_DATA=1 alpaca GET /v1beta3/crypto/us/latest/quotes?symbols=BTC/USD
ALPACA_DATA=1 alpaca GET /v1beta3/crypto/us/bars?symbols=BTC/USD&timeframe=1Day&limit=30
ALPACA_DATA=1 alpaca GET /v1beta3/crypto/us/snapshots?symbols=BTC/USD,ETH/USD
公司行动
bash
ALPACADATA=1 alpaca GET /v1/corporate-actions?symbols=AAPL&types=cashdividend
类型:forwardsplit, reversesplit, cashdividend, stockdividend, spin_off 等
资产与自选列表
bash
alpaca GET /v2/assets/AAPL # 资产信息
alpaca GET /v2/assets?status=active&attributes=has_options # 支持期权的股票
alpaca GET /v2/watchlists # 查看自选列表
alpaca POST /v2/watchlists {name:Tech,symbols:[AAPL,MSFT,GOOGL]}
完整 API 参考
阅读 references/api.md 获取完整的端点文档,包括:
- - 所有订单类型(限价、止损、止损限价、追踪止损、括号单、OCO、OTO)
- 订单字段参考(方向、类型、有效期、订单类别)
- 自选列表 CRUD
- 期权合约
- 历史K线/成交/报价及所有查询参数
- 加密货币端点
- 市场日历
安全规则
- 1. 默认使用模拟交易。 未经用户明确确认,切勿将 APCAAPIBASEURL 设置为实盘。
- 提交前显示订单 JSON。 让用户确认代码、数量、方向和类型。
- 下单前检查市场时钟 — 股票仅在交易时段(美东时间 9:30-16:00)交易,除非限价单设置了 extendedhours: true。
- 大额订单前通过 GET /v2/account 验证购买力。
- 绝不提供财务建议。 展示数据,让用户自行决策。
- 警告不可逆操作 — 平仓所有持仓、取消所有订单。
故障排除
检查 APCA_API