BTC250,0k zł0,63%
ETH7,33k zł0,19%
XRP4,32 zł0,19%
LTC180 zł1,22%
BCH832 zł2,14%
DOT3,17 zł1,65%

Automatyzacja i screening w analizie technicznej — narzędzia, workflow i pułapki

Forex to 28 kombinacji ośmiu głównych walut, dziesiątki interwałów i setki kombinacji wskaźników — a uwaga jest jedna: po dwudziestym wykresie próg akceptacji setupu spada razem z koncentracją. Screening automatyzuje pierwszą, mechaniczną fazę: filtruje rynek według jawnie zapisanych reguł i podsuwa instrumenty do analizy. Dwa problemy zaczynają się zaraz potem. Reguła, której nie potrafisz jednoznacznie zapisać, nie nadaje się do skanera. A od „pomocnego filtra" łatwo przejść do ślepego zaufania narzędziu, które nie rozumie kontekstu, nie widzi spreadu w rolloverze i nie wie, że za godzinę jest NFP.

Automatyzacja i screening w analizie technicznej — screener, alerty i workflow na rynku Forex
Najważniejsze w 60 sekund
  • Screener nie zarabia. Ogranicza liczbę nieistotnych wyników i oszczędza czas selekcji. Jeśli nie umiesz odsiać fałszywego układu po screeningu, tylko szybciej go znajdziesz. Decyzja o wejściu i zarządzanie ryzykiem pozostają po twojej stronie.
  • Wpatrywanie się w wykres bez planu zwykle zwiększa liczbę impulsywnych wejść, nie jakość decyzji. Długie wpatrywanie się w niskie interwały sprzyja wejściom z nudów; alert ogranicza czas przy ekranie i liczbę impulsywnych decyzji.
  • Backtest nie mówi, ile zarobisz. Mówi tylko, czy reguła zachowywała się zgodnie z założeniami na danych historycznych. To dużo, ale to nie to samo co przewaga na żywo — żywy rynek dokłada slippage, zmienny spread, requote'y i twoją psychologię, z których żadnego Strategy Tester nie modeluje dobrze.
  • Między ręcznym handlem a pełnym EA jest pięć poziomów automatyzacji. Dla większości detalistów praktyczny zakres to poziomy 2–4 (alert wskaźnikowy → screener → pół-auto). Pełna automatyzacja (EA, poziom 5) to osobna dyscyplina, bliższa inżynierii niż tradingowi dyskrecjonalnemu.

1. Po co automatyzować — i co właściwie automatyzujesz

Swing trader pracujący na Forex ma do dyspozycji 28 najczęściej śledzonych kombinacji między 8 głównymi walutami (USD, EUR, GBP, JPY, CHF, AUD, NZD, CAD) — czyli tzw. majors i crosses — plus kilkanaście par egzotycznych, a u wielu brokerów także indeksy, surowce i kryptowaluty. Ręczne otwieranie każdego wykresu na W1, D1 i H4, sprawdzanie średnich kroczących, oscylatorów i stref S/R to w sumie kilkadziesiąt minut pracy. Codziennie. Screening automatyzuje tę pierwszą, mechaniczną fazę[8].

Nie automatyzujesz decyzji o wejściu — automatyzujesz przeszukiwanie. Screener nie mówi „kupuj". Mówi „popatrz na to". Co z tym zrobisz — zależy od kontekstu, wyższego interwału, zarządzania ryzykiem i twojego doświadczenia.

Screening rozwiązuje dwa banalne problemy, o których nikt nie mówi głośno. Po 20. wykresie z rzędu przestajesz widzieć — spada koncentracja i łatwiej przeoczyć subtelne układy. Po trzech miesiącach handlu masz ulubione 4 pary i resztę rynku ignorujesz, nawet jeśli krzyżówki jenowe robią w tym czasie najczystsze trendy roku. Screener nie traci koncentracji po 15. wykresie i sprawdza wszystkie pary bez uprzedzeń.

Czego screening nie rozwiązuje: nie powie ci, czy setup jest dobry. Sygnał „RSI < 30" to nie to samo co „kup teraz". Bez analizy kontekstu, price action i zarządzania pozycją screener generuje szum, nie sygnały.

Automatyczny screening 28 par walutowych Forex — od ręcznego przeglądu wykresów do screenera filtrującego instrumenty po kryteriach technicznych
Automatyczny screening 28 par walutowych Forex — od ręcznego przeglądu wykresów do screenera filtrującego instrumenty po kryteriach technicznych

2. Spektrum automatyzacji: od alertu do algorytmu

Między „ręcznie" a „robotem" jest pięć stopni. Dla większości detalistów praktyczny zakres to stopnie 2–4. Najczęstszy błąd detalistów to próba wejścia od razu w pełną auto-egzekucję bez opanowania screeningu, alertów i ręcznej walidacji setupu.

PoziomCo robi maszynaCo robi traderPrzykłady
1. Alert cenowyPowiadamia, gdy cena osiągnie poziomAnalizuje, decyduje, wykonujeAlert na EUR/USD = 1,0700
2. Alert wskaźnikowyPowiadamia, gdy wskaźnik spełni warunekAnalizuje kontekst, decydujeRSI(14) < 30 na D1
3. ScreenerFiltruje listę instrumentów wg kryteriówPrzegląda wyniki, analizuje, decydujeTradingView Screener
4. Pół-auto systemGeneruje sygnał + sugerowane parametryZatwierdza lub odrzuca, zarządza pozycjąWłasny wskaźnik (custom indicator) + alert w Pine Script
5. Pełna automatyzacjaAnalizuje, otwiera, zarządza, zamykaMonitoruje, interweniuje w awaryjnych sytuacjachExpert Advisor (EA) w MT4/MT5

Poziomy 1–3 to narzędzia, z których korzysta większość traderów niezależnie od doświadczenia[9]. Poziom 4 wymaga umiejętności programowania lub konfiguracji gotowych narzędzi. Poziom 5 to osobna dyscyplina, bliższa inżynierii niż tradingowi dyskrecjonalnemu[4].

Spektrum automatyzacji tradingu — pięć poziomów od alertu cenowego do EA Pięć pionowych kolumn przedstawiających kolejne poziomy automatyzacji: alert cenowy, alert wskaźnikowy, screener, pół-automat i pełny EA. Każda kolumna zawiera opis co robi maszyna, co trader i typowy przykład narzędzia. Spektrum automatyzacji — pięć poziomów, gdzie siedzi detaliczny trader dla większości detalistów praktyczny zakres to poziomy 2–4; poziom 5 to osobna dyscyplina 1 Alert cenowy Maszyna: powiadamia przy osiągnięciu poziomu Trader: analizuje, decyduje, wykonuje zlecenie Przykład: EUR/USD = 1,0700 próg wejścia: zero 2 Alert wskaźnikowy Maszyna: monitoruje warunek wskaźnika Trader: analizuje kontekst, decyduje, wykonuje Przykład: RSI(14) < 30 na D1 próg wejścia: niski 3 Screener Maszyna: filtruje listę par wg wielu kryteriów Trader: przegląda wyniki, analizuje, decyduje Przykład: TradingView Screener próg wejścia: średni 4 Pół-automat Maszyna: generuje sygnał i sugeruje parametry Trader: zatwierdza, zarządza pozycją ręcznie Przykład: własny Pine Script próg wejścia: wysoki 5 Expert Advisor Maszyna: analizuje, otwiera, zarządza, zamyka Trader: monitoruje, interweniuje awaryjnie Przykład: EA w MT5 / cBot próg: inżynieria STREFA PRAKTYCZNA — poziomy 2–4 praktyczny zakres dla większości detalistów · skok od razu na poziom 5 to częsta droga do szybkiej straty
Pięć poziomów automatyzacji tradingu. Poziomy 1–3 są dostępne dla każdego bez programowania, poziom 4 wymaga Pine Script lub MQL, poziom 5 (Expert Advisor) to osobna dyscyplina — i miejsce, w którym giną konta początkujących, którzy chcą od razu „pasywny dochód". Strefa praktyczna dla większości detalistów to poziomy 2–4: alert wskaźnikowy, screener i pół-automat.

Artykuł koncentruje się na poziomach 1–4. Pełna automatyzacja (EA) pojawia się tu głównie w kontekście pułapek — bo to tam wpadają ludzie, którzy zbyt wcześnie sięgają po robota.

3. Kryteria screeningowe w praktyce

Zły screener nie pokazuje złych par — pokazuje za dużo pozornie dobrych. To gorsze, bo marnuje uwagę i buduje fałszywe poczucie, że „rynek coś ci dziś daje". Parametry screenera muszą być wystarczająco selektywne, by ograniczać szum, ale nie tak ciasne, by eliminować większość sensownych setupów. Poniżej najczęściej stosowane filtry na Forex[3].

Checklista obiektywizacji reguły

Zanim jakikolwiek warunek trafi do skanera, musi przejść z języka intuicji na język maszyny. Każdy element poniżej, którego nie ustalisz jawnie, skaner ustali za ciebie — zwykle inaczej, niż zakładasz:

