AI pisze bota w MQL5: co działa, a co trzeba pilnować
W skrócie: model językowy świetnie radzi sobie z szablonem bota, kompilacją i poprawianiem błędów. Zawodzi tam, gdzie decyzja zależy od mojej wiedzy o koncie, firmie i brokerze, a nie od składni. Dlatego zasady trzymam w pliku w repo, który agent czyta na starcie, a część z nich sprawdza skrypt.
Co agent robi dobrze
Najlepiej wychodzą mu zadania, które mają jasny wynik. Kompilacja bez błędów to wynik, który sprawdza się sam: agent uruchamia kompilator z linii poleceń, czyta log i poprawia kod, aż zostanie zero błędów (pokazuję to w artykule o kompilacji z linii poleceń). Podobnie dobrze działa:
- nowy bot z szablonu, z inputami, logiem startu i zatrzymania oraz komentarzem zlecenia w jednym formacie,
- migracja starego kodu na wspólną bibliotekę zamiast własnych kopii funkcji,
- podbicie wersji, dopisanie historii zmian i dokumentacji w folderze bota,
- konwersja plików z jednego kodowania na drugie (UTF-8 kontra UTF-16).
Gdzie robi błędy, jeśli nic mu nie powiem
Bez reguł agent odpowiada na prośbę wprost: dopisuje to, co ma sens “ogólnie”, a nie to, co ma sens w mojej flocie. Typowe przypadki:
Zgaduje zamiast pytać. Gdy prośba jest niejasna, wybiera interpretację i pisze kod. Dlatego jedna z moich zasad brzmi: niejasność to pytanie, a kompromisy wypisz wprost.
Dokłada kod na zapas. Pomocnik użyty raz, dodatkowy log, kontrola, o którą nikt nie prosił. W bocie, który działa na koncie, każda linia to ryzyko. Zasada: najmniej kodu, który rozwiązuje problem, i żadnego refaktoru “przy okazji”.
Bierze rozwiązanie z internetu. Kod z forów często zakłada jeden typ symbolu albo jednego brokera. Klasyczny przykład to bufor liczony w punktach, który na innym instrumencie znaczy coś zupełnie innego (opisuję go w artykule o pułapce z _Point).
Nie zna reguł mojego konta. Nie wie, że ryzyko ma być w dolarach i skalowane z salda (ryzyko w USD czy w procentach), że opcje dodatkowe mają być domyślnie wyłączone ani że bota nie usuwa się z wykresu, tylko blokuje mu handel (wyłączenie kontra blokada).
Co spisałem w repo
Każdy folder bota i całe repo ma plik z zasadami, który agent wczytuje na starcie. Zawiera on między innymi standard bota w kilkunastu punktach: ryzyko wyłącznie w jednym inpucie w dolarach, lot tylko przez klasy biblioteki, sprawdzanie własnych pozycji po numerze magic i symbolu, log odpowiedzi serwera po każdym zleceniu, interwał sygnału tylko z inputu, wersja w dwóch miejscach jednocześnie. Dopisuję tam każdą nową zasadę zaraz po tym, jak agent popełni błąd, żeby nie powtórzył go w następnej sesji.
Część reguł agent mógłby zapomnieć, więc sprawdza je skrypt. Czyta kod bota i zgłasza, między innymi:
| Reguła | Dlaczego |
|---|---|
| zakaz pobierania tików w bocie | dane ze świec wystarczą i działają tak samo w teście i na koncie |
| zakaz usuwania bota z wykresu | handel blokujemy, bot dalej pilnuje pozycji |
| wersja w nagłówku różna od wersji w kodzie | niewiadomo, który plik jest który |
| pętla po pozycjach bez sprawdzenia magic i symbolu | bot ruszyłby cudze pozycje |
| zlecenie bez odczytu odpowiedzi serwera | błąd odrzucenia zlecenia przechodzi bez śladu |
| dwa inputy różniące się tylko wielkością liter | w ustawieniach łatwo wpisać wartość w złe pole |
Ostatnia pozycja ma konkretną genezę: w jednym z botów mnożnik stop lossa wpisany w pole o prawie takiej samej nazwie dał 10 zamiast 2,2. Skrypt wyłapuje takie rzeczy, zanim bot trafi na wykres.
Kto jest odpowiedzialny
Agent nie jest tym, kto bierze odpowiedzialność za wynik. “Zweryfikowane” znaczy u mnie: kompilacja bez błędów oraz to, co sprawdziłem sam. Test w Testerze uruchamiam za zgodą albo wywołaniem konkretnej komendy, a wynik czytam według osobnych zasad (kontrola testu po stronie agenta).
[DO UZUPEŁNIENIA: jeden konkretny błąd agenta, który zdarzył się w Twoim bocie i po którym dopisałeś zasadę - kiedy, w jakim bocie, co wyszło]
Checklista
- plik z zasadami w repo, który agent czyta na starcie sesji,
- niejasność = pytanie, nie zgadywanie,
- zakres zmiany ograniczony do prośby, bez refaktoru obok,
- kompilacja z linii poleceń po każdej zmianie, zero błędów,
- skrypt kontrolny reguł uruchamiany przed wdrożeniem,
- nowa zasada zapisywana od razu po błędzie,
- kod z internetu sprawdzony pod kątem jednostek (punkty, piipsy, cena),
- wynik testu oceniany przeze mnie, nie przez agenta.
Powiązane
- Agent AI uruchamia testy: jak sprawdzić, czy test się wykonał
- Pułapka 5 razy _Point w cudzym kodzie
- 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ą.