In dit artikel
Na dit artikel kun je…
- Plan, bronfill en berekende dagboeksamenvatting scheiden.
- Volledige rekening-ID-sleutels en deeluitstappen juist groeperen.
- R, geldresultaat en profit factor met expliciete noemers controleren.
Begrippen uitgelegd binnen het artikel
Handelslogboek Gerealiseerd resultaat Nominale positiewaarde Saldo Commissie DrawdownEen fictief dagboek telt 171 trades en EUR 4.200 verlies. Met vastgelegde setup- en nieuwscontext kan de eigenaar een segment met EUR 2.700 verlies onderscheiden: circa 64,3% van het totaal. Dat terugkijkende verband bewijst niet dat uitsluiting later EUR 8.100 winst zal geven. De onderstaande 25 velden zijn één voorgesteld ontwerp, geen verplichte industriestandaard.
Begin bij de vraag en behoud de bronregistratie
Een klein dagboek kan resultaten vastleggen maar voor een specifieke vraag context missen. Kies kolommen vanuit wat je wilt onderzoeken: tien handelsvelden, vijf risicovelden, vijf setupvelden en vijf evaluatievelden vormen hier het voorstel. Voeg toe of laat weg als de vraag dat rechtvaardigt, zonder het controleerbare bronrecord te verliezen.
Bewaar brongebeurtenissen, vooraf vastgelegde plannen en berekende samenvattingen afzonderlijk. Ook een geïmporteerde fill is brondata. Eén samenvattingsregel betekent hier één handelsidee; koppel deeluitvoeringen op een apart operatiesblad aan een idee-ID. Twee deeluitstappen zijn niet automatisch twee onafhankelijke signalen. Bewaar rekening, valuta, demo/live, tijdzone en strategieversie in bronrecord of woordenboek. Tel PLN en USD niet op zonder conversieregel.
Tien handelsvelden: plan en daadwerkelijke uitvoering scheiden
- Instapdatum en -tijd: YYYY-MM-DD en HH: MM plus expliciete tijdzone. Dit maakt ordenen en weekdagsegmentatie controleerbaar.
- Instrument: providersymbool en contract. EUR/USD en GBP/JPY zijn valutaparen; XAU/USD is goud in USD, geen twee valuta’s.
- Richting: long of short volgens een vaste definitie.
- Instapprijs: echte fill, apart van de prijs bij het besluit als uitvoering onderzocht wordt.
- Stop: gepland niveau en ordertype; een gewone stop garandeert de uitstapprijs niet.
- Doel: gepland take-profitniveau of de andere gedocumenteerde uitstapregel.
- Hoeveelheid: lots én de werkelijke contracteenheden per lot.
- Uitstapprijs: echte sluitingsfill en verwijzing naar eventuele deeluitvoeringen.
- Uitstapdatum en -tijd: met dezelfde tijdsconventie voor de looptijd.
- Geldresultaat: netto na toepasselijke kosten, berekend uit echte fills.
Bewaar geplande prijzen apart en reconstrueer geen ontbrekende instapcontext met kennis van de afloop. Tien velden bevatten niet automatisch de intratradegegevens voor iedere maatstaf. Commissie en financiering kunnen losse boekingen zijn. Ask/Bid-fills bevatten de spread al; trek die niet nogmaals af. Het label ECN bepaalt geen universele eurokosten per lot.
Vijf risicovelden: eerst de noemer bepalen
EUR 800 uitkomst tegenover EUR 400 initieel gepland risico is 2R; EUR 1.200 tegenover EUR 1.000 is 1,2R. Dat verklaart schaal maar beslist niet welke strategie beter is. Andere maten, bijvoorbeeld rendement op equity, beantwoorden andere vragen.
- Initieel risico als kapitaalratio: gepland geldrisico gedeeld door expliciet gekozen saldo of equity. Bij percentageopmaak niet nogmaals maal honderd; een gewoon getal in procenten vraagt één vermenigvuldiging.
- Netto R: nettoresultaat gedeeld door positief geldig initieel geldrisico. EUR 150/50 = 3R; −50/50 = −1R. Een latere stopwijziging herschrijft die referentie niet. Onbekend beginrisico geeft ontbrekend R, geen verzonnen nul.
- Winstteruggave: bijvoorbeeld piek +4R naar uitstap +1R is 3R. Dit is niet noodzakelijk de grootste tussentijdse piek-daldaling; daarvoor ontbreekt het pad.
- Blootstelling: op een vooraf beschreven vergelijkbare basis, met juiste eenheden.
- Geschatte correlatie: bewaar venster en methode. +0,90 maakt twee posities niet identiek en bewijst niet exact dubbel risico.
Vijf setupvelden: waarom en met welke informatie?
- Setuptype: stabiele gedefinieerde categorieën; vermeld aantallen, ontbrekende gegevens en onzekerheid per segment.
- Timeframe: dat waarop het signaal gedefinieerd is, niet alleen het geopende scherm.
- Confluentie: benoemde voorwaarden. Gemiddelde, RSI en patroon uit dezelfde prijzen zijn niet vanzelf onafhankelijke bevestigingen.
- Geplande gebeurteniscontext: bewaar bron, tijdzone en informatie die toen bekend was.
- Eigen toestandsscore: eventueel 1–10 met vaste betekenis, vóór de afloop ingevuld.
Acht tot tien labels of honderd totale trades garanderen geen betrouwbare expectancy. Zestig of honderd trades bewijzen geen superieur timeframe of 15–20% hogere winstkans. Een toestandsscore onder vier stelt geen universeel negatieve expectancy vast. Onderzoek samenhang en onzekerheid zonder de oorzaak vooraf vast te leggen.
Vijf evaluatievelden: afwijking is iets anders dan verlies
- Naleving: eventueel 1–10 volgens vooraf beschreven regels. Onderscheid toegestane wijziging en ongeplande afwijking.
- Aantal afwijkingen: tel gedefinieerde gebeurtenissen, bijvoorbeeld ongeoorloofde vergroting of ontbrekende vereiste uitstapinstructie.
- Eén observatie of vraag: “Vóór de vereiste voltooide H1-bar ingestapt” of “Op +0,8R gesloten in plaats van +2R; oorzaak onderzoeken”.
- Grafieklink: instap en uitstap met gecontroleerde toegang; inspecteer een deelkopie vóór openbaar delen.
- Maandtag: bijvoorbeeld januari-NFP of februari-EURUSD-range, bruikbaar voor terugvinden.
Geen vast verband van 0,3R verlies per punt onder zeven of bij 90% van traders is hier vastgesteld. Een winstgevende afwijking blijft een afwijking; een volgens plan uitgevoerd verlies is niet automatisch een fout. Tradingstatistieken: winrate, nultrades, volgorde en risicoweging verdiept de berekeningen.
Een lokaal ID vraagt het juiste rekeningbereik
Controleer bereik én inhoud vóór weglaten. Een conflict onder dezelfde sleutel vraagt onderzoek.
- A / 17
- PLN +10 – Behouden als eerste operatie.
- A / 18
- PLN −4 – Andere operatie op dezelfde rekening.
- B / 17
- PLN +7 – Ander rekeningbereik: behouden.
- A / 17 opnieuw
- PLN +10 – Bewezen identieke import: weglaten.
- Correct totaal
- PLN +13 – ID-only met eerste regel zou +6 geven en B/17 verliezen.
Het bronmodel bevat achtereenvolgens A/17 +10, A/18 −4, B/17 +7 PLN en een aantoonbaar identieke herimport A/17 +10 PLN. De eigen deterministische audit bewaart de eerste regel per volledige sleutel (rekening, lokaal ID), na identiteitscontrole. Zij behoudt drie operaties: +13 PLN. Alleen ID vergelijken en de eerste regel houden verliest B/17: +6 PLN. Dit zijn fictieve lokale sleutels, geen verklaring dat echte brokertickets overal dezelfde scope hebben.
Power Query kan meerdere kolommen vergelijken maar garandeert bij verwijderen van duplicaten niet welke eerste regel behouden blijft. Onze vastgelegde eersteregelprocedure is een eigen auditregel, geen softwarebelofte. Verschillende bedragen onder dezelfde complete sleutel zijn een conflict om te onderzoeken, geen identieke herhaling.
Spreadsheet, TraderSync of Edgewonk kiezen
Vergelijk met een bekende dataset import, export, bronkoppeling, benodigde velden en formules. Controleer licentie en beschikbare functies; Excel is niet universeel gratis en betaalde tools kunnen ook aanpasbaar zijn. Bouwtijd hangt van eisen en ervaring af. Geen duizend-tradegrens verplicht tot overstappen.
TraderSync beschrijft terugkerende planniveaus; Edgewonk beschrijft jaarlijkse betaling. Dat is geen eenmalige onbeperkte licentie van USD 169. Controleer actuele valuta, belasting, verlenging, opzegging en echte brokerimport voordat je kiest. Dit artikel beveelt geen abonnement aan op basis van toekomstige winst.
De VBA-illustratie: afgebakende aggregatie
De ongewijzigde technische code hieronder leest geldresultaat J en R-waarde L uit Trades en schrijft naar Dashboard. Zij berekent beginrisico niet zelf, controleert geen rekeningvaluta, dedupliceert geen operaties en ververst geen draaitabellen of e-mail. Gebruik één valuta en een aangesloten geldige regelset. Een geldige nuluitkomst telt mee; profit factor zonder verliezen blijft niet beschikbaar.
Ontbrekende paren, foutwaarden, Null en niet-numerieke waarden worden afgewezen. Value 2 leest celwaarden zonder de specifieke Currency- en Date-typen; numerieke controle certificeert daarom geen juiste datum, valuta of groepering. Controleer vooraf bekende gevallen. Dit artikel bevat geen uitgevoerde Excel-macrotest; technische namen en meldingen in de broncode blijven behouden.
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, , "Error value in J at row " & i
End If
If IsError(rCell) Then
Err.Raise vbObjectError + 4, , "Error value in L at row " & i
End If
If IsNull(resultCell) Then
Err.Raise vbObjectError + 5, , "Null result in J at row " & i
End If
If IsNull(rCell) Then
Err.Raise vbObjectError + 6, , "Null R in L at row " & 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, , "Missing result or R at row " & i
End If
If Not IsNumeric(resultCell) Then
Err.Raise vbObjectError + 2, , "Non-numeric result in J at row " & i
End If
If Not IsNumeric(rCell) Then
Err.Raise vbObjectError + 2, , "Non-numeric R in L at row " & 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 "Metrics calculated for " & totalTrades & " trades.", vbInformation
End Sub
Koppel pas na eigen controle van invoer en output een knop aan een beoordeelde routine. Looptijd is afhankelijk van bestand en machine. Andere automatisering vraagt eigen implementatie en tests.
Een fictief dagboek, geen oorzakelijk succesverhaal
Mark begint in het bronmodel met EUR 12.000 en verliest EUR 4.200, of 35%, over 171 trades. Alleen als oorspronkelijke context is bewaard kan hij achteraf segmenteren. Het verzonnen segment van 48 trades verliest EUR 2.700: circa 64,3% van het totaal. Bij precies EUR 100 beginrisico per trade is gemiddeld resultaat −2700/(48×100) = −0,5625R. Bij ongelijke risico’s is het geldtotaal gedeeld door risicototaal een gewogen maat, niet het eenvoudige gemiddelde van trade-R.
Een tweede fictief jaar krijgt 142 trades, EUR 8.100 winst, gemiddeld 0,42R en profit factor 1,94 toegewezen. 91 winnaars ronden af naar 64%; 80 van de eerste 171 naar 47%. De overige toegewezen eerstejaarswaarden zijn −0,18R en profit factor 0,71. Deze samenvattingen reconstrueren geen tradebedragen en zijn niet geaudit. Een ander jaar is geen geïsoleerde proef van de segmentuitsluiting.
Het aparte PLN-model geeft +100 bij 100 risico = +1R en −1.000 bij 1.000 risico = −1R. Eenvoudig gemiddelde nul; geldresultaat PLN −900. −900/1.100 ≈ −0,818 is een risicogewogen gemiddelde, geen rekeningrendement.
Nieuw afzonderlijk EUR-tegenvoorbeeld: één idee met EUR 100 beginrisico sluit gedeeltelijk met EUR +60 en later EUR −20, beide na de modelkosten. Het idee geeft EUR +40 = +0,4R. De twee deeluitstappen elk ten onrechte als een nieuw idee met EUR 100 risico tellen geeft gemiddeld (+0,6−0,2)/2 = +0,2R. Het geldtotaal blijft EUR 40, maar de gekozen observatie-eenheid verandert de statistiek. Bewaar de bronfills en aggregeer volgens een vooraf gekozen idee-ID.
Een controleerbaar dagboek opzetten
- Definieer velden, ontbrekende waarden, valuta en tijdnotatie. Bedenk geen historische emoties of regels achteraf.
- Voor een lineair instrument: richtingsfactor × (uitstap−instap) × eenheden geeft bruto quotevalutaresultaat. Converteer volgens het contract en voeg kosten zonder dubbele spread toe.
- Sluit twintig bekende brontrades aan op identificatie, fills, kosten en valuta; twintig is een kleine controle, geen patrooncertificaat.
- Bereken gemiddelde R over geldige trade-R; profit factor als som positieve netto-uitkomsten/absolute som negatieve; winrate als winnaars/alle geldige gesloten ideeën, inclusief nul volgens de definitie.
- Bewaar oorspronkelijke analyses en toets nieuwe segmentregels op latere onbekende gegevens. Meer kolommen of een vast aantal trades garandeert geen competentie of winst.
Test wat je hebt geleerd
Ongeveer 2 minuten oefenen.
Antwoord en uitleg bekijken
De sleutel bevat rekening én lokaal ID. Alleen de bewezen identieke A/17-herimport vervalt.
Andere vragen
Zijn 25 kolommen niet te veel?
Het is een voorstel, geen minimum. Kies velden voor de vraag en behoud bronoperaties. Emoties, naleving, correlatie en blootstelling verschijnen niet automatisch uit prijs en resultaat. Honderd trades garanderen geen stabiel patroon.
Welke dagboektool kies ik?
Vergelijk import, export, definities, formulecontrole en actuele betaling met bekende brontrades. Geen vaste tijd of aantal transacties dwingt naar een betaald product. TraderSync heeft terugkerende niveaus; Edgewonk noemt jaarlijkse betaling. Controleer valuta, belasting en verlenging.
Wat ontdek ik na honderd trades?
Een compleet dagboek kan segmenten onderzoeken, maar belooft geen bepaalde ontdekking of oorzaak. Meld aantallen en ontbrekende waarden per groep en behoud definities. Veel categorieën doorzoeken kan historische ruis selecteren; toets een gewijzigde regel later.
Hoe lang duurt een Excel-dagboek bouwen?
Dat hangt van import, groepering en controles af. Een vaste vier-tot-zesuurduur of duizend-tradeplafond bestaat hier niet. Begin met bekende gevallen. De VBA telt geldige J/L-paren en berekent samenvattingen, geen volledige bron- of valutacontrole.
Bronnen en controle
- MetaQuotes — Deal Properties
Primaire velden gelezen voor uitvoering, order/positie-ID, prijs, hoeveelheid, commissie, swap en fee. Echte exportmapping en groepering blijven afzonderlijk nodig.
- Microsoft — Duplicaten in Power Query
Primaire vergelijking van meerdere kolommen en waarschuwing gelezen: verwijderen garandeert niet behoud van de eerste instantie. De eigen deterministische audit is niet aan deze functie toegeschreven.
- Microsoft — Range. Value 2
Primaire eigenschap gelezen: celwaarde als Variant, zonder specifieke Currency/Date-typen. Documentatie verifieert geen uitvoering van de getoonde macro.
- TraderSync — Plannen en betaling
Primaire planniveaus en terugkerende maand-/jaarbeschrijving gelezen. Geen actuele prijs of gegarandeerde analytische verbetering vastgezet; checkout en import afzonderlijk controleren.
- Edgewonk — Prijs- en abonnementsbeschrijving
Primaire zoekweergave van huidige jaarplan/12-maandbetaling gelezen nadat www-open een fout gaf. Jaarabonnement, valuta/belasting en actuele checkout onderscheiden; niet als eenmalige licentie beschreven.
De berekeningen gebruiken expliciete aannames. Ze vervangen geen actuele marktgegevens of voorwaarden van de aanbieder.
