EN
Artykuły / 13.3 AI w tradingu
AI w tradinguszkic

AI pisze bota w MQL5: co działa, a co trzeba pilnować

14.11.20264 min czytania

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

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

Dalej w rozdziale

164

MCP w MT5: asystent AI może zamknąć pozycję nawet przy wyłączonym Algo

Build 6316 terminala MT5 ma wbudowany serwer MCP z ponad 100 narzędziami, w tym handlem. Sprawdziłem na demo, co może zamknąć pozycje przy wyłączonym Algo Trading i jakie ustawienie to pilnuje.

316

Przeniesienie wskaźnika z Pine Script do MQL5

Jak przenieść wskaźnik z TradingView do MT5 tak, żeby dawał te same sygnały: odpowiedniki funkcji, godziny w strefie serwera, wyższy interwał bez repaintu i bufory dla bota.

317

AI jako analityk wyników backtestu: co mu oddaję, a co sprawdzam sam

Agent AI szybko zestawia wyniki testów, ale potrafi je też pewnie zinterpretować źle. Opisuję reguły, które narzuciłem: liczby tylko z pliku, wynik z wersją i ustawieniem, tabela top 10, test rok po roku.

318

Agent AI uruchamia testy w MT5: jak sprawdzić, czy test się naprawdę wykonał

Gdy Claude Code odpala backtesty za mnie, największe ryzyko to cichy błąd: stary wynik zamiast nowego, test, który się nie wystartował, mieszanka przebiegów w jednym logu. Jak to zabezpieczam.

319

Python i AI: skrypty do analizy wyników MT5, które zastąpiły arkusz

Zamiast ręcznie przepisywać wyniki z Testera do arkusza, mam skrypty w Pythonie pisane z agentem AI: baza wyników, porównanie dwóch przebiegów, sprawdzanie danych brokera. Jak do tego doszedłem i na co uważać.

320

Wskaźniki na TradingView w Pine Script: wskaźnik, strategia i alerty

Czym różni się wskaźnik od strategii w Pine Script, jak działają alerty i na co uważać w backteście TradingView, żeby wynik był porównywalny z MT5.