Binance API, Alpaca API y CCXT — conecta, autentica y opera en exchanges reales
⚡ NIVEL 2 — Módulo Avanzadoimport ccxt # Inicializar exchange (paper trading: sandbox=True) exchange = ccxt.binance({ 'apiKey': 'TU_API_KEY', 'secret': 'TU_SECRET_KEY', 'sandbox': True, # ← SIEMPRE testnet primero 'enableRateLimit': True, }) # Verificar conexión balance = exchange.fetch_balance() btc = balance['BTC']['free'] print(f"BTC disponible: {btc}")
# Orden de mercado (ejecuta al precio actual) order = exchange.create_order( symbol='BTC/USDT', type='market', side='buy', amount=0.001 # 0.001 BTC ≈ $45 ) # Orden límite (precio específico) limit_order = exchange.create_order( symbol='BTC/USDT', type='limit', side='buy', amount=0.001, price=42000 # Solo ejecuta si BTC llega a $42k ) print(f"Order ID: {order['id']}")
import alpaca_trade_api as tradeapi # Conectar a Alpaca Paper Trading api = tradeapi.REST( 'TU_API_KEY', 'TU_SECRET_KEY', base_url='https://paper-api.alpaca.markets' ) # Balance de la cuenta account = api.get_account() print(f"Capital: ${account.portfolio_value}") print(f"Cash: ${account.cash}") # Comprar 1 acción de AAPL order = api.submit_order( symbol='AAPL', qty=1, side='buy', type='market', time_in_force='gtc' )
from alpaca_trade_api.rest import TimeFrame # Obtener datos OHLCV de los últimos 30 días bars = api.get_bars( 'AAPL', TimeFrame.Day, start="2024-01-01", end="2024-12-31", limit=252 ).df print(bars[['open','high','low','close','volume']].tail(5))
import websocket, json # Binance WebSocket para precio en tiempo real def on_message(ws, message): data = json.loads(message) price = float(data['p']) qty = float(data['q']) side = 'BUY' if data['m'] else 'SELL' print(f"{side} {qty:.4f} BTC @ ${price:,.2f}") def on_open(ws): print("✅ Conectado al stream de Binance") socket = "wss://stream.binance.com:9443/ws/btcusdt@trade" ws = websocket.WebSocketApp( socket, on_message=on_message, on_open=on_open ) ws.run_forever()
# ❌ NUNCA hagas esto (expone las keys en el código) api_key = "ABCDEF123456" # ✅ Usa variables de entorno import os from dotenv import load_dotenv load_dotenv() # Lee .env del directorio raíz api_key = os.environ['BINANCE_API_KEY'] secret = os.environ['BINANCE_SECRET'] # Archivo .env (NUNCA en git, agregar a .gitignore) # BINANCE_API_KEY=tu_clave_aqui # BINANCE_SECRET=tu_secreto_aqui