Journal fictif : Marc enregistre 171 opérations et une perte de 4200 EUR. Des champs de contexte lui permettent d'isoler après coup un segment perdant 2700 EUR, soit environ 64,3 % du total. Ce constat ne prouve pas qu'exclure ce segment produira 8100 EUR de bénéfice futur. Les vingt-cinq champs proposés ici sont un choix éditorial, pas une norme du secteur.

Partir de la question, puis définir les lignes

Un journal court peut répondre à une question simple. Ajoutez des colonnes seulement si elles permettent une vérification identifiable ; une donnée manquante ne se reconstitue pas automatiquement. Séparez événement source, décision enregistrée et résultat calculé. Une exécution importée reste une donnée source même si personne ne l'a saisie manuellement.

Dans cette proposition, une ligne de synthèse représente une idée de trading. Une feuille d'opérations distincte relie les exécutions partielles par identifiant d'idée : deux sorties ne sont pas automatiquement deux signaux indépendants. Conservez compte, devise, démo/réel, fuseau, version de stratégie et spécification dans les sources ou le dictionnaire. N'additionnez pas résultats USD et PLN sans conversion définie. Les quatre groupes contiennent 10 ; 5 ; 5 et 5 champs.

Dix champs pour les données de l'opération

  1. Date et heure d'entrée, par exemple YYYY-MM-DD et HH:MM, avec fuseau documenté.
  2. Instrument : symbole exact, fournisseur et produit. XAU/USD cote l'or, pas deux monnaies.
  3. Sens : achat/long ou vente/short, nécessaire au signe du résultat.
  4. Prix d'entrée réellement exécuté ; gardez le prix demandé séparément pour étudier le glissement.
  5. Stop prévu et type d'ordre ; le prix de sortie réel reste distinct, un stop ordinaire ne garantissant pas ce niveau.
  6. Objectif prévu s'il existe, ou règle alternative de sortie documentée.
  7. Taille et unités de contrat par lot : le nom conventionnel du lot ne suffit pas pour tous les produits.
  8. Prix de sortie réellement exécuté, qu'elle soit manuelle ou issue d'un ordre.
  9. Date et heure de sortie, permettant de calculer la durée de détention.
  10. Résultat monétaire net dans la devise définie, avec les coûts applicables.

Pour un contrat linéaire simple, le résultat brut en devise de cotation vaut signe du sens×(sortie−entrée)×quantité. Appliquez ensuite conversion et frais propres au contrat. Les prix Ask/Bid incorporent déjà le spread ; ne le retirez pas une seconde fois. Commission et financement peuvent être des écritures séparées. Le mot ECN ne détermine pas un coût universel en euros.

Cinq champs de risque avec dénominateur explicite

  1. Risque monétaire initial prévu rapporté au solde ou aux fonds propres de référence, clairement nommés.
  2. Résultat en R : résultat net divisé par risque initial positif et valide.
  3. Restitution du gain latent depuis excursion favorable maximale jusqu'à la sortie, avec parcours enregistré.
  4. Exposition selon une base définie et comparable.
  5. Corrélation estimée avec fenêtre, méthode et séries utilisées.

800 EUR pour 400 EUR de risque initial donnent 2 R ; 1200 pour 1000 donnent 1,2 R. Ce classement ne dit pas quelle stratégie est meilleure.150/50=3 R et−50/50=−1 R. Déplacer ensuite le stop ne réécrit pas le dénominateur initial ; si ce dernier est inconnu, laissez R manquant. Un sommet à+4 R puis sortie+1 R donne 3 R restitués, pas nécessairement le maximum de drawdown de crête à creux : il faut le parcours.

Pour afficher un pourcentage, risque/référence formaté en % ne doit pas être multiplié encore par 100 ; une valeur numérique ordinaire en pourcent exige une multiplication unique. Une corrélation+0,90 ne rend pas deux positions identiques et n'établit pas exactement un risque doublé.

Cinq champs pour expliquer l'entrée

  1. Catégorie de setup définie de façon stable.
  2. Unité de temps du signal.
  3. Conditions de confluence explicitement satisfaites.
  4. Contexte d'annonce programmée, avec heure et fuseau.
  5. Autoévaluation d'état de 1 à 10, avec définitions constantes, enregistrée à l'entrée.

Notez le contexte avant le résultat, sans le reconstruire par intuition. Moyenne, RSI et figure issus des mêmes prix ne sont pas forcément trois informations indépendantes. Huit à dix étiquettes ou cent opérations totales ne garantissent pas l'espérance d'un sous-groupe. Rapporter effectifs, inconnues et incertitude évite de traiter une note sous quatre comme preuve universelle d'espérance négative ou de promettre 15 à 20 points de réussite supplémentaires.

Cinq champs de revue après clôture

  1. Adhérence aux règles sur une échelle 1–10 définie ; séparez changement autorisé et dérogation imprévue.
  2. Nombre d'écarts prédéfinis, par exemple hausse de taille non autorisée ou instruction requise absente.
  3. Une phrase d'observation ou de question liée à la preuve.
  4. Lien vers captures d'entrée et de sortie, avec partage maîtrisé.
  5. Étiquette mensuelle stable pour retrouver phase et contexte.

