Analicé 10 millones de operaciones de bots en Polymarket con Claude: cómo los bots ganan más de $1,000 al día

@Dan1ro0
INGLÉShace 3 semanas · 27 jun 2026
236K
58
9
8
148

TL;DR

Un análisis técnico de 10 millones de operaciones de bots en Polymarket, que detalla cinco modelos específicos de obtención de beneficios y los marcos matemáticos detrás de ellos.

Para el trader promedio, un mercado a corto plazo de Polymarket parece simple:

¿El Bitcoin estará más alto o más bajo dentro de cinco minutos?

Un bot de trading ve un problema completamente diferente.

Está rastreando el precio subyacente, el tiempo hasta el vencimiento, la liquidez en ambos lados, los mercados relacionados y su propio inventario en vivo, todo a la vez:

Daniro - inline image

Enlace de la billetera: https://polymarket.com/@bonereaper?via=dan-kwpx

Mientras un humano aún está decidiendo si comprar Up o Down, el bot ya puede haber:

**> ingerido una nueva señal de precio > revalorizado el resultado > comparado con el precio del contrato > verificado mercados vecinos > publicado múltiples órdenes límite > reconfigurado toda su posición**

Así es como algunos de estos sistemas convierten pequeñas brechas de precio en más de $1000 en ganancias diarias.

Ejecuté la actividad de más de 1000 bots y más de 10 millones de ejecuciones en los mercados Up/Down de criptomonedas de corta duración de Polymarket a través de Claude.

Al principio, el trading parece completamente caótico. La misma billetera compra Up, agrega Down segundos después, vende parte de la primera posición y termina el mercado manteniendo ambos resultados.

Pero una vez que reconstruyes el ciclo de vida completo de la operación, el ruido comienza a tener sentido. Generalmente hay un sistema muy específico debajo.

Así es como funciona toda la máquina 👇

1. Por qué se utilizan bots de trading en Polymarket

La principal ventaja de un bot no es la predicción perfecta de Bitcoin.

Su ventaja proviene de la velocidad, la consistencia y la capacidad de procesar más información de la que un humano puede monitorear de manera realista a la vez:

Daniro - inline image

Enlace de la billetera: https://polymarket.com/@0xb55fa1296e6ec55d0ce53d93b9237389f11764d4-1777575277609?via=dan-kwpx

Un contrato de corta duración no se valora solo por si Bitcoin se está moviendo hacia arriba o hacia abajo.

El algoritmo también debe tener en cuenta:

**> distancia desde el precio de apertura > velocidad del último movimiento > tiempo restante > volatilidad actual > profundidad del libro de órdenes > los precios de Up y Down > comportamiento en mercados relacionados > el feed exacto utilizado para la resolución**

En un mercado de cinco minutos, una oportunidad real puede existir durante solo unos segundos.

Un humano aún puede estar cambiando entre gráficos mientras otro algoritmo ya está tomando la liquidez disponible y reemplazando sus órdenes.

La mayoría de los bots de trading se construyen en torno a cinco componentes principales:

  1. Capa de Datos - transmite precios externos y actualizaciones del libro de órdenes
  2. Motor de Señales - detecta cambios que pueden afectar el resultado
  3. Modelo de Probabilidad - calcula una probabilidad justa independiente
  4. Motor de Ejecución - coloca, cancela y ajusta órdenes
  5. Gestor de Riesgos - controla el tamaño de la posición y bloquea operaciones que exceden límites predefinidos

Una señal que el Bot puede calcular directamente desde el libro de órdenes es el desequilibrio entre el volumen de compradores y vendedores:

python
1def orderbook_imbalance(bids, asks):
2 bid_volume = sum(size for price, size in bids)
3 ask_volume = sum(size for price, size in asks)
4
5 total_volume = bid_volume + ask_volume
6
7 if total_volume == 0:
8 return 0.0
9
10 return (
11 bid_volume - ask_volume
12 ) / total_volume
13
14bids = [
15 (0.48, 1_250),
16 (0.47, 920),
17 (0.46, 680)
18]
19
20asks = [
21 (0.49, 640),
22 (0.50, 510),
23 (0.51, 430)
24]
25
26imbalance = orderbook_imbalance(bids, asks)
27
28print(f"Order-book imbalance: {imbalance:.2%}")

Un valor positivo significa que hay más volumen de compradores en la sección analizada del libro. Un valor negativo significa que el volumen de vendedores es mayor. Esta señal por sí sola no prueba que el precio se moverá.

