JForex Historical Tester

Jeżeli masz pomysł lub używasz ciekawego systemu albo strategii gry, opisz ja tutaj.
Awatar użytkownika
tomekbe
Stały bywalec
Stały bywalec
Posty: 22
Rejestracja: 24 lut 2009, 18:26
Lokalizacja: chłop z mazur

JForex Historical Tester

Nieprzeczytany post autor: tomekbe » 12 paź 2019, 22:24

Witam

Mam mały problem ze zrozumieniem działania testera historycznego na platformie JForex.
Znalazłem na forum Dukascopy post opisujący niemal identyczny problem https://www.dukascopy.com/swiss/english ... iod#p79469

Problem polega na tym, ze w testerze historycznym muszę wybrać jedna z czterech opcji: Ticks, 1 Minute, 1 Hour oraz 1 Day. Każda z tych opcji daje inny wynik końcowy strategii. Strategia, o której piszę nie wykorzystuje żadnych danych typu "default" lub innych zmiennych, które można deklarować przed uruchomieniem. Sama tworzy zmienne i na nich pracuje więc nie potrzebuje żadnych dodatkowych ustawień. Stąd moje pytanie: Jakich ustawień potrzebuje tester aby uzyskać identyczny wynik końcowy strategii z tym, jak gdybym uruchomił strategię na koncie Live (lub Demo)? Czy odpowiedź zawarta w ostatnim poście załączonego linku gwarantuje poprawność danych końcowych? "In case you need to replicate perfectly Live market then you should execute your historical tests with 'process all Ticks'@

Ciężko mi przetestować moją strategię bez testera historycznego (np używając konta DEMO) gdyż jest to strategia długoterminowa i pierwsze wyniki mogą pokazać się tak w ciągu pierwszego dnia, jak i za kilka miesięcy.

Trochę się powtórzę:
Czy byłby ktoś w stanie krótko wyjaśnić jak na testerze historycznym JForex uzyskać identyczny wynik z tym rzeczywistym?

Z góry dziękuję
"Nie próbuj walczyć z idiotą. Najpierw zrówna Cię do swojego poziomu, a potem wygra doświadczeniem"

Online
ninjaproject
Gaduła
Gaduła
Posty: 259
Rejestracja: 30 lip 2019, 13:15

Re: JForex Historical Tester

Nieprzeczytany post autor: ninjaproject » 12 paź 2019, 23:14

Żaden test historyczny nie da wyników identycznych z rzeczywistością. Gdyby istniało takie cudo, to wszyscy by siedzieli i patrzyli jak im konto rośnie.

Awatar użytkownika
tomekbe
Stały bywalec
Stały bywalec
Posty: 22
Rejestracja: 24 lut 2009, 18:26
Lokalizacja: chłop z mazur

Re: JForex Historical Tester

Nieprzeczytany post autor: tomekbe » 13 paź 2019, 00:14

Wydawało mi się, że tester historyczny bazuje na zarejestrowanych danych. Jeśli zysk/strata z otwartej pół roku temu strategi na koncie LIVE jest różny niż ta sama strategia uruchomiona dzisiaj na testerze historycznym, na te same pół roku z przeszłości, z tym samym depo to używanie testera historycznego jakoś .... sensu mi tu brak :) Czego nie rozumiem?
"Nie próbuj walczyć z idiotą. Najpierw zrówna Cię do swojego poziomu, a potem wygra doświadczeniem"

-rookie-
Maniak
Maniak
Posty: 2429
Rejestracja: 13 kwie 2015, 19:00

Re: JForex Historical Tester

Nieprzeczytany post autor: -rookie- » 13 paź 2019, 02:11

