Numer magic: po co jest i jak go nadawać botom na jednym koncie
W skrócie: numer magic to liczba, którą bot dopisuje do każdego swojego zlecenia i pozycji. Dzięki niej, gdy na koncie pracuje kilka botów, każdy widzi tylko własne pozycje. Powtórzony numer sprawia, że boty zaczynają zarządzać cudzymi pozycjami. Dlatego nadaję go według stałej reguły i sprawdzam zawsze razem z symbolem.
Co robi numer magic
Terminal MT5 nie wie, który bot otworzył pozycję. Wie tylko, że przyszło zlecenie z jakimś numerem. Bot, który chce przesunąć stop albo zamknąć pozycję przed końcem sesji, przegląda wszystkie otwarte pozycje na koncie i wybiera te z własnym numerem. Pozycje otwarte ręcznie mają numer zerowy, więc bot ich nie rusza, o ile nie jest napisany inaczej.
Numer służy też poza botem: panel z historią transakcji grupuje wyniki według numeru, a ja po numerze rozpoznaję w logach, który bot coś zrobił.
Co się psuje przy kolizji
- Dwa różne boty z tym samym numerem na jednym koncie. Każdy widzi pozycje drugiego jako własne. Jeden zamyka pozycję drugiego na swoim sygnale, drugi liczy cudzą stratę do swojego dziennego limitu, a limit dzienny i blokada przestają się zgadzać.
- Ten sam bot na tym samym symbolu w dwóch interwałach. Bez osobnych numerów dwie kopie widzą nawzajem swoje pozycje i nie wiedzą, że już jest otwarta pozycja, albo zamykają cudze.
- Stan zapisany w zmiennych globalnych. Jeśli klucz stanu dziennego nie zawiera numeru, dwie kopie nadpisują sobie licznik.
Na koncie z wieloma botami to jedna z najtrudniejszych do znalezienia usterek, bo objawy wyglądają jak błąd strategii: dziwne wyjścia, niewyjaśnione blokady, zły dzienny wynik (zob. kilka botów na jednym koncie).
Magic i symbol razem
Pętla po pozycjach sprawdza w każdym obrocie oba warunki: numer magic i symbol wykresu. Sam numer nie wystarcza, bo ten sam bot może pracować na kilku symbolach tego samego konta z tym samym numerem. Sam symbol też nie, bo na jednym symbolu mogą pracować dwa boty. Brak któregoś z warunków to błąd, który poprawiam przy najbliższej edycji. Wyjątek dopuszczam tylko dla bota wielosymbolowego i zapisuję go w komentarzu.
Jak nadaję numery
- Numer magic jest równy numerowi folderu bota, a nazwa pliku programu równa nazwie folderu. Z numeru widzę, który to bot, bez zaglądania do tabeli.
- Numery folderów są losowe i nadawane skryptem, bez kolizji z istniejącymi.
- Ten sam bot na kilku wykresach jednego konta dostaje jeden numer, jeśli symbole różne, i osobne numery, jeśli symbol ten sam, a interwały różne.
- Numer jest jedną z dwóch pierwszych grup parametrów w oknie ustawień, zaraz po notatkach. Przy zmianie numeru w gotowym pliku ustawień zmieniam go też na wykresie.
Checklista
- Każdy bot na koncie ma inny numer magic, a kopie na tym samym symbolu też.
- Wszystkie pętle po pozycjach i zleceniach sprawdzają magic i symbol.
- Klucz stanu w zmiennych globalnych zawiera konto, symbol, magic i dzień.
- Numer zgadza się z numerem folderu bota i z wykresem.
- Przy dodaniu nowego bota na konto sprawdzam listę numerów, które już tam pracują.
Powiązane
- Kilka botów na jednym koncie: wspólny limit dzienny
- Ryzyko łączne kilku pozycji i botów
- Bot wielostrategiowy
- 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ą.