Exemples fictifs de notes : « entrée avant la clôture H1 requise » ; « sortie+0,8 R au lieu de+2 R prévu : rechercher pourquoi ». Une dérogation gagnante reste une dérogation ; une perte conforme n'est pas automatiquement une faute. Ni note sous sept ni nombre d'écarts ne chiffre à lui seul une perte de 0,3 R. Statistiques de trading : séquences, coûts, zéros et risques complète ces définitions.

Un identifiant local a besoin du compte

Quatre enregistrements fictifs dans cet ordre : A/17 +10 PLN, A/18 −4 PLN, B/17 +7 PLN, puis réimport identique A/17 +10 PLN. Notre audit déterministe vérifie l'identité des répétitions puis conserve le premier de chaque clé complète (compte, ID). Il retient A/17, A/18, B/17 : total+13 PLN. Une mauvaise clé ID seul retenant le premier garde seulement A/17 et A/18 :+6 PLN ; B/17 est perdu.

La clé complète conserve un enregistrement de plus

La clé complète conserve un enregistrement de plusQuatre lignes fictives : A/17 +10 ; A/18 −4 ; B/17 +7 ; A/17 +10 PLN. La dernière est une réimportation identique. La clé compte et identifiant conserve les trois premières, total13PLN. La clé identifiant seul perd B/17 et donne6PLN. Premier conservé est une règle de cet audit, sans garantie Power Query.Compte / IDPLNAudit clé complèteA / 17+10ConserverA / 18−4ConserverB / 17+7ConserverA / 17+10Répétition identiqueCompte + ID : 13 PLN ; ID seul : 6 PLN.
Les comptes A et B constituent deux périmètres distincts ; le numéro 17 n'est pas déclaré globalement unique.

Faites défiler horizontalement ou agrandissez le schéma pour lire les détails.

Compte et numéro localQuatre lignes fictives PLN, ordre déclaré et réimport A/17 identique.EXEMPLE DE CALCULClé complète3 enregistrements,+13PLNID seul2 enregistrements,+6 PLNValeurs contradictoiresConflit à examiner
Compte et numéro local. Quatre lignes fictives PLN, ordre déclaré et réimport A/17 identique.

La clé ID seul perd B/17 ; la règle première occurrence est celle de cet audit, pas une garantie Power Query.

Clé complète
3 enregistrements,+13 PLN – A 17,A 18,B 17.
ID seul
2 enregistrements,+6 PLN – B 17 perdu.
Valeurs contradictoires
Conflit à examiner – Ne pas supprimer aveuglément.

Power Query peut comparer plusieurs colonnes, mais sa suppression des doublons ne garantit pas de garder la première occurrence. Cette règle appartient à notre audit. Si même clé complète et valeurs différentes apparaissent, examinez le conflit au lieu de supprimer une prétendue répétition. Vérifiez aussi le périmètre propre aux exports de votre courtier.

Choisir un outil après rapprochement d'un échantillon

Un tableur donne la main sur les formules ; vérifiez licence, fonctions et import. Excel n'est pas universellement gratuit et les outils payants peuvent aussi permettre des champs personnalisés. Comparez import/export, rapports nécessaires et coût total avec un jeu connu. TraderSync présente des offres récurrentes ; Edgewonk décrit une souscription annuelle facturée tous les douze mois, pas un accès perpétuel pour un ancien prix unique de 169 USD. Devise, taxes, renouvellement et intégrations doivent être vérifiés au paiement ; aucun seuil de mille opérations n'impose de changer d'outil.

Une macro VBA au rôle volontairement limité

La routine ci-dessous conserve le calcul source : feuilleTrades, résultats nets en J, R en L, sorties enDashboard, B2 nombre, B3 taux gagnant, B4 moyenne R, B5 profit factor, B6 net. Les noms techniques et colonnes restent inchangés ; seuls messages visibles sont traduits. Elle inclut zéro dans l'effectif valide, refuse données manquantes appariées, erreurs et non-numériques, et renvoie une valeur indisponible sans pertes pour le profit factor.

Elle ne calcule pas le risque initial, ne contrôle ni devises ni dates, ne dédoublonne pas, n'actualise pas tous les tableaux et n'envoie aucun courriel. Faites ces contrôles séparément avant d'associer le code à un bouton.

