BTC283,5k zł1,46%
ETH8,34k zł0,81%
XRP5,01 zł0,44%
LTC201 zł0,07%
BCH1,63k zł1,24%
DOT4,36 zł0,99%

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?

Edge i wartość oczekiwana na rynku Forex — expectancy, win rate, R:R i prawo wielkich liczb w tradingu

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.

Edge tradera — przewaga statystyczna: kasyno vs trader z systemem
Edge tradera — przewaga statystyczna: kasyno vs trader z systemem

2. Wartość oczekiwana (expectancy) — wzór, warstwy tarcia, reality check

Wartość oczekiwana (expectancy, EV) to średni zysk lub strata na jednostkę ryzyka. Wzór:

Expectancy = (Win Rate x Avg Win) - (Loss Rate x Avg Loss)

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

WarstwaExpectancyCo odejmuje
Backtest (model)+0,35R
Po kosztach transakcyjnych+0,22RSpread, prowizja, swap (stały model z backtestu vs realny zmienny spread)
Po błędach egzekucyjnych+0,08RSlippage, pominięte setupy, przedwczesne cięcia zysków, opóźnione wejścia
Po zmianie reżimu–0,05RDegradacja 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.

0,00R (breakeven) +0,40R +0,20R 0 –0,10R +0,35R Backtest (model) –0,13R spread+prowizja+swap +0,22R Po kosztach transakcyjnych –0,14R slippage+pomijanki +0,08R Po błędach egzekucji –0,13R regime change –0,05R Po zmianie reżimu (live)
Waterfall expectancy: +0,35R z backtestu nie trafia na konto live w tej formie. Każda warstwa odejmuje swój udział. System, który na papierze wygląda jak solidna przewaga, po zejściu przez wszystkie cztery warstwy tarcia może być stratny — a trader dowiaduje się o tym z wyciągu brokerskiego, nie z Excela.

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.

Trader PC MT4/MT5 home router +40 ms Serwer MT4 brokera (Frankfurt/LDN) +80 ms Risk Engine (B-Book / VDP) last look filter Virtual Dealer A/B switch +200 ms (na zyskownym flow) Liquidity Provider Tier-1 bank/ECN +20 ms Suma: ~340 ms od kliknięcia do Tier-1 banku HFT z co-location (NY4/LD4): 0,1–1 ms. Różnica: 300–3000×. VPS w Equinix LD4 oszczędza 20–40 ms z łącza, ale nie dotyka 200 ms risk engine. Kolokacja dla retail MT4 to iluzja — wąskie gardło siedzi w warstwie brokera, nie w kablu.
Architektura routingu detalicznego zlecenia: cztery warstwy opóźnień, z których największa (risk engine brokera) nie jest skracana przez VPS czy kolokację. HFT firma w data center NY4 lub LD4 ma ping poniżej 1 ms do serwera LP, bo nie przechodzi przez warstwę platformy retail. Dopóki twoje zlecenie idzie przez MT4 i risk plugin brokera, fizyczna bliskość serwera oszczędza milisekundy na łączu, ale nie dotyka setek milisekund wewnętrznego przetwarzania.

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ążkiCena (ask)Głębokość dostępnaTwoja alokacjaKoszt cząstkowy
Top of book (L1)1,084531,5 lota1,5 lota0,0 p (cena zlecenia)
L21,084582,0 lota2,0 lota+0,5 p × 2,0 lota
L31,084653,0 lota1,5 lota+1,2 p × 1,5 lota
Średnia ważona cena wejścia1,08458efektywny 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żimGodziny CETSpread EUR/USDRyzyko poślizgu na SL
Londyn–NY overlap14:00–17:000,2–0,4 pniskie (książka gruba)
Londyn open / NY open09:00–11:00 / 15:30–16:300,3–0,6 pniskie–średnie
Sesja azjatycka02:00–08:000,6–1,2 pśrednie (cieńsza książka)
Rollover22:55–23:153–6 p (EUR/USD), 8–15 p (crossy)wysokie, bez realnego ruchu ceny
NFP/CPI/FOMC T+0 do T+60spo publikacji5–15 p (pierwsze sekundy bywa szerzej)ekstremalne — LP wycofują zlecenia
Otwarcie niedzielneniedz. 23:002–5 p, gap ryzykowysokie — 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.

Prosto z parkietu — edge zjedzony przez spread. Trader miał system na EUR/USD z backtestowym expectancy +0,18R. Na papierze wyglądało skromnie, ale dodatnio. Problem: handlował głównie po 21:00 CET, kiedy spread był 3–4 razy szerszy niż w overlapie Londyn–Nowy Jork. Po 80 transakcjach live wyszło, że sam spread i poślizg zabrały mu średnio 0,22R na trade. Model działał tylko przy innych kosztach i innej jakości filli — po uwzględnieniu realnych warunków handlu przewaga znikała.
Prosto z parkietu — B-Book i asymetryczna egzekucja. Trader handlował systemem z backtestowym expectancy +0,31R na GBP/USD. Po 3 miesiącach live wynik: –0,07R. Sprawdził historię zleceń: stop-lossy realizowane średnio 3,2 p gorzej od zlecenia, take-profity dokładnie na cenie. Kontakt z brokerem — odpowiedź o „warunkach rynkowych". Przeniósł konto do brokera ECN z STP routingiem do LP. Ten sam system, ta sama para, kolejne 90 transakcji: execution gap zmalał do 0,6 p, expectancy wróciła z –0,07R do +0,21R. Zero zmian w regułach. Zanim przebudujesz system, bo „nie działa", sprawdź wyciąg — czasem problem siedzi w routingu, nie w logice wejścia.
Prosto z parkietu — NFP i stop, który nie był stopem. Piątek, 14:30 CET. Trader siedzi na krótkiej pozycji EUR/USD ze stopem 8 p powyżej wejścia, zaplanowane ryzyko 1% konta. Payrolls wychodzą 75k przy konsensusie 180k. W ciągu 4 sekund para skacze 80 p. Książka zleceniowa wyparowuje — 20 ms przed publikacją LP wycofali kwotowania. Stop market przechodzi przez 11 kolejnych kwotowań zanim znajduje kupca. Fill: 78 p od zlecenia. Realna strata: 9,4% konta. Backtest liczył –1R, rynek odebrał –9,8R. Błąd nie był w setupie. Błąd był w założeniu, że stop-loss ogranicza stratę do ustalonej kwoty. Na rynku OTC w oknie danych SL to tylko instrukcja sprzedania po pierwszej dostępnej cenie, cokolwiek to oznacza w tej sekundzie.

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.