ElementPytanie kontrolne
UniwersumKtóre instrumenty skanuję (lista zamknięta, nie „wszystko")?
Źródło danychCzyj feed i jakie ceny (bid, ask, mid)? Ten sam, na którym handluję?
Interwał i moment ocenyKtóre świece — tylko zamknięte? Kiedy dokładnie liczony jest warunek?
Wskaźnik z implementacjąJakie parametry i czyja implementacja (RSI Wildera ≠ RSI na SMA)?
Operator i prógPrzejście przez próg (crossover) czy stan poniżej/powyżej? Z jaką tolerancją?
Częstotliwość skanuRaz na zamkniętą świecę, raz dziennie o stałej godzinie, czy ciągle?
Braki danychCo robi reguła przy brakującej świecy, luce, zmianie symbolu?
DeduplikacjaIle alertów przy warunku spełnionym przez sześć świec z rzędu — sześć czy jeden?
Warunek resetuCo unieważnia sygnał i pozwala regule „odpalić" ponownie?

Jak mierzyć skuteczność screenera. Dobry screener nie jest tym, który wyrzuca więcej wyników — tylko tym, który poprawia jakość watchlisty: mniej false positives, wyższy win rate lub profit factor na próbce pochodzącej z setupów przepuszczonych przez filtr — przy zamrożonej wcześniej regule wejścia, wyjścia i kosztach, inaczej porównanie nic nie mierzy. Najprostszy sprawdzian: weź 100 alertów ze screenera z ostatnich tygodni, podziel na te, które przerodziły się w realny trade (handlowany lub pominięty po ręcznej walidacji), i policz, ile z nich miało domkniętą tezę (TP) vs ile pękło jako false breakout albo fałszywy sygnał. Jeśli screener nie podnosi tego współczynnika mierzalnie w stosunku do „brak filtra", pełni wyłącznie funkcję kosmetycznego zawężenia rynku — nie narzędzia z przewagą statystyczną. Sensowny cel: po screeningu jakość watchlisty wyraźnie lepsza niż bez niego, a nie tylko „mniej wykresów do obejrzenia".

Filtry trendowe

  • Cena względem EMA/SMA. Najprostszy filtr — na potrzeby reguły przyjmuje się: cena powyżej rosnącej EMA 200 na D1 = filtr kierunku wzrostowego, poniżej = spadkowego (to uproszczenie robocze, nie definicja trendu). Można dodać warunek nachylenia (EMA rośnie, nie jest płaska). Filtr gruby, ale skutecznie eliminuje kontrtrend — a kontrtrend na siłę potrafi prowadzić do serii dotkliwych strat szybciej niż brak setupu.
  • Crossing średnich. EMA 50 przecina EMA 200 od dołu (golden cross) — popularne kryterium screeningowe. Samo w sobie to nie jest sygnał wejścia, ale wskazuje na instrumenty, na których coś zaczyna się zmieniać w strukturze trendu.
  • ADX powyżej progu. Przykładowe progi utrwalonej konwencji: ADX(14) > 25 traktuje się jako rynek trendowy, < 20 jako konsolidację — pamiętając, że ADX mierzy siłę ruchu, nie jego kierunek. Przydatny głównie jako filtr negatywny: poniżej progu reguła trendowa odrzuca instrument zgodnie z przyjętym parametrem.

Filtry momentum i oscylatory

  • RSI w strefach ekstremalnych — z dużym zastrzeżeniem dla D1. RSI(14) poniżej 30 (wyprzedanie) lub powyżej 70 (wykupienie). Na parach majors na D1 bywa rzadsze niż na akcjach, choć częstość zależy od pary i okresu (na krzyżówkach jenowych w 2022 r. zdarzało się regularnie). Kiedy występuje, często towarzyszy mu czynnik fundamentalny: zmiana ścieżki stóp, ryzyko geopolityczne, interwencja. RSI < 30 na D1 to filtr do otwarcia wykresu i sprawdzenia, dlaczego rynek gwałtownie spada — nie sygnał kontrtrendu. Na H4/H1 ekstrema RSI są częstsze i mniej dramatyczne, ale tym samym mniej informacyjne.
  • Dywergencja cena–oscylator. Cena robi nowe szczyty, RSI nie potwierdza. Trudniejsze do zautomatyzowania niż proste progi, ale niektóre skrypty Pine Script na TradingView radzą sobie z wykrywaniem prostych dywergencji. Złożone, wielofalowe dywergencje — to dalej domena ludzkiego oka.
  • MACD-Histogram — zmiana znaku. Histogram przecina zero z dołu — w tej implementacji oznacza to zmianę relacji linii MACD do sygnałowej, nie dowód zmiany kierunku ceny. Prosty do zakodowania, często używany jako wstępny filtr do dalszej analizy.

Filtry cenowe i strukturalne

  • Bliskość do S/R. Cena w odległości X pipsów od kluczowego wsparcia lub oporu. Wymaga wcześniejszego zdefiniowania poziomów — co w pełni automatycznym screeningu jest trudne, ale w pół-automatycznym workflow (poziomy narysowane ręcznie + alert) — proste i bardzo skuteczne.
  • Przełamanie zakresu N-dniowego. Cena przebija najwyższe maksimum z ostatnich 20 świec (Donchian Channel breakout). Klasyczne kryterium trend-followingowe — Richard Donchian stosował je w latach 50. i mimo prostoty pozostaje popularne zarówno w testach[3], jak i w praktyce.
  • Fibonacci — cena przy zniesieniu. Cena zbliża się do zniesienia 61,8% ostatniego swingu. Trudność polega na jednoznacznym wyznaczeniu swingów (definicja fraktalna z opóźnionym potwierdzeniem → art. 5.11) — na czystych trendach działa, w konsolidacji rysuje poziomy na szumie. Skrypty TradingView pozwalają to zautomatyzować, ale traktuj wynik jako podpowiedź do ręcznej weryfikacji, nie gotowy setup.

Od intuicji do warunku — kompletna reguła i to, co ginie w przekładzie

Intuicja: „kupuj odbicia od wsparcia w trendzie wzrostowym na D1". Ta sama myśl zapisana tak, żeby skaner mógł ją wykonać:

uniwersum:  28 kombinacji glownych walut;  dane: jeden feed, ceny BID;  interwal: D1, swiece ZAMKNIETE
trend:      close[1] > EMA200[1]  ORAZ  EMA200[1] > EMA200[21]
wsparcie:   ostatni dolny fraktal (2 zamkniete swiece z kazdej strony; przy rownych minimach
            liczy sie wczesniejsza swieca), nie starszy niz 60 swiec;
            brak takiego fraktala = brak wsparcia = reguła nie generuje sygnalu
warunek:    low[1] <= wsparcie + 0,2 × ATR14[1]  ORAZ  close[1] > wsparcie
ocena:      raz dziennie, po zamknieciu D1;  duplikaty: max 1 alert na pare do ponownego uzbrojenia
uzbrojenie: ponowny alert mozliwy, gdy close[1] oddali sie od strefy o >= 1 × ATR14[1]
uniewazn.:  close[1] < wsparcie − 0,5 × ATR14[1]  → wsparcie przestaje istniec dla reguly

I jawny rachunek strat z przekładu: „odbicie" stało się dotknięciem strefy o arbitralnej tolerancji 0,2 × ATR; „wsparcie" — fraktalem potwierdzanym z opóźnieniem dwóch świec (moment potwierdzenia swingu → art. 5.11); jakość odbicia, kontekst W1 i wygląd świecy zostały poza regułą; osobno trzeba było rozdzielić ponowne uzbrojenie alertu (cena odeszła od strefy) od unieważnienia samego wsparcia — to dwie różne decyzje, które intuicja skleja w jedno. To nie wada zapisu, tylko cena jednoznaczności — wszystko, czego nie zapisałeś, dla skanera nie istnieje. Dokładnie dlatego wynik skanu jest listą kandydatów do analizy, a nie listą transakcji.

Filtry kontekstu makro i kosztów — czego żaden screener nie pokaże sam

Techniczny filtr na H1/H4 traci sens ekonomiczny, jeśli w ciągu 30–60 minut wypada tier-1 event (NFP, CPI, decyzja Fed/ECB) albo rollover. Poniższe filtry warto dołożyć osobno — najczęściej ręcznie lub w zewnętrznym arkuszu, bo wbudowane screenery ich nie obsługują natywnie:

  • Excluder kalendarzowy. Jeśli w ciągu 24 h (swing) lub 2 h (intraday) wypada tier-1 event — odrzucasz setup automatycznie, niezależnie od tego, co pokazuje screener. Na Forex Factory ustawiasz filtr „High impact" i traktujesz jako twardą regułę.
  • Filtr spreadu. Jeśli w ostatniej godzinie spread był szerszy niż 2× typowy dla danej pary i sesji — setup czeka. To nie jest moment na wejście; coś dzieje się po stronie płynności, czego wykres nie pokazuje.
  • Filtr zmienności (ATR). ATR(14) powyżej N-dniowej średniej + 20% = „rynek jest dziś gwałtowniejszy niż zwykle" → stop i target muszą być szersze, sizing mniejszy. Poniżej średniej + 20% = „cienki dzień" → ryzyko, że screener łapie szum, nie ruch strukturalny.

Screener nie pociąga za spust: analiza formacji cenowych, kontekst wielointerwałowy i zarządzanie ryzykiem pozostają po twojej stronie.

Level 2 / order flow w detalicznym FX — pozorna głębokość. Na OTC spot widzisz księgę zleceń swojego brokera, nie rynku. W momentach szoku wyświetlana głębokość potrafi zniknąć, zanim zlecenie market zdąży się wykonać (tzw. ghost liquidity — pozorna płynność), a cena wykonania wypada kilka–kilkanaście pipsów dalej; dla strategii breakoutowych na niskich interwałach to jeden z głównych powodów rozjazdu backtestu z rzeczywistością. Order flow z centralną księgą istnieje na futures (CME); mikrostrukturę rynku OTC rozkłada dział 3.
Reżimy rynkowe — screener nie jest uniwersalny

Screener skalibrowany pod trend (np. „cena > EMA 200 + ADX > 25") będzie generował dużo sygnałów w okresach trendowych, a w konsolidacji — prawie nic. Odwrotnie: screener range-tradingowy (np. „cena przy ekstremum Bollingera + RSI w ekstremum") świetnie pracuje w bocznym rynku, a w trendzie daje serię fałszywych sygnałów kontrariańskich. Narzędzie nie jest uniwersalne — jest reżimowo zależne. Praktyka: albo prowadź dwa zestawy filtrów (trend + range) i przełączaj je ręcznie w zależności od reżimu D1/W1, albo świadomie ogranicz screening do jednego reżimu i akceptuj, że „pusty tydzień" to normalna faza.

Hipoteza mikrostrukturalna — pułapka nad oczywistym szczytem. Ustawiasz prosty alert screenera na wybicie lokalnego szczytu na H4. Alert się aktywuje, wchodzisz długo — i cena zawraca tuż po wejściu. Popularna hipoteza z literatury price action wskazuje mechanikę (książki zleceń całego rynku spot nie widać, więc to interpretacja, nie pomiar): Zlecenia stop loss traderów shortowych oraz pending orders breakoutowców typowo kumulują się nad oczywistym szczytem, tworząc pulę płynności, z której większy uczestnik może korzystać do realizacji swoich zleceń bez nadmiernego przesuwania ceny. Screener, który filtruje po samym „czystym wybiciu" bez filtra kontekstu (ADX, makro, sesja) regularnie wpuszcza traderów w takie sytuacje. Praktyczna konsekwencja: filtruj wybicia przez ADX > 25 w kierunku wybicia i wchodź po potwierdzeniu następnej świecy, nie przy pierwszym dotknięciu poziomu.
Spektrum automatyzacji tradingu — od prostego alertu cenowego przez screener i wskaźnik po Expert Advisor i pełny algorytm handlowy
Spektrum automatyzacji tradingu — od prostego alertu cenowego przez screener i wskaźnik po Expert Advisor i pełny algorytm handlowy

4. TradingView — screener, alerty, Pine Script

Wbudowany screener

TradingView oferuje Screener dostępny z dolnego panelu platformy. Dla Forex pozwala filtrować po dziesiątkach kryteriów: cena, zmiana procentowa, oscylatory, średnie kroczące, wolumen. Jedno ostrzeżenie dotyczące wolumenu: jeśli screener filtruje po „wolumenie" na Forex, operuje na danych zastępczych z jednego źródła (zwykle tick volume z konkretnego feedu brokera, nie wolumen całego rynku spot FX). Traktuj ten filtr jako pomocniczy, nie decyzyjny — setup „z podwyższonym wolumenem" na TradingView i faktyczna aktywność rynku to często dwie różne historie, a filtr wolumenowy w screeningu FX jest z tego powodu niereprodukowalny między brokerami — dwa feedy dadzą różne listy wyników przy identycznym warunku. Wyniki aktualizują się w czasie zbliżonym do rzeczywistego.

Praktyczny zestaw filtrów na start: interwał D1, RSI(14) poniżej 35 lub powyżej 65, cena powyżej/poniżej EMA 200, zmiana procentowa z ostatnich 5 sesji > 1%. Tak skonfigurowany screener zwykle wyrzuca kilka par dziennie — konkretna liczba zależy od warunków rynkowych: w trendującym rynku filtr przepuści więcej wyników, w konsolidacji mniej.

Alerty w TradingView

TradingView pozwala ustawiać alerty na: cenę (prosta), wskaźnik (RSI przekracza próg), narysowaną linię trendu (cena dotyka) oraz własny warunek zdefiniowany w Pine Script. Alerty przychodzą jako push na telefon, e-mailem lub przez webhook — co otwiera drogę do integracji z botami, Discordem czy Telegramem. Alerty potrafią uratować psychikę (nie siedzisz przed ekranem przez 8 godzin czekając na ruch), ale pamiętaj: sygnał zawsze przychodzi po fakcie. W momencie, gdy dostajesz pusha na telefon, świeca już się wydarzyła, a algorytmy instytucjonalne (ale też hobbystyczne boty z webhooków na całym świecie) zdążyły zareagować. Używaj alertów jako dzwonka do analizy, nie jako wyzwalacza egzekucji.

Limity alertów zależą od planu i zmieniają się — wartości orientacyjne (aktualny cennik na tradingview.com/pricing): Essential pozwala na 20 alertów cenowych + 20 technicznych, Plus po 100, Premium 400, Ultimate 1000. Darmowe konto ma kilka jednocześnie — dla tradera monitorującego 10–15 par to realne ograniczenie i częsty powód przejścia na płatny plan.

Pine Script — własne wskaźniki i strategie

Pine Script to język skryptowy TradingView. Nie wymaga doświadczenia programistycznego na poziomie Pythona — składnia jest prostsza, dokumentacja dobra, a społeczność opublikowała tysiące gotowych skryptów, które można adaptować. Co możesz z nim zrobić:

  • Własny wskaźnik (custom indicator) — np. wskaźnik, który rysuje strzałkę, gdy RSI < 30 AND cena jest w strefie 50–61,8% zniesienia Fibonacci AND EMA 50 > EMA 200. Trzy warunki, które ręcznie sprawdzałbyś kilka minut na wykresie — skrypt robi to natychmiast.
  • Alert na bazie własnego wskaźnika — skrypt generuje alert automatycznie, gdy warunki się zbiegną. Dostajesz powiadomienie na telefon i otwierasz wykres gotowy do analizy.
  • Backtest strategii — Pine Script ma wbudowany moduł strategy(), który pozwala przetestować logikę na danych historycznych. Wyniki widoczne w zakładce „Strategy Tester": krzywa kapitału (equity curve), drawdown, procent trafień (win rate), współczynnik zysku (profit factor).

Ważne rozróżnienie dotyczące Pine Script i egzekucji zleceń: Pine Script jest genialny do malowania po wykresie i alertów, ale wysyłanie przez niego sygnałów po webhookach do środowiska brokera detalicznego to proszenie się o poślizg. Pine Script służy przede wszystkim do analizy, sygnałów i backtestów w ekosystemie TradingView — nie jest silnikiem wykonawczym po stronie brokera. Wykonanie zleceń wymaga osobnej warstwy: albo natywnej integracji brokerskiej (TradingView ma takie integracje z częścią brokerów), albo zewnętrznego workflow opartego na webhookach, które wysyłają sygnał do API brokera lub pośrednika typu 3Commas. Każdy element łańcucha (TradingView → webhook → pośrednik → API brokera) może wprowadzić opóźnienie, duplikat sygnału albo brak egzekucji. Do screeningu i alertów — Pine Script wystarcza bez integracji. Do automatycznej egzekucji — lepsza ścieżka to MT4/MT5 z EA albo Python z bezpośrednim API brokera.

Przykładowy minimalny alert w Pine Script — RSI w wyprzedaniu pod EMA 200 na D1, 10 linii kodu:

//@version=6
indicator("Alert: RSI<30 + cena<EMA200", overlay=true)
// uruchamiaj na wykresie D1 — skrypt liczy na interwale wykresu i sam go nie wymusza
rsi_val = ta.rsi(close, 14)
ema200  = ta.ema(close, 200)

oversold_x     = ta.crossunder(rsi_val, 30)   // ZDARZENIE przeciecia w dol, nie stan
below_ema200   = close < ema200
setup_signal   = barstate.isconfirmed and oversold_x and below_ema200  // tylko zamknieta swieca

plot(ema200, color=color.blue, linewidth=2)
alertcondition(setup_signal, title="RSI_oversold_below_EMA200",
               message="{{ticker}} ({{interval}}) — RSI < 30 pod EMA 200")

Zwróć uwagę: warunkiem jest przecięcie progu (ta.crossunder), nie stan „RSI poniżej 30" — inaczej alert wychodziłby po każdej kolejnej świecy spędzonej w strefie, wbrew zasadzie deduplikacji z sekcji 8. Wklejasz w Pine Editor, dodajesz do wykresu D1, tworzysz alert z tym warunkiem i opcją „Once Per Bar Close". W nowszych skryptach zamiast alertcondition() używa się też dynamicznej funkcji alert() — alertcondition pozostaje wspierane. Webhook (opcjonalnie) wyśle treść komunikatu na twój serwer — jeśli potrzebujesz formatu JSON, budujesz go jawnie w polu message.

Moment dostępności sygnału — krótka oś czasu. Wartość warunku liczona w trakcie świecy jest tymczasowa (intrabar); wiążąca staje się na zamknięciu; alert przy „Once Per Bar Close" wychodzi po zamknięciu; a najwcześniejsza realna cena reakcji to następny tick lub otwarcie kolejnej świecy. Backtest, który „kupuje po cenie zamknięcia tworzącej sygnał", podgląda przyszłość. Pełna oś czasu niedomkniętej świecy i reguła D1[1] vs D1[0] → art. 5.11.

Przypadek ilustracyjny — łańcuch webhooków. Ustawiasz alert w TradingView, webhook leci do pośrednika, pośrednik pcha zlecenie do API brokera. Na wykresie wszystko wygląda natychmiastowo. W realu alert przyszedł z opóźnieniem 3 sekund, rynek ruszył po publikacji CPI, a wejście poszło 12 pipsów wyżej, niż zakładał model. Błąd nie leżał w strategii, lecz w założeniu, że „automatyczne" znaczy „natychmiastowe". Im krótszy interwał, tym bardziej łańcuch technologiczny staje się częścią ryzyka transakcji. Na D1 3 sekundy opóźnienia nie mają znaczenia; na M5 wokół newsów potrafią zjeść całe R:R.
TradingView — screener Forex z filtrami RSI i EMA oraz panel alertów na wykresie cenowym
TradingView — screener Forex z filtrami RSI i EMA oraz panel alertów na wykresie cenowym

5. MT4/MT5 — skanery, wskaźniki, EA

MetaTrader pozostaje dominującą platformą egzekucji u wielu brokerów Forex. Jego siła w kontekście automatyzacji to język MQL4/MQL5 i możliwość tworzenia Expert Advisors (EA) — programów, które mogą automatycznie otwierać i zamykać pozycje.

Custom indicators i skanery

W MQL4/MQL5 możesz napisać (lub pobrać z MQL5 Market) wskaźnik, który skanuje wiele instrumentów z Market Watch i wyświetla dashboard: nazwa pary, kierunek trendu, wartość RSI, odległość od kluczowych MA. Popularne narzędzia tego typu to np. „Multi-Currency Dashboard" czy „Scanner RSI" — ich jakość jest bardzo różna, więc warto sprawdzić recenzje i przetestować na demo zanim zaczniesz na nich polegać.

Istotna różnica w stosunku do TradingView: wskaźniki MT4/MT5 działają lokalnie (na twoim komputerze lub VPS), nie w chmurze. Skanowanie odbywa się z prędkością twojego połączenia z serwerem brokera — i wymaga, żeby platforma była otwarta. Jeśli zamkniesz laptopa i pójdziesz na spacer, alerty MT4 nie zadziałają (chyba że platforma pracuje na VPS-ie). TradingView skanuje po stronie serwera, więc alerty działają nawet gdy masz wyłączony komputer. Dla swing tradera, który nie chce być przywiązany do biurka, to konkretna różnica w codziennym użytkowaniu.

Expert Advisors — pełna automatyzacja

EA to programy, które mogą samodzielnie handlować. Zakres możliwości jest ogromny — od prostego „kup, gdy EMA 50 przetnie EMA 200 od dołu" po skomplikowane systemy z dynamicznym zarządzaniem pozycją, trailing stopami i analizą wielu interwałów.

Rynek gotowych EA (MQL5 Market, fora tradingowe) jest zaśmiecony produktami niskiej jakości — z pięknym backtestem i katastrofalnymi wynikami na żywo. Więcej o tym w sekcji o pułapkach — ale krótko: jeśli widzisz equity curve rosnącą pod 45° bez żadnego drawdownu, traktuj to jako sygnał ostrzegawczy, nie zachętę do zakupu.

Egzekucja i infrastruktura — co zależy od brokera. Opóźnienie łańcucha (platforma → serwer brokera) na D1 nie ma praktycznego znaczenia, ale na M1–M5 wokół publikacji potrafi współdecydować o cenie wykonania — dlatego lokalizację VPS dobiera się do serwera brokera. Jakość wykonania zależy też od modelu egzekucji i polityki konkretnego dostawcy (fill policy, symetria poślizgu); binarne „B-Book zły, A-Book dobry" jest zbyt uproszczone. Kryteria oceny rozkładają artykuły o jakości egzekucji i infrastrukturze egzekucji w dziale 12.

MT5 vs MT4

MT5 oferuje lepsze możliwości backtestingu — przede wszystkim Strategy Tester obsługujący wiele symboli jednocześnie (multi-currency), co jest realną przewagą przy testowaniu strategii portfelowych. MT4 testuje strategię na jednym symbolu i jednym okresie naraz. MT5 ma też bogatszy język MQL5 (klasy, wskaźniki na bazie wielu symboli). Mimo to MT4 wciąż ma ogromną bazę użytkowników i gotowych narzędzi. Wybór zależy głównie od brokera — nie od preferencji tradera, bo wielu brokerów oferuje tylko jedną z tych platform.

TradingView screener i Pine Script — interfejs skanera walutowego z filtrami technicznymi i przykładowy kod alertu w Pine Script
TradingView screener i Pine Script — interfejs skanera walutowego z filtrami technicznymi i przykładowy kod alertu w Pine Script

6. Workflow: od skanu do watchlisty

Screening ma sens tylko wtedy, gdy jest częścią powtarzalnego procesu. Poniższy workflow sprawdza się u wielu swing traderów na Forex — a w miarę zdobywania doświadczenia modyfikujesz jego parametry pod własny styl.

  1. Weekend: przegląd W1. Raz w tygodniu otwierasz 28 kombinacji głównych walut na interwale tygodniowym. Ręcznie — nie ma tu czego automatyzować, bo szukasz kontekstu strukturalnego, nie sygnałów. Zaznaczasz kierunek trendu i kluczowe strefy wsparcia i oporu (S/R). To zajmuje może 30–40 minut, ale daje obraz całego rynku, którego nie zastąpi żaden screener.
  2. Poniedziałek rano: screener D1. Odpalasz screener z kryteriami dopasowanymi do swojego stylu (np. RSI < 35, cena przy EMA 200, ADX > 25). Dostajesz kilka par. Każdą otwierasz na D1 i sprawdzasz ręcznie: czy pasuje do kontekstu z tygodniówki? Czy jest blisko poziomu z wyższego interwału?
  3. Tworzenie watchlisty — z kontrolą korelacji i filtrem makro. Pary, które przeszły oba filtry, lądują na watchliście (idealne 2–5 par). Przed dodaniem kolejnej pary sprawdź korelację z tym, co już masz: długie pozycje na EUR/USD i GBP/USD + krótka na USD/CHF to nie trzy setupy, to jedna ekspozycja short USD z potrójną koncentracją ryzyka. W praktyce wiele „różnych" setupów FX to po prostu różne ekspresje tego samego risk-on/risk-off albo long/short USD — MyFxBook Correlation albo rzut oka na DXY pokazują to w 30 sekund. Dla swingów D1/W1 warto dołożyć filtr makro drugiego rzędu — pozycjonowanie COT, kierunek DXY i spread rentowności US10Y vs zagraniczne odpowiedniki. To nie jest trigger wejścia, tylko warstwa kontekstu: setup techniczny w kierunku zgodnym z makro ma inną wagę niż ten sam setup pod prąd dominujących przepływów. Nigdy nie używaj COT jako samodzielnego powodu wejścia — raport jest opóźniony o kilka dni i nadaje się do filtrowania hipotez, nie do timingu. Osobny krok: zanim ustawisz alert, policz orientacyjny rozmiar pozycji (kalkulator w dziale Narzędzia) na podstawie odległości do potencjalnego SL.
  4. Alerty i oczekiwanie. Na parach z watchlisty ustawiasz alerty: cenowe (cena dotrze do strefy), wskaźnikowe (RSI wejdzie w ekstremalną strefę), lub na narysowanych obiektach (dotknięcie linii trendu). Nie siedzisz i nie gapisz się w wykres — czekasz na powiadomienie.
  5. Alert → analiza → decyzja. Alert się aktywuje. Otwierasz wykres, robisz analizę wielointerwałową (D1 → H4), szukasz potwierdzenia price action. Jeśli setup jest — wchodzisz. Jeśli nie — zostawiasz i czekasz dalej. Brak setupu to nie problem — to informacja.

Trading to nie praca na taśmie — nie da się tego opisać w kategoriach „X minut dziennie". W jednym tygodniu spędzisz przed wykresem 15 minut, bo rynek zamarł; w innym zarwiesz noc, bo Bank Japonii wszedł z interwencją i wszystkie screenerowe setupy z D1 nadają się do kosza. Rutyna workflow pozwala zachować rygor, nie oszczędza czasu sama z siebie. Screening eliminuje problem „zmęczenia uwagi" po 20. wykresie: zamiast przeglądać wszystko od A do Z, patrzysz tylko na to, co przeszło filtr.

Workflow screeningu — od weekendu do decyzji w 5 krokach Pięć poziomych paneli ułożonych jeden pod drugim pokazujących pełny proces: weekendowy przegląd W1, poniedziałkowy screener D1, budowa watchlisty z kontrolą korelacji, ustawianie alertów, reakcja na alert z decyzją wejście/brak wejścia. Workflow od weekendu do wejścia — pięć kroków, w których screening ma sens 1 Weekend — ręczny przegląd W1 1× tygodniowo · 30–40 min · 28 par • kierunek tygodniowy (trend / konsolidacja) • kluczowe strefy S/R z W1 rysowane ręcznie · notatka „EUR/USD wzrost, wsparcie 1,0650–1,0700" 2 Poniedziałek rano — screener D1 1–2 razy w tygodniu · 10–15 min · automat filtruje rynek • filtry: EMA 200 (kierunek), RSI 14 (momentum), ADX > 25 (siła) • 28 par → screener zostawia zwykle 3–6 kandydatów do ręcznej walidacji 3 Watchlista — walidacja + kontrola korelacji 5–10 min · 2–5 par na watchliście • otwórz D1/W1 każdej pary, sprawdź zgodność z kontekstem tygodniowym • MyFxBook Correlation / DXY — czy nie dodajesz ekspozycji już otwartym tradem 4 Alerty — praca pasywna brak interakcji z wykresem · push na telefon • cenowy (strefa S/R z W1) + wskaźnikowy (RSI w ekstremum) • nie śledzisz rynku · robisz coś innego · limity alertów zależne od planu 5 Alert → analiza → decyzja: wejście albo BRAK WEJŚCIA analiza MTF (D1 → H4) · potwierdzenie price action · checklista: spread, kalendarz, sizing · brak setupu ≠ problem
Pięciokrokowy workflow screeningu dla swing tradera. Trzy pierwsze kroki przygotowują kontekst (W1) i zawężają pole obserwacji (D1 screener + ręczna walidacja + kontrola korelacji). Czwarty to czyste oczekiwanie — nie siedzisz przed ekranem, tylko czekasz na alert. Piąty to pojedyncza decyzja: wejście albo brak wejścia, obie wartościowe. Pominięcie któregokolwiek kroku (szczególnie weekendowego W1 albo kontroli korelacji) prowadzi do trade'ów, które „technicznie pasują", ale strukturalnie są po złej stronie rynku.
Schemat workflow screeningu: Weekend W1, Poniedziałek D1, Watchlista, Alerty, Analiza i decyzja o wejściu w pozycję
Schemat workflow screeningu: Weekend W1, Poniedziałek D1, Watchlista, Alerty, Analiza i decyzja o wejściu w pozycję
Watchlista vs. obsesja

Watchlista z 15 par to nie watchlista — to nadal cały rynek, tylko z ładniejszą nazwą i większą iluzją kontroli. Ogranicz się do 3–5 par jednocześnie. Pusty screener w środę to nie awaria narzędzia — to rynek mówiący „nie dziś". Bywa, że sensowne setupy koncentrują się w kilku miesiącach roku, a reszta to oczekiwanie — i taki kalendarz też jest poprawnym wynikiem procesu.

7. Poniedziałek rano — jak wygląda screening 28 par

Żeby workflow z poprzedniej sekcji nie był abstrakcją — przykład ilustracyjny konkretnego poniedziałkowego poranka (wartości przykładowe; wszystkie odczyty ze świec zamkniętych — przez weekend żadna nowa świeca D1 nie powstała).

8:15. W screenerze TradingView filtry na D1 (dane z piątkowego zamknięcia sesji): RSI(14) < 35, cena poniżej EMA 200, ADX(14) > 20. Cel: pary w wyprzedaniu w ramach trendu spadkowego.

Screener wyrzuca 4 pary. Otwieram każdą na D1:

  • AUD/USD — RSI 28, cena pod EMA 200, ale na W1 tuż nad silną strefą wsparcia z 2023. Idzie na watchlistę, alert cenowy na dolną granicę strefy.
  • NZD/USD — podobna sytuacja, ale na W1 brak wyraźnej strefy blisko. Cena w „powietrzu". Odrzucam.
  • EUR/GBP — na moim wykresie RSI 33, ale ADX 18, poniżej progu. Skaner pokazał 21, bo liczył wskaźnik na danych innego feedu niż mój broker — drobne różnice OHLC między dostawcami potrafią przesunąć ADX o kilka punktów. Rynek graniczny między konsolidacją a trendem. Odrzucam i notuję rozjazd feedów.
  • GBP/CHF — RSI 31, cena pod EMA 200, ADX 27. Na W1 zniesienie 61,8% Fibonacci 40 pipsów od ceny. Idzie na watchlistę. Dwa alerty: cenowy na 61,8% i wskaźnikowy na RSI < 25.

Z 28 par screener odfiltrował 4, ręczna weryfikacja pozostawiła 2 na watchliście. 12 minut. Warto zauważyć: screener przepuścił EUR/GBP, bo liczył wskaźnik na innym feedzie niż mój wykres — rozjazd danych między dostawcami to jeden z powodów, dla których ręczna weryfikacja po screeningu nie jest opcjonalna, tylko jest częścią procesu.

Przypadek — cztery alerty, jedna ekspozycja. Screener wyrzuca AUD/USD, NZD/USD, EUR/USD i GBP/USD — wszystkie w wyprzedaniu na D1. Trader traktuje to jako cztery niezależne okazje i otwiera cztery longi po 1R. W środę CPI z USA zaskakuje wyżej, dolar się umacnia i wszystkie pozycje tracą jednocześnie. Rachunek jest prosty: cztery pełne stopy to strata bliska sumie nominalnych ryzyk — około 4R plus koszty. Korelacja nie pomniejsza zrealizowanej sumy strat; zwiększa prawdopodobieństwo, że stopy zostaną trafione razem. Efektywnie nie było czterech setupów, tylko jedna pozycja short USD rozpisana na cztery instrumenty. Zasady liczenia i limitowania łącznej ekspozycji → dział 9.

8. Alerty — jak nie przegapić bez śledzenia

Wpatrywanie się w wykres bez planu zwykle kończy się nadtradingiem, nie lepszą analizą[7]. Alert ogranicza ekspozycję na ekran, a to bywa skuteczniejszym sposobem na redukcję impulsywnych wejść niż kolejny filtr techniczny. Definiujesz warunki, na które czekasz, i idziesz robić coś innego.

Market vs limit order — krótka zasada

Zanim zaczniesz myśleć o alertach i egzekucji, dobrze mieć w głowie jeden trade-off: market order płaci za pewność wykonania, limit order płaci za ryzyko niewypełnienia. Jeśli cena ruszy szybciej, niż zdążysz wejść limitem, zlecenie nie wykona się wcale — i przegapiasz ruch. Jeśli składasz zlecenie rynkowe w cienkim rynku albo wokół publikacji, płacisz za to poślizgiem i rozszerzonym spreadem. Na D1/H4 ze spokojną sesją limit zwykle wygrywa (lepsza średnia cena wejścia); na newsach i breakoutach pewność wykonania bywa ważniejsza niż drobna poprawa ceny — z zastrzeżeniem, że dokładnie wtedy slippage bywa najwyższy. Świadoma decyzja o typie zlecenia to część setupu, nie techniczna kosmetyka.

Rodzaje alertów

  • Cenowy. „Powiadom mnie, gdy EUR/USD dotrze do 1,0700". Ustawiasz na poziomach S/R, zniesieniach Fibonacci, strefach zainteresowania. Zero kodowania.
  • Wskaźnikowy. „RSI(14) < 30 na D1" lub „MACD-Histogram zmienił znak". W TradingView: klik na wskaźnik → Create Alert. W MT4/MT5: przez własny wskaźnik z funkcją alertu (uwaga — alert MT4 wymaga otwartej platformy lub VPS-a, bo działa lokalnie).
  • Na obiekcie graficznym. TradingView pozwala ustawiać alerty na narysowanych liniach trendu i strefach — cena dotknęła twojej linii z tygodniówki, dostajesz push na telefon. Łączy ręcznie narysowaną analizę z automatycznym powiadomieniem.
  • Złożony warunek. Wielowarunkowy alert: „cena poniżej EMA 200 AND RSI < 35 AND ADX > 25". Wymaga Pine Script lub MQL, ale ustawia się raz.

Jak łączyć alerty w praktyce

Strefowe + wskaźnikowe. W weekend rysujesz strefy na W1/D1, ustawiasz na nich alerty cenowe. Równolegle ustawiasz alerty wskaźnikowe (RSI < 30) na parach z watchlisty. Gdy oba się aktywują w zbliżonym czasie — masz bardziej selektywny warunek, choć niekoniecznie niezależne potwierdzenie: oba kryteria liczą się z tej samej ceny. Podejście strefowe dobrze współgra z analizą wsparcia i oporu, wskaźnikowe — ze strategiami opartymi na oscylatorach.

Jedno ostrzeżenie: przebodźcowanie (alarm fatigue) jest realne. Jeśli ustawisz 30 alertów na wszystko, co się rusza, po kilku dniach wyciszysz telefon, przegapiając jedyny sensowny setup w tygodniu — a to gorsze niż brak alertów, bo daje fałszywe poczucie, że „monitorujesz rynek". Ogranicz alerty do par z aktualnej watchlisty (3–5 par) i usuwaj te, które straciły aktualność.

Deduplikacja: jeden warunek, jeden alert. Warunek „RSI < 30" spełniony przez sześć kolejnych świec to sześć alertów — chyba że jawnie zdecydujesz inaczej. Rozróżnij zdarzenie przejścia (crossover: RSI przecina 30 w dół) od stanu (RSI jest poniżej 30). Do alertów zwykle chcesz przejścia, z oceną raz na zamkniętą świecę („Once Per Bar Close") i ponownym uzbrojeniem dopiero po powrocie powyżej progu. Bez tej decyzji automat spamuje — a przebodźcowanie kończy się ignorowaniem wszystkiego.