Las órdenes grandes pueden cancelarse, y la liquidez ubicada lejos del mejor precio puede nunca afectar la ejecución.

Pero combinado con el movimiento de Bitcoin, el tiempo restante y los feeds de precios externos, se convierte en una parte de una señal más fuerte.

Un bot no es útil porque opera automáticamente cada movimiento del mercado. Un sistema sólido gana su ventaja al rechazar la mayoría de las configuraciones antes de que se conviertan en posiciones.

2. Después de recibir una señal, el Bot actualiza la probabilidad con Bayes 🧮

Supongamos que Up se cotiza a 41¢.

Bitcoin acelera repentinamente, el volumen aumenta y el libro de órdenes comienza a mostrar una presión compradora más fuerte.

Un humano puede pensar:

Este movimiento se ve fuerte.

Up

puede estar infravalorado

El algoritmo necesita una respuesta más precisa:

¿Exactamente cuánto cambió esta señal la probabilidad de

Up

?

Aquí es donde entra el teorema de Bayes.

Daniro - inline image

Enlace de la billetera: https://polymarket.com/@0xce25e214d5cfe4f459cf67f08df581885aae7fdc-1777575398144?via=dan-kwpx

Bayes permite que el modelo comience con una probabilidad existente y la actualice después de recibir nueva evidencia.

La fórmula es:

P(Up | Señal) = P(Señal | Up) × P(Up) / [P(Señal | Up) × P(Up) + P(Señal | Down) × P(Down)]

Donde:

P(Up)

*es la probabilidad antes de la nueva señal *

P(Señal | Up)

*es la frecuencia con la que aparece esta señal antes de un resultado Up *

P(Señal | Down)

*es la frecuencia con la que aparece antes de un resultado Down *

P(Up | Señal)

es la probabilidad actualizada

Supongamos:

la probabilidad original de

Up

*es 41% esta señal aparece en el 64% de los escenarios históricos de*

Up

la misma señal aparece en el 35% de los escenarios de

Down

*

python
1def bayes_update(
2 prior_up,
3 signal_given_up,
4 signal_given_down
5):
6 numerator = signal_given_up * prior_up
7
8 denominator = (
9 numerator
10 + signal_given_down * (1 - prior_up)
11 )
12
13 return numerator / denominator
14
15prior = 0.41
16
17posterior = bayes_update(
18 prior_up=prior,
19 signal_given_up=0.64,
20 signal_given_down=0.35
21)
22
23print(f"Previous probability: {prior:.2%}")
24print(f"Updated probability: {posterior:.2%}")

La estimación actualizada es aproximadamente 56%. Si el contrato aún se cotiza a 41¢, el bot ve una brecha medible:

*valor justo interno - 56% precio de mercado - 41¢ ventaja teórica - 15 puntos porcentuales*

Para un humano, esto puede parecer una buena idea de trading. Para un Bot, es una diferencia específica entre el valor justo y el precio de mercado actual.

Sin embargo, Bayes no es un atajo de predicción.

Si el modelo da demasiado peso a señales débiles o cuenta la misma información varias veces, el resultado estará consistentemente distorsionado.

Un movimiento de precio, un aumento de volumen y un desequilibrio en el libro de órdenes pueden parecer tres confirmaciones separadas cuando en realidad son tres efectos del mismo evento.

Un modelo sólido debe tener en cuenta esa superposición.

3. Un contrato mal valorado no es automáticamente una operación rentable

Incluso si el modelo valora Up en 56%, comprarlo a 41¢ no genera ganancias automáticamente.

La ejecución real incluye:

*> comisiones del tomador > diferencial entre oferta y demanda > deslizamiento > llenados parciales > deterioro del precio > incertidumbre del modelo*

Por lo tanto, el bot calcula la ventaja neta: la ganancia que queda después de que la posición realmente se ejecuta.

python
1def calculate_net_edge(
2 model_probability,
3 execution_price,
4 fee,
5 slippage,
6 safety_buffer
7):
8 gross_edge = (
9 model_probability - execution_price
10 )
11
12 net_edge = (
13 gross_edge
14 - fee
15 - slippage
16 - safety_buffer
17 )
18
19 return gross_edge, net_edge
20
21gross, net = calculate_net_edge(
22 model_probability=0.56,
23 execution_price=0.47,
24 fee=0.017,
25 slippage=0.005,
26 safety_buffer=0.010
27)
28
29print(f"Gross edge: {gross:.2%}")
30print(f"Net edge: {net:.2%}")