Prosto z parkietu — TRY i nocny koszmar swapowy. Marzec 2021, weekend. Prezydent Erdogan zwalnia szefa tureckiego banku centralnego. USD/TRY otwiera się w poniedziałek luką potężnie w górę. Traderzy, którzy grali short (przeciwko trendowi, licząc na carry dodatni), zostają wyzerowani na luce. Ale ci, którzy mieli longi i przeżyli otwarcie, dostają cios z innej strony: brokerzy, ratując własną płynność, podnoszą ujemne punkty swapowe dla pozycji długich do ekwiwalentu kilkuset procent w skali roku. Koszt przetrzymania zyskownego trade'u przez kolejne noce wymuszał jego likwidację. Broker ma mechanizm, żeby przerzucić na klienta koszt własnego ryzyka płynnościowego — i go używa. Na parach exotyków, walutach krajów z ryzykiem politycznym, nocne koszty finansowania to osobna warstwa ryzyka, której nie widzi żaden backtest ze stałą tabelą swapową.

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.

Ile warta jest twoja przewaga? Żeby przybliżyć roczny potencjał systemu: Expectancy (R) x liczba transakcji rocznie x ryzyko na transakcję (PLN). Przykład: EV = +0,3R, 150 transakcji/rok, ryzyko 200 PLN/trade = 0,3 x 150 x 200 = 9 000 PLN brutto. To szacunek — realna liczba będzie niższa o koszty transakcyjne i slippage, a rozkład wyników wokół tej średniej będzie szeroki. Ale daje ci rząd wielkości i pozwala porównać systemy.
Wartość oczekiwana (expectancy) — wzór i przykład obliczeń dla systemu z win rate 45% i R:R 2.1:1
Wartość oczekiwana (expectancy) — wzór i przykład obliczeń dla systemu z win rate 45% i R:R 2.1:1

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 systemuWin RateAvg R:RExpectancy (R)Charakter
Scalping / mean reversion65–75%0,5–1,0:1+0,05 do +0,25RDużo małych zysków, rzadkie większe straty
Day trading45–55%1,5–2,5:1+0,15 do +0,40RRówny balans zysków i strat
Swing trading35–50%2,0–3,5:1+0,20 do +0,50RWięcej strat, ale większe zyski
Trend following / position25–40%3,0–10:1+0,25 do +0,80RDł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.

Prosto z parkietu — NFP i obustronny stop hunt. Piątek, 14:30 CET, trader siedzi w breakout setupie na EUR/USD z poprzedniego konsolidacji. Postawił buy stop 6 p nad górnym ograniczeniem, sell stop 6 p pod dolnym — klasyczny pending straddle na dane. SL po każdej stronie: 12 p. Payrolls wychodzą: +25k odchylenia od konsensusu. W ciągu 3 sekund cena robi spike w górę o 22 p — aktywuje buy stop z poślizgiem 4 p (wejście 4 p gorzej od zlecenia). Kolejne 2 sekundy: cena zawraca i leci w dół 48 p poniżej pierwszego poziomu — aktywuje SL na longu (poślizg 9 p, realna strata 25 p zamiast 12) i wyzwala sell stop z poślizgiem 6 p. Po 12 sekundach cena wraca w pobliże pierwszej konsolidacji. Stan konta: dwie aktywowane pozycje, obie zrealizowane pod prąd, skumulowana strata 3,4% zamiast planowanych 1%. Pending straddle na danych ma sens, jeśli masz infrastrukturę bliską market makerom — co-location, FIX API, tick-level execution. Z detalicznego routingu i platformy MT4/MT5 w typowym ISP oba zlecenia pracują kilkadziesiąt ms dłużej niż flow instytucjonalny — a w oknie danych makro to jest różnica między byciem po stronie ruchu i byciem jego paliwem.

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.

Prosto z parkietu — pułapka wysokiego win rate. Trader z 6 miesięcznym doświadczeniem chwalił się na forum win rate 82%. Jego metoda: scalping GBP/USD z targetem 4 pipsy i stopem 25 pipsów. R:R = 0,16:1. Expectancy: (0,82 x 4) - (0,18 x 25) = 3,28 - 4,50 = –1,22 pipsa na trade. Przez 3 miesiące equity rosło (szczęściarskie serie), w 4. miesiącu dwie straty pod rząd wymazały zysk z 35 transakcji. System miał ujemną expectancy od początku — ale wysoki win rate maskował problem przez wystarczająco długo, żeby trader uwierzył, że działa.
Prosto z parkietu — Złoty Graal, który zabił spread. Trader napisał bota skalpującego w sesji azjatyckiej na EUR/GBP. Win rate 88%, cel: 3 pipsy, SL: 20 pipsów. Na koncie demo z niskim spreadem i bez realnego poślizgu system generował expectancy +0,6 pipsa per trade. Odpalił to na koncie live z 10 000 EUR. Nie uwzględnił, że w nocy spread na crossach poszerza się z 0,8 do 2,5 pipsa. Broker zjadał mu cały zysk z wejścia. Wystarczyły dwie pechowe transakcje w miesiącu, by wyzerować zysk z 40 wygranych. Edge istniał tylko na darmowym feedzie demo.
Prosto z parkietu — Flash Crash Kabla, 7 października 2016. 23:07 CET, cienka sesja azjatycka, pierwsze godziny po informacjach o twardym Brexicie. W ciągu 120 sekund GBP/USD spadł z 1,2600 do 1,1378 — 1222 pipsów. Różni brokerzy pokazali w tym oknie różne ekstrema (od 1,14 do 1,18), bo każdy agregował własny podzbiór LP, a połowa z nich przestała kwotować. Trader detaliczny z krótkim SL 40 p nad wejściem dostał fill 380–520 p gorzej zależnie od brokera. Dwa konta, identyczny setup, różnica w stracie trzykrotna — wyłącznie z powodu routingu zleceń. To nie jest „wyjątkowe wydarzenie" tylko przypomnienie, że w chwili, w której naprawdę potrzebujesz ścisłej egzekucji, jej nie będzie.
Prosto z parkietu — GBP/JPY, rollover 23:03. Trader siedział w longu GBP/JPY ze stopem 25 p pod wejściem. O 23:03 spread rozszerzył się z 1,6 do 11 p — bez żadnego realnego ruchu ceny spot. Bid dotknął stopa, fill wykonał się 7 p poniżej zlecenia, pozycja zamknięta stratą 33 p zamiast planowanych 25 p. 90 sekund później spread wrócił do 1,8 p, a rynek był dokładnie tam, gdzie zostawił go trader kładąc zlecenie. Stop-loss zadziałał na poszerzeniu książki, nie na ruchu rynku. Żaden backtest z uśrednionym spreadem tego nie pokaże — i w ciągu miesiąca trzy takie „rolloverowe knocki" potrafią zjeść 60–70% realnej expectancy.
Prosto z parkietu — TP limit, SL market. Trader po 200 transakcjach sprawdził statystyki fill quality w MyFxBook → Advanced Statistics → Slippage. Take-profity realizowały się niemal idealnie po planowanej cenie (limit ordery — rynek musiał do nich dojść). Stop-lossy realizowały się średnio 3,1 pipsa gorzej od zlecenia (market ordery — broker bierze pierwszą dostępną cenę). Planowane R:R 2:1 zamieniło się w realne 1,72:1. Expectancy spadła z +0,24R do +0,08R bez żadnej zmiany w systemie. Sam asymetryczny slippage zabrał 65% przewagi — i był dokładnie mierzalny w standardowym raporcie, do którego trader nigdy wcześniej nie zajrzał.
Win Rate (%) Wymagany R:R 0 1:1 2:1 3:1 4:1 5:1 20% 30% 40% 50% 60% 70% ZYSK (EV > 0) STRATA (EV < 0) Breakeven (EV = 0) Position / Trend WR 33%, R:R 3,5:1 Swing WR 43%, R:R 2,5:1 Day trading WR 52%, R:R 1,8:1 Scalping WR 70%, R:R 0,7:1
Krzywa breakeven: minimalne R:R potrzebne, żeby expectancy = 0 przy danym win rate. Każdy punkt powyżej krzywej to system z dodatnią expectancy. Cztery profile systemów — wszystkie nad krzywą, ale z zupełnie różnymi proporcjami WR/R:R. Konkretne liczby zależą od pary, brokera i warunków rynkowych.

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.

