Edge i wartość oczekiwana — matematyka przewagi rynkowej
Jeżeli nie liczysz expectancy, nie wiesz, czy system zarabia dzięki przewadze, czy dzięki krótkiej serii szczęścia. Expectancy to pierwsza liczba, bez której każda ocena systemu jest opinią, nie diagnozą. Problem w detalu: większość liczb, które trader zna — win rate, profit factor z MT4, „krzywa equity z backtestu" — jest policzona przed kosztami, przed zmiennym spreadem, przed asymetrycznym slippage'em. Realna przewaga ujawnia się dopiero po zejściu przez cztery warstwy tarcia: model → koszty → błędy egzekucyjne → zmiana reżimu. W poprzednim artykule (8.1) zdefiniowaliśmy, czym jest system transakcyjny. Teraz odpowiadamy na pytanie: skąd wiesz, że twój system ma przewagę — i ile jest ona warta po kosztach, po slippage'u i po twoich własnych błędach egzekucyjnych?
Najważniejsze wnioski
- Edge = wartość oczekiwana > 0. Jeśli nie potrafisz wyliczyć expectancy swojego systemu, nie wiesz, czy masz przewagę, czy tylko szczęście.
- Win rate bez R:R nie mówi nic. System z 30% trafnością może zarabiać więcej niż system z 70% — wszystko zależy od stosunku zysku do ryzyka.
- Pojedynczy trade niczego nie dowodzi. O systemie zaczynasz mówić dopiero wtedy, gdy próbka jest na tyle duża, że wynik nie zależy od dwóch udanych zagrań.
- Każdy edge jest warunkowy i przejściowy. Rynki się zmieniają — system który działał w 2023 może nie działać w 2026. Monitorowanie expectancy to proces ciągły, nie jednorazowy test.
1. Czym jest edge — przewaga tradera nad rynkiem
Najpraktyczniejszą miarą edge'u jest expectancy po kosztach. Jeśli jej nie liczysz, nie wiesz, czy system ma przewagę, czy tylko dobrze ci szło w próbce, której nie zweryfikowałeś. Intuicja, doświadczenie, „czucie rynku" są częścią procesu, ale bez twardej liczby zostają narracjami, które mózg buduje wokół losowości. Dopóki nie zejdziesz do poziomu expectancy po spreadzie, prowizji i poślizgu, każda opinia o własnym systemie jest hipotezą, nie diagnozą — a rynek pobiera opłaty za każdą z nich niezależnie.
Twój system nie musi mieć racji często. Ma tylko zarabiać więcej, niż oddaje, kiedy się myli. W detalu FX/CFD zawsze grasz w środowisku z ujemnym tarciem: spreadem, prowizją, poślizgiem i jakością egzekucji zależną od modelu brokera. Model brokera — A-Book (routing do zewnętrznych dostawców płynności, zwykle STP/ECN) vs B-Book (internalizacja flow klienta jako pozycji własnej) — to nie prosty podział „uczciwy vs oszust". To model zarządzania ryzykiem po stronie brokera. Dla tradera liczy się efekt końcowy: spread, fill rate, reject rate, asymetria slippage'u i stabilność egzekucji przy zleceniach stop. Broker działający w modelu B-Book nie musi manipulować ceną, żeby zjadać twoją expectancy — wystarczy, że fill quality na stopach jest systematycznie gorszy niż na take-profitach.
Według danych ESMA ~74% kont detalicznych na CFD traci pieniądze[1]. Część z nich traci, bo nie ma systemu. Część ma system, ale z ujemną wartością oczekiwaną. A część ma system z dodatnią wartością oczekiwaną w backteście — ale po doliczeniu realnych kosztów, slippage'u i własnych błędów egzekucyjnych expectancy schodzi poniżej zera. Różnica między expectancy z Excela a expectancy z konta live to często różnica między iluzją edge'u a prawdziwym edge'em.
Edge nie jest systemowy. Jest system + infrastruktura. Setup, broker, para, okno płynności — cztery parametry. Zmień jeden i handlujesz innym biznesem, nawet jeżeli wykres na platformie wygląda tak samo. Ten sam zestaw reguł potrafi mieć edge na EUR/USD w overlapie Londyn–NY i palić konto na tej samej parze w Azji, kiedy spread jest trzy razy szerszy. Kiedy i dlaczego edge znika, rozbijamy w sekcji 8.
System replikowalny vs dyskrecjonalny — ryzyko, którego większość nie mierzy
Dyskrecjonalny trading to tylko ładne i drogie słowo na hazard oparty o skurcze żołądka. Dopóki nie handlujesz jak bezduszny algorytm z twardymi warunkami wejścia i wyjścia, rzucasz monetą — oddając kasynu spread za sam przywilej wejścia do gry. Osobny, ale powiązany problem: im bardziej dyskrecjonalny system, tym trudniej rzetelnie zmierzyć jego przewagę, bo kolejne decyzje nie są pełną repliką tego samego procesu. Jeżeli reguły wejścia brzmią „wchodzę, kiedy widzę, że rynek chce iść w górę", mierzysz swoją formę z ostatnich tygodni, a nie właściwości setupu. Podobnie działa ciągła zmiana reguł co kilka tygodni — każda wersja to inny system, z inną próbką i innym rozkładem wyników.
Praktyczny test replikowalności: wyślij swoje reguły komuś, kto nigdy nie słyszał o twoim systemie, i poproś, żeby na zeszłorocznych danych pokazał ci, gdzie by wchodził i gdzie wychodził. Jeśli jego setupy znacząco rozjeżdżają się z twoimi — zwłaszcza na niejednoznacznych formacjach — nie masz reguł, masz intuicję z opisem. System jest replikowalny w tym stopniu, w jakim dwie osoby, patrząc na te same dane i te same reguły, dochodzą do podobnych transakcji. Wszystko poniżej to szary obszar, w którym expectancy jest mieszanką systemu i twojego humoru w dniu kliknięcia — a tego nie da się rzetelnie zmierzyć ani powtórzyć.
Spot FX vs CFD na FX — dlaczego to nie jest ten sam rynek
Polski trader detaliczny, handlując „forex" na platformie MT4/MT5, w praktyce handluje CFD na parę walutową, a nie spot FX. Różnica nie jest semantyczna. Spot FX to dwustronne zobowiązanie do dostawy waluty z rozliczeniem T+2 — handlowane między bankami, funduszami i dużymi korporacjami przez EBS, Reuters, prime broker. CFD na FX to kontrakt różnicowy rozliczany gotówkowo, wystawiony przez brokera retail, syntetycznie replikujący ruch pary. Spread, płynność, godziny handlu i sposób rozliczenia swapów mogą się różnić nawet przy identycznym tickerze. Regulacyjnie — CFD to instrument pochodny pod MiFID II/ESMA (limit dźwigni 1:30 na majorsach, obowiązkowe ostrzeżenie o 74% stratnych kontach), spot FX w EU jest w praktyce niedostępny dla osób fizycznych bez statusu klienta profesjonalnego. Jeżeli robisz backtest na danych „spot" ściągniętych z Dukascopy albo z API bankowego, a handlujesz CFD u brokera retail, testujesz inny instrument niż wchodzi na twoje konto — spread efektywny, slippage na stopach i swap punkty mogą się rozjeżdżać na tyle, żeby zamienić dodatnią expectancy w ujemną. Poza kwotą dźwigni i hasłem marketingowym to są dwa różne produkty — zanim wdrożysz system, upewnij się, że testujesz ten, na którym faktycznie handlujesz.
2. Wartość oczekiwana (expectancy) — wzór, warstwy tarcia, reality check
Wartość oczekiwana (expectancy, EV) to średni zysk lub strata na jednostkę ryzyka. Wzór:
Lub w jednostkach R (gdzie 1R = kwota ryzyka na transakcję):
Expectancy (R) = (Win Rate x Avg R-Multiple wygranych) - (Loss Rate x 1)
Przykład: Win rate 45%, średni zysk 2,1R, średnia strata 1R:
EV = (0,45 x 2,1) - (0,55 x 1,0) = 0,945 - 0,55 = +0,395R
Czyli: za każdą złotówkę ryzyka, średnio zarabiasz 39,5 grosza. To jest edge.
Kilka ważnych rzeczy o expectancy:
- Expectancy musi być dodatnia po kosztach. Backtest może pokazywać +0,35R, ale po doliczeniu spreadu, slippage'u i prowizji realna expectancy spada. Przy scalpingu z 300 transakcjami miesięcznie nawet 0,05R friction na trade to 15R miesięcznie oddane brokerowi — patrz friction drag w art. 8.1.
- Expectancy nie mówi ci, ile zarobisz. Mówi ci, jaka jest średnia na transakcję. Ile zarobisz, zależy od expectancy x liczba transakcji x wielkość pozycji. System z EV +0,1R i 200 transakcjami rocznie może zarobić więcej niż system z EV +0,5R i 20 transakcjami — jeśli position sizing jest porównywalna.
- Dodatnie EV nie eliminuje okresów głębokiego drawdownu. System z EV +0,4R może mieć miesiąc z wynikiem –8R. Taki okres mieści się w normalnej wariancji, nie jest sygnałem śmierci edge'u. „Długi termin" to setki transakcji, nie dziesiątki. Expectancy mówi, gdzie jest twoja średnia — nie chroni przed odchyleniami od tej średniej w krótkim horyzoncie.
Liczenie R i wielkości pozycji w pamięci to minimum higieny w tym zawodzie. Jeśli musisz po to odpalać kalkulator w trakcie sesji, rynek rozjedzie cię spreadem, zanim w ogóle znajdziesz przecinek na klawiaturze. Kalkulator wartości pipsa i lota traktuj jak koło zapasowe, nie system podtrzymywania życia — z którego korzystasz raz w tygodniu, przy kalibracji sizingu, a nie co pięć minut w środku sesji.
Expectancy modelowa vs realna — cztery warstwy tarcia
| Warstwa | Expectancy | Co odejmuje |
|---|---|---|
| Backtest (model) | +0,35R | — |
| Po kosztach transakcyjnych | +0,22R | Spread, prowizja, swap (stały model z backtestu vs realny zmienny spread) |
| Po błędach egzekucyjnych | +0,08R | Slippage, pominięte setupy, przedwczesne cięcia zysków, opóźnione wejścia |
| Po zmianie reżimu | –0,05R | Degradacja edge, crowding, zmiana zmienności — system traci przewagę |
Typowy backtest pokazuje tylko pierwszą warstwę. Profesjonalista liczy z czwartą. System z +0,35R na papierze może być systemem –0,05R live — i trader nigdy się tego nie dowie, jeśli nie rozbije expectancy na warstwy.
Last look i fill quality — dlaczego widziana cena ≠ cena egzekucji
Na OTC FX cena, którą widzisz w platformie, nie jest gwarancją wykonania po tej cenie. Dostawcy płynności (LP) w modelu „last look" mają kilkadziesiąt milisekund na zweryfikowanie, czy w czasie między wysłaniem a akceptacją zlecenia rynek nie ruszył przeciwko ich kwotowaniu — i jeśli ruszył, mogą zlecenie odrzucić (reject) albo przepricować (re-quote). FX Global Code wprowadził zasady fair last look, ale ich wdrożenie zależy od konkretnego brokera i LP. Dla tradera detalicznego oznacza to trzy mierzalne efekty: reject rate na szybkim rynku, asymetryczny slippage (gorszy przy stopach, neutralny przy limit TP) oraz systematyczna, ujemna różnica między expectancy z Excela a expectancy z wyciągu. Im szybszy twój styl (scalping, breakouty), tym większy udział fill quality w realnej przewadze.
A-Book vs B-Book — skąd bierze się ten opóźniony fill. W modelu A-Book twoje zlecenie jest routowane do zewnętrznych LP (banków, ECN) i to one w ramach last look decydują o akceptacji albo odrzuceniu. W modelu B-Book broker internalizuje flow i sam jest drugą stroną transakcji — wtedy opóźnienie realizacji może pochodzić z jego wewnętrznego silnika. Klasycznym przykładem jest Virtual Dealer Plugin na starszych instalacjach MT4: komponent, który celowo wprowadzał opóźnienie rzędu 200–500 ms na zyskownych zleceniach klientów, dając rynkowi szansę na ruch przeciwko pozycji, zanim fill zostanie potwierdzony. Oficjalnie plugin pozwalał brokerowi „zarządzać ryzykiem dealing desku"; praktycznie — systematycznie pogarszał egzekucję klientów generujących dodatni flow. Nowe wersje platform i regulacja MiFID II w EU/UK ograniczyły oczywiste nadużycia, ale pochodne mechanizmy (dodatkowa warstwa kwotowania, prefiltry risk engine brokera) zostały. Efekt praktyczny jest mierzalny: jeżeli średni czas wykonania market order rośnie systematycznie w oknach, w których twój system zarabia, to najczęściej problem nie siedzi w twoim setupie, tylko w tym, jak broker obsługuje zyskowny flow.
B-Book hedging — cichy przełącznik w momentach grozy
Market makerzy przez większość czasu zarabiają na twoich stratach (B-Book internalizacja). Ale w momentach skrajnego ryzyka — publikacja NFP, CPI, decyzja FOMC, interwencja banku centralnego — kiedy detal masowo gra to samo wybicie, brokerzy nie chcą brać kierunkowego ryzyka na własną księgę. Cicho przełączają twój flow do zewnętrznych LP (A-Book), dokładnie w momencie, w którym zależy ci na twardej egzekucji. Efekt: przez 99% czasu dostajesz wewnętrzne fill na miękkiej książce brokera, a raz na miesiąc, kiedy rynek naprawdę się rusza, dostajesz brutalny poślizg zewnętrznego rynku, bo broker umywa ręce i przerzuca ryzyko do Tier-1 banku. Z twojej strony to wygląda jak „broker nagle mnie okradł na NFP". W rzeczywistości to jest hedged flow routing — feature, nie bug, wpisany w model biznesowy. Poznasz to po tym, że reject rate i średni slippage SL rosną dokładnie w oknach high-impact eventów, a w spokojnych godzinach wracają do normy. Wniosek operacyjny: backtestowana expectancy, która zakłada „średnie" warunki egzekucji, konsekwentnie przeszacowuje system handlujący na publikacjach — bo w tych oknach handlujesz z inną architekturą niż w reszcie miesiąca.
Market impact i partial fills — jak 5 lotów zjada trzy poziomy książki
Na cienkiej książce (Azja, rollover, pre-news) pierwszy poziom bid/ask ma głębokość zwykle znacznie mniejszą niż większa detaliczna pozycja. Praktyczna tabela dla EUR/USD o 23:00 CET (rollover, cienka książka) przy próbie wejścia 5 lotami market order:
| Poziom książki | Cena (ask) | Głębokość dostępna | Twoja alokacja | Koszt cząstkowy |
|---|---|---|---|---|
| Top of book (L1) | 1,08453 | 1,5 lota | 1,5 lota | 0,0 p (cena zlecenia) |
| L2 | 1,08458 | 2,0 lota | 2,0 lota | +0,5 p × 2,0 lota |
| L3 | 1,08465 | 3,0 lota | 1,5 lota | +1,2 p × 1,5 lota |
| Średnia ważona cena wejścia | 1,08458 | efektywny spread +1,0 p | ||
Efekt: Spread quoted na ekranie mówi 0,3 p. Twój realny spread efektywny na tym wejściu to 1,0 p — ponad trzykrotnie więcej, zanim pomyślisz o slippage. Partial fills i market impact nie są w żadnym backteście ze stałym spreadem. Operacyjnie: przy pozycjach powyżej 2 lotów na parach z ograniczoną płynnością (AUD/CHF, NZD/CAD, crossy skandynawskie, exotyki) używaj zleceń limit z akceptacją no fill zamiast market, albo rozbijaj pozycję na serię wejść 0,5–1 lot rozłożoną w czasie (domowy TWAP). Naiwny market order na cienkiej książce to jest moment, w którym sam sobie jesteś największym kosztem transakcji.
Spread regimes — kiedy koszt wejścia rośnie 10×
Backtest z jednym uśrednionym spreadem ukrywa największą patologię detalicznego OTC. Spread nie jest stałym kosztem — jest funkcją czasu, zdarzeń i głębokości książki. Typowa mapa reżimów dla EUR/USD u ECN brokera:
| Reżim | Godziny CET | Spread EUR/USD | Ryzyko poślizgu na SL |
|---|---|---|---|
| Londyn–NY overlap | 14:00–17:00 | 0,2–0,4 p | niskie (książka gruba) |
| Londyn open / NY open | 09:00–11:00 / 15:30–16:30 | 0,3–0,6 p | niskie–średnie |
| Sesja azjatycka | 02:00–08:00 | 0,6–1,2 p | średnie (cieńsza książka) |
| Rollover | 22:55–23:15 | 3–6 p (EUR/USD), 8–15 p (crossy) | wysokie, bez realnego ruchu ceny |
| NFP/CPI/FOMC T+0 do T+60s | po publikacji | 5–15 p (pierwsze sekundy bywa szerzej) | ekstremalne — LP wycofują zlecenia |
| Otwarcie niedzielne | niedz. 23:00 | 2–5 p, gap ryzyko | wysokie — luka cenowa |
Przykład liczbowy: system scalpingowy na EUR/USD z planowanym TP 4 p / SL 8 p ma w overlapie koszt wejścia ~0,3 p (7,5% ryzyka). W rolloverze ten sam system handluje z kosztem 4 p — 50% zaplanowanego ryzyka znika w samym spreadzie, zanim cena się ruszy. Jeśli twój backtest używa stałego spreadu 1 p, overfitujesz do średniej, która w realnym handlu nie istnieje.
Swap, carry i cichy drenaż expectancy w swing
Druga cicha warstwa kosztu — tripple swap. Każda pozycja trzymana przez północ CET płaci lub otrzymuje punkty swapowe zależnie od różnicy stóp procentowych walut w parze. W środę broker nalicza swap za trzy doby (weekend jest rozliczany z wyprzedzeniem), co na niektórych parach oznacza koszt 3–4× większy niż w inne dni. Dla strategii swing trzymających pozycję 2–6 dni ujemny swap systematycznie zjada 20–40% planowanej expectancy — i, co gorsza, nie widać go w typowym backteście MT4/MT5 bez ręcznie wpisanych tabel swapowych brokera. Operacyjne: zanim uznasz, że masz edge na GBP/JPY trzymanym 4 dni, zejdź do specyfikacji kontraktu brokera, przelicz swap w punktach na typową wielkość pozycji × średnią długość holdingu, odejmij od expectancy. Jeżeli po uwzględnieniu swapu zostaje około +0,05R, przewaga jest tak cienka, że niewielkie pogorszenie kosztów lub egzekucji potrafi ją wymazać. Co więcej, punkty swapowe u różnych brokerów mogą się różnić o 30–80% przy tej samej parze — marża brokera na punktach swapowych to nie szczegół administracyjny, tylko kolejna warstwa friction. Ten sam swing u brokera A potrafi mieć expectancy +0,18R, a u brokera B z gorszą tabelą swapową +0,04R. System jest ten sam. Rachunek nie.
Iluzja arbitrażu na rolowaniu (spread widening)
Co roku na forach pojawia się „znalezisko": o 22:55 CET spread na EUR/USD rozsunął się na 4–6 p, a świeczka zrobiła mini-pik. Zagramy na ten spread — wejście, ciasny SL, kilka pipsów zysku i wyjście, zanim spread się zwęzi. Brzmi to jak edge. Nie jest. Rolover to okno, w którym LP wycofują kwotowania, żeby odświeżyć swapy, a broker szeroko otwiera ask/bid, bo nie ma z kogo zdjąć płynności. „Pik" na świeczce to artefakt rysowania ceny po mid-point z wycofanych kwotowań, nie realny ruch rynku. Jeżeli tam wejdziesz, zapłacisz spread 5 p przy wejściu, a potem zobaczysz, jak cena „wraca" do poziomu, który nigdy nie był handlowalny — twoja pozycja otwiera się 2–3 p pod wodą, zanim broker zdąży dopisać swap. Każdy „prosty arbitraż" po rolowaniu karmi księgę brokera, nie twoje konto. Jeżeli widzisz to w backteście i masz dodatnią EV, prawie na pewno testujesz na kwotowaniach, których live nie dostaniesz.
Partial fills i market impact — edge odgryziony kawałkami
Na szybkim rynku twoje zlecenie market nie zawsze trafia w jeden tick. Przy dużym lotażu albo w oknie o cienkiej książce (Azja, pre-news) broker wypełnia zlecenie w kawałkach: 0,3 lota po cenie X, kolejne 0,4 po X+1,2 p, reszta po X+2,5 p. Średnia cena wejścia jest gorsza o 0,8–1,5 p od kwotowanego bid/ask — i ten drobiazg, rozłożony na kilkaset transakcji, oznacza kolejną warstwę tarcia, której nie ma w żadnym backteście. Partial fills są szczególnie uciążliwe dla traderów skalujących pozycje warte 2–5 lotów na parach o mniejszej płynności (AUD/CHF, NZD/CAD, crossy skandynawskie) — tam, gdzie książka potrafi mieć 0,5 mln na pierwszym poziomie. To jest moment, w którym większy kapitał detaliczny przechodzi na algorytmy typu VWAP (Volume-Weighted Average Price) albo TWAP (Time-Weighted Average Price) — rozbija zlecenie na serię mniejszych, rozłożonych w czasie lub względem wolumenu, tak żeby nie jeść całej książki przy jednym kliknięciu. Trader z mniejszą pozycją tego problemu nie ma, ale warto wiedzieć, że istnieje próg, powyżej którego naiwny market order zaczyna być jego własnym największym kosztem.
Dodatkowy niuans, o którym warto pamiętać przy ocenie spreadu: spread efektywny vs spread kwotowany. Spread widoczny na ekranie (quoted) pokazuje tylko najlepszą ofertę kupna i sprzedaży na top of book — nie pełną głębokość książki. Jeżeli twoja pozycja ma rozmiar, który zabiera więcej niż pierwszy poziom książki, realny koszt wejścia (spread efektywny) wynika nie z widzianego spreadu 0,3 p, ale ze średniej ważonej kilku poziomów — która może dać efektywne 0,7–1,2 p nawet w gęstej sesji. Do tego dochodzi slippage na market orderze i ewentualny markup brokera B-Book. Spread marketingowy „od 0,0 p" opisuje warunki idealne dla minimalnego lotażu w prime time. Dla realnego konta patrz na spread efektywny z wyciągu (średnia różnica między zleconą a zrealizowaną ceną), nie na spread quoted z dashboardu platformy — to dwa różne numery, i to ten pierwszy wchodzi do twojej expectancy.
FCA RTS 27/28 — publiczne raporty jakości egzekucji
Regulacja MiFID II (RTS 27 dla miejsc wykonywania, RTS 28 dla brokerów) zobowiązuje brokerów w jurysdykcji EU/UK do publikowania rocznych raportów jakości egzekucji — spreadów średnich, median czasu wykonania, reject rates, pięciu głównych miejsc wykonania dla każdej klasy aktywów. Większość brokerów retail spełnia ten obowiązek minimalistycznie — plik PDF ukryty w sekcji Legal Documents — ale dane są publiczne i porównywalne. Przed otwarciem konta realnego pobierz RTS 28 dla dwóch–trzech brokerów, których rozważasz, zobacz pięciu głównych LP (Tier-1 bank czy anonimowy ECN agregator), porównaj medianę czasu egzekucji i reject rate dla klasy „CFD on currencies". To twarde, porównywalne dane — broker nie musi ich reklamować, ale nie może ich też podkolorować pod landing page.
3. Win rate vs R:R — odwrotna zależność
Początkujący trader liczy win rate. Profesjonalista liczy expectancy. „Mój system ma 75% trafności" brzmi dobrze — do momentu, kiedy okazuje się, że średni zysk to 8 pipsów, a średnia strata 30 pipsów. Taki system ma expectancy: (0,75 x 8) - (0,25 x 30) = 6 - 7,5 = -1,5 pipsa na trade. Wysoki win rate, ujemna expectancy. Każda transakcja przybliża cię do zera.
Odwrotna sytuacja: system trend-following z win rate 30% i R:R 4:1. Expectancy: (0,30 x 4) - (0,70 x 1) = 1,2 - 0,7 = +0,5R. Trzy na cztery transakcje to straty — ale system zarabia.
| Profil systemu | Win Rate | Avg R:R | Expectancy (R) | Charakter |
|---|---|---|---|---|
| Scalping / mean reversion | 65–75% | 0,5–1,0:1 | +0,05 do +0,25R | Dużo małych zysków, rzadkie większe straty |
| Day trading | 45–55% | 1,5–2,5:1 | +0,15 do +0,40R | Równy balans zysków i strat |
| Swing trading | 35–50% | 2,0–3,5:1 | +0,20 do +0,50R | Więcej strat, ale większe zyski |
| Trend following / position | 25–40% | 3,0–10:1 | +0,25 do +0,80R | Długie serie strat, kilka dużych zysków robi cały rok |
Uwaga: te zakresy to orientacyjne wartości z literatury i raportów branżowych[2][3]. Konkretne liczby zależą od pary walutowej, okresu, reżimu rynkowego i implementacji. Nie traktuj ich jako benchmark — traktuj jako mapę terenu.
Odwrotna korelacja win rate i R:R to nie teoria — to mechanika rynku. Jeśli ustawiasz TP 4× dalej niż SL, dajesz rynkowi 4× więcej przestrzeni do zawrócenia. Rynek jest obojętny na twój target; porusza się, a TP albo zdąży, albo nie. Jeśli widzisz system z 80% win rate i 5:1 R:R, zakładaj błąd próbki, cherry-picking albo kłamstwo. Rynek nie rozdaje takich profili detalowi.
Asymetryczny slippage — ukryty zabójca R:R
Wzór na expectancy upraszcza egzekucję. W realnym OTC FX fill na wejściu i wyjściu odbiega od ceny modelowej, a asymetria tego odchylenia zaniża realne R. Stop-loss to market order — na szybkim rynku (NFP, dane o inflacji, flash crash) dostajesz fill po pierwszej dostępnej cenie, co może być 5–15 pipsów gorzej niż zlecenie. Take-profit to limit order — dostajesz dokładnie tę cenę lub nie dostajesz filla wcale. Ta asymetria oznacza, że realne R-multiple transakcji jest systematycznie niższe niż planowane: ryzyko wyższe (gorszy fill na SL), zysk taki sam lub niższy (TP może nie być osiągnięty). System z planowanym R:R 2:1 może mieć realny R:R 1,6:1 po uwzględnieniu asymetrycznego slippage. To niszczy expectancy systematycznie i niewidocznie — nie zobaczysz tego w backteście ze stałym spreadem. Operacyjne mitygacje: MT4/MT5 pozwala ustawić w zleceniu parametr Maximum Deviation (Maksymalne odchylenie). Jeśli ustawisz go na 2 pipsy, a rynek ucieknie o 5 na danych, broker odrzuci wejście (reject) zamiast realizować cię po tragicznej cenie. Pomijanka jest lepsza niż fill 8 pipsów od ceny.
Trzy okna, w których egzekucja detalu zamienia się w rzeź
Rollover o 23:00 CET — mechaniczne poszerzanie spreadu. Między 22:55 a 23:15 CET londyński fixing się zamyka, a tokijska płynność jeszcze nie wchodzi. Na EUR/USD spread u typowego ECN brokera potrafi rozszerzyć się z 0,7 do 3–6 pipsów, na crossach (GBP/JPY, EUR/AUD) z 1,5 do 8–15 pipsów — nie dlatego, że cena się rusza, tylko dlatego, że książka zleceniowa chwilowo znika. Stop-lossy postawione w tym oknie są wykonywane po znacznie gorszej cenie nawet wtedy, gdy rynek spot nie wykonał żadnego realnego ruchu.
Sesja azjatycka na crossach — cienka książka jako codzienność. Pary typu GBP/JPY, EUR/AUD, AUD/JPY w godzinach 00:00–07:00 CET mają głębokość książki zleceniowej często 3–5× mniejszą niż w overlapie Londyn–NY. Twój SL market order może „przejść przez" kilka kwotowań zanim znajdzie kupca i zrealizować się 25–40 pipsów od zlecenia. To nie jest event ryzyka — to codzienny standard dla crossów poza prime time. System handlujący crossy w Azji musi mieć albo szerszy SL (akceptacja cienkiej książki), albo filtr sesji (nie handlujemy w tym oknie).
Syntetyczne crossy — podwójny spread ukryty w jednym tickerze. Większość crossów nie ma własnego, centralnego rynku — są syntetycznie składane przez brokera z dwóch par z USD po stronie. EUR/AUD to efektywnie jednoczesny long EUR/USD i long AUD/USD z pozycją przeciwną, a ich kwotowanie to złożenie dwóch spreadów. W Azji, gdy obie nogi mają cieńszą książkę niezależnie, spread na syntetyku potrafi być sumą nie dwóch średnich, tylko dwóch ogonów: typowe 1,5–2,0 p w overlapie zamienia się w 4–6 p o 03:00 CET, a przy wzmożonej zmienności któregokolwiek z członów — nawet 8–12 p. Te same crossy w Londyn–NY handlują się blisko europejskiego banku centralnego (EUR) i amerykańskiej płynności (AUD, USD), więc efektywny spread jest dwa razy węższy. Operacyjnie: przed wejściem na EUR/AUD, GBP/AUD, GBP/CHF w Azji sprawdź spread na obu nogach osobno — jeżeli EUR/USD ma 0,3 p, a AUD/USD 0,8 p, twój syntetyk kosztuje minimum 1,1 p na wejściu i tyle samo na wyjściu. System ze średnim R 2:1 i SL 20 p w tym oknie oddaje w samym spreadzie 10–15% planowanego ryzyka, zanim cena się ruszy.
Stop market vs stop-limit — dwie różne obietnice
Zlecenie stop, które większość detalu używa domyślnie, to stop market: po aktywacji ceny wyzwalającej broker wysyła zlecenie market i daje ci pierwszą dostępną cenę, cokolwiek to znaczy w danej sekundzie. W szybkim rynku (NFP, flash crash, luka otwarcia niedzielnego) „pierwsza dostępna" potrafi być 10–80 p od ceny wyzwolenia. Alternatywą jest stop-limit: po aktywacji ceny wyzwalającej broker wysyła zlecenie limit z twoją maksymalną akceptowalną ceną. Jeżeli rynek ucieknie poza limit, zlecenie zostaje w książce do wygaśnięcia — bez filla. Różnica jest matematyczna: stop market gwarantuje wyjście, ale nie cenę. Stop-limit gwarantuje cenę, ale nie wyjście. Dla systemu, w którym stop na poziomie inwalidacji to ostatnia linia obrony, stop market jest właściwy (chcesz być out za wszelką cenę). Dla strategii, w których „gorszy fill niż spodziewany" jest dla ciebie gorszy niż „brak filla i dopłata marży" — warto rozważyć stop-limit z szeroką tolerancją (np. stop trigger + 5–8 p dla EUR/USD, odpowiednio więcej dla crossów). Trzecia opcja — parametr Maximum Deviation w MT4/MT5 przy market orderach — działa jak miękki stop-limit: ustawisz 3 p, rynek ucieknie 5 p, dostajesz reject zamiast tragic fill. Nie używasz żadnej z tych trzech opcji? Twoja jedyna ochrona to nadzieja, że broker zrealizuje stopa blisko zlecenia.
Session filter — składnik definicji setupu, nie dodatek
Typowy detaliczny zapis strategii: „wejście na breakout z 20-sesyjnego zakresu na GBP/JPY przy potwierdzeniu RSI". Co tutaj brakuje? Okno sesyjne. Ten sam setup handlowany w overlapie Londyn–NY i w Azji to dwa różne biznesy, z różnym spreadem, różną głębokością książki, różną zmiennością i innym rozkładem follow-through po breakoucie. Operacyjnie session filter jest częścią definicji setupu, nie opcjonalną nakładką, która włącza się, kiedy masz czas. Reguły powinny brzmieć: „breakout + RSI na GBP/JPY, tylko w oknie 08:00–17:00 CET, tylko poza T-15/T+30 wokół high-impact eventów (Forex Factory)". Bez tego filtra backtest miesza ze sobą dwa reżimy egzekucji i maskuje prawdę o systemie: część transakcji wychodzi, bo zadziała momentum Londynu, część umiera w cienkiej azjatyckiej książce. Usunięcie filtra sesji z definicji setupu to najczęstsza ukryta przyczyna, dla której backtest pokazuje dodatnią expectancy, a live koncentruje straty w konkretnych godzinach — te same, których trader nie zauważył jako osobnego reżimu.
HFT wokół publikacji makro. 20–50 ms przed publikacją NFP/CPI/FOMC LP wycofują zlecenia. Spread na EUR/USD potrafi skoczyć z 0,7 do 8–15 p w pierwszej minucie. Stop ordery aktywowane w tym oknie wykonują się na rozjazdach kwotowań — łapiesz podwójnego stopa z poślizgiem, a minutę później rynek wraca w kierunku trendu. Operacyjne: system wyłącza się automatycznie 15 min przed i 5 min po eventach high-impact (filtr Forex Factory).
Negative gamma dilerów — dlaczego ruch po NFP jest nienaturalnie szybki
Druga warstwa, o której detal rzadko myśli, to hedging opcyjny banków. Gdy duże deski sprzedają volatility przed eventem (krótkie straddle'e, strangle'e), generują pozycję z negative gamma: im mocniej rynek rusza się w jedną stronę, tym większą pozycję dealer musi dołożyć delta-hedgingowo w tym samym kierunku. Po zaskoczeniu NFP mechaniczny hedging kupowania dolara nakłada się na flow spekulacyjny i amplifikuje ruch. Stąd statystycznie duży udział 50–80 p świec w pierwszych 30 sekundach po publikacji. Twój stop-loss postawiony „na spokojny rynek" nie konkuruje tylko z rynkiem — konkuruje też z deterministycznym flow z modeli hedgingu. Wniosek operacyjny: w oknach, w których ten mechanizm pracuje, albo grasz z szerszym SL i mniejszą pozycją, albo nie grasz w ogóle.
Rynek nie rozdaje medali za styl. Scalper z EV +0,08R i 400 trade'ami miesięcznie i swing trader z EV +0,40R i 15 trade'ami potrafią skończyć rok z tym samym wynikiem — ale żyją w dwóch innych zawodach. Scalper utrzymuje się z ciągłej seryjności małych zysków i okazjonalnego większego cięcia. Swing trader siedzi w długich seriach strat przerywanych raz na jakiś czas dużą wygraną. Matematyka nie powie ci, który z tych rytmów zniesiesz przez rok bez rozłożenia. To pytanie z operatora, nie z wzoru — i należy do działu stylu (art. 8.1), nie expectancy.
Fat tails w trend-following — dlaczego nie możesz wyjść wcześniej
Systemy trend-following mają rozkład R-multiple z grubym prawym ogonem (fat right tail). Mediana transakcji może być –1R, ale średnia jest dodatnia, bo raz na kilka miesięcy pojawia się +8R lub +12R transakcja. To oznacza, że: (a) przez większość roku system wygląda jak zły — i emocjonalnie rujnuje tradera, (b) jedna pominięta „wielka" transakcja (bo trader był na urlopie, wyłączył system „bo rynek wygląda dziwnie") może zniszczyć cały roczny wynik. W systemach trend-following największym grzechem jest obcinanie prawego ogona rozkładu. Jeśli twoja metodologia zakłada trzymanie dużych zwycięzców (trailing stop, volatility exit, ATR exit — nie ważne jaki mechanizm), przedwczesne zamknięcie „bo zysk wygląda dobrze" zabija cały sens systemu i może kosztować znaczną część rocznego zwrotu.
Trailing stop a deformacja R-multiple w raportach
Klasyczny błąd przy liczeniu expectancy na systemach z trailingiem: trader traktuje każde wyjście jako transakcję z R-multiple liczonym od aktualnego trailed stop'a, nie od pierwotnego SL na wejściu. Efekt — raportowane R wygląda lepiej niż rzeczywiste. Przykład: wejście na EUR/USD, SL inicjalny 20 p (1R), trailing stop po 40 p zysku przesuwa stop na +10 p nad wejściem. Cena zawraca, stop zdejmuje pozycję z zyskiem +10 p. Trader wpisuje: „zysk +10 p, R-multiple = +0,5R". Matematycznie błędnie. R-multiple liczymy w stosunku do pierwotnego ryzyka — czyli +10 p / 20 p = +0,5R na wejściu, ale z perspektywy całego trade'a to jest zysk 0,5R po tym, jak przeszedł przez punkt, w którym dał +2R i oddał większość. Jeżeli liczysz expectancy z R-multiple po trailingu, dostaniesz zawyżony wynik, bo każdy „zwrot z zysku do trailed stop" wygląda jak mała wygrana, a był częściowo zamienioną większą. Operacyjnie: trzymaj dwie metryki — R-multiple realizowane (co trafia na konto) i R-multiple maksymalne (ile dał setup zanim wyszedłeś). Różnica między nimi to miara, ile zysku trailing zjada. Jeżeli średni realizowany R to +0,4R, a średni maksymalny R to +2,1R, twój trailing zostawia 80% potencjału systemu na stole. Expectancy nie kłamie — ale trailing parameterisation kłamie na temat tego, dlaczego jest taka, jaka jest.
4. Prawo wielkich liczb — dlaczego pojedynczy trade nie ma znaczenia
Przy win rate 40% seria ośmiu strat z rzędu nie jest rzadka — jest oczekiwana. W wystarczająco długiej próbce taka sekwencja pojawi się wielokrotnie i nie świadczy o niczym innym niż o tym, że próbka jest długa. System zmienia się po 4. stracie nie dlatego, że przestaje działać, ale dlatego, że nikt przed startem nie usiadł z Excelem i nie policzył, ile strat pod rząd mieści się w normalnej wariancji jego własnego systemu. Seria strat nie zawsze oznacza wzrost ryzyka systemowego — oznacza, że dystrybucja wyników robi to, co ma robić. Trader bez rozpisanej granicy wyłącza system dokładnie w najgorszym możliwym momencie: kiedy statystyka mówi „trzymaj", a żołądek mówi „uciekaj".
Problem: większości traderów detalicznych nie starcza próbki, żeby ich edge się zrealizował. System z win rate 40% i EV +0,3R może łatwo wygenerować serie 8–10 strat pod rząd (prawdopodobieństwo: (0,60)10 = ~0,6%). Przy 5 transakcjach miesięcznie to 2 miesiące bez wygranej. Większość traderów zmieni system po 4–6 tygodniach takiej serii — i nigdy nie dowie się, że system działał.
| Win Rate | P(seria 5 strat) | P(seria 10 strat) | P(seria 15 strat) |
|---|---|---|---|
| 30% | 16,8% | 2,8% | 0,47% |
| 40% | 7,8% | 0,6% | 0,047% |
| 50% | 3,1% | 0,098% | 0,003% |
| 60% | 1,0% | 0,010% | ~0% |
Wzór: P(seria N strat) = (1 - WinRate)N. Te prawdopodobieństwa dotyczą dowolnej serii N strat pod rząd w nieskończonej próbce. W praktyce, przy skończonej liczbie transakcji, prawdopodobieństwo napotkania takiej serii jest wyższe, bo masz wiele „okien", w których może się pojawić.
Co z tego wynika praktycznie?
Minimum viable sample — nie ma jednej liczby
Artykuły i kursy podają „50–100 transakcji" jako próbkę. To uproszczenie. Minimalna próbka statystyczna zależy od win rate: przy niskim WR potrzebujesz więcej transakcji, żeby odróżnić edge od wariancji.
| Win Rate | 95% przedział ufności przy 100 transakcjach | Solidna próbka |
|---|---|---|
| 30% (trend-following) | ±9pp (21%–39%) — za szeroki | 300+ transakcji |
| 45% (swing) | ±10pp (35%–55%) | 200+ transakcji |
| 60% (day trading) | ±10pp (50%–70%) | 100–150 transakcji |
| 70% (scalping) | ±9pp (61%–79%) | 100 transakcji |
Dla trend-following z win rate 30% solidna próbka to 300+ transakcji[4]. Przy 5 transakcjach miesięcznie to ponad 4 lata danych — zanim w ogóle będziesz wiedział, czy twój system ma edge. Dla scalpera z win rate 65% i 200 transakcjami miesięcznie wystarczy 2–3 miesiące. Ta asymetria jest kluczowa i wyjaśnia, dlaczego position traderzy polegają na backtestach, a scalperzy mogą szybko weryfikować na koncie live.
- Nie zmieniaj systemu po serii strat, jeśli seria mieści się w oczekiwanym zakresie. Jeśli twój system ma 40% win rate, seria 6 strat jest normalna — nie jest sygnałem, że system się zepsuł.
- Czym mniej transakcji robisz, tym dłuższa jest droga do statystycznej pewności. Position trader z 30 transakcjami rocznie potrzebuje 3–5 lat, żeby ocenić, czy system ma edge. Scalper z 300 transakcjami miesięcznie może to ocenić w 2–3 miesiące.
5. Symulacja Monte Carlo — stress-testing systemu
Backtest to wersja historii, w której wszystkie twoje najlepsze transakcje trafiły się w idealnej kolejności — a drawdowny spadły na okno, które udało ci się emocjonalnie przeżyć. Monte Carlo sprawdza, co by było, gdyby trafiły się inaczej. Bierze tę samą listę transakcji, losowo przestawia ich kolejność (opcjonalnie dodaje szum do parametrów) i generuje setki lub tysiące alternatywnych equity curves — pokazując ci nie „co się wydarzyło", ale „co mogło się wydarzyć" przy tej samej próbie statystycznej.
Dlaczego to ważne? Bo backtest może pochlebiać. Może się okazać, że twój system wygląda dobrze tylko dlatego, że trzy najlepsze transakcje trafiły się na początku — i equity rosło od startu. Gdyby te same transakcje trafiły się po serii strat, drawdown byłby dużo głębszy, a ty prawdopodobnie zrezygnowałbyś z systemu zanim odrobił straty.
Co Monte Carlo ci daje:
- Zakres możliwych drawdownów — nie „jaki był max drawdown w backteście", ale „jaki może być w 95% scenariuszy". Jeśli mediana max drawdown to 12%, ale 95. percentyl to 28% — musisz być przygotowany na 28%, nie na 12%.
- Prawdopodobieństwo ruiny — ile procent symulacji kończy się utrata X% kapitału. Jeśli 5% symulacji kończy się strata >40% — czy jesteś gotowy na to ryzyko?
- Stabilność expectancy — czy wynik jest skoncentrowany wokół średniej, czy rozproszony. Wąski rozkład = stabilniejszy system. Szeroki = więcej losowości.
- Wyeksportuj statement — MT4/MT5: Account History → Save as Report → DetailedReport.htm. Potrzebujesz minimum 100 transakcji z R-multiple (zysk/strata podzielony przez wielkość ryzyka).
- Permutacja kolejności — 1000 losowych permutacji tej samej listy transakcji. Dla każdej permutacji policz: końcowy CAGR, max drawdown, najdłuższą serię strat.
- Bootstrap wyników (opcjonalnie, ale mocniejszy) — losowanie ze zwracaniem zamiast permutacji. To symuluje „co by było, gdyby trafił ci się inny zestaw podobnych transakcji".
- Test odporności — odejmij top 5%, 10%, 20% najlepszych transakcji i zobacz, czy expectancy nadal jest dodatnia. System, który bez top 20% trade'ów schodzi na –0,10R, to system uzależniony od fartu, nie od edge'u.
- Odczyt metryk — mediana i 95. percentyl max drawdown, prawdopodobieństwo ruiny (ile % symulacji kończy się stratą > X%), rozkład końcowego CAGR.
Narzędzia: QuantAnalyzer (płatny, najlepsza opcja — pełna analiza + Monte Carlo + walk-forward), Forex Tester, darmowe Equity Monaco (web), Python z bibliotekami numpy + pandas (50 linii kodu). Minimum 500–1000 permutacji — poniżej tego rozkład jest niestabilny.
Monte Carlo dla sekwencji strat — co system robi z twoją głową, zanim zrobi to z kontem
Klasyczny Monte Carlo raportuje max drawdown i CAGR. Mniej popularna, ale operacyjnie ważniejsza metryka to rozkład długości serii strat. Przy win rate 40% prawdopodobieństwo serii 6 strat z rzędu w dowolnym punkcie 200-transakcyjnej próbki wynosi około 85%. Serii 8 strat — około 45%. Serii 10 strat — około 18%. To nie są anomalie, to statystyka, którą twój system wygeneruje w normalnym działaniu. Monte Carlo pozwala odpowiedzieć na konkretne pytanie: „jaką najdłuższą serię strat mogę spotkać w 95% scenariuszy?" i porównać z odpowiedzią na inne: „ile strat pod rząd jestem w stanie zaakceptować, zanim zacznę łamać reguły systemu?"
Praktyczna procedura: w 1000 permutacjach policz najdłuższą ciągłą serię strat dla każdej symulacji. Mediana tej wartości to twoje „normalne dno" — seria, którą system produkuje w większości scenariuszy. 95. percentyl to dno, do którego musisz mieć zarówno kapitał, jak i emocjonalną rezerwę. Jeżeli 95. percentyl wynosi 9 strat pod rząd, a ty po 5 stratach wyłączasz komputer i „myślisz o tym weekend", twój rzeczywisty system ma skuteczny filtr po 5 stratach — i to ten filtr, nie oryginalne reguły, determinuje twoją expectancy. Monte Carlo nie naprawia tego problemu, ale go uwidacznia: pokazuje ci z wyprzedzeniem, ile razy będziesz musiał wcisnąć „kolejna transakcja" po nieprzyjemnej serii, żeby zostać z systemem. Jeżeli ta liczba jest większa niż twoja tolerancja bólu, lepiej zmniejszyć frakcję sizingu teraz niż odkryć tę lukę po dziewiątej stracie w piątek o 23:15.
6. Kelly criterion i position sizing — ile ryzykować na trade
Wzór Kelly'ego jest matematycznie poprawny dla zakładu, w którym prawdopodobieństwo wygranej znasz co do czwartego miejsca po przecinku — jak w blackjacku z liczonymi kartami. Twój win rate z 100 transakcji ma błąd typu ±8–10 punktów procentowych. Jeżeli do wzoru wchodzi estymata obciążona szumem, z wzoru wychodzi frakcja obciążona tym samym szumem, tylko skalowana proporcjonalnie do zmienności wyniku. Dlatego w praktyce używa się frakcji Kelly — nie dla ostrożności, tylko dlatego, że parametry są z definicji niedokładne, a pełny Kelly w warunkach niepewności produkuje drawdowny, których emocjonalnie nie przeżyjesz.
Wzór Kelly'ego (uproszczony dla tradingu):
Gdzie: W = win rate (0–1), R = stosunek średniego zysku do średniej straty (avg win / avg loss).
Przykład: W = 0,45, R = 2,1. Kelly = 0,45 - (0,55 / 2,1) = 0,45 - 0,262 = 0,188 = 18,8% kapitału na trade.
To wzór ścisły dla zakładów binarnych — wygrana o R jednostek albo strata 1 jednostki — przy znanym prawdopodobieństwie wygranej. W tradingu W i R są estymatami z próbki. Frakcja Kelly nie dlatego, że wzór jest przybliżeniem, tylko dlatego, że parametry są obciążone błędem próbkowania i zmieniają się z reżimem rynku.
Jeśli przy lewarze ESMA 1:30 zaryzykujesz 18% na trade, rynek wypluje cię zanim zdążysz powiedzieć „wartość oczekiwana". Seria 4 strat = –53% kapitału. To nie jest anomalia. To zwykły wtorek przy win rate 55%.
100 transakcji to za mała próbka, żeby ufać win rate na poziomie ±5 pp. A Kelly zakłada, że ufasz na ±0,5 pp. Przy prawdziwym WR = 42% i estymacie 50% z setki trade'ów pełny Kelly każe otworzyć pozycję dwa razy większą, niż znosi rzeczywista przewaga. Drawdown przy takim błędzie rośnie wykładniczo i zwykle przekracza to, co detaliczny trader utrzyma emocjonalnie. W tradingu założenia Kelly'ego zwykle nie są spełnione: parametry nie są stabilne (zmiana reżimu), zakłady nie są niezależne (autokorelacja wyników), a W i R to estymaty z próbki obciążonej slippage'em, pomijankami i emocjami. Dlatego używa się frakcji — nie z ostrożności, tylko dlatego, że pełny Kelly wymaga założeń, które w realnym tradingu detalicznym zwykle nie są spełnione.
Korelacje portfelowe — dlaczego 1% ryzyka na trade nie znaczy 1% ryzyka portfela
Trzy longi na EUR/USD, GBP/USD i AUD/USD po 1% ryzyka to nie 3% ryzyka portfela. To de facto skoncentrowany short USD — korelacje tych par z indeksem DXY wahają się historycznie w przedziale 0,7–0,9, co oznacza, że jeden silny ruch DXY (np. wystąpienie Powella po FOMC) pociągnie wszystkie trzy pozycje w tym samym kierunku. Efektywne ryzyko portfela na ruch DXY w tej konfiguracji to około 2,5–3% kapitału, nie zadeklarowane 3% rozproszone. Ten sam problem pojawia się w podobnej formie dla long JPY crossów (wszystkie eksponowane na ryzyko stóp japońskich) i dla koszyków commodity currencies (AUD, NZD, CAD razem to często jeden zakład na apetyt na ryzyko w Azji). Operacyjne: przed dodaniem nowej pozycji policz korelację 60-dniową między istniejącymi pozycjami a nową — jeśli średnia korelacja przekracza 0,6, efektywne ryzyko portfela liczy się bliżej sumy nominalnej niż sumy niezależnej. W praktyce: 3 skorelowane pozycje po 1% każda zachowują się jak jedna pozycja z ryzykiem 2,5–2,8%.
Netting ekspozycji walutowej — ten sam zakład w trzech opakowaniach. Spójrz na portfel nie przez pryzmat par, tylko przez pryzmat walut bazowych. Long EUR/USD + long GBP/USD + short USD/CHF to netto: +EUR, +GBP, +CHF, –3×USD. Trzy „różne" pozycje są w rzeczywistości jedną tezą kierunkową — „USD osłabnie" — rozbitą na trzy instrumenty. Jeżeli w tym samym czasie dodasz short USD/JPY, netto USD rośnie do –4×. Jeden mocny impuls DXY zamienia cztery „niezależne" pozycje w jeden kierunkowy blok z tą samą korelacją. Praktyczny workflow: na końcu każdego dnia rozbij wszystkie otwarte pozycje na waluty komponentowe (każda para = +waluta bazowa, –waluta kwotowana × rozmiar pozycji), zsumuj ekspozycję per waluta. Jeśli jakakolwiek waluta ma netto powyżej 2× twojej nominalnej pozycji jednostkowej, masz skoncentrowany zakład, nie zdywersyfikowany portfel.
Narzędzia do pomiaru korelacji. Nie musisz liczyć macierzy w Pythonie, żeby zdiagnozować skoncentrowany portfel: Myfxbook → Tools → Correlation (darmowa macierz 28 głównych par z kilkoma oknami czasu), Investing.com → Tools → Currency Pairs Correlation, TradingView → indykator „Correlation Coefficient" (nakładany na dowolny wykres z drugim instrumentem w parametrach), MT4/MT5 → wbudowany indicator Correlation w starszych buildach. Sprawdzaj korelację 60-dniową i 90-dniową osobno — rozjazd tych dwóch okien (np. 90D = 0,4, 60D = 0,85) oznacza, że reżim korelacji się zmienił i twój backtest z okresu niskiej korelacji nie opisuje już aktualnego portfela.
Autokorelacja wyników i bias Kelly'ego — dlaczego po 3 stratach warto zmniejszyć pozycję
Kelly zakłada, że kolejne transakcje są niezależne. W praktyce wyniki systemu są autoskorelowane — zarówno dodatnio (momentum reżimu: kiedy system pasuje do rynku, wygrywa kilka z rzędu), jak i ujemnie (mean reversion w seriach strat: po trzech stratach często przychodzi odbicie). Ważniejsza jest autokorelacja dodatnia w reżimie, który się zepsuł: seria 3 strat pod rząd to statystycznie słaby dowód, że edge zdechł, ale jest to najsilniejszy sygnał, żeby w następnej transakcji zmniejszyć pozycję do 50–70% nominalnej. Nie dlatego, że wzór to mówi, tylko dlatego, że w warunkach, w których nie wiesz, czy patrzysz na normalną wariancję czy na zmianę reżimu, redukcja pozycji kupuje ci czas na diagnostykę. Operacyjne: po 3 stratach zmniejsz do 0,5× nominalnej, po 5 do 0,25×, po 7 zatrzymaj handel i zrób pełny audyt. Wracaj do pełnej pozycji dopiero po 3 wygranych z rzędu albo po 10 transakcjach bez degradacji kroczącej expectancy.
Praktyczna reguła: użyj frakcji Kelly — najczęściej 1/4 do 1/2 Kelly[5]. W powyższym przykładzie: 1/4 Kelly = ~4,7%, 1/2 Kelly = ~9,4%. Realnie większość dyscyplinowanych traderów detalicznych operuje w przedziale 0,5–2% kapitału na transakcję — to zwykle ułamek Kelly'ego wyliczonego z ich własnych parametrów, nie wynik osobnego wzoru. Jeżeli w systemie lewarowanym ryzykujesz regularnie powyżej 2% na pojedynczy trade, koszt każdego błędu w estymacji win rate, R:R lub jakości egzekucji rośnie liniowo — i nawet normalna, przewidywalna seria strat (która statystycznie pojawia się kilka razy w roku) potrafi zabrać tyle kapitału, że trudno odzyskać dystans emocjonalny do systemu, nawet jeżeli samo edge przetrwało. Ryzyko powyżej 2% nie zabija backtestu, zabija tradera, który backtest wdraża.
Frakcje Kelly vs drawdown — tabela porównawcza
Dla systemu z pełnym Kelly = 18,8% (W = 0,45, R = 2,1), drawdown liczony geometrycznie po serii strat:
| Frakcja | Ryzyko/trade | DD po 5 stratach | DD po 10 stratach | DD po 15 stratach |
|---|---|---|---|---|
| Full Kelly | 18,8% | –65% | –88% | –96% |
| Half Kelly | 9,4% | –39% | –63% | –77% |
| Quarter Kelly | 4,7% | –21% | –38% | –52% |
| Fixed 2% | 2% | –10% | –18% | –26% |
| Fixed 1% | 1% | –5% | –10% | –14% |
Pełny Kelly 18,8% po 10 stratach z rzędu zostawia cię z 12% startowego kapitału — matematycznie czeka cię 733% wzrostu, żeby odrobić. Fixed 1% po tej samej serii wymaga 11% do odrobienia. Różnica między tymi dwoma światami to nie matematyka — to decyzja, ile wariancji mieści się w twoim horyzoncie psychicznym.
Stop-Out — moment, w którym broker wybiera za ciebie
Tabela drawdownów zakłada, że każda strata idzie po planowanym SL. W praktyce, kiedy drawdown stopu wpędza konto w strefę wymaganego depozytu zabezpieczającego, decyzję o zamknięciu pozycji przejmuje broker — w momencie, w którym equity spada poniżej wymaganego margin level (typowo u brokerów EU/UK próg stop-out to 50% wymaganego marginu). Mechanika jest prosta i brutalna: system wybiera największą pozycję stratną i realizuje market order po najlepszej dostępnej cenie w książce. Nie po cenie z twojego ekranu — po cenie, którą LP albo B-Book brokera są gotowi zaakceptować w tej sekundzie. W szybkim rynku (gap otwarcia niedzielnego, CHF 2015, flash crash) spread efektywny w momencie stop-outu potrafi być 10–30× szerszy niż w normalnych warunkach. Efekt: konto, które według platformy miało jeszcze 15–20% kapitału, po wykonaniu stop-outu wychodzi na zero albo w ujemne saldo. Wniosek operacyjny: własne SL ustawione z zapasem do progu stop-out są jedynym mechanizmem, który gwarantuje, że zamknięcie pozycji wykonuje się na twoich warunkach, a nie brokera. Jeżeli twój planowany drawdown przy najgorszej serii przewidzianej w Monte Carlo znajduje się w odległości mniejszej niż 30–40% od progu stop-out, frakcja sizingu jest za wysoka — i matematyka dopełni się za ciebie w najbardziej niewygodnej sesji roku.
Ważne: position sizing jest multiplikatorem expectancy. Jeśli masz EV = 0, żaden sizing nie pomoże. Jeśli masz EV < 0, większy sizing szybciej cię zabije. Position sizing nie tworzy edge — wzmacnia edge, który już masz (lub wzmacnia straty, jeśli go nie masz).
7. Jak zmierzyć edge w praktyce
Teoria jest prosta: policz expectancy. Praktyka jest trudniejsza, bo musisz mieć dane, które coś znaczą. Procedura krok po kroku:
Krok 1: Zbierz próbkę transakcji
Minimum 50 transakcji — lepiej 100+[4]. Mogą być z backtestu (lepiej: out-of-sample) lub z konta live/demo. Każda transakcja powinna mieć: datę wejścia, datę wyjścia, kierunek, wynik w pipsach i wynik w R-multiple (zysk/strata podzielony przez wielkość ryzyka).
Krok 2: Policz podstawowe metryki
- Win rate = liczba wygranych / łączna liczba transakcji
- Avg R-multiple (wygranych) = suma R wygranych / liczba wygranych
- Avg R-multiple (przegranych) = suma R przegranych / liczba przegranych (powinno być bliskie -1R jeśli stosujesz stały stop)
- Expectancy (R) = (WR x Avg R win) - ((1 - WR) x |Avg R loss|)
- Profit factor = suma zysków brutto / suma strat brutto (>1 = zyskowny)
Krok 3: Zrób reality check — execution gap
Porównaj expectancy z backtestu z expectancy na koncie live. Różnica to twój execution gap — i jest zawsze ujemna. Typowy gap to 0,05–0,20R, w zależności od stylu (scalping = więcej, swing = mniej). Jeśli gap jest większy niż 0,20R, rozbij go na składniki:
- Spread drift — backtest w MT4 domyślnie używa stałego spreadu. System z expectancy +0,20R na stałym spreadzie 1,0 pipsa staje się systemem –0,10R, kiedy w nocy (sesja azjatycka) lub na danych makro spread rozjeżdża się do 3–5 pipsów. Backtest bez symulacji zmiennego spreadu to kłamstwo.
- Asymetryczny slippage — czy slippage na stopach jest systematycznie gorszy niż na TP? To sygnał alarmowy: problem może leżeć w modelu egzekucji, polityce brokera albo w samej naturze twojego flow. Sprawdź raport slippage w MyFxBook.
- Pominięte setupy — niewidoczny selekcjonizm. Na backteście system bierze 100% sygnałów. Na live pomijasz te, które „wyglądają niepewnie". To zawyża wynik backtestu vs live.
- Przedwczesne cięcia zysków — zamykasz po +1,2R zamiast czekać na TP przy +2,5R. Prospect theory w akcji[10].
- Opóźnione wejścia — czekasz na „potwierdzenie", które w backteście nie istniało. Wchodzisz 3–5 pipsów później niż system kazał.
Konto demo zwykle nie odtwarza realnej jakości egzekucji — spready bywają węższe, fille idealne, poślizg niemal nieobecny. Dla systemów krótkoterminowych (scalping, breakouty na M1/M5) ten sam broker potrafi pokazać na demo wynik o 0,2–0,4R lepszy niż na realnym koncie. Praktyczna konsekwencja: jeśli execution gap między demo a live przekracza 0,3R, problem prawie na pewno leży w egzekucji, nie w setupie — ale zdiagnozować go możesz dopiero po wrzuceniu do statystyki spreadu efektywnego, slippage na SL i czasu wykonania osobno. Demo jest użyteczne do przetestowania logiki platformy i sprawdzenia, czy system da się poprawnie wykonywać pod presją czasu. Nie jest użyteczne do weryfikacji expectancy — tę musisz zbudować na danych z realnego routingu.
Krok 4: Monitoruj w czasie — expectancy krocząca
Jednorazowe policzenie expectancy niewiele daje. To jak jedno badanie krwi co dekadę i wniosek, że jesteś zdrowy. Krocząca expectancy — liczona na oknie ostatnich 50–100 transakcji — jest jednym z pierwszych sygnałów, po których zauważysz, że coś się zmienia, zanim konto dostanie realnego ciosu. Bez tego pomiaru często dowiadujesz się, że edge zdechł dopiero wtedy, kiedy drawdown jest już na tyle głęboki, że diagnostyka miesza się z panicznymi decyzjami. Jeśli krocząca spada systematycznie z +0,28R do +0,05R przez 60 transakcji, masz jeszcze okno na spokojną analizę (patrz sekcja 8). Jeżeli utrzymuje się poniżej zera przez kolejne okna, system wymaga audytu albo wyłączenia — kontynuacja bez diagnozy zamienia normalne ryzyko wariancji w koszt ignorowania danych, które masz pod ręką. Chaotyczne skoki w obie strony oznaczają, że próbka jest za mała albo reżim się rozjeżdża; jedna z tych dwóch odpowiedzi jest w twoim zasięgu w każdym tygodniu.
Krok 3b: COT jako filtr tła dla swing i position
Raporty Commitments of Traders (art. o COT) są opóźnione o 3 dni robocze i wychodzą raz w tygodniu — nie nadają się do intraday triggerów. Mają sens jako filtr tła dla swing i position tradingu. Konkretny workflow: kiedy net long spekulantów na EUR futures (kontrakt 6E na CME, kategoria Leveraged Funds) osiąga ekstremalny percentyl (>90% lub <10% z 3-letniej historii), historycznie daje to statystyczny skos do odwrócenia w ciągu 4–8 tygodni — ale sygnał jest trailing, nie triggering. Swing trader nie używa go jako wejścia, tylko jako ostrzeżenia, że dalszy upside ma gorszy profil asymetrii (crowded long → squeeze risk). Narzędzia: Barchart.com/commitments, COTbase.com, TradingView indicator COT Report by sbtnc.
Workflow: jak dziś policzyć edge na własnych danych
Konkretne narzędzia, od najprostszego do najbardziej zaawansowanego:
- MyFxBook — podłącz konto (MT4/MT5), wejdź w Advanced Statistics → odczytaj Expectancy, Profit Factor, Avg Win/Loss. Gotowe w 5 minut.
- Edgewonk (płatny) — dedykowany journal z automatycznym liczeniem R-multiple, expectancy, execution gap i rozkładem wyników.
- Arkusz kalkulacyjny — minimalna tabela: data, para, kierunek, R-multiple, spread przy wejściu, slippage, czy trade był planowy. Z tego wyliczasz: win rate, avg win R, avg loss R, expectancy, PF, max DD, avg trade duration.
- Kalkulator wartości pipsa (arkusz własny lub narzędzie brokera) — do przeliczenia R na realne pieniądze dla twojej pary.
Arkusz w Google Sheets z 6 kolumnami, prowadzony po każdej sesji, bije Edgewonk prowadzony „co jakiś czas, jak się uzbiera". Narzędzie nie jest problemem — problem jest regularność. Metryki, które powinny być w każdym journal niezależnie od formy: expectancy, profit factor, R-multiple per trade, max drawdown kroczący, execution gap (backtest vs live) oraz compliance rate.
Compliance rate — osobna metryka, nie kolumna w journalu
Expectancy mówi ci, ile system zarabia na transakcję. Compliance rate mówi ci, ile transakcji faktycznie wykonałeś zgodnie z systemem. Metryka: (liczba transakcji wykonanych dokładnie według reguł) / (liczba sygnałów wygenerowanych przez system). Wynik 60% na 200 transakcji oznacza, że w 80 przypadkach albo pominąłeś sygnał, albo wszedłeś inaczej niż mówił system (gorszy entry, niewłaściwy SL, przedwczesne zamknięcie). Te 80 odchyleń to nie „szczegóły" — to alternatywny system, który nigdy nie był testowany. Osobno policz expectancy samych compliant trades i osobno non-compliant: jeśli compliant mają +0,22R, a non-compliant –0,18R, to nie system zawodzi — to ty, handlując dwa różne systemy, w tym jeden nietestowany. Trzymaj compliance rate osobno od wyniku finansowego. Trader z compliance 95% i rocznym zyskiem 4% rozwija się. Trader z compliance 55% i rocznym zyskiem 12% miał dobry rok — nie ma systemu.
Tick volume vs wolumen CME — trzy poziomy prawdy
Na detalicznym OTC FX tick volume to liczba zmian kwotowania u twojego brokera — nie skonsolidowany wolumen transakcji na rynku międzybankowym. Nie ma centralnego booka na spot FX (BIS: 7,5 bln USD dziennego obrotu FX jest rozproszone między dziesiątkami dealerów i platform). Jeśli system używa „wolumenu" z MT4/MT5 jako potwierdzenia setupu, używasz wskaźnika aktywności feedu brokera, nie dowodu uczestnictwa dużego kapitału. Trzy poziomy:
- Feed brokera (tick volume MT4/MT5) — lokalny wskaźnik aktywności na jednym feedzie. Użyteczny do detekcji lokalnych rozjazdów spreadu, nieużyteczny jako sygnał instytucjonalny.
- Tick volume agregowany (cTrader Depth, Volume Profile na kilku feedach) — szersza próbka, nadal nie jest realnym wolumenem transakcyjnym. Przybliżenie lepsze niż pojedynczy feed.
- Futures walutowe z CME (real volume) — kontrakty 6E (EUR/USD), 6J (USD/JPY), 6B (GBP/USD), 6A (AUD/USD) dają realny, scentralizowany wolumen transakcyjny z regulowanej giełdy. To najbliższe proxy aktywności instytucjonalnej na FX.
Konkretny workflow weryfikacji setupu: otwórz TradingView, wpisz ticker 6E1! (EUR/USD futures ciągły) obok swojego wykresu spot. Porównaj szczyty wolumenu futures z momentami, w których twój setup na spocie generuje sygnał. Jeśli breakout na spot EUR/USD nie ma odpowiednika w wolumenie 6E1! — zasadność setupu jest słabsza. Jeśli duży świecznik na spocie odpowiada dużemu spike'owi wolumenu na futures — masz mocniejsze potwierdzenie.
8. Kiedy edge znika — regime change, crowding, degradacja
Przewaga działa, dopóki zgadzają się warunki rynku, egzekucji i zachowania pozostałych uczestników. Kiedy którykolwiek z tych trzech parametrów się zmienia, wynik systemu też się zmienia — i nie pyta cię o zgodę. Rynki się adaptują, algorytmy kopiują flow, broker zmienia routing, regulator zmienia lewar. Edge istnieje dlatego, że inni uczestnicy popełniają powtarzalne błędy albo mikrostruktura tworzy chwilową nieefektywność. Jeśli te warunki się rozjeżdżają, przewaga znika bez powiadomienia. Jedyne pytanie to nie „czy mam edge", tylko „czy jeszcze go mam i jak to sprawdzić, zanim wyciąg powie mi to za mnie".
Trzy główne powody śmierci edge:
a) Regime change — zmiana reżimów rynkowych
System mean-reversion na EUR/USD działał w 2023, kiedy para konsolidowała w zakresie 1,05–1,10 przez miesiące. W 2024 ECB i Fed zaczęły dywergować w polityce monetarnej, EUR/USD weszło w trend — i ten sam system zaczął generować serie strat. Edge nie zniknął dlatego, że system się zepsuł. Zniknął, bo warunki, w których system miał edge, się skończyły. Stąd znaczenie environment filter z art. 8.1 — system powinien wiedzieć, kiedy się wyłączyć.
b) Crowding — zbyt wielu graczy eksploatuje ten sam edge
Klasyczny przykład: breakout z konsolidacji na H4. Kiedy strategia staje się popularna (kurs na YouTube, post na forum), coraz więcej traderów składa zlecenia w tym samym miejscu. Stop-lossy skupiają się w jednym punkcie, entry też. W modelu detalicznym skupienie stop-lossów w oczywistych miejscach nigdy nie jest neutralne: staje się informacją o zachowaniu flow klientów i zwiększa ryzyko wybicia poziomu, który na wykresie wyglądał „bezpiecznie". Na rynkach giełdowych te skupienia exploitują algorytmy. Na retail Forex OTC mechanizm bywa inny (broker może ekonomicznie korzystać z flow klienta w modelu B-Book), ale efekt dla tradera jest podobny: oczywiste poziomy stop-lossów są bardziej narażone na wybicie. Edge z breakoutu zamienia się w pułapkę — nie dlatego, że analiza była zła, ale dlatego, że zbyt wielu ludzi ją robi.
c) Degradacja strukturalna — zmiany w mikrostrukturze rynku
Algorytmy HFT, zmiany w regulacjach, zmiana modelu brokera, nowe instrumenty — te czynniki zmieniają „teren gry" i mogą sprawić, że edge działający w starych warunkach przestaje działać w nowych. Jeżeli realne fill rates, slippage i reject rate pogarszają się trwałe, trzeba oddzielić problem logiki systemu od problemu jakości egzekucji po stronie brokera lub dostawców płynności. Konkretny, mierzalny sygnał alarmowy: asymetria slippage SL vs TP powyżej 2 p na EUR/USD utrzymująca się przez 200+ transakcji (MyFxBook → Advanced Statistics → Slippage). Dodatkowo — jeżeli mediana czasu wykonania market order rośnie o ponad 30% w oknach, w których twój system zarabia, to niezależne potwierdzenie, że problem siedzi w routingu, nie w logice wejścia. Twarde dane porównawcze znajdziesz w publicznych raportach RTS 28 MiFID II, w których broker obowiązkowo ujawnia pięciu głównych LP, medianę czasu egzekucji i reject rate dla klasy „CFD on currencies" — to pozwala ci porównać brokerów bez udziału ich marketingu.
Toxic Flow — kiedy twój sukces staje się problemem brokera
Jest jeszcze jeden mechanizm degradacji strukturalnej, o którym żaden podręcznik nie powie ci wprost, bo to brudna bielizna branży. Jeżeli twój robot (EA) zacznie eksploatować latencję brokera albo mikro-nieefektywności kwotowania i zaczniesz generować 30–40% zysku tygodniowo ze skrajnie dodatnim expectancy, zostaniesz wewnętrznie oflagowany jako „toxic flow". Termin pochodzi z żargonu market makerów i oznacza flow klienta, który jest systematycznie dochodowy — czyli ekspozycja brokera w modelu B-Book zamienia się z prawdopodobnej wygranej (statystycznie klient traci) w prawdopodobną stratę (klient strukturalnie zarabia). Broker nie musi z tobą dyskutować. Nie musi ci niczego tłumaczyć. Po prostu włączy dla twojego numeru konta wtyczkę opóźniającą (Virtual Dealer Plugin z dodatkowym delay 300–800 ms na market order), rozszerzy ci indywidualny markup spreadu (0,3 p ponad standard dla wszystkich innych kont na tym samym serwerze) albo podwyższy ci reject rate na slippage large. Zyskowna krzywa equity zawraca do piekła w ciągu 4–8 tygodni, a ty nigdy nie dostaniesz maila z wyjaśnieniem. Znajdziesz to dopiero wtedy, kiedy otworzysz drugie konto u tego samego brokera pod innym numerem, zaczniesz handlować dokładnie tymi samymi sygnałami w tych samych momentach — i twoje „nowe" konto będzie działać znacząco lepiej niż „stare". To nie paranoja. Opisy takich przypadków znajdziesz w archiwach ForexPeaceArmy oraz w fazach postępowań FCA i CySEC z lat 2019–2023, w których regulator nakazywał brokerom ujawnić logikę kategoryzacji klientów. Obrona jest jedna: rozpraszaj konto na 2–3 brokerów, FIX API zamiast MT4 kiedy wolumen to uzasadnia, i miej równolegle prowadzony journal, który umożliwi ci wyłapać moment, gdy slippage i reject rate rosną tylko dla ciebie, a nie dla całego serwera.
d) Ile czasu typowo działa edge — dane z badań akademickich i funduszy
Pytanie „jak długo mój system będzie zarabiał" ma niepokojąco mało teoretycznych odpowiedzi, ale trochę empirycznych. Ritter (2004) badał degradację anomalii rynkowych po publikacji w literaturze akademickiej: mediana czasu, po którym efekt malał do 50% pierwotnej siły, wynosiła 18–36 miesięcy od opublikowania strategii[6]. Acar i Lequeux (1996) analizowali systemy momentum na rynkach walutowych — informowali o wyraźnej degradacji klasycznych sygnałów trend-following już w latach 90., w miarę jak coraz więcej CTA (Commodity Trading Advisors) wchodziło na ten sam zestaw sygnałów. AQR (fundusz Cliffa Asnessa) publikuje okresowe raporty o degradacji klasycznych czynników (momentum, value, carry): ich dane pokazują, że typowa „żywotność" prostego sygnału momentum na FX od momentu, w którym staje się publicznie znany, do momentu, w którym jego Sharpe spada poniżej 0,3, to 2–4 lata. Wnioski operacyjne dla detalisty: (a) każda publicznie znana strategia (książkowa, z YouTube, z forum), którą kupujesz jako „sprawdzoną", ma resztkowy edge wynikający z opóźnienia dyfuzji do szerokiego rynku — ten edge jest czasowy, nie strukturalny; (b) przewagi, które przetrwały dłużej niż dekadę (np. carry trade do 2022, breakouty z konsolidacji D1), albo mają strukturalną podstawę makro (różnice stóp procentowych), albo polegają na tym, że większość uczestników psychologicznie nie może ich konsekwentnie wykonywać; (c) im bardziej mechaniczny i łatwy do skopiowania jest twój system, tym krótszy jest horyzont, w którym ma sens go handlować bez istotnej modyfikacji.
e) Reżim zmienności — kiedy twój typ systemu pasuje do rynku
Nie każdy system działa w każdym reżimie zmienności. Praktyczny proxy reżimu: ATR(14) na D1 dla twojej pary w porównaniu z medianą ATR z ostatnich 3–5 lat. Druga warstwa: DVIX (Deutsche Bank Currency Volatility Index) — indeks zmienności walutowej analogiczny do VIX dla akcji, publikowany dziennie. Trzy reżimy i ich konsekwencje dla stylów:
| Reżim zmienności | ATR(14) vs mediana 3Y | Systemy tracące edge | Systemy zyskujące edge |
|---|---|---|---|
| Niski (compression) | < 0,5× mediany | breakout, momentum, trend-following | mean-reversion, scalping, range |
| Średni (baseline) | 0,5×–1,5× mediany | — | większość systemów w tym oknie |
| Wysoki (shock) | > 2× mediany | mean-reversion, carry, negative gamma exposures | volatility breakout, trend-following, long volatility |
Operacyjnie: dodaj ATR(14) na D1 swojej pary jako twardy warunek włączający/wyłączający system, wpisany do reguł. Konkretnie — reguła 1,5× mediany: jeżeli ATR(14) na D1 przekracza 1,5× medianę z ostatnich 3 lat, zmniejsz sizing o połowę i wyłącz systemy wrażliwe na mean-reversion i carry. Gdy ATR przekracza 2× medianę, wyłącz mean-reversion całkowicie i ogranicz się do strategii wprost projektowanych pod wysoką zmienność (volatility breakout, straddle, trend-following z szerokim stopem). Z drugiej strony — gdy ATR spada poniżej 0,5× mediany (kompresja), wyłącz breakout i momentum, bo wybicia generowane w tym reżimie są fałszywe w kilkakrotnie większym odsetku niż w baseline. Ten jeden warunek, wpisany bezpośrednio w kod Expert Advisora albo w checklistę ręcznego handlu, potrafi zmienić ujemną expectancy złego reżimu w neutralną (nie handlujesz) — a w dłuższym horyzoncie oddziela tradera, który traci w złych miesiącach, od tradera, który pewne miesiące ma poza stołem. Kluczowe: ten filtr nie ma być „czuciowy", tylko mierzalny — ATR z ostatniej sesji vs mediana z N-sesyjnego okna, próg liczbowy, decyzja binarna.
Ping, latency i retail vs HFT — dlaczego twój fill jest zawsze późniejszy
Rzecz, o której większość tutoriali milczy: jakość egzekucji ma twardy, fizyczny limit — prędkość światła między twoim komputerem a serwerem brokera, i między serwerem brokera a serwerem LP. Typowy retail trader z domu ma ping 20–80 ms do serwera brokera (Frankfurt, Londyn, Nowy Jork). HFT firma w co-location data center w NY4 (Mahwah, NJ) albo LD4 (Slough, UK) ma ping poniżej 100 mikrosekund — 200–800× szybciej niż ty. Oznacza to, że kiedy wychodzi NFP, HFT firma już wypełniła i zamknęła 300 transakcji, zanim twoje zlecenie market opuści domowy router. Wniosek: strategie, których edge polega na szybkości reakcji na dane (news trading, arbitrage, scalping na publikacjach), są niewykonalne z detalicznej infrastruktury. Jedyna kategoria, w której latency jest drugorzędna, to styl, którego horyzont decyzyjny jest dłuższy niż kilka sekund (intraday na świecach M15+, swing, position). Jeżeli twój backtest wygląda świetnie, ale polega na wejściu w pierwsze 200 ms ruchu, masz nie edge, tylko teoretyczny mirage.
Mit VPS i kolokacji dla detalicznego MT4
Zakup wirtualnego serwera (VPS) w Londynie blisko centrum danych Equinix LD4 brzmi dumnie na forum, ale dla tradera z terminalem MT4 to iluzja. Oszczędność 20–40 ms na łączu wydaje się znaczącą, dopóki nie uświadomisz sobie, że twoje zlecenie i tak trafia do detalicznego silnika brokera, w którym siedzi warstwa risk managementu (last look + kalibracja Virtual Dealer + decyzja A/B routing) generująca setki milisekund wewnętrznego przetwarzania. 20 ms zaoszczędzone na kablu wyparuje w pierwszym module risk engine. Kolokacja ma sens dla architektury, która omija tę warstwę — czyli dla FIX API podłączonego bezpośrednio do silnika egzekucyjnego brokera albo do pool LP. Dla MT4/MT5 z typowym retail kontem VPS daje ci stabilność połączenia i uptime 24/7 (co jest realną wartością dla automatów), ale nie daje przewagi egzekucyjnej. Jeśli broker sprzedaje ci „dedykowany VPS z low-latency do serwera egzekucyjnego" jako killer feature dla scalpingu, sprzedaje ci marketingową narrację — wąskie gardło siedzi w warstwie jego platformy, nie w kablu.
Broker benchmarking — jak mierzyć brokerów bez zaufania ich marketingowi
Zamiast czytać opinie na forach, zbuduj własny benchmark. Procedura operacyjna: weź jedną strategię (stała, replikowalna), wykonaj 50–100 transakcji u każdego z 2–3 brokerów, których rozważasz. Dla każdego zanotuj: spread efektywny (spread faktyczny z wyciągu, nie „od 0,0 p" z marketingu), średni slippage na SL i na TP osobno (dane z MyFxBook → Advanced Statistics), reject rate (%), mediana czasu wykonania zlecenia market (ms). Porównaj. Różnica między najlepszym a najgorszym brokerem dla tej samej strategii potrafi wynosić 0,15–0,30R na transakcję — więcej niż niejeden edge. To jedyna procedura, w której twoja decyzja o brokerze jest oparta na twoich danych, nie na partnerskim linku ze YouTube.
Ochrona jest jedna i mechaniczna: licz kroczącą expectancy, porównuj ją do poprzedniego okna, miej rozpisane progi decyzyjne przed tym, zanim sytuacja wymusi decyzję. Spadek z +0,3R do +0,1R przez 50 transakcji mieści się w wariancji. Spadek do zera albo poniżej utrzymujący się przez 80–100 transakcji to sygnał, że edge się degraduje. Odpowiedzią nie jest „dodam więcej kapitału i poczekam" — odpowiedzią jest audyt: reżim, egzekucja, broker, crowding. Dopóki nie wiesz, który z tych elementów się zepsuł, każda dodatkowa transakcja finansuje niepewność, nie system.
9. Najczęstsze błędy w ocenie expectancy
a) Ocena po zbyt małej próbce
20 transakcji to dane, które możesz skonfabulować na poparcie dowolnej tezy. Przy win rate 50% i 20 transakcjach możesz trafić na 14 wygranych — i uwierzyć, że masz 70% win rate. Możesz trafić na 6 wygranych — i wyrzucić system, który ma edge. Obydwa scenariusze są statystycznie prawdopodobne. 95% przedział ufności przy 20 transakcjach i WR 50% wynosi ~28–72%[4] — to tak szeroki zakres, że nie odróżni systemu zyskownego od losowego. Bez 100+ transakcji nie handlujesz z wiedzą — handlujesz z potwierdzeniem błędu poznawczego. Minimum sample per win rate — patrz tabela w sekcji 4.
b) Backtest na MT4 ze stałym spreadem
Backtest wbudowany w MT4 domyślnie używa stałego spreadu. System z expectancy +0,20R (zyskowny) na stałym spreadzie 1,0 pipsa, w rzeczywistości staje się systemem –0,10R (stratny), gdy w nocy (Azja) lub na danych makro spread rozjeżdża się do 3–5 pipsów. Backtest bez symulacji zmiennego spreadu to kłamstwo — i to kłamstwo, w które wierzy większość początkujących, bo MT4 nie ostrzega, że model spreadu jest stałym przybliżeniem, nie rzeczywistością. Im krótsza średnia transakcja (scalping), tym większy udział kosztów w wyniku — i tym łatwiej o fałszywie dodatnią expectancy.
c) Optymalizacja na in-sample bez out-of-sample (curve fitting)
Dopasowujesz parametry systemu (SMA 20, RSI 14, stop 1,5 ATR) do danych z lat 2020–2024. System wygląda fantastycznie na tych danych — bo został do nich dopasowany. Testujesz na 2019? Wynik może być zupełnie inny. Curve fitting to najczęstsza przyczyna, dla której backtest pokazuje +0,35R, a live pokazuje –0,12R: system nie miał przewagi, tylko idealnie zapamiętał szum historyczny. Im więcej parametrów optymalizujesz (SMA + RSI + stop ATR + target ATR + filtr sesji + filtr ATR), tym większe prawdopodobieństwo, że znaleziona kombinacja jest artefaktem danych, nie realnej struktury rynku.
Walk-forward analysis rozwiązuje ten problem operacyjnie[6]:
- Dzielisz dane na okna: 18–24 miesiące IS (in-sample, optymalizacja) + 6–12 miesięcy OOS (out-of-sample, test);
- Optymalizujesz parametry tylko na IS — wybierasz zestaw z najwyższym profit factor lub expectancy;
- Testujesz ten zestaw bez żadnych zmian na OOS — to jedyna metryka, która coś znaczy;
- Przesuwasz okno o 6 miesięcy i powtarzasz: IS₂ + OOS₂, IS₃ + OOS₃, itd.;
- Agregujesz wyniki wszystkich OOS jako realistyczną expectancy systemu.
Próg degradacji IS → OOS: jeśli expectancy spada o więcej niż 50% (np. IS: +0,40R, OOS: +0,15R), system zapamiętał szum, nie znalazł przewagi. W MT5 Strategy Tester ta procedura jest wbudowana (Optimization → Forward Mode z podziałem ~75/25). W Python dostępne są biblioteki backtrader i vectorbt z wbudowanym walk-forward engine. Ręcznie w Excelu da się zrobić dla 3–4 okien — powyżej tego tracisz dyscyplinę.
d) Ignorowanie dystrybucji wyników
Expectancy +0,3R może pochodzić z systemu, w którym 90% transakcji daje od -1R do +0,5R, a 10% daje +5R do +10R. Taki system jest uzależniony od kilku „home runów" rocznie. Jeśli w danym roku nie pojawia się trend wystarczająco silny, żeby wygenerować te +5R transakcje — cały rok jest na minusie. Nie wystarczy znać średnią — musisz rozumieć rozkład.
e) Mylenie szczęścia z edge'em
Trader handluje na demo przez miesiąc, robi 30 transakcji, wychodzi +12%. Czy ma edge? Nie wiadomo. Mógł trafić na sprzyjający reżim (trending market + trend-following system = każdy wygląda na geniusza). Mógł mieć szczęście w losowaniu (przy EV = 0 i 30 transakcjach, wynik +12% jest możliwy). Miesiąc na demo nie daje podstaw do wniosku o systemie — pokazuje jedynie, że w tym konkretnym oknie trader nie stracił pieniędzy.
Benchmark test — jak oddzielić swoje wyniki od „dobrego miesiąca". Zanim uwierzysz, że twój system ma edge, porównaj jego wyniki z prostą, mechaniczną strategią benchmarkową w tym samym oknie i na tej samej parze. Klasyczny benchmark: 20-sesyjny Donchian breakout (Turtle-style) — wchodzisz long, gdy cena zamknięcia przebija najwyższe High z ostatnich 20 sesji; wchodzisz short, gdy przebija najniższe Low z 20 sesji; stop na przeciwległym ekstremum 10-sesyjnym. Reguły są publiczne od 1983, sto razy opisane, żaden uczestnik rynku nie uznaje ich za edge. Jeżeli twój własny system w tym samym miesiącu daje +12%, a Donchian breakout na tej samej parze dał +9%, twoja „przewaga" to 3 punkty procentowe w jednym miesiącu — czyli nic, co odróżnia cię od losowej mechaniki. Jeżeli twój system dał +12%, a Donchian –3%, masz różnicę 15 pp przeciwko publicznemu benchmarkowi, i to jest już dowód, że coś w twojej logice odbiega od prostej mechaniki w tę samą stronę. Jeden miesiąc to dalej za mało, ale jeden miesiąc porównany z benchmarkiem mówi ci więcej niż samo „wyszedłem na plus". Bez benchmarku nie wiesz, czy wygrałeś z rynkiem, czy z regułą „kup w każdy poniedziałek".
f) Survivorship bias w backtestach
Testujesz system na EUR/USD, GBP/USD, AUD/USD — i wybierasz tę parę, na której wyniki są najlepsze. To survivorship bias. Powinieneś był zdecydować przed testem, na jakiej parze będziesz handlował — albo testować na wszystkich i prezentować wyniki łączne, nie cherry-pickowane.
g) P-hacking — odkrywanie edge'u, którego nie ma
Jeśli przetestujesz 100 kombinacji parametrów (SMA 10/20/50, RSI 7/14/21, stopy 1,0/1,5/2,0 ATR) na 10 parach walutowych, masz 1000 „eksperymentów". Przy poziomie istotności 5% — średnio 50 z nich pokaże „statystycznie istotny" wynik czysto przez przypadek, nawet gdyby żaden z nich nie miał realnej przewagi. Im więcej parametrów optymalizujesz, tym większe ryzyko, że „znaleziony" edge to artefakt danych, nie struktura rynku. To ten sam mechanizm, który nęka badania naukowe[7] — i dotyczy tradingu w identyczny sposób.
Praktyczne zabezpieczenia:
- Zdefiniuj hipotezę przed testem. „Myślę, że breakout z 20-dniowego kanału po sesji azjatyckiej na majorsach ma edge" — to hipoteza. „Przetestuję wszystko, co mi przyjdzie do głowy, i zobaczę co zadziała" — to data mining.
- Licz Bonferroni correction — jeżeli robisz N testów, wymagany próg istotności to 0,05/N, nie 0,05. Dla 1000 eksperymentów to 0,00005 — prawie nic nie przejdzie, i to jest właściwy wniosek, nie wada metody.
- Walk-forward na świeżych danych — znaleziony setup musi przejść test na okresie, którego nie widział podczas optymalizacji. Jeśli nie przechodzi, nie jest edge'em, był overfittem.
- Prosta reguła kciuka — jeżeli system wymaga więcej niż 3–4 parametrów, żeby pokazać dodatnią expectancy, prawdopodobnie optymalizujesz szum. Robust edge jest widoczny na szerokim zakresie parametrów, nie tylko w jednym wąskim dołku.
10. Co dalej — od liczby do egzekucji
Gdy pierwszy raz policzysz prawdziwe EV po poślizgach i prowizjach, zrozumiesz, w jak głębokim bagnie faktycznie siedzisz. Wynik chociażby minimalnie nad zerem to na rynku OTC nie powód do płaczu — to cudowna anomalia, którą musisz eksploatować, zanim rynek ją zrówna z ziemią. Masz wreszcie liczbę zamiast opinii; coś, co można porównać z kolejnym oknem 50 transakcji i z benchmarkiem, który kosztuje cię pół godziny w Excelu, a nie kolejny kurs za 3000 PLN.
Jeśli po tym tekście zamykasz kartę i wracasz do beztroskiego klikania w terminal bez zrobienia audytu 50 ostatnich wejść, nie jesteś traderem. Jesteś hobbystą dobrowolnie finansującym pensje dealerów. Win rate, profit factor, R-multiple są użyteczne tylko jako składowe. Position sizing bez frakcyjnego Kelly'ego to albo nieużyty potencjał, albo przyspieszone rozliczenie rachunku. Wszystko zaczyna się i kończy na jednej liczbie: expectancy po kosztach, na wystarczającej próbce, policzona krocząco. To ta liczba decyduje, czy handlujesz system, czy opowieść o systemie.
Minimum viable audit — pięć kroków, które wykonasz w jedno popołudnie
Zanim otworzysz kolejną pozycję, spędź 90 minut na tym audycie. Jeżeli wynik któregokolwiek kroku jest czerwony, zatrzymaj nowe wejścia do czasu, aż zrozumiesz, dlaczego.
- Wyeksportuj ostatnie 50 transakcji z MT4/MT5 (Account History → Save as Report → Detailed Report) albo z MyFxBook Account Statement. Potrzebujesz kolumn: data, para, kierunek, entry, exit, SL, TP, pipsy, R-multiple, slippage (jeśli dostępne).
- Policz expectancy po kosztach: EV = (WR × Avg R win) – ((1 – WR) × |Avg R loss|). Odejmij od tego średni spread × liczba transakcji / liczba jednostek R. Jeżeli wynik jest poniżej zera — nie masz edge'u, masz rozkład strat z dobrym tygodniem wplecionym w środku.
- Sprawdź asymetrię slippage: MyFxBook → Advanced Statistics → Slippage. Jeżeli średni slippage na SL minus średni slippage na TP przekracza 2 p na EUR/USD (odpowiednio więcej na crossach), masz problem egzekucji, nie strategii — kandydat na zmianę brokera, nie zmianę reguł.
- Podziel próbkę na pół i porównaj expectancy obu połówek. Jeżeli pierwsze 25 transakcji ma +0,24R, a ostatnie 25 ma –0,05R, twój edge degraduje się w realnym czasie — i decyzją jutra rano jest audyt reżimu, nie kolejne wejście.
- Policz compliance rate: ile z tych 50 transakcji było wykonanych dokładnie według reguł systemu, a ile było improwizacją („wszedłem wcześniej", „pominąłem ten setup", „przesunąłem SL"). Osobno policz expectancy compliant trades i non-compliant. Jeżeli compliant mają dodatnią expectancy, a non-compliant ujemną — wiesz już, gdzie leży problem, zanim zmienisz strategię.
Twój edge to nie jest obligacja skarbowa. Ten audyt to tylko badanie rentgenowskie — pokazuje, czy pacjent dzisiaj żyje, ale nie gwarantuje, że jutro rano nie zabije go zmiana korelacji makroekonomicznych, nowa interwencja banku centralnego albo to, że broker cicho przełączył twój flow na innego LP. Audyt mówi ci, czy masz edge w tym oknie, przy tym brokerze, w tym reżimie zmienności. Trzy warunki, z których każdy może się zmienić bez twojej zgody — i dopiero regularne powtarzanie tej samej procedury na kolejnych oknach zamienia „mam system" z deklaracji w diagnozowalny proces.
Co mierzyć jutro rano (nie „jaką lekcję wynieść"):
- Ostatnie 50 transakcji: win rate, avg R win, avg R loss, expectancy (R), profit factor;
- Slippage na SL i na TP osobno (MyFxBook → Advanced Statistics → Slippage) — asymetria > 2 p na EUR/USD = sygnał alarmowy po stronie egzekucji;
- Krocząca expectancy na oknie 50 transakcji — porównanie ostatnich 50 do wcześniejszych 50;
- Execution gap: expectancy backtest vs expectancy live — jeśli > 0,20R, rozbij na spread drift, asymetryczny slippage, pominięte setupy i przedwczesne cięcia zysków.
Session matrix — kiedy spread jest wąski, a kiedy krótki stop się nie broni
Referencyjna mapa dla głównych par — okna, w których mikrostruktura rynku najbardziej sprzyja/szkodzi różnym stylom egzekucji:
| Okno CET | EUR/USD spread | GBP/USD spread | USD/JPY spread | Krótki SL (≤10 p) |
|---|---|---|---|---|
| Londyn open (09:00–11:00) | 0,3–0,6 p | 0,5–0,9 p | 0,5–0,9 p | OK |
| Londyn–NY overlap (14:00–17:00) | 0,2–0,4 p | 0,4–0,7 p | 0,4–0,7 p | najbezpieczniej |
| NY po 17:00 | 0,4–0,8 p | 0,7–1,2 p | 0,6–1,0 p | OK, książka rzednie |
| Rollover (22:55–23:15) | 3–6 p | 4–8 p | 2–4 p | NIE — mechaniczny stop-hunt |
| Azja (00:00–07:00) | 0,6–1,2 p | 1,0–2,0 p | 0,4–0,8 p | tylko na USD/JPY |
| NFP/CPI/FOMC T+0 do T+60s | 5–15 p | 8–20 p | 4–10 p | NIE — LP wycofują kwotowania |
| Otwarcie niedzielne (23:00) | 2–5 p + gap | 3–7 p + gap | 1–3 p + gap | NIE — ryzyko luki |
Zakresy orientacyjne u typowego ECN brokera w normalnych warunkach. W okresach podwyższonej zmienności (wojna, interwencje banku centralnego, kryzysy bankowe) każdy z tych reżimów może rozszerzyć się 2–3×. Jeśli twój system używa SL 10 pipsów lub krótszego, matryca pokazuje dosłownie, w których oknach masz przewagę, a w których finansujesz brokera.
W następnym artykule (8.3) wejdziemy w konkretną strategię — scalping: handel na najkrótszych interwałach, gdzie friction drag jest najwyższy, asymetryczny slippage najgroźniejszy, a wymagania wobec edge i egzekucji najostrzejsze.
FAQ — Najczęściej zadawane pytania
Jak chronić expectancy przed slippage'em na publikacjach makro?
Trzy warstwy obrony, w kolejności skuteczności. Pierwsza — filtr kalendarza: automatyczne wyłączenie systemu 15 min przed i 5 min po każdym evencie high-impact (Forex Factory filter = high). Druga — parametr Maximum Deviation w zleceniu MT4/MT5 ustawiony na 2–3 pipsy, żeby broker odrzucił fill zamiast realizować cię po tragicznej cenie. Trzecia — przed publikacją zamień SL market na buy stop / sell stop z zaostrzonymi limitami, albo zredukuj pozycję na czas okna danych. Mierz asymetrię slippage w MyFxBook → Advanced Statistics → Slippage: jeśli średni slippage na SL przekracza średni slippage na TP o więcej niż 2 p (EUR/USD) albo 3 p (crossy), masz liczbowy dowód, który można odjąć od expectancy — albo, częściej, sygnał do zmiany brokera.
Dlaczego tick volume z MT4/MT5 jest zwodniczy i czym go zastąpić?
Na OTC spot FX nie ma centralnego orderbooka (BIS: 7,5 bln USD dziennego obrotu rozproszone między dziesiątki dealerów). Tick volume w MT4/MT5 to liczba zmian kwotowania na feedzie twojego brokera — lokalny wskaźnik aktywności, nie dowód uczestnictwa instytucjonalnego. System używający „wolumenu" z MT jako potwierdzenia setupu używa wskaźnika aktywności broker's data feed, co potrafi mylić bardziej, niż pomagać — np. rozjazd spreadu w rolloverze generuje sztuczny spike w tick volume bez żadnego realnego flow. Bliższe proxy aktywności instytucjonalnej: wolumen futures walutowych z CME. Tickery na TradingView: 6E1! (EUR/USD), 6J1! (USD/JPY), 6B1! (GBP/USD), 6A1! (AUD/USD). Porównaj spikes wolumenu na wykresie futures z momentami sygnałów na spot — jeżeli breakout na spocie nie ma odpowiednika w 6E1!, zasadność setupu jest słabsza.
Czym różni się egzekucja na MT4/MT5 od FIX API i cTrader — i komu to realnie psuje edge?
Trzy różne warstwy egzekucji, trzy różne profile fill quality. MT4/MT5 to protokół MetaQuotes — broker agreguje feed, renderuje kwotowania w platformie, przyjmuje zlecenie, przepuszcza je przez własny risk engine (często z dodatkową warstwą last look albo „dealing desk execution"), potem routuje do LP albo internalizuje w B-Book. Typowy czas od kliknięcia do potwierdzenia fill: 100–400 ms u retail brokera EU/UK, 300–800 ms u offshore. cTrader to platforma Spotware z architekturą ECN: zlecenie idzie przez brokera jako pass-through do pool LP (agregat kilku banków Tier-1 + ECN). Typowy czas egzekucji: 40–150 ms, transparentna głębokość książki w platformie. FIX API (Financial Information eXchange) to protokół używany przez instytucje — twój bot łączy się bezpośrednio z serwerem egzekucyjnym brokera po porcie FIX 4.4. Typowy czas: 5–30 ms, brak warstwy platformy po drodze. Dla kogo to ma znaczenie: scalping i breakouty na M1/M5 są wrażliwe na 200–400 ms różnicy (cena zdąży ruszyć o 1–3 p w tym oknie); swing na D1/H4 nie jest. Koszty dostępu: MT4/MT5 darmowe u każdego brokera, cTrader u ograniczonej grupy brokerów (najczęściej z minimalnym depozytem 1000–5000 EUR), FIX API u większości brokerów tylko na koncie instytucjonalnym albo przy miesięcznym wolumenie powyżej kilku milionów USD. Wniosek: jeśli twój backtest wygląda świetnie na M1, a live na MT4 daje expectancy o 0,2R niższą, problemem może być platforma, nie system — ale tylko pod warunkiem, że zmiana na cTrader/FIX jest dostępna w twojej skali kapitału.
Ile transakcji potrzebuję, żeby ocenić czy mój system działa?
Nie ma jednej liczby — próbka zależy od win rate twojego systemu. Scalper z WR 70% może wstępnie ocenić edge po 100 transakcjach, swing trader z WR 45% potrzebuje 200+, trend-follower z WR 30% potrzebuje 300+ (patrz tabela w sekcji 4). Literatura często cytuje Van Tharpa (200 transakcji jako orientacyjny próg), ale to uproszczenie — przy niskim WR wariancja jest na tyle duża, że 200 transakcji nie odróżni systemu +0,2R od systemu losowego. Im niższy win rate, tym większa próbka potrzebna do oceny.
Jak mierzyć realne ryzyko weekend gapu i czy w ogóle trzymać pozycje przez weekend?
Weekend gap to strukturalne ryzyko każdej pozycji trzymanej przez sobotę–niedzielę: kiedy rynek otwiera się w niedzielę o 23:00 CET, SL market jest realizowany na pierwszej dostępnej cenie, nie na poziomie stopa. Żeby zmierzyć to ryzyko: przejrzyj 2–3 lata historycznych otwarć na swoich parach, policz medianę i 95. percentyl gapu tygodniowego. Dla EUR/USD w normalnych latach mediana ~8–15 p, 95. percentyl 40–60 p. Dla EUR/CHF, USD/TRY, USD/RUB — 2–10× więcej, z długimi ogonami przy eventach geopolitycznych. Operacyjne decyzje: (a) jeśli system ma SL krótsze niż 95. percentyl gapu, realne R:R jest systematycznie gorsze niż planowane — odejmij średnie wydarzenie gapowe × ich częstość od expectancy; (b) na parach wysokiego ryzyka politycznego lepiej zamykać pozycje w piątek przed 22:00 CET niż rolować je przez weekend; (c) jeśli strategia wymaga trzymania, zamień SL market na SL limit z akceptacją „no fill" zamiast „tragic fill". Lepsza niewiedza, w którą stronę otworzył się rynek, niż realizacja stopa 120 p od zlecenia.
Czy jako trader detaliczny naprawdę potrzebuję Monte Carlo — czy to tylko akademicki fetysz?
Jeśli nie robisz Monte Carlo, oznacza to, że wyceniasz swój system na podstawie najlepszego możliwego scenariusza — tej jednej equity curve, która historycznie się wykonała. Ta krzywa jest jedną z setek możliwych przestawień kolejności tych samych transakcji. Monte Carlo bierze twoje wyniki, losowo przestawia ich kolejność 1000 razy (opcjonalnie losuje ze zwracaniem jako bootstrap) i pokazuje ci nie medianę, tylko 95. percentyl max drawdown oraz prawdopodobieństwo ruiny. Praktyczna konsekwencja: dwa systemy z tą samą historyczną expectancy +0,25R mogą mieć 95. percentyl DD 18% i 41% — pierwszy przeżyjesz psychicznie, drugi prawdopodobnie wyłączysz w najgorszym momencie. Minimum: 500–1000 permutacji w QuantAnalyzer, Equity Monaco (darmowe, web), albo 40 linii Pythona. Narzędzia automatycznie liczą metryki, których gołym okiem nie wyczytasz z equity curve. Czas wykonania pełnej symulacji: 5–15 minut po pierwszym uruchomieniu, kilkanaście sekund później. Koszt zero, wartość — informacja, czy system, którego chcesz powierzyć kapitał, działa w medianie czy tylko w jednym szczęśliwym loterii scenariuszu, który zdarzył się być historycznym.
Ile powinienem ryzykować na pojedynczą transakcję?
Większość zdyscyplinowanych traderów detalicznych operuje w przedziale 0,5–2% kapitału na trade. Matematycznie optymalne ryzyko wyznacza Kelly criterion, ale pełny Kelly na estymatach z próbki 100–200 transakcji generuje drawdowny, których emocjonalnie nie przeżyjesz — dlatego w praktyce stosuje się 1/4 do 1/2 Kelly. Przy systemie z win rate 45% i R:R 2:1 pełny Kelly to ~20%, 1/4 Kelly to ~5%. W praktyce większość traderów schodzi jeszcze niżej — fixed 1–2% nie dlatego, że wzór to mówi, tylko dlatego, że parametry systemu są niedokładne i zmieniają się z reżimem rynku. Jeżeli regularnie ryzykujesz powyżej 2% na pojedynczy trade z lewarem, grasz z marginesem błędu, który przy normalnej serii strat (statystycznie kilka razy w roku) zabiera tyle kapitału, że trudno wrócić do systemu bez paniki. Ryzyko powyżej 2% nie zabija backtestu — zabija tradera, który backtest wdraża. Position sizing jest multiplikatorem edge'u, nie jego źródłem: jeśli masz EV = 0, żaden sizing nie pomoże; jeśli masz EV < 0, większy sizing tylko przyspieszy rozliczenie.
Dlaczego mój system z backtestu nie działa na koncie live?
Cztery powody, z których przynajmniej dwa w każdym przypadku. (1) Backtest nie liczył realnych kosztów: stały spread w MT4 ukrywa, że w rolloverze EUR/USD robi 3–6 p, a w oknie NFP 5–15 p; system z backtestowym +0,20R na stałym spreadzie 1 p live handluje ze średnim efektywnym spreadem 1,6 p i schodzi na –0,10R, zanim cokolwiek kliknie. (2) Overfitting / curve fitting: parametry dopasowane do historycznych danych 2020–2024 na EUR/USD nie generalizują na 2025–2026, bo system zapamiętał szum, nie znalazł struktury. Im więcej parametrów optymalizujesz, tym mocniejszy ten efekt (p-hacking, patrz §9g). (3) Execution gap: na live emocje wprowadzają filtr, którego nie było w backteście — pomijasz setupy, które „wyglądają słabo" (te same, które w próbce generowały 70% zysku), obcinasz trailing za wcześnie, przesuwasz SL „jeszcze o 3 p". Typowy gap: 0,05–0,20R na trade, wystarczający, żeby przerzucić EV przez zero. (4) Regime change: rynek, który produkował backtest, nie istnieje w tej samej formie — zmienność przeszła przez kompresję albo szok, crowding strategii zjadł resztkową przewagę, broker zmienił LP-pool. Backtest nie kłamie — pokazuje wyczyszczoną, najlepszą wersję historii. Live dostajesz wersję zanieczyszczoną każdą z tych czterech warstw tarcia. Dlatego minimum viable audit z §10 zaczyna się od „eksportu 50 transakcji", a nie „ile backtesty pokazały".
Skąd wiem, że mój edge nie zniknął?
Licz kroczącą expectancy — co tydzień, na oknie ostatnich 50–100 transakcji, i porównuj z poprzednim oknem. Jedna liczba, trzy możliwe stany. Stabilna wariancja wokół średniej (np. +0,28R ± 0,08R między oknami) — edge żyje, normalny rytm. Systematyczny spadek (z +0,28R do +0,10R do +0,02R przez trzy kolejne okna) — masz sygnał ostrzegawczy, który wymaga audytu, zanim spadnie pod kreskę. Utrzymywanie się poniżej zera przez dwa okna (160–200 transakcji) — edge najprawdopodobniej zdechł, dalsza gra to finansowanie nauki, nie systemu. Kluczowe: bez tej metryki dowiadujesz się o degradacji z wyciągu, kiedy drawdown jest już na tyle głęboki, że diagnostyka miesza się z panicznymi decyzjami. Sygnały wspierające: (a) rozjazd slippage SL vs TP > 2 p na EUR/USD utrzymujący się przez 200 transakcji — problem w egzekucji brokera, nie w systemie; (b) ATR(14) na D1 przekracza 1,5× medianę 3-letnią — reżim się zmienił, systemy mean-reversion i carry wyłącz, system trend-following zmniejsz sizing; (c) twoja strategia jest publicznie znana od >18 miesięcy (Ritter 2004: mediana degradacji 18–36 mies.) — crowding zjada resztkową przewagę. Edge jest tymczasowy. Pytanie nie brzmi „czy zniknie", tylko „czy mam metrykę, która powie mi o tym zanim zrobi to broker przez margin call".
Czy VPS dla platformy MT4 faktycznie daje mi egzekucyjną przewagę?
Krótko: nie w sensie, w jakim reklamuje to większość dostawców VPS, a marketing typu „kolokacja w Equinix LD4 obok serwera twojego brokera" jest iluzją dla detalicznego tradera MT4/MT5. Długa wersja zaczyna się od rachunku milisekund. Typowa ścieżka zlecenia z domowego łącza: router klienta → internet retail (20–60 ms do brokera) → serwer MT4 brokera (80–150 ms agregacji i renderowania feedu) → risk engine brokera z warstwą last look i kalibracją Virtual Dealer (200–400 ms wewnętrznego przetwarzania) → LP albo internalizacja (20–50 ms). Suma typowo 300–400 ms. VPS w tym samym datacenter co serwer brokera skraca pierwszą warstwę (internet retail) z 40 ms do 0,5–2 ms — oszczędność 20–40 ms. Ale te 20–40 ms wyparowuje w pierwszej milisekundzie risk engine, który i tak musi cię przepuścić przez last look, kalibrację cenową i decyzję A/B routing. Innymi słowy: optymalizujesz 10% ścieżki, w której nie ma twojego problemu. Kolokacja ma sens dla architektury, która omija warstwę platformy i risk engine — FIX API podpięty bezpośrednio do silnika egzekucyjnego brokera albo do pool LP. Tam oszczędność 30 ms to realnie 30% ścieżki i realny edge scalpingu. Co VPS naprawdę daje detaliście MT4: (a) stabilność połączenia i uptime 24/7 — automat na serwerze hostowanym nie rozłącza się, kiedy twój router zawiśnie, nie traci sesji podczas burzy, nie robi reboot na Windows Update w środku NFP — to ma realną wartość i jeśli handlujesz EA, VPS bierzesz dla tego, nie dla ms; (b) niezależność od lokalnej awarii prądu/netu — kiedy w Polsce ktoś podkopie światłowód, twoja pozycja nie zostaje bez SL; (c) stałe IP pod scopem compliance niektórych brokerów. Czego VPS ci nie da: przewagi egzekucyjnej dla scalpingu na M1/M5, mniejszego slippage na NFP, lepszego fill rate, niższego reject rate, krótszego last look. Kto sprzedaje ci VPS argumentem „zyskasz 30 ms i będziesz szybszy od HFT", sprzedaje ci mit — różnica między retail (340 ms) a co-locacyjnym HFT (0,1–1 ms) to 300–3000×, a 30 ms oszczędzone na kablu tej przepaści nie zasypie. Kupuj VPS dla uptime, nie dla milisekund.
Źródła i bibliografia
- European Securities and Markets Authority (ESMA), Report on Trends, Risks and Vulnerabilities, No. 1, 2024 — dane o wynikach inwestorów detalicznych na CFD; ~74% kont detalicznych traci pieniądze.
- Covel, M.W., Trend Following: How to Make a Fortune in Bull, Bear and Black Swan Markets, Wiley, 5th ed., 2017 — statystyki systemów trend-following: win rate 30–40%, R:R 3:1–10:1, długie serie strat jako norma.
- FXCM / DailyFX, Traits of Successful Traders, 2014 — analiza 12+ mln transakcji detalicznych; korelacja między częstotliwością handlu a wynikami netto; dane o typowych win rate i R:R w różnych stylach.
- Van Tharp, K.R., Trade Your Way to Financial Freedom, McGraw-Hill, 3rd ed., 2006 — R-multiple jako jednostka pomiaru; 200 transakcji jako próg statystycznej istotności; expectancy jako kluczowa metryka systemu.
- Thorp, E.O., The Kelly Capital Growth Investment Criterion, World Scientific, 2011 — Kelly criterion: teoria, historia (od kasyna do Wall Street) i praktyczne zastosowanie frakcyjnego Kelly w tradingu.
- Pardo, R., The Evaluation and Optimization of Trading Strategies, Wiley, 2nd ed., 2008 — walk-forward analysis jako metoda walidacji systemu; in-sample vs out-of-sample; overfitting i sposoby jego unikania.
- Ioannidis, J.P.A., „Why Most Published Research Findings Are False", PLoS Medicine, Vol. 2, No. 8, 2005 — problem p-hackingu i fałszywie istotnych wyników; bezpośrednia analogia do optymalizacji systemów transakcyjnych.
- Elder, A., Trading for a Living, Wiley, 1993 — psychologia handlu: związek między seriami strat a zmiana systemu; statystyka serii strat przy różnych win rate.
- Douglas, M., Trading in the Zone, Prentice Hall, 2000 — myślenie probabilistyczne w tradingu; akceptacja losowości pojedynczych wyników jako warunek konsekwentnej egzekucji.
- Kahneman, D., Tversky, A., „Prospect Theory: An Analysis of Decision under Risk", Econometrica, Vol. 47, No. 2, 1979 — awersja do strat: traderzy zamykają zyski za wcześnie i trzymają straty za długo, deformując R:R systemu.
- Bank for International Settlements, Triennial Central Bank Survey, 2022 — struktura rynku FX; kontekst dla kosztów transakcyjnych i ich wpływu na expectancy różnych stylów handlu.
- Barber, B.M., Odean, T., „Trading Is Hazardous to Your Wealth", Journal of Finance, Vol. 55, No. 2, 2000 — nadmierna aktywność transakcyjna obniża zwroty; koszty transakcyjne jako główny mechanizm erozji edge.