Automatyzacja i screening w analizie technicznej — narzędzia, workflow i pułapki
Forex to 28 najczęściej śledzonych par, dziesiątki interwałów i setki kombinacji wskaźników — a Ty masz jedną parę oczu. Próba ręcznego skanowania każdego wykresu po kolei to gwarancja, że o 17:00 będziesz miał mgłę umysłową i wejdziesz z frustracji w setup widmo na NZD/CAD. Screening automatyzuje tę pierwszą, mechaniczną fazę: filtruje rynek i podsuwa instrumenty, na które warto spojrzeć. Problem w tym, że łatwo przesunąć się od „pomocnego filtra" do ślepego zaufania wobec narzędzia, które nie rozumie kontekstu, nie widzi spreadu w rollowerze i nie wie, że za godzinę jest NFP.
- Screener nie zarabia. Co najwyżej oszczędza ci czas na odrzucaniu śmieci. Jeśli nie umiesz odsiać fałszywego układu po screeningu, tylko szybciej znajdziesz stratę. 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. Każda godzina gapienia się w pięciominutowe świece to jeden dodatkowy trade, który otworzysz z nudów. Alert ma cię odciągnąć od ekranu, żebyś nie handlował nudy zamiast setupu.
- Backtest nie mówi, ile zarobisz. Mówi tylko, czy twoja logika nie jest kompletnym śmieciem 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. Większość detalistów powinna zatrzymać się na poziomach 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" — tyle samo entuzjazmu co kolega z działu analiz, który przesyła ci wykres z dopiskiem „FYI". 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.
2. Spektrum automatyzacji: od alertu do algorytmu
Między „ręcznie" a „robotem" jest pięć stopni. Większość traderów, którzy po roku nadal zarabiają, siedzi gdzieś między stopniem 2 a 4 — nie wyżej. 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.
| Poziom | Co robi maszyna | Co robi trader | Przykłady |
|---|---|---|---|
| 1. Alert cenowy | Powiadamia, gdy cena osiągnie poziom | Analizuje, decyduje, wykonuje | Alert na EUR/USD = 1,0700 |
| 2. Alert wskaźnikowy | Powiadamia, gdy wskaźnik spełni warunek | Analizuje kontekst, decyduje | RSI(14) < 30 na D1 |
| 3. Screener | Filtruje listę instrumentów wg kryteriów | Przegląda wyniki, analizuje, decyduje | TradingView Screener |
| 4. Pół-auto system | Generuje sygnał + sugerowane parametry | Zatwierdza lub odrzuca, zarządza pozycją | Własny wskaźnik (custom indicator) + alert w Pine Script |
| 5. Pełna automatyzacja | Analizuje, otwiera, zarządza, zamyka | Monitoruje, interweniuje w awaryjnych sytuacjach | Expert 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].
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].
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. 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: cena powyżej EMA 200 na D1 = trend wzrostowy, poniżej = spadkowy. Można dodać warunek nachylenia (EMA rośnie, nie jest płaska). Filtr gruby, ale skutecznie eliminuje kontrtrend — a kontrtrend na siłę to jedna z rzeczy, które potrafią wykrwawić konto 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. ADX(14) > 25 = rynek w trendzie, < 20 = konsolidacja. Przydatny głównie jako filtr negatywny: jeśli ADX jest poniżej 20, sygnały trendowe na tym instrumencie mają niską wartość — i lepiej szukać okazji gdzie indziej.
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 Forex na D1 zdarza się rzadko — i kiedy się zdarza, zwykle nie oznacza „okazji kontrariańskiej". Częściej oznacza, że coś się właśnie rozpadło fundamentalnie: zmiana stóp procentowych, ryzyko geopolityczne, interwencja banku centralnego. RSI < 30 na D1 to filtr do otwarcia wykresu i sprawdzenia, dlaczego rynek wali — 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 — momentum zmienia kierunek. 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. Zakodowanie Fibonacciego to koszmar algorytmiczny — wymaga identyfikacji swingów, która na czystych, jednoznacznych trendach działa, a w konsolidacji rysuje poziomy na szumie. Skrypty TradingView pozwalają to zautomatyzować, ale traktuj wynik jako podpowiedź do ręcznej weryfikacji, nie gotowy setup.
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. Alert w TradingView to dzwonek do drzwi — to ty musisz sprawdzić, kto za nimi stoi, zanim otworzysz pozycję. Analiza formacji cenowych, kontekst wielointerwałowy i zarządzanie ryzykiem — to dalej twoja robota.
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.
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 faktyczną aktywnością w księdze zleceń market makerów to często dwie różne historie. 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 — stan na marzec 2026 (sprawdź 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=5
indicator("Alert: RSI<30 + cena<EMA200", overlay=true)
rsi_val = ta.rsi(close, 14)
ema200 = ta.ema(close, 200)
oversold = rsi_val < 30
below_ema200 = close < ema200
setup_signal = oversold and below_ema200
plot(ema200, color=color.blue, linewidth=2)
alertcondition(setup_signal, title="RSI_oversold_below_EMA200",
message="{{ticker}} — RSI < 30 pod EMA 200 D1")
Wklejasz w Pine Editor, dodajesz do wykresu, klikasz „Create Alert" → wybierasz warunek. Tyle. Webhook (opcjonalnie) wysyła ten sam komunikat JSON-em do dowolnego serwera.
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.
ipinfo.io) i wybierz hosting w TYM SAMYM datacenter lub przynajmniej mieście. ForexVPS/BeeksFX zwykle publikują mapy zgodności z konkretnymi brokerami. Profesjonalne środowiska idą dalej: VPS-y w klastrach Equinix LD4 (Londyn) lub NY4 (Nowy Jork) pozwalają na cross-connect światłowodem bezpośrednio do serwera liquidity providera lub do matchmakera brokera w tej samej serwerowni — redukuje to latencję do pojedynczych milisekund. Dla detalicznego swingu na D1 to zupełna przesada; dla strategii intraday opartych na newsach czy breakoutach na M1 — infrastrukturalna granica między „działa" a „nie działa". Latencja to nie luksus — to część rzeczywistej mechaniki egzekucji, której Strategy Tester nie modeluje.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.
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.
- Weekend: przegląd W1. Raz w tygodniu otwierasz 28 głównych par 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.
- 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?
- 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 poniżej w artykule) na podstawie odległości do potencjalnego SL — selekcja setupu bez prawidłowego sizingu to połowa roboty.
- 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.
- 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 zdechł; 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.
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ś". Najlepsi swing traderzy, których znam, w roku handlują przez 8 miesięcy, a pozostałe 4 patrzą, jak ich equity curve się nie zmienia — i tak jest dobrze.
7. Poniedziałek rano — jak wygląda screening 28 par
Żeby workflow z poprzedniej sekcji nie był abstrakcją, pokażę jak może wyglądać konkretny poniedziałek rano.
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 — RSI 33, ale ADX już tylko 18. Screener bazował na piątkowym zamknięciu D1, kiedy ADX wynosił 21 — przez weekend nie zaktualizował się. Rynek w konsolidacji, nie w trendzie. Odrzucam.
- 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 ADX zmienił się po zamknięciu. Dlatego ręczna weryfikacja po screeningu nie jest opcjonalna — jest częścią procesu.
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 walisz marketem w cienkim rynku albo wokół newsa, płacisz za to slippage 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 silniejszy sygnał niż każde z tych kryteriów osobno. 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ść.
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.
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 twoja logika nie jest kompletnym śmieciem 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; MT5 pozwala ustawić „Random" lub konkretną wartość.
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 retail to oznacza, że backtest systematycznie zawyża zyski o połowę spreadu na każdej transakcji. Przy 200 transakcjach rocznie na EUR/USD i spreadzie 1 pips to dodatkowe 100 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. Pine Script domyślnie generuje sygnały na zamknięciu świecy (barstate.isconfirmed), ale część traderów w testach przestawia na 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).
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.
Jak interpretować wyniki
Kluczowe metryki backtestingu:
| Metryka | Co mówi | Na co uważać |
|---|---|---|
| Profit Factor (PF) | Suma zysków / suma strat | Wielu 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 Drawdown | Największy spadek kapitału od szczytu do dołka | Na żywym koncie drawdown często okazuje się głębszy niż w backteście[2]. Planuj z zapasem |
| Win Rate | Procent transakcji zyskownych | Bez kontekstu R:R bezużyteczny. 30% trafień + R:R 1:3 = zyskowna strategia |
| Liczba transakcji | Ile transakcji wygenerował test | Nie 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 Ratio | Zwrot 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ć
Trader Jan testuje strategię: „kup, gdy RSI(14) < 30 na D1 na EUR/USD, SL 50 pips, TP 150 pips". Testuje na danych z lat 2020–2025, optymalizuje RSI (próbuje wartości od 10 do 30), optymalizuje SL (od 30 do 80 pipsów), optymalizuje TP (od 80 do 200 pipsów). Wybiera kombinację RSI=22, SL=43, TP=167 — bo ta ma najwyższy profit factor: 2,8.
Problem: Jan przetestował dziesiątki kombinacji na tych samych danych i wybrał 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ć: Jan powinien podzielić dane na okres treningowy (2020–2023) i testowy (2024–2025). Optymalizować na danych treningowych, a potem sprawdzić wybraną kombinację na danych testowych — ani razu wcześniej. 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.
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). Forward test eliminuje problem dopasowania do przeszłości — bo przyszłości jeszcze nie znasz. 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]
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, jak głęboki drawdown byłby w najgorszym z 1000 scenariuszy. Zwykle 1,5–2× gorszy niż historyczny maksymalny drawdown. To jest twój realny worst case, nie to, co widzisz w Strategy Testerze. Narzędzia w pandas/Python (np. vectorbt) robią to natywnie; w MT5 musisz najczęściej wyeksportować wyniki do arkusza i policzyć ręcznie. Praktyczna reguła: jeśli 95 percentyl Monte Carlo DD > 30% kapitału, strategia jest zbyt zmienna dla komfortowego trzymania się jej przez cały cykl strat.
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:
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()
gain = delta.clip(lower=0).rolling(14).mean()
loss = -delta.clip(upper=0).rolling(14).mean()
rsi = 100 - (100 / (1 + gain / loss))
if rsi.iloc[-1] < 30:
print(f"{p}: RSI = {rsi.iloc[-1]:.1f} — w wyprzedaniu")
Tyle. 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.
while True. Dobrze zapowiadający się quant napisał w Pythonie bota z logiką uśredniania strat (Martingale) podłączonego do OANDA REST API. Błąd logiczny: 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. Rano trader obudził się z kilkudziesięcioma otwartymi pozycjami na EUR/TRY, rozłożonymi na szczycie nocnego swingu, i wezwaniem do uzupełnienia depozytu rzędu 5-cyfrowej kwoty USD. 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 kill-switcha. Rate limiting i backoff to nie zalecenie — to polisa na życie konta.
11. Pułapki automatyzacji
Automatyzacja oszczędza czas i redukuje błędy emocjonalne — ale wprowadza własne problemy. Poniżej najczęstsze.
Overfitting (dopasowanie do przeszłości)
Overfitting to nie „błąd". To domyślne zachowanie mózgu konfrontowanego z danymi i interfejsem optymalizacji. Jeśli Strategy Tester ma zielony slider i przycisk „Optimize" — wpadniesz. Pytanie brzmi: zrozumiesz to w tygodniu, czy po trzech miesiącach żywego tradingu? 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 więcej niż 4–5 parametrów do optymalizacji.
- 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.
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.
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.
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.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.
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 w kodzie EA:
if (AccountFreeMarginCheck < required_margin) { return; }przed każdym otwarciem nowej pozycji.
Automatyzuj to, co jest tępe, żmudne i powtarzalne: skan, filtr, alert. Nie automatyzuj tego, czego sam jeszcze nie rozumiesz — inaczej tylko szybciej zautomatyzujesz własną głupotę. 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ędzie | Język skryptowy | Screening | Alerty | Backtesting | Auto-egzekucja | Koszt (marzec 2026) |
|---|---|---|---|---|---|---|
| TradingView (Free) | Pine Script | Tak (Forex screener) | Kilka jednocześnie | Pine Script strategy() | Nie (webhook do API) | 0 USD |
| TradingView (Essential–Ultimate) | Pine Script | Tak (zaawansowane filtry) | 20–1000 w zależności od planu | Pine Script strategy() | Webhook + API brokera lub natywna integracja brokerska | ~15–60 USD/mies. |
| MT4 | MQL4 | Własne wskaźniki (custom indicators) | Tak (popup, push, email) | Strategy Tester (1 symbol) | Expert Advisors | 0 USD (od brokera) |
| MT5 | MQL5 | Własne wskaźniki | Tak (popup, push, email) | Strategy Tester (multi-currency) | Expert Advisors | 0 USD (od brokera) |
| cTrader | C# | Ograniczony | Tak | cTrader Automate | cBots | 0 USD (od brokera) |
| Python | Python | Pełna elastyczność | Własne (e-mail, Telegram, push) | backtrader, vectorbt, własny | Przez API brokera (OANDA, IBKR) | 0 USD (open source) |
Koszty orientacyjne na marzec 2026. Limity alertów TradingView zmieniają się — podane wartości pochodzą z oficjalnego cennika na dzień publikacji. MT4/MT5 i cTrader dostarczane bezpłatnie przez brokerów.
- 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, ale eliminują 80% szumu.
- 1 typ alertu na start: cenowy, na strefach S/R z tygodniówki. Później dodasz wskaźnikowe.
- 0 EA na starcie. Serio. 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, zanim wrzucisz strategię na żywe konto.
Kalkulator wielkości pozycji — wbudowany
Selekcja setupu bez prawidłowego sizingu to połowa roboty. Podaj wielkość konta, % ryzyka i odległość do SL w pipsach — kalkulator zwróci zalecany rozmiar pozycji i kwotową stratę w razie trafienia SL. Formuła: rozmiar_pozycji [loty] = (kapitał × ryzyko%) ÷ (SL_pipsy × wartość_pipsa).
Kalkulator operacyjny, nie porada inwestycyjna. Jest świadomie uproszczony i najbardziej dokładny dla par majors z USD jako walutą kwotowaną. Dla innych instrumentów (egzotyki, krzyżówki bez USD, złoto, indeksy, krypto) wartość pipsa na lot zależy od kursu i specyfikacji kontraktu — sprawdź w kalkulatorze brokera lub u MyFxBook z aktualnymi danymi rynkowymi.
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 będzie gorzej (slippage, 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. Wyniki forward testu (demo, 3–6 miesięcy) są zawsze bardziej miarodajne niż sam backtest.
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
- 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.
- 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ą.
- Perry J. Kaufman, Trading Systems and Methods, 6th ed., Wiley, 2020 — encyklopedyczne omówienie systemów transakcyjnych: filtry trendowe, screening, testowanie i optymalizacja strategii.
- 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
- 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.
- 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.
- Alexander Elder, The New Trading for a Living, Wiley, 2014 — sekcja o automatyzacji: alerty, screenery, rola technologii w procesie decyzyjnym tradera dyskrecjonalnego.
- Kathy Lien, Day Trading and Swing Trading the Currency Market, 3rd ed., Wiley, 2016 — praktyczne aspekty screeningu par walutowych i organizacji workflow na Forex.
- 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.
- 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.