1 Preparación y Aprendizaje de Conceptos Básicos
Conocimientos Requeridos:
- Python: Sintaxis básica, variables, funciones, bucles
- REST API y WebSockets: Conceptos básicos de comunicación con exchanges
- Exchanges de Criptomonedas: Registro, tipos de órdenes, comisiones
Configuración del Entorno de Desarrollo:
- Instalar Python (última versión estable)
- Instalar un entorno de desarrollo (se recomienda VS Code)
- Crear una carpeta para el proyecto
Instalación de Librerías Necesarias:
pip install python-binance
pip install pandas
pip install numpy
pip install ta
2 Obtención de Claves API del Exchange
Usando Binance como ejemplo:
- Inicia sesión en tu cuenta de Binance
- Navega a la sección de Gestión de API
- Crea una nueva clave API
- IMPORTANTE: Desmarca el permiso "Habilitar Retiros"
- Mantén solo "Habilitar Lectura" y "Habilitar Trading Spot y Margin"
- Guarda la API Key y Secret Key en un lugar seguro
API_KEY = 'TU_API_KEY_AQUI'
API_SECRET = 'TU_API_SECRET_AQUI'
3 Escritura del Código del Bot
Crea el archivo crypto_bot.py y añade el siguiente código:
import pandas as pd
from binance.client import Client
from binance.enums import *
import time
import config
client = Client(config.API_KEY, config.API_SECRET)
TRADE_SYMBOL = 'BTCUSDT'
TRADE_QUANTITY = 0.001
PROFIT_TARGET = 1.0
STOP_LOSS = 2.0
in_position = False
buy_price = 0.0
def get_price(symbol):
try:
ticker = client.get_symbol_ticker(symbol=symbol)
return float(ticker['price'])
except Exception as e:
print(f"Error obteniendo precio: {e}")
return None
def create_order(symbol, side, quantity):
try:
current_price = get_price(symbol)
if not current_price:
return None
if side == SIDE_BUY:
price = round(current_price * 0.995, 2)
elif side == SIDE_SELL:
price = round(current_price * 1.005, 2)
else:
return None
order = client.create_order(
symbol=symbol,
side=side,
type=ORDER_TYPE_LIMIT,
timeInForce=TIME_IN_FORCE_GTC,
quantity=quantity,
price=str(price)
)
print(f"Orden colocada: {side} {quantity} {symbol} al precio {price}")
return order
except Exception as e:
print(f"Error colocando orden: {e}")
return None
Esta es la estructura básica del bot. El código completo con estrategia de trading y bucle principal está disponible en la guía completa.