Tick data - 99% jakość modelowania w MetaTrader 4.
- bartek1916
- Pasjonat
- Posty: 817
- Rejestracja: 17 wrz 2008, 15:27
Dzięki miałeś rację zainstalowałem starszą wersje MT4 i śmiga259 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ć

Ten nie popełnia błędów kto nic nie robi
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:
Ten skrypt będzie ciągnął wszystkie te pary chyba, że skomentuje się te których się nie chce. Np tak:
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:
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:
Jest:
I jeszcze tylko trzeba zmienić jeden fragment. Znajdź:
I zamień na:
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...
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
...
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
...
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
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(
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(
Kod: Zaznacz cały
foreach($currencies as $pair => $firsttick) {
$firsttick -= $firsttick % 3600;
Kod: Zaznacz cały
foreach($currencies as $pair => $firsttick) {
if ($startTime > 0) $firsttick = $startTime;
$firsttick -= $firsttick % 3600;
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 ;-)
A gdy już ta istota w pełni do nich dotrze, jakże często muszą zmagać się z konsekwencjami swojej opinii ;-)
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...
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...
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!
BTW 259 excellent job!
Darmowy skrypt Birta jest do wersji 409 max.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... ;/
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 ;-)
A gdy już ta istota w pełni do nich dotrze, jakże często muszą zmagać się z konsekwencjami swojej opinii ;-)
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??
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??
"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:Dane ściagać jako Ticks czy Ticks bars ??
Co do metody z Jforex to nie powiem bo nie używam.maassk pisze: 1) Sciagam dane tickowe z Jforex (...)
Tutaj jest kilka rzeczy pomieszanych ze sobą.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??
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);
}
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 ;-)
A gdy już ta istota w pełni do nich dotrze, jakże często muszą zmagać się z konsekwencjami swojej opinii ;-)