Tick data - 99% jakość modelowania w MetaTrader 4.

Tu można dyskutować o wszystkich sprawach związanych z rynkiem Forex.
Awatar użytkownika
bartek1916
Pasjonat
Pasjonat
Posty: 817
Rejestracja: 17 wrz 2008, 15:27

Nieprzeczytany post autor: bartek1916 »

a mozna gdzies w ustawieniach mt4 wylaczyc aby sie nie pojawial komunikat o aktualizacji?

Awatar użytkownika
bucho1504
Stały bywalec
Stały bywalec
Posty: 55
Rejestracja: 01 sie 2008, 21:46

Nieprzeczytany post autor: bucho1504 »

259 pisze:Podstawowa zasada #1 - NIE aktualizuj MT4 jeżeli nie ma istotnego powodu.
Podstawowa zasada #2 - zanim zaktualizujesz sprawdź czy dla nowej wersji są dostępne odpowiednie skrypty: http://eareview.net/tick-data/downloads
Prawdopodobnie masz teraz wersję 416 dla której nie ma już odpowiedniego skryptu. Jest coś co się nazywa Tick Data Suite ale nie miałem okazji tego używać
Dzięki miałeś rację zainstalowałem starszą wersje MT4 i śmiga :-)
Ten nie popełnia błędów kto nic nie robi

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

Nieprzeczytany post autor: matka »

bartek1916 pisze:a mozna gdzies w ustawieniach mt4 wylaczyc aby sie nie pojawial komunikat o aktualizacji?
Zmień nazwę lub skasuj plik LiveUpdate.exe
Obrazek
Unfortunately, more to come

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

Nieprzeczytany post autor: 259 »

Ważna wiadomość dla tych co używają Dukascopiera - Ducascopy zmienił bodajże w Lutym 2012 format danych binarnych. Dukascopier nie potrafi ich ani ściągnąć, ani ich zdekompresować. Niestety ale czas jego minął.
Birt ma nowe skrypty php które to obsługują, ale ustawienie tego jak zwykle to mała droga przez mękę. Potrzebny jest i php, i 7zip itd... i przerobienie skryptu ściągania danych tak aby można było wpisać daty od do..

Jak zainstalować środowisko dla skryptów php dla Windows jest opisane tutaj:
http://eareview.net/tick-data/dukascopy-php-scripts
Najnowsza wersja skryptów obsługujących nowy format jest tutaj:
http://eareview.net/download/dukascopy_ ... _v0.24.zip

Niestety okazuje się, że do tego nie wystarczy tylko php, potrzebne jest jeszcze narzędzie do dekompresji lzma. Na Windows używana jest wersja CLI 7zip.
Dla mojej makówki na razie nic nie znalazłem co zmusiło mnie do przeniesienia całości na Windę na VM…

Dodano po 45 minutach:

Aby zmodyfikować skrypt download_dukascopy_data.php:

Na począktu kodu jest tabelka z parami do ściągnięcia, zaczyna się tak:

Kod: Zaznacz cały

$currencies = array(
    "AUDJPY" => 1175270400, // starting from 2007.03.30 16:00
    "AUDNZD" => 1229961600, // starting from 2008.12.22 16:00
...
Ten skrypt będzie ciągnął wszystkie te pary chyba, że skomentuje się te których się nie chce. Np tak:

Kod: Zaznacz cały

$currencies = array(
    "AUDJPY" => 1175270400, // starting from 2007.03.30 16:00
//    "AUDNZD" => 1229961600, // starting from 2008.12.22 16:00
    "AUDUSD" => 1175270400, // starting from 2007.03.30 16:00
//    "CADJPY" => 1175270400, // starting from 2007.03.30 16:00
//    "CHFJPY" => 1175270400, // starting from 2007.03.30 16:00
...
Teraz ominie AUDNZD, CADJPY, CHFJPY...

Dalej, ten skrypt będzie ciągnął historię od samego początku czyli od 2007 roku (omijając ściągnięte już pliki). Jeżeli ktoś nie chce całej historii to trzeba zmienić datę początkową. A ta niestety jest podana w mało ludzki sposób w tym skrypcie - te długie liczby przy nazwach par ;-)
Na szczęście to jest php więc można to przerobić na coś znacznie bardziej zjadliwego :-)
Można to zrobić na wiele sposobów, ja dorobiłem sobie datę/czas początkowy jako parametr:

