Un bot de trading en tu portátil es una mala idea por una razón aburrida: tu portátil no está en línea 24/7, y los mercados sí. Cierra la tapa a mitad de una operación y el bot deja de gestionar una posición abierta. Freqtrade — el popular bot de trading open-source en Python — está construido para funcionar sin supervisión, que es exactamente para lo que sirve un VPS pequeño. Aquí está lo que realmente necesita, cómo configurarlo con Docker y los límites honestos que nadie menciona hasta que los chocas.
Por qué un servidor, no tu máquina
Dos razones, ambas prácticas:
- Disponibilidad. El bot tiene que vigilar el mercado y gestionar posiciones las 24 horas. Cada vez que tu portátil duerme o se reinicia, el bot está ciego — una entrada perdida, o peor, una posición abierta que nadie vigila.
- Latencia y estabilidad. Un VPS se apoya en una conexión de centro de datos con una ruta estable al exchange. El jitter del wifi doméstico y los reinicios de NAT no ayudan a un bot que reacciona al precio.
Esta es la misma lógica detrás de ejecutar cualquier bot de trading en un VPS — Freqtrade solo hace los requisitos concretos.
Qué necesita realmente
Freqtrade en sí es ligero, pero sé realista sobre el workload:
- Bot en vivo / dry-run: 2 GB de RAM son un suelo cómodo. La imagen de Docker, un puñado de pares, indicadores y la BD de operaciones SQLite quieren algo de margen. Un Micro de 5 $ (2 vCPU / 2 GB / 25 GB) es el punto de partida adecuado. 1 GB puede ejecutar una única estrategia simple con pocos pares, pero estás más cerca del límite.
- Muchos pares / múltiples estrategias: sube a un Small de 8 $ (4 vCPU / 4 GB / 35 GB) — más pares significa más cálculo concurrente de indicadores y un dataframe más grande en memoria.
- Disco: modesto. La imagen, tu
user_datay la BD de operaciones caben cómodamente en 25 GB. Los datos históricos descargados para backtesting son lo único que crece — y eso vive sobre todo en tu máquina local (mira abajo).
Configúralo con Docker Compose
Docker es la forma mantenida y menos dolorosa de ejecutar Freqtrade. En una máquina nueva:
sudo apt update && sudo apt install -y docker.io docker-compose-v2
mkdir ~/ft && cd ~/ft
docker run --rm -v "$(pwd)/user_data:/freqtrade/user_data" \
freqtradeorg/freqtrade:stable create-userdir --userdir user_data
Coge el archivo compose oficial y crea una configuración de forma interactiva (te preguntará por tu exchange, el stake y el dry-run):
curl -s https://raw.githubusercontent.com/freqtrade/freqtrade/stable/docker-compose.yml -o docker-compose.yml
docker compose run --rm freqtrade new-config --config user_data/config.json
Dry-run primero — siempre
Nunca apuntes una estrategia nueva a dinero real. Freqtrade tiene por defecto el dry-run (paper trading) y deberías dejarlo ahí hasta que la estrategia se haya demostrado sobre datos de mercado en vivo durante un tiempo. En config.json:
{
"dry_run": true,
"dry_run_wallet": 1000
}
Inícialo y observa:
docker compose up -d
docker compose logs -f
La política restart: unless-stopped en el archivo compose es tu equivalente a systemd aquí — Docker trae el bot de vuelta tras un fallo o un reinicio del servidor, sin paso manual. (Si prefieres ejecutarlo fuera de Docker, una unidad systemd con Restart=always hace el mismo trabajo — el mismo principio que mantener cualquier bot vivo.)
Claves de API del exchange — la parte que muerde a la gente
Aquí es donde una configuración de trading sale mal de forma cara. Dos reglas, no negociables:
- Solo permiso de operar. Nunca actives la retirada. Si la clave se filtra, el peor caso son operaciones no deseadas — no tus fondos saliendo por la puerta. Freqtrade nunca necesita acceso de retirada.
- Lista blanca de IP para la clave. La mayoría de los exchanges te dejan atar una clave de API a IPs específicas. Esa es una razón concreta para ejecutar en un plan con IP dedicada: la clave solo funciona desde la dirección fija de tu servidor. En un plan NAT el bot comparte la IP de salida del nodo, que no es solo tuya — bien para que el bot funcione, pero no puedes ponerla en lista blanca limpiamente.
Mantén las claves en config.json, hazlo no legible por todos (chmod 600) y ejecuta el contenedor como un usuario no-root. Y cierra la máquina primero — la checklist de seguridad para un VPS nuevo lleva diez minutos y cierra las puertas que importan.
Haz copia de seguridad de user_data
Tus estrategias, configuración e historial de operaciones viven todos en user_data. Eso es lo que no quieres perder:
tar czf ft-backup-$(date +%F).tar.gz user_data
Sácalo del servidor periódicamente (o a object-storage). Perder la BD de operaciones significa perder tu historial de rendimiento; perder una estrategia afinada significa rehacer la optimización.
Los límites honestos
- El backtesting y el hyperopt son pesados — hazlos localmente. Fijan la CPU durante tramos prolongados, y un VPS compartido y orientado a ráfagas está construido para cargas puntuales, no para horas de carga sostenida al 100 % (que también choca con la política de uso aceptable). Optimiza en tu propia máquina, despliega el resultado para ejecutarlo en vivo. El VPS es para el bot en vivo, no para la investigación.
- La CPU es compartida/burst. Genial para un bot en vivo que sobre todo espera velas y reacciona; equivocada para triturar un año de datos de 1 minuto a través de hyperopt.
- Una región, solo CPU. El servidor está en Alemania sin GPU. Bien para Freqtrade (es CPU/lógica, no entrenamiento de ML) — bueno saberlo si tu estrategia se apoya en un modelo de ML pesado, que de nuevo se entrena mejor localmente.
Conclusión
Freqtrade en un VPS es la configuración adecuada para el bot en vivo: un Micro de 5 $ para una estrategia enfocada, un Small de 8 $ si ejecutas muchos pares, Docker Compose con restart: unless-stopped para disponibilidad, y una clave de API solo-operar y en lista blanca de IP para que una filtración no pueda vaciarte. Mantén el backtesting y el hyperopt pesados en tu portátil, haz copia de seguridad de user_data, y deja que el servidor haga lo único en lo que es bueno — mantenerse en línea mientras el mercado se mueve. El registro es solo por correo y pagas en USDC o USDT; una IP dedicada es la única mejora que vale la pena aquí, puramente por la lista blanca de la clave de API.
¿Listo para desplegar? Freqtrade está cómodo en un plan Micro; para backtests más pesados o muchos pares, sube a Small.
Comentarios
Aún no hay comentarios. Sé el primero.