Pomyłka 1 - Sięganie po dane przyszłe
Testując na danych historycznych możesz nawet nie zauważyć, że Twój system "odwraca czas". Np. na podstawie jutrzejszej ceny podejmuje decyzję kupna czy sprzedaży dzisiaj. Zaprogramować taki mechanizm i testować jest bardzo łatwo, system może pokazywac wspaniałe zarobki. Ale spróbuj zrobić coś takiego potem w rzeczywistym handlu.
Musisz bardzo uważnie sięgać po dane z innych okresów. Nieraz wystarczy zapomnieć o prawidłowym znaku przed liczbą i już otrzymujesz dane z jutra zamiast wczorajszych. Dodatkowo trzeba pilnować kolejności zdarzeń. Np. jeżeli sygnał masz na podstawie ceny zamknięcia, to możesz zrobić transakcję po tej cenie, możesz też zrobić po cenie jutrzejszego otwarcia. Jednak możesz też zrobić ją po cenie dzisiejszego otwarcia. Program to przyjmie. Jednak przecież tak naprawdę na koniec dnia nie da się nic kupić w cenie z otwarcia które było rano.
Pomyłka 2 - Zła cena transakcji
Tutaj też przy testach masz dużą dowolność. Np. rynek dzisiaj poruszał się w zakresie 12 .. 13,50. Ty jednak robisz transakcję w cenie 7 zł. Niektóre programy to przyjmą. W niektórych musisz specjalnie włączyć sprawdzanie jakie ceny były dostępne. Jeżeli taki test przejdzie - wyniki w ogóle nie będą związane z rzeczywistością.
Musisz uważnie decydować o cenach transakcji. Bezpieczne są transakcje po cenie otwarcia następnego słupka. Jest to najbardziej zbliżone do warunków rzeczywistych. Na niektórych rynkach możesz użyć też ceny zamknięcia. Jednak sytuacja komplikuje się przy założeniu, że zlecenie stop czeka na rynku cały czas. Wtedy, gdy świeca dojdzie do niego choćby wąsem - ma się zrealizować. Można przyjąć, że realizuje się w tej cenie stop lub z bardzo małym poślizgiem. Co jednak, gdy cena nie doszła do stopu, a następna świeca otwiera się luką i przeskakuje go? Przecież transakcja w cenie stop jest wtedy nierealna. Trzeba o tym pamiętać i przyjąć cenę otwarcia.
Pomyłka 3 - Nierealne założenia czasowe
Wyobraź sobie, że masz system na 5-minutówkach na FW20 i zlecenia "wyklikujesz" ręcznie. Do testów przyjmujesz cenę zamknięcia. Czy jednak na rzeczywistym rynku masz szansę na taką cenę? Zanim złożysz zlecenie rynek już się poruszy.
Albo zlecenia na zamknięcie na koniec dnia. Ok. Jest fixing i można tak złożyć zlecenie. Sprawdź jednak jakie są tam obroty, czy Twoje zlecenia mają wogóle szansę na realizację?
Dla ręcznego inwestowania zawsze lepiej jest przyjmować cenę otwarcia następnego słupka. Po pierwsze jest to bardziej zbliżone do ludzkich opóźnień reakcji, po drugie zmniejsza się problem z obrotami i realizacją zleceń. Inwestowanie na zamknięciu zostaw automatom, chociaż nawet z nimi powoduje to problemy z interpretacją.
Pomyłka 4 - Przeoptymalizowanie
Możesz zbudować system który idealnie dopasuje się do rynku. Im więcej parametrów tym łatwiej. Wystarczy poszukać takich wartości które pozwolą łapać większość ruchów ceny. Jednak system taki zaraz wyłoży się na nowych napływających danych.
Rynek przyszły nie zachowuje się dokładnie tak jak to co już było. Są tylko podobieństwa i wzorce, ale nie dokładne powtórzenia. Musisz zostawić systemowi pole do popełniania błędów i generowania choć lekkich strat. Dopiero wtedy będzie on w stanie poradzić sobie z nowymi, nie testowanymi notowaniami.
Najlepiej budować system bez parametrów, z jednym lub z maksymalnie dwoma. Czasami można dopuścić jeszcze trzeci i czwarty - zależy czego one dotyczą. Ale więcej nigdy. Nawet jeżeli Twój program poradzi sobie z dwudziestoma.