BTC251,0k zł0,60%
ETH7,70k zł0,16%
XRP4,99 zł0,10%
LTC201 zł1,95%
BCH1,59k zł9,06%
DOT5,20 zł3,79%

Automatyzacja tradingu: EA, skrypty MQL, cBoty i VPS

Każdy rok widzę nowych ludzi, którzy kupili EA za 500 dolarów i poszli spać. Budzą się z margin callem. Automatyzacja nie naprawia złej strategii. Daje jej większą częstotliwość i szybszą drogę do straty, bo robot wykonuje bzdury z żelazną konsekwencją. Ten artykuł pokaże ci, jak działa automatyzacja na MT4, MT5 i cTrader, czym różnią się EA od skryptów i wskaźników, dlaczego VPS to nie luksus, jak rozpoznać scam na marketplace'ach i jakie zabezpieczenia wbudować w każdego robota, zanim wpuścisz go na żywy rynek.

Automatyzacja tradingu — Expert Advisors, skrypty MQL, cBoty i serwery VPS dla tradera Forex
Najważniejsze w 60 sekund
  • EA nie myśli. Odpala warunki. Jeżeli warunki są głupie, rachunek zapłaci za to szybciej niż przy ręcznym handlu. EA egzekwuje logikę, którą mu wpisałeś. Jeśli logika jest wadliwa, EA będzie wadliwie handlował 24 godziny na dobę, bez przerwy, bez refleksji
  • MQL4 jest prostszy, MQL5 jest potężniejszy — ale niekompatybilny. Twoje EA z MT4 nie uruchomią się na MT5 bez przepisania. Migracja to projekt, nie kliknięcie
  • cBoty na cTrader używają C# — pełnoprawnego języka z ekosystemem .NET. Jeśli znasz programowanie, cTrader daje ci więcej niż MQL. Jeśli nie znasz — próg wejścia jest wyższy
  • Ogromna część gotowych EA z marketplace'ów to curve-fitting, grid, martingale albo czarna skrzynka bez przewagi. Piękna krzywa equity niczego nie dowodzi. Może oznaczać edge, overfit albo ukryty martingale. Bez OOS, forwardu i analizy profilu ryzyka to tylko ładny wykres
  • EA bez VPS to pół rozwiązania. Jeden restart Windows, jedno zerwanie internetu, jeden skok napięcia — i twoja pozycja zostaje bez nadzoru na rynku, który nie śpi
  • Kill switch to nie opcja — to obowiązek. Każdy EA musi mieć twardy limit drawdownu, maksymalną liczbę transakcji i equity guard. Bez tego oddajesz konto algorytmowi bez hamulca

1. Expert Advisors — co to jest, jak działa, kiedy ma sens

Expert Advisor to program napisany w języku MQL4 (MetaTrader 4) lub MQL5 (MetaTrader 5), który automatycznie otwiera, zarządza i zamyka pozycje na podstawie zaprogramowanej logiki. EA działa na wykresie konkretnego instrumentu — przypinasz go do charta EUR/USD na M15 i od tego momentu kod decyduje, kiedy kupić, kiedy sprzedać, gdzie postawić stop loss i kiedy zamknąć pozycję. Ty możesz wyłączyć komputer. Albo nie — ale EA nie potrzebuje twojej obecności, żeby działać.

Architektura EA jest prosta. Na MT4 EA ma trzy kluczowe funkcje: OnInit() uruchamia się raz przy starcie (inicjalizacja zmiennych, walidacja parametrów), OnTick() wykonuje się przy każdym nowym ticku cenowym (tu jest logika tradingowa — warunki wejścia, wyjścia, zarządzanie pozycją), OnDeinit() przy zamknięciu (czyszczenie zasobów). Na MT5 struktura jest analogiczna, ale rozbudowana o dodatkowe handlery zdarzeń: OnTimer() (akcje cykliczne), OnTrade() (reakcja na zmiany w pozycjach), OnChartEvent() (interakcja z GUI). OnTick odpala się na każdym ticku, ale liczba ticków to produkt feedu twojego brokera. Jeden broker pokaże lawinę, drugi połowę.

Kiedy EA ma sens? Automatyzacja sprawdza się, gdy twoja strategia jest w pełni mechaniczna — tzn. masz zamknięty zestaw reguł, które nie wymagają interpretacji. Crossover dwóch średnich kroczących, przebicie poziomu z filtrem ATR, wejście na pullback do EMA z potwierdzeniem RSI — to są strategie, które da się zakodować. Jeśli twoja strategia wymaga „odczucia" rynku, interpretacji kontekstu świecy, oceny „jakości" setupu — nie da się tego zakodować. EA nie ma intuicji. EA ma instrukcje warunkowe: if-then-else. Albo warunki są spełnione, albo nie.

Schemat działania Expert Advisora — pętla OnTick(), warunki wejścia, zarządzanie pozycją i wyjście z transakcji
Schemat działania Expert Advisora — pętla OnTick(), warunki wejścia, zarządzanie pozycją i wyjście z transakcji

EA nie odczuwa presji, ale też nie odróżni normalnego rynku od rynku po eksplozji zmienności, jeśli mu tego nie zakodujesz. Egzekwuje plan bez wahania — również wadliwy plan, z chirurgiczną precyzją. Trader manualny może zauważyć zmianę reżimu i przestać handlować. EA tego nie zrobi, chyba że zaprogramujesz mu detekcję zmiany reżimu — a to jest znacznie trudniejsze niż brzmi.

Z rynku: SNB 15 stycznia 2015. SNB wyrwał podłogę spod EUR/CHF. Nie było normalnego rynku, nie było płynnych filli. EA gridowe próbowały uśredniać, sypały zapytaniami do serwerów. Po odzyskaniu łączności część klientów miała nie tylko wyzerowane rachunki, ale również ujemne salda. Kod robił swoje — tylko po drugiej stronie nie było już nikogo, kto chciałby tę pozycję odkupić. Po tym zdarzeniu wielu klientów miało ujemne salda — ochronę przed ujemnym saldem ESMA wprowadziła dopiero w 2018 roku. Jeden dzień zmienił regulacje dla całego sektora.

Z rynku: W marcu 2020, podczas covidowego krachu, tysiące EA opartych na mean reversion wyparowały konta w ciągu dni. Strategie, które przez lata zarabiały na wąskich range'ach, nagle znalazły się w środku trendu o sile niespotykanej od lat. EA nie wiedziały, że świat się zmienił. Handlowały dalej, kupując spadki, które nie przestawały spadać. Traderzy z twardymi limitami strat i procedurą wyłączenia systemu mieli większą szansę ograniczyć szkody. Reszta zwykle orientowała się za późno.

EA to wykonawca reguł. Zło zaczyna się w specyfikacji, nie w kodzie. Jakość egzekucji jest dokładnie tak dobra, jak jakość logiki, którą w niego włożyłeś. Jeśli wejście, wyjście i ryzyko nie dają się jednoznacznie zapisać, to nie masz systemu do automatyzacji. Masz opinię o rynku. Najpierw zdefiniuj edge, potem automatyzuj.

EA może obsługiwać pełną automatyzację (od sygnału do egzekucji) lub semi-automatyzację (np. auto-breakeven, trailing stop, skalowanie zysków). Większość początkujących powinna zacząć od semi-automatyzacji — eliminujesz najtrudniejszy element (dyscyplinę zarządzania pozycją) bez konieczności kodowania pełnej logiki decyzyjnej.

EA a sygnały i copy trading. EA to nie to samo co serwis sygnałów ani copy trading. EA działa lokalnie na twojej platformie, z twoim kodem i twoimi parametrami. Serwis sygnałów to subskrypcja cudzych transakcji. Copy trading to automatyczne kopiowanie zleceń innego tradera. W każdym przypadku oddajesz kontrolę — ale przy EA przynajmniej masz kod źródłowy i możesz zrozumieć logikę. Przy copy tradingu nie masz nic oprócz historii equity kogoś, kogo nie znasz.
Tick volume to nie wolumen rynku. Na detalicznym FX w MetaTraderze widzisz głównie tick volume — liczbę zdarzeń cenowych, nie scentralizowany wolumen rynku OTC. Wszelkie logiki „wolumenowe" w EA (VSA, volume breakout) trzeba traktować ostrożnie i weryfikować na futures z CME.

2. MQL4 vs MQL5 — różnice, kompatybilność, migracja

MQL4 i MQL5 to dwa różne języki programowania. Nie wersje tego samego języka — różne języki z różną składnią, różnym modelem obiektowym i różnym API. Trader, który pisze EA na MT4 i chce go przenieść na MT5, nie robi „upgrade" — robi przepisanie. To fundamentalna różnica, której wielu traderów nie rozumie, dopóki nie spróbuje.

MQL4 — proceduralny i prosty. Składnia C-like, proceduralna: OrderSend() otwiera pozycję jednym wywołaniem, iClose() daje cenę zamknięcia, iMA() zwraca wartość wskaźnika. MQL4 obniża próg wejścia, więc powstaje mnóstwo kodu pisanego bez testów, bez architektury i bez kontroli ryzyka. Nie myl łatwości napisania bota z szansą na przewagę.

MQL5 — obiektowy i rozbudowany. Klasy, dziedziczenie, polimorfizm. Handel przez CTrade, dane historyczne przez bufory (CopyClose()), wskaźniki przez handlery i CopyBuffer(). Więcej struktury i kontroli — ale też więcej boilerplate'u dla prostych zadań.