Czas serwera a wyniki skanu D1. Screener na D1 u brokera z serwerem GMT+2/+3 i u brokera GMT+0 liczy wskaźniki na inaczej pociętych świecach — ta sama reguła zwróci tego samego ranka różne listy par. Skanuj na tym samym feedzie, na którym handlujesz; mechanika granic świec i czasu serwera → art. 5.11 i art. 4.1.

Rollover a alerty z D1. Alert z zamknięcia świecy D1 aktywuje się o północy czasu serwera — u brokera z serwerem GMT+2/+3 to ok. 23:00 czasu polskiego (w tygodniach rozjazdu DST 22:00), czyli dokładnie w oknie rolloveru: banki zmieniają dobę rozliczeniową, płynność opada, a spready u części brokerów wyraźnie się rozszerzają, szczególnie na parach z JPY i egzotykach. Zasada praktyczna: alerty z D1 przerabiaj poza tym oknem — rano w sesji europejskiej albo po południu w nakładce Londyn–Nowy Jork — zamiast reagować „natychmiast po zamknięciu świecy". Setup wymagający egzekucji w rolloverze to setup o zawyżonych kosztach z definicji (okna podwyższonego ryzyka → art. 4.6).
Spread rośnie dokładnie wtedy, gdy alert odpala się wokół newsa. Filtr techniczny na H1/H4 traci sens ekonomiczny, jeśli w ciągu 30–60 minut wypada NFP, CPI albo decyzja Fed/EBC (godziny publikacji w polskim czasie → art. 4.5). Spread na EUR/USD potrafi w oknie kilkudziesięciu sekund wokół publikacji rozszerzyć się wielokrotnie względem typowego poziomu. Alert wskaźnikowy ustawiony na to okno realizuje się po najgorszej możliwej cenie po rozszerzeniu. Połącz screening z kalendarzem makro: alerty w oknie ±15 min wokół tier-1 eventu traktuj jako informację „nie handluj teraz", nie „reaguj natychmiast".
Skorelowane alerty = jeden sygnał. Cztery poranne alerty na koszyku USD (AUD/USD, NZD/USD, EUR/USD, GBP/USD w wyprzedaniu) to zwykle jedna okazja makro pokazana z czterech perspektyw, a nie niezależna zbieżność (confluence). Rzut oka na DXY i macierz poniżej wystarczy, żeby to wychwycić; zasady łączenia i redukcji skorelowanych pozycji → dział 9.
Macierz korelacji głównych par FX — typowe wartości roczne Heatmapa 6x6 z wartościami korelacji między EUR/USD, GBP/USD, AUD/USD, USD/JPY, USD/CHF i indeksem DXY. Kolory od ciemnozielonego (silna dodatnia) przez żółty (słaba) do ciemnoczerwonego (silna ujemna). Macierz korelacji głównych par — typowe wartości roczne korelacja 12-miesięczna, orientacyjna; w krótkich oknach i przy reżimach makro może się wyraźnie odchylać korelacja z ↓ EUR/USD long GBP/USD long AUD/USD long USD/JPY long USD/CHF long DXY long EUR/USD long +1,00 +0,80 +0,65 −0,30 −0,90 −0,95 GBP/USD long +0,80 +1,00 +0,70 −0,20 −0,75 −0,85 AUD/USD long +0,65 +0,70 +1,00 −0,10 −0,60 −0,70 USD/JPY long −0,30 −0,20 −0,10 +1,00 +0,30 +0,40 USD/CHF long −0,90 −0,75 −0,60 +0,30 +1,00 +0,85 DXY long −0,95 −0,85 −0,70 +0,40 +0,85 +1,00 Skala: +1,0 +0,8 +0,65 ~0 −0,6 −0,85 −0,95 Granica robocza (przykład): 2+ silnie zależne pozycje = ogranicz łączne ryzyko w R, nie sumę lotów
Typowe korelacje 12-miesięczne głównych par FX i indeksu dolara (DXY). Długa pozycja na EUR/USD, GBP/USD i krótka na USD/CHF to praktycznie ten sam trade — short USD z potrójną ekspozycją. Heatmapa pokazuje, dlaczego „4 niezależne alerty" ze screenera często są jednym sygnałem makro pokazanym z czterech perspektyw. Wartości orientacyjne i zaokrąglone — zależą od okna, interwału i metody liczenia zwrotów; traktuj je jako ilustrację struktury zależności, nie pomiar. Silna ujemna „korelacja" EUR/USD ↔ DXY wynika w dużej mierze z konstrukcji indeksu (EUR ma w koszyku DXY wagę ok. 57,6%), nie z niezależnego zachowania rynku. W skrajnych reżimach (flash crashe, interwencje) korelacje konwergują do 1 lub −1, więc ekspozycja portfela rośnie właśnie wtedy, kiedy trader najmniej tego oczekuje.
Przykład: alert strefowy na EUR/USD

