Roboty - cała prawda o automatach, czy można ją poznać?

Tu można dyskutować o wszystkich sprawach związanych z rynkiem Forex.
green7
Maniak
Maniak
Posty: 2060
Rejestracja: 16 sty 2008, 18:44

Nieprzeczytany post autor: green7 »

matka pisze:
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.
Jeśli dobrze zrozumiałem, w przykładzie opisujesz komunikację terminala w czasie rzeczywistym. Jaki to ma wpływ na działania testera na tickach?
Ano taki, że w testerze nie jesteś w stanie odwzorować warunków rzeczywistych.
Jeśli weźmiesz dane o dużej ilości ticków to tester będzie wywoływał EA po każdym z nich. Przy dokładnie tych samych tickach ale spływających do terminala w realu dostaniesz tylko co któryś tam tick.

Może mieć to wpływ na to jak strategia otwiera pozycje. Z kolei dane tickowe umożliwiają lepsze odwzorowanie przez terminal zachowania SL i TP. Jak zwykle każdy kij ma 2 końce :)
Green
Obrazek
Obrazek

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

Nieprzeczytany post autor: matka »

green7 pisze:Może mieć to wpływ na to jak strategia otwiera pozycje. Z kolei dane tickowe umożliwiają lepsze odwzorowanie przez terminal zachowania SL i TP. Jak zwykle każdy kij ma 2 końce
No cóż, pozostaje mi tylko wnioskować o pochwałę. Od siebie dodam, że takie zachowanie terminala może mieć wpływ dla strategii korzystających z renko.
Robiłeś może jakieś badania przy jakiej częstotliwości ticków ma to istotny wpływ na feed? Jak MT porcjuje te paczki?
Obrazek
Unfortunately, more to come

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

Nieprzeczytany post autor: green7 »

matka pisze:Robiłeś może jakieś badania przy jakiej częstotliwości ticków ma to istotny wpływ na feed? Jak MT porcjuje te paczki?
Ciężko to dokładnie zbadać - bo nie wiesz ile ticków śle broker rzeczywiście. Trzeba tu kombinować np. z brokerem, który ten sam datafeed ma dostępny w mt4 i poprzez API. Przez API dostajesz wszystkie ticki i masz wtedy jakieś porównanie z mt4 ....

Ogólnie wychodziło mi na to, że w mt4 nie dostajesz ticków częściej niż co jakieś 200ms. Tzn. jeśli broker w 200 ms wyśle powiedzmy 5 ticków to terminal dostanie je w jednej paczce. Ale to oczywiście przybliżenie: mogło i zapewne zależy to od odległości do serwera, łącza internetowego obciążenia serwera itd.

Łatwo tu samemu poeksperymentować: kod pokazany wyżej rzeczywiście pokaże ilu ticków EA nie dostała, dodatkowo można dodać wypisywanie czasu jaki upłynął pomiędzy wywołaniami funkcji start (stawiam na to, że rzadko będzie to mniej niż 200ms) i o ile zwiększył się volumen.
Tylko ostrożnie z używaniem funkcji Alert i Print - one też ciut czasu zżerają.
Green
Obrazek
Obrazek

Jan24
Bywalec
Bywalec
Posty: 6
Rejestracja: 12 mar 2007, 13:32

Nieprzeczytany post autor: Jan24 »

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

Afiliat
Gaduła
Gaduła
Posty: 119
Rejestracja: 21 paź 2014, 23:56

Re:

Nieprzeczytany post autor: Afiliat »

Jan24 pisze:
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.http://monitorfx.pl/robot/ 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
Teraz są nowe możliwości testowania strategii na MT5. Buildery są dobrym rozwiązaniem aby zacząć bawić się automatami na rynku.

ODPOWIEDZ