Odczyt danych z pliku csv
Odczyt danych z pliku csv
Proszę o pomoc w odczytaniu danych z pliku csv.
Mam wskaźnik, który zapisuje dane cen zamknięcia ostatnich 20 świec.
I teraz mam EA, które ma to odczytać w formie tablicy np. :
close[5] to piąta zapisana cena w pliku
close[12] to dwunasta zapisana cena w pliku.
Wskaźnik zapisuje mi fajnie wszystko do pliku.
Niestety mam problem z odczytaniem tego.
Załączam wskaźnik i EA.
Z góry dziękuję za pomoc.
Mam wskaźnik, który zapisuje dane cen zamknięcia ostatnich 20 świec.
I teraz mam EA, które ma to odczytać w formie tablicy np. :
close[5] to piąta zapisana cena w pliku
close[12] to dwunasta zapisana cena w pliku.
Wskaźnik zapisuje mi fajnie wszystko do pliku.
Niestety mam problem z odczytaniem tego.
Załączam wskaźnik i EA.
Z góry dziękuję za pomoc.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Solą życia jest kasa.
- por. Borewicz
- Gaduła
- Posty: 93
- Rejestracja: 25 cze 2014, 11:58
Re: Odczyt danych z pliku csv
Spróbuj użyć funkcji FileReadString zamiast FileReadArray.
- por. Borewicz
- Gaduła
- Posty: 93
- Rejestracja: 25 cze 2014, 11:58
Re: Odczyt danych z pliku csv
W takim razie FileReadNumberpersonov pisze:String ?
Przecież to dane liczbowe double.
Re: Odczyt danych z pliku csv
Szczerze mówiąc to ja nawet nie wiem, czy dobrze otwieram plik w init().
Ogólnie rzecz biorąc.....nie wychodzi....nie chce zaczytać. Zwraca "0".
Ogólnie rzecz biorąc.....nie wychodzi....nie chce zaczytać. Zwraca "0".
Solą życia jest kasa.
- por. Borewicz
- Gaduła
- Posty: 93
- Rejestracja: 25 cze 2014, 11:58
Re: Odczyt danych z pliku csv
Na pierwszy rzut oka wygląda ok, ale już dawno nie pisałem w mql4. Czy GetLastError() zwraca jakiś błąd (zaraz po otwarciu pliku jak i próbie odczytu)?
I jeszcze jedna rzecz - jak otwierasz plik to po zakończeniu pracy z nim powinieneś go zamknąć przez FileClose
I jeszcze jedna rzecz - jak otwierasz plik to po zakończeniu pracy z nim powinieneś go zamknąć przez FileClose
Re: Odczyt danych z pliku csv
Nie zwraca błędu.
Tak. Powinienem zamykać, ale nie ma to teraz wpływu na odczyt ( tak mi się wydaje ).
Tak. Powinienem zamykać, ale nie ma to teraz wpływu na odczyt ( tak mi się wydaje ).
Solą życia jest kasa.
- por. Borewicz
- Gaduła
- Posty: 93
- Rejestracja: 25 cze 2014, 11:58
Re: Odczyt danych z pliku csv
Z ciekawości sprawdziłem u siebie i u mnie działa (mforex trader wersja 4 build 765). Z tą różnicą że ja ten kawałek kodu umieściłem w skrypcie. Ty może wrzucasz do wskaźnika i dla każdego ticku wywołuje wczytanie 20 wartości. Dla pierwszego ticku zadziała, później już zapewne nie. Możesz jeszcze spróbować przesunąć wskaźnik pliku do początku przed każdym wywołaniem FileReadNumber:
FileSeek(handle, 0, SEEK_SET);
FileSeek(handle, 0, SEEK_SET);
Re: Odczyt danych z pliku csv
Tak. Teraz widzę, że też u mnie działa, ale tylko na pierwszym ticku. Przy drugim ticku wartości zeruje.
Wskaźnik zapisujący nie chodzi, a plik mam zapisany w folderze. Włączam tylko odczyt jako EA. Czyli wartości zapisane w pliku nie ulegają zmianie.
No i na drugim ticku zeruje.
Wskaźnik zapisujący nie chodzi, a plik mam zapisany w folderze. Włączam tylko odczyt jako EA. Czyli wartości zapisane w pliku nie ulegają zmianie.
No i na drugim ticku zeruje.
Solą życia jest kasa.
Re: Odczyt danych z pliku csv
Teraz znowu nie działa i zwraca wartości "0".
Zapis pliku działa bez zarzutu.
Problem jest z odczytem. Raz działa, a raz nie działa.
Pomóżcie.
Zerknijcie na te kody co przesłałem na początku. Jest jakiś sposób, aby to odczytać ?
Proszę o jakiś konkretny przykład.
-- Dodano: sob 25-04-2015, 16:32 --
Wiem już w czym jest problem.
Jest weekend, rynek jest zamknięty.
Wszystko testuje na backtesterze.
Pliki na live zapisywane są w : \MQL4\Files
a na testerze pliki zapisywane są w : \tester\files
Tak samo będzie z odczytem.
Pytanie : jak na backtesterze odczytać dane z istniejącego pliku, który jest w :\MQL4\Files ?
Zapewne wystarczy podać ścieżkę. Tylko nie wiem jak.
kombinuję tak :
Ale nic nie wychodzi ;(
Zapis pliku działa bez zarzutu.
Problem jest z odczytem. Raz działa, a raz nie działa.
Pomóżcie.
Zerknijcie na te kody co przesłałem na początku. Jest jakiś sposób, aby to odczytać ?
Proszę o jakiś konkretny przykład.
-- Dodano: sob 25-04-2015, 16:32 --
Wiem już w czym jest problem.
Jest weekend, rynek jest zamknięty.
Wszystko testuje na backtesterze.
Pliki na live zapisywane są w : \MQL4\Files
a na testerze pliki zapisywane są w : \tester\files
Tak samo będzie z odczytem.
Pytanie : jak na backtesterze odczytać dane z istniejącego pliku, który jest w :\MQL4\Files ?
Zapewne wystarczy podać ścieżkę. Tylko nie wiem jak.
kombinuję tak :
Kod: Zaznacz cały
handle=FileOpen("\\MQL4\\Files\\zapis.csv",FILE_READ|FILE_CSV);
Solą życia jest kasa.