Własne EA, czyli poszukiwanie Złotego Grala

Tu można dyskutować o wszystkich sprawach związanych z rynkiem Forex.

Czy wierzysz w istnienie EA, które regularnie zarabia ?

Tak
246
50%
Nie
100
20%
Tak, ale trzeba je nieustannie modyfikować
146
30%
 
Liczba głosów: 492

Awatar użytkownika
matka
Pasjonat
Pasjonat
Posty: 642
Rejestracja: 17 lis 2008, 15:53

Nieprzeczytany post autor: matka »

green7 pisze:Jak tak to zdaje się miał to w plikach własnej organizacji ....
Tak, csv napisałem z rozpędu ale oczywiście chodziło o pliki vs baza. Dziś nawet sobie tak pomyślałem po chłopsku, że baza to przecież też plik, tylko dostęp do niego jest nie bezpośrednio przez system ale przez bazę, która swój narzut mieć musi i to często olbrzymi.
green7 pisze:Czemu ? I co w zamian ?
Zastrzegam że ekspertem GA nie jestem ale to przecież w praktyce jest losowanie. Nie da się na podstawie wyniku ocenić czy nie przegapiamy czegoś ważnego. Brute force przy szybkości przetwarzania o jakiej mówimy jest ok. Tak naprawdę jednak najważniejsze jest co robimy dalej. Optymalizujemy w jakiś tam sposób w jakimś przedziale czasowym, dostajemy wyniki i co? ;)
Obrazek
Unfortunately, more to come

Awatar użytkownika
Esco
Przyjaciel Forum
Przyjaciel Forum
Posty: 2603
Rejestracja: 11 kwie 2010, 20:56

Nieprzeczytany post autor: Esco »

CSV bedzie z oczywistych względów wolniejszy (konwersja w locie na double).

Lepiej przekonwertowac jednorazowo CSV na dane binarne.

green7
Maniak
Maniak
Posty: 2060
Rejestracja: 16 sty 2008, 18:44

Nieprzeczytany post autor: green7 »

matka pisze:Zastrzegam że ekspertem GA nie jestem ale to przecież w praktyce jest losowanie. Nie da się na podstawie wyniku ocenić czy nie przegapiamy czegoś ważnego. Brute force przy szybkości przetwarzania o jakiej mówimy jest ok.
No tak z definicji GA ma sens tam gdzie nie damy rady metodą brute force.
Więc godzimy się na to, że znalezione rozwiązanie nie koniecznie musi być tym najbardziej optymalnym - algorytm może np. utknąć na lokalnym ekstremum.

Ale coś za coś - mamy wyniki może nie najlepsze z najlepszym - ale otrzymujemy je jeszcze za naszego życia :)

Tak przy okazji ... nie sprawdzałem ale mam wrażenie, że jeśli będziemy wiele razy puszczali AG na tej samej strategii w mt4 to zwykle otrzymamy te same wyniki (i nawet w takiej samej kolejności).
Co znaczyłoby, że początkowa populacja dla AG jest zawsze taka sama (normalnie inicjuje się ją losowo).
Green
Obrazek
Obrazek

Awatar użytkownika
matka
Pasjonat
Pasjonat
Posty: 642
Rejestracja: 17 lis 2008, 15:53

Nieprzeczytany post autor: matka »

Esco pisze:Lepiej przekonwertowac jednorazowo CSV na dane binarne.
Dokładnie.
green7 pisze:Co znaczyłoby, że początkowa populacja dla AG jest zawsze taka sama (normalnie inicjuje się ją losowo).
Może seed jest źle robiony i trzeba np. potrząsnąć kompem żeby zaskoczyło ;)
Obrazek
Unfortunately, more to come

green7
Maniak
Maniak
Posty: 2060
Rejestracja: 16 sty 2008, 18:44

Nieprzeczytany post autor: green7 »

matka pisze: Może seed jest źle robiony i trzeba np. potrząsnąć kompem żeby zaskoczyło
Raczej coby wyniki były takie same to seed inicjowany jest zawsze tak samo. No ale może mi się tylko wydaje - trzeba by sprawdzić przy okazji ....
Green
Obrazek
Obrazek

