Skip to main content
Volver a Docs
📈Herramientas de Trading

Stop-Loss y Take-Profit

Salidas automáticas del lado del cliente para proteger posiciones

Los mercados de predicción no te ofrecen una orden de stop nativa. El CLOB de Polymarket y Kalshi te permiten colocar órdenes limit y market, pero ninguno cerrará automáticamente una posición cuando el precio se mueve en tu contra. Si tu contrato YES cae de 0.60 a 0.20 mientras duermes, nadie lo está vigilando salvo tú. La capa de Stop-Loss y Take-Profit de Predite cubre ese vacío con reglas de salida sintéticas, del lado del cliente, que monitorean tus posiciones abiertas y disparan una orden de cierre cuando se alcanza tu disparador.

Esto funciona tanto en posiciones de paper trading como en posiciones live de bots, y está diseñado específicamente para protegerte contra lo que más daño hace en los mercados de predicción de baja liquidez: el riesgo de gap.

Qué hace esta función

Una orden stop-loss es una regla asociada a una posición abierta. Defines un precio (o un movimiento porcentual desde la entrada) y Predite vigila el mercado hasta que ese nivel sea tocado. Cuando lo es, la posición se cierra automáticamente y queda registrada.

Predite admite tres tipos de disparador:

  • Stop-loss — cierra la posición cuando el precio del lado que tienes cae hasta tu disparador o por debajo de él. Esto limita tu riesgo a la baja.
  • Take-profit — cierra la posición cuando el precio del lado que tienes sube hasta tu disparador o por encima de él. Esto asegura ganancias para que una posición ganadora no regrese hasta el punto de equilibrio.
  • Time-stop — cierra la posición en un timestamp fijo sin importar el precio. Útil para operaciones impulsadas por eventos en las que solo quieres exposición durante una ventana conocida (un reporte de ganancias, un debate, una decisión de la Fed) y quieres salir después pase lo que pase.

Cada orden es consciente del lado (side-aware). Predite sabe si estás long YES o long NO y evalúa el disparador contra la pierna correcta. Polymarket cotiza YES y NO como un par complementario (precio NO = 1 − precio YES), así que si tienes NO en 0.30 y configuras un stop en 0.20, Predite rastrea la pierna NO (1 − yesPrice) y dispara cuando *tu* precio efectivo llega a 0.20, no cuando lo hace la cotización YES. Siempre razonas en términos del contrato que realmente posees.

Por qué importa: el riesgo de gap en mercados delgados

La mayoría de los mercados de predicción son delgados. Un mercado que opera unos pocos miles de dólares al día puede tener un spread amplio y un libro poco profundo. Cuando estallan las noticias, el libro de órdenes no se desliza suavemente de 0.55 a 0.45: hace un gap. La mejor puja desaparece y la siguiente puja en reposo podría estar 15 centavos más abajo. Para cuando te das cuenta, ya cruzaste el nivel en el que querías salir.

Un stop-loss no logrará mágicamente ejecutarte en tu disparador exacto en un mercado con gaps; ningún stop en ninguna plataforma puede hacer eso. Lo que sí hace es garantizar que, en el momento en que Predite observa el precio en tu nivel o atravesándolo, envía un cierre en lugar de esperar a que te despiertes y reacciones. En la práctica, esa es la diferencia entre salir cerca de tu plan y salir a lo que quede tras una cascada. Para operaciones impulsadas por eventos, el time-stop suele ser la herramienta más limpia: no le importa una mecha momentánea, simplemente elimina la exposición una vez que se cierra la ventana de tu tesis.

Esta es también la razón por la que tratamos el take-profit como un disparador de primera clase. En mercados delgados, una posición puede dispararse por una sola orden grande y luego revertir a la media en cuestión de minutos. Un take-profit te permite cosechar ese pico en lugar de verlo evaporarse.

Cómo funciona el monitoreo: del lado del cliente + cron

Predite monitorea tus salidas en dos capas, y entender ambas te dice exactamente en qué confiar.

Capa 1 — Del lado del cliente (navegador)

