niedziela, 22 kwietnia 2012

Testowanie systemów mechanicznych

Podczas tworzenia i optymalizacji mechanicznych systemów giełdowych napotykamy kilka typowych pułapek, przez które łatwo stracić kapitał. Dlatego warto, przed użyciem systemu w realu sprawdzić go pod kątem kilku  częstych błędów.

1. Przeoptymalizowanie parametrów
Większość systemów mechanicznych pozwala na dostrojenie do wybranego rynku przez dobór jednego lub kilku parametrów. Naturalnym podejściem jest proces optymalizacji tych parametrów przez przetestowanie większości ich zestawów i wybranie tego zestawu, który daje największy zysk przy najmniejszym ryzyku.
Załóżmy, że optymalizujemy system z jednym parametrem i otrzymaliśmy taki rozkład zysków:


Na wykresie widać dwa miejsca w których zyskowność osiąga lokalne maksimum. Którą wartość powinniśmy wybrać? Chciwość podpowiada, że najwyższą, ale prawda jest taka, że powinniśmy zadowolić się mniejszym zyskiem. Pierwsza górka jest łagodna, więc jest większa szansa na to, że drobne zmiany sytuacji na runku w przyszłości nie zmienią zyskownego systemu w stratny.

2. Asymetryczność wyników
Jeśli zaprogramowany system jest asymetryczny, czyli ma duża większą skuteczność grając długie pozycje, lub krótkie pozycje, to jest duża szansa, że jego zyskowność wynika tylko i wyłącznie z tego, że testowaliśmy go na rynku z silnym trendem. Jeśli określenie tego trendu nie jest częścią algorytmu, to przewaga systemu wynika tylko i wyłącznie ze szczęścia.

3. Wrażliwość na rynkowy szum
Dane rynkowe, w krótkim okresie czasu mają dużą dozę losowości. Dodatkowo, na realnym rynku bardzo często są obsunięcia czasowe i cenowe przy realizacji zleceń. Dlatego nie powinniśmy używać systemów, których skuteczność silnie zależy od dokładności danych. Jak sprawdzić system pod tym kątem?
Najlepiej jest wprowadzić szum do danych historycznych ( np. zmieniamy losowo o kilka pipsów każdą świeczkę), na których testowaliśmy system i sprawdzić jak to wpływa na wyniki systemu. Jeśli minimalny szum powoduje duże zmiany w zyskowności systemu, to źle świadczy o jego jakości.

4. Zbyt krótki czas testów
Rynek jest zmienny. Inaczej działał w okresie hossy 2005-2007. Inaczej w czasie gigantycznych spadków na jesieni 2008. Czy Twój system radził sobie równie dobrze w obu tych sytuacjach? Jeśli działał tylko w jednym z tych okresów, to czy masz jakiś mechanizm, przy pomocy którego jesteś w stanie rozpoznać w jakiej fazie rynku jesteś? Jeśli nie, to musisz sobie zdawać sprawę, że wynik systemu będzie zależał od szczęścia.

Czy mój system cierpi na opisane przypadłości?
Oczywiście nie :) Przeprowadziłem testy pod kątem powyższych problemów i okazało się, że:
1. System korzysta tylko z jednego parametru (agresywność) i wykazuje dużą tolerancję na zmiany parametry od dobranego optimum.
2. System daje dobre wynik zarówno po długiej jak i po krótkie stronie runku.
3. System działa na danych dziennych, więc siłą rzeczy nie jest wrażliwy na szum rynkowy
4. Testy obejmowały ponad 8 lat. Były to okresy zarówno hossy jak i bessy. System konsekwentnie zarabiał w obu sytuacjach rynkowych.

Brak komentarzy:

Prześlij komentarz