Na W1 widzisz, że EUR/USD ma silną strefę wsparcia w okolicy 1,0680–1,0720 (kilkukrotne odbicia w ciągu ostatniego roku). Rysujesz prostokąt strefy na TradingView, klikasz prawym → „Add Alert on EUR/USD". Ustawiasz: „cena wchodzi w strefę" → push na telefon. Jednocześnie tworzysz drugi alert: RSI(14) na D1 < 30. Jeśli oba się aktywują w podobnym czasie, otwierasz wykres H4, szukasz formacji odwrócenia (np. pin bar z dolnym knotem wychodzącym poza strefę). Jeśli formacja jest — planujesz wejście. Jeśli nie — czekasz dalej. Cała interakcja z wykresem zajęła 3 minuty od momentu alertu.

Backtesting strategii — equity curve, drawdown i kluczowe metryki (win rate, profit factor, Sharpe ratio) na wykresie wyników testowych
Backtesting strategii — equity curve, drawdown i kluczowe metryki (win rate, profit factor, Sharpe ratio) na wykresie wyników testowych

9. Backtesting — co testować i jak interpretować wyniki

Backtesting to sprawdzanie, jak twoja strategia zadziałałaby na danych historycznych[1]. Backtest nie mówi, ile zarobisz. Mówi tylko, czy reguła zachowywała się zgodnie z założeniami na danych historycznych. To dużo, ale to nie to samo co przewaga na żywo. Alternatywa — testowanie od razu na żywym koncie — jest po prostu droższa.

