FAK order explained: how Fill-And-Kill works on Polymarket
A deep-dive for active traders into how a FAK order works on Polymarket, execution mechanics, edge cases, and practical tactics for intra-market arb and tight markets.
FAK order explained: how Fill-And-Kill works on Polymarket
Respuesta corta: una orden FAK (Fill-And-Kill) en Polymarket es una instrucción de tipo mercado que intenta ejecutarse de inmediato contra el CLOB y cancela cualquier resto no llenado. Esta guía, pensada para traders activos, explica la mecánica de ejecución, cómo se comporta FAK a nivel de tick, modos de fallo comunes y tácticas prácticas para arbitraje intra-market y mercados ajustados.
Puntos clave
- FAK se ejecuta inmediatamente contra órdenes en reposo en el CLOB de Polymarket y cancela cualquier cantidad sobrante; piensa en ella como una orden de mercado con cancelación automática del residuo.
- El helper del CLOB en el SDK expone una única utilidad createMarketOrder que devuelve el comportamiento FAK; las FAK tienen protección contra slippage integrada en comparación con ejecuciones de mercado ingenuas.
- Cambios de tick y ticks cercanos al extremo (0.01 vs 0.001) pueden alterar la ejecución efectiva. Comprueba siempre el tamaño de tick y el midpoint antes de enviar una FAK.
- FAK elimina el riesgo de maker pero te expone a fills parciales, slippage, comisiones de taker, riesgo de resolución y disputas del oracle — nunca llames a una ejecución FAK "sin riesgo" sin enumerar estos puntos.
- Para arbitraje intra-market, las FAK son útiles para capturar edges fugaces, pero debes presupuestar fills parciales, comisiones y tiempos de liquidación.
Por qué Polymarket usa FAK (la razón práctica)
El CLOB de Polymarket soporta tanto órdenes limit como un helper de orden de mercado que se comporta como FAK. El diseño coincide con el enfoque sin gas y orientado a UX del exchange: la mayoría de usuarios esperan ejecución instantánea cuando eligen ruteo estilo mercado, pero el protocolo también debe evitar posiciones abiertas indefinidas dejadas por órdenes de mercado agresivas. FAK satisface ambas necesidades: ejecuta de inmediato y mata el resto, evitando que órdenes agresivas permanezcan en el libro.
Mecánica de ejecución (paso a paso)
- Indicas al cliente o al SDK crear una orden de mercado. El helper emite una FAK contra el CLOB.
- La orden recorre el libro, haciendo match contra órdenes limit en reposo en niveles de precio ascendentes (para compras) o descendentes (para ventas), hasta que se llena la cantidad objetivo o no existe más liquidez en precios permitidos.
- Cualquier cantidad no emparejada instantáneamente se cancela (se mata). Nunca dejas una orden limit agresiva abierta en el libro.
- El exchange cobra comisiones de taker sobre la cantidad ejecutada. Las comisiones de maker son cero para la liquidez en reposo que golpeas.
Tamaños de tick y su efecto sobre FAK
Polymarket usa un tamaño de tick dinámico. Normalmente es $0.01, pero cuando los precios se acercan a extremos (por encima de 0.96 o por debajo de 0.04) el tick se ajusta a $0.001. Dos consecuencias prácticas:
- Los pasos de precio que puedes cruzar al recorrer el libro cambian. Con tick más fino, una FAK puede ejecutarse en puntos de precio más granulares, reduciendo slippage en mercados muy sesgados.
- Tu midpoint y el edge percibido pueden desplazarse cuando cambia el tamaño de tick. Comprueba siempre el tick actual antes de dimensionar una FAK.
Slippage, fills parciales y el rol del helper del SDK
FAK está diseñada para evitar dejar cantidad abierta, pero no garantiza llenado completo. Los fills parciales ocurren cuando la profundidad en el libro en reposo es insuficiente para tu tamaño en el momento de la sumisión. El helper createMarketOrder del SDK normalmente devuelve la cantidad ejecutada y el precio promedio para que puedas reaccionar programáticamente.
Dos patrones comunes que usan los traders:
- FAKs de tamaño pequeño y repetidos: divide un objetivo grande en muchas FAKs pequeñas y envíalas en rápida sucesión para consumir la liquidez visible mientras reduces el impacto por orden.
- FAK única agresiva: úsala cuando necesites exposición inmediata y aceptes slippage probable y comisiones de taker.
Comisiones y economía
Polymarket aplica comisiones de taker por categoría (variables, actualmente entre 0% y 1.8% según las bandas de la plataforma). Las comisiones de maker son cero. Para arbitrajes de corta duración con márgenes estrechos, incluye explícitamente las comisiones de taker en tu cálculo de edge. Si ruteas órdenes a través de un Builder, las comisiones de builder (en puntos base) y los niveles del Builder Program también pueden afectar la economía.
Riesgos que debes considerar
Nunca llames a una ejecución FAK "sin riesgo" sin listar los siguientes riesgos:
- Resolución y disputas del oracle: las disputas de UMA pueden pausar la liquidación y cambiar el calendario de P&L realizado.
- Slippage y fills parciales: FAK puede llenarse parcialmente o a precios peores de lo esperado mientras cancela el resto.
- Cambios de comisiones y comisiones de builder: las comisiones de taker y de builder reducen el edge realizado.
- Tiempo de liquidación y demora en merge/redeem: los tokens son ERC-1155 y requieren operaciones CTF para crear y redimir sets completos.
- Riesgo de contratos inteligentes y operativo: aunque Polymarket patrocina el gas mediante el Relayer, bugs en contratos o caídas del relayer son riesgos a nivel de protocolo.
Modos de fallo comunes y cómo detectarlos
- Fill parcial inmediato: la ejecución retornada muestra cantidad menor a la solicitada — maneja esto programáticamente re-evaluando el objetivo restante.
- Fill cero: el libro se movió antes de tu envío. Consulta best_bid_ask y last_trade_price vía el Market WebSocket o lecturas del CLOB y considera lógica de reenvío.
- Cambio inesperado de tick: si el tick se afina mientras tu estrategia asumía pasos de $0.01, tu perfil de slippage esperado puede invalidarse. Suscríbete a eventos tick_size_change en el Market WS.
Tácticas prácticas para arbitraje y mercados ajustados
- Para arbitraje intra-market binario (comprar ambas caras cuando Σ bestAsk < $1.00), prefiere FAKs pequeños y simultáneos en ambas patas para evitar que una pata se llene y la otra no. Si una pata se llena parcialmente, puedes quedar net-long o net-short — prepárate para cubrir o deshacer la posición.
- Monitorea el libro off-chain: usa Market WS best_bid_ask y last_trade_price para asegurar que la liquidez que esperas sigue presente antes de enviar FAKs.
- Al operar cerca de resolución o en spreads muy ajustados, reduce el tamaño de orden e incrementa la frecuencia. El comportamiento del spread es efímero en mercados líquidos y puede cerrarse en segundos.
- Ten en cuenta comisiones de taker y de builder cuando calcules el edge. Un edge nominal puede desaparecer una vez incluyes comisiones y riesgo de fill parcial.
Cómo afecta esto a tu trading
Si operas con frecuencia o ejecutas un bot de arbitraje, trata a FAK como tu primitiva de ejecución de mercado por defecto en Polymarket. Su comportamiento de cancelar de inmediato evita que dejes órdenes pasivas con precios agresivos en el libro, pero introduce incertidumbre de ejecución. Construye lógica para:
- Comprobar el tamaño de tick y best_bid_ask inmediatamente antes de cada FAK.
- Limitar el tamaño de orden relativo a la profundidad visible; prefiere muchas FAKs pequeñas frente a una sola grande cuando el libro es delgado.
- Registrar cantidades ejecutadas y precios promedio para contabilidad post-trade; el helper del SDK devuelve estos valores.
- Incluir siempre comisiones de taker y builder en las comprobaciones de rentabilidad e incluir riesgo de resolución y liquidación en la conciliación post-trade.
Recursos y lecturas siguientes
- Polymarket CLOB explainer: /guides/polymarket-clob-explained
- Mecánica de arbitraje intra-market: /guides/intra-market-binary-arbitrage-explained
- Manual completo de arbitraje: /guides/polymarket-arbitrage-complete-guide
Nota de cierre
FAK order explained, de forma concisa: es una orden estilo mercado FAK que se ejecuta inmediatamente en el CLOB de Polymarket y cancela cualquier resto. Úsala para capturar edges fugaces, pero diseña alrededor de fills parciales, cambios de tick y comisiones.
Preguntas frecuentes
¿Cuál es la diferencia entre una FAK y una orden de mercado simple en Polymarket?
Polymarket expone un helper de orden de mercado que implementa la semántica Fill-And-Kill: ejecuta inmediatamente contra la liquidez en reposo y cancela cualquier resto no llenado. En la práctica, eso significa que no dejarás una orden limit agresiva en el libro tras la sumisión; la cantidad residual se cancela. El createMarketOrder del SDK devuelve la cantidad ejecutada y el precio promedio para que puedas manejar fills parciales.
¿Cómo debo dimensionar las órdenes FAK para arbitraje?
Dimensiona las FAKs en función de la profundidad visible del libro. Cuando el spread es fino, divide tu objetivo en múltiples FAKs pequeñas para reducir el impacto por orden. Para arbitraje binario intra-market, envía las dos patas simultáneamente en tamaños que puedas esperar razonablemente que el top-of-book llene; prepárate para cubrir si una pata sólo se llena parcialmente.
¿Las órdenes FAK pagan comisiones de maker o taker?
Las ejecuciones FAK se tratan como fills de taker y están sujetas a las comisiones de taker de Polymarket (variables por categoría). Las comisiones de maker para liquidez en reposo son cero. Si ruteas a través de un Builder, pueden aplicar también comisiones de builder en puntos base.
¿Puede revertirse una ejecución FAK si UMA disputa la resolución?
No — las disputas de UMA afectan la resolución y el momento de la liquidación después de que el trading ha concluido. Las operaciones ejecutadas con FAK son finales on-chain; sin embargo, las disputas de resolución pueden retrasar las operaciones de redeem/settle y por tanto afectar el momento del P&L realizado.
¿Cómo puedo detectar un cambio de tamaño de tick antes de enviar una FAK?
Suscríbete al Market WS (wss://ws-subscriptions-clob.polymarket.com/ws/market) y escucha eventos tick_size_change. También consulta las lecturas públicas del CLOB para metadatos de tick actuales. Ajusta el dimensionamiento y las expectativas de slippage cuando los ticks se afi nen de $0.01 a $0.001 cerca de extremos de precio.
Términos referenciados
Guías relacionadas
Solo con fines educativos. No es asesoramiento financiero, legal ni fiscal. Polymarket puede no estar disponible en tu jurisdicción.