Mientras tienes el dashboard abierto, la vista de Posiciones consulta los precios en vivo y evalúa tus disparadores activos en el navegador casi en tiempo real. Verás la distancia al disparador actualizarse de forma continua y recibirás un toast instantáneo dentro de la app en el momento en que un nivel sea tocado. Esta capa es responsiva y excelente mientras operas activamente, pero solo se ejecuta cuando hay una pestaña abierta.

Capa 2 — Cron del lado del servidor (la capa duradera)

La capa que realmente te protege cuando estás ausente es el cron del servidor. Un trabajo programado (/api/cron/check-stop-losses) se ejecuta cada 2 minutos, 24/7, de forma independiente de cualquier navegador. En cada ejecución:

  1. Carga todas las órdenes con status = 'active'.
  2. Las agrupa por mercado y obtiene los precios actuales desde la Gamma API de Polymarket en lotes (de modo que 40 órdenes en el mismo mercado cuesten una sola consulta de precio, no 40).
  3. Evalúa cada disparador contra el precio en vivo (o, para los time-stops, contra el reloj).
  4. Para cualquier orden que dispare, reclama atómicamente la orden (la cambia a triggered solo si sigue estando active) y luego envía el cierre.

Dado que el cron es la fuente de verdad, no necesitas mantener una pestaña abierta para que tus stops funcionen. La capa del lado del cliente es una comodidad para tener retroalimentación instantánea; el cron es la garantía.

La cadencia de 2 minutos es la resolución práctica del sistema. Los stops se evalúan en un intervalo de polling, no tick a tick, así que en un gap violento tu salida real puede quedar un par de minutos y varios centavos más allá de tu disparador. Configura los niveles con ese margen en mente, en lugar de colocar un stop un centavo por debajo del precio actual.

Comportamiento en paper vs. live

Las mismas reglas aplican a ambos modos, pero lo que sucede al dispararse difiere.

Posiciones de paper

Para una posición de paper, una salida disparada cierra la posición dentro del simulador de Predite. El cron marca la posición como cerrada al precio de salida observado, calcula el P&L realizado a partir de tu entrada, la cantidad de shares y la dirección, y lo escribe en tu historial de paper. Nada toca una plataforma real. Este es el lugar ideal para ensayar tu disciplina de salida: ver cómo habría resultado un stop del 20% a lo largo de una semana de operaciones antes de arriesgar capital. El paper stop-loss está incluido a partir del plan Starter.

Posiciones live (bot)

Para una posición live, una salida disparada envía una orden de cierre real en el CLOB de Polymarket a través de tu wallet conectada, gestionada por el motor de ejecución del bot en su siguiente pasada. La ejecución es una acción de mercado real sujeta a la liquidez real y al spread, y tu P&L en vivo y tu diario de operaciones se actualizan en consecuencia.

El trading en vivo requiere el plan Bot ($99/mes). Las salidas live corren por la misma ruta de ejecución que el resto de tu automatización, incluyendo el envío sin gas a través del Builder Program donde esté disponible. Si un cierre live falla (error de red, orden rechazada, la posición ya se cerró manualmente), la orden se marca como failed con un motivo en lugar de reintentarse en silencio, y se te notifica para que puedas actuar.

> Resumen de planes: Paper stop-loss y take-profit — Starter, Pro, Bot. Stop-loss y take-profit live sobre posiciones reales — solo Bot.

Dos formas de configurar salidas

Hay dos puntos de entrada complementarios, dependiendo de si operas manualmente o con un bot.

A. Órdenes por posición (manual)

Asocia una orden explícita a una sola posición abierta desde el panel de Posiciones. Eliges el tipo de disparador y el precio (un valor entre 0 y 1, igual que cotiza el mercado). Este es el método más preciso: estás nombrando un nivel exacto.

Para agregar un stop por posición:

  1. Abre Dashboard → Posiciones (paper o live) y encuentra la posición abierta.
  2. Haz clic en Agregar salida en esa fila.
  3. Elige Stop-loss, Take-profit o Time-stop.
  4. Para stop-loss/take-profit, ingresa el precio de disparo del lado que tienes (p. ej. 0.20). Para un time-stop, elige la hora de expiración.
  5. Confirma. La orden aparece como active con una lectura en vivo de la distancia al disparador.

