Bot Market Maker

Cotización bid/ask con control de inventario

Market Maker es un bot de cotización continua. En vez de una grilla fija, mantiene órdenes post-only de compra y venta alrededor del precio actual. Cuando un lado se ejecuta, actualiza inventario, protege el lado de salida y vuelve a cotizar según spread, cap y reglas de riesgo.

Qué intenta conseguir el bot

Busca capturar la diferencia entre compras y ventas manteniendo el inventario bajo control. Si BTC cotiza cerca de $100,000 y la distancia configurada es 34 bps, puede colocar compras algo por debajo y ventas algo por encima. Si una compra se llena, queda long y prioriza vender ese inventario a un precio reductor/profitable mientras decide si puede colocar más compras con seguridad.

Market Maker no es yield pasivo

Puede perder en tendencias fuertes, baja liquidez, flow tóxico, liquidaciones, caídas del exchange o retrasos de API. Empieza pequeño, usa bajo leverage y mercados líquidos. Spread más amplio = menos fills pero más margen; spread más estrecho = más fills y más riesgo.

La idea matemática básica

El bot intenta que cada ciclo cerrado tenga una salida mejor que la entrada, después de comisiones. Para una compra que luego se vende:

Fórmula simple

Ganancia bruta ≈ (precio_venta - precio_compra) × cantidad_base
Coste de fees ≈ notional_compra × fee_maker + notional_venta × fee_maker
Ganancia neta ≈ ganancia_bruta - fees

Ejemplo ilustrativo, no una tarifa de exchange: compra 100 LIT a 1.5000 y vende 100 LIT a 1.5030. La ganancia bruta es (1.5030 - 1.5000) × 100 = 0.30 USDC. Suponiendo una comisión maker total de exchange + MyLiquidBot del 0.02% por lado, las comisiones serían aproximadamente 150.00 × 0.0002 + 150.30 × 0.0002 ≈ 0.0601 USDC. La ganancia neta sería aproximadamente 0.30 - 0.0601 = 0.2399 USDC, antes de funding y otros costes. Sustituye la tarifa supuesta por tu comisión total real.

Por eso el spread configurado no es ganancia limpia. Debe cubrir maker fee de entrada, maker fee de salida, posibles fills parciales, slippage si se cierra a mercado y movimientos rápidos entre entrada y salida.

Comportamiento general

1

Lee mercado e inventario

En cada ciclo lee snapshot de mercado, órdenes abiertas y posición del bot. Si el exchange y la base de datos no cuadran, puede bloquear nuevas colocaciones hasta reconciliar.

2

Cotiza ambos lados cuando está flat

Sin inventario relevante puede colocar bids (compras) y asks (ventas). Normalmente son limit post-only para intentar operar como maker.

3

Se ajusta cuando aparece inventario

Si queda long, asks reducen riesgo y bids aumentan riesgo. Si queda short, bids reducen riesgo y asks aumentan riesgo. El lado que aumenta riesgo puede hacerse más pequeño, más lejano, más lento o bloquearse según el uso del cap.

4

Protege salidas

Las órdenes reductoras intentan cerrar inventario con profit floor o target por tramo. El motor trackea fills y recovery lots para emparejar entradas con salidas reduce-only adecuadas.

5

Refresca órdenes obsoletas

Si el mercado se mueve, cancela/reemplaza cotizaciones demasiado lejos, demasiado cerca, por debajo del mínimo del exchange u obsoletas.

Paso a paso: crear un Market Maker

1

Selecciona exchange, nombre y par

Elige la conexión de un exchange compatible, pon un nombre claro y selecciona un mercado líquido.

2

Usa leverage bajo

Empieza con 1× o 2×. El bot puede acumular inventario en ambos lados y más leverage aumenta riesgo de liquidación.

3

Elige perfil de riesgo

Conservative es más lento y defensivo. Balanced es el default normal. Aggressive cotiza más rápido y permite más exposición.

4

Define tamaño y caps en USDC

Order size per buy/sell es el notional de cada orden individual, no inversión total. Max bot position value, Max short position y Max long position son límites de exposición.

5

Define distancia y refresh

Buy/Sell distance y Minimum allowed distance controlan el spread. Refresh period controla cada cuánto revisa y rearma.

6

Revisa preview y empieza pequeño

Confirma precios bid/ask estimados, valor por orden, position guard y notional mínimo antes de crear.

Referencia de configuraciones