Sub CalculateMetrics()
    Dim ws As Worksheet, lastRow As Long, i As Long
    Dim totalTrades As Long, countWins As Long
    Dim sumWins As Double, sumLosses As Double, sumR As Double
    Dim result As Double, rValue As Double
    Dim resultCell As Variant, rCell As Variant
    Dim resultText As String, rText As String
    Set ws = ThisWorkbook.Sheets("Trades")
    lastRow = Application.Max(ws.Cells(ws.Rows.Count, "J").End(xlUp).Row, _
        ws.Cells(ws.Rows.Count, "L").End(xlUp).Row)
    For i = 2 To lastRow
        resultCell = ws.Cells(i, 10).Value2
        rCell = ws.Cells(i, 12).Value2
        If IsError(resultCell) Then
            Err.Raise vbObjectError + 3, , "Valeur d’erreur dans J, ligne " & i
        End If
        If IsError(rCell) Then
            Err.Raise vbObjectError + 4, , "Valeur d’erreur dans L, ligne " & i
        End If
        If IsNull(resultCell) Then
            Err.Raise vbObjectError + 5, , "Résultat Null dans J, ligne " & i
        End If
        If IsNull(rCell) Then
            Err.Raise vbObjectError + 6, , "R Null dans L, ligne " & i
        End If
        resultText = Trim$(CStr(resultCell))
        rText = Trim$(CStr(rCell))
        If Len(resultText) > 0 Or Len(rText) > 0 Then
            If Len(resultText) = 0 Or Len(rText) = 0 Then
                Err.Raise vbObjectError + 1, , "Résultat ou R manquant, ligne " & i
            End If
            If Not IsNumeric(resultCell) Then
                Err.Raise vbObjectError + 2, , "Résultat non numérique dans J, ligne " & i
            End If
            If Not IsNumeric(rCell) Then
                Err.Raise vbObjectError + 2, , "R non numérique dans L, ligne " & i
            End If
            result = CDbl(resultCell)
            rValue = CDbl(rCell)
            totalTrades = totalTrades + 1
            sumR = sumR + rValue
            If result > 0 Then
                sumWins = sumWins + result
                countWins = countWins + 1
            ElseIf result < 0 Then
                sumLosses = sumLosses + Abs(result)
            End If
        End If
    Next i
    With ThisWorkbook.Sheets("Dashboard")
        .Range("B2").Value = totalTrades
        If totalTrades > 0 Then
            .Range("B3").Value = countWins / totalTrades
            .Range("B4").Value = sumR / totalTrades
        Else
            .Range("B3:B4").Value = CVErr(xlErrNA)
        End If
        If sumLosses > 0 Then
            .Range("B5").Value = sumWins / sumLosses
        Else
            .Range("B5").Value = CVErr(xlErrNA)
        End If
        .Range("B6").Value = sumWins - sumLosses
    End With
    MsgBox "Mesures calculées pour " & totalTrades & " opérations.", vbInformation
End Sub

Contrôlez une perte, un gain, un zéro, une valeur manquante, une erreur de cellule et un jeu sans perte. Le temps de calcul dépend du classeur et de la machine ; aucun délai fixe ni test d'exécution Excel n'est revendiqué ici.

Lire les résultats fictifs sans fabriquer une cause

Marc commence avec 12000 EUR et perd 4200 EUR, soit 35 %, sur 171 opérations. Supposons que les sources conservées permettent de classifier rétrospectivement 48 opérations perdant 2700 EUR, soit 64,3 % de la perte totale. À risque initial identique 100 EUR chacune, le total prévu 4800 EUR donne une moyenne−2700/(48 × 100)=−0,5625 R. Avec risques différents, le ratio des sommes n'est plus la moyenne arithmétique des R.

Seconde année entièrement attribuée : 142 opérations, 8100 EUR gagnés, moyenne 0,42 R, profit factor 1,94. 91 gains sur 142 arrondissent à 64 %, contre 80 sur 171 proches de 47 % la première année ; autres résumés attribués alors−0,18 R et profit factor 0,71. Ces agrégats ne reconstruisent ni résultats unitaires ni tailles. Retirer un segment change la politique ; comparer deux années n'isole pas son effet causal.

Autre cas source, explicitement en PLN :+100 sur 100 de risque=+1 R ;−1000 sur 1000=−1 R. Moyenne des deux R : 0, mais net−900 PLN. Diviser les totaux donne−900/1100≈−0,818 R pondéré par risque, pas rendement du compte. Cas EUR distinct :+40 sur 20 de risque donne+2 R et−60 sur 60 donne−1 R ; moyenne+0,5 R malgré−20 EUR nets. La moyenne de ratios répond à une autre question que le total monétaire.

Protocole de mise en route

  1. Rédigez dictionnaire de champs, horodatages et devise ; marquez le contexte inconnu au lieu de l'inventer.
  2. Rapprochez vingt idées sources et leurs exécutions comme petit contrôle, sans seuil de fiabilité statistique.
  3. Calculez Résultat réalisé, R, taux gagnant et profit factor avec dénominateurs documentés ; les zéros restent dans les opérations valides selon votre classification.
  4. À cadence soutenable, examinez complétude et écarts ; gardez définitions des segments stables et testez toute règle modifiée sur des observations ultérieures préservées.

Le Journal de trading soutient une investigation ; vingt-cinq colonnes ne garantissent ni compétence ni profit. Chercher de nombreux segments peut sélectionner du bruit historique. Gardez preuve initiale, comptes et Commission de transaction rapprochés avant d'interpréter une découverte.