Porównanie kodu MQL4 i MQL5 — otwarcie pozycji, dostęp do danych i obsługa wskaźników w obu językach
Porównanie kodu MQL4 i MQL5 — otwarcie pozycji, dostęp do danych i obsługa wskaźników w obu językach
CechaMQL4MQL5
ParadygmatProceduralny (C-like)Obiektowy (klasy, dziedziczenie)
Otwarcie pozycjiOrderSend() — jedno wywołanieCTrade.Buy() / CTrade.Sell() — obiekt
Dane historyczneiClose(), iOpen() — bezpośredni dostępCopyClose() do bufora — kopiowanie
WskaźnikiiMA() zwraca wartośćiMA() zwraca handle, CopyBuffer() daje wartość
Tryb pozycjiHedging onlyHedging lub netting (zależy od brokera)
Timeframe'y921
Próg wejściaNiski — weekend wystarczyŚredni — wymaga zrozumienia OOP
Ekosystem gotowego koduOgromny (20 lat akumulacji)Duży, ale mniejszy niż MQL4
PrzyszłośćBrak nowych licencji MT4Aktywnie rozwijany przez MetaQuotes

MT5 domyślnie pracuje w trybie netting (jedna pozycja netto per instrument), co łamie logikę starych EA z MT4 operujących na wielu niezależnych pozycjach tego samego instrumentu. Broker może włączyć tryb hedging, ale logika zarządzania pozycjami i tak wymaga przepisania. W praktyce: pozycje zarządzane po identyfikatorze MagicNumber w MT4 nałożone na siebie w MT5 w trybie netting po prostu zamkną lub zredukują pierwotną pozycję, paraliżując logikę bota.

W MQL5 korzystanie z klas handlowych i standardowej biblioteki zwykle zmniejsza ryzyko błędów implementacyjnych względem ręcznego składania logiki zleceń od zera — pod warunkiem, że rozumiesz, co dzieje się pod spodem.

Praktyczna kompatybilność dla nietrywialnych EA jest niska. EA z MT4 nie przenosi się na MT5 bezbolesnie. Dla prostych narzędzi różnice bywają do obejścia, ale dla większości sensownych EA oznacza to przepisywanie logiki. Kompilator MT5 ma tryb „kompatybilności", ale w praktyce każdy nietrywalny EA wymaga ręcznego przepisania — OrderSend(), OrderSelect(), OrderClose() z MQL4 nie istnieją w czystym MQL5, a model pozycji/zleceń jest fundamentalnie inny.

Kiedy zostać na MQL4? Jeśli masz działające EA, które generują wynik, broker oferuje MT4, i nie potrzebujesz multi-currency testera ani DOM — zostań. Migracja dla samej migracji nie ma sensu. Nie migrujesz systemu dlatego, że MT5 wygląda lepiej. Migrujesz tylko wtedy, gdy stary stack realnie ogranicza testowanie, egzekucję albo utrzymanie. Traderzy, którzy przenosili działające systemy na MT5 tylko dlatego, że MT5 jest „nowszy", często tracili miesiące na debugging i walidację — a wynik w tym czasie wynosił zero.

Kiedy przejść na MQL5? Jeśli budujesz nowy system od zera, jeśli potrzebujesz testowania portfelowego, jeśli twoja strategia handluje więcej niż jednym instrumentem jednocześnie, jeśli chcesz korzystać z walk-forward analysis w testerze — MQL5 jest lepszym wyborem. Inwestycja w naukę OOP zwróci się w postaci kodu łatwiejszego do utrzymania i rozbudowy. Ale nie łudź się, że MQL5 sam w sobie poprawi twój wynik tradingowy — poprawi infrastrukturę, nie strategię.

Strategia migracji. Zacznij od EA, który generuje wynik. Przepisz go na MQL5, porównaj wyniki tick po ticku w Strategy Tester — rozbieżności powyżej 5% w PnL oznaczają, że logika nie jest identyczna.

Biblioteki MQL5 Standard Library. MQL5 oferuje rozbudowaną bibliotekę standardową z klasami do handlu (CTrade, CPositionInfo, COrderInfo), analizy technicznej (CiMA, CiRSI), zarządzania pozycjami i obsługi zdarzeń. Korzystanie z biblioteki standardowej zamiast pisania wszystkiego od zera oszczędza czas i zmniejsza ryzyko błędów — te klasy są testowane przez miliony użytkowników. Ale musisz rozumieć, co robią pod spodem. Ślepe wywoływanie CTrade.Buy() bez wiedzy, jakie parametry domyślne ustawia — to przepis na niespodzianki.

MQL5 Cloud Network. MT5 pozwala wynająć moc obliczeniową z chmury do masowej optymalizacji — tysiące rdzeni zamiast domowego PC, ale więcej mocy = więcej kombinacji parametrów = większa pokusa overfittingu.

3. cBoty i cAlgo na cTrader — C#, API i przewagi nad MQL

cTrader Automate (dawniej cAlgo) to środowisko automatyzacji na platformie cTrader od Spotware. cTrader używa C#/.NET z pełnym dostępem do ekosystemu — IDE, debugger, unit testy. Znajomość C# pomaga, ale API cTrader, mechanika rynku i logika egzekucji to osobna nauka. Dla tradera-amatora, który dopiero uczy się programowania — próg jest wyższy niż MQL4, porównywalny z MQL5.

Architektura cBota. cBot dziedziczy po klasie Robot. Metoda OnStart() odpowiada OnInit() z MQL. OnTick() działa identycznie — wywoływana przy każdym ticku. OnBar() to dodatkowy handler wywoływany przy zamknięciu świecy — w MQL nie ma natywnego odpowiednika, musisz go symulować. OnStop() to odpowiednik OnDeinit(). API jest czytelne i dobrze udokumentowane: ExecuteMarketOrder(TradeType.Buy, SymbolName, volume) otwiera pozycję. Positions to kolekcja otwartych pozycji z pełnym LINQ.

Przewagi cTrader Automate nad MQL:

  • C# zamiast MQL — pełny język z generics, async/await, LINQ, kolekcjami, exception handling. Kod jest testowalny poza platformą, w Visual Studio z unit testami
  • Dostęp do .NET — możesz importować biblioteki NuGet: HTTP client do pobierania danych z API, JSON parser, ML.NET do machine learningu, biblioteki do obliczeń statystycznych. MQL nie ma ekosystemu zewnętrznych pakietów
  • Open API — cTrader udostępnia REST i FIX API do budowania własnych aplikacji tradingowych poza platformą. Możesz zbudować dashboard w React, który zarządza pozycjami na cTrader przez API. Na MetaTrader potrzebujesz DLL, bridge'a i dużo cierpliwości
  • Backtesting z tickami — cTrader oferuje backtesting z danymi tickowymi, nie tylko z modelowaniem OHLC. Dla strategii scalpingowych i HFT-like to krytyczna różnica
  • OnBar() handler — natywne wywołanie przy zamknięciu świecy eliminuje konieczność ręcznego sprawdzania nowej świecy w OnTick(). Mniej kodu, mniej błędów
Środowisko cTrader Automate z edytorem C#, podglądem backtestu i panelem parametrów cBota
Środowisko cTrader Automate z edytorem C#, podglądem backtestu i panelem parametrów cBota

Wady i ograniczenia. Ekosystem cBotów jest wyraźnie mniejszy niż ekosystem EA wokół MetaTradera. Jeśli szukasz gotowego rozwiązania, na MetaTrader znajdziesz więcej. Jeśli piszesz sam — cTrader jest lepszym środowiskiem. Społeczność cTrader jest mniejsza, co oznacza mniej tutoriali, mniej odpowiedzi na forach, mniej gotowych snippetów do skopiowania. Programista poradzi sobie. Trader uczący się kodowania od zera będzie miał trudniej niż na MQL4. cTrader Automate ma sens głównie dla ludzi, którzy realnie wykorzystają C# i integracje API — nie dla tych, którzy chcą „mieć lepszą platformę" bez planu automatyzacji.

cTrader vs MetaTrader — porównanie automatyzacji:

AspektMetaTrader (MQL)cTrader (C#)
JęzykMQL4/MQL5 (dedykowany)C# (.NET ecosystem)
IDEMetaEditor (wbudowany)cTrader Automate + Visual Studio
Zewnętrzne bibliotekiBrak natywnego package manageraNuGet — tysiące pakietów
API zewnętrzneDLL import (skomplikowany)REST, FIX, Open API (natywne)
Unit testingBrak natywnego wsparciaxUnit, NUnit, MSTest — pełne wsparcie
Ekosystem gotowego koduOgromny (dziesiątki tysięcy)Mały (setki)
BacktestingMT4: słaby. MT5: dobryTickowy, dokładny
DeploymentKopiuj plik .ex4/.ex5Kompilacja w platformie

Kiedy wybrać cTrader Automate? Jeśli znasz C#, jeśli twój broker oferuje cTrader, jeśli potrzebujesz integracji z zewnętrznymi API, jeśli budujesz system, który wykracza poza prostą logikę if-then na wykresie. cTrader jest platformą dla programujących traderów, nie dla traderów, którzy chcą się nauczyć programować. Jeśli jesteś w tej drugiej grupie — MQL4 na MT4 to łagodniejsza krzywa uczenia.

Open API cTrader. cTrader oferuje Open API dla zaawansowanych integracji, ale to niszowy use case.

4. Skrypty vs EA vs wskaźniki custom — co do czego służy

Na MetaTrader istnieją trzy rodzaje programów MQL i każdy służy do czegoś innego. Traderzy często mylą je ze sobą, co prowadzi do nieporozumień: ktoś szuka „skryptu do automatycznego handlu", podczas gdy potrzebuje EA. Ktoś inny próbuje zbudować wskaźnik, który otwiera pozycje — a wskaźniki nie mają do tego uprawnień.

CechaExpert Advisor (EA)SkryptWskaźnik custom
Czas działaniaCiągły — działa na wykresie do usunięciaJednorazowy — wykonuje się i kończyCiągły — rysuje na wykresie do usunięcia
Może handlować?Tak — pełny dostęp do zleceńTak — jednorazowe operacjeNie — nie ma uprawnień do zleceń
Reaguje na ticki?Tak — OnTick()Nie — uruchamia się razTak — OnCalculate()
Rysuje na wykresie?Może, ale to nie jest jego rolaNie (standardowo)Tak — to jego główna rola
Przykłady zastosowańAutomatyczny handel, zarządzanie pozycjąZamknięcie wszystkich pozycji, batch SL/TPCustom oscylator, supply/demand zones, MTF dashboard
Ile na jednym wykresie?Jeden EA na wykresJeden na raz (jednorazowy)Wiele wskaźników jednocześnie

Expert Advisor działa ciągle na wykresie, widzi każdy tick i ma pełny dostęp do zleceń. Na jednym wykresie może być tylko jeden EA — jeśli potrzebujesz kilku strategii na tym samym instrumencie, otwórz osobne wykresy. Skrypt to program jednorazowy: uruchamiasz, robi swoje, kończy się — typowo do operacji batchowych (zamknięcie pozycji, ustawienie SL). Wskaźnik custom rysuje na wykresie, ale NIE może handlować — może komunikować się z EA przez bufory danych, co daje czystą separację analizy od egzekucji.

Na cTrader podział jest analogiczny: cBot = EA, wskaźnik custom = indykator. Skryptów jako oddzielnej kategorii cTrader nie ma — jednorazowe operacje realizujesz przez cBota z logiką jednorazową w OnStart().

Najczęstsze błędy przy wyborze typu programu:

  • Wskaźnik, który próbuje handlować — wskaźniki custom na MT4/MT5 nie mają uprawnień do wysyłania zleceń. Jeśli widzisz wskaźnik obiecujący automatyczny handel, to albo oszustwo, albo wskaźnik wywołujący EA przez zmienne globalne (co jest hackiem, nie rozwiązaniem)
  • EA tam, gdzie wystarczy skrypt — jeśli potrzebujesz zamknąć wszystkie pozycje jednym kliknięciem, nie pisz EA. Napisz skrypt. EA będzie czekał na ticki, zużywał zasoby i komplikował zarządzanie wykresami bez powodu
  • Jeden mega-EA zamiast modularnej architektury — EA z 3000 linii kodu, który robi wszystko (handluje 5 strategiami, zarządza ryzykiem, rysuje na wykresie, wysyła maile), jest nie do utrzymania. Lepiej: osobny EA per strategia, osobny EA-nadzorca do risk managementu na poziomie konta, osobne wskaźniki do wizualizacji

Praktyczna rada: Zanim napiszesz EA, napisz skrypt. Skrypt to najprostszy program MQL — wykonuje jedną operację i kończy. Naucz się na skryptach, jak działa API platformy: jak otwierać pozycje, jak iterować po zleceniach, jak odczytywać dane rynkowe. Dopiero gdy skrypty działają poprawnie, przenieś logikę do EA, który robi to samo, ale ciągle.

Ścieżka nauki — od skryptu do EA:

  1. Skrypt 1: informacyjny. Napisz skrypt, który wypisuje w logu aktualną cenę Bid/Ask, spread, liczbę otwartych pozycji i wolne margin. Zero handlu, sama obsługa API
  2. Skrypt 2: operacyjny. Napisz skrypt zamykający wszystkie otwarte pozycje. Nauczysz się iteracji po zleceniach i obsługi OrderClose()/CTrade.PositionClose()
  3. Wskaźnik custom. Napisz prosty wskaźnik — np. ATR z mnożnikiem, rysujący linie na wykresie. Nauczysz się buforów, OnCalculate() i rysowania
  4. EA prosty. EA otwierający pozycję na crossover dwóch MA z twardym SL i TP. Minimum logiki, pełna ścieżka: warunek wejścia, otwarcie, zarządzanie, wyjście
  5. EA z zabezpieczeniami. Dodaj do prostego EA: kill switch, spread filter, max daily loss, powiadomienia push. Teraz masz coś, co można uruchomić na demo bez strachu
// Skrypt: zamknij wszystkie pozycje — MQL4
void OnStart() {
   for(int i = OrdersTotal()-1; i >= 0; i--) {
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
         if(OrderType() == OP_BUY)
            OrderClose(OrderTicket(), OrderLots(), Bid, 3, clrNone);
         else if(OrderType() == OP_SELL)
            OrderClose(OrderTicket(), OrderLots(), Ask, 3, clrNone);
      }
   }
   Print("Wszystkie pozycje zamknięte.");
}

Typowy scenariusz: pętla bez sprawdzenia pozycji. Brak walidacji, czy pozycja już istnieje, przed wysłaniem kolejnego zlecenia potrafi w szybkim rynku zamienić prosty bot w generator lawiny orderów — kilkaset zapytań na sekundę. Broker traktuje to jak atak DDoS i blokuje konto. Jedna brakująca linia kodu — i masz zamrożony rachunek na 48 godzin.

5. MQL5 Market i gotowe EA — jak odróżnić działający od scamu

MQL5 Market to oficjalny marketplace MetaQuotes, na którym sprzedawcy oferują EA, wskaźniki i skrypty — od darmowych po kosztujące kilka tysięcy dolarów. Dzisiejszy MQL5 Market to zbiór dziesiątek tysięcy produktów, wśród których ogromna część nie ma pokrycia w realiach żywego rynku. Problem: zdecydowana większość nie działa na live tak, jak obiecuje. Nie dlatego, że autorzy to oszuści (choć niektórzy są). Dlatego, że curve-fitting wygląda identycznie jak dobry backtest — dopóki nie włożysz pieniędzy.

Dane regulatorów europejskich (ESMA, FCA, KNF) pokazują, że 70-80% rachunków detalicznych CFD traci pieniądze. Żaden top EA z marketplace'u nie zmienił tej statystyki.

Curve-fitting (overfitting). Autor EA optymalizuje parametry na danych historycznych tak długo, aż krzywa equity wygląda idealnie. 20 parametrów, 5 lat danych, algorytm genetyczny — i masz EA z 95% win rate i smooth equity curve na backteście. Problem: EA nie nauczył się wzorca rynkowego. Nauczył się konkretnych ruchów cen z przeszłości. Na przyszłych danych — które wyglądają inaczej — ten sam EA będzie tracił. To jak zapamiętywanie odpowiedzi na test zamiast nauki materiału. Na tym samym teście dostaniesz 100%. Na nowym — zero.

Porównanie krzywej equity overfitowanego EA na danych in-sample (idealna) vs out-of-sample (katastrofa) — wizualizacja pułapki curve-fittingu
Porównanie krzywej equity overfitowanego EA na danych in-sample (idealna) vs out-of-sample (katastrofa) — wizualizacja pułapki curve-fittingu

Sygnały ostrzegawcze — red flags gotowych EA:

  • Brak forward testu — autor pokazuje tylko backtest. Piękna krzywa equity na danych historycznych nic nie dowodzi bez testu out-of-sample lub live forward test
  • Martingale w logice — podwajanie pozycji po stracie. Krzywa equity wygląda jak schody w górę — aż do momentu, gdy jedno duże tąpnięcie niszczy konto. Destrukcja konta przez martingale to klasyk
  • Grid bez stop loss — EA otwiera pozycje na różnych poziomach cenowych, czekając na powrót ceny. Działa w range'u. Zabija konto w trendzie
  • Brak drawdownu w backteście — każda realna strategia ma drawdown. EA z krzywą equity bez żadnego spadku to curve-fitting lub martingale ukryty w logice
  • Zbyt wiele parametrów — EA z 15-20 parametrami to model z wieloma stopniami swobody. Im więcej parametrów, tym łatwiej dopasować się do przeszłości. Solidne strategie mają 3-5 kluczowych parametrów
  • Autor nie pokazuje kodu źródłowego — na marketplace'ach sprzedaje się skompilowane pliki (.ex4, .ex5). Nie widzisz logiki. Nie wiesz, czy EA ma stop loss, czy używa martingale, czy ma kill switch. Kupujesz czarną skrzynkę
  • Obietnice konkretnych zysków — „10% miesięcznie gwarantowane", „podwajam konto w kwartał". Nikt nie może gwarantować zysków na rynku. Kto obiecuje — kłamie lub nie rozumie ryzyka