CampoQué significaEfecto práctico
Order size per buy/sell (USDC)Notional aproximado de cada orden.Más tamaño gana/pierde más por fill y llega antes al cap.
Max bot position value (USDC)Límite de exposición si no usas caps separados.El bot se vuelve defensivo al acercarse.
Max short / Max long positionCaps separados para short y long.Permite distinto riesgo para pumps vs dumps.
Buy/Sell distanceSpread objetivo en bps. 34 bps = 0.34%.Más amplio = menos fills y más margen. Más estrecho = más fills y más riesgo.
Minimum allowed distanceSpread mínimo tras ajustes automáticos.Evita cotizar demasiado cerca para cubrir fees.
Refresh periodCada cuánto puede refrescar el motor.Más corto reacciona antes; más largo reduce churn.
Risk profilePreset de spread, caps, velocidad, niveles y riesgo.Conservative protege más; Aggressive opera más activo.
Reference pricePrecio usado para preview y conversión de caps.Auto/live es preferible; manual es fallback.
Cap stop modeQué hacer si el inventario supera la zona de stop.Default: pausar nuevas entradas; modos fuertes pueden reducir o cerrar exposición.

Límites de posición y entradas detenidas

El límite introducido en dólares se convierte a una cantidad de moneda usando el precio de referencia al configurar el bot; esa cantidad no crece automáticamente si el precio baja. Revisa el límite de moneda mostrado, también para los límites long/short separados. Llegar al máximo puede bloquear nuevas entradas sin cancelar las salidas ni cerrar la posición. Si el límite de moneda no coincide con el importe que querías asignar, revisa los campos disponibles en Editar y consulta soporte; no aumentes el riesgo ni canceles salidas para forzar actividad.

Breakeven, precio medio y entradas adicionales

El bot trackea promedio del exchange y breakeven efectivo para diagnóstico y salidas. El comportamiento actual puede permitir compras o ventas que aumentan riesgo aunque no mejoren el promedio/breakeven, siempre que las protecciones estructurales lo permitan. Es simétrico: compras long y ventas short pueden comportarse igual.

Qué sigue protegiendo la cuenta

Límites de exposición, paradas de seguridad, cooldowns, mínimos del exchange, checks de frescura de precio y reconciliación con el exchange pueden seguir bloqueando, reduciendo o cancelando órdenes.

Por qué puedes ver un cierre negativo en el DEX aunque el bot cerró trades positivos

Un Market Maker puede mostrar muchos ciclos positivos y aun así tener la cuenta o el cierre final en negativo. La razón normalmente es el inventario no realizado: el bot puede ir ganando pequeñas diferencias de spread, pero acumular una posición long o short que se mueve en contra.

ConceptoQué miraEjemplo
Ciclo cerrado positivoUna entrada y su salida emparejada.Compra 1.5000, vende 1.5030: positivo después de fees.
PnL no realizadoInventario que sigue abierto.Quedan 100 LIT comprados a 1.5000 y el mark baja a 1.4500: hay -5 USDC no realizados.
Cierre negativo en el DEXEl exchange calcula la posición total que se está cerrando.Si cierras a mercado el inventario acumulado por debajo del promedio, el DEX puede mostrar pérdida aunque varios lotes anteriores hayan ganado spread.

Ejemplo completo: el bot gana 20 ciclos de +0.05 USDC cada uno, total +1.00 USDC. Pero durante la bajada queda long con 200 USDC de exposición y el precio cae 2%. Ese inventario tiene aproximadamente -4.00 USDC no realizados. Resultado aproximado: +1.00 - 4.00 = -3.00 USDC. El usuario puede pensar que “todos los trades ganaron”, pero la cuenta general está negativa por la posición abierta.

No confundas ciclo positivo con bot positivo

Para evaluar un Market Maker mira siempre tres cosas juntas: realized PnL, unrealized PnL/inventario abierto y exposición long/short actual. Si solo miras las operaciones cerradas, puedes ignorar el riesgo que todavía queda abierto en el DEX.

Cómo leer las estadísticas del Market Maker

El detalle de Market Maker separa calidad de estrategia de resultado total actual del bot. Esto es intencional: un bot puede capturar spread en muchos lotes cerrados y aun así estar negativo si el inventario que queda abierto se movió en contra. Lee las tarjetas en este orden:

Total principal ahora

