green7 pisze: To właśnie kolejna ze spraw pokazująca, że tester mt4 jest bardzo kiepskim narzędziem i nie nadaje się do działania na poziomie ticków.
Tutaj zgoda. Ale pamiętajmy, że jest to dość uniwersalny program napisany w tym samym języku i większość naszych potrzeb zaspokoi. Jeżeli ktoś potrzebuje czegoś bardziej wyrafinowanego, to bez trudu sobie napisze.
Ważniejsze chyba jest, abyśmy używając tego narzędzia byli świadomi jakości wyników, które nam „wypluje” i mieli odpowiedni do nich stosunek.
Bo testowanie to wg mnie najważniejszy etap pracy nad systemem. Pisanie jakiegokolwiek EA bez gruntownych testów całkowicie mija się z celem.
Dane dostajemy takie, jakie dostajemy. Pamiętajmy, że broker nie jest instytucją charytatywną i jego softy mają za zadanie takie utrzymywanie równowagi, aby zapewnić stały dopływ gotówki ze spredów. Łatwo zauważymy, że w zasadzie nie mamy problemów przy pozycjach od 0.1 do 0.5 lota, później jest niestety gorzej. Oczywiście nie zawsze, bo gdy nasze zlecenie trafi na tą stronę rynku gdzie, gdzie akurat NASZ broker ma minus, to wchodzi automatycznie.
Wróćmy jednak do testów. Jeżeli doszliśmy do tego miejsca i udało nam się skompilować kod (cokolwiek byśmy w nim nie umieścili) to jesteśmy na początku naszej drogi. Tak, tak, dokładnie na początku.
Wszystko to co teraz zrobimy dalej będzie decydować o naszym sukcesie albo porażce. Wykonaliśmy pewną pracę, przyjęliśmy sobie jakieś założenia i napisaliśmy jakiś tam program. Jak już dojdziemy do wprawy, to w godzinę możemy napisać ich kilka. Tylko, że z tego nic nie wynika.
No chyba, że mamy taką moc sprawczą, że rynek będzie się tak zachowywał, jak my go opiszemy. Niestety ja tak nie mam.
A więc uruchamiamy testera, i rozpoczynamy drugi etap naszych prac. Jeżeli mamy EA do gry dziennej najlepiej wtedy testować każdy dzień oddzielnie.
Rożne źródła podają jako reprezentatywny test co najmniej 30 elementów. I tak róbmy, puśćmy co najmniej 30 dni i zapiszmy wyniki. W tym momencie nie interesuje nas ani raport, ani wykres, jedyne co robimy to kopiujemy całą zakładkę rezultaty i zapisujemy sobie w jakimś pliku tekstowym. Możemy ewentualnie jeszcze sprawdzać dziennik, czy nie było błędów.
Jak będzie taki zapis przykładowo wyglądał? Zaraz pokaże..
Kod: Zaznacz cały
23 2011.07.20 13:15 modify 2 0.10 1.4189 1.4203 0.0000 0.00 503.00
24 2011.07.20 13:25 modify 2 0.10 1.4189 1.4204 0.0000 0.00 503.00
25 2011.07.20 13:30 modify 2 0.10 1.4189 1.4205 0.0000 0.00 503.00
26 2011.07.20 13:35 modify 2 0.10 1.4189 1.4206 0.0000 0.00 503.00
27 2011.07.20 13:40 modify 2 0.10 1.4189 1.4207 0.0000 0.00 503.00
28 2011.07.20 13:45 modify 2 0.10 1.4189 1.4208 0.0000 0.00 503.00
29 2011.07.20 13:50 modify 2 0.10 1.4189 1.4209 0.0000 0.00 503.00
30 2011.07.20 13:55 close 2 0.10 1.4213 1.4209 0.0000 24.00 527.00
31 2011.07.20 14:25 buy 3 0.10 1.4212 1.4166 0.0000 0.00 527.00
32 2011.07.20 14:30 modify 3 0.10 1.4212 1.4202 0.0000 0.00 527.00
33 2011.07.20 14:50 close 3 0.10 1.4206 1.4202 0.0000 -6.00 521.00
Powiedzmy, że mamy już dane z 30 dni (może być cały miesiąc). Drukujemy sobie na papier, lub czytamy z ekranu. Obok wykres, któremu przyglądamy się słupek po słupku. I co dalej? No właśnie teraz musimy pokazać nasz charakter, albo mamy jaja, albo nie. Wszystko co napisałem wyżej to po to, aby znaleźć się tutaj.
Teraz następuje bezwzględna weryfikacja naszych pomysłów, naszych ustaleń, i naszych nadziei. Nie musimy się spieszyć z wnioskami, materiału mamy dużo. Jeżeli coś udało się nam ustalić, znaleźliśmy coś ciekawego zapiszmy sobie. Jutro przeczytajmy jeszcze raz. Nie zawsze pierwsze wrażenie jest najlepsze.
Od siebie na koniec dodam jeszcze kilka uwag. Ale to tylko na dobry początek. Wkrótce sami zaczniemy rozumieć, co dla nas najlepiej pracuje.
- analizując kolejne wpisy, będziemy obserwować zarówno otwarcia jak i zamknięcia pozycji
- starajmy się raczej upraszczać metody otwarcia pozycji
- jeżeli będziemy chcieli przetestować same metody otwarcia pozycji, to wtedy możemy sobie napisać prościutkie EA, gdzie np. będziemy zamykać pozycje na 3,5 lub innym kolejnym dowolnym słupku i porównywać metody otwierania
- zobaczmy jakie błędy popełniamy przy zamykaniu pozycji, patrzymy co dalej się dzieje z przedwcześnie zamkniętą pozycją
- zastanówmy się nad możliwością odnowienia pozycji gdy za wcześnie ją zamknęliśmy
- być może niektóre wartości przyjęliśmy arbitralnie, może trzeba się niektórym przyjrzeć
- wszystkie uwagi zapisujemy i weryfikujemy je na bieżąco
- jeżeli uważamy, że potrafimy już uniknąć największych błędów i widzimy sens dalszego testowania, zapisane uwagi przemieniamy w kod
- powtarzamy testy, nieraz już za trzecim razem daje się uzyskać obiecujące wyniki
- gdy mamy zadawalające wyniki, musimy koniecznie przeprowadzić testy na innych zbiorach danych
Wierze, że każdy kto chce znajdzie swoją ścieżkę. Moje własne proporcje pracy nad systemem wyglądają mniej więcej tak:
- opracowywanie koncepcji - 20 % czasu
- kodowanie - 5 % czasu
- testowanie - 75 % czasu
Well, good luck