Z pośród ticks, 1min, 1hour, 1day wybierasz Ticks a z tej drugiej listy process all ticks. To ustawienie testera odzwierciedla zachowanie strategii na demo i live. W tym trybie każdy tick (każda zmiana ceny) jest szczegółowo odtwarzany. Do tego dochodzi tryb wizualny (rysowanie wykresu z tych ticków, z tych danych) który spowalnia tester. Reszta trybów jest chyba głównie pod kątem zwiększenia szybkości testów (wydajności) ale jakoś nie znalazłem dla nich zastosowania odkąd używam jforex. Cały czas Ticks i process all ticks używam (i jak już wiem co się dzieje w trybie wizualnym, to wtedy tylko wyświetlam sobie to co mnie interesuje w konsoli, bez ładowania wykresów, bo jest szybciej). Chyba dla testowania strategii na range barach jest jeden z tych trybów ale już nie pamiętam jak to było dokładnie. ninjaproject nie dokońca ma racje. Akurat jforex na testerze historycznym nie fałszuje danych cenowych. Niestety niektóre wskaźniki działają inaczej na testerze a inaczej na demo albo live. Kiedyś testowałem wskaźnik fraktal na range barach i na testerze to był graal a na demo i live ładował całkowicie inne dane i już graalem nie był. Tak samo stochastic i inne, trzeba prześledzić wyniki i zachowanie tych wskaźników, bo jednak są przkłamania momentami że wskaźnik na wykresie narysowany jest nad wartościami 20 a z danych wynika że był poniżej 10 i strategia zadziałała w tym miejscu itp.

Awatar użytkownika
tomekbe
Stały bywalec
Stały bywalec
Posty: 22
Rejestracja: 24 lut 2009, 18:26
Lokalizacja: chłop z mazur

Re: JForex Historical Tester

Nieprzeczytany post autor: tomekbe » 13 paź 2019, 02:48

Dzięki za rozjaśnienie ... i za info o wskaźnikach :) Tego również nie wiedziałem. Zaznaczając 1 Day strategia otwiera mi 73 zlecenia a Ticks o 30 mniej. Może to jest przyczyna. Przyjrzę się.

Jeśli chodzi o szybkość testera z opcją Ticks u mnie porażka - ostatnie 6 miesięcy przewala w 1,5h. Boję się sprawdzić poprzedni rok :) Używając 1 Day robiłem testy na ostatnich 5, 10 i 15 latach w miarę rozsądnym czasie ... ale często z absurdalnymi profitami co się również wyjaśniło :)
"Nie próbuj walczyć z idiotą. Najpierw zrówna Cię do swojego poziomu, a potem wygra doświadczeniem"

-rookie-
Maniak
Maniak
Posty: 2429
Rejestracja: 13 kwie 2015, 19:00

Re: JForex Historical Tester

Nieprzeczytany post autor: -rookie- » 13 paź 2019, 03:07

tomekbe pisze:
13 paź 2019, 02:48
Jeśli chodzi o szybkość testera z opcją Ticks u mnie porażka - ostatnie 6 miesięcy przewala w 1,5h. Boję się sprawdzić poprzedni rok :) Używając 1 Day robiłem testy na ostatnich 5, 10 i 15 latach w miarę rozsądnym czasie ... ale często z absurdalnymi profitami co się również wyjaśniło :)
Ja się spotkałem z problemem że podłączenie TV do laptopa spowalnia drastycznie tester jforex. Mam laptopa asus z procesorem i3-2330M i podłączony TV manta 32' ale nie przez hdmi tylko kabel VGA. I jeszcze jakiś czas temu jforex miał wycieki pamięci, teraz trochę to poprawili, ale ogólnie to tak samo spowalnia testy. Tak samo uruchomione programy w tle, zwłaszcza przeglądarka jak firefox i youtube w tle. W skrócie więcej zadań dla cpu, przez co kolejka w systemie na wykonyanie kodu javy (jforex) jest dłuższa, bo po drodze cpu robi inne rzeczy jeszcze które też są czasochłonne.

Awatar użytkownika
tomekbe
Stały bywalec
Stały bywalec
Posty: 22
Rejestracja: 24 lut 2009, 18:26
Lokalizacja: chłop z mazur

Re: JForex Historical Tester

Nieprzeczytany post autor: tomekbe » 13 paź 2019, 03:43

Ja posiadam stary sprzęt, jakiś celeron, pewnie dlatego tak muli. Co do przeglądarki to prawda, wsysa ile może. W task manager na drugim miejscu zaraz za JForex :)
"Nie próbuj walczyć z idiotą. Najpierw zrówna Cię do swojego poziomu, a potem wygra doświadczeniem"

Online
ninjaproject
Gaduła
Gaduła
Posty: 259
Rejestracja: 30 lip 2019, 13:15

Re: JForex Historical Tester

Nieprzeczytany post autor: ninjaproject » 13 paź 2019, 11:00