Profit total estimado = PnL realizado contable + PnL de inventario - comisiones estimadas. Es la mejor estimación del panel sobre cuánto vale el bot ahora si lo paras y cierras el inventario actual cerca del mark mostrado. Sigue siendo una estimación, no una reconciliación exacta de equity del exchange, porque el slippage final, fees reales, funding, depósitos/retiros y trades manuales pueden cambiar el resultado real de la cuenta.

StatQué significaPor qué apareceCómo usarlo
Current bot positionInventario actual atribuido al bot. Positivo = long, negativo = short y cerca de cero = flat. Avg entry es la entrada media del inventario que sigue abierto.El riesgo principal del Market Maker viene del inventario. Antes de juzgar profit necesitas saber si el bot todavía tiene exposición.Si la posición es grande frente al cap, el bot puede estar defensivo aunque los ciclos cerrados se vean bien.
Grid ProfitSuma del profit realizado por todos los cierres ejecutados por el Market Maker. Cada cierre aporta su resultado contra la entrada del inventario que reduce.Mide el profit realizado por la actividad de farming de spread del bot.Es independiente del accounting y no descuenta sus fees. Las fees y el PnL contable se muestran por separado.
Inventory PnLPnL mark-to-market del inventario que sigue abierto ahora mismo. Inventario long gana si el mark está por encima del avg entry; inventario short gana si el mark está por debajo.Muestra el riesgo que todavía no se realizó. Este número puede convertir un buen Grid Profit en un resultado total negativo.Si paras o cierras el bot, esta parte abierta pasa a realizarse, con posible slippage y fees finales.
Total Profit Estimated / Profit total estimadoEstimación total actual principal: PnL realizado contable + PnL de inventario actual - fees estimadas.Responde la pregunta del usuario: “aproximadamente cuánto va ganando o perdiendo este bot si lo paro y cierro ahora”. Incluye reducciones o cortes ya realizados en pérdida, que ya no aparecen dentro del Inventory PnL abierto.Úsalo como total actual principal. Trátalo como estimado, no como equity final/exacto del exchange.
Closed cyclesNúmero de ciclos/lotes emparejados completados. W/L muestra ganadores y perdedores; matched % muestra cuánto historial de cierres pudo emparejarse limpiamente con una entrada.El profit es más confiable cuando hay suficientes ciclos y buena cobertura de matching.Si el matched % es bajo, lee Grid Profit con más cautela y revisa el ledger/historial de fills.
Closed volumeVolumen notional total de los ciclos cerrados usados para el profit de ciclos. Net cycle return es profit neto de ciclos dividido por volumen cerrado.Normaliza el profit por tamaño operado. Ganar $10 no significa lo mismo sobre $500 de volumen que sobre $50,000.Úsalo para comparar eficiencia entre bots o mercados.
Since last syncReplay contable/de ciclos desde el último sync o baseline de inventario. Puede ser menor que el historial completo después de un resync.El sync reconstruye inventario/estado contable actual sin borrar el historial anterior de lotes cerrados.Si esto sale pequeño tras un sync reciente, revisa Grid Profit/lotes cerrados históricos antes de asumir que desapareció el historial.
Fills processedCantidad de fills que el bot procesó, más volumen total de fills. Incluye entradas, salidas, parciales y actividad que puede seguir abierta.Es una señal de actividad/cobertura, no un número de profit.Muchos fills con poco profit puede indicar spread demasiado estrecho, fees, churn o inventario arrastrando el resultado.
Accounting realized PnLPnL cerrado reconstruido por contabilidad de promedio de posición usando la totalidad de los fills.Es una métrica contable independiente de Grid Profit, aunque ambos observen los mismos cierres desde contratos distintos.No lo uses para sustituir Grid Profit; sirve para reconciliación contable.
Regla de lectura más importante

Grid Profit te dice si el bot captura spread. Profit total estimado te dice el total actual estimado del bot si paras/cierras ahora. Un bot sano idealmente debe tener Grid Profit positivo/consistente, Inventory PnL controlado y un Profit total estimado que no esté destruido por exposición abierta o pérdidas ya realizadas.

Lógica de profit y detalle del ledger de fills

El bloque inferior de lógica de profit y el ledger de órdenes ejecutadas explican de dónde salen los números principales. Son herramientas de diagnóstico para entender por qué el bot está verde o rojo, no “profit extra” que debas sumar otra vez.

