Dziennik transakcji Forex — R-multiple, expectancy, SQN i MAE/MFE
Jeżeli nie potrafisz pokazać ostatnich 50 transakcji z R, setupem, błędem i kosztem egzekucji, to nie masz systemu. Masz historię, którą opowiadasz sobie po fakcie. Pamięć tradera jest selektywna: trzy ostatnie wygrane, jedna dramatyczna przegrana, pustka między nimi. Bez liczb będziesz poprawiał to, co akurat najbardziej boli po ostatniej stracie, a nie to, co statystycznie niszczy rachunek. Profesjonalista filtruje transakcje po setupie, R, błędzie, sesji, koszcie i sprawdza, gdzie realnie wycieka kapitał. W tym artykule: 25 pól per transakcja, formuły R-multiple, expectancy, Profit Factor, Sortino, SQN Van Tharpa, MAE/MFE, Monte Carlo drawdown, oraz workflow EOD/tygodniowy/miesięczny dopasowany do realiów polskiego etatu w CET. Po lekturze wiesz, co ma być w dzienniku, jak to liczyć i jak nie oszukać samego siebie. Reszta to nudna część: arkusz, import z brokera i cotygodniowy rytuał, którego większość traderów nie utrzyma.
- Bez dziennika handlujesz przekonaniem, nie systemem. 25 pól per transakcja to minimum operacyjne — setup, klasa A/B/C, entry planowane vs realne, SL planowane vs realne fill, slippage, spread, swap, prowizja, R-multiple netto, klasyfikacja błędu, mental state, godziny snu
- R-multiple netto = realny PnL netto z brokera / planowane ryzyko — spread i slippage zapisujesz osobno jako execution drag, nie odejmujesz ich drugi raz. Jedna jednostka między różnymi setupami pozwala porównywać scalp na M5 z swingiem na D1
- Expectancy netto powyżej +0,3R dla setupów A+ to próg sensowności. Poniżej +0,15R — setup do usunięcia. Profit Factor > 1,5 = solidny system, > 2 = wybitny
- Sortino dla większości detalu daje więcej informacji niż Sharpe, bo karze tylko downside variance — ale oba wskaźniki są śmieciem, jeśli liczysz je na < 50 transakcjach. MAE/MFE pokazuje, czy SL jest zbyt szeroki i czy zostawiasz pieniądze na stole. Workflow analizy: codziennie 5 min, tygodniowo 30 min, miesięcznie 60 min, kwartalnie cały dzień (realnie pół soboty, nie godzinę)
1. Dlaczego bez dziennika nie masz systemu, masz przekonanie
Handel bez logowania parametrów rynkowych to drogie hobby. Masz nie system, lecz serię losowych kliknięć obarczoną błędem przeżywalności. W ramach wymogów ostrzegania o ryzyku dla CFD brokerzy regulowani w UE publikują odsetek rachunków detalicznych tracących pieniądze — w typowych raportach z ostatnich lat zakres to 65–82%. To są twoi statystyczni współtowarzysze. Brak diagnozy sprawia, że większość z nich powtarza te same błędy przez całą aktywność; doświadczenie bez pomiaru jest tylko powtarzalnym błędem.
Trzy iluzje, które niszczą tradera bez dziennika
Iluzja 1: pamięć selektywna. Mózg zapisuje silnie emocjonalnie nacechowane wydarzenia (duża wygrana, dramatyczna strata) i tłumi neutralne. Po miesiącu masz w głowie 3 transakcje z 50 — zwykle dwie wygrane i jedną stratną. Statystyka pamięci: 95% sygnał, 5% szum. Statystyka realna: zwykle odwrotnie. Dziennik wyłącza tę iluzję — czarno na białym widzisz, że twoja „dobra strategia poniedziałkowa" miała w trzech miesiącach 8 wygranych i 11 stratnych.
Iluzja 2: ocena post hoc. Po stratnej transakcji mózg konstruuje narrację „wiedziałem, że to był słaby setup". Po wygranej: „czytałem rynek". Obie narracje są tworzone po wyniku, nie na podstawie tego, co rzeczywiście wiedziałeś przed wejściem. Dziennik wymusza zapis intencji przed kliknięciem (planowane entry, planowane SL, klasa setupu) — porównanie planu z realizacją obnaża, ile twoich „dobrych decyzji" było faktycznie planowanych, a ile dorobionych retroaktywnie.
Iluzja 3: agregat zamiast rozkładu. Trader patrzy na saldo rachunku. „W marcu zarobiłem 4%" — i koniec analizy. Ale 4% może być wynikiem 60 transakcji z WR 55% i expectancy +0,3R (zdrowy system), albo 12 transakcji z WR 75% i jednym mocnym trade'em na +6R, który zamaskował fakt, że pozostałe 11 to było kasyno (niezdrowy system, który zaraz cię zniszczy). Saldo nie odróżnia tych dwóch przypadków. Dziennik z metrykami — odróżnia.
Definicja systemu transakcyjnego (taka, której detal nie używa)
System transakcyjny to powtarzalny proces, którego wyniki da się zmierzyć w jednolitych jednostkach. Trzy słowa kluczowe:
- Powtarzalny — taki sam zestaw warunków produkuje porównywalne decyzje. Nie „czujem, że to było mocne", tylko „spełnione warunki A, B, C, więc wszedłem"
- Zmierzony — każda transakcja ma 25+ pól w dzienniku, dla każdego setupu liczysz expectancy, dla każdego miesiąca liczysz profit factor
- Jednolite jednostki — R-multiple jest walutą porównań. „Wygrałem 200 PLN" nic nie mówi (na jakim ryzyku?), „wygrałem +1,8R" mówi wszystko
Bez tych trzech składników masz nie system, lecz seria pojedynczych decyzji bez wspólnego mianownika. Możesz mieć w niej szczęście (wtedy myślisz, że jesteś dobry) lub pecha (wtedy myślisz, że rynek jest manipulowany). Ani jedno, ani drugie nie jest prawdą — po prostu nie masz danych do oceny.
Zapis przed wejściem — utrudnione kłamanie po wyniku
Drugi, niedoceniany aspekt dziennika: tarcie operacyjne. Zapis planu (entry, SL, sizing, klasy setupu) przed kliknięciem ma jedną funkcję — utrudnić ci kłamanie po wyniku. Jeżeli pozycja była poza setupem, dziennik ma to pokazać, nie pozwolić ci napisać „rynek wyglądał mocno". Excel nie racjonalizuje za ciebie: jeśli z palca przesunąłeś Stop Loss, wiersz 42 będzie miał kategorię 3, niezależnie od tego, jak dobry powód wymyśliłeś po fakcie. To nie jest kwestia psychologii, to tarcie operacyjne, które zmusza do refleksji, zanim zrobisz głupotę.
2. Co zapisywać — 25 pól dziennika transakcji
Dziennik amatorski ma 5–8 pól: data, para, kierunek, entry, SL, TP, wynik, komentarz. To jest minimum brokerskiego raportu, niewystarczające do diagnozy. Profesjonalny dziennik ma 25 pól, podzielonych na 6 grup. Każde pole odpowiada na konkretne pytanie analityczne.
Grupa A: identyfikacja transakcji (4 pola)
Pola podstawowe — co i kiedy się stało.
- ID transakcji — unikalny numer (T-2026-04-001), pozwala referencjować w notatkach i analizach
- Data i godzina otwarcia — z dokładnością do minuty, w jednej strefie czasowej (zalecam UTC + lokalna)
- Para walutowa — EUR/USD, GBP/JPY etc.
- Kierunek — long / short
Grupa B: kontekst strategiczny (4 pola)
Co planowałeś, w jakim setupie, z jaką klasyfikacją.
- Setup z playbooka — nazwa konkretnego setupu (np. „LON-breakout-A", „NY-mean-revert-B"). Bez tego nie da się policzyć expectancy per setup
- Klasa setupu — A+, A, B, C. Każda inny sizing. Bez klasy nie wiesz, czy zarabiasz na A+ a tracisz na B, czy odwrotnie
- Reżim rynkowy — trending / ranging / high vol / low vol — diagnozowany na D1 lub H4 przed wejściem
- Sesja — Asian / LON / NY / overlap LON-NY. Pomaga wykryć, w której sesji masz edge a w której tracisz
Grupa C: parametry zlecenia — plan vs realność (6 pól)
Tu się rodzi większość brutalnych prawd o tradingu detalu.
- Entry planowane — cena, na której chciałeś wejść (z analizy)
- Entry realne — cena, na której rzeczywiście wszedłeś (slippage może być 1–5 pipsów na M15)
- SL planowane — cena, gdzie hipoteza się obala (z reguł strategii)
- SL realne (fill) — cena, na której SL został zrealizowany (slippage na SL bywa 2–10× większy niż na entry)
- TP planowane — cena lub wielokrotność R
- TP realne (fill) — cena, na której TP został zrealizowany lub pozycja zamknięta ręcznie
Grupa D: koszty (4 pola)
Koszty zżerają 10–25% expectancy brutto. Bez ich pomiaru nie wiesz, czy strategia ma edge netto.
- Spread (pipsy) — w momencie wejścia, nie reklamowany przez brokera
- Slippage entry (pipsy) — różnica między entry planowanym a realnym
- Slippage exit (pipsy) — różnica między SL/TP planowanym a fill
- Swap i prowizja — w walucie rachunku, dla pozycji trzymanej przez noc lub na ECN
Grupa E: wynik i metryki (3 pola)
- Wynik brutto — w pipsach i w walucie rachunku, bez kosztów
- Wynik netto — po odjęciu wszystkich kosztów (spread + slippage + swap + prowizja)
- R-multiple netto — wynik_netto / planowane_ryzyko (definicja w sekcji 3)
Grupa F: ocena jakości decyzji (4 pola)
Ta grupa jest najczęściej pomijana — i najważniejsza. Dwie transakcje mogą mieć identyczny wynik, ale różną jakość decyzji.
- Klasyfikacja błędu — kategoryczna lista: 0 = brak błędu, 1 = za szeroki SL, 2 = za wąski SL, 3 = przesunięty SL przeciw planowi, 4 = early exit, 5 = late exit, 6 = wejście poza setupem (FOMO), 7 = oversized (większy lot niż plan), 8 = revenge trade, 9 = inne
- Mental state (1–5) — 1 = źle (zmęczony, zły, rozproszony), 5 = świetnie (skupiony, wypoczęty, jasna głowa). Ocena przed wejściem, nie po wyniku
- Godziny snu poprzedniej nocy — liczba. W dobrze prowadzonym dzienniku warto sprawdzić korelację Spearmana między snem a R-multiple; w obserwacjach z własnych i przykładowych dzienników detalu często wychodzi to jako jedna z mocniejszych zmiennych behawioralnych, ale wymaga własnych danych — nie traktuj 0,2–0,4 jako uniwersalnego prawa rynku
- Decisional quality (1–5) — wystawiana na koniec dnia, oddzielnie od wyniku. Pytanie: czy ta transakcja była podjęta zgodnie z planem? 5 = idealnie, 1 = improwizacja
Tabela — wszystkie 25 pól, typy danych, źródło
| # | Pole | Typ | Źródło |
|---|---|---|---|
| 1 | ID transakcji | tekst | generowane automatycznie |
| 2 | Data i godzina | datetime | broker / platforma |
| 3 | Para | tekst | broker |
| 4 | Kierunek | long/short | broker |
| 5 | Setup z playbooka | tekst | trader (przed wejściem) |
| 6 | Klasa A+/A/B/C | kategoria | trader (przed wejściem) |
| 7 | Reżim rynkowy | kategoria | trader (przed wejściem) |
| 8 | Sesja | kategoria | auto (z czasu) |
| 9 | Entry planowane | liczba | trader (przed wejściem) |
| 10 | Entry realne | liczba | broker |
| 11 | SL planowane | liczba | trader (przed wejściem) |
| 12 | SL realne (fill) | liczba | broker |
| 13 | TP planowane | liczba | trader (przed wejściem) |
| 14 | TP realne (fill) | liczba | broker |
| 15 | Spread (pipsy) | liczba | broker / log |
| 16 | Slippage entry | liczba | auto (10−9) |
| 17 | Slippage exit | liczba | auto (12−11 lub 14−13) |
| 18 | Swap + prowizja | liczba | broker |
| 19 | PnL brutto z filli | liczba | broker (z fillów rzeczywistych) |
| 20 | PnL netto z brokera | liczba | broker: PnL po prowizji/swapie; spread i slippage zawarte w fillach |
| 21 | R_netto | liczba | auto: PnL_netto_broker / planned_risk |
| 22 | Klasyfikacja błędu | kategoria 0–9 | trader (po zamknięciu) |
| 23 | Mental state 1–5 | liczba | trader (przed) |
| 24 | Godziny snu | liczba | trader (rano) |
| 25 | Decisional quality 1–5 | liczba | trader (koniec dnia) |
Wprowadzenie 25 pól zajmuje 60–90 sekund per transakcja, jeśli masz szablon. Bez tych danych każda kolejna analiza jest zgadywaniem. Jeżeli nie masz 90 sekund na opisanie transakcji, nie powinieneś mieć 30 sekund na jej otwarcie.
Mini-specyfikacja CSV / Google Sheets
Format maszynowy do zaimplementowania w arkuszu lub bazie. Lewa kolumna — nazwa techniczna, prawa — źródło uzupełniania:
| Nazwa kolumny | Typ | Źródło |
|---|---|---|
trade_id | tekst | auto / formuła |
open_time_utc / close_time_utc | datetime UTC | broker (CSV/MT export) |
pair | tekst | broker |
direction | long / short | broker |
setup / setup_class (A+/A/B/C) | tekst / kategoria | trader, przed wejściem |
regime / session | kategoria | trader / auto |
planned_entry / actual_entry | liczba | trader / broker |
planned_sl / actual_exit | liczba | trader / broker |
planned_tp / actual_tp | liczba | trader / broker |
spread_pips | liczba | broker / log |
slippage_entry_pips / slippage_exit_pips | auto: actual − planned | formuła |
swap_pln / commission_pln | liczba | broker |
broker_gross_pnl_pln / broker_net_pnl_pln | liczba | broker: PnL z fillów / po prowizji i swapie |
planned_gross_pnl_pln / planned_risk_pln | liczba | auto: (TP_plan − entry_plan) × pip_value / |entry_plan − SL_plan| × pip_value |
r_net | liczba (R) | auto: broker_net_pnl_pln / planned_risk_pln |
execution_drag_R | liczba (R) | auto: (planned_gross_pnl_pln − broker_net_pnl_pln) / planned_risk_pln |
mae_r / mfe_r | liczba (R) | trader / Edgewonk / cTrader / skrypt |
error_code | 0–10 | trader, po zamknięciu |
mental_state 1–5 | liczba | trader, przed wejściem |
sleep_hours | liczba | trader, rano |
decision_quality 1–5 | liczba | trader, koniec dnia |
Kategoria błędu error_code rozszerzona o pozycję 10: 10 = błąd infrastrukturalny (brak hard SL na serwerze, awaria platformy, awaria internetu) — to nie jest błąd tradingowy, to oddzielna kategoria, której nie wolno mieszać z błędami decyzyjnymi (kategorie 1–9). Dziennik bez hardware SL na serwerze jest bezużyteczny: każda pozycja otwarta bez SL po stronie brokera może w razie awarii infrastruktury wyprodukować zdarzenie, którego nie da się zrekonstruować z logów.
r_net, slippage_entry_pips, slippage_exit_pips, costs_pln, execution_drag_R oraz dropdownami dla setup_class, regime, session, error_code (0–10). Workflow: otwórz szablon → Plik → Utwórz kopię → podmień przykładowe wpisy na własne. Link do szablonu jest publikowany przy artykule jako pobranie XLSX/Google Sheets/CSV; jeśli go nie widzisz, daj znać w komentarzu — struktura kolumn z tabeli wyżej działa 1:1 ze skryptem Python z sekcji 4.
3. R-multiple — fundamentalna metryka, której detal nie liczy
R-multiple to jedyna metryka pozwalająca porównywać transakcje o różnym profilu ryzyka w jednej skali. Bez R-multiple zysk +200 PLN na scalpie M5 i zysk +200 PLN na swing trade'cie D1 wyglądają identycznie — choć pierwszy mógł być zrobiony przy ryzyku 50 PLN (zysk +4R), a drugi przy ryzyku 600 PLN (zysk +0,33R, czyli operacyjnie marny). R-multiple wprowadził Van K. Tharp[1] — i jest to fundament każdej poważnej analizy systemu transakcyjnego.
Formuła R-multiple
Najbezpieczniejsza definicja operacyjna:
R_netto = realny_wynik_netto_z_brokera / planowane_ryzyko
Gdzie realny wynik netto to PnL po faktycznych fillach, prowizji, swapie i wszystkich kosztach widocznych w raporcie brokera (slippage i spread są już zawarte w fillach — broker liczy zysk od cen rzeczywistych transakcji, nie planowanych). Slippage i spread zapisujesz osobno jako pola diagnostyczne, ale nie odejmujesz ich drugi raz, jeśli są już zawarte w realnym PnL.
Mianownik — planowane ryzyko, nie realne. Jeśli SL został zrealizowany ze slippage'em −10 pipsów ponad planowane, to nie zwiększa twojego R-mianownika; realna strata jest wtedy −1,2R lub −1,5R, nie −1R. To pokazuje, ile faktycznie zostało stracone w sytuacjach, w których egzekucja zawiodła.
Execution drag — diagnostyka egzekucji obok wyniku
Spread, slippage i prowizje są kosztami operacyjnymi, ale w księgowości wyniku siedzą już w realnym PnL. Aby diagnozować jakość egzekucji, liczysz osobno:
execution_drag_R = (planowany_wynik_brutto − realny_wynik_netto) / planowane_ryzyko
Gdzie planowany wynik brutto = (cena_TP_planowana − cena_entry_planowana) × wartość_pipa, czyli wynik, który byłby twoim, gdyby slippage, spread i prowizja były zerowe. Różnica między planem a realem to dokładnie execution drag w R. To jest właściwe miejsce na diagnozę kosztów — obok PnL, nie zamiast PnL.
Reguła operacyjna: nie mieszaj księgowości wyniku z diagnostyką egzekucji. Jeśli liczysz r_net z realnego PnL brokera, koszty są już w wyniku — analizujesz je osobno przez execution drag. Jeśli liczysz r_net z planowanych cen, musisz odjąć koszty ręcznie. Jedno albo drugie, nigdy obie metody naraz.
Przykład pełnej kalkulacji
Trade na EUR/USD, lot 0,5 (50 000 EUR), USD/PLN ≈ 4,40. Wartość pipa dla 1 lota standardowego EUR/USD = 10 USD ≈ 44 PLN; dla 0,5 lota ≈ 22 PLN/pip.
- Entry planowane: 1,0850
- Entry realne: 1,0852 (slippage 2 pipsy)
- SL planowane: 1,0820 (30 pipsów ryzyka)
- TP planowane: 1,0910 (60 pipsów = 2R)
- Wyjście realne: 1,0908 (slippage 2 pipsy na TP)
- Spread w momencie wejścia: 0,8 pipsa
- Prowizja ECN: 4 PLN per RT
- Swap: 0 (pozycja zamknięta tego samego dnia)
Liczenie R_netto (z realnych filli brokerskich):
- PnL z faktycznych filli: 1,0908 − 1,0852 = 56 pipsów; w PLN: 56 × 22 = 1232 PLN (slippage entry i exit są już w tej liczbie, bo broker liczy od cen rzeczywistych)
- Prowizja ECN: 4 PLN. Swap: 0
- Realny wynik netto: 1232 − 4 = 1228 PLN
- Planowane ryzyko: |1,0850 − 1,0820| = 30 pipsów; 30 × 22 = 660 PLN
- R_netto = 1228 / 660 ≈ +1,86R
Liczenie execution drag (diagnostyka osobno):
- Planowany wynik brutto (idealne fille, zero kosztów): (1,0910 − 1,0850) × 22 = 60 × 22 = 1320 PLN
- Realny wynik netto: 1228 PLN
- Różnica: 1320 − 1228 = 92 PLN
- execution_drag_R = 92 / 660 ≈ 0,14R (czyli koszty egzekucji zjadły 14% planowanego ryzyka)
Po 100 takich transakcjach execution drag ≈ 14R, czyli przy 1% sizingu — 14% kapitału rocznie. Koszty nie są zaokrągleniem; są diagnostyką, na której decydujesz o brokerze, parze, timeframe i SL. Trzymaj r_net jako księgowość wyniku, execution_drag_R jako narzędzie poprawy egzekucji — nigdy nie mieszaj obu w jednej formule.
Dlaczego R-multiple, a nie procenty albo PLN
| Jednostka | Co pokazuje | Ograniczenie |
|---|---|---|
| PLN | Bezwzględny zysk/strata | Nie uwzględnia ryzyka — +200 PLN przy ryzyku 50 PLN to coś innego niż przy ryzyku 600 PLN |
| % | Wpływ na rachunek | Zależy od sizingu — większy sizing = większy %, ale niekoniecznie lepsza decyzja |
| Pipsy | Ruch ceny | Nie porównuje par o różnej zmienności (EUR/USD vs USD/MXN) |
| R-multiple | Zysk znormalizowany przez ryzyko | Wymaga dyscypliny w definiowaniu ryzyka przed wejściem |
R-multiple to jedyna jednostka, która pozwala uczciwie porównywać scalp z swingiem, EUR/USD z GBP/JPY, mały lot z dużym. Trader, który po roku ma 200 trades z dziennika R-multiple, może odpowiedzieć precyzyjnie: „Mój setup A+ ma średnie R = +0,84, B = +0,21, C = −0,13. Z C trzeba zrezygnować."
Rozkład R-multiple — jak czytać statystykę 200 trade'ów
Z tego rozkładu czyta się trzy rzeczy:
- WR niski, ale system zarabia — 44,5% (98 z 220 wygranych powyżej 0R), ale prawy ogon (16 trades powyżej +2R, w tym pojedyncze +5R) napędza expectancy
- Mediana +0,1R, średnia +0,3R — różnica między medianą a średnią pokazuje, że system zarabia na ogonie. To typowe dla trend-following
- Mean-reversion ma odwrotny rozkład — wysoki WR (60–70%), niska średnia wygranej (+0,5R), długi lewy ogon (rzadkie −2R, −3R, gdy mean-reversion zawodzi)
4. Expectancy netto — co odróżnia system zarabiający od marketingu
Expectancy odpowiada na jedno pytanie: ile średnio zarabiam (lub tracę) na każdej transakcji, w jednostce R? Bez tej liczby nie wiesz, czy twój system ma matematyczny sens. Z nią — wiesz dokładnie, jakiego zwrotu oczekiwać po N transakcjach.
Formuła expectancy
Wersja kanoniczna (do backtestu / liczenia z planowanych cen):
Expectancy = (WR × średni_zysk_R) − ((1 − WR) × średnia_strata_R) − koszty_per_trade_R
Gdzie:
- WR — win rate, ułamek (0,55 = 55%)
- średni_zysk_R — średni R wygranych transakcji (np. +1,8R)
- średnia_strata_R — bezwzględna wartość średniego R przegranych (np. 1,0R, jeśli SL trzymane idealnie)
- koszty_per_trade_R — spread + slippage + swap + prowizja, wyrażone jako % R (np. 0,1R)
r_net liczysz z PnL netto brokera (sekcja 3), expectancy live to po prostu średnia z kolumny r_net — koszty są już zawarte. Rozbita formuła z WR, avgWin i avgLoss służy do diagnostyki struktury systemu (czy zarabiasz na wysokim WR z małymi wygranymi, czy na niskim WR z prawym ogonem) i do liczenia expectancy z backtestu, gdzie ceny są planowane. Nie odejmuj kosztów drugi raz.Trzy progi sensowności expectancy
| Expectancy netto | Status | Co robić |
|---|---|---|
| > +0,5R | Wybitna | Setup A+, maksymalna alokacja (1% kapitału per trade) |
| +0,3R do +0,5R | Solidna | Setup A, normalna alokacja |
| +0,15R do +0,3R | Marginalna | Setup B, zmniejszona alokacja (0,5%) |
| 0 do +0,15R | Wątpliwa | Próba zbyt mała lub edge na granicy szumu — zbieraj więcej danych przed decyzją |
| < 0 | Stratna | Usunąć z playbooka. Trzymanie tylko niszczy psychikę i kapitał |
Próba minimalna do oszacowania expectancy
To jest pułapka, w którą wpada większość detalu: liczy expectancy z 30–50 transakcji i traktuje wynik jako prawdę. Statystyka mówi inaczej:
- 50 transakcji — przedział ufności 95% dla WR jest ~±14 punktów procentowych. WR 55% może rzeczywiście być 41% lub 69%
- 100 transakcji — przedział ~±10 pp. Wciąż za szeroko dla decyzji o porzuceniu setupu
- 200 transakcji — przedział ~±7 pp. Akceptowalna minimalna próba
- 500 transakcji — przedział ~±4 pp. Solidna próba do walidacji setupu
Praktyczna reguła: nie podejmuj decyzji o usunięciu setupu z playbooka na podstawie próby mniejszej niż 100 transakcji. Mniejsza próba = ryzyko, że odrzucasz dobry setup w trakcie statystycznego pecha lub trzymasz zły setup w trakcie statystycznego fartu.
Pułapka: expectancy bez kosztów i bez execution drag
Detal regularnie liczy expectancy brutto, bez uwzględnienia spreadu, slippage'u, prowizji i swapu. Wynik wygląda dobrze (+0,5R), realny wynik jest gorzej (+0,2R). Po roku saldo nie rośnie — bo zarabia +0,2R, nie +0,5R, na każdej z 200 transakcji.
Reguła metodologiczna: jeżeli r_net liczysz z realnego PnL netto brokera (sekcja 3), koszty są już w wyniku — wtedy spread, slippage i prowizję analizujesz osobno jako execution drag, nie odejmujesz drugi raz. Jeżeli liczysz expectancy z planowanych cen (np. backtest na świecach bez modelowania kosztów), musisz koszty odjąć ręcznie. Nie mieszaj obu metod — przykłady poniżej traktuj jako kalkulację execution drag, nie jako podwójne odejmowanie od PnL netto.
Konkretne przykłady kosztów per trade w R:
- Para: EUR/USD, broker ECN, spread 0,2 pip + prowizja 7 USD per lot RT, slippage średnio 0,3 pip każda strona
- Setup typowy: SL 30 pipsów, lot 0,3 (USD/PLN ≈ 4,40); wartość pipa per 0,3 lota ≈ 13,2 PLN
- Planowane ryzyko: 30 × 13,2 = 396 PLN
- Koszty: spread 0,2 × 13,2 = 2,64 PLN + slippage 0,6 (entry+exit) × 13,2 = 7,92 PLN + prowizja 7 USD × 0,3 lota = 2,1 USD ≈ 9,24 PLN — łącznie ~19,8 PLN
- Koszty w R: 19,8 / 396 = 0,05R (czyli 5% planowanego ryzyka)
Inny przykład — gorsza para, mniejszy SL:
- Para: GBP/JPY, broker market maker, spread 2,5 pip, brak prowizji, slippage 1 pip każda strona
- Wartość pipa per 0,1 lota dla GBP/JPY przy USD/JPY ≈ 150 i USD/PLN ≈ 4,40: ≈ 2,80 PLN/pip
- Setup ciasny: SL 25 pipsów, lot 0,1 → ryzyko 25 × 2,80 = 70 PLN
- Koszty per pozycja: spread 2,5 × 2,80 = 7,00 PLN + slippage entry 1 × 2,80 = 2,80 PLN + slippage exit 1 × 2,80 = 2,80 PLN = 12,60 PLN
- Koszty w R: 12,60 / 70 = 0,18R (czyli 18% planowanego ryzyka idzie w koszty od startu)
To pokazuje pułapkę proporcji: ten sam slippage w pipsach przy ciaśniejszym SL zżera dramatycznie większy procent R. Dlatego 25-pipsowe SL na parze GBP/JPY ze spreadem 2,5 pipsa to katastrofa kosztowa — system z brutto edge < +0,2R nie ma szans przeżyć po kosztach. Reguła praktyczna: koszty per trade nie powinny przekraczać 5–8% planowanego ryzyka; powyżej tej granicy zmieniasz brokera, parę albo timeframe (na większy SL).
SQN Van Tharpa — kryterium gotowości systemu
gdzie E — expectancy w R, σR — odchylenie standardowe R, n — liczba transakcji.
Interpretacja Tharpa: SQN < 1,6 — setup operacyjnie trudny, niezalecany do skalowania; 1,6–2,5 — solidny system; 2,5–5,0 — bardzo dobry; > 7,0 — zwykle artefakt overfittingu albo zbyt małej próby. Próg N: 100 transakcji, niżej SQN niewiarygodne.
Praktyczna zasada: zanim usuniesz setup z playbooka, sprawdź czy SQN był kiedykolwiek ≥ 1,6 przy n ≥ 100 — jeśli tak, możliwe że masz do czynienia z normalną serią strat, nie ze złym setupem.
Out-of-sample validation — kalibracja vs przyszłość
Każda optymalizacja progów expectancy (np. „usuwam setup poniżej +0,15R") powinna być walidowana na danych nieużytych do kalibracji. Minimum: 30% próby zarezerwowane jako OOS. Trader liczący expectancy na całym historycznym samplu i wyciągający z niego decyzje — uprawia p-hacking bez wiedzy.
Konkretny przykład: trader ma 12 setupów po 200 transakcji każdy. Wybiera 3 najlepsze według expectancy z całych 200. Te 3 na kolejnych 100 trades (poza historyczną próbą) typowo regresują do mediany — bo pierwotny ranking obejmował szczęście, nie tylko edge. Reguła operacyjna: kalibrujesz na 70% danych (np. 140 trades), walidujesz na pozostałych 30% (60 trades) i dopiero po walidacji decydujesz o eliminacji.
Bootstrap CI dla expectancy — kiedy +0,22R jest hipotezą, nie edgem
Expectancy +0,22R na 42 transakcjach nie jest edge'em — jest hipotezą. Aby ocenić, czy „edge" jest istotny, liczysz bootstrap CI: losujesz 10 000 razy próbę z powtórzeniami z tych 42 trade'ów, dla każdej liczysz średnie R. Histogram pokazuje 95-percentylowy przedział ufności średniego R. Jeśli przedział obejmuje 0 — nie masz statystycznej pewności, że system zarabia. Praktyczne progi:
- 30 trades — obserwacja, nie decyzja
- 100 trades — decyzja robocza (kontynuować z bieżącym sizingiem)
- 200–500 trades — twardszy wniosek o edge
- Setupy o niskiej częstotliwości (5/mies.) — obowiązkowo licz bootstrap CI; bez tego twoje 50 trades przez rok to szum
Skrypt Python do liczenia expectancy z CSV
Poniższy fragment liczy expectancy, profit factor, MAE/MFE i kilka innych metryk z dziennika eksportowanego do CSV:
import pandas as pd
import numpy as np
# Wczytanie dziennika z CSV (25 pól)
df = pd.read_csv('dziennik.csv')
# Filtr: tylko transakcje zamknięte (z R-multiple)
df = df.dropna(subset=['r_net'])
# Podstawowe metryki
total = len(df)
wins = df[df['r_net'] > 0]
losses = df[df['r_net'] < 0]
wr = len(wins) / total
avg_win = wins['r_net'].mean()
avg_loss = abs(losses['r_net'].mean())
expectancy = wr * avg_win - (1 - wr) * avg_loss
# Profit Factor
sum_wins = wins['r_net'].sum()
sum_losses = abs(losses['r_net'].sum())
profit_factor = sum_wins / sum_losses if sum_losses > 0 else float('inf')
# Sortino (per-trade)
returns = df['r_net']
downside = returns[returns < 0]
sortino = returns.mean() / downside.std() if len(downside) > 1 else None
# Drawdown na krzywej kapitału
equity = (1 + returns * 0.01).cumprod() # przy 1% sizingu
running_max = equity.cummax()
drawdown = (equity - running_max) / running_max
max_dd = drawdown.min()
# Per setup
print(df.groupby('setup').agg({
'r_net': ['count', 'mean', 'sum', 'std']
}))
print(f"WR: {wr:.1%}")
print(f"Expectancy: {expectancy:+.2f}R")
print(f"Profit Factor: {profit_factor:.2f}")
print(f"Sortino: {sortino:.2f}" if sortino else "Sortino: brak")
print(f"Max DD: {max_dd:.1%}")
Skrypt zakłada strukturę CSV zgodną z 25 polami z sekcji 2. Po podstawieniu własnego pliku dziennika otrzymujesz pełen obraz w 5 sekund — to jest siła systematycznego dziennika.
lookahead=barmerge.lookahead_off; w MT4/5 sprawdź, czy iCustom() nie sięga do bieżącej, niezamkniętej świecy.
5. Profit Factor i Recovery Factor — różne pytania, różne odpowiedzi
Expectancy mówi „ile średnio zarabiam per trade". Profit Factor i Recovery Factor odpowiadają na inne pytania, a brak ich liczenia ukrywa część obrazu systemu.
Profit Factor — relacja zysku do straty
Profit Factor (PF) = suma_wszystkich_zysków / suma_wszystkich_strat (wartość bezwzględna)
Pytanie, na które odpowiada: czy mój system w sumie zarabia więcej niż traci, i o ile razy więcej?
| Profit Factor | Interpretacja |
|---|---|
| < 1,0 | System stratny — straty przewyższają zyski |
| 1,0 − 1,3 | System na granicy — operacyjnie wątpliwy, koszty mogą zjeść marżę |
| 1,3 − 1,5 | Akceptowalny dla setupu B |
| 1,5 − 2,0 | Solidny system A |
| 2,0 − 3,0 | Wybitny system A+ |
| > 3,0 | Najczęściej oznaka curve fittingu lub zbyt małej próby — zweryfikuj na OOS |
PF jest bardziej intuicyjny niż expectancy dla osób bez tła statystycznego — „za każdy 1 PLN straty zarabiam 1,8 PLN" jest jasne. Ale ma wadę: nie pokazuje rozkładu. System z PF 1,8 i 200 trades vs system z PF 1,8 i 20 trades to dwie różne rzeczy operacyjnie. Dlatego patrz na PF łącznie z liczbą próbek i expectancy.
Recovery Factor — zwrot vs największy drawdown
Recovery Factor (RF) = całkowity_zysk_netto / max_drawdown
Pytanie: ile razy zwrot przewyższa najgorszy historyczny drawdown? Innymi słowy — ile razy musiałbyś przejść przez najgorszy okres, żeby skompensować całkowity zwrot.
Przykład: rok zarabiasz +35%, max DD w trakcie roku był −12%. RF = 35/12 = 2,92.
| Recovery Factor | Interpretacja |
|---|---|
| < 1,0 | Drawdown przewyższa zysk — ryzyko nieproporcjonalne |
| 1,0 − 2,0 | Zwrot pokrywa DD, ale nie z dużym buforem |
| 2,0 − 3,0 | Solidny system |
| 3,0 − 5,0 | Wybitny — zwrot 3–5× nad DD |
| > 5,0 | Znakomity, ale często statystyczny artefakt na małej próbie |
RF jest przydatny dla psychologii: jeśli twój zwrot 30% rocznie wymagał przejścia przez DD 25% — RF 1,2 — pytanie czy ten ból był wart tego zwrotu. Mając wybór, większość traderów woli RF 2+ przy mniejszym CAGR niż wysoki zwrot z głębokim DD.
Win Rate vs Profit Factor — częsty błąd interpretacji
Detal myli WR z jakością systemu. „Mam WR 75%, więc system działa" — niekoniecznie. WR 75% z średnim zyskiem +0,5R i średnią stratą −2,5R to:
- Expectancy: 0,75 × 0,5 − 0,25 × 2,5 = 0,375 − 0,625 = −0,25R (system stratny!)
- Profit Factor: (0,75 × 0,5) / (0,25 × 2,5) = 0,375 / 0,625 = 0,6 (system traci 40 groszy na każde 1 PLN zysku)
Wysokie WR bez kontroli relacji średnich zysków do średnich strat to klasyczna pułapka mean-reversion bez dyscypliny SL. Każda przegrana zjada wynik wielu wygranych. Profit Factor odsłania to natychmiast — WR 75% z PF 0,6 = system stratny mimo wysokiego WR.
6. Sharpe i Sortino — kiedy mają sens dla detalu
Sharpe Ratio i Sortino Ratio są standardami w funduszach hedgingowych — i nie zawsze mają sens dla detalu. Ale w wersji „per-trade" (zamiast „roczny zwrot vs zmienność") dostarczają informacji, której expectancy ani PF nie pokazują.
Sharpe Ratio — zwrot per jednostka zmienności
Sharpe = (średni_R − stopa_wolna_od_ryzyka) / odchylenie_standardowe_R
Dla detalu na poziomie per-trade pomijamy stopę wolną od ryzyka (i tak liczymy w R, gdzie ryzyko jest unormowane), więc:
Sharpe ≈ średnia(R) / std(R)
Co mówi: jak duży zwrot generuje system na jednostkę zmienności wyników. Wysokie Sharpe = stabilne, przewidywalne wyniki. Niskie Sharpe = wyniki rozstrzelone, mimo średniego zysku.
| Sharpe (per-trade) | Interpretacja |
|---|---|
| < 0,1 | System z dużym szumem, expectancy może być dodatnie ale wahania ogromne |
| 0,1 − 0,2 | Akceptowalny dla strategii trend-following (z natury chaotyczne) |
| 0,2 − 0,4 | Solidny system |
| 0,4 − 0,6 | Wybitny — rzadko spotykany na detalu |
| > 0,6 | Albo curve fitting, albo zbyt mała próba — zweryfikuj |
Uwaga: Sharpe roczny (annualised) z funduszy hedgingowych dla dobrego systemu wynosi 1,5–2,5 i nie da się tego przeliczyć 1:1 na per-trade. Sharpe per-trade rzędu 0,3 odpowiada w przybliżeniu Sharpe rocznemu 1,5–2,0 (zależnie od częstotliwości handlu).
Wada Sharpe'a — karze upside variance
Sharpe traktuje całe odchylenie standardowe jako „zmienność do unikania". Ale duże wygrane (+5R, +8R) też zwiększają std — i Sharpe je karze. To jest ekonomicznie absurdalne: dlaczego mam być karany za to, że czasem system robi mocny ruch w moim kierunku?
To dlatego William Sortino zaproponował alternatywę[2]: liczyć tylko downside variance.
Sortino Ratio — zwrot per jednostka downside risk
Sortino = średnia(R) / odchylenie_standardowe_strat (tylko ujemne R)
Sortino karze tylko zmienność stratną. Duże wygrane nie wpływają negatywnie. Sortino > Sharpe dla większości realnych strategii — bo realne strategie mają asymetryczny rozkład (wygrane są większe niż straty, dzięki SL).
| Sortino (per-trade) | Interpretacja |
|---|---|
| < 0,3 | System ma dużą downside zmienność, kapitał często traci |
| 0,3 − 0,6 | Akceptowalny |
| 0,6 − 1,0 | Solidny |
| 1,0 − 1,5 | Wybitny |
| > 1,5 | Albo curve fitting, albo praca pod presją serii (tylko zwycięstwa = zaniżona std strat) |
Reguła robocza: dla większości detalicznych strategii z asymetrycznym rozkładem wyników Sortino mówi więcej niż Sharpe, ale oba wskaźniki są śmieciem, jeśli liczysz je na 37 transakcjach. Sharpe pokazuje wszystkie wahania, Sortino tylko te, które bolą — wybór zależy od stylu, częstotliwości i rozkładu wyników twojego konkretnego systemu.
Kiedy Sharpe i Sortino nie mają sensu dla detalu
- Próba < 50 transakcji — odchylenia standardowe są zaszumione, metryki niestabilne
- Strategie z bardzo asymetrycznym rozkładem (np. event-driven na publikacjach) — Sharpe traci sens, bo wygrane to long tail, std nie odpowiada „normalnej" zmienności
- Bardzo niska częstotliwość (5 trades miesięcznie) — annualised Sharpe wymaga setek obserwacji rocznie, na 60 transakcjach rocznie statystycznie niemożliwy do wiarygodnego oszacowania
Dla typowego detalu z 200–600 transakcjami rocznie i strategiami trend-following + mean-reversion: Sortino jest dobrym kompasem, Sharpe jest informacją uzupełniającą.
7. MAE/MFE — co mówi o jakości entry i exit
Maximum Adverse Excursion (MAE) i Maximum Favorable Excursion (MFE) to dwie metryki, które odsłaniają, jak daleko cena szła przeciwko tobie i jak daleko za tobą w trakcie życia transakcji. Detal ich nie liczy — i traci najcenniejsze źródło wiedzy o jakości SL i TP.
Definicje MAE i MFE
- MAE (Maximum Adverse Excursion) — najgorszy ruch ceny przeciwko pozycji w trakcie jej trwania, mierzony w R od entry. Np. wszedłeś po 1,0850, zanim trade się zamknął cena dotykała 1,0825 → MAE = (1,0850 − 1,0825) / |entry − SL| = 25/30 = 0,83R
- MFE (Maximum Favorable Excursion) — najlepszy ruch ceny w stronę pozycji w trakcie jej trwania, mierzony w R. Wszedłeś po 1,0850, cena dotknęła 1,0920 zanim się cofnęła → MFE = (1,0920 − 1,0850) / 30 = 70/30 = 2,33R
Co MAE i MFE diagnozują
MAE odpowiada na pytanie: jak blisko byłem stop lossa. Jeśli średnie MAE dla wygranych transakcji to 0,4R, znaczy że SL można by zacieśnić bez większych szkód. Jeśli średnie MAE to 0,9R (niemal SL), znaczy że wchodzisz „pod" rynek i SL jest na granicy — większy slippage zniszczy wyniki.
MFE odpowiada na pytanie: czy zostawiam pieniądze na stole. Jeśli średnie MFE dla zamkniętych transakcji to +2,5R, a średni faktyczny zysk to +1,2R — zostawiasz +1,3R na stole na każdej wygranej. To jest często znak, że TP jest za blisko albo trailing stop za agresywny.
Cztery scenariusze diagnostyczne MAE/MFE
| Sytuacja | Diagnoza | Działanie |
|---|---|---|
| Średnie MAE wygranych ≈ 0,7R+ | Entry spóźniony / setup wymaga szerokiego oddechu / SL blisko punktu wybicia — nie automatycznie „za szeroki SL" | Nie zacieśniaj SL w ciemno; najpierw test OOS na próbie 30–50 trade'ów: ile wygranych zostałoby wybitych przy SL 0,8×? Jeśli > 20% — SL jest na właściwym poziomie, problem jest w timingu wejścia |
| Średnie MAE wygranych ≈ 0,2R | Możliwy nadmiarowy bufor w SL — cena rzadko cofa się przeciw, bufor nie jest używany | Test ciaśniejszego SL (np. 0,7× obecnego) lub większego R:R przy tym samym ryzyku PLN, walidacja na osobnej próbie 30–50 trade'ów |
| MFE / faktyczny_zysk > 2,0 | Zostawiasz dużo na stole — TP/trailing zbyt agresywny | Test: 50% pozycji na 1R, 50% trailing po SMA-20 lub na strukturze |
| MFE / faktyczny_zysk ≈ 1,1 | Wyciągasz większość ruchu, exit jest dobry | Nie zmieniaj — system jest dostrojony |
MAE/MFE dla strat — odsłania jakość SL
Liczone tylko dla stratnych transakcji:
- Średnia MAE strat ≈ 1,0R (czyli pełny SL) — SL trzymane idealnie, straty mają znormalizowany rozmiar. Jeśli rzeczywisty wynik strat to średnio −1,1R do −1,2R — to jest slippage
- Średnia MAE strat > 1,2R — SL jest przesuwany przeciw planowi ALBO slippage jest dramatyczny ALBO wchodzisz przed gapami. Każda z tych przyczyn wymaga konkretnej akcji naprawczej
Jak operacyjnie wyciągnąć MAE/MFE z platformy
Większość traderów robi to za skomplikowanym. Cztery realne ścieżki — wybierz jedną i trzymaj się jej przez 3 miesiące, zanim ocenisz, czy dane MAE cokolwiek zmieniły w twoich decyzjach. Większość brokerów nie eksportuje MAE/MFE w raporcie CSV (masz tylko entry, exit, max/min w trakcie życia trade'u):
- MT4/MT5 bez tick history — po zamknięciu transakcji oznacz na wykresie M5/M15 z okresu życia pozycji najgorszy ruch przeciw i najlepszy w stronę, przelicz w R (MAE_pips / SL_pips, MFE_pips / SL_pips), zapisz ręcznie. Czas: 30–60 sekund per trade
- cTrader / TradingView — eksport zakresu świec do CSV, automatyczne liczenie MAE/MFE skryptem Python (max/min w oknie open_time–close_time)
- Edgewonk z importem ticków — liczy automatycznie, jeśli broker udostępnia tick history przez API
- FX Blue / Myfxbook — w wersji free zwykle brak MAE/MFE; sprawdź plan płatny lub uzupełniaj ręcznie
Dla 95% detalu opcja 1 (manualnie po zamknięciu) jest najpraktyczniejsza — rzetelnie 30 sekund, bez integracji API i kosztów.
Wykres MAE/MFE — jak to czytać
Klasyczny wykres MAE/MFE (znany jako „Sweeney chart"[4]) ma dwie osie: MAE na osi X, MFE na osi Y, każdy punkt = jedna transakcja. Wygrane zielone, stratne czerwone. Cztery klastry mówią o systemie:
- Lewy dolny róg (niski MAE, niski MFE) — szybkie wygrane bez wahań, idealny scenariusz, ale często sugeruje, że TP są za bliskie
- Prawy górny róg (wysoki MAE, wysoki MFE) — transakcje, które najpierw szły mocno przeciw, potem zawróciły do dużych zysków. To sygnał, że SL były bliskie — trochę więcej slippage'u i straciłbyś
- Lewy górny (niski MAE, wysoki MFE) — idealny entry, idealna kontynuacja. Tych szukasz
- Prawy dolny (wysoki MAE, niski MFE) — wszedłeś źle, cena rzadko poszła w twoją stronę. Tych unikać — diagnozuj setupy z tego klastra
8. Drawdown — historyczny, bieżący, oczekiwany
Drawdown to spadek kapitału od ostatniego szczytu (peak). Trzy poziomy analizy:
Max Drawdown historyczny
Największy zaobserwowany spadek od peaku do dołka w historii rachunku. Liczba kluczowa do oceny psychologicznej tolerancji systemu.
Max DD = max((peak − dolek) / peak) dla każdej historycznej pary peak-dołek.
| Max DD | Interpretacja |
|---|---|
| < 5% | Bardzo konserwatywny — możliwe że sizing zbyt mały dla CAGR |
| 5–10% | Komfortowy dla większości detalu |
| 10–20% | Akceptowalny przy CAGR 25–40% |
| 20–30% | Granica psychologicznej tolerancji — większość traderów panikuje |
| > 30% | Sizing zbyt agresywny — czas zmniejszyć, zanim doprowadzi do margin callu |
Average Drawdown
Średnia z wszystkich historycznych drawdownów. Pokazuje typowy „ból" systemu, nie najgorszy scenariusz.
Reguła: jeśli max DD > 3 × avg DD, system ma „grube ogony" — rzadkie ekstremalne drawdowny. Zwykle znak, że masz albo black swan w historii, albo serię sizingów ponad plan.
Drawdown duration — czas powrotu
Często ważniejszy niż głębokość drawdownu: ile czasu zajmuje powrót do peaku?
- Drawdown 10% z czasem powrotu 2 tygodnie — łatwy do zniesienia
- Drawdown 10% z czasem powrotu 8 miesięcy — niszczy psychikę, większość traderów porzuca system w trakcie
System z mniejszym DD ale dłuższym czasem powrotu może być psychologicznie trudniejszy niż system z większym DD ale szybkim odbiciem. Liczone razem: pain index = (avg DD × avg duration). Niska wartość = łatwy do trzymania system.
Oczekiwany drawdown — symulacja Monte Carlo
Mając 200+ transakcji w dzienniku, możesz zrobić Monte Carlo:
- Bierzesz wektor 200 R-multiple z dziennika
- Losujesz z powtórzeniami sekwencję 1000 transakcji (bootstrap)
- Liczysz max DD dla tej sekwencji
- Powtarzasz 10 000 razy
- Histogram max DD pokazuje rozkład tego, czego możesz się spodziewać w przyszłości
Wynik: oczekiwany 95-percentyl max DD. To jest liczba, do której powinno się odnosić twoje sizing — jeśli system ma 95% szansy na max DD < 18%, sizing 1% jest bezpieczny. Jeśli oczekiwany 95% max DD to 38%, sizing 1% jest zbyt agresywny.
Pełna metodologia Monte Carlo dla strategii w artykule 15.4.
9. Narzędzia: Edgewonk, Myfxbook, FX Blue, własny Excel/Notion
Narzędzie nie czyni z dziennika dobrego dziennika. Dziennik prowadzony w Excelu z dyscypliną pobije Edgewonk prowadzony bez dyscypliny. Ale narzędzie ma znaczenie — niewłaściwe albo zniechęca, albo nie pokazuje tego, czego potrzebujesz.
Porównanie głównych narzędzi
| Narzędzie | Mocne strony | Słabe strony | Dla kogo |
|---|---|---|---|
| Edgewonk | Najlepsze metryki out-of-the-box (R, expectancy, MAE/MFE), gotowe wykresy, klasyfikacja błędów, integracja z MT4/MT5 | Płatny (~150 EUR/rok), wymaga ręcznego importu CSV przy niektórych brokerach | Trader z 200+ transakcjami rocznie, gotowy zapłacić za czas |
| Myfxbook | Auto-import z większości brokerów, publiczne portfele, social proof | Powierzchowne metryki (brak MAE/MFE w wersji free), nastawiony na pokazywanie wyników, nie analizę | Trader, który chce minimalnego wysiłku i akceptuje brak głębokiej analizy |
| FX Blue | Free, dobry trade analyser, statystyki per setup, integracja MT4 | UI z 2010 r., brak pól typu mental state / sleep, brak klasyfikacji błędów | Trader początkujący, który chce zacząć z czymś darmowym |
| Własny Excel | Pełna kontrola, dowolne pola, własne formuły, koszt 0 PLN | Wymaga 4–8h początkowego setupu, trzeba samodzielnie liczyć metryki | Trader systemowy, który chce dokładnie tych metryk, których chce |
| Notion / Obsidian | Łączenie liczb z notatkami jakościowymi, zdjęciami wykresów, refleksjami | Słabe agregaty statystyczne, trudne wykresy | Trader, który ceni narrację i kontekst — komplement do Excela |
Czego nie pokażą popularne narzędzia
Większość narzędzi out-of-the-box nie ma pól na jakość decyzji — mental state, godziny snu, decisional quality. Te trzeba albo dodać własne pola w Edgewonk, albo prowadzić paralelny dziennik w Excelu/Notion. Bez mental state i sleep nie możesz sprawdzić, czy sen realnie wpływa na twoje R-multiple. W wielu praktycznych dziennikach detalu korelacja Spearmana sleep–R wychodzi jako jedna z istotniejszych zmiennych behawioralnych, ale nie wolno zakładać tego z góry — trzeba policzyć to na własnej próbie. Same liczby z fillów brokera tego nie pokażą.
Kiedy własny Excel bije Edgewonk
- Jeśli twoja strategia ma niestandardowe metryki (np. „setup waliduje się jeśli VIX < 18 i CBOE put/call > 1,1") — Edgewonk nie wstawi tych kolumn
- Jeśli prowadzisz strategie multi-asset (FX + indeksy + commodity) — Edgewonk jest mocno FX-centryczny
- Jeśli kalkulacja R-multiple wymaga w twoim systemie dodatkowych modyfikatorów (np. korelacja portfelowa, klasyfikacja A+/B/C z autorską metodologią) — Excel daje pełną kontrolę
Stack per poziom zaawansowania
| Poziom | Stack | Kiedy |
|---|---|---|
| Starter | Google Sheets z 25 polami + CSV z brokera + screen wykresu per trade | Pierwsze 6–12 miesięcy, < 30 trades/mies., budowa nawyku zapisu |
| Intermediate | MyFxBook / FX Blue auto-import + ręczne pola jakościowe (mental state, sleep, decision quality, error_code) w Sheets | 30–60 trades/mies., automatyzacja warstwy „co", ręcznie warstwa „dlaczego" |
| Advanced | Edgewonk lub Tradervue + Python notebook (Monte Carlo, MAE/MFE, korelacje sleep–R, bootstrap CI) + miesięczny raport PDF | > 60 trades/mies., wolumen i czas usprawiedliwiają inwestycję narzędziową |
Decyzja „co wybrać dziś": jeśli prowadzisz dziennik < 6 miesięcy — Starter. Jeśli zapis jest nawykiem, ale brak ci agregatów per setup — przejście do Intermediate. Jeśli liczysz Monte Carlo na > 200 trade'ach co miesiąc — Advanced. Eskalacja stacku przed nawykiem zapisu zwykle nie pomaga — narzędzie nie zastępuje dyscypliny.
10. Workflow analizy dziennika — dziennie, tygodniowo, miesięcznie, kwartalnie
Sam dziennik bez rytmu analizy to baza danych, do której nikt nie zagląda. Profesjonalny workflow ma cztery częstotliwości — codzienna, tygodniowa, miesięczna, kwartalna. Każda odpowiada na inne pytanie i wymaga innego budżetu czasu.
Codziennie — 5 minut po sesji
Cel: zapisać surowe dane, póki pamięć jest świeża.
- Wpisz każdą transakcję z 25 polami (z brokerskiego raportu + pól jakościowych)
- Klasyfikacja błędu (kategoria 0–9)
- Decisional quality (1–5) — szczerze, oddzielnie od wyniku
- Mental state, godziny snu (jeśli nie wpisane rano)
- Jedno zdanie kontekstu: „LON trochę cichszy niż zwykle, NFP był wczoraj"
Bez codziennej dyscypliny pamięć degraduje się o 50% w 24h. Po 3 dniach nie pamiętasz dokładnego mental state w trakcie konkretnej transakcji. Po tygodniu nie pamiętasz, czy wszedłeś według planu czy zaimprowizowałeś.
Tygodniowo — 30 minut, niedziela wieczór
Cel: krótkoterminowa diagnostyka — czy bieżący tydzień był zgodny z systemem.
- Liczba transakcji per setup, per klasa A/B/C
- Tygodniowy R-multiple (suma R z tygodnia)
- Liczba błędów per kategoria — czy któryś błąd dominował?
- Średni decisional quality — czy spadł poniżej 3,5? (sygnał ostrzegawczy)
- Korelacja: w dni z mental state < 3 — jakie były wyniki?
- Jeden refleksyjny akapit: co tydzień nauczył mnie o sobie/rynku
Tygodniowy przegląd wyłapuje świeże problemy: „W środę miałem 4 trades, wszystkie poza setupem A — to był FOMO po słabym poniedziałku". Wykrywanie wzorców na poziomie tygodnia pozwala korygować zachowanie zanim się utrwali.
Miesięcznie — 60 minut, pierwszy weekend miesiąca
Cel: obliczenie pełnych metryk i ocena, czy miesiąc wpisuje się w długoterminowy trend.
- Pełna kalkulacja: WR, expectancy, profit factor, Sortino, max DD, Recovery Factor
- Tabela per setup: ile trades, średnia R, expectancy
- Wykres equity curve miesięczny — porównanie do oczekiwanego (z Monte Carlo)
- MAE/MFE chart — czy entry był dobry, czy zostawiałem na stole?
- Klasyfikacja błędów — top 3 typy błędów miesiąca, plan poprawy
- Korelacje: dni o niskim sleep'ie vs wynik, dni z mental < 3 vs wynik
- Jedno-stronicowy raport miesięczny dla siebie
Raz w miesiącu siadasz nad liczbami niezależnie od wyniku miesiąca — to jedyny moment, w którym widzisz, czy poprawiasz się jako trader, czy tylko masz farta. Miesięczny przegląd ma ci odebrać prawo do wygodnych wymówek: czy traci setup, godzina, para, sizing, czy twoje odejścia od planu.
Kwartalnie — cały dzień
Cel: audyt strategiczny systemu jako całości. Pełna metodologia w artykule 15.10.
- Wszystkie metryki z 3 miesięcy
- Trend metryk: czy expectancy rośnie/spada przez 3 miesiące?
- Per setup: które dorobiły się statystycznej wagi (100+ trades), które nie
- Decyzje: usunąć setup, zmodyfikować, dodać nowy
- Backtest aktualizacji systemu na danych z kwartału
- Plan na następny kwartał: jakie cele, jakie eksperymenty, jakie KPI
Tabela — workflow w 4 częstotliwościach
| Częstotliwość | Czas | Cel | Wynik |
|---|---|---|---|
| Codziennie | 5 min | Zapis surowych danych | Kompletny dziennik 25 pól |
| Tygodniowo | 30 min | Diagnoza krótkoterminowa | Refleksyjny akapit + wzorce tygodnia |
| Miesięcznie | 60 min | Pełne metryki + plan poprawy | Raport miesięczny + 1–3 akcje |
| Kwartalnie | 1 dzień (realnie pół soboty) | Audyt strategii | Decyzje strategiczne + backtest update |
Warianty workflow per profil tradera
- Trader na etacie 9–17 PL — minimum: dziennie 5 min po sesji (wieczorem), tygodniowo 30 min w sobotę rano, miesięcznie 60 min w pierwszy weekend. Kwartalny audyt — obowiązkowo cały dzień (sobota lub niedziela). Realna liczba trade'ów: 5–15 tygodniowo. Jeśli scalp na M1 z 30+ trade'ami dziennie — workflow nie zmieści się w przerwach pracy, trzeba zmienić styl, nie ścisnąć dziennika
- Trader pełnoetatowy — codzienny 15–20 min review po sesji LON i NY, tygodniowy 60 min, miesięczny pełny dzień. Kwartał: 2–3 dni audytu
- Trader weekendowy / swing — codzienna analiza nie ma sensu (trade'ów może nie być przez 5 dni); zamiast tego: wpis w dzienniku w dniu wejścia + monitoring tygodniowy + miesięczne metryki
Kiedy poprawiać system, kiedy poprawiać siebie
Najczęstszy błąd diagnostyczny po stratnym kwartale: wymiana strategii zamiast eliminacji błędów procesu (lub odwrotnie — trzymanie martwego setupu, gdy reżim rynkowy zmienił się na trwałe). Prosta tabela do retrospektywy:
| Sygnał z dziennika | Diagnoza | Akcja |
|---|---|---|
| Expectancy setupu spada, error_code 6–8 rośnie (FOMO, oversized, revenge) | Problem operatora, nie systemu | Blokady techniczne, anti-FOMO bufor, kwarantanna manualnych exit'ów |
| Expectancy spada przy error_code = 0 (plan-zgodne) i PF spada przez 200+ trades | Problem systemu — reżim rynkowy się zmienił lub edge wygasł | Review hipotezy, eliminacja setupu po walidacji OOS |
| WR ≥ 50%, ale avgWin niski (< +1,2R) | Wyjścia za szybkie, capture rate niski | Analiza MFE per trade, poluzowanie trailingu, mini-test 30–50 trade'ów |
| avgLoss < −1,2R | Problem z SL: manualne przesuwanie, brak hard SL na serwerze, slippage | Twardy SL przy każdym wejściu, weryfikacja modelu rachunku |
| Udział A+ > 70% wszystkich trade'ów | Klasyfikacja zbyt łagodna — rozluźniasz kryteria | Zaostrzyć checklistę A+ o 1–2 obiektywne filtry |
| Korelacja Spearman sleep × R > 0,25 | Sen jest mierzalnym KPI, nie miękkim czynnikiem | Dni z sleep < 6h — tylko obserwacja, brak nowych pozycji |
Pełna metodologia decyzji o systemie vs operatorze w artykule 15.10.
FAQ — Najczęściej zadawane pytania
Czy 25 pól dziennika to nie jest przesada?
Jaka jest minimalna liczba transakcji do oceny strategii?
Czy expectancy ujemne zawsze znaczy, że strategia jest zła?
Jak interpretować Sharpe per-trade vs Sharpe annualised?
Jak policzyć korelację snu z wynikiem w arkuszu?
=CORREL(zakres_sleep_hours; zakres_r_net) daje korelację Pearsona; dla rangi (Spearman) sortujesz ranking obu kolumn i liczysz Pearsona z rang. Python: df[['sleep_hours','r_net']].corr(method='spearman'). Próg działania: jeśli Spearman ρ < 0,15 — sen nie jest główną zmienną wpływającą na wynik, wracasz do diagnozy setupu. Jeśli ρ > 0,25 — sleep jest mierzalnym KPI, dni z sleep < 6h prowadzisz tylko jako obserwator, bez nowych pozycji. Próba minimalna do oszacowania korelacji: 60+ obserwacji; poniżej tego ρ jest niestabilne (jedna anomalia zmienia wartość o 0,1).Workflow z amerykańskiego bloga — czemu nie działa dla etatowca w CET?
Jak wyliczyć MAE/MFE jeśli broker nie daje danych intra-trade?
Czy prowadzić jeden dziennik dla wszystkich strategii czy oddzielne?
Co robić, jeśli w dzienniku widzę, że łamię własne reguły?
Czy automatyczny dziennik z brokera (np. Myfxbook auto-import) wystarczy?
Jakie metryki pokazywać innym (mentor, audyt), a jakie zostawić sobie?
Po jakim czasie prowadzenia dziennika można oczekiwać poprawy wyników?
Źródła i bibliografia
- Tharp V.K., Trade Your Way to Financial Freedom, McGraw-Hill, 2nd ed., 2007. Wprowadzenie pojęcia R-multiple jako fundamentalnej jednostki normalizującej wyniki transakcji oraz pełna metodologia liczenia expectancy.
- Sortino F.A., Price L.N., Performance Measurement in a Downside Risk Framework, Journal of Investing, 1994. Oryginalna praca wprowadzająca Sortino Ratio jako alternatywę dla Sharpe'a, karzącą tylko downside variance.
- Steenbarger B.N., The Daily Trading Coach: 101 Lessons for Becoming Your Own Trading Psychologist, Wiley, 2009. Metodologia prowadzenia dziennika z elementami psychologicznymi (mental state, decisional quality) i workflow analizy.
- Sweeney J., Maximum Adverse Excursion: Analyzing Price Fluctuations for Trading Management, Wiley, 1996. Klasyczna praca wprowadzająca metodologię MAE i MFE jako narzędzi diagnostycznych jakości entry i exit.
- Bank for International Settlements, FX Global Code: A Set of Global Principles of Good Practice in the Foreign Exchange Market, Global Foreign Exchange Committee, 2024 update. Wymogi dokumentacji decyzji handlowych dla profesjonalnych desków FX.
- Schwager J.D., Market Wizards series (vol. 1–4), HarperBusiness/Wiley, 1989–2020. Wywiady z najlepszymi traderami, w tym dyskusje na temat prowadzenia dziennika i metryk skuteczności.
- Pardo R., The Evaluation and Optimization of Trading Strategies, Wiley, 2008. Metodologia oceny strategii, profit factor, recovery factor i statystycznej walidacji metryk.
- Kaufman P.J., Trading Systems and Methods, 5th ed., Wiley, 2013. Encyklopedyczne kompendium metryk skuteczności systemów transakcyjnych z formułami i interpretacją.
- Chan E., Quantitative Trading: How to Build Your Own Algorithmic Trading Business, Wiley, 2009. Metryki w kontekście systematycznego handlu, w tym Sharpe i Sortino dla strategii ilościowych.
- Aronson D., Evidence-Based Technical Analysis, Wiley, 2007. Statystyczne podstawy walidacji metryk strategii, przedziały ufności dla WR i expectancy, ostrzeżenia przed selection bias.