Cette page a été traduite automatiquement. La version anglaise fait référence. Lire en anglais
Aller au contenu principal

Prévention des auto-transactions (STP)

Protection automatique contre les auto-transactions.

Vue d'ensemble

Lorsqu'un ordre entrant (taker) devrait être apparié avec un ordre au repos (maker) provenant du même portefeuille, le moteur annule les deux ordres au lieu de les exécuter. Cela empêche le wash trading et protège les teneurs de marché contre le croisement accidentel de leurs propres cotations.

Le STP est toujours actif. Il n'y a aucune configuration, aucune possibilité de désactivation et aucun mode alternatif.

Comportement

Stratégie : annulation des deux ordres

Lorsqu'une auto-transaction est détectée :

  1. L'ordre maker est annulé avec le motif "Self-trade prevention"
  2. L'ordre taker est rejeté (s'il n'y a eu aucune exécution préalable) ou annulé (s'il a été partiellement exécuté)

Aucune exécution n'est générée entre les deux ordres.

Appariement au niveau du portefeuille

Le STP compare les adresses de portefeuille, pas les clés d'agent. Si vous utilisez l'autorisation d'agent pour signer des ordres depuis plusieurs clés, tous les ordres relevant du même portefeuille de trading sont soumis au STP les uns envers les autres.

Les exécutions partielles sont préservées

Si un ordre taker est exécuté contre d'autres contreparties avant de rencontrer une auto-transaction, ces exécutions sont conservées.

Exemple : le carnet contient 5 contrats offerts par le portefeuille B, puis 5 contrats offerts par le portefeuille A. Le portefeuille A soumet un ordre d'achat de 10 contrats :

ÉtapeAppariement avecRésultat
1Portefeuille B (5 contrats)Exécution : 5 contrats exécutés
2Portefeuille A (5 contrats)Auto-transaction détectée

Résultat :

  • Le portefeuille A obtient une exécution de 5 contrats contre le portefeuille B
  • L'ordre maker du portefeuille A (5 contrats) est annulé
  • L'ordre taker du portefeuille A est annulé avec filled_size: 5

Statut des ordres

ScénarioStatut du takerMotif
Aucune exécution préalableRejected"Self-trade prevention"
Exécutions partielles avant l'auto-transactionCanceled"Self-trade prevention (partial fill kept)"

L'ordre maker est toujours Canceled avec le motif "Self-trade prevention".

Les ordres GTC ne restent pas au repos après une auto-transaction

Si un ordre taker GTC déclenche le STP, la quantité restante n'est pas ajoutée au carnet, même si l'ordre devrait normalement y rester. L'ordre est entièrement clôturé.

Notifications WebSocket

L'annulation/le rejet du taker et du maker sont tous deux transmis sur le canal order_updates. Le champ reason indique que le STP en est la cause.

Surveillance

Les événements STP incrémentent le compteur Prometheus ht_engine_self_trade_prevented_total.

FAQ

Puis-je choisir un autre mode STP (par exemple, annulation du plus récent ou décrémentation) ? Non. Hypercall utilise exclusivement l'annulation des deux ordres.

Le STP s'applique-t-il aux ordres sur perpétuels ? Oui. Le STP s'applique à tous les types d'ordres sur le moteur d'appariement, aussi bien pour les options que pour les contrats perpétuels.

Le STP s'applique-t-il aux transactions RFQ ? Oui. Si le taker et un fournisseur de cotation partagent le même portefeuille, la cotation est rejetée.

Je suis un teneur de marché cotant les deux côtés. Mes cotations vont-elles s'annuler mutuellement ? Uniquement si un ordre entrant devait provoquer leur croisement. Les ordres au repos placés de part et d'autre du carnet à des prix différents coexistent normalement. Le STP ne se déclenche qu'au moment de l'appariement.