Budowanie strategii Forex — od hipotezy do reguł działania
Większość strategii detalu nie jest strategiami — są to luźne hipotezy ubrane w pseudokod. „Kupuję, gdy RSI poniżej 30 i pojawia się świeca młotek" to dwa warunki bez kontekstu, edge'u, sizingu, filtrów reżimu ani planu wyjścia. Dopóki nie określisz expectancy netto, MAE/MFE, kosztów egzekucji i wariancji — nie masz strategii, masz notatki w zeszycie. Realna strategia ma 8 warstw, a każdą zapisujesz tak, żeby druga osoba mogła ją wykonać bez telefonu do ciebie. Jeśli nie potrafi — masz opis nastroju, nie strategię. Po przeczytaniu napiszesz pierwszy szkic w 4–8 godzin; do live nadal brakuje testów, kosztów, forwardu i brutalnego kontaktu z egzekucją.
- Hipoteza ≠ strategia. Hipoteza to obserwacja rynku („po wybiciu range'u w pierwszej godzinie LON ruch kontynuuje się w 60% przypadków"). Strategia to instrukcja, jak to wykorzystać operacyjnie z konkretnymi regułami sizingu, SL i filtrów
- Każda strategia musi mieć edge zdefiniowany testowalnie — tj. mierzalny w expectancy netto na próbie ≥ 100 instancji. Bez tego handlujesz przekonaniem, nie systemem
- Reguły wejścia i wyjścia muszą być jednoznaczne — wymagać matematyki, nie estetyki. „Kupuję na mocnym setupie" to nie reguła. „Kupuję, gdy świeca M15 zamyka się powyżej SMA-50 z body > 0,8 ATR(20)" — to reguła
- Walidacja przed backtestem (sanity check) wyłapie 80% błędów, zanim spędzisz 20 godzin na testach. Pierwsze pytanie: czy ta strategia ma logiczny powód, żeby zarabiać — czy to dopasowanie do historycznych danych?
1. Hipoteza vs strategia — różnica, której detal nie widzi
Zaczynasz od obserwacji: „Po publikacji NFP rynek często wraca do poziomu sprzed publikacji w ciągu 4–6 godzin." To jest hipoteza — opis pewnej regularności rynku. Hipoteza nie zarabia pieniędzy. Pieniądze zarabia strategia, czyli operacyjna instrukcja, jak tę hipotezę wykorzystać w sposób, który po kosztach, slippage'u i ryzyku daje dodatnią expectancy.
Detal regularnie myli te dwa pojęcia. Strony tradingowe są pełne „strategii" typu: „Kupuj, gdy RSI poniżej 30 i pojawi się świeca młotek" — i koniec. To jest hipoteza (RSI < 30 + młotek może wskazywać reversal), ale nie strategia, bo brakuje:
- W jakim reżimie rynku to działa (trending, ranging, wysoka zmienność)?
- Na jakich parach? Czy działa tak samo na EUR/USD i USD/TRY?
- Na jakim interwale (M5, H1, D1)?
- Co dokładnie znaczy „świeca młotek" — proporcje cienia do body, dopuszczalne odchylenia?
- Gdzie SL, gdzie TP, jaka relacja R:R?
- Jakie filtry — kalendarz makro, korelacje z innymi otwartymi pozycjami?
- Jaki sizing — fixed fractional, fixed lot, ATR-based?
- Co robisz, jeśli setup nie zadziała — kiedy uznajesz, że hipoteza jest błędna i wyciągasz strategię z playbooka?
Hipoteza może być prawdziwa, a strategia stratna
To jest najważniejsza lekcja sekcji 1. Hipoteza „NFP zwykle wraca w 4–6 godzin" może być statystycznie prawdziwa — np. w 58% przypadków cena wraca do poziomu sprzed publikacji w tym oknie. Ale strategia oparta na tej hipotezie z prostym wejściem w przeciwnym kierunku natychmiast po wybiciu może mieć expectancy ujemną, bo:
- W 42% przypadków cena nie wraca, lecz kontynuuje ruch — dostajesz pełny SL
- Spread w pierwszej minucie po publikacji wynosi 8–15 pipsów zamiast 0,8 — niszczy expectancy
- Slippage na wejściu i wyjściu w warunkach niskiej płynności po publikacji wynosi 5–20 pipsów
- Asymetria fillów: SL zawsze realizowany na pełnym poślizgu, TP często „dotknięte ale nie zrealizowane"
Hipoteza prawdziwa, strategia stratna. To dlatego nie wystarczy „zauważyć regularność" — trzeba zbudować pełną strategię i przetestować ją z realnymi kosztami.
2. Cykl budowy strategii — 6 kroków od idei do testów
Na desku strategia bez tych 6 etapów nie przechodzi przez drzwi. U retaila zwykle trafia od razu na live — i dlatego rachunek robi za laboratorium. Każdy etap ma bramkę decyzyjną: przechodzi dalej, wraca do wcześniejszego kroku albo idzie do kosza. Bez tej bramki „6 kroków" jest listą edukacyjną, nie procesem operacyjnym.
Krok 1: Obserwacja → hipoteza (1–4 godziny)
Zauważasz coś na rynku: „Po publikacji NFP rynek wraca w 4–6h" albo „Pierwsze 30 minut po LON open mają największą zmienność" albo „GBP/AUD ma tendencję do trendowania w środy". To jest faza obserwacji. Zapisujesz hipotezę w jednym zdaniu i konkretne warunki, które ją definiują.
Krok 2: Walidacja koncepcyjna (1–2 godziny)
Pytania, na które musisz odpowiedzieć zanim zaczniesz pisać reguły:
- Czy ta hipoteza ma logiczny powód, żeby być prawdziwa? (Mikrostruktura, behawior uczestników, sezonowość)
- Czy jest opisana w literaturze? (Akademicka, profesjonalna)
- Czy istnieje znany mechanizm, który by ją „zabił" — np. rozpowszechnienie strategii?
- Czy działa po kosztach? Wstępna estymacja: jeśli przewidujesz średni ruch 10 pipsów, a koszty per trade to 2–3 pipsy — pozostaje 7 pipsów netto, czyli WR 50% i R:R 1:1 daje expectancy bliską zera
W zdrowym procesie większość pomysłów odpada już tutaj — to matematyka, nie pesymizm. Jeśli większość pomysłów przechodzi krok 2 bez odrzucenia na kosztach — twoje kryteria są za miękkie albo nie policzyłeś spreadów. Lepiej wyrzucić notatki z Excela po 2 godzinach, niż depozyt po 2 miesiącach. Notuj walidację koncepcyjną w 1 stronie A4, nie w 6.
Krok 3: Definicja edge'u testowalna (2–4 godziny)
Edge musisz wyrazić w sposób mierzalny:
- „Setup ma WR ≥ 50% przy R:R ≥ 1:1,5" (mierzalne na 100+ instancjach)
- „Setup generuje średnio +0,3R netto na próbie OOS > 50 instancji" (mierzalne)
- NIE: „Setup wykorzystuje zachowanie rynku po manipulacji smart money" (nie mierzalne, niefalsyfikowalne)
Krok 4: Reguły wejścia, wyjścia, sizingu (3–6 godzin)
Pisanie samych reguł — tematyka sekcji 4–6 tego artykułu. Każda reguła musi być jednoznaczna i wykonywalna bez interpretacji.
Krok 5: Sanity check (30–60 minut)
Lista kontrolna przed wydaniem czasu na backtest — sekcja 7 tego artykułu.
Krok 6: Backtest, forward, demo (40–80 godzin rozłożonych na 2–6 miesięcy)
Pełna metodologia w artykule 15.4. To etap najbardziej czasochłonny, ale jeśli kroki 1–5 zostały dobrze wykonane, masz znacznie wyższą szansę, że strategia przejdzie.
3. Edge — jak zdefiniować przewagę tak, żeby była testowalna
Edge (przewaga) jest różnicą między oczekiwaną wartością wyniku a kosztami transakcji. Brzmi prosto, ale większość strategii detalu nie ma mierzalnego edge'u — bo nie został on zdefiniowany w sposób, który można sprawdzić liczbowo.
Trzy poziomy definicji edge'u
| Poziom | Przykład | Czy testowalne? |
|---|---|---|
| Słaba (narracyjna) | „Mój setup wykrywa momenty, w których smart money akumuluje pozycje" | Nie — „smart money" nie jest mierzalne na poziomie detalu |
| Średnia (jakościowa) | „Mój setup wchodzi po breakoutach z dużym wolumenem" | Częściowo — „duży wolumen" wymaga progu liczbowego |
| Silna (ilościowa) | „Mój setup wchodzi po wybiciu pre-LON range > 8 pipsów ze świecą zamknięcia M5 powyżej i tick volume > 1,5× średniej M5 z 20 świec" | Tak — każdy parametr jest mierzalny |
Tylko silna definicja pozwala na backtest. Średnia wymaga subiektywnej oceny przy każdej decyzji = nie jest reprodukowalna. Słaba w ogóle nie da się przetestować.
Test edge'u — formuła expectancy
Edge mierzy się w jednej liczbie:
Gdzie:
- W% — win rate z historycznych instancji setupu (frakcja, nie procent)
- avgWinR, avgLossR — średnie wyrażone w R (1R = jedno ryzyko per trade)
- costR — spread + prowizja + swap + średni slippage z realnych fillów brokera, nie z reklamy na stronie, wyrażone jako % R
Przykład: WR 55%, średni zysk +1,8R, średnia strata −1R, koszty per trade 0,1R.
Expectancy brutto: (0,55 × 1,8) − (0,45 × 1,0) = 0,99 − 0,45 = +0,54R
Expectancy netto: 0,54 − 0,1 = +0,44R
Ta liczba jest początkiem rozmowy, nie wyrokiem. Expectancy z 28 trade'ów po selekcji najlepszych wejść to dekoracja, nie edge. Z liczbą +0,44R możesz oszacować średni wynik na próbie 100+ trade'ów. Nadal możesz dostać serię strat, obsunięcie 15–25% i trzy miesiące bez wypłaty, zanim statystyka zacznie przypominać backtest. Equity curve dodatniej strategii nie jest gładką prostą — to schody z dłuższymi i krótszymi obsunięciami.
SQN (System Quality Number) — kiedy próba jest wystarczająca
Expectancy samo w sobie nie mówi, czy próba jest statystycznie wystarczająca. Do tego służy SQN van Tharpa[9]:
Gdzie N to liczba zamkniętych transakcji, StdDev(R) to odchylenie standardowe wyników w R. Interpretacja:
| SQN | Klasyfikacja systemu | Decyzja |
|---|---|---|
| < 1,6 (przy n < 50) | Brak dowodu na edge — masz hipotezę, nie system | Wracasz do backtestu, nie wlewasz pieniędzy |
| 1,6–2,0 | System słaby, działa w ograniczonych warunkach | Mały sizing, dalsze testy na innych okresach |
| 2,0–2,5 (przy n > 100) | System dobry, do którego warto wlać prawdziwe pieniądze | Standardowy sizing wg planu |
| > 2,5 | System bardzo dobry — rzadkie u retaila | Standardowy sizing; podejrzewaj overfitting jeśli backtest mały |
SQN > 2,0 przy N > 100 to dobry sygnał jakości, ale nadal nie jest przepustką do agresywnego live. Potrzebujesz osobnego potwierdzenia na OOS, forward testu na demo, modelu kosztów odpornego na pesymistyczny scenariusz i kontroli drawdownu w realnym czasie. SQN to filtr przed live, nie zielone światło.
cost_R; jeśli dotrzymujesz świadomie do środowego rolla — wpisz potrójną wartość. Backtest bez tego daje fałszywy obraz strategii overnight i swing.cost_R pojedynczej transakcji tak jak spread, prowizja czy swap. Liczysz go na poziomie wyniku rocznego strategii lub portfela, po kompensacji zysków i strat. Stawka dla polskich rezydentów: 19% od dochodu z kapitałów pieniężnych (PIT-38, termin do 30 kwietnia roku następnego)[12]; straty z roku można rozliczyć z zyskami z 5 kolejnych lat. Raportuj dwie liczby: expectancy operacyjną po kosztach brokera (per trade, w R) oraz wynik netto po podatku na poziomie roku. Można mieć strategię dodatnią operacyjnie, której wynik po podatku znacząco różni się od liczby z backtestu — szczególnie przy wysokim obrocie i symetrycznym rozkładzie zysków/strat między latami. Liczb tych się nie miesza, ale obu się nie pomija.
Granica edge'u — kiedy strategia przestaje mieć sens
W praktyce expectancy netto poniżej +0,15R jest matematycznie dodatnie, ale operacyjnie wątpliwe:
- Wahania expectancy z mostka próby do próby są często rzędu 0,1–0,2R, więc setup z +0,15R może być w rzeczywistości +0,05R lub +0,25R — nie wiesz
- Każde pogorszenie warunków (wyższy spread w stresie, gorszy fill na slippage) zjada bufor
- Psychologicznie trudno utrzymać dyscyplinę przy expectancy bliskiej zera — bo każda strata wydaje się duża względem tempa zysku
Praktyczny próg: expectancy netto powyżej +0,3R dla setupów A+, powyżej +0,15R dla B. Poniżej +0,15R — setup do usunięcia.
Python snippet — automatyzacja liczenia expectancy z eksportu MT5
Polski trader z etatem ma Pythona i dostęp do MT5 CSV — wielu nie wie, że może to zautomatyzować zamiast liczyć w Excelu. Minimalny skrypt:
import pandas as pd
# Eksport historii MT5: prawym klikiem na History → Save as Report → CSV
df = pd.read_csv('mt5_export.csv', sep=';')
# Liczymy R-multiple per trade: profit / risk_per_trade (np. 1% kapitału)
risk_per_trade_pln = df['balance'].iloc[0] * 0.01
df['R'] = df['profit_pln'] / risk_per_trade_pln
wins = df[df['R'] > 0]['R']
losses = df[df['R'] < 0]['R']
WR = len(wins) / len(df)
avg_win_R = wins.mean()
avg_loss_R = losses.mean() # ujemne
expectancy_gross = WR * avg_win_R + (1 - WR) * avg_loss_R
expectancy_net = expectancy_gross - df['commission_R'].mean() \
- df['swap_R'].mean()
PF = wins.sum() / abs(losses.sum())
SQN = (df['R'].mean() / df['R'].std()) * (len(df) ** 0.5)
print(f"N={len(df)} WR={WR:.2%} E_net={expectancy_net:.3f}R "
f"PF={PF:.2f} SQN={SQN:.2f}")
Liczy się raz, daje pełen obraz. Każdy element jest reprodukowalny — dwóch traderów na tym samym CSV dostanie identyczne liczby. To jest standard, nie luksus.
4. Reguły wejścia — od trigger'a po potwierdzenie
Reguła wejścia ma trzy elementy: warunek konieczny (kontekst), trigger (sygnał) i potwierdzenie (filtr przed kliknięciem). Każdy musi być jednoznaczny.
Warunek konieczny — kontekst
To środowisko, w którym strategia ma sens. Bez warunku koniecznego strategia generuje sygnały zarówno w trendzie, jak i w konsolidacji — czyli traci edge w jednej z tych faz.
Przykład: strategia trend-following wymaga warunku koniecznego „rynek w trendzie":
- SMA-50 D1 powyżej SMA-200 D1 (long bias) lub poniżej (short bias)
- ADX(14) D1 ≥ 25
- Cena powyżej obu MA (long) lub poniżej (short)
Strategia mean-reversion wymaga przeciwnego warunku:
- ADX(14) D1 < 20
- Cena oscyluje w widocznym kanale (high/low ostatnich 20 świec D1)
- ATR(14) D1 stabilny w przedziale 0,7–1,3× średniej 90-dniowej
Trigger — sygnał wejścia
Trigger to moment, w którym strategia mówi „wchodzimy". Jeden konkretny warunek M5/M15/H1, jednoznaczny, bez interpretacji:
- „Świeca M15 zamyka się powyżej poprzedniego high z body > 0,5 ATR(20) M15"
- „Cena dotyka SMA-50 H1 z dołu i tworzy świecę z długim cienem dolnym > 60% body"
- „RSI(14) M15 wychodzi powyżej 30 z poniżej (cross up)"
Trigger nie może być „rynek wygląda gotowy" albo „pojawia się dobra okazja" — to nie jest reguła, to ocena.
Potwierdzenie — filtr przed kliknięciem
Po triggerze, ale przed wejściem, sprawdzasz filtry potwierdzające. Każdy z odpowiedzią tylko TAK lub NIE — żadnych „raczej tak", „w pewnym stopniu", „chyba że". Mini-template binarnej checklisty triggera:
| Warunek | Próg liczbowy | TAK / NIE |
|---|---|---|
| Reżim spełniony | ADX(14) D1 ≥ 25 (trend) / < 20 (mean-rev) | ☐ ☐ |
| Range w przedziale | pre-LON range 12–35 pipsów | ☐ ☐ |
| Świeca M5 zamknięta | min. 5 sekund po pełnej minucie | ☐ ☐ |
| Volume threshold | tick volume > 1,3× średniej 20 świec | ☐ ☐ |
| Brak high impact | żadnego eventu rangi 3 w ±2h | ☐ ☐ |
| Ekspozycja korelacyjna OK | brak otwartych pozycji o korelacji > 0,7 | ☐ ☐ |
| Typ zlecenia ustalony | market / limit / stop wybrany przed sesją | ☐ ☐ |
Wszystkie 7 pól TAK → wejście zgodnie z playbookiem. Jakiekolwiek NIE → pomijasz setup, czekasz na następny. Trigger może mieć tylko odpowiedzi binarne — gdzie jest „może", tam jest dziura, przez którą wejdzie sąd estetyczny.
Wejście — market vs limit vs stop
| Typ zlecenia | Kiedy używać | Wada |
|---|---|---|
| Market | Breakout, news trading, kiedy rynek się rusza i potrzebujesz pewności wejścia | Slippage rzędu 1–5 pipsów na NFP/CPI, gorsze fille przy spadku płynności po publikacji |
| Limit | Mean-reversion, retracement do MA, czekanie na odpowiednią cenę | Może nie zostać zrealizowany — strategia traci sygnał, częściowe wypełnienie na małych rachunkach |
| Stop | Breakout poziomu, wejście dopiero po potwierdzeniu kierunku | Slippage podobny do market'u, większy w warunkach niskiej płynności; różnica między stop a stop-limit krytyczna |
Typ zlecenia wpisujesz do playbooka przed sesją. Jeśli wybierasz market/limit/stop w chwili, gdy świeca już leci, to nie jest egzekucja — to reakcja nerwowa. Zwykle: trend-following = stop, mean-reversion = limit, news = market.
Egzekucja u brokera — co naprawdę dzieje się po kliknięciu
Demo i live to dwa różne światy egzekucji. Cztery rzeczy, które niszczą expectancy strategii zbudowanej tylko na backteście demo:
- Spread dynamiczny — w godzinach LON open spread na EUR/USD potrafi rozszerzyć się o rząd wielkości względem sesji nocnej, na GBP/JPY proporcjonalnie więcej. Backtest na średnim spreadzie często pokazuje wynik wyższy niż live, bo nie uwzględnia tych skoków.
- Slippage — fill cena ≠ cena wskazana. W praktyce przy danych makro (NFP, CPI, FOMC) slippage na stopach potrafi zjeść kilka pipsów w jednym fillu. Własną medianę liczysz z realnych logów MT4/MT5, nie z marketingu brokera ani forów.
- Requote / odrzucenie zlecenia — broker market-maker może zwrócić nową cenę zamiast wykonać po cenie kliknięcia, albo odrzucić zlecenie. Sprawdź to przed wpłatą większego kapitału.
- Częściowe wypełnienie — duże zlecenie potrafi rozjechać się na kilka fillów po różnych cenach. Na rachunkach < 5 000 EUR rzadkie, ale przy ECN i większych pozycjach realne.
Stop vs stop-limit: stop wykonuje się po dowolnej cenie po przekroczeniu progu (gwarancja egzekucji, bez gwarancji ceny), stop-limit daje ci kontrolę ceny, ale ryzyko niewykonania. W warunkach gap'u (otwarcie poniedziałkowe, news) stop-limit zostaje niewykonany, a strata wciąż rośnie. Dla ochronnego SL u retaila domyślnie stop, nie stop-limit — stop-limit ma sens tylko wtedy, gdy świadomie akceptujesz ryzyko niewykonania (np. limit order do dyscyplinowanego wejścia w spokojnej sesji, nigdy do ochrony kapitału).
Architektura VPS i webhooki — kiedy ping ma znaczenie
Dla strategii intraday automatyzowanych przez TradingView Webhook lub EA na MT4/MT5 ping do serwera brokera ma znaczenie operacyjne. Domowy światłowód w Warszawie z pingiem 35–60 ms do Londynu zwykle wystarczy do swing i spokojnego intraday, ale przy automatach breakout/news każde dodatkowe 50 ms opóźnienia między OrderSend w EA a fillem na serwerze brokera zwiększa ryzyko gorszego filla — szczególnie przy NFP, FOMC i flash crashach, gdzie kolejka zleceń jest pełna. VPS nie daje przewagi HFT (rachunek detaliczny CFD i tak nie konkuruje w tej samej kolejce co HFT na poziomie matching engine giełdy — idziesz przez brokera, LP i bridge). VPS robi co innego: usuwa twoje własne opóźnienia i punkty awarii. Architektura, która ten dystans skraca:
- VPS w tej samej serwerowni co broker — typowo Equinix LD4 (Londyn) dla brokerów europejskich, NY4/NY5 dla amerykańskich. Ping do serwera brokera spada z 50 ms do 1–3 ms. Koszt: zaczynając od ~25–50 USD/miesiąc za prosty VPS Windows.
- Webhook z TradingView na adres VPS — alert TV → URL webhooka → skrypt na VPS → MT5 OrderSend. Cała ścieżka w jednym data center.
- Watchdog — drugi skrypt monitorujący, że terminal MT5 i webhook listener żyją; restart automatyczny po awarii. Bez watchdoga prosty restart Windows Update wyłącza ci EA na 8 godzin (patrz war story w sekcji 8).
- Synchronizacja czasu NTP z lokalnym serwerem czasu data center, nie z time.windows.com — różnica typowo < 50 ms vs > 1 s.
VPS nie zastępuje stanowiska tradera. Jest dodatkową warstwą egzekucyjną dla strategii, w których ping ma znaczenie — czyli intraday breakout, news scalping, strategie z TP/SL liczonymi w sekundach. Dla swing'u i pozycji D1+ ping 50 ms vs 2 ms nie zmienia nic — zostań z laptopem.
5. Reguły wyjścia — SL, TP i częściowe zamykanie
Reguły wyjścia są często gorzej przemyślane niż reguły wejścia — i to dlatego strategie działają „w teorii", ale nie w praktyce. SL źle zdefiniowany, TP wybrany arbitralnie, brak planu na sytuacje pomiędzy = strategia nie ma operacyjnej kompletności.
Stop Loss — gdzie i dlaczego
SL ustawiasz w miejscu, które obala twoją hipotezę. Nie w miejscu „gdzie chcesz stracić mało" ani „2% poniżej entry" arbitralnie. Trzy warianty oparte na strukturze:
- Strukturalny — pod ostatnim swing low (long) lub powyżej swing high (short), plus 5–10 pipsów bufora. Zalety: blisko logiki rynku. Wady: każdy trade ma inny SL w pipsach, więc sizing też się zmienia
- ATR-based — SL na 1,5–2× ATR(14) od entry. Zalety: konsystentny w sensie statystycznym (uwzględnia bieżącą zmienność). Wady: czasem za blisko struktury, czasem za daleko
- Volatility-adjusted — SL przesuwany w funkcji bieżącej zmienności (większy ATR = szerszy SL). Zalety: adaptacyjny. Wady: skomplikowane do implementacji, może dawać niespójne wyniki
Dla wielu prostych strategii FX na majorsach (EUR/USD, USD/JPY) i interwałach M15–H1 strukturalny SL z buforem liczonym jako część ATR jest rozsądniejszy niż arbitralne „2% od entry" czy stała liczba pipsów. Bufor w pipsach musi wynikać ze zmienności instrumentu: na EUR/USD M15 może to być kilka pipsów (0,2–0,3 ATR), na GBP/JPY proporcjonalnie więcej, na XAU/USD i indeksach CFD jeszcze inna skala. „Stała 5–10 pipsów dla wszystkiego" to zaproszenie do wybicia stopa przez naturalny szum na bardziej zmiennych instrumentach.
Take Profit — statyczny vs strukturalny vs trailing
| Typ TP | Charakterystyka | Dla kogo |
|---|---|---|
| Statyczny (1R, 2R) | Zamknięcie na konkretnej wielokrotności ryzyka | Najprostszy, najlepiej testowalny, mniej emocjonalnie wymagający |
| Strukturalny | Najbliższy znaczący opór (long) / wsparcie (short) | Wyższa expectancy w sprzyjających warunkach, wymaga oceny struktury |
| Trailing | Stop loss przesuwany w stronę profitu (np. po SMA-20 albo Chandelier Stop) | Pozwala złapać duży ruch, ale często zamyka pozycję na cofce |
| Częściowy (50% na 1R, 50% trailing) | Hybryda — stabilizuje wyniki przez wczesne zamknięcie połowy | Setupy A+ z dobrym potencjałem dużego ruchu |
MAE / MFE — diagnostyka jakości SL i TP
Zanim wybierzesz typ TP, przeanalizuj MAE (Maximum Adverse Excursion — największe obsunięcie pozycji w trakcie trwania) i MFE (Maximum Favorable Excursion — największe odchylenie korzystne) z historycznych trade'ów. Po 30–50 transakcjach masz minimum diagnostyczne, po 100+ pełen obraz.
| Sygnał z MAE/MFE | Diagnoza | Co zmienić |
|---|---|---|
| Większość wygranych najpierw schodzi do −0,8R przed zyskiem | SL jest za ciasny względem zmienności setupu | Rozszerz SL o 0,2–0,3R lub zmień metodę z ATR×1,5 na ATR×1,8 |
| Twoje straty wylatują 3× dalej niż mediana MAE pozycji zyskownych | SL jest za luźny — siedzisz na przegrywających trade'ach z nadzieją | Zaciśnij SL do mediany MAE wygranych + 0,3R bufora |
| 60% trade'ów osiąga MFE +2R, ale ty zamykasz na +1R | Zostawiasz edge na stole — exit/TP jest problemem, nie entry | Przesuń TP1 z 1R na 1,5R lub 2R, zostaw trailing na resztę |
| MFE wygranych średnio +3R, twoje TP +1,5R | Tracisz gigantyczny kapitał na strachu — TP wybrane emocjonalnie | Statyczny TP zastąp częściowym (50% na 1,5R, 50% trailing po SMA-20) |
Edgewonk i Tradervue generują oba wykresy automatycznie po imporcie MT5/MT4 CSV. Można też zrzucić surowe dane do Pythona / pandas i policzyć ręcznie — kluczowe są kolumny MAE_pips, MFE_pips, R_result, setup_type.
Maksymalny czas trzymania pozycji
Często pomijany element — co robisz z pozycją, która ani nie wygrała, ani nie przegrała przez wiele godzin? Reguła: każda strategia ma maksymalny czas trzymania, po którym zamykasz ręcznie:
- Day trading: 4–6 godzin lub do końca sesji
- Swing: 5–10 dni (zależy od strategii)
- Position trading: 3–8 tygodni
Pozycja bez ruchu po czasie przewidzianym w strategii to zablokowane ryzyko. Jeśli setup miał zadziałać w 4 godziny, a po 9 godzinach nadal „czekasz" — to już nie handlujesz systemu, tylko siedzisz na ekspozycji na losowe newsy i codzienne swapy u brokera. Każda dodatkowa godzina trzymania pozycji bez momentum to niepotrzebna ekspozycja, nie „dawanie rynku szansy".
6. Filtry — reżim, kalendarz, korelacje, time-of-day
Filtry są tym, co odróżnia setup (pojedynczy moment wejścia) od strategii (zestaw setupów stosowanych w odpowiednich warunkach). Bez filtrów strategia generuje sygnały w każdym reżimie — i ginie w 50% przypadków.
Filtr reżimu rynkowego
Najważniejszy filtr. Implementacja:
- Strategia trend-following: aktywna, gdy ADX(14) D1 ≥ 25 i ATR(14) D1 między 0,9× a 1,5× średniej 90-dniowej
- Strategia mean-reversion: aktywna, gdy ADX(14) D1 < 20 i ATR stabilny
- Strategia volatility-breakout: aktywna, gdy ATR (14) M15 wzrasta z konsolidacji (ATR z ostatnich 5 świec < 0,7× średniej 50-świecowej)
Filtr kalendarza makro
Nie koduj dat publikacji na pamięć. Święta, zmiany czasu, opóźnione publikacje (shutdown rządowy w USA, niespodziewane briefingi banków centralnych) regularnie psują „wiedzę utrwaloną". Sprawdzaj kalendarz dzień wcześniej i rano w dniu handlu. W playbooku zapisujesz zasadę, nie godzinę:
- Lista typowo high-impact dla kursów majors: NFP, CPI USA, FOMC + dot plot, ECB rate decision + press conference, BOE rate decision, BOJ rate decision, RBA rate decision, niemieckie ZEW i Ifo, UK GDP, raporty zatrudnienia AU/CA, decyzje OPEC+ (efekt na CAD i NOK)
- Źródła kalendarza: ForexFactory, Investing.com, TradingEconomics — porównaj 2 niezależne, bo definicja „rangi 3" różni się między dostawcami
- Reguła: setup wyłączony 30 minut przed i 15 minut po publikacji w bezpośrednim kontakcie z parą walutową bazową lub kwotowaną
- Filtr ma być walutowy, nie tylko parowy: BOJ wpływa nie tylko na USD/JPY, ale na cały koszyk JPY (EUR/JPY, GBP/JPY, AUD/JPY)
Filtr rolloveru — okno 22:55–23:10 CET
O 23:00 CET (22:00 GMT zimą, 21:00 GMT latem) następuje rollover sesji — moment, w którym broker przelicza koszty utrzymania pozycji overnight (swap) i część dostawców płynności wyłącza księgi. Spread na parach z JPY, AUD, NZD i egzotykach potrafi się chwilowo rozszerzyć o rząd wielkości. Jeśli handlujesz intraday i twój SL wynosi 12 pipsów na AUD/JPY, możesz zostać wycięty przez sam spread, nawet jeśli cena bid/ask nie wykona ruchu. Reguła:
- Brak otwartych pozycji intraday w oknie 22:55–23:10 CET, chyba że SL jest znacznie szerszy niż typowy skok spreadu na danej parze
- Strategie swing z SL strukturalnym (kilkadziesiąt+ pipsów) są zwykle odporne — strategie M5/M15 z ciasnym SL nie
- Środa wieczorem: dodatkowo potrójny swap (rolowanie za weekend, T+2 settlement) — koszt overnight × 3
| Filtr | Warunek liczbowy | Źródło danych | Ryzyko błędu |
|---|---|---|---|
| Reżim trendu | ADX(14) D1 ≥ 25 | MT4/MT5 wbudowany ADX | ADX rośnie z opóźnieniem — pierwsze świece trendu pomijane |
| Reżim zmienności | ATR(14) D1 w przedziale 0,7–1,5× śr. 90-dniowej | MT4/MT5 + własny skrypt | Stała 90 dni może nie pasować do zmieniającego się reżimu makro |
| Kalendarz makro | Brak eventu rangi 3 w ±2h | ForexFactory, Investing.com | Definicja „rangi 3" różni się między dostawcami |
| Korelacja portfelowa | |ρ| < 0,7 z otwartymi pozycjami | Kalkulator korelacji (oanda.com lub własny) | Korelacja zmienia się dynamicznie — w stresie rynkowym wszystko zmierza do +1 lub −1 |
| Time-of-day | Sesja LON 9:00–17:00 CET, NY 15:30–22:00 CET | Kalendarz strefy czasowej | Czas letni/zimowy — przesunięcia 1h 2× w roku |
Filtr korelacji portfelowej
Każda nowa pozycja sprawdzana pod kątem korelacji z istniejącymi:
- Korelacja > +0,7: redukcja sizingu o 50%
- Korelacja > +0,9: pomijasz setup (efektywnie ta sama pozycja)
- Korelacja < −0,7: hedge ekspozycji walutowej, traktuj jako neutralne
Filtr time-of-day
Pewne strategie mają edge tylko w określonych godzinach:
- LON open breakout: 8:00–9:30 UK (9:00–10:30 PL)
- NY open momentum: 9:30–11:00 NY (15:30–17:00 PL)
- Asian range: 21:00–06:00 GMT (22:00–07:00 PL zimą)
- Wykluczone: rollover (23:00–00:30 CET), przedweekend (od piątek 18:00 UTC)
7. Sanity check przed backtestem
Sanity check to 30–60 minut, które oszczędzają 20 godzin testowania strategii, która z założenia nie ma sensu. Lista 12 pytań — strategia musi przejść wszystkie.
Pytania koncepcyjne
- Czy mogę wytłumaczyć, dlaczego strategia ma działać, w 2 zdaniach bez żargonu? Jeśli wymaga 5 paragrafów albo terminów typu „smart money manipulation" — pierwsza czerwona flaga.
- Czy wynika z mikrostruktury rynku, behawioru uczestników, sezonowości — czy z dopasowania do historycznych danych? Strategie z pierwszej kategorii mają trwały edge. Z drugiej — rzadko.
- Czy istnieje znany mechanizm, który by ją zabił? Np. rozpowszechnienie wśród traderów algorytmicznych, zmiana mikrostruktury, regulacja.
- Czy działa po kosztach? Wstępna estymacja: średni zysk per trade musi być ≥ 3× kosztów (spread + slippage + commission). Jeśli średni ruch to 8 pipsów, a koszty to 3 pipsy — pozostaje 5 pipsów netto, niewystarczająco.
Pytania metodologiczne
- Czy każda reguła jest jednoznaczna? Bez słów „mocny", „wyraźny", „przekonywujący". Każde takie słowo to dziura w testowaniu.
- Czy mogę zakodować strategię w Pinescript albo MQL? Jeśli nie — reguły są niejednoznaczne lub niekompletne.
- Czy mam zdefiniowane wszystkie sytuacje? Wejście, wyjście profitowe, wyjście stratne, maksymalny czas trzymania, co robić jeśli broker odrzuci zlecenie.
- Czy strategia ma filtr reżimu rynkowego? Jeśli nie — generuje sygnały w każdym środowisku, traci edge w 50% przypadków.
Pytania ryzyka
- Czy mam zdefiniowany sizing? Konkretną formułę, nie „po uważaniu".
- Czy strategia ma maksymalne ryzyko per trade i per dzień?
- Czy filtr korelacji portfelowej jest częścią strategii?
- Czy strategia ma plan operacyjny na awarie? Sześć konkretnych pytań: (a) Czy SL jest na serwerze brokera, czy „w głowie"? (b) Czy mam numer dealing desku w pierwszej trójce kontaktów? (c) Czy aplikacja mobilna brokera jest zalogowana i sprawdzona w ciągu ostatnich 30 dni? (d) Czy mam drugie łącze (LTE/5G) z auto-failover? (e) Czy robię screenshot zlecenia po otwarciu (dowód do reklamacji u brokera)? (f) Jaka jest moja maksymalna strata awaryjna w przypadku padnięcia infrastruktury i ile pipsów mogę „pożegnać", zanim zadziała redundancja? Bez odpowiedzi na te 6 — strategia ma plan tylko na sytuację „wszystko działa".
Strategia, która nie przechodzi pytań 1–4 — nie poprawiaj SL-a i nie zmieniaj średniej z 50 na 48. Problem jest w pomyśle, nie w kosmetyce. Wraca do tablicy. Strategia, która nie przechodzi 5–8 — problem metodologiczny, doszlifuj reguły. Strategia, która nie przechodzi 9–12 — problem zarządzania ryzykiem, dodaj brakujące elementy.
Pytania o biasy — przed backtestem, nie po
Większość strategii rozsypuje się dopiero na live, bo backtest był zatruty. Sprawdź przed uruchomieniem testu:
- Look-ahead bias — czy żadna reguła nie używa danych, które w czasie t nie były znane? Klasyk: użycie zamknięcia bieżącej świecy (
Close[0]) zamiast poprzedniej (Close[1]) w MT4 do podjęcia decyzji w trakcie świecy. - Repaintujące wskaźniki — Zigzag, niektóre Ichimoku, większość „custom" indykatorów z MQL Market. Test: porównaj wartość wskaźnika na barze N na żywo z wartością tego samego baru po zamknięciu kolejnych 10 świec. Jeśli różne — wskaźnik kłamie historycznie.
- Parametry nieoptymalizowane na całej próbie — jeśli kalibrujesz SMA na danych z 2020–2025 i testujesz na tych samych danych, masz idealne dopasowanie do szumu. Podział: in-sample 60–70% historii do kalibracji, out-of-sample 30–40% do walidacji, OOS nigdy nie dotykany podczas optymalizacji.
- Wybieranie par po fakcie — testujesz strategię na 28 parach, wybierasz 4, na których działała najlepiej, raportujesz „strategia ma WR 67% na 4 parach". To jest kuratorstwo, nie test.
- Próba — minimum 30 trade'ów per setup do wstępnej diagnostyki, 100+ do decyzji produkcyjnej. Poniżej 30 nie testujesz, tylko obserwujesz.
- Survivorship bias — nie testuj strategii tylko na parach, które „przetrwały" (np. EUR/CHF po 2015 r. wygląda inaczej niż przed). Włącz okresy, w których para się rozsypała, jeśli twoja strategia ma na nich handlować.
8. Typowe pułapki przy budowaniu strategii
Poniższe pułapki powtarzają się w dziennikach traderów systematycznie — niezależnie od platformy, brokera i preferowanej szkoły. Każda z nich ma jeden wspólny mianownik: pominięcie etapu, który wydawał się zbędny w momencie pisania reguł.
Pułapka 1: Indykatorowy stack
Trader dodaje 5 indykatorów (RSI, MACD, Bollinger, ATR, Stochastic) i wymaga, żeby wszystkie potwierdziły sygnał. Wynik: strategia generuje 3 trade'y rocznie, które statystycznie nie odróżniają się od szczęścia. Lepsze: 1–2 kluczowe warunki strukturalne + 1 filtr potwierdzający.
Pułapka 2: Optymalizacja parametrów na backteście
Trader testuje SMA-20 vs SMA-21 vs SMA-22 vs SMA-23, znajduje że SMA-22 daje najlepsze wyniki na backteście, dodaje to do strategii. Forward test: SMA-22 nie działa. Powód: strategia była dopasowana do szumu historycznego, nie do rzeczywistego edge'u. Reguła: parametry wybrane na logice (SMA-50 bo to popularny poziom uwagi rynkowej), nie na optymalizacji.
Pułapka 3: Brak zdefiniowanych warunków rynkowych
Strategia działa „zawsze". Jeśli zdefiniujesz to bardzo prosto: „kiedy ADX ≥ 25" — automatycznie eliminujesz konsolidacje, w których trend-following nie działa. Detal pomija ten krok bo wydaje się skomplikowany — ale to jest pojedyncza zmiana, która często ratuje strategię.
Pułapka 4: Dziennik, który niczego nie diagnozuje
Trader prowadzi Excel przez 6 miesięcy: 340 trade'ów, kolumny data, para, long/short, wynik PLN, czasem komentarz typu „emocje" albo „dobry setup". Po kwartale przychodzi pytanie: dlaczego poniedziałkowe sesje są gorsze? Dlaczego SL jest za ciasny? Czy setupy A+ realnie biją B? Arkusz milczy — bo nie ma kolumny entry_hour, nie ma MAE_pips, nie ma setup_type. 6 miesięcy pisania bez możliwości statystycznej diagnozy. To nie był dziennik tradingowy, tylko księga żalu.
Minimalne kolumny dziennika operacyjnego (8, nie 4):
| Kolumna | Format | Co diagnozuje |
|---|---|---|
setup_type | string (A+ / B / C, nazwa setupu) | Który setup zarabia, który traci |
entry_hour | HH:MM CET | Które godziny dnia niszczą wyniki |
day_of_week | 1–5 (Pn–Pt) | Czy poniedziałki/piątki mają inny edge |
regime_ADX | liczba (ADX D1 w momencie wejścia) | Czy setup działa tylko w trendzie |
MAE_pips | liczba (max obsunięcie) | Czy SL jest za ciasny lub za luźny |
MFE_pips | liczba (max odchylenie korzystne) | Czy zostawiasz pieniądze na stole przy TP |
R_result | liczba (wynik w R, znormalizowany) | Expectancy, Profit Factor, SQN |
cost_R | liczba (spread + commission + swap w R) | Realny koszt vs reklama brokera |
Plus opcjonalnie: screenshot before/after, komentarz wykonawczy (max 1 zdanie), tag emocjonalny (zmęczony / FOMO / spokojny). Bez tych 8 kolumn dziennik to ozdoba, nie narzędzie diagnostyczne. Edgewonk, Tradervue i MyFxBook auto-importują z MT5 CSV i generują większość tych kolumn automatycznie — minimalna inwestycja czasowa, maksymalny zwrot diagnostyczny.
Pułapka 5: Kopiowanie strategii z YouTube'a
„SMC Trading Strategy" albo „ICT Concepts" działają u influencera, bo on (a) ma większy kapitał, więc absorbuje gorsze trade'y bez paniki, (b) wybiera ze swojego dziennika tylko zwycięskie do filmu, (c) ma 10 000 godzin praktyki, które wbudowały intuicję trudną do skopiowania. ICT/SMC ma dużą część przewagi ukrytą w interpretacji price action, której nie da się skopiować z listy reguł. Zanim zaczniesz handlować ICT/SMC, poświęć 3 miesiące na budowanie własnego dziennika obserwacji tych setupów — bez wejść, tylko etykietowanie. Statystyki po 200 obserwacjach na własnym brokerze i własnej parze powiedzą ci więcej niż 50 filmów. Pomysł z zewnątrz może być inspiracją; strategię budujesz własną, walidujesz własnym backtestem i forward testem.
Pułapka 6: Brak modelu kosztów
Strategia testowana na bid only z spreadem 0 wygląda świetnie. W realu z spreadem 0,8 pipsa + slippage 0,3 pipsa + komisja 0,5 pipsa per RT — expectancy spada o 0,15R. Strategia z expectancy +0,4R brutto staje się +0,25R netto — wciąż dobra. Strategia z +0,2R brutto staje się +0,05R netto — operacyjnie wątpliwa. Reguła: zawsze testuj z modelem kosztów wyższym niż reklamowany przez brokera.
Pułapka 7: „Strategia uniwersalna"
Próba zbudowania jednej strategii, która działa na wszystkich parach, wszystkich interwałach, w wszystkich reżimach. Niemożliwe — różne pary mają różną mikrostrukturę, różne interwały różną dynamikę, różne reżimy wymagają różnych podejść. Lepsze: 4–6 wyspecjalizowanych strategii, każda do konkretnego scenariusza.
Pułapka 8: Overfitting — 12 parametrów na 80 transakcjach
Optymalizujesz 12 parametrów wskaźnika na bazie 80 trade'ów backtestu. Tworzysz krzywą kapitału dopasowaną do przeszłości z chirurgiczną precyzją, która rozsypie się w 48 godzin na rynku OOS (Out-of-Sample). Zakaz: więcej parametrów strategii niż realnych źródeł przewagi. Jeśli twoje „edge" wymaga równoczesnej zgodności 12 zmiennych, testujesz zdolność dopasowania historii, nie istnienie edge'u. Reguła praktyczna: liczba optymalizowanych parametrów nie powinna przekraczać liczba_trade'ów / 30. Strategia z 4 parametrami potrzebuje minimum 120 trade'ów do walidacji, z 8 parametrami — 240+. Poniżej tego strategii nie testujesz, tylko ją rzeźbisz.
Pułapka 9: Repaintujące wskaźniki
Osobna kategoria overfittingu, która nie wynika z optymalizacji, tylko z architektury narzędzia. Wskaźniki repaintujące — Zigzag, niektóre Ichimoku, większość „custom" indykatorów z MQL Market — przerysowują historyczne wartości po zamknięciu kolejnych świec. Na backteście w MT5 wyglądają perfekcyjnie, bo widzisz wartości finalne, nie te z czasu rzeczywistego. Wielu traderów odkrywa repainting dopiero na demo — bo backtest pokazuje wartości po fakcie, nie te widoczne w czasie rzeczywistym. Test antyrepaint: zapisz wartość wskaźnika na barze N w czasie rzeczywistym, poczekaj 10 nowych świec, sprawdź wartość na tym samym barze N. Jeśli różne — wskaźnik kłamie historycznie i każdy backtest na nim jest fikcją.
Pułapka 10: Zła liczba setupów w portfelu strategii
3–6 setupów wystarczy dla większości traderów detalu, każdy pokrywający inny reżim rynkowy (trend-following, mean-reversion, breakout zmiany reżimu). Mniej niż 3 = brak dywersyfikacji systemowej, miesiące bez sygnału, ryzyko zniszczenia jedynej strategii przez zmianę reżimu. Więcej niż 6 = nie pamiętasz wszystkich w trakcie sesji, przepalasz uwagę na monitorowanie zamiast egzekucji. Optymalnie: 4 setupy A+, każdy generujący 2–8 transakcji miesięcznie, łącznie 20–30 transakcji w portfelu na miesiąc — ilość wystarczająca do statystyki kwartalnej, niewystarczająca do degradacji jakości decyzji.
Pułapka 11: Strategia, która „się zużyła", trzymana z sentymentu
Trzy obiektywne sygnały erozji edge'u: (1) spadek expectancy z kwartału na kwartał — z +0,5R do +0,3R do +0,1R przez 3 kolejne kwartały oznacza zanik edge'u, nie „pecha"; (2) wzrost najdłuższej serii strat poza historyczną normę — jeśli backtest dawał max 6, a live notuje 9–10; (3) zmiana mikrostruktury rynku — broker zmienił model egzekucji, weszła nowa klasa uczestników, zmienił się reżim makro. Reguła: po 2 kwartałach z malejącą expectancy weryfikujesz strategię w backteście na nowych danych. Jeśli tam też spada — strategia umiera, archiwizujesz ją z polem retired w arkuszu implementacyjnym i zaczynasz pracę nad nową.
9. Pełny przykład — strategia od pomysłu do reguł
Przejdziemy przez cykl 6-krokowy z konkretnym pomysłem.
Krok 1: Obserwacja → hipoteza
Obserwacja: „Po pierwszej godzinie sesji LON na EUR/USD często formuje się range, który następnie zostaje wybity i ruch kontynuuje się w kierunku wybicia przez 1–3 godziny."
Hipoteza: „Wybicie pierwszej godziny LON na EUR/USD ma kontynuację o min. 1,5R w 55%+ przypadków, gdy spełnione są warunki [...]."
Krok 2: Walidacja koncepcyjna
- Logika: tak — pierwsza godzina LON to konsolidacja po nocnej sesji azjatyckiej, wybicie odzwierciedla budowanie się ekspozycji instytucjonalnej
- Literatura: opisana w wielu źródłach, m.in. Day Trading the Currency Market (Lien, 2005)
- Mechanizm zabicia: gdyby strategia była zbyt popularna, rynek by się dostosował (fałszywe wybicia). Empirycznie: wciąż działa po 20 latach
- Po kosztach: średni ruch LON breakout to 25–40 pipsów, koszty per trade na EUR/USD to 1,5–2,5 pipsa = strategia ma sens
Krok 3: Definicja edge'u testowalna
„Setup wykonany w godzinach 9:00–10:30 PL na EUR/USD, gdy: - pre-LON range (godzina 8:00–9:00 PL) ma szerokość 12–35 pipsów, - ATR(14) D1 jest między 60–120 pipsów (rynek nie za cichy, nie za gorączkowy), - brak publikacji high impact w +/-2h, ma WR ≥ 50% i R:R netto ≥ 1:1,8 na próbie 100 instancji backtestu."
Krok 4: Reguły wejścia, wyjścia, sizingu
Warunek konieczny: ATR(14) D1 między 60–120 pipsów, kalendarz oczyszczony +/-2h, sesja LON aktywna (8:00–11:30 UK).
Trigger: Cena przebija pre-LON range (high/low godziny 8:00–9:00 PL) o min. 8 pipsów w trakcie godzin 9:00–10:30 PL, ze świecą zamknięcia M5 powyżej (long) lub poniżej (short) range.
Potwierdzenie: Tick volume świecy triggerującej > 1,2× średniej M5 z poprzednich 20 świec.
Wejście: Market order na zamknięciu świecy potwierdzającej.
SL: Drugi koniec pre-LON range +/− 5 pipsów bufora.
TP1 (50% pozycji): 1R od entry.
TP2 (50% pozycji): 2,5R od entry albo trailing po SMA-20 M15 — co osiągnięte pierwsze.
Maksymalny czas trzymania: 4 godziny lub do końca sesji LON (16:30 UK).
Sizing: 1% per trade jeśli setup A+ (wszystkie warunki spełnione), 0,5% jeśli B (1 warunek na granicy), pomijanie jeśli C.
Krok 5: Sanity check
Wszystkie 12 pytań przechodzi:
- ✓ Logika: konsolidacja po Azji + wybicie z budowania ekspozycji instytucjonalnej
- ✓ Z mikrostruktury, nie dopasowania historycznego
- ✓ Brak znanego mechanizmu zabijającego
- ✓ Po kosztach: 25 pipsów średni ruch − 2 pipsy kosztów = 23 pipsy netto
- ✓ Reguły jednoznaczne, kodowalne w MQL
- ✓ Wszystkie sytuacje zdefiniowane
- ✓ Filtr reżimu (ATR), filtr kalendarza, filtr time-of-day
- ✓ Sizing zdefiniowany
- ✓ Maks ryzyko per trade i per dzień (z planu tradingowego)
- ✓ Filtr korelacji (z planu)
- ✓ Plan na ekstremalne scenariusze (zarządzanie kryzysowe — art. 15.8)
Krok 6: Backtest, forward, demo
Dalej w artykule 15.4 — pełna metodologia walk-forward, Monte Carlo, OOS testing. Skrócona orientacja na liczbach z tej strategii: IS (in-sample) 2022–2024 expectancy +0,52R, OOS (2024 Q3 – 2025 Q2) +0,44R. OOS często wypada słabiej niż IS, bo IS to dane, na których kalibrowałeś parametry — różnica 0,08R to typowy „podatek od optymizmu". Jeśli OOS jest dużo lepszy niż IS, też nie świętuj za szybko: sprawdź, czy nie trafiłeś przypadkiem w wyjątkowo korzystny reżim rynku w oknie walidacyjnym. Spadek rzędu 15–30% IS → OOS bywa akceptowalny, jeśli profil drawdownu, liczba transakcji i koszty nadal mieszczą się w założeniach. Spadek powyżej 30% (np. IS +0,50R, OOS +0,30R) zwykle oznacza overfitting — wróć do reguł, usuń jeden parametr lub rozszerz dane historyczne, przetestuj ponownie.
Arkusz implementacyjny — jeden wiersz na setup
Do każdej strategii dołącz tabelę implementacyjną. Jeden wiersz = jeden setup w playbooku, gotowy do egzekucji bez interpretacji. To jest dokument operacyjny dla ciebie i dla potencjalnego asystenta:
| Pole | Wartość dla LON Breakout EUR/USD |
|---|---|
| Nazwa setupu | LON_Breakout_EURUSD_M5 |
| Para | EUR/USD |
| Interwał | M5 (entry), D1 (warunek konieczny — ATR) |
| Warunki wejścia | pre-LON range 12–35 pipsów, ATR D1 60–120 pipsów, brak high impact ±2h, tick volume > 1,2× śr. 20 |
| Warunki wyjścia | TP1 50% na 1R, TP2 50% na 2,5R lub trailing SMA-20 M15; max time 4h lub 16:30 UK |
| Typ zlecenia | Market order na zamknięciu świecy potwierdzającej |
| SL | Drugi koniec pre-LON range ± 5 pipsów bufora (server-side) |
| TP | 1R / 2,5R częściowy 50/50 |
| Sizing | 1% A+ / 0,5% B / pomijasz C |
| Koszt modelowy | 2 pipsy spread + 0,5 pipsa slippage = 2,5 pipsa, ~0,17R przy SL 15 pipsów |
| Godziny PL/CET | Zwykle 9:00–10:30 (Londyn jest standardowo 1h za Polską). Dwa razy w roku sprawdź tydzień zmiany czasu — UK i PL przechodzą zwykle w ten sam weekend, ale rozsynchronizacje się zdarzały. Nie koduj godzin „na pamięć" w EA |
| Filtr news | ForexFactory rangi 3 ±2h, USD i EUR |
| Filtr korelacji | brak otwartej pozycji o |ρ| > 0,7 z EUR/USD (tj. EUR/GBP, USD/CHF) |
| Status | draft / backtest / forward / live / retired |
| Expectancy backtest | +0,44R (n=156, dane 2022–2025, OOS 2024 Q3 – 2025 Q2) |
| SQN | 2,1 (próba 156, StdDev R = 1,28) |
| Profit Factor | 1,67 |
| Max DD | −12,4R (~12,4% kapitału przy 1% sizing) |
| Najdłuższa seria strat | 7 (na 156 trade'ów) |
To jest karta strategii, nie esej. Drukujesz, wieszasz nad biurkiem (lub trzymasz w jednym pliku Markdown w repo). Gdy reguła wymaga sprawdzenia — patrzysz w tabelę, nie w pamięć. Zawsze ten sam dokument, zawsze ta sama struktura per setup.
10. Checklista — czy strategia jest gotowa do backtestu
Interaktywna lista 20-punktowa. Odhaczasz w przeglądarce, licznik na dole sekcji aktualizuje się na bieżąco. Stan nie jest zapisywany na serwerze — działa lokalnie, można otworzyć obok edytora i odhaczać podczas pracy nad strategią. Wynik resetujesz odświeżeniem strony.
Jeśli pracujesz nad strategią przez kilka dni, otwórz artykuł, odhacz i zrób screenshot albo wydruk — ewentualnie skopiuj listę do Notion lub Google Sheets z polami boolean. Forma interaktywna jest narzędziem do jednorazowego przeglądu w przeglądarce, nie dziennikiem rozłożonym w czasie.
20/20 oznacza tylko, że strategia nadaje się do testowania. Backtest pokaże, czy reguły mają kontakt z danymi; forward i demo pokażą, czy mają kontakt z egzekucją, kosztami i twoim zachowaniem. 17–19 — uzupełnij brakujące, dopiero wtedy backtest. Poniżej 17 — wraca do tablicy, strategia nie jest gotowa nawet do testowania.
Źródła i bibliografia
- Chan E., Quantitative Trading: How to Build Your Own Algorithmic Trading Business, Wiley, 2009. Statystyki dotyczące przeżywalności pomysłów strategicznych w procesie systematycznego budowania.
- Pardo R., The Evaluation and Optimization of Trading Strategies, Wiley, 2008. Metodologia oceny strategii, walk-forward analysis i unikania over-optimization.
- Aronson D., Evidence-Based Technical Analysis, Wiley, 2007. Statystyczne podstawy walidacji strategii, ostrzeżenia przed selection bias i look-ahead bias.
- Lien K., Day Trading and Swing Trading the Currency Market, Wiley, 2005. Klasyczne podejścia do strategii intraday i swing na FX, w tym LON open breakout.
- Kaufman P.J., Trading Systems and Methods, Wiley, 2013. Encyklopedyczne kompendium systemów transakcyjnych i metodologii ich budowy.
- Lo A.W., MacKinlay A.C., A Non-Random Walk Down Wall Street, Princeton University Press, 1999. Akademickie podejście do testowania efektywności rynku i rozpoznawania prawdziwych anomalii.
- Bandy H.B., Quantitative Technical Analysis, 2015. Statystyczne metody walidacji strategii i identyfikacji over-fittingu.
- CME Group, Risk Management and Strategy Development for Futures Traders, 2024. Materiały edukacyjne dla profesjonalistów rynku futures, przenoszalne na FX.
- Tharp V.K., Trade Your Way to Financial Freedom, McGraw-Hill, 2nd ed. 2006. Definicja R-multiple, formuła SQN (System Quality Number) i metodyka oceny jakości systemu po expectancy, odchyleniu i wielkości próby.
- Tomasini E., Jaekle U., Trading Systems: A New Approach to System Development and Portfolio Optimisation, Harriman House, 2009. Metody walidacji systemów: walk-forward, out-of-sample, Monte Carlo i analiza wrażliwości na parametry.
- European Securities and Markets Authority (ESMA), Decision (EU) 2018/796 — restrictions on contracts for differences oraz okresowe komunikaty nadzorcze (esma.europa.eu). Wymóg disclosure'ów dla brokerów CFD w UE — procent stratnych rachunków detalicznych aktualizowany kwartalnie, publikowany na stronach głównych brokerów.
- Ministerstwo Finansów RP, Ustawa o podatku dochodowym od osób fizycznych, art. 30b oraz formularz PIT-38 (podatki.gov.pl). Stawka 19% od dochodu z kapitałów pieniężnych dla rezydentów polskich, możliwość rozliczania strat w okresie 5 kolejnych lat.