EN
Artykuły / 18.5 Techniczne
Techniczneszkic

Numer magic: po co jest i jak go nadawać botom na jednym koncie

15.11.20263 min czytania

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

Ostrzeżenie: handel CFD i forex wiąże się z wysokim ryzykiem utraty kapitału. Artykuł ma charakter edukacyjny i nie jest rekomendacją inwestycyjną.