Escribe esto en Google y te salen mil vídeos con un tío en un Lamborghini y capturas de pantalla de ganancias. Yo no vendo Lamborghinis: escribo software para ganarme la vida. Así que voy a responder la pregunta ¿son rentables los bots de trading? como te la respondería un ingeniero delante de un café, sin humo y sin prometerte nada.

Contenido educativo de programación. No es asesoramiento financiero. El trading cripto puede hacerte perder todo tu capital; empieza siempre en modo papel (simulación) y usa solo dinero que puedas permitirte perder.

La respuesta corta (que probablemente no te va a gustar)

La mayoría de los bots de trading no son rentables. Ni el que te venden por 49 € al mes, ni el que copiaste de un repositorio de GitHub, ni el que programaste el fin de semana después de ver tres tutoriales. No es pesimismo: es estadística y es lo que ves cuando llevas años depurando sistemas que fallan de formas que nadie había previsto.

Y aquí está el matiz que casi nadie te cuenta: cuando alguien tiene un bot que de verdad gana dinero de forma consistente, lo último que hace es vendértelo por internet. Lo que se vende suele ser el bot, no los resultados del bot. Son dos negocios muy distintos.

El error de plantear la pregunta como "¿me voy a hacer rico?"

Si empiezas preguntándote si un bot te va a hacer rico, ya has perdido. La pregunta de ingeniero es otra: ¿puedo construir un sistema que, con alta probabilidad, no me arruine? El objetivo realista de un bot de trading bien hecho no es multiplicar tu capital: es sobrevivir. No perder de forma tonta. Reducir el error humano. Ejecutar una estrategia con disciplina que tú, a las 3 de la mañana y con miedo en el cuerpo, no ejecutarías.

Cuando entiendes que "no perder" es la meta, dejas de buscar la estrategia mágica y empiezas a construir como se construye software serio: con arquitectura, con pruebas honestas y con control de riesgo. Y es justo ahí donde un bot pasa de ser una lotería a ser una herramienta.

Por qué la mayoría de los bots pierden dinero

Cuatro causas se repiten una y otra vez:

  1. Sobreajuste (overfitting): ajustas los parámetros hasta que el backtest da un gráfico precioso… sobre datos del pasado que ya conoces.
  2. Backtest deshonesto: ignoras comisiones, slippage y el hecho de que tu orden mueve el precio. En papel ganas; en real, sangras por mil cortes.
  3. Cero gestión de riesgo: sin límite de pérdida por operación, una sola mala racha se lleva la cuenta entera.
  4. El mercado cambia: lo que funcionó en el toro de 2021 se desangra en el lateral de 2022. Un bot no piensa; hace lo que le dijiste, aunque el contexto ya no exista.

El backtest honesto: donde mueren las promesas

El 90% de los "bots rentables" lo son solo porque su backtest miente por omisión. Un backtest honesto resta comisiones y slippage en cada operación. Mira la diferencia:

def backtest(operaciones, comision=0.001, slippage=0.0005):
    """
    operaciones: lista de retornos brutos por operacion (ej. 0.012 = +1.2%)
    comision + slippage se cobran a la ENTRADA y a la SALIDA.
    """
    capital = 1000.0
    coste_por_trade = (comision + slippage) * 2  # entra y sale

    for r in operaciones:
        retorno_neto = r - coste_por_trade
        capital *= (1 + retorno_neto)

    return round(capital, 2)

trades = [0.012, -0.008, 0.004, 0.002, -0.001, 0.003]

print("Backtest ingenuo:  ", backtest(trades, comision=0, slippage=0))
print("Backtest honesto:  ", backtest(trades))

Un edge de +0,3% por operación se evapora si cada operación te cuesta 0,3% en fricción. Muchas estrategias de alta frecuencia que "funcionan" en el ingenuo son perdedoras garantizadas en el honesto. Si tu backtest no incluye costes, no es un backtest: es un dibujo.

La gestión de riesgo es el producto

Un principiante pregunta "¿cuándo compro?". Un ingeniero pregunta "¿cuánto puedo perder si me equivoco?". La regla más útil que existe es no arriesgar más de un porcentaje pequeño y fijo del capital por operación. Con eso, ni diez pérdidas seguidas te sacan del juego.

def tamano_posicion(capital, riesgo_pct, precio_entrada, precio_stop):
    """
    Calcula cuantas unidades comprar para que, si salta el stop,
    solo pierdas 'riesgo_pct' del capital. NUNCA mas.
    """
    riesgo_en_euros = capital * riesgo_pct
    riesgo_por_unidad = abs(precio_entrada - precio_stop)

    if riesgo_por_unidad == 0:
        raise ValueError("El stop no puede ser igual a la entrada.")

    return riesgo_en_euros / riesgo_por_unidad

# Cuenta de 1000 EUR, arriesgamos 1% (10 EUR), stop a 2% por debajo
unidades = tamano_posicion(1000, 0.01, precio_entrada=100, precio_stop=98)
print(f"Comprar {unidades:.2f} unidades  ->  perdida maxima: 10 EUR")

Fíjate en lo que no hace este código: no predice el precio, no adivina el futuro, no promete nada. Solo garantiza que una sola operación no te hunde. Esa mentalidad defensiva es, con diferencia, lo que separa a los que siguen operando en un año de los que ya se fueron.

Arquitectura y disciplina: lo aburrido que sí importa

Un bot que va a tocar dinero real necesita lo que cualquier software crítico: registro de cada decisión (logs), un kill switch para pararlo si algo se desmadra, alertas cuando falla la conexión con el exchange, y un modo de pruebas separado del real. La regla de oro:

import os

MODO = os.getenv("TRADING_MODE", "paper")  # por defecto, SIEMPRE papel

def ejecutar_orden(orden):
    if MODO == "paper":
        registrar(f"[PAPEL] Simulada: {orden}")   # nada real, solo se anota
        return simular(orden)
    elif MODO == "live":
        registrar(f"[REAL] Enviando: {orden}")
        return enviar_al_exchange(orden)
    raise ValueError(f"Modo desconocido: {MODO}")

Que el valor por defecto sea "papel" no es un detalle estético: es lo que te salva del día en que ejecutas el script sin querer con la variable de entorno mal puesta. La disciplina, en software, se codifica; no se confía a la memoria.

Entonces… ¿son rentables los bots de trading o no?

La respuesta honesta: sí pueden serlo, pero muy pocos lo son, y casi nunca por la razón que la gente cree. No ganan por tener la estrategia secreta; sobreviven por tener una gestión de riesgo brutal, un backtest que no se engaña a sí mismo y una ejecución disciplinada. La ventaja del bot no es la genialidad: es la constancia y la ausencia de pánico.

Si buscabas la respuesta de "compra este bot y retírate", este no era tu artículo. Si buscabas entender por qué la mayoría fracasa para no ser uno más, acabas de dar el primer paso correcto: pensar como ingeniero, no como apostador.

Si quieres construirlo bien, con rigor

Todo lo que has visto aquí —backtesting honesto, gestión de riesgo, arquitectura con modo papel y disciplina codificada— lo desarrollamos paso a paso, con Python real y sin promesas milagrosas, en el curso Bot de Trading de Criptomonedas en Python: Ingeniería para No Perder. No te va a prometer que te harás rico; te va a enseñar a construir un sistema con la mentalidad correcta: la de no perder de forma tonta. Si has llegado hasta aquí, es justo el enfoque que estabas buscando.