witam, mam takie pytanko dotyczące testowania.
Co widzę jako wynik testu jeśli w kodzie mam parametry na D1 a podczas testu ustawiam na H1?
Czy kod się wykonuje wtedy dla D1 czy H1, a może jeszcze coś innego?
Pytam, ponieważ zauważyłem różnicę w wynikach np.:
kod test wynik
H1 H1 - 2,34
H1 D1 - 6,9
D1 D1 - 9,7
D1 H1 - 1,2
testowanie
- m05
- Gaduła
- Posty: 449
- Rejestracja: niedziela 11 sie 2013, 09:58
- Lat na Forex: 7
- Lokalizacja: exPRL
- Kontakt:
Re: testowanie
Tester MT4 jest do d..py.
Jeżeli chcesz odnieść sukces, daj się ponieść. 中国的
http://www.dzieciom.pl/2708 Many thanks in advance.
http://www.dzieciom.pl/2708 Many thanks in advance.
- akhh
- Moderator Forum
- Posty: 4450
- Rejestracja: czwartek 07 cze 2012, 08:46
- skype: ComparicFX
- Lat na Forex: 12
- Rodzaj rachunku: Rachunek rzeczywisty
- Lokalizacja: Kielce
- Kontakt:
Re: testowanie
m05 pisze:Tester MT4 jest do d..py.
Może rozwiniesz ;)
Bo nie każdy się zna - ja np. przyznam że testować strategii nie umiem i tego nie robię.
- alx
- Maniak Forex
- Posty: 7292
- Rejestracja: czwartek 15 sie 2013, 09:56
- Lat na Forex: 5
- Lokalizacja: Itokawa
Re: testowanie
Jeżeli tester modeluje tiki na podstawie zebranych przez terminal danych historycznych od brokera to wszystko jest możliwe.
Teoretycznie nie powinno mieć znaczenia jakich ramek czasowych używa wewnętrznie Twoje EA - tester robi plik fxt zawierający "tiki" z których potem jest w stanie złożyć dowolną inną ramkę jeżeli EA zażąda. A potem jedzie po tych tikach z tego pliku.
Ale te "tiki" niewiele mają wspólnego z prawdziwymi tikami tego samego brokera - MT4 nie przechowuje tików tylko "kompresuje" je do danych słupkowych. EDIT: err: dostaje od brokera już skompresowane dane słupkowe.
Te tiki są modelowane na podstawie szczątkowych danych słupkowych (które notabene nie zawsze są prawidłowo wygenerowane przez brokera). Na dodatek zależy od tego jakie dane udało Ci się zgromadzić. Tester stara się używać najniższej dostępnej ramki dla danego okresu (przy założeniu wybrania najdokładniejszego modelowania w parametrach testera). Ale możesz nie mieć wystarczającej ilości słupków np. M1 w danym okresie. Sięgnie więc do M5, a jak nie będzie to do M15… i tak dalej. Im wyższa ramka tym gorsze modelowanie.
Może być tak, że masz M1 ale w danych jest dziura - będzie ją wtedy starał się łatać z wyższych ramek.
A ponieważ modelowanie oznacza próbę odtworzenia ruchu rynku EDIT: w okresie trwania słupka na najniższej dostępnej ramce w danych historycznych mając tylko cztery punkty (OHLC) i ilość tików na dany słupek (EDIT: wynikającą ze skompresowanych już przez brokera danych podczas gdy rzeczywistych tików mogło być tam np. 300) takie rozwiązanie od razu jest skazane na rozmaite przybliżenia i kompromisy oraz wrażliwie na zakłócenia danych (tester porównuje też wyższe ramki z niższymi żeby oszacować ilość tików jakie ma wygenerować).
W efekcie możesz mieć różnie generowane tiki w tym samym okresie bez zmiany żadnych parametrów. A co dopiero odtwarzanie innych ramek wewnątrz EA na podstawie tych przybliżonych tików...
EDIT: wiem, że brzmi to niezbyt jasno i nie za bardzo tłumaczy wprost skąd takie duże różnice ale temat wbrew pozorom nie jest taki łatwy, a na podstawie tak bardzo ogólnych informacji jakie przedstawiłeś nie da się powiedzieć nic bardziej konkretnego.
Dlatego też Mike napisał to co napisał, a ja się z nim zgadzam o tyle, że jeżeli używa się testera tak jak on jest oddany użytkownikowi to efekty są właśnie tyle warte.
Teoretycznie nie powinno mieć znaczenia jakich ramek czasowych używa wewnętrznie Twoje EA - tester robi plik fxt zawierający "tiki" z których potem jest w stanie złożyć dowolną inną ramkę jeżeli EA zażąda. A potem jedzie po tych tikach z tego pliku.
Ale te "tiki" niewiele mają wspólnego z prawdziwymi tikami tego samego brokera - MT4 nie przechowuje tików tylko "kompresuje" je do danych słupkowych. EDIT: err: dostaje od brokera już skompresowane dane słupkowe.
Te tiki są modelowane na podstawie szczątkowych danych słupkowych (które notabene nie zawsze są prawidłowo wygenerowane przez brokera). Na dodatek zależy od tego jakie dane udało Ci się zgromadzić. Tester stara się używać najniższej dostępnej ramki dla danego okresu (przy założeniu wybrania najdokładniejszego modelowania w parametrach testera). Ale możesz nie mieć wystarczającej ilości słupków np. M1 w danym okresie. Sięgnie więc do M5, a jak nie będzie to do M15… i tak dalej. Im wyższa ramka tym gorsze modelowanie.
Może być tak, że masz M1 ale w danych jest dziura - będzie ją wtedy starał się łatać z wyższych ramek.
A ponieważ modelowanie oznacza próbę odtworzenia ruchu rynku EDIT: w okresie trwania słupka na najniższej dostępnej ramce w danych historycznych mając tylko cztery punkty (OHLC) i ilość tików na dany słupek (EDIT: wynikającą ze skompresowanych już przez brokera danych podczas gdy rzeczywistych tików mogło być tam np. 300) takie rozwiązanie od razu jest skazane na rozmaite przybliżenia i kompromisy oraz wrażliwie na zakłócenia danych (tester porównuje też wyższe ramki z niższymi żeby oszacować ilość tików jakie ma wygenerować).
W efekcie możesz mieć różnie generowane tiki w tym samym okresie bez zmiany żadnych parametrów. A co dopiero odtwarzanie innych ramek wewnątrz EA na podstawie tych przybliżonych tików...
EDIT: wiem, że brzmi to niezbyt jasno i nie za bardzo tłumaczy wprost skąd takie duże różnice ale temat wbrew pozorom nie jest taki łatwy, a na podstawie tak bardzo ogólnych informacji jakie przedstawiłeś nie da się powiedzieć nic bardziej konkretnego.
Dlatego też Mike napisał to co napisał, a ja się z nim zgadzam o tyle, że jeżeli używa się testera tak jak on jest oddany użytkownikowi to efekty są właśnie tyle warte.
Ostatnio zmieniony czwartek 24 paź 2013, 09:34 przez alx, łącznie zmieniany 1 raz.
Od dwa, przez pięć do dziewięć...
Re: testowanie
No właśnie zaczynam się zastanawiać czy testowanie ma jakikolwiek sens na MT4. Zauważyłem też że ten sam kod inaczej działa na poszczególnych platformach, różna jakość modelowania jest jak również czasem ten sam kod potrafi nie działać na poszczególnych platformach. Zainstalowałem sobie już Tickstory Lite. Muszę tylko wyczaić gdzie można pobrać w miarę dobre dane.
A tak przy okazji czy testując strategię MT4 pobiera i zapisuje na twardym dysku jakieś dane? Jeśli tak to gdzie?
Pytam, ponieważ odkąd zacząłem robić backtesty już drugi komputer zgłasza mi info że brakuje mi miejsca na twardym dysku.
A tak przy okazji czy testując strategię MT4 pobiera i zapisuje na twardym dysku jakieś dane? Jeśli tak to gdzie?
Pytam, ponieważ odkąd zacząłem robić backtesty już drugi komputer zgłasza mi info że brakuje mi miejsca na twardym dysku.
- alx
- Maniak Forex
- Posty: 7292
- Rejestracja: czwartek 15 sie 2013, 09:56
- Lat na Forex: 5
- Lokalizacja: Itokawa
Re: testowanie
Oj zaczyna się długi i wielowątkowy temat... na dodatek wykraczający poza samo testowanie
Testowanie ma sens jeżeli masz dobre źródło danych i stosujesz odpowiednią, a przynajmniej zawsze taką samą metodologię.
Najdokładniejsze i powtarzalne będą testy na prawdziwych tikach (które niestety trzeba sobie zrobić na piechotę).
Dobre jakościowo rezultaty można też uzyskać jeżeli masz EA które pracuje tylko na danych słupkowych - otwiera/zamyka po cenach Close/Open czy High/Low. I podobnie liczy wszelkie potrzebne mu wskaźniki i inne parametry. Ale wtedy kod musi być dobrze napisany żeby uniknąć typowych skrótów.
Zawsze będziesz miał różnice pomiędzy brokerami. Nawet ten sam broker z kontem demo może mieć różne dane pomiędzy dwoma serwerami - taka jest natura OTC.
A co dopiero słupki wrażliwe na sposób kwantyzacji - zależne od zegara brokera. Ja np. unikam jak ognia H4 i D1.
Które H4 są te właściwe? Generowane na podstawie GMT, GMT+1, GMT+2, GMT+3 z DST czy bez?
Podobnie D1 ale tutaj jeszcze dochodzi jeszcze Pacyfik err Atlantyk: które Daily jest to Daily: według czasu we Frankfurcie, Londynie czy Nowym Jorku? A co ze słupkami niedzielnymi? U jednych są bo zaczynają wcześniej, u innych nie... te słupki są zazwyczaj malutkie, zupełnie inne niż w dni robocze - weź teraz policz ATR(3) na czymś takim.
Sztuka polega na tym, żeby EA nie było wrażliwe na naturalne różnice pomiędzy dobrymi brokerami. I nie było wrażliwe na różnice pomiędzy "ECN" i Market Maker. Jeżeli przestawienie np. TP/SL o trzy pip zmienia znacząco wyniki testu to EA nie nadaje się do pracy w realu. Albo zbyt wrażliwy algorytm, albo przeoptymalizowany. Zazwyczaj to pierwsze.
Oczywiście że MT4 zapisuje dane.
Zapisuje plik fxt w [metatrader]/tester/history którego wielkość zależna jest od okresu testu i wolumenu tikowego danych z których był generowany,
Zapisuje log w [metatrader]/tester/log którego wielkość zależy od tego co pokazuje się w konsoli,
Jeżeli EA tworzy jakieś pliki to zapisuje do [metatrader]/tester/files
Normalnie plik fxt powinien być automatyczne kasowany po wyłączeniu MT4. Ale log zostaje.
Wystarczy napisać taki kod:
I puścić na dowolnej parze i dowolnej ramce na okresie powiedzmy roku żeby dołożyć z kilkaset megabajtów
Testowanie ma sens jeżeli masz dobre źródło danych i stosujesz odpowiednią, a przynajmniej zawsze taką samą metodologię.
Najdokładniejsze i powtarzalne będą testy na prawdziwych tikach (które niestety trzeba sobie zrobić na piechotę).
Dobre jakościowo rezultaty można też uzyskać jeżeli masz EA które pracuje tylko na danych słupkowych - otwiera/zamyka po cenach Close/Open czy High/Low. I podobnie liczy wszelkie potrzebne mu wskaźniki i inne parametry. Ale wtedy kod musi być dobrze napisany żeby uniknąć typowych skrótów.
Zawsze będziesz miał różnice pomiędzy brokerami. Nawet ten sam broker z kontem demo może mieć różne dane pomiędzy dwoma serwerami - taka jest natura OTC.
A co dopiero słupki wrażliwe na sposób kwantyzacji - zależne od zegara brokera. Ja np. unikam jak ognia H4 i D1.
Które H4 są te właściwe? Generowane na podstawie GMT, GMT+1, GMT+2, GMT+3 z DST czy bez?
Podobnie D1 ale tutaj jeszcze dochodzi jeszcze Pacyfik err Atlantyk: które Daily jest to Daily: według czasu we Frankfurcie, Londynie czy Nowym Jorku? A co ze słupkami niedzielnymi? U jednych są bo zaczynają wcześniej, u innych nie... te słupki są zazwyczaj malutkie, zupełnie inne niż w dni robocze - weź teraz policz ATR(3) na czymś takim.
Sztuka polega na tym, żeby EA nie było wrażliwe na naturalne różnice pomiędzy dobrymi brokerami. I nie było wrażliwe na różnice pomiędzy "ECN" i Market Maker. Jeżeli przestawienie np. TP/SL o trzy pip zmienia znacząco wyniki testu to EA nie nadaje się do pracy w realu. Albo zbyt wrażliwy algorytm, albo przeoptymalizowany. Zazwyczaj to pierwsze.
Oczywiście że MT4 zapisuje dane.
Zapisuje plik fxt w [metatrader]/tester/history którego wielkość zależna jest od okresu testu i wolumenu tikowego danych z których był generowany,
Zapisuje log w [metatrader]/tester/log którego wielkość zależy od tego co pokazuje się w konsoli,
Jeżeli EA tworzy jakieś pliki to zapisuje do [metatrader]/tester/files
Normalnie plik fxt powinien być automatyczne kasowany po wyłączeniu MT4. Ale log zostaje.
Wystarczy napisać taki kod:
Kod: Zaznacz cały
int start(){
Print ("Bid ", Bid, " Ask ", Ask):
return (0);
}
Ostatnio zmieniony czwartek 24 paź 2013, 11:26 przez alx, łącznie zmieniany 1 raz.
Od dwa, przez pięć do dziewięć...
- m05
- Gaduła
- Posty: 449
- Rejestracja: niedziela 11 sie 2013, 09:58
- Lat na Forex: 7
- Lokalizacja: exPRL
- Kontakt:
Re: testowanie
Jakby co, można ciągnąć tiki z Dukasa za pomocą tego narzędzia
http://www.strategyquant.com/tickdatadownloader/
(jeszcze darmowego)
sam generuje dane do MT4 w obu pożądanych formatach, zabezpiecza przed nadpisaniem etc.
Do samych testów:
http://eareview.net/tick-data-suite?hop ... kdatasuite
niestety, za free tylko tydzień, potem trzeba nabyć drogą kupna.
Uzyskuje się testy 99% - choć nie zawsze, jak moje doświadczenie wskazuje. Na danych z Dukasa też są błędy.
http://www.strategyquant.com/tickdatadownloader/
(jeszcze darmowego)
sam generuje dane do MT4 w obu pożądanych formatach, zabezpiecza przed nadpisaniem etc.
Do samych testów:
http://eareview.net/tick-data-suite?hop ... kdatasuite
niestety, za free tylko tydzień, potem trzeba nabyć drogą kupna.
Uzyskuje się testy 99% - choć nie zawsze, jak moje doświadczenie wskazuje. Na danych z Dukasa też są błędy.
Jeżeli chcesz odnieść sukces, daj się ponieść. 中国的
http://www.dzieciom.pl/2708 Many thanks in advance.
http://www.dzieciom.pl/2708 Many thanks in advance.
Re: testowanie
Ok, dzięki, ale jak je przetestować?
Najpierw użyłem Tickstory Lite. Pobrałem dane itd. Otworzyłem Help poczytałem i coś chyba jest nie tak w pkt 5. Po otwarciu TickStoryExpert (czyli klikam dwukrotnie w EA strategie) po wybraniu "wpisz parametry" i kliknieciu "ładuj" automatycznie pokazują się pliki z rozszerzeniem *.set, problem w tym że takowych brak. Jest tylko plik Mt4.......Server.mt4config, który został wcześniej skreowany. O dziwo po załadowaniu go "uśmiechnięta" twarz zmieniła się na "smutną".
Próbowałem uruchomić też "Launch MetaTrader for Back-testing" jednak pokazały się błędy:
" a suittable launcher could not be found for your MT version"
"no i info że próbował
for build 432,445-489,500-506,507+
Co do SQ Tick data to dopiero pobiera mi dane. Jednak nie bardzo wiem do czego je podłączyć. Czyżby wystarczył zwykły import (centrum historii) do jakiejkolwiek platformy mt4?
Najpierw użyłem Tickstory Lite. Pobrałem dane itd. Otworzyłem Help poczytałem i coś chyba jest nie tak w pkt 5. Po otwarciu TickStoryExpert (czyli klikam dwukrotnie w EA strategie) po wybraniu "wpisz parametry" i kliknieciu "ładuj" automatycznie pokazują się pliki z rozszerzeniem *.set, problem w tym że takowych brak. Jest tylko plik Mt4.......Server.mt4config, który został wcześniej skreowany. O dziwo po załadowaniu go "uśmiechnięta" twarz zmieniła się na "smutną".
Próbowałem uruchomić też "Launch MetaTrader for Back-testing" jednak pokazały się błędy:
" a suittable launcher could not be found for your MT version"
"no i info że próbował
for build 432,445-489,500-506,507+
Co do SQ Tick data to dopiero pobiera mi dane. Jednak nie bardzo wiem do czego je podłączyć. Czyżby wystarczył zwykły import (centrum historii) do jakiejkolwiek platformy mt4?
- alx
- Maniak Forex
- Posty: 7292
- Rejestracja: czwartek 15 sie 2013, 09:56
- Lat na Forex: 5
- Lokalizacja: Itokawa
Re: testowanie
Nie dam rady napisać tego o początku...
Musisz niestety zapoznać się dokładniej z tym co napisał na ten temat Birt:
http://eareview.net/tick-data
Kliknij TickData, pojawi się menu i przeleć po kolei.
Na navigatorze był/jest wątek o modelowaniu.
Tam opisywaliśmy co, jak i do czego służy.
Tutaj rozpocząłem opisywanie o co w tym chodzi:
http://forex-nawigator.biz/forum/tick-d ... ml#p334942
Ale raz, że to nie wszystko, a dwa, że to było pisane jakiś czas temu i życie trochę poszło do przodu.
Co prawda zasada działania się nie zmieniła, ale narzędzia trochę tak.
Będziesz musiał chyba przelecieć w poszukiwaniu istotnych informacji bo teraz już nie pamiętam co jest na której stronie. Np. widzę jakieś kawałki na 15-ej ale odnoszące się do wcześniejszych informacji.
No i później to też było rozwijane.
Musisz niestety zapoznać się dokładniej z tym co napisał na ten temat Birt:
http://eareview.net/tick-data
Kliknij TickData, pojawi się menu i przeleć po kolei.
Na navigatorze był/jest wątek o modelowaniu.
Tam opisywaliśmy co, jak i do czego służy.
Tutaj rozpocząłem opisywanie o co w tym chodzi:
http://forex-nawigator.biz/forum/tick-d ... ml#p334942
Ale raz, że to nie wszystko, a dwa, że to było pisane jakiś czas temu i życie trochę poszło do przodu.
Co prawda zasada działania się nie zmieniła, ale narzędzia trochę tak.
Będziesz musiał chyba przelecieć w poszukiwaniu istotnych informacji bo teraz już nie pamiętam co jest na której stronie. Np. widzę jakieś kawałki na 15-ej ale odnoszące się do wcześniejszych informacji.
No i później to też było rozwijane.
Od dwa, przez pięć do dziewięć...
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 32 gości