Co warto testować

Nie każdy element strategii da się sensownie przetestować na historii. Dobrze poddają się backtestingowi elementy oparte na jednoznacznych, programowalnych regułach:

  • Reguły wejścia oparte na wskaźnikach. „Kup, gdy RSI(14) spadnie poniżej 30 na D1 i EMA 50 > EMA 200" — to jest jednoznaczne i programowalne. Nie ma tu miejsca na interpretację.
  • Reguły wyjścia i SL/TP. Stały SL 50 pipsów, TP 100 pipsów. Albo trailing stop 2× ATR. Mierzalne, porównywalne.
  • Porównanie wariantów. Czy RSI < 30 lepiej działa na D1 czy na H4? Czy SL 40 pipsów daje lepszy profit factor niż SL 60? Backtest odpowie — z zastrzeżeniami, o których za chwilę.

Słabo poddaje się backtestingowi to, co wymaga ludzkiej oceny:

  • Price action i formacje świecowe. Pin bar na wsparciu „wygląda przekonująco" — ale algorytmiczna definicja pin bara (knot > 2× ciało, ciało w górnym lub dolnym kwintyle) łapie tylko część przypadków, które doświadczony trader rozpoznaje wzrokiem. Reszta to kontekst, którego algorytm nie widzi.
  • Kontekst strukturalny. „Kupuję na końcu fali 2 w impulse Elliotta" — sensowna strategia, ale identyfikacja fali 2 jest subiektywna i bardzo trudna do zakodowania w sposób wiarygodny.
  • Decyzje uznaniowe. Doświadczony trader omija setupy, które „technicznie spełniają kryteria, ale coś mu nie gra". Tego nie zaprogramujesz — a jednocześnie to jest często ta różnica, która oddziela zyskowny trading od zyskownego backtestu.

Jakość danych — temat, o którym mało kto mówi

Wynik backtestu jest tak wiarygodny, jak dane, na których go przeprowadzasz. Na Forex to poważna kwestia. Rynek jest zdecentralizowany — dane z twojego brokera mogą się różnić od danych z innego (inne spready, drobne różnice w OHLC). Dane OHLC tracą informację o ruchu ceny wewnątrz świecy: jeśli SL i TP były ciasne, nie wiadomo, co nastąpiło pierwsze — dotknięcie SL czy TP.

Dane tickowe (tick-by-tick) są dokładniejsze, ale cięższe do zdobycia. MT5 Strategy Tester ma tryb „Every tick based on real ticks" — przy ciasnym SL tego warto używać. Osobna kwestia to spread historyczny: wiele backtestów zakłada stały spread, podczas gdy na żywo spread rozszerza się w newsy i w nocy. Strategia świetna ze spreadem 1,5 pipsa na EUR/USD może być stratna, gdy realny spread skacze do 8–12 pipsów[2]. W MT4 Strategy Tester domyślnie ustawia spread „current" (aktualny) — traktuj to jako optymistyczne dolne oszacowanie, nie realny warunek rynkowy. W MT5 tryb „Every tick based on real ticks" używa historycznego, zmiennego spreadu z danych — a osobnym ustawieniem jest model opóźnienia egzekucji, nie spreadu.

Bid/ask vs mid-price. Darmowe dane historyczne (Yahoo Finance, większość darmowych API) podają cenę mid — średnią między bid a ask. Dla tradera detalicznego oznacza to, że backtest zawyża wynik o pełny spread na każdą zamkniętą transakcję: pół spreadu przy wejściu (mid zamiast ask) i pół przy wyjściu (mid zamiast bid). Przy 200 zamkniętych transakcjach rocznie na EUR/USD i spreadzie 1 pipsa to ok. 200 pipsów fantomowego zysku w backteście. Dukascopy Historical Data Feed i TrueFX dają bid/ask oddzielnie — używaj ich. Jeśli testujesz na danych gorszej jakości — traktuj wyniki z dodatkowym marginesem.

Sygnały barclose vs intrabar. W Pine Script sygnał powstaje na zamknięciu tylko wtedy, gdy warunek jawnie tego wymaga (barstate.isconfirmed) i alert stoi na „Once Per Bar Close" — nic nie dzieje się „domyślnie". Część traderów w testach dopuszcza sygnały intrabar — i ich backtest nagle wygląda o 30% lepiej. Powód: intrabar łapiesz każdy dotyk poziomu, nawet jeśli świeca zamknie się w innym miejscu. Na żywo połowa tych sygnałów zniknie, zanim zdążysz kliknąć. Testuj zawsze na zamknięciu świec — chyba że twoja strategia jest intencjonalnie intrabar-based (breakout na pending stop orders).

Przypadek — whipsaw w oknie NFP. Piątek, 14:30 czasu polskiego (w tygodniach rozjazdu DST 13:30), publikacja Non-Farm Payrolls. Algorytm breakoutowy widzi wybicie oporu na M5, kupuje EUR/USD. Kilka–kilkanaście sekund później cena zawraca o kilkadziesiąt pipsów, uderza w stop loss, po czym wraca do pierwotnego kierunku i robi nowe szczyty. Na wykresie H1 ze stałym spreadem zostaje czytelna, zyskowna świeca; na M5 z realnymi warunkami — długi cień i zamknięty stratny trade. To klasyczne piłowanie (whipsaw) w oknie makro: algorytmy dostawców płynności potrafią wstrząsnąć księgą zleceń w obie strony, zanim rynek złapie kierunek dnia. Strategy Tester z danych OHLC w ogóle tego nie odda, bo świeca H1 zamknie się po fakcie w pożądanym miejscu. Praktyczna reguła dla backtestu: wykluczaj sygnały w oknie ±15 minut wokół tier-1 eventu lub testuj osobno próbkę takich trade'ów, żeby zobaczyć ich realny wpływ na expectancy.

Koszty swap/rollover w logice EA. Budujesz „darmową maszynkę" do trzymania pozycji przez tygodnie? Algorytm musi uwzględniać ujemne punkty swap, nie tylko spread i slippage. Strategia trend-followingowa na parach egzotycznych (np. short USD/MXN, long USD/TRY) potrafi wygenerować piękny zysk brutto z ruchu cenowego, który po 3–4 tygodniach trzymania jest całkowicie zjadany przez ujemny carry trade. MT5 Strategy Tester uwzględnia swap, jeśli broker go przekazuje do platformy; MT4 bywa kapryśny i wymaga ręcznej weryfikacji tabeli swapów u brokera. W backteście Pythona swap zwykle musisz doliczyć samodzielnie — dla swingów to nie kosmetyka, to realny koszt decydujący o zyskowności netto.

Przypadek — EUR/CHF, 15 stycznia 2015. Tysiące EA opartych na mean-reversion grało pod obronę poziomu 1,2000 na EUR/CHF. Na danych z poprzednich 3+ lat wyglądało to jak darmowe pieniądze: cena odbijała od podłogi SNB, EA zamykał na kilkunastu pipsach zysku, cykl się powtarzał. Backtest pokazywał drawdown rzędu 3–5%. Około 10:30 czasu polskiego SNB zniósł kurs minimalny[11]. Rynek zniknął na kilkanaście minut; ceny przeskakiwały po kilkaset pipsów bez kwotowania pośredniego. EA realizowały SL po pierwszej dostępnej cenie — u części brokerów detalicznych klienci zostali z saldami ujemnymi rzędu setek tysięcy euro. Alpari (UK) weszła w postępowanie administracji specjalnej[12]. Lekcja: backtest z definicji nie modeluje zdarzeń, których nie ma w danych historycznych. Żaden algorytm nie uchroni cię przed black swanem — tylko position sizing, rozsądna dźwignia i świadomość ryzyka zdarzenia.

Jak interpretować wyniki

Kluczowe metryki backtestingu:

MetrykaCo mówiNa co uważać
Profit Factor (PF)Suma zysków / suma stratWielu traderów traktuje PF powyżej 1,5 jako punkt wyjścia[1], ale to heurystyka, nie twarda granica. PF > 3 na dużej próbce (200+ transakcji) może być realny — ale na małej próbce (< 100 transakcji) bywa po prostu efektem losowym, nie overfittingiem
Max DrawdownNajwiększy spadek kapitału od szczytu do dołkaNa żywym koncie drawdown często okazuje się głębszy niż w backteście[2]. Planuj z zapasem
Win RateProcent transakcji zyskownychBez kontekstu R:R bezużyteczny. 30% trafień + R:R 1:3 = zyskowna strategia
Liczba transakcjiIle transakcji wygenerował testNie ma jednej magicznej liczby — zależy od strategii. Ogólnie: im więcej, tym większa wiarygodność statystyczna. Przy mniej niż 100 transakcjach wnioski traktuj z dużą ostrożnością[5]
Sharpe RatioZwrot skorygowany o zmiennośćSharpe > 1 to solidny wynik. Sharpe > 2 na Forex zdarza się — ale wymaga dodatkowej weryfikacji, bo często wynika z dopasowania parametrów do danych[6]

Przykład: źle zrobiony backtest i jak go poprawić

Typowy proces optymalizacji wygląda tak. Testowana jest strategia: „kup, gdy RSI(14) < 30 na D1 na EUR/USD, SL 50 pipsów, TP 150 pipsów", na danych z lat 2020–2025; optymalizowane są: próg RSI (wartości 10–30), SL (30–80 pipsów) i TP (80–200 pipsów). Wybrana zostaje kombinacja RSI=22, SL=43, TP=167 — bo ma najwyższy profit factor: 2,8 (wartości ilustracyjne).

Problem: przetestowano dziesiątki kombinacji na tych samych danych i wybrano najlepszą. Strategia ma 3 optymalizowane parametry, a najlepsza kombinacja wygląda podejrzanie „unikalna" — drobna zmiana parametrów drastycznie pogarsza wyniki. To klasyczny overfitting.

Jak poprawić: dane dzieli się na okres treningowy (2020–2023) i testowy (2024–2025); optymalizuje wyłącznie na treningowych, a wybraną kombinację sprawdza na testowych — ani razu wcześniej. Formalizacją tego procesu jest walk-forward: okno treningowe i testowe przesuwają się krocząco przez historię, a strategia musi bronić się w każdym kolejnym oknie, nie w jednym. Jeśli profit factor na danych testowych spada z 2,8 do 0,9, strategia jest dopasowana do przeszłości, nie do rynku.

Zapamiętaj: backtest zwykle pokazuje warunki lepsze niż egzekucja na żywo, chyba że bardzo rygorystycznie modelujesz koszty i jakość wykonania. Na żywym koncie dochodzi slippage, requote'y zjadają R:R, a twoja psychologia po serii pięciu strat wyłącza algorytm dokładnie przed falą największych zysków. Strategia z max drawdownem 15% w backteście na żywo często okazuje się głębsza[2] — zakładaj margines bezpieczeństwa.

Forward testing — most między backtestem a żywym kontem

Zanim wrzucisz strategię na żywe konto, przetestuj ją forward: na koncie demo lub mikro-koncie z realnymi warunkami rynkowymi, przez minimum 2–3 miesiące (lepiej 6) i na reprezentatywnej liczbie transakcji. Forward test może ujawnić dopasowanie do przeszłości — bo przyszłości jeszcze nie znasz — choć go nie eliminuje: krótka próba i pojedynczy reżim rynku nadal ograniczają wnioski. Jeśli wyniki forward testu są dramatycznie gorsze od backtestingu — strategia jest prawdopodobnie overfitted, a piękna equity curve z backtestu to artefakt, nie przewaga.[1]

Monte Carlo — rozkład scenariuszy zamiast jednej ścieżki