Kod: Zaznacz cały

php download_dukascopy_data.php 2011.12.01.00
gdzie ostatnie dwie cyfry to godzina od której chcę zacząć. Inacze mówiąc format: [rok].[miesiąc].[dzień.[godzina]
W tym przypadku 1 Grudnia 2011 zaczynając od godz. 00.
A jeżeli nie podam parametru to zacznie od 2007 roku.

Ale żeby skrypt to kupił, trzeba go przerobić.
Ja wstawiłem taki kod powyżej tej tabelki:

Było:

Kod: Zaznacz cały

    Version: 0.24
*/
$currencies = array(
Jest:

Kod: Zaznacz cały

   Version: 0.24
*/
//-- wstawka zaczyna się tutaj:
$startTime = 0;
if (strlen($argv[1]) > 0)
	{
		if (strlen($argv[1]) != 13)
			{
				echo "The input dates must be of the form YYYY.MM.DD.HH, example 2008.11.03.16\n";
				exit(1);
			}
		else
			{
				$d= DateTime::createFromFormat("Y.m.d.H",$argv[1],new DateTimeZone("UTC"));
				$startTime = $d->format("U");
			}
	}
//--- koniec wstawki
$currencies = array(
I jeszcze tylko trzeba zmienić jeden fragment. Znajdź:

Kod: Zaznacz cały

foreach($currencies as $pair => $firsttick) {
    $firsttick -= $firsttick % 3600;
I zamień na:

Kod: Zaznacz cały

foreach($currencies as $pair => $firsttick) {
	if ($startTime > 0) $firsttick = $startTime;
	$firsttick -= $firsttick % 3600;
Powinno załatwić sprawę. Aby nie pisać poleceń od początku za każdym razem, można zrobić sobie batch w którym będzie polecenie wywołujące skrypt z parametrem.

Może zaoszczędzi to komu trochę czasu...
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 ;-)

maassk
Gaduła
Gaduła
Posty: 318
Rejestracja: 17 paź 2009, 13:25

Nieprzeczytany post autor: maassk »

Witam, prosze o odpowiedź czy postępując obecnie według tej strony: http://wiedza.expertadvisors.pl/wiedza/ ... iej-jakoci
testowanie na danych tickowych będzie przebiegało dobrze?? Zrobilem wszystko tak jak jest napisane. Jakość modelowania w raporcie jest N/A wiec nie wiem czy jest lepsza niż 90%.
Czytam wasze posty powyżej i nie wiem czy jeszcze można używać tej metody.

Dane tickowe pobrane z dukascopy zapisane są dla M1.
W testerze strategii wybieram okres modelowania M1 i nic sie nie dzieje.
Inne okresy działają a ich wyniki różnią się. Jakość ich modelowania jest zawsze N/A

Co mam zrobić już po przekonwertowaniu danych żeby test w testerze strategii szedł na danych tickowych ??
---------------------------------------

Zrobilem to samo w starszej wersji MT4. Dane przekonwertowane są zapisane w M1. Uzywam brit's patch'a i jakość jest już 99% jednak w modelu nie zachodzi żadna transakcja... w trybie wizualnym nie widać na wykresie nic...
nie wiem co jest...

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

Nieprzeczytany post autor: matka »

Coś robisz nie tak. To jest dość skomplikowana procedura, nie przejmuj się więc i nie poddawaj, trzeba trochę poćwiczyć zanim wszystko się uda. Najlepiej korzystać bezpośrednio z opisu autora na eareview.net. Dane powinieneś mieć jako tick, nie M1 (zobacz co jest w pliku). Jakość modelowania powinieneś mieć zawsze 99% (choć jest to tylko zmienna zapisana na sztywno w pliku .fxt). Jak najbardziej można nadal korzystać z tej metody, zmienił się tylko format w jaki dukas udostępnia dane i chyba nie ma jeszcze gotowego w pełni automatycznego narzędzia do ściągania i konsolidacji danych do i od lutego. Jeśli w teście wizualnym nie pojawiają Ci się świeczki, to coś jest nie tak. Jeśli nie masz tylko transakcji to zajrzyj do zakładki journal czy nie ma jakiś błędów.

BTW 259 excellent job!
Obrazek
Unfortunately, more to come

maassk
Gaduła
Gaduła
Posty: 318
Rejestracja: 17 paź 2009, 13:25

Nieprzeczytany post autor: maassk »

Jaką platforme najlepiej sciagnac zeby tylko na niej testowac??
Mialem Alpari US wersje 409... nie wiem czy to od tego zalezy ale wszystko inne robie chyba dobrze... ;/

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

Nieprzeczytany post autor: 259 »

maassk pisze:Jaką platforme najlepiej sciagnac zeby tylko na niej testowac??
Mialem Alpari US wersje 409... nie wiem czy to od tego zalezy ale wszystko inne robie chyba dobrze... ;/
Darmowy skrypt Birta jest do wersji 409 max.
Powyżej trzeba kupić od niego Tick Data Suite za $97.
Nie próbowałem tego więc nie powiem czy warto czy nie.
Jeżeli udało mu się to poskładać do kupy tak, że każdy może to zrobić bez szarpania się z każdym możliwym szczegółem to raczej warto.
Ale tego nie wiem. Można ściągnąć 7-o dniowy trial: http://eareview.net/tick-data-suite/trial
Jakby ktoś się z tym zapoznał i dał znać to byłoby bardzo miło z jego strony:-)
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 ;-)

maassk
Gaduła
Gaduła
Posty: 318
Rejestracja: 17 paź 2009, 13:25

Nieprzeczytany post autor: maassk »

Dane ściagać jako Ticks czy Ticks bars ??

Dodano po 23 minutach:

1) Sciagam dane tickowe z Jforex.
2) Umieszczam wszystkie pliki ze strony i dane tickowe tam gdzie trzeba.
3) używam csv2fxt
4) Rozmieszczam odpowiednio wygenerowane pliki
5) Odpalam Tick Data Suite na trialu. (mam mt4 build 418)
6) Robie symulacje i oczywiscie nic... Tester: wrong bars count 0.
Jakość modelowania 99%. Ticki uzyte w modelu 1. 0 transakcji...