Jak weryfikować EA z marketplace'u:

  1. Szukaj forward testu na MyFxBook z zweryfikowanym kontem — nie backtestu, forward testu na żywym lub demo koncie z minimum 6 miesięcami danych
  2. Sprawdź drawdown na live koncie, nie na backteście. Każdy realny system ma drawdown. Jeśli nie ma — coś jest ukryte
  3. Uruchom własny backtest na swoich danych, z realnym spreadem i prowizją. Porównaj z wynikami autora. Duże rozbieżności = broker dependency lub curve-fitting
  4. Testuj na danych out-of-sample — dane, których EA „nie widział" podczas optymalizacji. Jeśli autor zoptymalizował na 2019-2023, przetestuj na 2024-2025
  5. Uruchom na demo minimum 3 miesiące przed włożeniem realnych pieniędzy. Trzy miesiące to minimum, żeby zobaczyć zachowanie w różnych warunkach rynkowych

Z rynku: Typowy schemat z marketplace'ów: gładka equity, dużo recenzji, mały drawdown na pokazie i ukryta logika grid/martingale, która wychodzi dopiero przy silnym ruchu kierunkowym. Schemat powtarza się co kilka miesięcy — zmienia się tylko nazwa EA i cena.

Z rynku: piękny EA, który zbierał monety przed walcem. Przez miesiące drukował małe, równe zyski. Krzywa equity gładka. Pod maską: uśrednianie, grid, brak twardego SL, dokładanie na stratnych pozycjach. Potem przyszedł jeden ruch kierunkowy i cały „geniusz" okazał się opóźnianiem bankructwa. Najgroźniejsze systemy to te, które miesiącami dają gładki wynik, bo pakują ogon ryzyka w przyszłość. Potem jeden ruch kasuje rok 'stabilności'.

Robustness test — czy EA przetrwa zmianę parametru? Prosty test: weź optymalne parametry EA i przesuń każdy o 10-20%. Jeśli wynik zmienia się z 50% zysku na 30% straty — EA jest overfitowany. Robustna strategia daje stabilne wyniki w „sąsiedztwie" optymalnych parametrów. Jeśli profit jest możliwy tylko przy MA period = 14, ale przy 13 i 15 strategia traci — to nie jest edge. To szczęśliwy traf w optymalizacji. Szukaj strategii, które zarabiają w szerokim zakresie parametrów — to sygnał, że łapią realny wzorzec rynkowy, nie szum.

Checklist: EA gotowy na live?
  • Minimum 200+ transakcji w backteście (im więcej, tym lepiej)
  • Average trade netto po kosztach > 0
  • Profit factor > 1,3 (po kosztach)
  • Max drawdown < 20% (na danych OOS)
  • Robustness: wynik stabilny po zmianie spreadu o +0,5 pip i delay o +200 ms
  • Test na dwóch różnych brokerach/feedach
  • Out-of-sample wynik dodatni
  • Forward test minimum 1 miesiąc na micro account
  • Jakość danych historycznych w testerze MT4 — niska jakość modelowania i uproszczone dane potrafią całkowicie zniekształcić wynik, zwłaszcza w strategiach krótkoterminowych