La brecha original de nueve puntos cae a aproximadamente seis puntos después de costos.

Si la liquidez es limitada, el bot solo puede llenar una pequeña parte de la posición a 47¢. El tamaño restante puede necesitar comprarse a un precio más alto.

La ventaja puede desaparecer antes de que se construya la posición completa. La misma lógica se aplica al arbitraje binario.

Si cantidades iguales de Up y Down pueden adquirirse por menos de $1 después de todos los costos, un lado eventualmente pagará $1.

Pero el sistema debe usar el precio de ejecución real ponderado por volumen, no simplemente el precio más atractivo visible en la parte superior del libro de órdenes.

Aquí es donde un backtest limpio y la ejecución en vivo a menudo producen resultados muy diferentes. Un humano nota un precio inusual. Un Bot debe demostrar que queda suficiente valor después de incluir los costos del mercado.

4. La mejor ventaja a menudo existe entre mercados relacionados 🕸

Los contratos de corta duración no se mueven de forma aislada.

Un movimiento de Bitcoin puede afectar todos los siguientes:

> la ventana actual de

BTC

*5m > la siguiente ventana de cinco minutos > *

BTC

*15m > *

BTC

*1h > los mercados relacionados de *

ETH

y

SOL

*

Pero estos mercados no siempre se actualizan a la misma velocidad.

Cada contrato tiene su propio libro de órdenes, liquidez, nivel de apertura y participantes.

Por ejemplo:

>

BTC

*5m puede revalorizarse inmediatamente > *

BTC

*15m puede responder menos de lo esperado > una ventana vecina puede retener su desequilibrio de libro anterior > un contrato puede volverse caro > otro puede seguir cotizando sobre supuestos desactualizados*

Daniro - inline image

Enlace de la billetera: https://polymarket.com/@flippingsharks?via=dan-kwpx

El bot mide si la brecha entre mercados relacionados se ha movido fuera de su rango normal.

Una herramienta simple es el z-score:

Z = (diferencial actual − diferencial promedio) / desviación estándar

python
1def spread_zscore(
2 current_spread,
3 average_spread,
4 spread_deviation
5):
6 return (
7 current_spread - average_spread
8 ) / spread_deviation
9
10z = spread_zscore(
11 current_spread=0.112,
12 average_spread=0.036,
13 spread_deviation=0.025
14)
15
16print(f"Spread z-score: {z:.2f}")

Una lectura superior a 3 significa que la brecha actual está muy fuera del rango que el modelo observa normalmente.

Eso no crea automáticamente una operación. Un mercado puede estar genuinamente rezagado. O el mercado que se movió primero puede haber incorporado información que los contratos vecinos aún no han procesado.

Un Bot tampoco puede comparar BTC 5m y BTC 15m solo mirando sus precios Up.

Tienen diferentes niveles de apertura y diferentes cantidades de tiempo restante.

Un sistema serio compara cuánto se ha alejado cada contrato de su propio modelo de valor justo.

Un humano observa un mercado. Un bot observa una red de probabilidades conectadas e identifica la parte que temporalmente se ha alejado del resto.

5. Cinco formas en que los Bots convierten la ventaja en una posición 🔄

Una vez que la señal ha sido confirmada, la probabilidad actualizada y la ventaja neta sigue siendo positiva, comienza la etapa más interesante.

El bot debe decidir cómo construir y gestionar la posición.

Después de agrupar ejecuciones individuales en ciclos de trading completos, aparecieron cinco modelos recurrentes.

1️⃣ Rotación Dinámica de Posición

Este sistema actualiza continuamente su visión y puede cambiar de dirección varias veces dentro del mismo contrato. Supongamos que el modelo considera que Up está infravalorado al comienzo de un mercado de cinco minutos.

Comienza a acumular Up a través de órdenes límite.

Entonces la configuración cambia:

Bitcoin

*pierde impulso el precio vuelve hacia el nivel de apertura los compradores desaparecen del libro de órdenes la probabilidad de *

Up

del modelo disminuye

El bot no tiene que mantener la posición original hasta la resolución. Puede vender parte de su Up, cancelar las órdenes restantes y comenzar a acumular Down.

Si el mercado cambia de nuevo, la posición puede reconstruirse una vez más. El objetivo no es identificar el resultado final perfectamente en el primer intento.

