Bot nie otwiera pozycji w MT5 - 15 najczęstszych przyczyn
W skrócie: bot, który nie handluje, prawie zawsze mówi dlaczego, tylko trzeba wiedzieć, gdzie patrzeć. Zaczynam od zakładek Eksperci i Dziennik w terminalu, potem idę po liście: zezwolenia, ustawienia, warunki strategii, blokady konta, broker. Najczęstsza przyczyna jest też najnudniejsza: bot czeka na sygnał, którego dziś nie było.
Zanim zaczniesz: dwa okna z odpowiedzią
Na dole terminala jest okno Narzędzia. Zakładka Eksperci pokazuje wszystko, co wypisuje bot: start, wersję, powody odrzucenia wejścia, błędy. Zakładka Dziennik pokazuje to, co robi terminal: połączenie z serwerem, wysłane zlecenia, odmowy serwera.
Jeśli w Ekspertach po wrzuceniu bota na wykres nie ma żadnej linii, bot w ogóle nie wystartował (punkty 1-4). Jeśli wypisał start i milczy, czeka albo jest zablokowany (punkty 5-12). Jeśli w Dzienniku są odrzucone zlecenia, problem leży po stronie konta lub brokera (punkty 13-15).
Bot nie wystartował
1. Algo Trading wyłączony. Przycisk na górnym pasku terminala musi być zielony. Wyłączony blokuje wszystkie boty w terminalu. Co dokładnie blokuje, opisuję w artykule Algo Trading ON/OFF.
2. Brak zgody na handel w ustawieniach bota. W oknie ustawień bota, zakładka Wspólne, musi być zaznaczone “Zezwól na handel algorytmiczny”. Ikona w prawym górnym rogu wykresu pokazuje stan: czapka niebieska oznacza, że bot może handlować, szara, że nie.
3. Konto zalogowane hasłem inwestora. Hasło tylko do odczytu pozwala oglądać konto, ale nie wysyłać zleceń. W Dzienniku przy logowaniu nie ma wtedy informacji o trybie handlu, a zlecenia są odrzucane.
4. Brak połączenia albo zły serwer. Prawy dolny róg terminala pokazuje stan połączenia. “Brak połączenia” lub przekreślone słupki oznaczają, że bot nie dostaje tików, więc nie liczy niczego.
Bot działa, ale ustawienia nie pasują
5. Zły symbol albo interwał. Bot napisany pod złoto na M5 wrzucony na EURUSD H1 może nigdy nie dostać sygnału. Do tego nazwy symboli różnią się między brokerami (XAUUSD, GOLD, XAUUSD.r) i bot z nazwą wpisaną na sztywno nie znajdzie instrumentu.
6. Ustawienia domyślne zamiast pliku z ustawieniami. Po wrzuceniu na wykres bot ma wartości domyślne z kodu. Te z testów trzeba wczytać z pliku. Dotyczy to też aktualizacji bota: nowe parametry dostają wartości domyślne.
7. Godziny handlu w czasie serwera. Okno handlu w bocie liczy się według czasu serwera brokera, a nie polskiego. Różnica to zwykle jedna albo dwie godziny i zmienia się przy zmianie czasu. Bot z oknem 9:00-11:00 może więc handlować o innej porze, niż się wydaje, albo wcale, jeśli sesja symbolu jest wtedy zamknięta.
8. Wyłączony dzień tygodnia albo kierunek. Filtr dni tygodnia z wyłączonym poniedziałkiem, wyłączone kupno lub sprzedaż. Drobne przełączniki, o których łatwo zapomnieć po testach.
Bot odrzuca wejście sam
9. Nie było sygnału. Strategia z jedną transakcją dziennie i kilkoma filtrami potrafi nie wejść przez kilka dni. To najczęstsza przyczyna i nie jest błędem. Sprawdzam to w testerze: ten sam okres, te same ustawienia. Jeśli tester też nie wchodzi, bot działa poprawnie.
10. Filtr spreadu. Bot ma limit spreadu, a u tego brokera spread jest szerszy niż w testach, szczególnie w nocy i przy otwarciu sesji. W logu widać to jako powtarzające się odrzucenie z powodu spreadu.
11. Za mały lot albo za mało depozytu. Przy małym koncie i szerokim stop lossie wyliczony lot wypada poniżej minimalnego. Dobrze napisany bot pomija wtedy transakcję i pisze o tym w logu. Druga wersja tego samego problemu to brak wolnego depozytu na pozycję. Szczegóły w artykule zaokrąglenie lota.
12. Zadziałała ochrona konta. Dzienny limit straty, dzienny cel zysku, maksymalny drawdown, limit transakcji na dzień albo blokada wysłana zdalnie. Każda z nich zatrzymuje nowe wejścia i każda powinna zostawić wpis w logu. Po restarcie terminala blokada może wrócić albo zniknąć, zależnie od tego, gdzie bot ją zapisał. Pierwszy artykuł z tej serii: dzienny limit straty.
Zlecenie wychodzi, serwer odmawia
13. Rynek zamknięty. Przerwa dobowa, weekend, święto. Serwer odpowiada błędem “market closed”. Godziny sesji są w specyfikacji symbolu i różnią się między brokerami.
14. Handel na symbolu albo koncie wyłączony przez brokera. Symbol w trybie “tylko zamykanie”, konto prop po naruszeniu zasad albo po zakończeniu etapu, konto demo po wygaśnięciu. Terminal się łączy, ceny płyną, a każde zlecenie wraca z odmową “trade disabled”.
15. Zlecenie nie spełnia warunków symbolu. Stop loss za blisko ceny (minimalna odległość), zły tryb wypełnienia zlecenia u danego brokera, lot niezgodny z krokiem. W Dzienniku jest wtedy kod błędu: “invalid stops”, “unsupported filling mode”, “invalid volume”. Bot, który działa u jednego brokera, może przez to nie działać u drugiego bez żadnej zmiany w ustawieniach.
Tester handluje, konto nie
To osobny przypadek i ma krótką listę przyczyn: inne ustawienia na wykresie niż w teście (punkt 6), inny broker lub symbol niż w teście, filtr spreadu (punkt 10) i ochrona konta, która w teście była wyłączona (punkt 12). Porównuję wtedy jeden konkretny dzień: test tego dnia na tym samym koncie kontra log bota z tego dnia.
Checklista
- zakładka Eksperci: czy bot wypisał start i wersję,
- Algo Trading zielony, czapka na wykresie niebieska,
- logowanie hasłem głównym, połączenie z serwerem działa,
- właściwy symbol, interwał i wczytany plik ustawień,
- godziny handlu przeliczone na czas serwera,
- test tego samego okresu w testerze: czy tam bot wchodzi,
- log bota: powody odrzucenia (spread, lot, limity, blokada),
- zakładka Dziennik: kody odmowy serwera,
- specyfikacja symbolu: sesje, minimalny lot, minimalna odległość stop lossa.
Powiązane
- Algo Trading ON/OFF - co blokuje, a co nie
- Blokada handlu zamiast usuwania bota
- Przerwa dobowa indeksów i złota
- Nasdaq i Dow w MT5: nazwy symboli i historia
- Bot otworzył pozycję mimo blokady z panelu
- Pojęcia z artykułu: słowniczek, skorowidz
Ostrzeżenie: handel CFD i forex wiąże się z wysokim ryzykiem utraty kapitału. Artykuł ma charakter edukacyjny i nie jest rekomendacją inwestycyjną.