Python i AI: skrypty do analizy wyników MT5, które zastąpiły arkusz
W skrócie: Tester MT5 zostawia po sobie raporty, logi i pliki z danymi, a analiza zaczyna się dopiero po nich. Zamiast arkusza mam zestaw małych skryptów w Pythonie, które napisał agent AI według mojego opisu. Każdy robi jedną rzecz i jest sprawdzony na przypadku, którego wynik znałem z góry.
Skąd wzięły się skrypty
Po kilkudziesięciu botach i setkach testów ręczne zestawianie wyników przestało działać. Ten sam bot testowałem na kilku brokerach, w kilku wersjach i na kilku ustawieniach, a wynik “najlepszy” zmieniał się zależnie od tego, który plik otworzyłem. Potrzebowałem jednego miejsca, które pamięta, jaka wersja kodu i jakie ustawienia dały który wynik. Opisałem agentowi, co ma robić, a on napisał skrypt, który to wczytuje i układa.
Trzy rodzaje skryptów, które się sprawdziły
Baza wyników. Skrypt zbiera raporty z kilku miejsc (tabela przebiegów, archiwa raportów, wyniki ręcznych siatek z Testera) do jednej lokalnej bazy. Import jest powtarzalny: ten sam raport wczytany drugi raz nie robi duplikatu, a przebieg z inną wersją kodu to osobny wpis. Wynik dla bota liczy się dopiero wtedy, gdy znam wersję i ustawienia, więc to jest najważniejsza cecha.
Porównanie dwóch przebiegów. Dwa raporty tego samego bota (świece kontra tiki, dwóch brokerów, przed i po zmianie kodu) skrypt zestawia transakcja po transakcji: które są wspólne, które tylko w jednym, gdzie rozjazd jest największy. To zastępuje porównywanie sum, o którym piszę w artykule o liście transakcji.
Sprawdzanie danych brokera. Skrypt tylko czyta pliki w terminalu testowym i podaje, od kiedy broker ma świece i tiki. Nic nie pobiera. Zaznacza też, że liczba świec jest szacunkiem z rozmiaru pliku, a obecność danych nie jest dowodem ich jakości (więcej w artykule o danych Darwinex).
Jak wygląda dobra prośba do agenta
Najlepsze skrypty dostałem, gdy opisywałem trzy rzeczy: skąd są dane, co ma wyjść (kolumny, jednostki) i jak sprawdzę wynik. Przykład z życia: skrypt do porównania przebiegów miał dostać dwa raporty i dwa pliki ze świecami, a na wyjściu dać podsumowanie, listę wspólnych i niewspólnych transakcji oraz największe różnice. Bez opisu wyjścia agent zwraca coś, co wygląda ładnie, ale nie odpowiada na pytanie.
Dwie zasady, które mi się opłaciły:
- Skrypt tylko czyta. Nie kasuje, nie przepisuje, nie nadpisuje raportów. Jeśli coś ma zapisać, zapisuje do osobnego miejsca.
- Nazwa i opis na górze pliku. Każdy skrypt ma w nagłówku: po co jest, jak go uruchomić i czego nie robi. Po miesiącu nie pamiętam, co robi
compare_*, a agent w nowej sesji też nie.
Jak sprawdzam wynik skryptu napisanego przez AI
Najgroźniejszy jest skrypt, który działa i daje błędną liczbę. Dlatego każdy nowy skrypt uruchamiam najpierw na przypadku, którego wynik znam: raport, w którym ręcznie policzyłem transakcje, albo dwa identyczne pliki, które muszą dać zero różnic. Skrypt do bazy wyników ma osobne testy jednostkowe. Kolejna kontrola to proste pytanie: czy suma z wykresu i suma z raportu są takie same.
[DO UZUPEŁNIENIA: jeden przypadek, w którym skrypt dał liczbę niezgodną z raportem, i co było przyczyną]
Czego nie oddaję skryptom
Wniosków. Skrypt mówi, że wersja B ma o 20% więcej zysku niż A, ale nie powie, czy to szum, plateau czy wynik z jednego roku. Tę ocenę robię według tych samych reguł co zawsze: lata osobno, na prop ON, z progiem liczby transakcji. Zatwierdzenie wyniku do bazy to też moja decyzja, nie skryptu.
Checklista
- jeden skrypt = jedna czynność, z opisem w nagłówku,
- skrypt tylko czyta dane źródłowe,
- prośba do agenta zawiera: skąd dane, jaki ma być wynik, jak go sprawdzę,
- pierwszy test na przypadku ze znanym wynikiem,
- import powtarzalny (bez duplikatów),
- wynik powiązany z wersją kodu i ustawieniami,
- ocena i zatwierdzenie wyniku po mojej stronie.
Powiązane
- Lista transakcji zamiast sumy: diagnoza regresji wyniku
- Agent AI uruchamia testy
- AI pisze bota w MQL5
- 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ą.