El objetivo es permanecer más expuesto al lado que actualmente está por debajo de la estimación actualizada del modelo.

La fortaleza de este enfoque es que el bot puede abandonar una visión desactualizada de inmediato.

La principal debilidad son las falsas reversiones repetidas.

Durante una ventana ruidosa, el sistema puede:

comprar

Up

* después de un movimiento al alza reducirlo después de un retroceso cambiar a *

Down

* reducir *

Down

después del siguiente movimiento al alza

Los costos de ejecución y los cambios de posición repetidos pueden eliminar gradualmente la ventaja original.

Por lo tanto, un bot de rotación debe cambiar de dirección solo cuando la nueva señal es lo suficientemente fuerte como para cubrir el costo de salir, reconstruir la posición y potencialmente equivocarse nuevamente:

Daniro - inline image

Enlace de la billetera: https://polymarket.com/@trinity42?via=dan-kwpx

2️⃣ Arbitraje Temporal

El arbitraje tradicional aparece cuando Up y Down pueden comprarse al mismo tiempo por menos de $1.

El arbitraje temporal construye los dos lados en momentos diferentes. Imagina que Bitcoin se mueve bruscamente al alza poco después de abrir el mercado.

Down cae a 26¢, y el bot acumula gradualmente 750 contratos a un precio promedio de 27.4¢. Dos minutos después, Bitcoin devuelve la mayor parte del movimiento y cotiza más cerca del nivel de apertura.

Ahora Up se vuelve más barato, y el bot compra 750 Up a un precio promedio de 49.8¢.

La estructura final es:

*750 Down a 27.4¢ 750 Up a 49.8¢ costo total por par completo - 77.2¢*

Independientemente del resultado final, un contrato de cada par paga $1. Eso crea un margen bruto de 22.8¢ por par antes de comisiones y costos de ejecución. El detalle clave es que Down a 27.4¢ y Up a 49.8¢ nunca estuvieron disponibles al mismo tiempo.

El bot creó el arbitraje a partir de dos estados de mercado diferentes. Sin embargo, la primera compra aún está expuesta al riesgo direccional.

Si Bitcoin continúa moviéndose al alza, el bot puede nunca recibir un precio de Up suficientemente atractivo para completar el par.

Entonces se quedaría con 750 contratos Down que continúan perdiendo valor.

Por lo tanto, el sistema rastrea:

*cantidad mantenida en cada lado costo promedio de ambos resultados costo del inventario ya protegido tamaño de la posición direccional no emparejada tiempo máximo permitido para esperar el segundo lado*

Algunos bots construyen la estructura en bloques más pequeños.

Pueden comprar 100 Down, esperar hasta que puedan agregar 100 Up, completar el primer par protegido, y solo entonces continuar aumentando el tamaño.

Esto reduce el retorno potencial máximo pero también limita el riesgo de quedarse con una gran posición unilateral.

El arbitraje temporal funciona mejor en mercados con varios movimientos significativos en ambas direcciones.

Un movimiento unidireccional prolongado es su entorno más difícil:

Daniro - inline image

Enlace de la billetera: https://polymarket.com/@garvy?via=dan-kwpx

3️⃣ Bot de Creación de Mercado de Inventario

Este sistema no gestiona una sola posición. Gestiona un inventario completo de contratos.

Puede operar:

*BTC, ETH y SOL mercados de 5m, 15m, 1h y 4h tanto Up como Down en múltiples ventanas*

El bot compra y vende en pequeñas cantidades mientras rastrea continuamente el costo total de su inventario. Supongamos que ha acumulado ambos lados de un contrato. Cerca del vencimiento, Down se convierte en el claro favorito y se mueve a 98¢.

En lugar de simplemente esperar la resolución, el bot puede:

*vender parte del inventario caro de Down liberar capital antes del liquidación mantener el resto de la posición principal comprar una pequeña cantidad de Up a 2¢ mover el capital disponible a otro mercado*

Comprar el lado de bajo precio puede parecer inusual inicialmente.

Pero una pequeña posición a 1–2¢ puede actuar como una protección económica contra un movimiento final repentino. Si nada cambia, el costo es limitado. Si Bitcoin cruza inesperadamente el nivel de apertura, la pequeña posición Up puede compensar parte de la pérdida en otro lugar.

El bot de inventario también puede aprovechar las diferencias entre mercados relacionados.