nie wiem już sam.... robilem to samo na alpari mt4 build 409. Test niby szedł, ticków w modelu 80tys , jakość 99%. ale 0 transakcji i brak rysowania sie wykresu w opcji wizualizacja...

macie jakies rady co moge robić źle??

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

Nieprzeczytany post autor: 259 »

maassk pisze:Dane ściagać jako Ticks czy Ticks bars ??
"Ticks bars" śmierdzi mi słupkami (kwantyzacja tików w słupki zamiast samych tików) więc tego bym nie używał.
maassk pisze: 1) Sciagam dane tickowe z Jforex (...)
Co do metody z Jforex to nie powiem bo nie używam.
maassk pisze:est niby szedł, ticków w modelu 80tys , jakość 99%. ale 0 transakcji i brak rysowania sie wykresu w opcji wizualizacja...

macie jakies rady co moge robić źle??
Tutaj jest kilka rzeczy pomieszanych ze sobą.
To że jest 0 transakcji nie zależy tylko od jakości czy poprawności danych.
Zależy od EA jakiego używasz. Od parametrów EA jakie ustawiłeś.
Zależy od parametrów symbolu jaki jest użyty. Od tego czy tiki zostały wygenerowanie zgodnie z tymi parametrami... Już kiedyś to ćwiczyliśmy, można zrobić proste EA które w start ma jedną w zasadzie linię:

Kod: Zaznacz cały

int start(){
Print ("Tick ", TimeToStr(TimeCurrent(), TIME_DATE|TIME_SECONDS), " Ask ", DoubleToStr(Ask, Digits), " Bid ", DoubleToStr(Bid, Digits), " Spread ", DoubleToStr(Ask-Bid, Digits));
return (0);
}
I puścić to na jakimś krótkim kawałku aby zweryfikować dane.

A to że nie rysuje się wykres w trybie Visual wynika najprawdopodobniej z braku tego fragmentu w plikach hst dla danego konta.
Dla zrobienia zasadniczego testu bez podglądu nie są one potrzebne. Ale w trybie Visual to one są wyświetlane (choć sam test idzie na fxt).
Choć ten tryb ma tyle błędów że naprawdę nie polecam.
Ostatnio zmieniony 25 mar 2012, 19:46 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 ;-)

ODPOWIEDZ