259
Maniak
Maniak
Posty: 3968
Rejestracja: 15 cze 2011, 23:20

Nieprzeczytany post autor: 259 »

Zgadzam się w 100% z matką

Ja już od kilku lat nie stosuję opcji "genetic" w testerze MT4 - trudno, trwa trzy dni zamiast 5 godzin ale za to wyniki "mnóstwo duże bardzo dobrze" :-)
Niezależnie od jakości tego algorytmu (co do której mam poważne wątpliwości, ale to inna sprawa), jakoś nie za bardzo mi to pasuje do tak skomplikowanej funkcji jaką jest EA. Nawet EA w którym są tylko tak proste parametry funkcji jak sztywny SL czy TP nie jest dobrym obiektem dla takiego algorytmu. Wystarczy przesunąć okres testowy i najlepsze wyniki pozyskane brutalną metodą mogą być najgorsze. A jak ma sobie z tym poradzić algorytm genetyczny który próbuje rekombinować fragmenty serii parametrów wejściowych z wynikami wynikłymi z szerszego zestawu parametrów w poszukiwaniu... właściwie czego?
Najlepszego wyniku netto? Mogę mieć EA które zrobi mi 100% zysku ale za cenę np. 80% DD. W tym okresie się udało. Czy uda się za dwa miesiące?

Ile razy było tak, że najlepsze wyniki uzyskane algorytmem genetycznym prowadziły do MC?
Sama ocena wyników jest problematyczna - często sam mam z tym duże problemy i muszę przeanalizować konkretny test aby ocenić czy te nędzne parę danych jak zysk, PF czy DD są reprezentatywne czy nie. Jak algorytm genetyczny ma ocenić jakość wyniku? Np. o tym, że zysk wyszedł ok, i DD jest niski zadecydowała… interwencja SNB na którą robot trafił we właściwym kierunku ;-) I takie tam małe złośliwości które zdarzają się na co dzień…

Dodano po 27 minutach:

A skoro już tak sobie teoretyzuję to przyszło mi właśnie do głowy:

1) podstawową funkcją na jakiej opiera się większość EA jest ruch/akcja ceny,
2) ten wyżej określony jako przeważający typ w populacji EA (nie mogłem sobie tego odmówić :-D ) próbuje przeanalizować ruch ceny (czyli funkcję podstawową) i wyciągnąć z tego jakieś wnioski.
I tutaj bardzo proszę zwrócić szczególną uwagę na to co to znaczy - to jest ocena funkcji, a nie rozwinięcie tej funkcji.
Cokolwiek by to nie było, jest to już pochodną tej podstawowej funkcji. Na dodatek przeciętny EA używa do tego jakiś dodatkowych pochodnych tej samej funkcji ceny więc efektem jest funkcja pochodnych funkcji podstawowej…
3) I teraz mamy piramidę pochodnych z całą masą rozmaitych parametrów, niekoniecznie liniowych, a na końcu jakiś wynik o którym nie wiemy nawet czy jest kwestią farta czy metody. I jak teraz GA ma to przerobić?

Znam takiego jednego który w tym utonął ze dwa lata temu. Nie sam - znalazł profesora matematyki, pasjonata. Doszli do takich rzeczy, że techniki kosmiczne to pikuś. Np. samouczący i modyfikujący samego siebie algorytm. Ale co z tego? Nadal nie mają nic co by naprawdę działało…
A wiecie dlaczego?
Bo podstawowa funkcja - ruch ceny - nie jest modelem matematycznym. Nikomu nie udało się go opisać w tym języku. Tak samo jak nie udało się opisać ruchu burzliwego (cieczy czy gazów). Co nie oznacza, że nie da się tego używać - da się. Ale nie da się zrobić modelu matematycznego. Zostaje czysta empiria..
Ostatnio zmieniony 31 mar 2012, 13:00 przez 259, łącznie zmieniany 4 razy.
Jakże często ludzie mają już gotową opinię zanim zdążą pojąć istotę rzeczy.
A gdy już ta istota w pełni do nich dotrze, jakże często muszą zmagać się z konsekwencjami swojej opinii ;-)

green7
Maniak
Maniak
Posty: 2060
Rejestracja: 16 sty 2008, 18:44