Un contrato puede ofrecer un buen precio de entrada. Otro puede proporcionar una liquidez más profunda para una salida. Un tercero puede ofrecer el lado opuesto a un precio inusualmente bajo.

El principal desafío es el costo promedio del inventario completo.

Si el costo promedio de Up es 56¢ y el costo promedio de Down es 49¢, un par protegido cuesta $1.05.

La resolución solo paga $1.

Para recuperar esa diferencia de cinco centavos, el sistema necesita ganancias adicionales al vender inventario caro, mantener un desequilibrio direccional controlado, ganar reembolsos de creador o mover capital de manera más eficiente entre mercados:

Daniro - inline image

Enlace de la billetera: https://polymarket.com/@polkadot-frog?via=dan-kwpx

4️⃣ Bot Direccional Cubierto

Esta estructura se encuentra entre el arbitraje puro y una posición completamente direccional.

Supongamos que el bot tiene:

*280 Up 257 Down*

Los primeros 257 Up y 257 Down forman una base protegida. Independientemente del resultado final, un lado de este bloque paga $257. Los 23 contratos Up restantes crean una inclinación direccional.

Si Up es el resultado final, esos contratos adicionales aumentan el pago. Si Down es el resultado final, la posición opuesta cubre la mayor parte de la exposición.

El sistema está diciendo efectivamente:

Mi modelo actualmente favorece Up, pero no quiero que toda la posición dependa de un solo resultado.

El tamaño del desequilibrio puede cambiar durante el mercado. Cuando la confianza aumenta, el bot agrega más Up. Cuando la señal se debilita, reduce Up o compra Down adicional.

Mantener ambos lados no hace automáticamente que la estructura sea eficiente.

Si los pares protegidos se construyeron por encima de $1, crean un margen negativo garantizado.

Supongamos que el costo promedio del par es $1.04. Los 23 contratos Up adicionales primero deben recuperar la pérdida en la base protegida, junto con comisiones y deslizamiento.

Solo después de eso la posición completa se vuelve rentable.

En algunos casos, una cobertura costosa es menos eficiente que mantener una posición direccional más pequeña:

Daniro - inline image

Enlace de la billetera: https://polymarket.com/@uuddlrlr?via=dan-kwpx

5️⃣ Bot de Captura de Resolución Tardía

El último modelo se centra casi por completo en la etapa final del mercado.

Cuando un resultado está cerca de determinarse, el lado final probable aún puede cotizarse a 98–99¢. El bot compra el volumen restante disponible y espera el pago de $1.

Por ejemplo:

*entrada a 98.6¢ pago a $1 ganancia bruta - 1.4¢ por contrato*

El retorno de cada operación es pequeño, por lo que el sistema escanea un gran número de mercados y utiliza un volumen sustancial.

La estrategia puede parecer altamente predecible, pero su perfil de retorno es muy desigual.

Si 99 operaciones generan un centavo cada una y una posición de 99¢ se resuelve incorrectamente, las ganancias anteriores pueden desaparecer.

Esa única ejecución incorrecta puede deberse a:

*un movimiento brusco en el último segundo una diferencia entre los feeds de precios un nivel de apertura incorrecto una actualización de resolución retrasada una mala interpretación de las reglas del mercado una orden que permanece activa demasiado tiempo*

Por lo tanto, un sistema de resolución tardía necesita más que velocidad.

Debe saber exactamente qué feed determina el resultado y qué tan lejos está el valor actual del límite del contrato.

La estructura final de la posición se puede analizar mediante programación.

python
1def inspect_position(
2 up_quantity,
3 down_quantity,
4 up_average_price,
5 down_average_price
6):
7 protected_pairs = min(
8 up_quantity,
9 down_quantity
10 )
11
12 directional_up = max(
13 up_quantity - down_quantity,
14 0
15 )
16
17 directional_down = max(
18 down_quantity - up_quantity,
19 0
20 )
21
22 pair_cost = (
23 up_average_price
24 + down_average_price
25 )
26
27 return {
28 "protected_pairs": protected_pairs,
29 "extra_up": directional_up,
30 "extra_down": directional_down,
31 "average_pair_cost": pair_cost,
32 "pair_margin": 1 - pair_cost
33 }
34
35position = inspect_position(
36 up_quantity=280,
37 down_quantity=257,
38 up_average_price=0.51,
39 down_average_price=0.46
40)
41
42print(position)

Pero una instantánea final aún no revela la estrategia completa.

