Archives pour la catégorie Front Office

Quelles sont les activités prises en charge par le front office et comment l’informatique les simplifie? (market data, trade entry, algo trading, HFT…)

Exécutions de trades FX (Foreign Exchange)

Le marché des devises, le Foreign Exchange, aussi appelé FX ou encore FOREX est le plus gros marché financier au monde, pourtant, contrairement à beaucoup d’actifs, les devises ne sont pas échangées sur un marché listé mais de gré à gré. Cet article explique comment un trade FX est exécuté et quels sont les messages FIX utilisés pour ce type de transaction.

Aperçu du FOREX

De par sa nature de gré à gré, le Foreign eXchange est en fait composé de différentes plates-formes sur lesquelles plusieurs acteurs interviennent:

Les plus gros acteurs du Foreign Exchange sont les grosses banques (Goldman Sachs, JP Morgan, BNP P…) qui s’échangent des devises sur ce que l’on appelle le marché interbancaire.

Les acteurs de plus petites importance tels que les hedge funds, certains dealers de petite taille, les entreprises et les particuliers accèdent généralement au FX grâce à l’un des membres du marché  interbancaire via un ECN ou un dealer.

ECN et dealers FX

Les 2 façons les plus communes d’accéder au Foreign eXchange sont les ECNs et les Dealers:

Un ECN (Electronic Communication Network) regroupe de nombreux participants et fournit les ordres d’achat et de vente de ses membres. En gros il met en relation les différents acteurs qui proposent de la liquidité avec les acteurs souhaitant effectuer des transactions. Parmi les ECN les plus connus, on trouve HotspotFXi, FXAll, EBS ou encore Currenex.

Le dealer quand à lui va être la contrepartie de la plupart (voire toute) les transactions passées via sa plate-forme. Il se rémunère généralement via des écarts de prix d’achat et de vente (spread) plus importants que sur un ECN. Lorsque des particuliers accèdent au FOREX en ligne, ils utilisent la plupart du temps un dealer.

Les produits négociés sur le FOREX

Les devises sur le FX sont traitées par paires: on utilise une devise pour en acheter un autre. On trouve non seulement des transactions standard d’achat et de vente de devise immédiatement (transactions « spot ») mais aussi des produits dérivés comme des forwards, swaps, options et NDF (Non Deliverable Forwards)

Maintenant que nous avons vu les bases du FOREX, voyons comment le protocole FIX peut être utilisé pour fournir des cotations ainsi qu’exécuter des transactions FX.

Les messages de cotations

Le protocole FIX propose 2 méthodes de base pour recevoir les cotations sur le FOREX: la demande de cotation via un message de « QuoteRequest » (message FIX de type ‘R’) ou l’inscription à un flux de données via un message de « Market Data Request » (message FIX de type ‘V’). Nous nous intéresserons ici au premier cas.

messages FIX quote FOREX
Messages FIX utilisés pour les cotations du FOREX

Le principe de demande de cotation est simple: le client demande au dealer le prix d’une paire de devise et le dealer lui fourni cette info (ou un message d’erreur le cas échéant.

Pour cela le client utilise un message de « Quote Request » (demande de cotation, message FIX de type ‘R’). Ce message contient quelques informations cruciales telles que:

Symbol -tag 55: La “currency pair” qui veut être achetée ou vendue (par exemple USD/EUR)

Side –tag 54: Indique si le client veut acheter ou vendre.

QuoteType – tag 537: Indique le type de cotation, soit « indicative » soit « tradeable »

OrderQty –tag 38: la quantité souhaitée pour la transaction

Currency –tag 15: La devise de base, celle qui est indiquée dans le champ quantité.

Si le message de demande de cotation est bien formaté, le dealer répondra en utilisant un message de « Quote », message type ‘S’ en FIX. Ce message indique les quantités disponibles à l’achat et à la vente ainsi que la durée de validité de la cotation. Les tags utiles (Bid/Offer price & quantity) sont indiqués sur l’illustration.

En cas d’erreur ou de message invalide, le dealer répondra via un message d’erreur « Quote Request Reject » de type ‘AG’

Pour le détail des messages de « Quote Request », « Quote » et  » « Quote Request Reject », fiximate est votre ami.

Les messages d’exécution

Pour exécuter un ordre sur le FX, les messages FIX utilisés sont similaires à ceux que l’on peut rencontrer sur les autres classes d’actifs:

L’envoi d’un nouvel ordre se fait via un « New Order Single » (message de type ‘D’), et les confirmations de réception et d’exécution se font via un « Execution Report » (message de type ’8′)

les messages FIX d'exécution pour le FX
flux de messages utilisés pour exécuter un trade sur le forex

On trouve dans le message d’envoi d’ordre 2 nouveaux tags intéressants:

Client Order ID – tag 37: Ce tag représente une valeur unique pour chaque ordre (par jour) il peut être utilisé pour annuler ou modifier un ordre envoyé précédemment

Order Type – tag 40: Indique le type d’ordre, par exemple d’il s’agit d’un order « Market » (pour effectuer la transaction au prix courant du marché) ou « Limit » (pour effectuer la transaction a un prix spécifique ou plus intéressant).

En réponse à l’envoi d’ordre, le dealer confirmera la réception puis l’exécution. On les tags OrdStatus et ExecType pour différencier ces informations.

Order Status – tag 39: Indique que l’ordre est nouveau dans le cas de la confirmation de réception et indique que l’ordre est rempli (« filled ») après l’exécution

Execution Type- tag 150: Indique que l’ordre est nouveau dans le cas de la confirmation de réception et indique que l’ordre est exécuté (« trade ») après l’exécution

 

Messages d’annulation d’ordre

En plus des échanges de messages standard, il est fréquent d’un ordre soit annulé. Les messages utilisés sont similaires à ceux vus ci-dessus, avec en plus le message d’annulation d’ordre: « Order Cancel Reject » message de type ’9′

messages FIX d'annulation d'ordre FOREX
Les messages FIX utilisés pour annuler un ordre FX

Le début du processus est le même que lors de l’exécution  normale, mais cette fois le client annule l’ordre avant qu’il soit exécuté.

Pour cela il suffit d’envoyer un message « Order Cancel Reject » en spécifiant l’ordre à annuler dans le tag 41 OrigClOrdID.
Le dealer confirmera la demande à l’aide d’un « Execution Report »

 

Quelques liens:

En plus de fiximate, la ressource de base pour le fix, le site d’onixs propose des explications utiles de base sur la façon dont on utilise les instruments  FOREX en FIX.

Enfin, pour découvrir le fix, vous pouvez jeter un oeil à notre article d’introduction au protocole FIX