Puedes apilar un stop-loss y un take-profit sobre la misma posición para crear un bracket: sales por cualquiera de los dos lados, el que ocurra primero.

B. Valores por defecto en porcentaje (bots)

Cuando construyes o editas un bot, configuras `stop_loss_pct` y `take_profit_pct` en la configuración de la estrategia. Estos son movimientos porcentuales medidos desde el precio de entrada de cada posición, aplicados automáticamente a cada posición que abre el bot, de modo que no colocas un stop a mano por operación. El motor del bot revisa estas condiciones de salida en cada ejecución como parte de execute-bots, y cierra cualquier posición cuyo P&L cruce el umbral (el motivo de salida se registra como stop_loss o take_profit).

Si no los configuras, los bots usan valores por defecto razonables: stop-loss del 30% y take-profit del 50%. Estos son puntos de partida, no recomendaciones: ajústalos por estrategia y valídalos con [Backtesting](/docs/backtesting) antes de pasar a live.

Los dos sistemas coexisten. Las reglas porcentuales de un bot cubren todo el portafolio de forma automática; una orden por posición te permite anular o agregar un nivel más ajustado, configurado a mano, en una operación específica que te importe.

Paso a paso: tu primera operación protegida

  1. Abre una posición — paper desde el EV Scanner, o live mediante un bot.
  2. Ve a Posiciones y haz clic en Agregar salida en esa posición.
  3. Configura un stop-loss a una distancia razonable por debajo de tu entrada (dale espacio para el spread y la cadencia de 2 minutos).
  4. Opcionalmente, agrega un take-profit por encima de la entrada para asegurar ganancias.
  5. Confirma. Observa la distancia al disparador en vivo; el cron ahora protege la posición las 24 horas.
  6. Cuando un disparador se activa, recibes una notificación y la posición se muestra como cerrada con el P&L realizado.

Consejos y trampas

  • No coloques stops dentro del spread. En un mercado delgado con un spread de 0.55/0.62, un stop en 0.60 podría dispararse por el ruido normal de las cotizaciones. Coloca los niveles fuera del spread y de la resolución de 2 minutos.
  • Ten en cuenta el lado. Configura siempre el disparador en términos de la pierna que tienes. Si estás long NO, tu stop va sobre el precio NO, y Predite se encarga de la conversión YES↔NO por ti.
  • Los stops no son ejecuciones garantizadas. En un gap, tu salida real puede ser peor que el disparador. Dimensiona las posiciones asumiendo que el stop es una red de seguridad, no un piso preciso.
  • Los disparadores son idempotentes. Una orden disparada se reclama atómicamente antes de ejecutar el cierre, así que ejecuciones de cron superpuestas no pueden cerrar dos veces una posición.
  • Cancelar es un soft-cancel. Eliminar una orden la deja en cancelled y la mantiene en el historial para auditoría: tu registro de órdenes disparadas/canceladas permanece intacto para el [Diario de Operaciones](/docs/trade-journal).
  • Cerrar una posición manualmente deja sus órdenes huérfanas; el cron omite una posición ya cerrada y no dará error, pero ordena las órdenes activas para mantener el panel limpio.
  • Un time-stop ignora el precio: dispara únicamente según el reloj. Combínalo con un stop-loss cuando quieras tanto un piso de precio como una hora de salida obligatoria.

Cómo se conecta con el resto de Predite

El stop-loss se ubica en el centro de tu flujo de trabajo. Usa el [EV Scanner](/docs/ev-scanner) y la [Probabilidad con IA](/docs/ai-probability) para encontrar un edge, la [Calculadora de Kelly](/docs/kelly-calculator) para dimensionarlo, y un stop-loss para acotar el riesgo a la baja de la operación que acabas de dimensionar. Para entradas grandes, combina los stops con [Órdenes TWAP](/docs/twap-orders) para escalar de forma gradual y tener a la vez una salida definida. Cada salida disparada fluye hacia tu [Diario de Operaciones](/docs/trade-journal) y al P&L de tu [Portafolio](/docs/portfolio), y tus estrategias de bot en [Estrategias de Bots](/docs/bot-strategies) llevan sus propios stops basados en porcentaje en cada posición que abren.

Documentos relacionados