Para entender el sistema, necesitas saber cómo se construyó la posición, qué partes se vendieron y cómo cambió el costo promedio con el tiempo.

6. Encontrar una mala valoración no es suficiente — el bot aún tiene que capturarla 🎯

Supongamos que el bot encuentra una oportunidad para comprar Up y Down por un total combinado de 94¢. Envía ambas órdenes. Up se llena por completo.

Antes de que Down se llene, el mercado se mueve, la liquidez disponible desaparece y el segundo lado se vuelve más caro.

El arbitraje ya no existe.

El bot ahora tiene una posición direccional abierta de Up.

Esto es riesgo de inventario.

Un sistema sólido no puede simplemente identificar precios inusuales. Debe gestionar todo el proceso de ejecución.

Necesita decidir:

*cuánto tiempo esperar por el segundo lado cuándo ajustar la orden límite cuánto desequilibrio es aceptable cuándo permanecer como creador y cuándo ejecutar como tomador si reducir el primer lado después de que la ventaja desaparece*

Una forma de manejar esto es mediante una lógica inspirada en el modelo Avellaneda–Stoikov.

La idea central es simple: la cotización aceptable debe cambiar según el inventario ya mantenido.

Una fórmula simplificada es:

Precio de reserva = Precio justo − Inventario × Riesgo × Volatilidad² × Tiempo

python
1def reservation_price(
2 fair_price,
3 inventory,
4 risk_aversion,
5 volatility,
6 time_remaining
7):
8 inventory_adjustment = (
9 inventory
10 * risk_aversion
11 * volatility ** 2
12 * time_remaining
13 )
14
15 return fair_price - inventory_adjustment
16
17quote = reservation_price(
18 fair_price=0.57,
19 inventory=0.40,
20 risk_aversion=0.80,
21 volatility=0.18,
22 time_remaining=0.25
23)
24
25print(f"Inventory-adjusted quote: {quote:.3f}")

Si el bot ya tiene demasiado Up, debería estar menos dispuesto a comprar Up adicional.

Al mismo tiempo, puede volverse más agresivo al adquirir Down para reducir el desequilibrio.

El tipo de orden también importa:

GTC

*permanece activa hasta que se llena o se cancela *

GTD

*expira en un momento específico *

FOK

*se llena completamente o se cancela *

FAK

*llena la cantidad disponible y cancela el resto *

Post-only

asegura que la orden agregue liquidez

En un mercado de cinco minutos, la calidad de la ejecución puede importar más que la predicción inicial.

El modelo puede estimar el valor justo correctamente y aun así perder dinero si la posición se construye demasiado lentamente o a un precio promedio ineficiente.

7. La última capa es el dimensionamiento de posiciones y la protección de capital 🛡

Una ventaja fuerte no justifica asignar todo el capital disponible a un solo mercado.

Siempre existe la posibilidad de que:

*el modelo sobrestimó la señal el segundo lado no se completa la liquidez desaparece la ejecución promedio es peor de lo esperado varias posiciones correlacionadas pierden valor juntas*

Un punto de partida común para el dimensionamiento de posiciones es el criterio de Kelly.

La fórmula es:

f = (b × p − q) ÷ b

\*

Donde:

p

* es la probabilidad de éxito *

q = 1 − p

* es la probabilidad de fracaso *

b

* es el pago neto relativo a la cantidad en riesgo *

f

\ es la fracción de capital de Kelly completo*

En la práctica, muchos sistemas usan solo una fracción del resultado.

python
1def fractional_kelly(
2 win_probability,
3 entry_price,
4 fraction=0.25
5):
6 lose_probability = 1 - win_probability
7
8 net_odds = (
9 1 - entry_price
10 ) / entry_price
11
12 full_kelly = (
13 net_odds * win_probability
14 - lose_probability
15 ) / net_odds
16
17 return max(
18 full_kelly * fraction,
19 0
20 )
21
22allocation = fractional_kelly(
23 win_probability=0.61,
24 entry_price=0.50,
25 fraction=0.25
26)
27
28print(f"Capital allocation: {allocation:.2%}")

El Kelly fraccional reduce la probabilidad de que una estimación de modelo inexacta o una mala ejecución cause daños importantes a la estrategia.

El sistema luego aplica límites estrictos:

*tamaño máximo por posición exposición máxima por activo límite de inventario no cubierto límite de pérdida diaria apagado de emergencia cuando los datos no son fiables*

