Esta página fue traducida automáticamente. El original en inglés es la versión canónica. Leer en inglés
Saltar al contenido principal

Prevención de Auto-Negociación (STP)

Protección automática contra la auto-negociación.

Resumen

Cuando una orden entrante (taker) coincidiría con una orden en reposo (maker) de la misma wallet, el motor cancela ambas órdenes en lugar de ejecutarlas. Esto previene el wash trading y protege a los market makers de cruzar accidentalmente sus propias cotizaciones.

STP está siempre activo. No hay configuración, no hay opción de exclusión y no existen modos alternativos.

Comportamiento

Estrategia: Cancelar Ambas

Cuando se detecta una auto-negociación:

  1. La orden maker se cancela con el motivo "Self-trade prevention"
  2. La orden taker es rechazada (si no tuvo ejecuciones previas) o cancelada (si fue ejecutada parcialmente)

No se genera ninguna ejecución entre las dos órdenes.

Comparación a Nivel de Wallet

STP compara direcciones de wallet, no claves de agente. Si usted utiliza autorización de agentes para firmar órdenes desde múltiples claves, todas las órdenes bajo la misma wallet de trading están sujetas a STP entre sí.

Las Ejecuciones Parciales Se Conservan

Si una orden taker se ejecuta contra otras contrapartes antes de encontrar una auto-negociación, esas ejecuciones se conservan.

Ejemplo: El libro tiene 5 contratos ofrecidos por la Wallet B, y luego 5 contratos ofrecidos por la Wallet A. La Wallet A envía una orden de compra por 10 contratos:

PasoCoincide ContraResultado
1Wallet B (5 contratos)Ejecución: 5 contratos ejecutados
2Wallet A (5 contratos)Auto-negociación detectada

Resultado:

  • La Wallet A recibe una ejecución de 5 contratos contra la Wallet B
  • La orden maker de la Wallet A (5 contratos) es cancelada
  • La orden taker de la Wallet A es cancelada con filled_size: 5

Estado de la Orden

EscenarioEstado del TakerMotivo
Sin ejecuciones previasRejected"Self-trade prevention"
Ejecuciones parciales antes de la auto-negociaciónCanceled"Self-trade prevention (partial fill kept)"

La orden maker siempre queda como Canceled con el motivo "Self-trade prevention".

Las Órdenes GTC No Quedan en Reposo Tras una Auto-Negociación

Si una orden taker GTC activa el STP, la cantidad restante no se añade al libro, incluso si la orden normalmente quedaría en reposo. La orden se termina por completo.

Notificaciones por WebSocket

Tanto la cancelación/rechazo del taker como del maker se entregan por el canal order_updates. El campo reason indica que el STP fue la causa.

Monitoreo

Los eventos de STP incrementan el contador de Prometheus ht_engine_self_trade_prevented_total.

Preguntas Frecuentes

¿Puedo elegir un modo de STP diferente (por ejemplo, cancelar la más nueva o decrementar)? No. Hypercall utiliza exclusivamente la cancelación de ambas órdenes.

¿El STP aplica a las órdenes de perpetuos? Sí. El STP aplica a todos los tipos de órdenes en el motor de emparejamiento, tanto opciones como perpetuos.

¿El STP aplica a las operaciones RFQ? Sí. Si el taker y un proveedor de cotizaciones comparten la misma wallet, la cotización es rechazada.

Soy un market maker cotizando ambos lados. ¿Mis cotizaciones se cancelarán entre sí? Solo si una orden entrante provocara que se crucen. Las órdenes en reposo en lados opuestos del libro a precios diferentes coexisten normalmente. El STP solo se activa en el momento del emparejamiento.