Prosto z parkietu — equity curve, która kłamała przez 6 miesięcy. Trader publikował equity curve na forum co tydzień. Gładka, rosnąca linia. Win rate 81%, 240 transakcji w 6 miesięcy. Gratulacje od społeczności. W 7. miesiącu pojawił się tydzień z dwiema transakcjami zakończonymi pełnym SL (25 pipsów każda). Equity curve zamieniła się w kryptę. Przelicz: 2 straty po 25 pipsów = 50 pipsów. Żeby odrobić 50 pipsów przy targecie 4 pipsy i win rate 81% — potrzebujesz ~15 kolejnych wygranych (50 / 4 = 12,5 transakcji zakończonych sukcesem, z uwzględnieniem strat pomiędzy: 12,5 / 0,81 ≈ 15,4). Equity curve rosła 6 miesięcy, żeby skumulować „nagrodę" za 2 sesje rynkowej losowości. System miał ujemną expectancy od transakcji numer jeden.
Odwrotna zależność win rate i R:R — różne profile systemów z dodatnią expectancy
Odwrotna zależność win rate i R:R — różne profile systemów z dodatnią expectancy

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 RateP(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 Rate95% przedział ufności przy 100 transakcjachSolidna próbka
30% (trend-following)±9pp (21%–39%) — za szeroki300+ 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.
Prosto z parkietu — dobra strategia, zły żołądek. Trader prowadził trend-following na H4 z win rate 34% i dodatnią expectancy. W ciągu 11 tygodni zaliczył 9 strat z rzędu. Dziewiąta strata była ostatnia, którą psychicznie wytrzymał — wyłączył system. Dwie kolejne okazje, które już ominął, dały razem +7,4R. System nie umarł. Umarła jego zdolność do przeżycia normalnej dystrybucji strat.
Prosto z parkietu — USD/RUB, weekend 25–27 lutego 2022. Piątek 25 lutego, zamknięcie tygodnia: USD/RUB w okolicy 83. Trader ma shorta na USD/RUB z ciasnym stopem 200 p, bo z technicznego punktu widzenia para wygląda na odreagowanie. Weekend: SWIFT odcina kluczowe rosyjskie banki, rezerwy CBR zostają zamrożone, rubel spada jak kamień. Niedziela wieczór — część brokerów w ogóle nie otwiera kwotowań USD/RUB. Poniedziałek rano: pierwsze dostępne ceny w okolicy 100, 110, 120. Ci, którzy zostali z shortami, dostali egzekucję stopów po ~110 (strata 27× planowanego ryzyka na pozycji) albo — częściej — po prostu widzieli „market closed" przez 48 godzin, a potem liquidation na poziomie, który zjadał całe konto. Później 10 marca 2022 IC Markets, Pepperstone, Exness ogłosiły usunięcie RUB z oferty — ale konta, które przeżyły, nie zawdzięczały tego stop-lossowi, tylko szczęściu związanemu z kierunkiem albo brakowi pozycji. Weekend gap nie jest „rzadkim wydarzeniem" — jest strukturalnym ryzykiem każdej pozycji trzymanej przez sobotę i niedzielę, szczególnie na parach wyeksponowanych na ryzyko polityczne (EUR/CHF, USD/TRY, USD/RUB historycznie). Jeżeli twój system trzyma pozycje przez weekend, expectancy musi być policzona po odjęciu średniej straty gapowej × częstotliwość takich zdarzeń w danych historycznych. Inaczej mierzysz przewagę, która nie uwzględnia własnego największego źródła strat.
Prosto z parkietu — system hopping. Klasyczny scenariusz: trader testuje system A przez 3 tygodnie (22 transakcje), ma 5 strat pod rząd, przerzuca się na system B. Po 2 tygodniach na B ma drawdown 4%, wraca do A albo szuka C. Po roku ma 4 „zepsute" systemy i zero danych do oceny któregokolwiek z nich. Gdyby został przy A przez 100 transakcji, miałby próbkę wystarczającą do wstępnej oceny. Ale seria 5 strat przy 40% win rate to nie anomalia — to (0,60)5 = 7,8% prawdopodobieństwa, czyli coś, co statystycznie powinno się zdarzyć mniej więcej raz na 13 takich serii. W 100 transakcjach to praktycznie pewne.
Prawo wielkich liczb w tradingu — jak wariancja krótkoterminowa maskuje długoterminowy edge
Prawo wielkich liczb w tradingu — jak wariancja krótkoterminowa maskuje długoterminowy edge

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.
Procedura Monte Carlo krok po kroku.
  1. Wyeksportuj statement — MT4/MT5: Account History → Save as Report → DetailedReport.htm. Potrzebujesz minimum 100 transakcji z R-multiple (zysk/strata podzielony przez wielkość ryzyka).
  2. 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.
  3. 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".
  4. 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.
  5. 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.

Prosto z parkietu — backtest z sukcesem, który zależał od jednego tygodnia. System swing na GBP/USD, backtest 2021–2024, CAGR 34%, max drawdown 11%. Wszystko pięknie. Trader wdrożył. W 2025 system stracił 18% w 3 miesiące. Analiza retrospektywna: 40% całego zysku z 3 lat backtestu wygenerowały 4 transakcje w jednym tygodniu po niespodziewanym obrębie polityki BoE. Gdyby te 4 transakcje trafiły się w innej kolejności — lub gdyby trader był wtedy na wakacjach i je pominął — CAGR backtestu wynosiłby ~12%, nie 34%. Monte Carlo pokazało to z góry: przy 1000 permutacjach kolejności transakcji, 95. percentyl CAGR to 8–14%. Trader patrzył na medianę historyczną i myślał, że to gwarancja.
Backtest pokazuje wyczyszczoną wersję historii. Spread stały, egzekucja natychmiastowa, ty wyspany i zdyscyplinowany — żaden z tych trzech warunków nie jest prawdziwy na żywym koncie. Monte Carlo nie naprawia tego źródła błędu (pracuje na tych samych wynikach), ale zbija jeden konkretny mit: że jedna equity curve, która rosła, znaczy, że system jest gotowy na live. Przy 1000 permutacji ten sam zestaw transakcji generuje setki innych wykresów — część z nich wygląda jak ruina. Jeśli mediana max DD z Monte Carlo jest w porządku, ale 95. percentyl leży poza twoją granicą bólu, masz system, którego nie przeżyjesz — tylko jeszcze o tym nie wiesz.
Prosto z parkietu — Monte Carlo jako ubezpieczenie prewencyjne. Trader wypracował system swing na GBP/USD: backtest 2022–2025, CAGR 28%, max DD 14%. Przed wpłaceniem realnego kapitału zrobił 1000 permutacji kolejności transakcji. 95. percentyl max drawdown wyszedł 41% — prawie trzy razy wyższy niż w historycznym backteście. Zamiast wystartować z pełną pozycją, wdrożył system jako inkubator: 1/3 planowanego sizingu przez pierwsze 6 miesięcy, pełne ryzyko dopiero po przejściu 150 transakcji live bez istotnej degradacji expectancy. Po roku okazało się, że realny DD skumulował 23% — blisko mediany symulacji, daleko od 95. percentyla. Gdyby poszedł od razu pełnym ryzykiem i trafił na ten sam okres, wypłaciłby się z konta po pierwszym kwartale. Monte Carlo nie uratowało systemu — uratowało tradera przed zbyt szybkim zaufaniem własnym wynikom.
Symulacja Monte Carlo — setki możliwych equity curves z tego samego zestawu transakcji
Symulacja Monte Carlo — setki możliwych equity curves z tego samego zestawu transakcji

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):