Modeling Quality — co naprawdę znaczy. Sam wskaźnik Modeling Quality w MT4 (nawet 99%) nie jest gwarancją rzetelnego testu. Backtest na M1 OHLC z interpolacją ticków to nie to samo co test na rzeczywistych danych tickowych (MT5: „Every tick based on real ticks"). Dla strategii scalpingowych różnica w wynikach może sięgać kilkudziesięciu procent. Zanim zaufasz backtestowi, sprawdź metodę modelowania danych. Dodatkowy problem: nawet jakość 99% nie uwzględnia zmiennego opóźnienia sieciowego (jitter), które w realu potrafi przesunąć czas fill'a o kilkadziesiąt milisekund — co dla scalpera może być gwoździem do trumny.
Workflow wdrożenia EA w 6 etapach:
  • Backtest IS: minimum 500 transakcji, profit factor > 1,3 po kosztach
  • OOS: minimum 25% danych wyłączonych z optymalizacji; wynik dodatni
  • Walk-forward: IS 12 mies. / OOS 3 mies., 4 okna. WFE ratio > 0,3. Te progi to heurystyki, nie twarde reguły. WFE poniżej 0,3 to sygnał ostrzegawczy, nie wyrok. Traktuj je jako punkt wyjścia do własnej kalibracji.
  • Demo: 1 miesiąc, monitoring logów i filli
  • Micro-live: 0,01 lot, 1-3 miesiące. Degradacja live vs backtest < 40%
  • Scale: dopiero po potwierdzeniu na live
Schemat wdrożenia EA w 6 etapach: backtest IS → OOS → walk-forward → demo → micro-live → scale — z progami liczbowymi przy każdym etapie
Schemat wdrożenia EA w 6 etapach: backtest IS → OOS → walk-forward → demo → micro-live → scale — z progami liczbowymi przy każdym etapie

Darmowe EA vs płatne — co wybrać? Na MQL5.com i na forach jak ForexFactory znajdziesz tysiące darmowych EA. Większość jest edukacyjna — pokazuje jak kodować, nie jak zarabiać. Ale darmowe EA z otwartym kodem źródłowym mają jedną ogromną przewagę nad płatnymi: widzisz, co robią. Możesz przeczytać logikę, zrozumieć strategię, zmodyfikować parametry, dodać zabezpieczenia. Płatny EA za 499 USD to skompilowany plik .ex4 — czarna skrzynka. Nie wiesz, czy ma martingale. Nie wiesz, czy ma kill switch. Nie wiesz nic, oprócz tego, co autor chce ci pokazać na backteście.

Backtest jest filtrem wstępnym. Pokazuje, jak logika zachowałaby się na uproszczonych danych historycznych — nie na rynku z rozszerzonym spreadem, gorszym fillem i brokerem, który widzi twój flow. Backtest pokazuje, co strategia ZROBIŁABY na danych historycznych przy idealnych warunkach egzekucji. Na żywym rynku masz slippage, requoty, rozszerzony spread podczas newsów, luki cenowe. Forward testing na demo lub małym live koncie to jedyny sposób walidacji — i nawet on nie gwarantuje przyszłych wyników. Gwarantuje tylko, że strategia przynajmniej przetrwała kontakt z rzeczywistością.

6. VPS — dlaczego EA bez VPS to pół rozwiązania

Virtual Private Server (VPS) to dedykowany serwer w chmurze, na którym uruchamiasz MetaTrader lub cTrader z EA, który działa 24 godziny na dobę, 5 dni w tygodniu, bez przerwy. Rynek Forex nie zamyka się, bo wyłączyłeś komputer. Twoje pozycje nie znikają, bo Windows postanowił zainstalować aktualizację o 3:00 w nocy. VPS eliminuje zmienną, która nie ma nic wspólnego z rynkiem — niezawodność twojego sprzętu i łącza.

Dlaczego nie wystarczy domowy komputer?

  • Uptime. Domowy PC nie ma 99.9% uptime. Masz przerwy w prądzie, restartujący się router, aktualizacje systemu, przegrzewanie się w lecie, domowników wyłączających komputer. Każda z tych przerw to okno, w którym twój EA nie monitoruje otwartych pozycji. Pozycja bez nadzoru to pozycja bez stop loss mentalnego — bo EA, który jest wyłączony, nie widzi niczego
  • Latencja. Twoje domowe łącze ma latencję 30-80 ms do serwera brokera. VPS w tym samym data center co serwer brokera ma 1-5 ms. Dla tradera manualnego różnica jest nieistotna. Dla EA, który reaguje na ticki i otwiera pozycje na breakout — 50 ms dodatkowej latencji to 50 ms gorszej ceny realizacji. Na 1000 transakcji to realne pieniądze
  • Crash protection. Jeśli twój komputer zawiesza się z otwartą pozycją, nie masz jak zamknąć pozycji ani przesunąć stop loss. Twój broker ma ustawiony SL na serwerze — ale jeśli używałeś trailing stop (który jest client-side na MT4!), trailing stop przestaje działać w momencie wyłączenia platformy. VPS, który jest redundantny i monitorowany, minimalizuje to ryzyko
  • Niezależność od twojego ISP. Jeśli twój dostawca internetu ma awarię na 4 godziny w środku nocy — na VPS EA działa dalej, bo VPS ma własne, redundantne łącze
Architektura VPS dla tradera — serwer VPS z MT4/EA w data center obok serwera brokera, niska latencja, ciągłe działanie 24/5
Architektura VPS dla tradera — serwer VPS z MT4/EA w data center obok serwera brokera, niska latencja, ciągłe działanie 24/5

Trailing stop na MT4 to client-side. To jeden z najbardziej niebezpiecznych aspektów automatyzacji bez VPS. Trailing stop w MetaTrader 4 nie jest wykonywany na serwerze brokera — jest wykonywany przez platformę klienta. Oznacza to, że jeśli wyłączysz platformę, trailing stop przestaje działać. Twój stop loss pozostaje na ostatniej pozycji, do której trailing go przesunął — ale dalsze przesuwanie nie następuje. VPS rozwiązuje ten problem, bo platforma na VPS jest zawsze włączona.

Koszt VPS vs koszt przestoju. Podstawowy VPS do tradingu kosztuje 10-30 USD miesięcznie. Jedna pozycja bez nadzoru, która przejedzie przez twój planowany stop o 100 pips, bo EA się wyłączył — kosztuje wielokrotnie więcej. VPS nie daje edge'a. Po prostu ogranicza głupie operacyjne zgony: restart systemu, zerwane łącze, martwy trailing stop. Jak kill switch, ale na poziomie infrastruktury.

Scenariusze awarii bez VPS — realne przypadki:

  • Windows Update o 3:00 w nocy. EA handluje sesję azjatycką, ma otwartą pozycję na AUD/USD z trailing stopem. Windows restartuje się na aktualizację. Trailing stop (client-side na MT4) przestaje działać. Pozycja zostaje z ostatnim ustawionym SL — 40 pips od aktualnej ceny. Rynek odwraca się — zamknięcie na SL zamiast na trailing'u. Strata: kilkadziesiąt pipsów, które trailing stop by oszczędził
  • Awaria ISP na 6 godzin. EA nie widzi ticków, nie reaguje na rynek. Otwarte pozycje istnieją, ale EA nie może ich modyfikować. Jeśli rynek wchodzi w flash crash — jedyne, co cię chroni, to server-side SL u brokera (o ile był ustawiony)
  • Przerwa w zasilaniu. Laptop na baterii wytrzyma 2-3 godziny. Desktop — zero sekund. UPS daje 15-30 minut. VPS w data center ma redundantne zasilanie, generatory diesel i przełączanie w milisekundach

Wielu EA na jednym VPS. Standardowy VPS z 2 GB RAM spokojnie obsłuży 2-3 instancje MT4, każdą z 3-5 wykresami i EA. Jeśli potrzebujesz więcej — skaluj RAM, nie liczbę VPS-ów. Każda instancja MT4 to ok. 300-500 MB RAM plus zużycie na dane historyczne. MT5 zużywa więcej, szczególnie z wieloma wykresami i indykatorami custom.

7. Wybór VPS: lokalizacja, latencja, RAM, koszt, dostawcy

Nie każdy VPS jest odpowiedni do tradingu. VPS do hostingu strony internetowej i VPS do uruchamiania MT4 z EA to dwa różne wymagania. Strona potrzebuje transferu danych i przestrzeni dyskowej. EA potrzebuje niskiej latencji, stabilnego uptime i wystarczającej ilości RAM do uruchomienia platformy z oknami wykresów.

Lokalizacja serwera — kluczowy parametr. VPS powinien stać fizycznie blisko serwera twojego brokera. Jeśli serwer brokera jest w Londynie (LD4 Equinix — popularny data center dla brokerów FX) — twój VPS powinien być w Londynie, najlepiej w tym samym data center lub sąsiednim. Latencja 1-3 ms vs 50-80 ms ma znaczenie przy EA reagujących na ticki. Pytaj brokera, gdzie stoi jego serwer, zanim kupisz VPS.

ParametrMinimumZalecaneUwagi
RAM1 GB2-4 GBMT4 z 5 wykresami zużywa ok. 500 MB. MT5 z multi-currency testerem chce więcej
CPU1 vCPU2 vCPUWięcej rdzeni = szybsza optymalizacja w testerze. Dla samego handlu 1 vCPU wystarczy
Dysk20 GB SSD40 GB SSDSSD — nie HDD. Platforma startuje szybciej, dane historyczne ładują się szybciej
SystemWindows Server 2016+Windows Server 2019/2022MT4/MT5 to aplikacje Windows. Linux wymaga Wine — możliwe, ale dodaje komplikacji
Uptime SLA99.5%99.9%+99.5% = do 43 godzin przestoju rocznie. 99.9% = do 8.7 godzin
Latencja do brokera< 10 ms< 3 msPytaj dostawcę o latencję do konkretnego data center brokera
Koszt miesięczny10-15 USD20-40 USDTańsze opcje istnieją, ale oszczędzanie na VPS przy realnym koncie to fałszywa ekonomia

Popularne typy dostawców VPS dla traderów:

  • VPS od brokera — wielu brokerów oferuje darmowy lub tani VPS przy minimalnym wolumenie (np. 5-10 lotów/miesiąc). Zaleta: VPS jest zoptymalizowany pod platformę brokera, latencja minimalna. Wada: lock-in — jeśli zmienisz brokera, tracisz VPS
  • Specjalistyczny VPS Forex — firmy takie jak ForexVPS.net czy BeeksFX oferują VPS dedykowane pod trading. Serwery w LD4, NY4, TY3 — data centerach, gdzie siedzą brokerzy FX. Dobre latencje, wsparcie rozumiejące MT4/MT5
  • Ogólny VPS chmurowy — AWS, Azure, Google Cloud, Hetzner, OVH. Tańsze, ale wymagają samodzielnej konfiguracji. Musisz wybrać region blisko brokera, zainstalować Windows, skonfigurować RDP, zainstalować platformę. Dla technicznego tradera — opcja. Dla nietechnicznego — zbyt dużo pracy

Konfiguracja VPS po zakupie: Połącz się przez RDP (Remote Desktop Protocol), zainstaluj MT4/MT5 lub cTrader, zaloguj się na konto brokerskie, przypnij EA do wykresu, ustaw auto-login platformy przy starcie systemu. Wyłącz aktualizacje automatyczne Windows (lub ustaw okno aktualizacji na weekend). Ustaw monitoring uptime — nawet prosty ping check z powiadomieniem SMS, żebyś wiedział, gdy VPS przestaje odpowiadać.

VPS nie naprawia słabej strategii, nie eliminuje slippage'u i nie czyni z detalicznego robota systemu klasy instytucjonalnej. Ogranicza wyłącznie ryzyko operacyjne.

Testuj VPS przed żywym kontem. Uruchom EA na demo przez minimum tydzień na VPS. Sprawdź, czy platforma nie crashuje, czy EA restartuje się po rozłączeniu, czy latencja jest stabilna. Dopiero gdy VPS działa stabilnie na demo — przenieś na live.

Checklist konfiguracji VPS dla tradingu:

  1. Wyłącz automatyczne aktualizacje Windows lub ustaw okno aktualizacji na weekend (sobota rano)
  2. Ustaw auto-login platformy MT4/MT5 po restarcie systemu (dodaj do autostart)
  3. Skonfiguruj watchdog — skrypt lub usługę, która restartuje platformę, jeśli przestanie odpowiadać
  4. Ustaw monitoring uptime z powiadomieniem SMS/email (np. UptimeRobot, Pingdom)
  5. Wyłącz wygaszacz ekranu i tryb uśpienia — VPS musi działać non-stop
  6. Ustaw silne hasło RDP i ogranicz dostęp po IP, jeśli dostawca na to pozwala
  7. Zainstaluj lekki antywirus lub wyłącz Windows Defender real-time scanning na folderze MT4, żeby nie spowalniał platformy
  8. Zrób backup konfiguracji EA, template'ów i ustawień — jeśli VPS padnie, musisz odtworzyć setup w minuty, nie godziny

VPS a cTrader. cTrader ma przewagę nad MetaTrader w jednym aspekcie: cTrader oferuje cTrader Copy i cloud-based execution dla niektórych funkcji. Ale cBoty nadal działają client-side — wymagają działającej instancji platformy, identycznie jak EA na MetaTrader. Jeśli automatyzujesz na cTrader, VPS jest tak samo potrzebny jak na MT4/MT5.

Porównanie latencji: domowy PC (50ms) vs VPS w data center brokera (1-2ms) — wpływ na jakość egzekucji EA
Porównanie latencji: domowy PC (50ms) vs VPS w data center brokera (1-2ms) — wpływ na jakość egzekucji EA

8. Pułapki automatyzacji: overfitting, spread sensitivity, broker dependency

Twoje strategie były do niczego manualnie? Będą do niczego po automatyzacji, tylko szybciej i bez przerw. EA skaluje edge — i skaluje brak edge'a z taką samą precyzją. Zamiast emocji masz błędy w kodzie. Zamiast niezdyscyplinowanego tradera masz overfitowany model. Zamiast złego zarządzania ryzykiem masz EA bez kill switch. Pułapki automatyzacji są inne niż pułapki handlu manualnego — ale nie mniej groźne.

Overfitting — najczęstszy zabójca EA. Optymalizujesz EA na 5 latach danych, znajdujesz kombinację parametrów z najwyższym zyskiem, uruchamiasz na żywym rynku — i EA traci. Nie dlatego, że rynek się zmienił. Dlatego, że EA nigdy nie umiał handlować — umiał tylko odtwarzać przeszłość. Overfitting to dopasowanie modelu do szumu w danych zamiast do sygnału. Im więcej parametrów, im dłuższe dane treningowe, im intensywniejsza optymalizacja — tym łatwiej o overfitting. Obrona: testuj na danych out-of-sample, rób walk-forward analysis, ogranicz liczbę parametrów do minimum.

Walk-forward analysis krok po kroku. Podziel dane na segmenty: np. 12 miesięcy optymalizacji (in-sample), 3 miesiące walidacji (out-of-sample). Optymalizuj parametry na pierwszych 12 miesiącach. Testuj na kolejnych 3 miesiącach BEZ zmiany parametrów. Przesuń okno o 3 miesiące do przodu i powtórz. Jeśli EA zarabia na każdym segmencie out-of-sample — masz sygnał robustności. Jeśli zarabia na in-sample, a traci na out-of-sample — masz overfitting. MT5 Strategy Tester ma wbudowany forward testing — używaj go. Na MT4 musisz robić to ręcznie, co jest żmudne, ale nie mniej ważne.

Walk-forward analysis — konkretne proporcje. Podziel dane na okna: 12 miesięcy optymalizacji (in-sample) + 3 miesiące walidacji (out-of-sample). Powtórz 4 razy, przesuwając okno. Oblicz Efficiency Ratio: suma wyników OOS / suma wyników IS. Jeśli poniżej 0,3 — system jest prawdopodobnie overfitowany. Jeśli powyżej 0,5 — masz roboczy punkt startu. To nie gwarancja, ale najlepsza dostępna heurystyka przed live.
Porównanie equity curve in-sample (idealna krzywa) vs out-of-sample (realna degradacja) — ilustracja overfittingu EA
Porównanie equity curve in-sample (idealna krzywa) vs out-of-sample (realna degradacja) — ilustracja overfittingu EA
Porównanie EA overfitowanego (lewa strona — idealne in-sample, katastrofa live) vs robustnego (prawa — umiarkowane wyniki, ale stabilne na żywym rynku)
Porównanie EA overfitowanego (lewa strona — idealne in-sample, katastrofa live) vs robustnego (prawa — umiarkowane wyniki, ale stabilne na żywym rynku)

Spread sensitivity. Twój EA zarabia na backteście ze spreadem 1.0 pip na EUR/USD. Na żywym rynku w szczycie sesji londyńskiej spread wynosi 0.8 pipa, ale o 22:00 CET rozszerza się do 2.5 pipa, a podczas NFP skacze do 8 pips. EA nie wie, że spread się zmienił — handluje dalej. Jeśli logika EA otwiera pozycję z take profit 10 pips, a spread wynosi 5 pips — połowa zysku zniknęła zanim pozycja się otworzyła. Obrona: wbuduj filtr spreadu w EA. Jeśli aktualny spread przekracza X% średniego spreadu — nie handluj. Testuj z realistycznym, zmiennym spreadem, nie ze stałym.

Z rynku: marzec 2020 i śmierć scalpingowego EA. EA z backtestem +340% na 3 lata, profit factor 2.1, max DD 7%. Live w marcu 2020: minus 60% konta. Diagnoza: spread podczas lockdownu skakał do 4-6 pipsów na EUR/USD (normalnie 0,6). EA otwierał pozycje z TP 8 pipsów i SL 12. Z spreadem 5 pipsów efektywny TP wynosił 3 pipsy, SL 17. Każde wejście zaczynało się od natychmiastowej straty. Backtest miał stały spread 0,7. Rzeczywistość — nie.

Spread EUR/USD w ciągu 24h z zaznaczonymi strefami: rollover, NFP, otwarcie/zamknięcie Londynu — strefy, w których EA nie powinien handlować
Spread EUR/USD w ciągu 24h z zaznaczonymi strefami: rollover, NFP, otwarcie/zamknięcie Londynu — strefy, w których EA nie powinien handlować

Z rynku: NFP i iluzja czystego wejścia. Na NFP detal patrzy na świecę, a powinien patrzeć na spread i fill. Strategia breakout może dać sygnał idealnie, tylko że wejście dostajesz kilka pipsów gorzej, spread jest chwilowo wielokrotnie szerszy, a stop techniczny zamienia się w stop egzekucyjny. Na screenie po fakcie wszystko wygląda czysto. Na rachunku wygląda jak po wypadku.

Broker dependency. EA, który zarabia u brokera A, traci u brokera B. Dlaczego? Inny feed cenowy, inny spread, inny slippage, inna szybkość egzekucji. Jeśli twoja strategia zależy od precyzji co do 1-2 pips — wynik jest uzależniony od brokera. To nie jest edge rynkowy. To jest edge brokerski, który zniknie, gdy broker zmieni dostawcę płynności lub model egzekucji. Obrona: testuj EA u minimum dwóch brokerów. Jeśli wyniki są drastycznie różne — strategia jest krucha.

Last look, fill policy i partial fills. Wynik EA zależy nie tylko od spreadu i latencji, ale też od polityki wykonania: market execution vs instant execution, last look u LP, partial fills, odrzucone zlecenia. Krótkoterminowy robot żyjący z kilku pipsów przewagi potrafi umrzeć od różnicy jakości wykonania, której inwestor z Excela nawet nie zauważy.

A-Book/B-Book i jakość egzekucji EA. Wynik EA nie zależy wyłącznie od logiki. Zależy też od tego, czy broker internalizuje flow, jak traktuje krótkoterminowe strategie, czy stosuje last look i jak wygląda jakość filli na market orderach. EA skuteczne na demo (ECN-like) mogą przegrywać na live u konkretnych brokerów — bo broker B-Book ma motywację, żeby re-kwotować lub opóźniać egzekucję EA, który skutecznie zarabia. Dla brokera szczególnie niewygodne są strategie krótkoterminowe o dodatnim expectancy netto po kosztach, bo taki flow bywa traktowany jako toksyczny i szybko trafia pod dodatkową obserwację. Brokerzy Market Maker mogą stosować wtyczki serwerowe (np. Virtual Dealer Plugin na MT4), które nakładają dodatkowe opóźnienie egzekucji na konta z zyskownymi EA. Zakres i sposób użycia zależą od brokera.

Latency injection w praktyce. Na części konfiguracji dealing-desk broker może technicznie wprowadzać dodatkowe opóźnienia lub inne reguły egzekucji per konto. Problem nie polega na nazwie wtyczki, tylko na tym, że detal zwykle nie widzi pełnej logiki wykonania. Dla scalperów z TP 5 pipsów nawet 200ms dodatkowego delay to realna różnica. Na platformie tego nie zobaczysz — jedyny sposób weryfikacji to porównanie timestampów zlecenia i filla na dużej próbie transakcji.

Client-side execution. EA działa na twojej platformie, na twoim komputerze (lub VPS). Zlecenia wysyłane są z twojej platformy do serwera brokera. Jeśli platforma zawiesza się, łącze zrywa, VPS restartuje — EA przestaje działać. Twoje otwarte pozycje zostają bez nadzoru. Stop loss ustawiony na serwerze brokera nadal działa (o ile był ustawiony jako server-side SL). Ale trailing stop, logika zarządzania pozycją, equity guard — wszystko, co jest w kodzie EA — przestaje działać. To fundamentalne ryzyko client-side automatyzacji.

Slippage w backteście vs reality. Backtest w MT4 domyślnie symuluje idealne fill'e — bez slippage'u, bez requotów, bez gapped openings. W realnym rynku twoje zlecenie market order może być zrealizowane 1-3 pips gorzej niż cena, przy której EA podjął decyzję. Na 500 transakcji rocznie to setki pips różnicy. Zawsze testuj z symulowanym slippage'em. W MT5 tester pozwala ustawić losowy delay — używaj go.

Asymetria slippage — ukryty koszt EA. Nie liczy się sam średni slippage, tylko jego rozkład: jeśli broker daje ci pełny ujemny slippage, a dodatni „znika", to strategia intraday może umrzeć mimo dobrego backtestu. Na prawdziwym ECN możesz dostać positive slippage. Na wielu platformach detalicznych — nie. To fundamentalna różnica w modelowaniu backtestu.

Koszt transakcji — ukryty zabójca krótkoterminowych EA. EA scalpingowy, który zarabia średnio 5 pips na transakcję, jest ekstremalnie wrażliwy na koszty. Spread 1.2 pip + komisja odpowiadająca 0.5 pipa + średni slippage 0.3 pipa = 2.0 pipa kosztów. Twój realny zysk to nie 5, a 3 pips na transakcję — 40% mniej niż na backteście z zerowym spreadem. Dla EA swing'owego z TP 100 pips te same koszty stanowią 2% — marginalny wpływ. Zasada: im krótszy timeframe i mniejszy TP, tym ważniejsze koszty transakcyjne. EA, który zarabia na backteście bez kosztów, a traci z realistycznymi kosztami — nie ma edge'a.

Próg opłacalności EA — koszt transakcyjny vs TP
Target (pipsy)Koszt (spread+komisja+slippage)% kosztu do TPOcena
52,0 pip40%Nieopłacalny dla większości
102,0 pip20%Na granicy — wymaga niskiego spreadu
202,0 pip10%Akceptowalny
502,0 pip4%Komfortowy

Koszt szacunkowy: spread 1,0 pip + komisja 0,5 pip + slippage 0,5 pip = 2,0 pip. Rzeczywisty koszt zależy od brokera, pary i warunków rynkowych.

Swap i koszt przetrzymywania. Część EA wygląda dobrze na backteście intraday, ale po uwzględnieniu swapów — szczególnie na egzotykach i CFD — expectancy siada. Triple swap (typowo w środę dla FX spot) potrafi zeżreć całodniowy zysk. W testach swapy i koszty przetrzymywania bywają źle odwzorowane. Trzeba jawnie sprawdzić, jak są modelowane w ustawieniach testu.

Broker dependency w szczegółach. Różni brokerzy dostarczają różne feedy cenowe. Broker A daje 18 ticków na sekundę na EUR/USD, broker B daje 5. EA, który reaguje na każdy tick, będzie generował inne sygnały u obu brokerów — nawet jeśli logika jest identyczna. Jeśli twój EA otwiera pozycje na breakout z dokładnością do 1 pipa, a broker A i broker B mają offsety cenowe 0.5-1.5 pipa wobec siebie — wyniki będą różne. To nie bug w EA. To reality check: jeśli wynik zależy od precyzji sub-pipowej, nie masz edge'a — masz iluzję.

Niesynchronizowane dane historyczne. Różni brokerzy mają różne godziny otwarcia/zamknięcia świecy dziennej (zależy od timezone serwera). EA zoptymalizowany na danych z timezone GMT+2 może dawać inne wyniki na danych GMT+0, bo świece dzienne wyglądają inaczej — inne ceny otwarcia i zamknięcia, inne wicki. Jeśli testujesz EA na danych od jednego dostawcy, a handlujesz u brokera z innym timezone serwera — rozbieżności w wynikach są gwarantowane. Zawsze testuj na danych z tego samego brokera, u którego będziesz handlował.

Latencja arbitrage i client-side EA. Niektóre EA wykorzystują opóźnienia cenowe między brokerami (latency arbitrage). Broker A aktualizuje cenę szybciej niż broker B — EA kupuje u B po starej cenie i zarabia na różnicy. Brokerzy aktywnie zwalczają takie strategie: banują konta, rozszerzają spread, odrzucają zlecenia. Jeśli twój EA zarabia tylko dlatego, że jest szybszy od brokera — to nie jest edge tradingowy. To exploit infrastrukturalny, który broker może wyłączyć w dowolnym momencie.

Co zabija większość retailowych robotów:
  • Za mały average trade — koszt transakcyjny zjada przewagę
  • Zależność od jednego feedu i jednego brokera
  • Brak filtra czasu (rollover, dane, cienka płynność)
  • Ukryty martingale lub grid bez twardego limitu
  • Zero walidacji live — backtest traktowany jako dowód
  • Mylenie overfitu z edge'em
Rollover i filtr czasowy. Wiele EA wygląda dobrze do momentu przejścia przez rollover (ok. 22:00-00:00 GMT), gdy spread się rozszerza, płynność siada, a logika wejścia/wyjścia dostaje śmieciowy sygnał. Blokada otwierania transakcji w oknie rollover to jeden z najprostszych i najskuteczniejszych filtrów — 3 linie kodu w OnTick(), które mogą uratować miesiąc zysków.
Reżim rynku a automatyzacja. Rynki przechodzą przez fazy: trend, range, high volatility, low volatility, risk-on, risk-off. EA zoptymalizowany na dane z fazy range'owej nie przetrwa trendu. EA trendowy będzie tracił w konsolidacji. Każdy EA, który zarabia rok w rok bez drawdownu — kłamie albo ma martingale. Jeśli twój backtest wygląda inaczej, nie masz edge'a — masz dobrze dobrane parametry. Profesjonalni algo-traderzy budują portfele strategii z różnymi profilami reżimowymi — i to jest projekt na miesiące, nie na weekend.
Filtr reżimu — prosty przykład. ADX poniżej 20 = rynek boczny, wyłącz strategię trendową. ADX powyżej 40 = silny trend, wyłącz mean reversion. Pseudokod: if(iADX(NULL,0,14,PRICE_CLOSE,MODE_MAIN,0) < 20) return; // brak trendu, nie handluj. To nie jest pełny filtr, ale punkt wyjścia. Każdy EA powinien mieć choćby prostą detekcję reżimu — bez niej handluje we wszystkich warunkach jednakowo.

9. Kill switch i zabezpieczenia w EA — max drawdown, equity guard, limity

Każdy EA, który zarządza realnym kapitałem, musi mieć wbudowane zabezpieczenia, które wyłączą go zanim drawdown przekroczy akceptowalny poziom. Bez kill switch oddajesz swoje pieniądze algorytmowi bez hamulca — i kiedy coś pójdzie nie tak (a pójdzie), nie masz mechanizmu zatrzymania. EA bez kill switcha robi dokładnie to, czego nie wolno dopuścić: kontynuuje handel wtedy, gdy system już nie ma prawa być aktywny.

Każdy punkt na tej liście to coś, co ktoś pominął i zapłacił za to konkretną kwotą. Spread filter — bo EA nie wiedział, że jest NFP. Max daily loss — bo EA stracił 8% konta w 3 godziny i handlował dalej. Server-side SL — bo VPS wypadł i pozycja była otwarta przez noc bez nadzoru. Lista wynika z wypadków, nie z teorii.

Obowiązkowe zabezpieczenia w każdym EA:

  1. Max drawdown (equity guard) — jeśli equity konta spadnie o X% od szczytowej wartości, EA zamyka wszystkie pozycje i wyłącza się. Typowy próg: 10-20% drawdownu. Wartość zależy od strategii, ale musi istnieć. EA bez max drawdown to EA z nieograniczonym potencjałem straty
  2. Max daily loss — limit straty dziennej. Jeśli EA stracił X% equity w ciągu jednego dnia — stop. Zapobiega scenariuszowi, w którym EA otwiera 50 pozycji w panice podczas flash crash
  3. Max open trades — limit jednocześnie otwartych pozycji. EA grid bez limitu pozycji podczas impulsu może otworzyć kilkadziesiąt pozycji w jednym kierunku. Limit pozycji w kodzie kosztuje 5 minut pisania. Brak limitu kosztuje konto. Ustaw twardy limit: 3, 5, 10 — cokolwiek sensownego dla twojej strategii
  4. Max lot size — nawet jeśli position sizing w EA oblicza wielkość pozycji dynamicznie, wbuduj górny limit. Błąd w obliczeniach nie powinien skutkować otwarciem pozycji 100 lotów zamiast 0.1 lota
  5. Spread filter — nie handluj, gdy spread przekracza X% normalnego. Chroni przed otwieraniem pozycji podczas niskiej płynności, newsów, rolloverów
  6. Time filter — wykluczenie handlu w godzinach niskiej płynności (22:00-00:00 CET) lub przed/po major news. Nie wszystkie EA tego potrzebują, ale wiele strategii ma dramatycznie gorsze wyniki w tych oknach
  7. Connection guard — jeśli EA wykryje problemy z połączeniem (opóźnione ticki, brak odpowiedzi serwera), powinien wstrzymać otwieranie nowych pozycji, nie zamykać istniejących

Implementacja kill switch — podejście praktyczne. Na początku funkcji OnTick() sprawdzaj warunki bezpieczeństwa ZANIM EA dojdzie do logiki tradingowej. Jeśli equity spadło poniżej progu — zamknij pozycje, usuń oczekujące zlecenia, wyświetl alert, zapisz log. Nie pozwól EA na żadną dalszą aktywność tradingową po aktywacji kill switch. Jedynym sposobem na reaktywację powinno być ręczne usunięcie i ponowne dodanie EA do wykresu — nigdy automatyczne.

Equity Guard: jeśli AccountEquity() < StartEquity * (1 - MaxDrawdown/100) → CloseAll() + RemoveEA()

// Equity Guard — MQL4
double startEquity = AccountBalance();  // przy starcie EA
double maxDrawdownPct = 5.0;            // max DD 5%

void OnTick() {
   double currentEquity = AccountEquity();
   double threshold = startEquity * (1.0 - maxDrawdownPct / 100.0);
   if(currentEquity < threshold) {
      // zamknij wszystkie pozycje
      for(int i = OrdersTotal()-1; i >= 0; i--) {
         if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
            if(OrderType() == OP_BUY)
               OrderClose(OrderTicket(), OrderLots(), Bid, 3, clrRed);
            else if(OrderType() == OP_SELL)
               OrderClose(OrderTicket(), OrderLots(), Ask, 3, clrRed);
         }
      }
      ExpertRemove(); // wyłącz EA
      Print("KILL SWITCH: equity spadła poniżej progu ", threshold);
   }
}