Nieprzeczytany post autor: green7 »

259 pisze:Ja już od kilku lat nie stosuję opcji "genetic" w testerze MT4 - trudno, trwa trzy dni zamiast 5 godzin ale za to wyniki "mnóstwo duże bardzo dobrze"
259 pisze:Ile razy było tak, że najlepsze wyniki uzyskane algorytmem genetycznym prowadziły do MC?
Sama ocena wyników jest problematyczna - często sam mam z tym duże problemy i muszę przeanalizować konkretny test aby ocenić czy te nędzne parę danych jak zysk, PF czy DD są reprezentatywne czy nie. Jak algorytm genetyczny ma ocenić jakość wyniku? Np. o tym, że zysk wyszedł ok, i DD jest niski zadecydowała… interwencja SNB na którą robot trafił we właściwym kierunku
Czyli co - wg. Ciebie wyniki uzyskane przy pomocy AG prowadzą do MC a wyniki uzyskane po wyłączeniu AG już nie ? :)
Przecież, AG robi to samo co metoda "brute force". Z tym, że nie sprawdza wszelkich możliwych kombinacji ale skupia się tylko na tych obszarach zakresu parametrów, które wydają mu się najbardziej obiecujące.
Ten sam przypadek z interwencją SNB będziesz miał niezależnie od tego czy znajdziesz go przez AG czy "na piechotę". Finalnie i tak sam musisz ocenić wynik.
259 pisze:Jak algorytm genetyczny ma ocenić jakość wyniku?
Tak jak mu każesz. Sam wybierasz co jest kryterium oceny (zysk, profit factor, dd. itd.) Niestety w mt4 wybór jest ograniczony i nie można np. zdefiniować własnej funkcji oceny.
259 pisze:Bo podstawowa funkcja - ruch ceny - nie jest modelem matematycznym. Nikomu nie udało się go opisać w tym języku. Tak samo jak nie udało się opisać ruchu burzliwego (cieczy czy gazów). Co nie oznacza, że nie da się tego używać - da się. Ale nie da się zrobić modelu matematycznego. Zostaje czysta empiria..
No tak - ale co to ma do AG ?
Green
Obrazek
Obrazek

Awatar użytkownika
rayzeel
Gaduła
Gaduła
Posty: 357
Rejestracja: 05 lis 2008, 14:47

Nieprzeczytany post autor: rayzeel »

Osobiście porzuciłem brute force z powodu takiego, że jak powielam strategie które mają jakieś tam parametry i jednocześnie powielam je na różne walory to życia by nie starczyło :) ... jak zresztą wspomniał green7. Oczywiste jest, że testy będą losowane i na stówe ucieknie dużo wyników najlepszych. Mnie jednak nie interesują te szpilki. Ważne jest abym znalazł coś dobrego i krok w lewo lub w prawo nie było totalnej zwałki i jest ok.
Co do algorytmu gen. z MT4 to dzieli on populację na 256 (stąd zawsze jest 10496 wyników) i robi 41 generacji wyników... jak dokładnie to leci to już nie pamiętam, ale jest obszerny artykuł w necie na forum mql4.

Btw... podpinam jeszcze jeden screen z testu. Tutaj testuje się jedna strategia która otwiera losowo long lub short z zadanym sl i tp. SL jest losowany między 50-200, TP mdz. 100-500 i ilość strategii mdz 10-50. Jeden test na okresie 6msc trwa 81ms. Widać przewagę optymalizacji zyskownych nad stratnymi, a wynik ten odwóci się jeśli wpisze się mniejszy TP niż SL. S-ratio to Zysk/ DD . Widać jak poprzeczka się podnosiła coraz wyżej. Taka tylko ciekawostka bo na razie to nie ma nic wspólnego z tworzeniem dobrego portfolio.

Dodano po 14 minutach:
259 pisze:Bo podstawowa funkcja - ruch ceny - nie jest modelem matematycznym. Nikomu nie udało się go opisać w tym języku.
To racja. Rynek to raczej wypadkowa nastrojów wszystkich jego uczestników. Można śmiało stwierdzić, że znalezenie na to wzoru jest po prostu niemożliwe. Trzeba by było chyba być z techniką do przodu o lata świetlne.

