Formule de calcul des P&L pour différents actifs tradés

 

Bonjour,

Je me permets de faire un post car je ne trouve pas réponse à ma question : je cherche à calculer les P&L de trades passés ou en cours pour différents types d'actifs tradés.

Contexte :

Je suis en train de développer mon framework de trading algorithmique. Actuellement je peux récupérer les données de différentes plateformes et passer des trades sur des comptes démos ou réels pour lesquels j'ai développé des connecteurs vers différents brokers. Ma boucle en temps pour le passage de trade fonctionne sans problème.

Je m'attaque maintenant à la partie backtest. Je suis en train de créer un "mock" (un broker fictif) qui va calculer les P&L (pertes et gains) de mes trades. Malheureusement je bloque sur la façon dont on est censé calculer cette P&L. Mon but est de pouvoir calculer les P&L passées et en cours pour n'importe quel actif comme le ferait un broker réel.

Je souhaiterais donc avoir la formule permettant de calculer la P&L pour différents types d'actifs tradés (pas les sous-jacents), et aussi connaître les "unités" de chaque terme (un volume/taille de contrat est il sans dimension ou dans une devise?).

Actuellement j'en suis à cette étape (sans réellement connaître les "unités" de tous les termes) :

  • Actions : P&L = (Prix de vente - Prix d'achat) * Nombre d'actions - Frais de transaction
  • Obligations : P&L = (Prix de vente - Prix d'achat) * Montant nominal * Taux de change - Frais de transaction
  • Matières premières : P&L = (Prix de vente - Prix d'achat) * Taille du contrat * Prix du contrat * Taux de change - Frais de transaction
  • Devises : P&L = (Prix de vente - Prix d'achat) * Taille du contrat * Taux de change - Frais de transaction
  • Produits dérivés : P&L = Taille du contrat * (Prix de clôture - Prix d'ouverture) * Taux de change - Frais de transaction
  • Fonds négociés en bourse (ETF) : P&L = (Prix de vente - Prix d'achat) * Nombre de parts * Taux de change - Frais de transaction

Concernant le types d'actifs tradés, je ne suis pas absolument sûr qu'ils soient exhaustifs ou bien définis. Exemple : les CFD sont ils bien couverts par la catégorie "produits dérivés"?

En me penchant sur le trading de devises, je me heurtais au problème de devise dans laquelle est le compte de trading. En effet si j'ai un compte en EUR et que je souhaite trader la paire NOKSEK (Norwegian Kroner vers Swedish Kronor) : comment mes EUR sont ils convertis en NOK ou SEK à la prise de position, puis dans le calcul de ma P&L en EUR passée ou en cours?

Pour résumer :

  • les actifs "actions", "obligations", "matières premières", "devises", "produits dérivés", "ETFs" sont ils exhaustifs et représentent ils concrètement les "objets" tradés?
  • les formules ci-dessus sont elles correctes? Si non, quelles seraient les formules correctes?
  • comment tenir compte de la devise dans laquelle est le compte de trading?
  • quelles sont les "unités" des termes apparaissant des les formules?


Je précise que j'ai un profil scientifique, très bon en mathématiques appliquées et développement logiciel, mais limité sur les concepts de trading pur et dur. Une formule m'ira très bien, je ferai la conversion en code derrière :-).

Merci de votre aide !

 
(traduit automatiquement en français à partir de l'anglais original)

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Formule de calcul du P&L pour différents actifs négociés

Fernando Carreiro , 2023.05.04 14:53

Je suggère de lire les deux fonctions commerciales MQL5 suivantes ...

OrderCalcMargin

Calcule la marge requise pour le type de commande spécifié, dans la devise du dépôt

OrderCalcProfit

Calcule le profit en fonction des paramètres passés, dans la devise du dépôt

Ils calculent respectivement la marge et le profit/perte, en s'ajustant automatiquement au type d'actif, ce qui évite de le calculer manuellement en utilisant les méthodes que vous avez décrites.

Cependant, ils n'incluent pas les commissions ou les swaps. Celles-ci ne sont fournies qu'après coup et sont accessibles via d'autres fonctionnalités — Documentation sur MQL5 : Trade Functions