Koledzy, nie przypuszczam, żeby JF rejestrował wszystkie ticki, to jest nierealne! Gdyby wasze kompy miały rejestrować i przetwarzać nawet ticki tylko z 1 tygodnia, toby się zesrały - nie mówiąc już o roku. Takie ticki w testerze są symulowane, a nie realne!

-rookie-
Maniak
Maniak
Posty: 2429
Rejestracja: 13 kwie 2015, 19:00

Re: JForex Historical Tester

Nieprzeczytany post autor: -rookie- » 13 paź 2019, 11:51

ninjaproject pisze:
13 paź 2019, 11:00
Koledzy, nie przypuszczam, żeby JF rejestrował wszystkie ticki, to jest nierealne! Gdyby wasze kompy miały rejestrować i przetwarzać nawet ticki tylko z 1 tygodnia, toby się zesrały - nie mówiąc już o roku. Takie ticki w testerze są symulowane, a nie realne!
Ale co to ma do rzeczy. Przecież to oczywiste że te dane nie trafiają do nas tylko na serwer Dukascopy, a my aplikacją kliencką jforex łączymy się z tym serwerem i pobieramy te dane jak np. przełączymy wykres instrumentu. tcpdump albo wireshark pokaże z jakim ip konkretnie się łączy twój komputer. I to nie wszystko pobiera tylko jakiś zakres czasu. W folderze .cashe tam gdzie się zapisuje strategie, indykatory itp są pliki binarne, historia ceny dla każdego instrumentu którego wykres był załadowany z podziałem na lata, miesiące, dni.

Awatar użytkownika
tomekbe
Stały bywalec
Stały bywalec
Posty: 22
Rejestracja: 24 lut 2009, 18:26
Lokalizacja: chłop z mazur

Re: JForex Historical Tester

Nieprzeczytany post autor: tomekbe » 11 lis 2019, 01:54

Dobra. Postarałem się o lepszy komputer. Stacjonarny tym razem. Zmienialismy w fimie komputery bo support win7 kończy sie 14 stycznia 2020 (upgrade do win10 nie wchodził w grę, trzeba było fizycznie zmienić komputery pomimo, iż niekróre z nich to całkiem niezłe kosy) więc wpadł mi I7 z 8gb RAM. Jakież wk..wienie mnie ogarnęło, kiedy odpaliłem strategię na tym kompie i pokazało mi czas testowania strategii bardzo podobny do tego, jaki pokazuje na starym i powolnym laptopie. Ale ....drugie i każde kolejne użycie tego samego okresu, przy nawet innej strategii skróciło czas drastycznie, 2019 do dzisiaj w niecałe 3 minuty! I wtedy własnie przypomniałem sobie, że pisałes własnie o tym :). Czyli faktycznie dane muszą być pobierane z dysku. Dzięki :)

Zauważyłem natomiast inny problem, który trochę mnie zaniepokoił.
Dukascopy jest moim brokerem od ok 3 lat. Kilka...nascie tygodni temu pomyslałem, że przyjrzę się strategiom automatycznym pod kątem ich budowy, wykorzystywanego języka etc. Fajna zabawa, fajna platforma, dla mnie pasuje. Od początku jednak nurtowały mnie rozbieżnosci wyników testera historycznego co było powodem rozpoczęcia tego tematu. Wiele wyjasniono ale jednego nie jestem w stanie ogarnąc :)

Może przesadnie okresliłem, że chciałbym uzyskać na historycznym wynik identyczny z prawdziwym ale rozbieżnosci, o których chcę napisać to trochę przesada. No chyba, że znów cos przeoczyłem.
Raport strategii uruchomionej na moim starym laptopie pokazuje zupełnie inne wartosci P/L w walucie niż ta sama strategia, uruchomiona na ten sam okres na drugim komputerze. Ceny wejscia i wyjscia, czas otwarcia i zamknięcia pozycji w obu przypadkach są identyczne ale bazując na konkretnym przykładzie wielkosć 0,05 lota przy 121 pipsach to na jednym komputerze £497 a na drugim £605. Zgłupiałem.
Zna ktos powód?

Wybaczcie brak niektórych polskich znaków. Długo by tłumaczyć.
"Nie próbuj walczyć z idiotą. Najpierw zrówna Cię do swojego poziomu, a potem wygra doświadczeniem"

ODPOWIEDZ