Możliwe jest za to takie zdefiniowanie strategii, aby w połączeniu sama ze sobą lub z innymi niwelowała w znacznym stopniu całościowy DD. Dodatkowo dobrze dobrane portfolio ma 0% szans na DD w jednym momencie wszystkich jego elementów. Tu jedynie możemy się poruszać właśnie w obrębie statystyki bo modele matematyczne to jak już nawet na przytoczonym przykładzie widać, nie bardzo mają sens.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

259
Maniak
Maniak
Posty: 3968
Rejestracja: 15 cze 2011, 23:20

Nieprzeczytany post autor: 259 »

green7 pisze:
259 pisze:Ile razy było tak, że najlepsze wyniki uzyskane algorytmem genetycznym prowadziły do MC?
Sama ocena wyników jest problematyczna - często sam mam z tym duże problemy i muszę przeanalizować konkretny test aby ocenić czy te nędzne parę danych jak zysk, PF czy DD są reprezentatywne czy nie. Jak algorytm genetyczny ma ocenić jakość wyniku? Np. o tym, że zysk wyszedł ok, i DD jest niski zadecydowała… interwencja SNB na którą robot trafił we właściwym kierunku
Czyli co - wg. Ciebie wyniki uzyskane przy pomocy AG prowadzą do MC a wyniki uzyskane po wyłączeniu AG już nie ? :)
Przecież, AG robi to samo co metoda "brute force". Z tym, że nie sprawdza wszelkich możliwych kombinacji ale skupia się tylko na tych obszarach zakresu parametrów, które wydają mu się najbardziej obiecujące.
Ten sam przypadek z interwencją SNB będziesz miał niezależnie od tego czy znajdziesz go przez AG czy "na piechotę". Finalnie i tak sam musisz ocenić wynik.
takie są konsekwencje skrótów myślowych :) Zgadza się, nie można obwinąć AG za wszystkie złe wyniki. Ale wielokrotnie porównywałem wyniki GA Metaquotes z niefiltrowanymi (dla mnie to co Metaquotes nazywa GA to raczej prosty filtr niż GA ale to moje prywatne zdanie) i zawsze, podkreślam, zawsze, wyniki brute force były zdecydowanie lepsze. I w tym kontekście wyniki GA nie tylko przegrywały ale (wręcz doprowadzały do MC) EDIT: i często zdarzało się, że tak wybrane parametry powodowały MC jak przełożyło się to na inny okres. I wbrew pozorom nie ma to nawet nic wspólnego z ‪curve fitting‬ - to raczej loteria Metaquotres: 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.
EDIT: choć fakt, że to czy będzie MC czy nie nie ma nic wspólnego z GA. Chodziło m raczej o to, że często te najlepsze zestawy parametrów nie są w ogóle sprawdzane.