DetalleSignificadoPor qué importa
Real breakeven pricePrecio estimado donde el inventario abierto quedaría en cero contando el profit ya realizado.Ayuda a decidir si el inventario restante puede cerrarse sin devolver el profit previo. La dirección importa: long necesita precio por encima del breakeven; short necesita precio por debajo.
Avg captured spreadEdge bruto y neto promedio capturado por lote cerrado, mostrado en bps. 100 bps = 1%.Muestra si el spread configurado alcanza después de fees. Si el net bps es bajo o negativo, el bot puede estar haciendo churn.
Gross vs net profitProfit bruto de lotes emparejados menos fees estimadas.Las fees pueden reducir mucho un spread aparentemente bueno. Para rendimiento, mira siempre neto.
Avg entry: venue vs bookCompara el promedio del exchange/baseline con el promedio interno del bot. Drift significa diferencia entre ambos.Un drift pequeño puede ser redondeo; uno grande puede indicar exposición manual, fills faltantes, cambios de sync del exchange o problemas de baseline contable.
Trade PnL (lot)PnL de un lote cerrado específico contra su propia entrada.Es la vista más cercana a “compró más bajo, vendió más alto” para ese lote.
Acct. PnL (avg)PnL del mismo cierre contra el promedio global de posición.Puede salir negativo aunque el lot PnL sea positivo. Es normal cuando el bot acumuló inventario a distintos precios.
Position afterInventario que queda después de ese fill.Explica si el fill redujo riesgo o dejó exposición abierta.

En resumen: Profit total estimado es la estimación familiar del total actual, Grid Profit es la nota de la estrategia por ciclos cerrados, e Inventory PnL es el riesgo abierto que todavía puede cambiar antes de cerrar completamente el bot.

Cómo leer el estado del bot

EstadoSignificado
FlatSin inventario significativo; normalmente cotiza bids y asks.
Long inventoryTiene base asset. Asks reducen riesgo; bids aumentan riesgo.
Short inventoryEstá short del base asset. Bids reducen riesgo; asks aumentan riesgo.
Position guard green/yellow/redUso del cap. Amarillo/rojo = comportamiento más defensivo.
PausedCancela órdenes y deja de colocar nuevas, pero el inventario puede seguir abierto.
Close positionCancela órdenes y envía cierre market reduce-only del inventario del bot.

Cómo reparar un Market Maker

Si el bot y el exchange muestran posiciones u órdenes diferentes, abre el detalle del Market Maker y pulsa Repair. El panel indica qué necesita atención y recomienda una acción. Repair restablece la gestión normal del bot; no cambia la estrategia ni recupera pérdidas de trading.

Cuándo es útil Repair

Úsalo si una orden del exchange no aparece reflejada en el bot, una orden completada o cancelada sigue activa, la posición mostrada no coincide con el exchange, falta o es incorrecta una orden de protección ReduceOnly, o Resume sigue bloqueado después de cambios en las órdenes. Un PnL negativo, margen insuficiente, tamaño mínimo o una orden que no se ha llenado no son por sí solos problemas de reparación.

OpciónQué haceCuándo usarla
Repair AllAplica todas las correcciones recomendadas en un solo paso.Úsala cuando el panel detecta más de un problema.
Reconciliar órdenesAlinea las órdenes abiertas del bot con las del exchange.Úsala cuando ambas listas de órdenes no coinciden.
Asentar órdenesActualiza órdenes que ya se llenaron, cancelaron o completaron.Úsala cuando una orden antigua todavía aparece activa en el bot.
Sincronizar posiciónAlinea la posición mostrada por el bot con la posición del exchange.Úsala solo después de confirmar que la posición del exchange pertenece a este bot.
Reparar ReduceOnlyRestablece o ajusta las órdenes ReduceOnly de protección de la posición actual.Úsala cuando la posición no tiene la protección de salida esperada.
1

Comprueba el exchange

Confirma la posición real y las órdenes abiertas, especialmente si también operas el mismo símbolo manualmente o con otro bot.

2

Abre Repair

Revisa la comparación y la acción recomendada antes de continuar.

3

Elige la opción recomendada

Usa una opción para un problema concreto o Repair All si el panel encuentra varios problemas.

4

Verifica el resultado

Recarga el bot y el exchange. Si todavía no coinciden, no repitas la acción: contacta con soporte.

Repair puede modificar órdenes reales

Revisa la recomendación antes de confirmar. Repair no cierra la posición a mercado, pausa el bot, cambia la estrategia ni garantiza una salida rentable. Verifica siempre el exchange después.