Kelly % = W - (1 - W) / R, ekwiwalentnie Kelly % = (W × R - (1 - W)) / R

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.

Prosto z parkietu — trzy pozycje, jedno zdanie. Trader swing na D1 miał system, który generował sygnały long na kilku głównych dolarowych parach. Nie uznał korelacji za ograniczenie, bo „każda para to osobny instrument i osobny setup". W środowym oknie, kiedy sygnały zbiegły się w czasie, wszedł w longi na EUR/USD, GBP/USD i AUD/USD po 1% ryzyka każdy — zadeklarował 3% ryzyka portfela. W czwartek po konferencji Powella EUR/USD spadło 1,2%, GBP/USD 1,4%, AUD/USD 1,8%. Wszystkie trzy stopy aktywowane w 90-minutowym oknie. Realna strata: 3,1%, nominalnie zgodnie z planem — ale czas likwidacji i skoncentrowanie zdarzeń pokazało, że to była jedna pozycja, nie trzy. Gdyby rynek poruszał się w drugą stronę, zysk też przyszedłby jako jeden blok, nie trzy niezależne wygrane. Efekt psychologiczny jest gorszy niż statystyczny: widząc trzy jednoczesne cięcia stopów, trader zaczął obcinać kolejne sygnały „dla bezpieczeństwa" i pominął następną okazję, która wygenerowała 2,1R. Błąd nie był w sizingu — był w założeniu, że trzy instrumenty to trzy zakłady.

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:

FrakcjaRyzyko/tradeDD po 5 stratachDD po 10 stratachDD po 15 stratach
Full Kelly18,8%–65%–88%–96%
Half Kelly9,4%–39%–63%–77%
Quarter Kelly4,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.

Margin Level ≥ 100% Normalny handel. Możesz otwierać nowe pozycje. Broker nie interweniuje. Margin Call: Margin Level 100% → 50% Ostrzeżenie na platformie. Nie możesz otwierać nowych pozycji. Istniejące nadal otwarte. ! Stop-Out: Margin Level = 50% Broker automatycznie zamyka największą pozycję stratną market orderem. Fill po najlepszej dostępnej cenie w książce — może być daleko od ekranu. !! Kaskada: pozostałe pozycje → stop-out → zero lub ujemne saldo Na szybkim rynku broker zamyka kolejne pozycje. Gap > bufor = konto na zero.
Kaskada stop-out u brokera EU/UK: z każdego poziomu margin level wynika inna akcja brokera — od miękkiego ostrzeżenia (100%) przez blokadę nowych pozycji (75–100%) do automatycznego zamykania pozycji (50%). Ochrona przed ujemnym saldem (ESMA, od 2018) gwarantuje, że konto nie zejdzie poniżej zera — ale dopiero po wykonaniu kaskady, która zwykle konsumuje cały kapitał. Progi są typowe dla większości brokerów EU/UK; konkretne wartości znajdziesz w specyfikacji konta.

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).

