alpaca-data
Market Data API de Alpaca: acciones, crypto, opciones. Historical y real-time data para 5000+ stocks.
Trading API de Alpaca: órdenes, posiciones, cuenta. Paper trading y live trading de acciones, crypto y opciones.
$ npx -y skills add gauss314/skills --skill alpaca-trading --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/alpaca-tradingContext preview
The summary Claude sees to decide when to auto-load this skill.
Trading API de Alpaca: órdenes, posiciones, cuenta. Paper trading y live trading de acciones, crypto y opciones.
name: alpaca-trading description: "Trading API de Alpaca: órdenes, posiciones, cuenta. Paper trading y live trading de acciones, crypto y opciones." license: MIT
API para trading de acciones, crypto y opciones. Soporta paper trading (gratis) y live trading.
**Base URLs:**
**Docs:** [docs.alpaca.markets](https://docs.alpaca.markets/us/docs/trading-api)
---
1. Ir a [app.alpaca.markets](https://app.alpaca.markets) 2. Crear cuenta (paper trading es gratis) 3. Ir a "API Keys" → Generate New Keys
import os
from alpaca.trading.client import TradingClient
# Para paper trading
API_KEY = os.getenv("APCA_API_KEY_ID")
SECRET_KEY = os.getenv("APCA_API_SECRET_KEY")
BASE_URL = "https://paper-api.alpaca.markets" # Paper
# Para live trading
# BASE_URL = "https://api.alpaca.markets"
client = TradingClient(API_KEY, SECRET_KEY, paper=True)**⚠️ NUNCA hardcodear keys. Usar variables de entorno.**
---
| API | Límite | |-----|--------| | Orders | 200 requests/min | | Account/Positions | 200 requests/min | | Account Activities | 200 requests/min |
---
account = client.get_account()
print(f"Buying Power: ${account.buying_power}")
print(f"Cash: ${account.cash}")
print(f"Portfolio Value: ${account.portfolio_value}")
print(f"Status: {account.status}")from alpaca.trading.requests import AccountConfigurationsRequest
config_request = AccountConfigurationsRequest(
trade_confirmation_email=True,
susi_transfer_email=True
)
client.update_account_configuration(config_request)---
from alpaca.trading.requests import GetAssetsRequest
from alpaca.trading.enums import AssetClass, AssetStatus
request = GetAssetsRequest(
asset_class=AssetClass.US_EQUITY,
status=AssetStatus.ACTIVE
)
assets = client.get_all_assets(request)
# Filtrar symbols tradables
tradable = [a for a in assets if a.tradable]
print(f"Assets tradables: {len(tradable)}")asset = client.get_asset("AAPL")
print(f"AAPL tradable: {asset.tradable}")
print(f"AAPL class: {asset.asset_class}")---
| Tipo | Descripción | |------|-------------| | `market` | Ejecuta al precio actual | | `limit` | Precio máximo (buy) o mínimo (sell) | | `stop` | Activa orden de mercado cuando alcanza stop_price | | `stop_limit` | Combina stop + limit | | `trailing_stop` | Stop relativo al precio |
| TIF | Descripción | |-----|-------------| | `day` | Solo para día actual | | `gtc` | Good Till Cancelled | | `opg` | Open at market open | | `cls` | Close at market close | | `ioc` | Immediate Or Cancel | | `fok` | Fill Or Kill |
from alpaca.trading.requests import MarketOrderRequest
from alpaca.trading.enums import OrderSide, TimeInForce
order_request = MarketOrderRequest(
symbol="AAPL",
qty=10,
side=OrderSide.BUY,
time_in_force=TimeInForce.DAY
)
order = client.submit_order(order_request)
print(f"Order ID: {order.id}")
print(f"Status: {order.status}")from alpaca.trading.requests import LimitOrderRequest
order_request = LimitOrderRequest(
symbol="AAPL",
qty=10,
side=OrderSide.BUY,
limit_price=150.00, # Máximo a pagar
time_in_force=TimeInForce.GTC
)
order = client.submit_order(order_request)from alpaca.trading.requests import StopOrderRequest
order_request = StopOrderRequest(
symbol="AAPL",
qty=10,
side=OrderSide.SELL,
stop_price=145.00, # Vende cuando caiga a este precio
time_in_force=TimeInForce.GTC
)# Todas las órdenes abiertas
open_orders = client.get_orders(status="open")
print(f"Órdenes abiertas: {len(open_orders)}")
# Órdenes filladas hoy
from datetime import datetime
filled_orders = client.get_orders(
status="fill",
start=datetime(2024, 1, 15)
)
# Orden por ID
order = client.get_order_by_id(order_id)# Cancelar una orden client.cancel_order(order_id) # Cancelar todas las órdenes abiertas client.cancel_orders()
from alpaca.trading.requests import ReplaceOrderRequest
replace_request = ReplaceOrderRequest(
limit_price=155.00, # Nuevo precio límite
qty=15 # Nueva cantidad
)
client.replace_order(order_id, replace_request)---
positions = client.get_all_positions()
for pos in positions:
print(f"{pos.symbol}: {pos.qty} shares")
print(f" Avg Entry: ${pos.avg_entry_price}")
print(f" Market Value: ${pos.market_value}")
print(f" P/L: ${pos.unrealized_pl}")position = client.get_position("AAPL")
print(f"AAPL: {position.qty} shares @ ${position.avg_entry_price}")# Cerrar toda la posición
client.close_position("AAPL")
# Cerrar posición parcialmente (qty=5)
client.close_position("AAPL", qty=5)client.close_all_positions()
---
| Level | Descripción | |-------|-------------| | 0 | Sin trading de opciones | | 1 | Covered calls, cash-secured puts | | 2 | Buy/sell calls y puts | | 3 | Spreads |
from alpaca.trading.requests import GetOptionContrac
Open-source collection of skills compatible with the SKILL.md standard. Developed for the AI courses at UCEMA.
Market Data API de Alpaca: acciones, crypto, opciones. Historical y real-time data para 5000+ stocks.
API de datos financieros de EE.UU.: acciones, forex, crypto, indicadores técnicos, fundamental data.
Academic backtesting framework for quantitative research. ~30 risk and performance ratios, 10 classes of indicators, event-driven…
Quotes, fundamentals, insider, analyst ratings, earnings estimates, financial summary, income/balance/cashflow detail y company…
API de Estadísticas Monetarias v4.0 del BCRA con 638 series macroeconómicas (reservas, tipo de cambio, tasas, M1/M2/M3,…