Jak testuje się algorytm, zanim zostanie on zastosowany w praktyce?
Mamy dziś dostęp do wielu narzędzi realizujących proces tzw. backtestingu. Wszystkie one dają nam odpowiedź na pytanie – co by się stało, gdybym w przeszłości na określonym rynku zastosował dany algorytm. To są świetne narzędzia, ale trzeba je umiejętnie stosować. Nie wystarczy przeprowadzenie jednego testu nawet w bardzo długim okresie, aby stwierdzić, czy system nadaje się do wykorzystania, czy też nie rokuje żadnych nadziei. Ja zazwyczaj rekomenduję procedurę testowania za pomocą ruchomego okna czasowego. Polega to na wykonywaniu sekwencji testów prowadzonych w wielu krótszych okresach. Jeśli przykładowo robot działa na interwałach H1 lub H4 i zawiera w miesiącu kilka czy kilkanaście transakcji, to sensownym okresem bazowym takiego testu wydaje mi się co najmniej kwartał. W takiej sytuacji warto wykonać serię testów na okresach długości kwartału, czyli np. od stycznia do marca, następnie od lutego do kwietnia i tak dalej. Następnie należy porównać wyniki pod kątem stabilności i powtarzalności. To, że dany test w określonym czasie pokaże zysk, nie oznacza, że system da zarobić w przyszłości. Ważne jest też to, w jaki sposób ten zysk został osiągnięty. Czy nie jest to efekt jednej, nietypowej transakcji? Czy po drodze nie było dużych obsunięć kapitału? Analiza wyników takiego backtestu musi być bardziej wnikliwa niż ocena w kategoriach zysku czy straty.
Jak długo może trwać proces testowania algorytmu? Czy nie pojawia się tu ryzyko dopasowywania go do danych i nadmiernej optymalizacji?
Dzięki metodzie przesuwającego się okna czasowego ryzyko przeoptymalizowania, czy też dopasowania algorytmu do danych historycznych, jest w znacznej mierze wyeliminowane. Nie oceniamy bowiem wyników automatu i nie dobieramy jego parametrów z myślą o tylko jednym okresie. Nadmiar kryteriów w procesie decyzyjnym to moim zdaniem trudniejszy problem. Z jednej strony chcemy, aby automat przygotowany był na bardzo różnorodne scenariusze rynkowe. Z drugiej trzeba uważać, aby nie wprowadzić ich tylu, że stracimy ogólną kontrolę nad strategią, co objawia się na przykład tym, że nie będziemy w stanie wyjaśnić, dlaczego zmiana jakiegoś parametru spowodowała znaczną zmianę wyników. Musimy zawsze wiedzieć, co nasz automat robi i dlaczego – tylko wtedy możemy go poprawiać i optymalizować. Generalnie powiedziałbym, że jeśli nie jesteśmy w stanie w prostych słowach opowiedzieć laikowi, jak działa nasz algorytm, to znaczy, że staje się on zbyt skomplikowany.
Sebastian Zadora
Z wykształcenia magister inżynier elektronik, absolwent Politechniki Warszawskiej. Od 2005 r. związany z rynkiem walutowym. Pracował jako menedżer produktów skarbu w Banku Handlowym w Warszawie (Citigroup), w Banku BPH i w biurach maklerskich zajmujących się rynkiem pozagiełdowym (OTC). Od 2009 r. dyrektor w DM BOŚ, gdzie odpowiedzialny jest m.in. za promocję platformy BossaFX. Dodatkowo wspiera działalność edukacyjną DM BOŚ w zakresie inwestowania na rynku instrumentów pochodnych oraz tworzenia automatów transakcyjnych.