259 pisze: GA przesiało coś czego nawet nie rozumiało i coś tam z tego wyszło…a jak wyszło? Sami oceńcie swoje własne wyniki.
Ale GA nic "nie rozumie" - z definicji. Nie ma takiej możliwości bo i skąd ?
GA robi tylko tyle:
- masz powiedzmy 2 optymalizowane parametry każdy w zakresie 1-100. Czyli 10tys. możliwych kombinacji parametrów. Metodą brute-force sprawdzasz wszystkie 10tys. kombinacji. GA najprościej rzecz ujmując natomiast losuje n z tych kombinacji i skupia się na tych, które dają lepsze wyniki (w zależności od tego co wybrałeś jako kryterium oceny), odrzucając gorsze. I tak cyklicznie, zmieniając losowo niektóre parametry (mutacja), aż uzyskiwane wyniki nie będą się polepszać (choć akurat w MQ to chyba jest uzależnione od ilości generacji a nie od "dobroci" wyników).
GA nie sprawdzi więc wszystkich możliwych kombinacji - powiedzmy, że w tym przykładzie będzie to 1/3 możliwych kombinacji. Może więc pominąć najlepsze wyniki.
Ale nie wierzę, by zawsze było tak, że GA daje Ci gorsze wyniki - musiałbyś być doprawdy pechowcem albo szukać po naprawdę sporym zakresie parametrów.
Poza tym często może być tak, że ten "najlepszy" wynik uzyskany brute-force wcale nie jest najlepszy. Skoro GA na niego nie trafiło, duże może być prawdopodobieństwo, że jest on zależny od jakiegoś specyficznego, wąskiego zakresu jednego z parametrów. Czyli, że mamy wynik przeoptymalizowany. Z definicji łatwiej będzie przeoptymalizować brute-force niż przez GA. Więc używając brute-force bardziej trzeba się skupić na ocenie wyników.
rayzeel pisze:Może się okazać, że przedstawiany wynik pochodzi z testu którego płaszczyzna wygląda tak jak na PIC.1
No właśnie - rysunek pokazuje świetnie słabość GA. GA może utknąć na jednym z tych "wzgórków" i zupełnie zignorować inne.
Można próbować sobie z tym radzić - ale nie w wypadku używania testera MQ. Tam nie mamy możliwości kontroli GA .....
matka pisze:To właśnie GA pokazuje nam szpilki bez otoczenia, ze względu na losowe podejście.
No tak, zwłaszcza w MQ gdzie zupełnie nie wiadomo co to GA robi. Mając pełną kontrolę nad GA niektóre rzeczy możesz wymusić.
matka pisze:Optymalizacja w MT4 owszem jest mocno ograniczona ale można ją zastąpić swoimi rozwiązaniami. Mam na myśli MT4 odpalane jako pojedynczy backtest, obróbka wyników zewnętrznym skryptem. Możemy wtedy zastosować dowolny fitness, wykorzystać wiele rdzeni/procesorów/maszyn na raz. Takie podejście z wykorzystaniem wyłącznie "rdzenia" MT4 jako testera uważam za efektywniejsze niż pisanie własnego testera od podstaw. Przede wszystkim ze względu na ilość potencjalnych błędów. Może przedstawię to tak : z MT4 mamy ten "rdzeń" już teraz, możemy od razu testować i mamy duże prawdopodobieństwo, że za rok-dwa nie będziemy musieli powtarzać wszystkich testów, bo wypłynie jakiś trudno wykrywalny błąd czy niedopatrzenie np. w module egzekucji czy przetwarzania ticków
A z drugiej strony kto Ci da gwarancję, że ten "rdzeń" mt4 nie robi głupot i nie zachowuje się zupełnie nie tak jak myślałeś ?
Za rok-dwa może się okazać, że wszystkie Twoje testy były mało wiarygodne

Zależy też od tego co testujesz.....
Popatrz na backtesty wielu EA na danych tickowych Dukasa z dokładnością 99% .... Piękne krzywe kapitału - niby nie ma się czego przyczepić a przecież wiadomo, że te same EA w realu nie działają tak pięknie. Pytanie dla czego ... albo są przeoptymalizowane, albo rynek się zmienił. A może też dlatego, ciut w tym winy backtestera i platformy ?