Prosto z parkietu — Czarny Czwartek CHF bez romantyzmu (15 stycznia 2015). 10:30 CET. SNB ogłasza bez ostrzeżenia zniesienie pega EUR/CHF na 1,2000. Para spada o 2900 pipsów w kilka minut — ekwiwalent 30% ruchu na indeksie w jeden dzień. To nie był „szybki rynek". Rynek miejscami przestał istnieć. Trader z systemem mean-reversion na EUR/CHF, który grał 12% ryzyka na trade (wyliczone z ułamkowego Kelly'ego), miał SL 100 pipsów powyżej wejścia. Broker zrealizował zlecenie 2000 pipsów dalej. System zaryzykował 12%, zrealizował stratę 115% kapitału — został z ujemnym saldem do spłaty w sądzie. FXCM stracił wtedy 225 mln USD i dostał bailout od Leucadia, Alpari UK ogłosiło upadłość, kilku mniejszych brokerów zniknęło. Pełny Kelly działa przy stałych parametrach przewagi i ciągłej płynności — 15 stycznia 2015 wyparowała druga z tych przesłanek. Ochrona przed ujemnym saldem (negative balance protection) dla klientów detalicznych CFD w UE została wprowadzona dopiero w sierpniu 2018 r. przez ESMA — w 2015 r. traderzy z short CHF zostali z realnymi długami dochodzonymi przez brokerów w sądach cywilnych.
Prosto z parkietu — full Kelly i margin call. Trader z systemem o win rate 55% i R:R 1,8:1 wyliczy Kelly na ~24%. Zaczął handlować z 24% ryzyka na trade. Przez 6 tygodni equity rosło skokowo — poczucie geniuszu. W 7. tygodniu seria 4 strat pod rząd: 0,764 = 33% kapitału stracone w 4 transakcjach. Panika, zamknięcie konta, deklaracja „forex to scam". System miał edge. Position sizing go zabił. Przy 1/4 Kelly (6%) ta sama seria kosztowałaby ~22% — bolesne, ale przeżywalnie.
Prosto z parkietu — Kelly inflation 1,5% → 6%. Trader przez rok handlował fixed fractional 1,5% na trade. Expectancy +0,34R, 180 transakcji, zarobił 41% na koncie. Po roku uznał, że próbka jest „wystarczająco duża", przeliczył quarter Kelly na swoich realnych parametrach — wyszło ~5,8%. Zwiększył do 6%. W ciągu trzech tygodni charakter rynku się zmienił (trend na EUR/USD zamienił się w choppy range), krocząca expectancy zjechała na –0,04R. Przy 1,5% ta zmiana kosztowałaby ~3–4% miesięcznie — zauważalne, bolesne, odwracalne. Przy 6% zamieniła się w 14% miesięcznie, a przy dwóch miesiącach utrzymania się reżimu — 27% drawdownu. Trader oddał sześć miesięcy zysków w trzech tygodniach. Quarter Kelly nie był zły — zła była decyzja zmiany sizingu na podstawie próbki, która opisywała tylko jeden reżim.
Prosto z parkietu — offshore Karaiby i punkt 14.b regulaminu. 2021, trader z dobrym feedem cenowym jednej z agencji informacyjnych (subskrypcja kilkuset USD miesięcznie) zauważył, że u jego brokera MT4 zarejestrowanego na jednej z wysp karaibskich kwotowania EUR/USD spóźniają się o 150–300 ms względem feedu profesjonalnego podczas publikacji NFP i decyzji FOMC. Zbudował prostego EA opartego wyłącznie na tej asymetrii — wchodził market orderem tuż po tym, jak widział ruch na feedzie agencji, ale przed tym, jak broker zaktualizował swoje kwotowanie. Dziewięć miesięcy, 412 transakcji, wynik netto +318% na koncie 25 tys. USD, rosnące po kolejnych wysokich-impaktowych eventach. Przy wniosku o wypłatę 80 tys. USD compliance brokera odpowiedziało chłodnym mailem: „Na podstawie punktu 14.b regulaminu, dotyczącego zakazu działań noszących znamiona arbitrażu opartego na opóźnieniach kwotowania, saldo wynikające z tych transakcji zostało anulowane. Wypłacimy wyłącznie pierwotny depozyt." Punkt 14.b rzeczywiście istniał w regulaminie — w wersji PDF na stronie, 47 strona, paragraf zdefiniowany dwuczłonowym nagłówkiem „Niedozwolone praktyki handlowe". Trader próbował postępowania cywilnego w Polsce — sąd oddalił powództwo z uwagi na zapis jurysdykcyjny regulaminu („spory rozstrzyga sąd w Bridgetown"). Odzyskał wkład początkowy, stracił 9 miesięcy pracy i okno czasowe, w którym arbitraż działał. Lekcja nie jest o legalności arbitrażu — arbitraż cenowy jest w pełni legalny. Lekcja jest o tym, że u brokera offshore masz edge tylko do momentu, w którym decydują się ci go zabrać, a nie musi to być niezgodne z ich regulaminem, który sam podpisałeś jednym kliknięciem w checkbox podczas rejestracji. Przewaga egzekucyjna na opóźnieniu kwotowania ma sens wyłącznie u brokera, którego regulator wymusza best execution (MiFID II w EU, FCA PRIN 6 w UK) — a nie przy LP, który może w dowolnej chwili zdefiniować twoją strategię jako „nadużycie" i anulować jej wyniki z mocą wsteczną.
Prosto z parkietu — CHF, offshore brokerzy i sądy cywilne. Wracając do 15 stycznia 2015: traderzy detaliczni w Polsce grający przez brokerów z siedzibą w Vanuatu, Belize albo na Seszelach dostawali wezwania do zapłaty ujemnego salda pocztą miesiącami po zdarzeniu. Jurysdykcje offshore nie były objęte ani ochroną ESMA (wprowadzoną 2018), ani ochroną NBP, ani polskim CFR. KNF i NBP ostrzegały przed wyborem brokerów spoza EU/UK od lat przed CHF, ale marketing „niskich spreadów i wysokiej dźwigni 1:500" u brokerów z Seszeli sprzedawał się lepiej niż 1:30 u brokera z Londynu. Lekcja operacyjna: jurysdykcja brokera to nie szczegół regulacyjny — to granica twojego maksymalnego ryzyka. W EU/UK klient detaliczny ma ustawową ochronę przed ujemnym saldem i z założenia nie można od niego dochodzić więcej niż wartość konta. W jurysdykcjach offshore (Vanuatu, Belize, Seszele, niektóre wyspiarskie rejestry) ochrona klienta detalicznego jest słabsza lub jej nie ma, a ryzyko dochodzenia ujemnego salda oraz ryzyko prawne w razie sporu mogą być istotnie większe. Ten sam zakład, ten sam Czarny Czwartek, dwa różne maksymalne wyniki końcowe — zależnie od tego, czyj regulator pilnuje brokera po drugiej stronie twojego zlecenia.
Kelly criterion w tradingu — pełny Kelly vs frakcja Kelly i wpływ na drawdown
Kelly criterion w tradingu — pełny Kelly vs frakcja Kelly i wpływ na drawdown

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.

Prosto z parkietu — dwóch traderów, ten sam setup, różny wynik. Dwóch znajomych z tej samej grupy dyskusyjnej handlowało identyczny breakout H4 na GBP/USD. Tego samego brokera, ten sam journal, te same reguły wejścia i stopa. Po 80 transakcjach trader A miał expectancy +0,19R. Trader B — –0,04R na tym samym setupie. Analiza: trader A brał wszystkie sygnały, które system generował. Trader B „filtrował na czuja" — pomijał te, które w momencie sygnału „wyglądały słabo". 22 pominięte transakcje w jego próbce to było dokładnie te, które generowały 70% całego zysku systemu (breakouty na wyższej zmienności, które w momencie sygnału wyglądały „strasznie"). Obaj traderzy handlowali ten sam system. Tylko jeden z nich faktycznie go wykonywał. Edge nie znika dlatego, że znika sygnał — znika dlatego, że trader wybiera, które sygnały brać, a które pominąć, na podstawie informacji, której w regułach systemu nie ma.

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.

Prosto z parkietu — benchmark dwóch brokerów na tej samej strategii. Trader przed przeniesieniem pełnego kapitału zrobił benchmark: jedna strategia (breakout H4 na trzech głównych parach), 100 transakcji równolegle u brokera A (ECN w UK, RTS 28 publikowane, FCA) i 100 transakcji u brokera B (market maker offshore, „spread od 0,0 p" w marketingu, bez publicznych raportów egzekucji). Te same sygnały, te same stopy, te same targety, ta sama wielkość pozycji. Wynik po 100 transakcjach: broker A expectancy +0,17R, reject rate 0,8%, średni slippage na SL 0,9 p, mediana czasu egzekucji 68 ms. Broker B expectancy +0,01R, reject rate 4,2%, średni slippage na SL 3,4 p, mediana czasu egzekucji 340 ms. Ta sama strategia, różnica w realnej przewadze 0,16R na transakcję — więcej niż cały niejeden edge z backtestu. Komu oddawał tę różnicę trader B? Nie rynkowi — modelowi egzekucji brokera. Po pięciu latach „strategia nie działała" u niego o 16R rocznie, przy 100 transakcjach — dokładnie różnica między systemem zyskownym a tłukącym w miejscu.

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.

Profit factor vs expectancy — co jest lepsze? Oba mierzą to samo z różnych stron. Profit factor = gross profit / gross loss. Jest intuicyjny (1,5 = zarabiasz 1,5 PLN na każdą straconą 1 PLN), ale nie mówi ci nic o wielkości pozycji i częstotliwości. Expectancy w R jest lepsza do porównywania systemów, bo normalizuje ryzyko. Profit factor jest lepszy do szybkiego sprawdzenia, czy system jest w ogóle zyskowny. Używaj obu.
MyFxBook — jak wyciągnąć dowód asymetrii egzekucji. Po podłączeniu konta wejdź w Statistics → Advanced → Slippage. Zobaczysz średni slippage na wejściach, na TP i na SL osobno. Jeśli slippage na SL jest systematycznie ujemny i większy co do wartości bezwzględnej niż slippage na TP (np. –1,8 p SL vs +0,2 p TP), masz liczbowy dowód asymetrycznej egzekucji. Możesz go skwantyfikować (średni gap × liczba transakcji) i odjąć od expectancy — dostajesz realną, nie modelową przewagę. To ta sama procedura, która pozwala odróżnić „system nie działa" od „broker psuje egzekucję na stopach".
Jak zmierzyć edge w praktyce — 4 kroki: zbierz próbkę, policz metryki, reality check backtest vs live, monitoruj krocząco
Jak zmierzyć edge w praktyce — 4 kroki: zbierz próbkę, policz metryki, reality check backtest vs live, monitoruj krocząco

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ć.

Prosto z parkietu — interwencja BoJ, październik 2022, i polowanie na stop-lossy detalu. USD/JPY od lata 2022 wspinała się niepowstrzymanie: Fed podnosił stopy agresywnie, BoJ trzymał ujemne. 21 października 2022 kurs przebił psychologiczny poziom 151,94 — najwyżej od 1990 roku. Japońskie Ministerstwo Finansów wysłało Ministra Suzuki na telewizję z ostrzeżeniem o „zdecydowanej reakcji na nadmierne ruchy". Retailowi traderzy w Polsce i całej Europie patrzyli na ten komunikat i kupowali dalej — wszak „trend is your friend", a USD/JPY miała być wieczna. O 23:36 JST (15:36 GMT, środek sesji londyńskiej) MoF rzuciło na rynek ok. 42 miliardy USD przez BoJ jako operacyjnego agenta. W ciągu 15 minut kurs spadł z 151,40 do 146,20 — 520 pipsów nurkowania w kwadrans na najpłynniejszej parze świata. Na MT4 detalistów dostępna była tylko jedna widoczna świeca: czarna, 500 pipsów, często bez możliwości zamknięcia pozycji (rejecty, requote, spread rozsunięty z 0,8 p do 15–30 p w szczycie ruchu). Tym, co odróżnia to zdarzenie od technicznego „czarnego łabędzia", był zaplanowany charakter: regulator wiedział, że retailowy long-stack siedzi powyżej 151,00 (większość retail brokerów publicznie agregowała pozycjonowanie klientów w raportach sentymentu), MoF celowo wybrał moment, gdy stop-lossy nakładały się warstwowo co 10–20 pipsów, i kaskada wymuszonych zamknięć dosłownie dosypała paliwa do interwencji za pieniądze detalistów. Reżim zmienił się w jedną noc: pary JPY na 6 miesięcy stały się niehandlowalne dla strategii trend-following, które działały przez poprzednie 18 miesięcy. Kto liczył ATR(14) i miał regułę „gdy ATR > 2× mediany, wyłącz long-momentum na JPY", wyszedł z października 2022 z zerową stratą. Kto „ufał trendowi" bez metryki reżimu — stracił kwartał wyników.

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ściATR(14) vs mediana 3YSystemy tracące edgeSystemy zyskujące edge
Niski (compression)< 0,5× medianybreakout, momentum, trend-followingmean-reversion, scalping, range
Średni (baseline)0,5×–1,5× medianywiększość systemów w tym oknie
Wysoki (shock)> 2× medianymean-reversion, carry, negative gamma exposuresvolatility 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.

Prosto z parkietu — WTI 20 kwietnia 2020, kiedy MT4 nie potrafił wyświetlić ceny. Krótko przed wygaśnięciem kontraktu majowego WTI popyt na ropę fizyczną wyparował — brakowało miejsca magazynowego, producenci gotowi byli dopłacać, byle ktoś odebrał baryłki. Kontrakt spadł poniżej zera, zamknięcie 20 kwietnia: –37,63 USD/baryłka. CFD na ropę u wielu brokerów retail po prostu przestały być kwotowane albo zostały zamrożone, bo oprogramowanie klienta (MT4 i niektóre buildy MT5) zakładało, że cena instrumentu jest dodatnia — ujemnych liczb nie potrafiło ani wyświetlić, ani obsłużyć przy rozliczeniu. Traderzy, którzy mieli otwarte longi, w części przypadków dostali rozliczenie po ostatniej dodatniej kwotowaniu (różnica do zera traktowana jako „strata techniczna"), w innych — po cenie oficjalnej rozliczenia futures, czyli z dopłatą liczoną w dziesiątkach tysięcy USD na kontrakt. Sprawy ciągnęły się w sądach jeszcze w 2023. Lekcja nie jest o ropie — jest o tym, że edge, który zakłada ciągłość kwotowań i dodatniość cen, jest edge'em warunkowym. W każdej instrument klasie istnieje scenariusz, którego system nie przewiduje, bo nigdy się wcześniej nie zdarzył. Na FX odpowiednikiem był CHF 15.01.2015. Na commodity — WTI 20.04.2020. Następny będzie gdzieś indziej.
Prosto z parkietu — koniec 10-letniego carry trade w 2022. Od kryzysu 2008 do końca 2021 carry trade (kupuj waluty z wysoką stopą, sprzedawaj z niską) na AUD/JPY, NZD/JPY i pokrewnych parach był „darmowym obiadem" niskiej zmienności: roczny Sharpe 0,6–0,9, drawdown rzadko poniżej –8%. W 2022 Powell w ciągu 9 miesięcy podniósł stopy USD z 0,25% do 4,5%, a BoJ utrzymał ujemne. Reżim się nie odwrócił — tylko zmienił z „niska zmienność + różnica stóp źródłem zwrotu" na „wysoka zmienność + ryzyko walutowe większe niż carry". Carry trade na AUD/JPY, który od 2018 do 2021 dał ~22% skumulowanie, w 2022 stracił 14% w pierwszych 6 miesiącach i kolejne 8% przy wrześniowej interwencji BoJ. Fundusze CTA, które traktowały carry jako jedną z kilku nóg portfela, zdiagnozowały reżim i wyłączyły signal w Q2 2022. Traderzy retail, którzy uczyli się carry z materiałów 2018–2020, grali dalej przez kolejne 4–6 kwartałów. Dziesięć lat edge'u, sześć kwartałów strat — żaden z tych traderów nie mógł znać daty wygaśnięcia reżimu, ale każdy, kto liczył kroczącą expectancy swojego carry basket, widział degradację od początku 2022. Pytaniem nie było „czy carry umrze", tylko „czy używam metryki, która mi o tym powie, zanim policzy to broker przez rozliczenie margin call".
Prosto z parkietu — śmierć carry trade. Przez lata carry trade na AUD/JPY (kup walutę z wysoką stopą, sprzedaj walutę z niską stopą) był „darmowym obiadem" — stabilny dochód z różnic w stopach procentowych. W 2008 carry trade na AUD/JPY stracił ~40% w kilka tygodni, kiedy kryzys finansowy wymuszał likwidację pozycji. Ci, którzy traktowali carry jako „pewny edge", odkryli, że edge był warunkowy: działał w środowisku niskiej zmienności i apetytu na ryzyko. Kiedy reżim się zmienił — edge zamienił się w katastrofę.
Prosto z parkietu — edge zdechł, trader nie zauważył. System mean-reversion działał na EUR/USD przez 14 miesięcy, bo rynek wracał do średniej po każdym mocniejszym odchyleniu. Potem przyszła dywergencja Fed–ECB i para weszła w trwały trend. Trader dalej kupował „tanio" i sprzedawał „drogo", nie rozumiejąc, że w trendzie rynek potrafi być przewartościowany dłużej, niż detal może utrzymać rachunek i cierpliwość. Po 4 miesiącach i –22% equity w końcu wyłączył system. Expectancy systemu zmieniła się z +0,28R na –0,15R gdzieś w okolicach miesiąca drugiego — ale trader nie monitorował jej krocząco, więc zauważył dopiero, kiedy rachunek krzyczał.
Prosto z parkietu — breakout po ESMA 2018. Przed 2018 popularna strategia: buy stop 10 pipsów powyżej oporu, SL poniżej wsparcia, target 3:1. Działała — szczególnie u brokerów B-Book z lewarem 1:200, gdzie małe konta mogły otwierać pozycje wielkości, przy której 10 pipsów SL miało sens przy 1% ryzyka. ESMA w 2018 wprowadziła lewar 1:30. Przy lewarze 1:200 (typowym przed ESMA) wymagany depozyt na 10 000 jednostek to 50 USD. Przy 1:30 — 333 USD. To ~6,6× więcej zablokowanego marginu przy tej samej pozycji. Detaliści albo zmniejszyli pozycje (i zniknęli z rynku), albo zwiększyli SL (i zmiana profilu R:R zniszczyła expectancy). Ta sama strategia na tych samych parach — degradacja edge nie przez „zmiany rynku", ale przez regulacje, która zmieniła mikrostrukturę uczestników.
Prosto z parkietu — SMC crowding 2022–2023. W latach 2022–2023 Smart Money Concepts (order blocks, liquidity pools, equal highs/lows, fair value gaps) stał się dominującą metodologią retail Forex, popychany przez edukatorów z zasięgami 2+ mln obserwujących. Efekt strukturalny: te same strefy publikowane równolegle w tysiącach postów i screenshotów. W tygodniu po FOMC marca 2023 EUR/USD dwukrotnie w 72 godzinach wybił dokładnie na te poziomy, po czym w 25–35 minut zawracał 60–80 p. Im bardziej publiczny jest twój poziom wejścia albo stopa, tym większe ryzyko, że staje się informacją, a nie ochroną.

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.

breakeven (0R) +0,40R +0,20R 0 –0,20R Numer transakcji (okno kroczące 50) 50 100 150 200 250 Stabilna przewaga wariancja wokół +0,28R Degradacja sygnał ostrzegawczy Edge zdechł płacisz za naukę Decyzja: rewizja Decyzja: wyłączenie
Krocząca expectancy na oknie 50 transakcji. Strefa zielona: stabilna przewaga z normalną wariancją. Strefa żółta: degradacja na 40–60 transakcjach — moment na audyt (regime change? crowding? zmiana egzekucji?). Strefa czerwona: expectancy poniżej zera przez 80–100 transakcji — edge prawdopodobnie zdechł, kapitał dalej inwestowany w system płaci już tylko za naukę.

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.

Kiedy edge znika — cztery warstwy degradacji: crowding, regime change, mikrostruktura, cykl zmienności
Kiedy edge znika — cztery warstwy degradacji: crowding, regime change, mikrostruktura, cykl zmienności

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.
Najczęstsze błędy w ocenie expectancy: za mała próbka, backtest bez kosztów, overfitting, ignorowanie dystrybucji, survivorship bias
Najczęstsze błędy w ocenie expectancy: za mała próbka, backtest bez kosztów, overfitting, ignorowanie dystrybucji, survivorship bias

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.

  1. 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).
  2. 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.
  3. 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ł.
  4. 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.
  5. 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.

1 Eksport ostatnich 50 transakcji MT4/MT5 Detailed Report lub MyFxBook Statement → kolumny: data, para, entry/exit, R-multiple, slippage Czas: 10 min · Output: arkusz z 50 wierszami 2 Expectancy po kosztach EV = (WR × Avg R win) – ((1–WR) × |Avg R loss|), odejmij spread × transakcje Czas: 15 min · Red flag: EV ≤ 0 3 Asymetria slippage SL vs TP MyFxBook → Advanced Statistics → Slippage; SL − TP > 2 p na EUR/USD = problem egzekucji Czas: 15 min · Red flag: asymetria > 2 p 4 Pierwsza vs druga połowa próbki Policz expectancy osobno dla transakcji 1–25 i 26–50. Spadek > 30% = degradacja w czasie Czas: 20 min · Red flag: spadek > 30% 5 Compliance rate — reguły vs improwizacja % transakcji w 100% zgodnych z regułami. Porównaj EV compliant vs non-compliant osobno Czas: 30 min · Red flag: non-compliant > 30% próbki
Minimum viable audit w jedno popołudnie: pięć kroków, ~90 minut łącznie. Każdy krok ma jeden konkretny red flag — jeżeli którykolwiek zapala się na czerwono, zatrzymaj nowe wejścia do czasu, aż zrozumiesz, dlaczego. Ten sam schemat powtarzany co 50 transakcji zamienia „mam system" z deklaracji w serię mierzalnych punktów kontrolnych.

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 CETEUR/USD spreadGBP/USD spreadUSD/JPY spreadKrótki SL (≤10 p)
Londyn open (09:00–11:00)0,3–0,6 p0,5–0,9 p0,5–0,9 pOK
Londyn–NY overlap (14:00–17:00)0,2–0,4 p0,4–0,7 p0,4–0,7 pnajbezpieczniej
NY po 17:000,4–0,8 p0,7–1,2 p0,6–1,0 pOK, książka rzednie
Rollover (22:55–23:15)3–6 p4–8 p2–4 pNIE — mechaniczny stop-hunt
Azja (00:00–07:00)0,6–1,2 p1,0–2,0 p0,4–0,8 ptylko na USD/JPY
NFP/CPI/FOMC T+0 do T+60s5–15 p8–20 p4–10 pNIE — LP wycofują kwotowania
Otwarcie niedzielne (23:00)2–5 p + gap3–7 p + gap1–3 p + gapNIE — 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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.
  7. 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.
  8. 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.
  9. Douglas, M., Trading in the Zone, Prentice Hall, 2000 — myślenie probabilistyczne w tradingu; akceptacja losowości pojedynczych wyników jako warunek konsekwentnej egzekucji.
  10. 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.
  11. 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.
  12. 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.

Jarosław Wasiński LinkedIn

Redaktor naczelny MyBank.pl • Analityk finansowy i rynkowy

mgr Jarosław Wasiński — niezależny analityk i praktyk z ponad 20-letnim doświadczeniem w sektorze finansowym. Twórca i redaktor naczelny portalu MyBank.pl, dostarczającego rzetelną wiedzę o finansach osobistych, bankowości i inwestycjach od 2004 roku.

  • Bankowość i produkty finansowe: porównania kont osobistych i firmowych, analiza taryf opłat, testy aplikacji mobilnych, recenzje kredytów, lokat i kart kredytowych — z naciskiem na realne koszty i ukryte opłaty.
  • Rynki finansowe i makroekonomia: analiza fundamentalna rynków walutowych (Forex) i makroekonomicznych od 2007 roku, zarządzanie ryzykiem kapitału, struktura rynków OTC.
  • Kryptowaluty: analiza rynku kryptowalut, mechanizmów blockchain i tokenizacji aktywów w kontekście portfela inwestycyjnego.

Autor setek komentarzy rynkowych, analiz porównawczych produktów bankowych i materiałów edukacyjnych. Zwolennik transparentności — każdy ranking i recenzja na MyBank.pl opiera się na jawnej metodologii i zweryfikowanych źródłach (taryfy banków, regulaminy promocji, dane NBP).

Treści mają charakter edukacyjny i informacyjny — nie stanowią porady inwestycyjnej, rekomendacji ani oferty. Decyzje finansowe podejmuj na podstawie własnej analizy i konsultacji z doradcą.