Przykład z SNB miał za zadanie uzmysłowić jak niemiarodajna może być funkcja podstawowa na jakiej się to wszystko opiera.
Choć zgadzam się, że to absolutny wyjątek. W zasadzie powinienem tutaj podkreślić, że AT to czysta statystyka i jako taka ma ona zastosowanie niezależnie od wyjątków. Mówiąc czysto po ludzku - jeżeli coś powtarza się przynajmniej 2 razy na trzy przypadki to jest całkiem nieźle, nie? :-D O ile ten jeden z trzech nie zabije wyników pozostałych - co by nie było to zawsze kwantyzacja i uśrednianie ;-)
O ile uda się je połączyć w coś co daje tę przewagę na której tak wszystkim zależy. Ze wszystkimi konsekwencjami z tego wynikającymi ;-)
green7 pisze:
259 pisze:Jak algorytm genetyczny ma ocenić jakość wyniku?
Tak jak mu każesz. Sam wybierasz co jest kryterium oceny (zysk, profit factor, dd. itd.) Niestety w mt4 wybór jest ograniczony i nie można np. zdefiniować własnej funkcji oceny.
Ale właśnie od tego jak każesz zależą prawdziwe wyniki. Masz teraz następną pochodną. Jeżeli masz własny tester nad którym masz pełną kontrolę i umiesz dobrać złożone kryteria oceny to masz tutaj zdecydowaną przewagę. W przypadku MT4 masz JEDEN parametr oceny i parę zaledwie dodatków i nie są one w stanie dać miarodajnej oceny bez szczegółowej analizy wyników. Np. czy max DD 15% to naprawdę maksmalny DD jaki się zdarzył? Czy EA który zrobi 200% przy DD 85% jest lepszy niż 15% zysku przy 11% DD? Albo np. mamy wyniki 110%, 121%, 118% zysku, DD dla wszystkich jest taki sam, powiedzmy 18% i wydaje się, że wszystko jest ok. A w szczegółach okazuje się, że w przeciągu roku EA miał ze trzy okresy gdzie zrobił cały zysk, ale były one krótkie, za to przez większość czasu plątał się w miejscu międląc tylko wodę.
Parametry wejściowe mogą być na tyle bliskie siebie, że GA może pominąć te "chromosomy" na granicy szumu… tak jak ciasny SL szlag trafia na szumie :-)
green7 pisze:
259 pisze:Bo podstawowa funkcja - ruch ceny - nie jest modelem matematycznym. Nikomu nie udało się go opisać w tym języku. Tak samo jak nie udało się opisać ruchu burzliwego (cieczy czy gazów). Co nie oznacza, że nie da się tego używać - da się. Ale nie da się zrobić modelu matematycznego. Zostaje czysta empiria..
No tak - ale co to ma do AG ?
Prawdę mówiąc trochę się tutaj zagalopowałem - jakoś pochłonął mnie wątek genetycznej rekombinacji algorytmów i ten fragment odnosił się do tego. Bezpośrednio, Ale generalnie jest to właśnie to coś z czym wszyscy mają największy problem :-D

Dodano po 10 minutach:
rayzeel pisze:Panie Edison, dlaczego nie rezygnuje pan po 5000 porażek?”, Edison: „Młody człowieku, nie rozumie pan, to nie porażka. Znalazłem tylko 5000 sposobów, które nie działają. Dzięki czemu jestem o 5000 prób bliżej rozwiązania”.
I o to chodzi :-D
Ostatnio zmieniony 31 mar 2012, 10:53 przez 259, łącznie zmieniany 1 raz.
Jakże często ludzie mają już gotową opinię zanim zdążą pojąć istotę rzeczy.
A gdy już ta istota w pełni do nich dotrze, jakże często muszą zmagać się z konsekwencjami swojej opinii ;-)

Awatar użytkownika
rayzeel
Gaduła
Gaduła
Posty: 357
Rejestracja: 05 lis 2008, 14:47

Nieprzeczytany post autor: rayzeel »

Jednym i drugim podejściem da się osiągnąć podobny wynik... lub też zupełnie różny. To też w dużym stopniu zależy od człowieka który nad tym siedzi. Pomysł na grę automatem jest równie ważny jak sam automat. Ja poszedłem w stronę GA. Obecnie w mt4 tak testuję, ale wcześniej robiłem wszystkie kombinacje. Teraz ustawiam sobie gęsty krok, dużo parametrów i daję algorytmowi do przetrawienia. Problem tylko w tym, że to jest i tak pojedynczy test i nie wiele on mówi. Zrobiłem sobie do tego programik, który łączy krzywe equity spisane do pliku z testu mt4, ale to podejście i tak jest czasochłonne i wymagało automatyzacji, a tu trzeba było powoli odejść od mt4. Oczywiście nie twierdzę, że z mt4 się nic nie da zrobić. Jak najbardziej można uzyskać takie same efekty jak przy bardziej zaawansowanym sofcie, ale wymaga to na pewno o wiele więcej czasu, klepania tabelek, a jak się człowiek zmęczy i gdzieś coś przestawi to lipa.
259 pisze:Czy EA który zrobi 200% przy DD 85% jest lepszy niż 15% zysku przy 11% DD?
Ja bym odpowiedział tak:
Sama informacja o wyniku mówi bardzo mało. Może się okazać, że przedstawiany wynik pochodzi z testu którego płaszczyzna wygląda tak jak na PIC.1, albo z takiego którego płaszczyzna to PIC.2. Bez takiego obrazu ciężko powiedzieć co jest lepsze.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.

ODPOWIEDZ