Jeśli twój backtest ma 150 transakcji z profit factor 1,8, symulacja Monte Carlo (przetasowanie kolejności trade'ów 1000 razy) pokaże rozkład możliwych drawdownów przy tej samej próbie transakcji. To scenariusze warunkowe — przetasowanie nie modeluje zmiany rozkładu ani klasteryzacji zmienności — ale skutecznie leczy z przywiązania do jednej historycznej ścieżki equity. Narzędzia w pandas/Python (np. vectorbt) robią to natywnie; w MT5 musisz najczęściej wyeksportować wyniki do arkusza i policzyć ręcznie (prosty wariant przetasowania → symulator w dziale Narzędzia). Praktyczne użycie: porównaj 95. percentyl drawdownu z maksymalnym limitem straty ustalonym PRZED testem — jeśli rozkład regularnie przekracza twój limit, zmniejsz ryzyko na transakcję albo odrzuć strategię jako niedopasowaną do własnej tolerancji.

10. Python w screeningu i backtestingu

Python nie jest już narzędziem wyłącznie dla kwantów — prosty screener i pipeline alertowy da się dziś postawić detalicznie bez dużej infrastruktury. Techniczny próg wejścia jest niski: pandas, wrapper brokerskiego API i VPS za kilkadziesiąt złotych miesięcznie wystarczą do startu. Ale utrzymanie poprawnego pipeline'u danych i egzekucji nadal wymaga dyscypliny technicznej — aktualizacji wrapperów, monitorowania błędów API, świadomego zarządzania ryzykiem w kodzie.

Co daje Python, czego nie dają TradingView ani MT4/MT5:

  • Dowolne źródło danych. Możesz pobierać dane z API brokerów (OANDA, Interactive Brokers), darmowych źródeł (yfinance dla indeksów, ccxt dla krypto) lub płatnych dostawców. Nie jesteś ograniczony do tego, co oferuje platforma.
  • Zaawansowana analiza statystyczna. Testy istotności, korekta Bonferroniego przy wielokrotnych porównaniach, wizualizacja rozkładów zwrotów — to rzeczy, które w Pine Script są albo niemożliwe, albo bardzo niewygodne. W Pythonie z bibliotekami scipy i statsmodels to kilka linijek kodu.
  • Elastyczność backtestingu. Biblioteki backtrader i vectorbt pozwalają testować strategie portfelowe (wiele par jednocześnie), strategie z dynamiczną alokacją kapitału, strategie z korelacjami między instrumentami. Pine Script i MQL mają tu ograniczenia.
  • Pipeline od screeningu do egzekucji. Cały workflow — pobranie danych, screening, generowanie sygnałów, wysyłanie alertów (e-mail, Telegram), a nawet egzekucja zleceń przez API brokera — może działać w jednym skrypcie.
  • Analiza sentymentu. Niektórzy traderzy eksperymentują z automatyczną analizą sentymentu z wiadomości i raportów ekonomicznych, włączając ten sygnał do pipeline screeningowego. Narzędzia do tego istnieją (od prostych skryptów po API modeli językowych), ale w praktyce detalicznej to wciąż raczej eksperyment niż gotowe rozwiązanie.

Minimalny screener RSI w Pythonie — szkielet kodu z OANDA API:

import pandas as pd
from oandapyV20 import API
from oandapyV20.endpoints import instruments

api = API(access_token='TWÓJ_TOKEN_OANDA', environment='practice')
pairs = ['EUR_USD', 'GBP_USD', 'USD_JPY', 'AUD_USD', 'NZD_USD']

for p in pairs:
    # domyslnie OANDA zwraca swiece mid, a dobe D wyrownuje do 17:00 America/New_York
    # (dailyAlignment/alignmentTimezone) — ustaw jawnie, jesli potrzebujesz innej konwencji
    params = {'count': 100, 'granularity': 'D'}
    r = instruments.InstrumentsCandles(instrument=p, params=params)
    api.request(r)
    candles = [c for c in r.response['candles'] if c['complete']]
    close = pd.Series([float(c['mid']['c']) for c in candles])  # mid; do live użyj bid/ask
    delta = close.diff()
    # zblizenie RSI Wildera: RMA przez ewm(alpha=1/14, adjust=False); rolling().mean()
    # daloby prosta srednia i inne wartosci. Uwaga: bez SMA-seedu z pierwszych 14 zmian
    # poczatkowe wartosci moga minimalnie odbiegac od platform; przy 100 swiecach
    # roznica na koncu serii jest pomijalna
    gain  = delta.clip(lower=0).ewm(alpha=1/14, adjust=False).mean()
    loss  = (-delta.clip(upper=0)).ewm(alpha=1/14, adjust=False).mean()
    rsi   = 100 - (100 / (1 + gain / loss))
    if rsi.iloc[-1] < 30:
        print(f"{p}: RSI = {rsi.iloc[-1]:.1f} — w wyprzedaniu")

Jeśli chcesz źródło bez zakładania konta brokerskiego, alternatywy to ccxt (świetne do krypto, mniej do spot FX) albo historyczne tickowe dane Dukascopy/TrueFX jako pliki CSV. Nie używaj Yahoo Finance (yfinance) do intraday FX — to źródło nadaje się do akcji i indeksów, ale dla par walutowych zwraca dane z opóźnieniem, bez bid/ask i z brakami dla par egzotycznych.

Python daje pełną kontrolę, ale każdy błąd w logice backtestu albo w pętli egzekucji staje się błędem finansowym, nie tylko programistycznym. Źle napisana pętla retry potrafi wysłać 50 duplikatów zlecenia do API brokera, zanim zdążysz wcisnąć Ctrl+C. Jeśli nigdy nie pisałeś w Pythonie, zacznij od Pine Script — da ci 80% tego, czego potrzebujesz, za 20% wysiłku.

Częsty błąd w botach na REST API — pętla while True. Scenariusz na przykładzie bota z logiką uśredniania strat (Martingale): brak twardego limitu iteracji i brak exponential backoff w pętli retry przy błędzie HTTP 503. O 3:00 nocy broker robił przerwę techniczną serwerów. Bot, nie mogąc odczytać stanu pozycji, zaczął zapętlać zlecenia BUY co 100 ms, nie czekając na potwierdzenie. Efekt: rano na rachunku kilkadziesiąt otwartych pozycji na EUR/TRY rozłożonych na szczycie nocnego swingu i wezwanie do uzupełnienia depozytu (przykład ilustracyjny mechanizmu). Wnioski operacyjne: (1) zawsze używaj rate limiting po stronie klienta — np. max 1 req/s; (2) implementuj idempotency keys (klucz żądania rozpoznawany przez API brokera, który chroni przed duplikacją); (3) po błędzie serwera rób exponential backoff (1 s → 2 s → 4 s → 8 s → przerwanie) z twardym limitem 5–8 prób; (4) nigdy nie pisz pętli while True wysyłającej zlecenia handlowe bez wyłącznika awaryjnego (kill-switch). Bez ograniczenia częstości żądań i wykładniczego odczekiwania pętla retry potrafi wysłać dziesiątki duplikatów, zanim ktokolwiek zauważy.
Python w screeningu i backtestingu — fragment kodu z bibliotekami pandas i backtrader do automatycznej analizy danych cenowych
Python w screeningu i backtestingu — fragment kodu z bibliotekami pandas i backtrader do automatycznej analizy danych cenowych

11. Pułapki automatyzacji

Automatyzacja oszczędza czas i redukuje błędy emocjonalne — ale wprowadza własne problemy. Zbiorcza mapa pułapek backtestu wygląda tak; kolejne podsekcje rozwijają najważniejsze z nich:

PułapkaMechanizmJak ograniczyć
Ceny mid zamiast bid/askMid pomija ~pół spreadu na każde wykonanie — pełny spread na zamkniętą transakcję (wejście + wyjście)Dane bid/ask (Dukascopy, TrueFX); koszty jawnie w teście
Stały spreadNa żywo spread rozszerza się w publikacje i w nocyReal ticks w MT5; osobny test okien podwyższonego spreadu
Pominięty poślizg i prowizjaWynik netto niższy niż brutto, szczególnie na niskich TFModeluj poślizg konserwatywnie; licz prowizję w R
Look-aheadSygnał używa danych niedostępnych w chwili decyzji (close tworzącej się świecy, swing z przyszłości)Tylko zamknięte świece; reakcja od następnego ticku/otwarcia
OverfittingParametry dopasowane do szumu konkretnej historiiMało parametrów; out-of-sample; walk-forward
Data snoopingZ 50 wariantów „coś" musi wyjść dobrze losowoLiczba prób jawna; korekta statystyczna; nowa próba danych
Survivorship biasWidzisz tylko systemy, które przetrwałyOceniaj proces, nie wyselekcjonowane wyniki
RepaintingWskaźnik przerysowuje zamkniętą historięForward test wskaźnika; unikanie ZigZag-podobnych w regułach
Pominięty swapKoszt utrzymania pozycji zjada wynik swingówUwzględnij punkty swapowe; test na danych z kosztami

Overfitting (dopasowanie do przeszłości)

Overfitting nie wymaga błędu — wystarczy suwak optymalizacji i skończona liczba danych. System „zapamiętuje" przeszłość zamiast wychwytywać powtarzalne wzorce. Objaw: piękna equity curve w backteście, strata od pierwszego dnia na żywo.

Sygnały ostrzegawcze overfittingu:[5]

  • Strategia ma wiele swobodnych parametrów w stosunku do liczby transakcji i dostępnej historii.
  • Drobna zmiana parametru (RSI 14 → RSI 15) drastycznie zmienia wyniki — tzw. „kruchość" (fragility).
  • Backtest na jednym okresie daje świetne wyniki, na innym — stratę.
  • Podejrzanie wysokie metryki (PF > 3, Sharpe > 2) przy małej próbce (< 100 transakcji) — częściej efekt losowy niż prawdziwa przewaga. Przy dużej próbce (500+) takie wyniki nie są wykluczone, ale wymagają rygorystycznej walidacji out-of-sample.

Lekarstwem jest testowanie out-of-sample: dzielisz dane na część treningową (np. 2018–2022) i testową (2023–2025). Optymalizujesz na danych treningowych, sprawdzasz na testowych. Jeśli wyniki się rozjeżdżają — strategia jest dopasowana do konkretnej historii, nie do rynku. Pardo[1] szczegółowo opisuje walk-forward analysis, które formalizuje ten proces.

Przypadek ilustracyjny — optymalizacja genetyczna i „cudowny parametr". Strategy Tester MT5 z algorytmem genetycznym: EUR/USD, 5 lat danych, 6 parametrów do optymalizacji. Po 12 godzinach obliczeń wynik (wartości ilustracyjne): profit factor 4,3, drawdown 6%, 847 transakcji. Parametry: RSI=16, SL=63,2 pipsa, TP=214,8 pipsa, filtr ATR=1,237, delta EMA=37, min. ADX=23,6. Następny tydzień na żywo: −18% konta. Powód: algorytm nie znalazł przewagi rynkowej — znalazł szum w danych i nauczył się go na pamięć. Gdy zmieniasz okres testu o miesiąc w którąkolwiek stronę, PF spada z 4,3 do 0,8. Optymalizacja genetyczna bardzo łatwo znajduje kombinacje parametrów, które wyglądają świetnie na danych treningowych, ale nie mają trwałej przewagi poza próbką — a ich równoległe testowanie w Strategy Testerze ma wizualny charakter „badawczy", co dodatkowo uwiarygadnia wyniki przed samym traderem. Zasada operacyjna: liczbę swobodnych parametrów ograniczaj do minimum uzasadnionego logiką strategii i wielkością próby — każda dodatkowa optymalizowana zmienna zwiększa ryzyko dopasowania; walk-forward obowiązkowy, a wynik z optymalizatora traktuj jako hipotezę do forward testu, nie jako system.

Data snooping (podglądanie danych)

Przetestowałeś 50 wariantów strategii na tych samych danych i wybrałeś ten z najlepszymi wynikami. Problem: przy 50 próbach na tych samych danych coś musi wypaść dobrze — statystycznie. To nie jest odkrycie „działającej" strategii, to efekt losowy. Aronson[5] i Lopez de Prado[6] poświęcają temu problemowi całe rozdziały i nie bez powodu — to pułapka, w którą wpadają nawet doświadczeni traderzy.

Rozwiązanie: jeśli testujesz wiele wariantów, stosuj korektę statystyczną (Bonferroni, White's Reality Check) lub przynajmniej bądź świadomy, że wynik z 50. próby jest wielokrotnie mniej wiarygodny niż wynik z pierwszej.

Survivorship bias w gotowych EA

Na forach widzisz EA z equity curve rosnącą pod 45°. Nie widzisz tysięcy EA wycofanych ze sprzedaży, bo zbankrutowały[10]. To survivorship bias — dotyka też strategii publikowanych przez influencerów: kto chwalił się 300% w 2024, zwykle milczy o -80% w 2025.

Publiczny track record — jak go czytać. Zweryfikowany publicznie rachunek to lepszy dowód niż zrzut ekranu, ale weryfikacja ma zakres, który trzeba rozumieć. Przy ocenie sprawdź co najmniej: (1) czy konto jest oznaczone jako Real, nie Demo; (2) czy zweryfikowano historię wyników i uprawnienia handlowe (w Myfxbook: „Track Record Verified" i „Trading Privileges Verified"); (3) od jakiej daty pokazywane są wyniki — własna data początkowa bywa ustawiana i jest ujawniana, więc patrz też na pełny zakres; (4) czy widać wpłaty i wypłaty; (5) czy pokazany okres obejmuje różne warunki rynkowe, w tym epizody szokowe (2015, 2016, 2022). Brak którejkolwiek z tych rzeczy nie dowodzi oszustwa — ale przenosi ciężar dowodu z powrotem na sprzedawcę.

Iluzja kontroli

Im bardziej system jest „automatyczny", tym mniej trader monitoruje, co się dzieje. EA handluje przez noc, spread na USD/TRY rozszerza się do 15 pipsów o 3:00, poślizg zjada 3 stopy z rzędu — a trader dowiaduje się rano. EA nie jest pasywnym dochodem — wymaga monitoringu i okresowej walidacji na bieżących danych.

Przypadek — GBP/USD, 7 października 2016. Około 00:07 czasu londyńskiego (ok. 1:07 w Polsce) funt w ciągu kilku minut traci kilka procent — na części feedów ponad 9%, ekstremum zależne od dostawcy kwotowań. Każdy EA trend-following, który miał podłączony long GBP, dostaje kaskadę stop lossów. Problem: spready u wielu brokerów rozszerzyły się skrajnie, a u części przez kilkadziesiąt sekund brakowało kwotowań — raport BIS dokumentuje transakcje zawierane po cenach bardzo odległych od kwotowań sprzed zdarzenia[13]. EA realizuje SL „po rynku" i dostaje wykonanie daleko poniżej zaplanowanego poziomu. Rano trader otwiera MT4 i widzi, że jego „bezpieczny system z max drawdown 8%" ma −47% (wartości ilustracyjne). Wniosek: każdy EA, który nie ma twardego warunku „jeśli spread > X pipsów lub brak kwotowania przez Y sekund, NIE otwieraj nowych pozycji i rozważ zamknięcie istniejących", jest EA w wersji beta. Ten warunek musi być w kodzie, nie w twojej głowie o 3:00 w nocy.
Twardy warunek spread filter — co musi być w kodzie. Z przypadku GBP 2016 płynie prosty wniosek operacyjny: każdy EA powinien zawierać warunek typu if (spread > max_spread) { return; } przed każdą funkcją otwarcia pozycji. Klucz: max_spread nie powinno być sztywną liczbą dla wszystkich par — na EUR/USD 5 pipsów to anomalia, na USD/TRY czy na egzotykach to normalny dzień. Sensowna implementacja: max_spread = k × ATR(14, TF_wejścia) albo max_spread = 0,15 × odległość_do_SL. Dodatkowy bezpiecznik: max_slippage przy składaniu zlecenia i awaryjne zamykanie wszystkich pozycji przy przekroczeniu global_drawdown_cap (np. 10% kapitału w tydzień). EA bez tych trzech warunków to EA w wersji beta, niezależnie od tego, co pokazuje backtest.
Asymetrie egzekucji — slippage i Last Look. Dwa mechanizmy, których żaden Strategy Tester nie modeluje, a które na żywo konsekwentnie pracują przeciw agresywnym algorytmom. Asymetryczny slippage: część detalicznych brokerów daje pełny poślizg, gdy cena idzie na twoją niekorzyść, ale zachowuje dla siebie pozytywny slippage, gdy ruch jest po twojej stronie — rozkład cen wykonania statystycznie skośny w dół, niewidoczny pojedynczo, na próbce tysiąca transakcji widać go w equity. Last look: nawet na A-Booku dostawcy płynności mają krótkie okno na weryfikację zlecenia przed przyjęciem — jeśli w tym oknie rynek ruszył na ich niekorzyść, mogą odrzucić realizację. Dla algorytmów „przewidujących" mikroruchy (przepływ toksyczny dla dostawców, tzw. toxic flow) odsetek odrzuceń (rejects) rośnie, a odrzucane bywają właśnie najbardziej dochodowe zlecenia; mechanikę last look rozkłada dział 3. Praktyka: (1) pytaj brokera o politykę symetrii slippage'u przed otwarciem konta; (2) dla strategii z dużą liczbą transakcji wybieraj ECN/STP z przejrzystą polityką; (3) dla swingu D1/H4 oba mechanizmy są niezauważalne, dla HFT/newsowych strategii to główne źródło rozjazdu backtest vs live.
Automat na koncie prop firm — scenariusz z regulaminów. Scenariusz opisywany wprost w regulaminach i komunikatach prop firm: bot arbitrażu opóźnień (latency arbitrage) zdaje obie fazy challenge'u w kilka godzin, a przy próbie wypłaty konto zostaje zamknięte z adnotacją „Violation of Terms: Toxic Trading Flow / Exploiting Demo Feed Latency" — zyski anulowane, opłata bez zwrotu. Prop firmy często oferują rachunki na feedach demo lub symulatorach, których charakterystyka różni się od realnego A-Booka (szczególnie w zakresie opóźnienia kwotowania). Algorytm, który wykorzystuje tę różnicę, zarabia „na papierze", ale regulamin firmy najczęściej kwalifikuje to jako exploiting. Przed podłączeniem jakiegokolwiek EA na koncie prop firm przeczytaj w całości sekcję regulaminu o strategiach zabronionych — i nie polegaj na cudzych podsumowaniach.

Czarna skrzynka

Jeśli nie rozumiesz, dlaczego twój system zarabia, nie wiesz, kiedy przestanie. Kupiony EA bez dokumentacji logiki to czarna skrzynka — a rynki zmieniają charakter[10], więc prędzej czy później trzeba będzie zdecydować, czy zmienić parametry, wyłączyć system, czy przeczekać.

Wskaźniki repaintujące

Część wskaźników zmienia swoje historyczne wartości po pojawieniu się nowych świec — to tzw. repainting. Na wykresie historycznym wyglądają perfekcyjnie (każdy sygnał „trafiony"), ale w czasie rzeczywistym sygnał może się pojawić i zniknąć, zanim zdążysz zareagować. Dotyczy to np. ZigZag i wielu custom indicators z MQL5 Market. Jeśli testujesz wskaźnik — sprawdź go na żywo (forward test) przez przynajmniej kilka tygodni, zanim zaczniesz mu ufać w backtestach.

Prop Firmy a automatyzacja

Jeśli handlujesz na koncie prop firm, sprawdź aktualny regulamin zanim włączysz EA. Wiele firm zabrania pełnej automatyzacji, traktując ją jako naruszenie zasad — ale jednocześnie pozwala na screenery, alerty i pół-automatyczne wskaźniki. Zasady różnią się między firmami i potrafią się zmieniać, więc nie polegaj na cudzych podsumowaniach: czytaj regulamin sam. Podłączenie EA bez sprawdzenia to ryzyko utraty konta i zysku.

Red flags gotowego EA — osiem sygnałów ostrzegawczych Osiem ułożonych w siatce 4×2 ramek pokazujących sygnały ostrzegawcze przy ocenie gotowego Expert Advisora: równa equity curve, wysoki profit factor na małej próbce, brak forward testu, nieudokumentowana logika, kruchość parametrów, brak ochrony spreadowej, tylko jeden okres testu, konto demo na Myfxbook. Red flags gotowego EA — osiem sygnałów, przy których NIE kupujesz im więcej punktów naraz, tym bardziej zakup przypomina akt wiary, nie decyzję 1 Equity curve pod 45° bez żadnego drawdownu Równa linia wzrostu to artefakt optymalizacji, nie realny wynik rynkowy. Prawdziwa strategia ma serie strat — to normalne. Co sprawdzić: czy raport w ogóle pokazuje DD i serie strat 2 PF > 3 na < 100 trade'ach wymaga niezależnej walidacji PF 3+ przy małej próbce nie jest jeszcze dowodem trwałej przewagi. Na dużej próbce wyniki zwykle są skromniejsze. Co sprawdzić: liczba transakcji w reprezentatywnej próbce 3 Brak forward testu strategia nigdy nie była na żywo Bez forward testu z reprezenta- tywną liczbą transakcji nie wiesz, czy backtest się przenosi. „Forward test" nie jest opcjonalny — jest obowiązkowy. Co sprawdzić: realne konto, możliwie długi okres 4 Nieudokumentowana logika systemu Nie musisz mieć źródła, ale musisz znać reguły wejścia, wyjścia i ryzyka. Czarna skrzynka potrafi zawieść w jedną noc. Co sprawdzić: czy logika jest udokumentowana 5 Kruchość parametrów RSI 14→15 łamie wyniki Jeśli drobna zmiana parametru drastycznie pogarsza wynik — to klasyczny overfitting. Rynek nie zachowuje niuansu „akurat RSI=16,4". Co sprawdzić: wrażliwość wyniku na ±10% parametru 6 Brak stop-spread padnie na pierwszym flash EA bez warunku „jeśli spread > X, nie otwieraj" zrealizuje SL przy 300-pipsowym rozszerzeniu kwotowania. GBP 7.10.2016, CHF 2015, Liz Truss 2022 to lekcje. Co sprawdzić: kod zawiera MaxSpread / MaxSlippage 7 Tylko jeden okres testu brak walk-forward / out-of-sample Test tylko na 2020–2024 bez walidacji out-of-sample (np. 2018–2019) = data snooping w najlepszej formie. Walk-forward analysis to minimum (Pardo). Co sprawdzić: test na 2+ rozłącznych okresach 8 Myfxbook „Demo" nie „Real" Konto demo na Myfxbook to reklama, nie dowód. Nigdy nie było prawdziwych pieniędzy po stronie EA. Podobnie „custom start" — zakres analizy jest zawężony. Co sprawdzić: typ konta = Real, broker regulowany Zasada weryfikacji: im więcej sygnałów naraz, tym mocniejszy powód, by odpuścić
Osiem najczęstszych sygnałów ostrzegawczych przy ocenie gotowego Expert Advisora. Pojedynczy red flag nie dyskwalifikuje produktu automatycznie (czasem jest wytłumaczalny), ale nagromadzenie kilku naraz zwykle oznacza dopasowany do historii produkt z ładną stroną docelową. Sensowna ocena patrzy na adekwatność próby, stabilność parametrów, zgodność wyników in-sample z out-of-sample, realistyczność kosztów i sposób weryfikacji rachunku — a jeśli musisz uzasadniać sobie, dlaczego któryś sygnał „akurat tu nie dotyczy", to zwykle właśnie dotyczy.

12. Czego nie automatyzować na początku

Pokusa „pasywnego dochodu" z EA jest silna, ale skok od zera do pełnej automatyzacji kończy się zwykle stratą — i to nie z powodu złego kodu, tylko braku fundamentów. Co lepiej robić ręcznie na początku:

  • Zarządzanie pozycją. Wielkość pozycji, przesuwanie SL, częściowe zamykanie — to są decyzje, które wymagają kontekstu i oceny sytuacji. EA zrobi dokładnie to, co mu każesz, ale „dokładnie to, co mu każesz" i „to, co powinieneś zrobić w danej chwili" to często dwie różne rzeczy. Ucz się zarządzać pozycją ręcznie, zanim zautomatyzujesz.
  • Interpretacja kontekstu makro. Screener nie wie, że za godzinę jest NFP (Non-Farm Payrolls) i spready zaraz się rozszerzą trzykrotnie. Nie wie, że bank centralny zmienił retorykę. Tego typu kontekst musisz dodawać sam.
  • Wybór par do handlu. Screener pomaga je filtrować, ale finalna selekcja — zwłaszcza na początku — powinna być twoja. Dzięki temu uczysz się, co działa na różnych parach, jakie mają charakterystyki (np. że GBP/JPY jest dużo bardziej zmienny niż EUR/CHF) i rozwijasz intuicję, której później nie zastąpi żaden algorytm.
  • Trzymanie pozycji przez weekend z dźwignią i bez zabezpieczenia. Nigdy nie pozwalaj EA handlować przez weekend na krzyżówkach z dźwignią, jeśli nie masz zabezpieczenia (redukcja lotu, opcje, twardy spread filter przy niedzielnym otwarciu). Black swan events — weekendowy komunikat banku centralnego, referendum, interwencja walutowa, geopolityka — otwierają niedzielę lukami, których stop loss nie obsłuży po deklarowanej cenie. Historia zna dziesiątki przypadków, gdzie „bezpieczny system z max DD 8%" po weekendzie miał −40% lub więcej.
  • Otwieranie pozycji bez kontroli Free Margin (margin stop-out blindness). Większość kupionych EA nie monitoruje dostępnego depozytu zabezpieczającego. Kiedy rynek wpada w spiralę i korelacje konwergują do +1 (jak w scenariuszach flash-crashowych), bot dalej otwiera pozycje grid albo uśrednia stratne zlecenia — aż do momentu, w którym broker automatycznie zamyka najcięższą pozycję z powodu wykroczenia poza poziom margin stop-out. Twardy warunek przed każdym otwarciem pozycji — w MQL4: if (AccountFreeMarginCheck(Symbol(), OP_BUY, loty) <= 0) return;, w MQL5: porównanie wyniku OrderCalcMargin() z AccountInfoDouble(ACCOUNT_MARGIN_FREE) (schemat do adaptacji, nie gotowy kod).
Grid i Martingale bez twardego limitu — mina, nie strategia. Algorytm, który odpowiada na każdą stratę otwarciem większej pozycji (klasyczny Martingale) albo rozstawia siatkę zleceń w obu kierunkach na z góry ustalonych poziomach cenowych (grid), matematycznie działa — ale tylko w warunkach, gdy rynek oscyluje. Przy silnym trendzie jednokierunkowym, luce weekendowej albo black swan evencie ekspozycja rośnie wykładniczo i jednym ruchem ceny likwiduje konto. Grid bez twardego limitu łącznej ekspozycji (globalny max lot, global drawdown cap, warunek zatrzymania przy trendzie wyższego TF) nie jest strategią, tylko odwlekaniem realizacji straty. „Equity curve rosnąca pod 45°" w reklamach takich systemów to zwykle 6 miesięcy przed pierwszym trendem, po którym następuje pełne wyzerowanie konta. Jeśli nie umiesz z góry policzyć maksymalnej łącznej straty w scenariuszu najgorszym — nie uruchamiasz gridu ani Martingale, nawet demo.

Automatyzuj to, co jest tępe, żmudne i powtarzalne: skan, filtr, alert. Automatyzacja nie poprawia reguły — powiela ją szybciej, razem z błędami. Automatyzację rozwijaj etapami; pełna auto-egzekucja bez zrozumienia procesu zwykle kończy się stratą szybciej niż handel ręczny.

13. Narzędzia — porównanie

NarzędzieJęzyk skryptowyScreeningAlertyBacktestingAuto-egzekucjaKoszt (orientacyjnie)
TradingView (Free)Pine ScriptTak (Forex screener)Kilka jednocześniePine Script strategy()Nie (webhook do API)0 USD
TradingView (Essential–Ultimate)Pine ScriptTak (zaawansowane filtry)20–1000 w zależności od planuPine Script strategy()Webhook + API brokera lub natywna integracja brokerskawg aktualnego cennika
MT4MQL4Własne wskaźniki (custom indicators)Tak (popup, push, email)Strategy Tester (1 symbol)Expert Advisors0 USD (od brokera)
MT5MQL5Własne wskaźnikiTak (popup, push, email)Strategy Tester (multi-currency)Expert Advisors0 USD (od brokera)
cTraderC#OgraniczonyTakcTrader AutomatecBots0 USD (od brokera)
PythonPythonPełna elastycznośćWłasne (e-mail, Telegram, push)backtrader, vectorbt, własnyPrzez API brokera (OANDA, IBKR)0 USD (open source)

Koszty i limity orientacyjne — zmieniają się; aktualne wartości sprawdzaj w cennikach dostawców. MT4/MT5 i cTrader dostarczane bezpłatnie przez brokerów.

Minimalny zestaw startowy — od tego zacznij
  • Interwał główny: D1 — na nim screenujesz i analizujesz. Kontekst bierzesz z W1.
  • Watchlista: 8–12 par do screeningu, z czego 2–5 trafia na bieżącą watchlistę w danym tygodniu.
  • 2 filtry screeningowe: EMA 200 (kierunek trendu) + RSI 14 (momentum). Proste, a odsiewają większość szumu.
  • 1 typ alertu na start: cenowy, na strefach S/R z tygodniówki. Później dodasz wskaźnikowe.
  • 0 EA na starcie. Naucz się najpierw handlować ręcznie z pomocą screenera i alertów. Robot przyjdzie później — i prawdopodobnie wcale nie jest ci potrzebny.
  • Obowiązkowy forward test po każdym backteście. Minimum 2–3 miesiące na demo — i reprezentatywna liczba transakcji — zanim wrzucisz strategię na żywe konto.

Wielkość pozycji — poza zakresem tego artykułu

Selekcja setupu bez prawidłowego rozmiaru pozycji to połowa roboty — ale wzory, ujęcie kosztów w budżecie ryzyka i przykłady liczbowe należą do działu 9. Interaktywny kalkulator wielkości pozycji oraz symulator Monte Carlo znajdziesz w dziale Narzędzia.

Disclaimer regulacyjny. Artykuł ma charakter edukacyjny i nie stanowi porady inwestycyjnej, rekomendacji nabycia lub zbycia instrumentów finansowych ani oferty świadczenia usług maklerskich. Handel kontraktami na różnice kursowe (CFD), walutami i pochodnymi wiąże się z wysokim ryzykiem szybkiej utraty środków. Na detalicznych rachunkach CFD objętych unijną ochroną przed saldem ujemnym strata jest ograniczona do środków na rachunku; inne instrumenty, status klienta profesjonalnego lub jurysdykcje spoza tego reżimu mogą podlegać odmiennym zasadom. Raporty regulatorów (ESMA[16], krajowe organy nadzoru) konsekwentnie pokazują, że znaczna większość rachunków detalicznych CFD kończy okres rozliczeniowy na stracie. Narzędzia automatyzacji (screenery, EA, algorytmy) zwiększają tempo egzekucji — i równolegle tempo strat, jeśli są nieprzemyślane. Przed użyciem automatu na żywym rachunku oceń swoje doświadczenie, zrozumienie ryzyka i sytuację finansową; w razie wątpliwości skonsultuj się z licencjonowanym doradcą inwestycyjnym.

FAQ — Automatyzacja i screening w AT

Czy potrzebuję umieć programować, żeby korzystać ze screeningu?

Nie. Wbudowane screenery TradingView i dashboardy MT4/MT5 działają na zasadzie „klikasz filtry, ustawiasz progi, dostajesz listę". Pine Script i MQL dodają możliwości (własne warunki, złożone alerty), ale podstawowy screening nie wymaga pisania kodu.

Czy warto kupić gotowy Expert Advisor (EA)?

Z dużą ostrożnością. Rynek gotowych EA jest pełen produktów overfitted — piękny backtest, katastrofa na żywo. Jeśli rozważasz zakup: szukaj forward testu na Myfxbook z potwierdzoną historią, sprawdź niezależne recenzje i upewnij się, że rozumiesz logikę systemu. EA, którego nie rozumiesz, to czarna skrzynka.

Ile alertów powinienem mieć ustawionych jednocześnie?

Zależy od stylu, ale 5–15 alertów jednocześnie to rozsądny zakres dla swing tradera. Zbyt mało — możesz przegapić okazję. Zbyt dużo — dostajesz powiadomienia co godzinę i zaczynasz je ignorować (i to jest gorsze niż brak alertów, bo daje fałszywe poczucie, że „monitorujesz rynek"). Ustawiaj alerty na parach z watchlisty, nie na całym rynku.

Jak wiarygodny jest backtest na Forex?

Backtest daje ci dolną granicę problemów — na żywo zwykle dochodzą koszty i ograniczenia, których prosty test nie odtwarza (poślizg, rozszerzające się spready, psychologia). Wiarygodność zależy mocno od jakości danych: test na danych tickowych z uwzględnieniem zmiennego spreadu jest dużo bardziej miarodajny niż test na danych OHLC H1 ze stałym spreadem. Traktuj backtest jako test logiki, nie prognozę zysków. Forward test uzupełnia backtest o rzeczywiste warunki działania — ale jego wartość zależy od liczby transakcji, długości próby i liczby objętych reżimów rynkowych, nie od samego upływu czasu.

TradingView czy MT4/MT5 do screeningu?

TradingView i MT nie konkurują o to samo. TradingView jest wygodniejszy do filtrowania i alertów (screener w chmurze, alerty push bez konieczności trzymania platformy otwartej, Pine Script). MT4/MT5 wciąż dominuje do egzekucji zleceń u wielu brokerów. Przestań szukać jednej platformy do wszystkiego — wielu traderów ma analiza + alerty w TradingView, a egzekucja w MT4/MT5, i to jest OK.

Czy Python jest lepszy do backtestingu niż Pine Script?

Python (backtrader, vectorbt, pandas) daje większą elastyczność: dowolne dane, pełna kontrola, zaawansowana analiza statystyczna. Pine Script jest prostszy i wystarczy dla większości strategii opartych na wskaźnikach. Jeśli umiesz programować — masz więcej możliwości. Jeśli nie — Pine Script pokryje większość potrzeb.

Czy muszę odpalać screener codziennie?

Nie — jeśli jesteś swing traderem na D1, wystarczy rano w poniedziałek (pełny scan) i szybkie sprawdzenie w środę lub czwartek (czy coś nowego wpadło na radar). Resztę robi za ciebie system alertów ustawionych w poniedziałek. Codzienne odpalanie screenera ma sens przy krótszych interwałach (H4, H1), ale na D1 rynek nie zmienia się na tyle szybko, żeby trzeba było skanować go każdego dnia od nowa.

Źródła

Źródła główne

  1. Robert Pardo, The Evaluation and Optimization of Trading Strategies, 2nd ed., Wiley, 2008 — metodologia backtestingu, walk-forward analysis, rozpoznawanie overfittingu; kluczowa praca w kontekście walidacji strategii automatycznych.
  2. Ernest P. Chan, Quantitative Trading: How to Build Your Own Algorithmic Trading Business, 2nd ed., Wiley, 2021 — praktyczny przewodnik po budowaniu strategii ilościowych: od screeningu po egzekucję algorytmiczną.
  3. Perry J. Kaufman, Trading Systems and Methods, 6th ed., Wiley, 2020 — encyklopedyczne omówienie systemów transakcyjnych: filtry trendowe, screening, testowanie i optymalizacja strategii.
  4. Andreas F. Clenow, Following the Trend, Wiley, 2013 — systematyczne podejście do tradingu trendowego: screening instrumentów, backtesting portfela, zarządzanie pozycją; praktyczne aspekty automatyzacji.

Lektury uzupełniające

  1. David Aronson, Evidence-Based Technical Analysis, Wiley, 2007 — statystyczna walidacja metod AT: data mining bias, testy istotności, problem wielokrotnych porównań (data snooping); kluczowa lektura dla każdego, kto testuje strategie.
  2. Marcos Lopez de Prado, Advances in Financial Machine Learning, Wiley, 2018 — rozdz. 8–11: cross-validation w finansach, feature importance, pułapki backtestingu na danych finansowych.
  3. Alexander Elder, The New Trading for a Living, Wiley, 2014 — sekcja o automatyzacji: alerty, screenery, rola technologii w procesie decyzyjnym tradera dyskrecjonalnego.
  4. Kathy Lien, Day Trading and Swing Trading the Currency Market, 3rd ed., Wiley, 2016 — praktyczne aspekty screeningu par walutowych i organizacji workflow na Forex.
  5. Lukas Menkhoff, Mark P. Taylor, „The Obstinate Passion of Foreign Exchange Professionals: Technical Analysis", Journal of Economic Literature, Vol. 45, No. 4, 2007 — przegląd stosowania AT na Forex; kontekst dla dyskusji o roli automatyzacji wśród profesjonalnych traderów walutowych.
  6. Andrew W. Lo, Adaptive Markets: Financial Evolution at the Speed of Thought, Princeton University Press, 2017 — hipoteza rynków adaptacyjnych: dlaczego strategie, które działały w przeszłości, mogą przestać działać; implikacje dla automatyzacji i backtestingu.

Źródła instytucjonalne i dokumentacja

  1. Swiss National Bank (2015), „Swiss National Bank discontinues minimum exchange rate and lowers interest rate to −0.75%", komunikat prasowy, 15.01.2015.
  2. FCA (2015), „News for customers of Alpari (UK) Limited" — wejście Alpari (UK) w reżim administracji specjalnej.
  3. BIS Markets Committee (2017), „The sterling ‘flash event’ of 7 October 2016", styczeń 2017 — analiza zdarzenia: cienka płynność, zlecenia, reakcje algorytmów, rozbieżności między platformami.
  4. TradingView, Pine Script Docs — oficjalna dokumentacja języka: zachowanie skryptów na świecy bieżącej i zamkniętej (barstate), alerty, strategy().
  5. MetaQuotes, MQL5 Reference — oficjalna dokumentacja MQL5: wskaźniki, Expert Advisors, Strategy Tester.
  6. ESMA (2018), „ESMA agrees to prohibit binary options and restrict CFDs to protect retail investors", 27.03.2018 — pakiet interwencji produktowej: limity dźwigni, ochrona przed saldem ujemnym, ostrzeżenia o ryzyku; analizy nadzorów wskazywały 74–89% stratnych rachunków detalicznych CFD.

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