La correlación también importa.

BTC 5m, BTC 15m, ETH 5m y SOL 5m pueden parecer mercados separados, pero durante un movimiento amplio de cripto, todos pueden perder valor al mismo tiempo.

El rol del gestor de riesgos no es maximizar el tamaño de cada oportunidad atractiva.

Su rol es asegurarse de que un solo escenario no pueda eliminar la capacidad del sistema para seguir operando.

8. Cómo se ve el stack completo del bot ⚙️

Un bot moderno de Polymarket no es un solo script de Python que compara Binance con el precio Up.

Generalmente opera en varias capas.

Capa 1 - Datos de Mercado

Precios externos, el feed oficial de resolución, libros de órdenes en vivo, ejecuciones recientes y el estado de las órdenes propias del bot.

Capa 2 - Señales

Movimiento de precios, volumen, volatilidad, desequilibrio del libro y dislocaciones entre mercados relacionados.

Capa 3 - Probabilidad

El modelo actualiza la probabilidad justa cada vez que llega información nueva significativa.

Capa 4 - Lógica de Posición

El sistema elige entre rotación, arbitraje temporal, gestión de inventario, un hedge direccional o ejecución tardía de resolución.

Capa 5 - Ejecución y Riesgo

Las órdenes se colocan, cancelan y ajustan mientras el inventario y el tamaño de la posición se mantienen dentro de los límites predefinidos.

Capa 6 - Investigación

Claude se utiliza para analizar el historial de trading, identificar estructuras recurrentes, escribir backtests y estudiar ciclos de trading no exitosos.

El bucle de alto nivel puede verse así.

python
1async def run_bot():
2 while True:
3 state = await receive_market_update()
4
5 signal = build_signal(state)
6 probability = update_probability_model(
7 state,
8 signal
9 )
10
11 edge = scan_for_edge(
12 state,
13 probability
14 )
15
16 if not edge["tradable"]:
17 continue
18
19 position_plan = choose_position_model(
20 state,
21 edge
22 )
23
24 orders = build_execution_plan(
25 state,
26 position_plan
27 )
28
29 if risk_manager_approves(
30 orders,
31 state
32 ):
33 await send_orders(orders)

Claude puede ayudar a identificar qué estructuras se repiten en millones de ejecuciones históricas.

Pero el bucle de trading de baja latencia en sí mismo debe permanecer determinista: recibir los datos, aplicar las reglas, verificar los límites y enviar la orden.

Conclusión: los bots rentables hacen mucho más que elegir Up o Down

Los mercados de corta duración parecen ser contratos direccionales simples.

Un sistema rentable realiza una secuencia mucho más larga:

*recibe una nueva señal la convierte en una probabilidad verifica el edge neto compara mercados relacionados selecciona una estructura de posición gestiona la ejecución limita el riesgo*

Algunos bots rotan entre Up y Down varias veces dentro de la misma ventana. Otros acumulan ambos lados en diferentes momentos. Algunos gestionan un gran inventario a través de varios marcos temporales. Otros mantienen una base protegida con un pequeño sesgo direccional.

Un grupo separado se enfoca en capturar la diferencia de precio restante poco antes de la resolución.

Pero la fórmula central suele ser similar:

*datos fiables y una estimación de probabilidad independiente edge después de costos la estructura de posición correcta ejecución precisa riesgo controlado*

Estos bots no saben dónde estará Bitcoin en cinco minutos.

Simplemente son más rápidos en calcular lo que cada posible resultado debería valer ahora mismo.

Gracias por ver mi artículo, ¡agradecería sus comentarios!

Sígueme en X✌️: https://x.com/Dan1ro0**

Únete a mi Telegram para más**✍️: https://t.me/+VDXq5wkZ2AIxMDBi

Guardar con un clic

Lee artículos virales en profundidad con IA en YouMind

Guarda la fuente, haz preguntas concretas, resume el argumento y convierte un artículo viral en notas reutilizables en un único espacio de trabajo con IA.

Explora YouMind
Para creadores

Convierte tu Markdown en un artículo de 𝕏 impecable

Cuando publicas tus propios textos largos, dar formato en 𝕏 a imágenes, tablas y bloques de código es un fastidio. YouMind convierte un borrador completo en Markdown en un artículo de 𝕏 impecable y listo para publicar.

Prueba Markdown a 𝕏

Más patrones por descifrar

Artículos virales recientes

Explorar más artículos virales