Co robić po aktywacji kill switch? Nie reaktywuj EA natychmiast. Przeanalizuj, dlaczego drawdown się pojawił. Czy rynek zmienił reżim? Czy EA działa poza swoim profilu (np. trend strategy w range'u)? Czy jest bug w kodzie? Dopiero po diagnozie podejmij decyzję: modyfikacja parametrów, pauza, zmiana strategii. Kill switch to nie przycisk „reset" — to alarm, który mówi „coś jest nie tak, zbadaj zanim wrócisz".

Z rynku: tysiąc cięć zamiast jednego wybuchu. Najgorsze awarie nie są spektakularne. Czasem to seria małych, legalnych strat: robot handluje w złym reżimie, spread jest trochę gorszy, fill trochę słabszy, sygnały trochę bardziej szumowe. Po dwóch tygodniach nie masz jednej katastrofy — masz konto wykrwawione przez tysiąc cięć. Właśnie po to istnieje kill switch z equity guard.

Z rynku: flash crash GBP, październik 2016. W nocy, przy niemal zerowej płynności, funt spadł o 6% w 2 minuty. Boty skalpujące sesję azjatycką, zaprogramowane na powrót do średniej, kupowały każdy centymetr spadku. Brak kill switcha na poziomie equity sprawił, że broker zamknął pozycje na samym dnie ruchu. Rano traderzy widzieli tylko jedno: Insufficient Margin.

Monitoring zdalny. Minimum to powiadomienia push z MT4/MT5 (otwarcie, zamknięcie, kill switch, błąd), email na krytyczne zdarzenia i webhook do zewnętrznego dashboardu, jeśli skalujesz liczbę botów.

Uruchomienie EA bez monitoringu egzekucji, logów i drawdownu nie jest zarządzaniem systemem. To porzucenie odpowiedzialności za kapitał.

Testowanie zabezpieczeń. Kill switch i equity guard musisz przetestować tak samo rygorystycznie jak logikę tradingową. Uruchom EA na demo z celowo zaniżonym progiem drawdownu (np. 2%) i sprawdź, czy EA naprawdę się wyłącza. Zasymuluj zerwanie połączenia i sprawdź, czy EA reaguje poprawnie po ponownym połączeniu. Nigdy nie zakładaj, że zabezpieczenie działa — przetestuj je.

Logowanie — czarna skrzynka twojego EA. Każda operacja EA powinna być logowana: otwarcie pozycji (z ceną, spreadem, slippage'em), zamknięcie, modyfikacja SL/TP, aktywacja kill switch, błąd egzekucji. Logi zapisuj do pliku (funkcja FileWrite() w MQL, Print() do dziennika platformy). Gdy EA zacznie tracić, logi to jedyne źródło informacji o tym, co poszło nie tak. Bez logów debugujesz na ślepo. Z logami widzisz: kiedy EA otworzył pozycję, jaki był spread w tym momencie, jaki slippage dostał, dlaczego nie zamknął pozycji na czas.

Hierarchia zabezpieczeń — trzy warstwy:

  1. Warstwa 1: EA — wbudowany kill switch, equity guard, spread filter, max trades. To pierwsza linia obrony, działająca w kodzie EA
  2. Warstwa 2: broker — stop loss na serwerze brokera (server-side), margin call, stop-out level. Działa niezależnie od twojego EA i platformy. Jeśli EA i VPS padną jednocześnie, broker zamknie pozycję przy margin call
  3. Warstwa 3: ręczna interwencja — powiadomienia push na telefon, monitoring equity, możliwość zamknięcia wszystkich pozycji z aplikacji mobilnej brokera. Ostatnia deska ratunku, gdy automatyczne zabezpieczenia zawiodą

Żadna pojedyncza warstwa nie jest wystarczająca. Potrzebujesz wszystkich trzech. EA bez server-side SL to katastrofa, gdy VPS padnie. Server-side SL bez kill switch w EA nie ochroni cię przed śmiercią od tysiąca cięć — serią małych strat, z których każda mieści się w SL, ale razem zjadają konto. Powiadomienia push bez pierwszych dwóch warstw to alarm pożarowy bez gaśnicy — wiesz, że się pali, ale nie masz czym gasić.

Checklist zabezpieczeń — minimum przed uruchomieniem EA na live:

  1. Equity guard z progiem max drawdownu — ustawiony i przetestowany na demo
  2. Max daily loss — twardy limit straty dziennej
  3. Max open trades — limit jednoczesnych pozycji
  4. Max lot size — górny limit wielkości pozycji niezależny od position sizing
  5. Spread filter — blokada handlu przy rozszerzonym spreadzie
  6. Server-side stop loss na każdej pozycji — niezależny od EA
  7. Powiadomienia push na telefon — otwarcie, zamknięcie, kill switch, błędy
  8. Logi do pliku — pełna historia decyzji EA z timestampami
  9. VPS z monitowaniem uptime — albo domowy PC z UPS i zapasowym łączem
  10. Backup konfiguracji — template wykresu, parametry EA, dane logowania

Jeśli brakuje ci chociaż jednego punktu z tej listy — nie jesteś gotowy na live. Wróć na demo, uzupełnij brakujący element, przetestuj.

Napisanie robota bywa najłatwiejszą częścią. Trudne jest sprawdzenie, czy zarabia poza backtestem i zabicie go na czas, zanim rynek zrobi to za ciebie. Cotygodniowy przegląd: czy EA handluje zgodnie z oczekiwaniami? Czy drawdown mieści się w normie? Czy warunki rynkowe odpowiadają tym, na których EA był testowany? Czy pojawiły się anomalie w logach? Automatyzacja eliminuje emocje z egzekucji — ale nie eliminuje odpowiedzialności za wynik. Ta odpowiedzialność zawsze jest twoja.

FAQ — automatyzacja tradingu, EA, MQL, VPS

Czy EA może zarabiać bez mojej interwencji?
EA może handlować bez ciebie. Zarabiać długoterminowo bez nadzoru — zwykle nie. Rynek zmienia reżim szybciej, niż detal zdąży zauważyć, że robot już handluje poza swoim profilem.
Czy mogę uruchomić EA bez VPS?
Technicznie tak — EA działa na twojej lokalnej instalacji MT4/MT5. Ale każda przerwa w działaniu komputera lub internetu oznacza, że EA przestaje działać, a twoje pozycje zostają bez nadzoru. Trailing stop na MT4 jest client-side, więc przestaje działać razem z platformą. Jeśli handlujesz realnym kapitałem z EA — VPS kosztuje 10-30 USD miesięcznie i jest ubezpieczeniem operacyjnym, które się zwraca przy pierwszej awarii domowego łącza.
Czy warto kupić gotowego EA z marketplace'u?
Zdecydowana większość EA z marketplace'ów nie działa na żywym rynku tak, jak obiecują backtesty. Główne problemy: overfitting do danych historycznych, ukryty martingale, brak forward testu. Jeśli rozważasz zakup, szukaj EA z weryfikowanym forward testem na MyFxBook (minimum 6 miesięcy), realnym drawdownem, transparentną logiką (autor opisuje strategię, nie tylko wyniki). Uruchom na demo przez 3 miesiące zanim włożysz realne pieniądze. Nie kupuj EA, którego logiki nie rozumiesz.
MQL4 czy MQL5 — co wybrać na start?
Jeśli zaczynasz od zera i chcesz szybko napisać pierwszego EA, MQL4 ma niższy próg wejścia — prostsze API, ogromna baza gotowych przykładów, łatwiejszy debugging. Jeśli planujesz budować zaawansowane systemy multi-instrument z testowaniem portfelowym, MQL5 daje lepsze narzędzia od początku. Jeśli znasz C# — rozważ cTrader. Wybór zależy od twojego poziomu programistycznego i tego, co oferuje twój broker.
Jak uniknąć overfittingu przy optymalizacji EA?
Ogranicz liczbę parametrów do 3-5 kluczowych. Używaj walk-forward analysis: optymalizuj na jednym okresie, testuj na następnym, powtarzaj. Sprawdź, czy wyniki są stabilne przy niewielkich zmianach parametrów (robustness test) — jeśli przesunięcie jednego parametru o 10% niszczy wynik, to overfitting. Testuj na danych z różnych brokerów. Dodaj realistyczny slippage i spread do backtestów. Jeśli strategia działa tylko z jednym zestawem parametrów, na jednym brokerze, na jednym instrumencie — nie masz strategii. Masz dopasowanie do przeszłości.

Źródła i bibliografia

  1. MetaQuotes Software Corp., „MQL4 Reference — Language Basics", oficjalna dokumentacja języka MQL4 — składnia, funkcje handlowe, obsługa zdarzeń. docs.mql4.com
  2. MetaQuotes Software Corp., „MQL5 Reference — Standard Library", oficjalna dokumentacja MQL5 — klasy CTrade, CPositionInfo, CopyBuffer, Strategy Tester. mql5.com/en/docs
  3. Spotware Systems, „cTrader Automate API Reference", dokumentacja cBotów i indykatorów w C# — klasy Robot, Indicator, API tradingowe. help.ctrader.com/ctrader-automate
  4. Marcos Lopez de Prado, „Advances in Financial Machine Learning", Wiley 2018 — rozdziały o backtestingu, overfittingu, walk-forward analysis i pułapkach optymalizacji strategii algorytmicznych.
  5. Ernest P. Chan, „Algorithmic Trading: Winning Strategies and Their Rationale", Wiley 2013 — praktyczne podejście do budowania i walidacji systemów automatycznych, zarządzanie ryzykiem w algo tradingu.
  6. Finance Magnates, „The State of Retail Forex Automation", 2024 — raport o rynku EA, marketplace'ach MQL5 i trendach w automatyzacji tradingu detalicznego.
  7. BeeksFX, „Low Latency VPS for Forex Trading — Infrastructure Guide", 2025 — specyfikacja techniczna VPS tradingowych, latencje do data centerów brokerskich, benchmarki uptime. beeksfx.com

Jarosław Wasiński LinkedIn

Redaktor naczelny MyBank.pl • Analityk rynków makroekonomicznych i walutowych

mgr Jarosław Wasiński – niezależny analityk i praktyk z ponad 20-letnim doświadczeniem w sektorze finansowym. Aktywnie zaangażowany w rynek Forex od 2007 roku, ze szczególnym naciskiem na analizę fundamentalną, strukturę rynków OTC oraz rygorystyczne zarządzanie ryzykiem kapitału (Risk Management).

  • Twórca i redaktor naczelny portalu MyBank.pl, dostarczającego rzetelną wiedzę o finansach od 2004 roku.
  • Autor setek wnikliwych komentarzy rynkowych, analiz strukturalnych i materiałów edukacyjnych dla inwestorów.
  • Zwolennik transparentności rynków finansowych, promujący edukację opartą na twardych danych i raportach instytucjonalnych.

Treści mają charakter edukacyjny i informacyjny – nie stanowią porady inwestycyjnej ani rekomendacji. Pamiętaj! Inwestowanie na rynkach lewarowanych (Forex/CFD) wiąże się z wysokim ryzykiem szybkiej utraty kapitału.