Pobieranie 500 ostatnich close

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
JKL
Stały bywalec
Stały bywalec
Posty: 52
Rejestracja: 26 kwie 2010, 10:19

Pobieranie 500 ostatnich close

Nieprzeczytany post autor: JKL »

Proszę mądrzejszych o radę.
Chcę uzyskać efekt który będzie mi zapisywał ok 500 ostatanich świec do pliku html lub csv ALE......

Sposób ctrl+s mnie nie urządza bo: zapisuje tylko to co widać na ekranie ponadto ja chcę przeanalizować kilka par walutowych na wszystkich interwałach - to będzie ok 90 plików zapisywanych ręcznie co jakiś czas.

Sposób na skrypt: przerobiłem skrypt który mi zapisuje kilka par walutowych na różnych interwałach ALE... Gdy nie wyświetle wykresu na ekranie to mi się nie pobiorą aktualne dane i mam zapisane tylko to co widziałem ostatnim razem - np zamknąłem platformę wczoraj o 13 dziś ją otwieram w celu odpalenia skryptu który zapisze mi dane do plików. Skrypt wykonuje zadanie ale pliki mają informację do wczoraj do 13 bo mt4 nie pobiera danych gdy danego wykresu nie wyświetlimy fizycznie na ekranie.

Nie mam pojęcia jak zrobić aby pobrać dane zapisać je do pliku bez konieczności wyświetlania wykresu. Ma ktoś jakiś pomysł lub sugestię? Może jest jakiś sposób aby wszystkie otwarte wykresy zostały odświeżone bez konieczności ich wyświetlenia...


Teraz tak wpadłem na pomysł na szybko żeby mieć zawsze aktualne dane to można skorzystać z opcji "okno -> poziomo" lub "okno -> pionowo" co prawda mamy niezły zamęt na ekranie ale każdy wykres jest widoczny i prawdopodobnie każdy będzie się aktualizować w czasie rzeczywistym a nie tylko ten który jest wyświetlony na całości ekranu. Muszę to sprawdzić jak się rynek otworzy.
Wiem, że nic nie wiem

Awatar użytkownika
Tig3r
Przyjaciel Forum
Przyjaciel Forum
Posty: 2310
Rejestracja: 02 sty 2008, 10:46

Re: Pobieranie 500 ostatnich close

Nieprzeczytany post autor: Tig3r »

Wykres nie musi być widoczny, ale uruchomiony więc wystarczy że masz je pootwierane (w zakładkach) a powinny się aktualizować.
======================================================
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..

Awatar użytkownika
JKL
Stały bywalec
Stały bywalec
Posty: 52
Rejestracja: 26 kwie 2010, 10:19

Re: Pobieranie 500 ostatnich close

Nieprzeczytany post autor: JKL »

Wiesz że to może być dobre rozwiązanie... nie zwróciłem na to uwagi bo zawsze przyciskami zmieniałem TF. Dzięki i zabieram się za testy.

Wiesz może ile maksymalnie zakładek może być otwartych?
Wiem, że nic nie wiem

Awatar użytkownika
CoVal
Gaduła
Gaduła
Posty: 320
Rejestracja: 06 paź 2005, 22:45

Re: Pobieranie 500 ostatnich close

Nieprzeczytany post autor: CoVal »

JKL pisze: Sposób na skrypt: przerobiłem skrypt który mi zapisuje kilka par walutowych na różnych interwałach ALE...
przerob ten skrypt na EA i zapusc na wszystkich parach jakie cie interesuja. w ten sposob np. co minute (czy jak tam sobie zdefiniujesz) system powinien otworzyc ci po kolei osobne pliki dla kazdego TF (np. z nazwa: "EURUSD30.txt", w ktorej bedziesz mial zapisana ostatnia piecsetke (czy ile tam chcesz) wartosci Close (czy jakie tam chcesz).
Nie musisz zapuszczac takiego EA na wszystkich TF dla danej pary - wystarczy na tym najmniejszym TF.

najpierw sprawdz czy jest nowa swieca na danym TF, a jesli jest to otworz odpowiedni plik i zapisz w nim interesujace cie dane w petli:

Kod: Zaznacz cały

for(i=numberOfBars;i>0;i--)
     {
      cl=Close[i];
      zapiszDoPliku(Symbol()+TF1+".txt",iClose(Symbol(),NULL,TF1,i));
      zapiszDoPliku(Symbol()+TF2+".txt",iClose(Symbol(),NULL,TF2,i));
      zapiszDoPliku(Symbol()+TF3+".txt",iClose(Symbol(),NULL,TF3,i));
      zapiszDoPliku(Symbol()+TF4+".txt",iClose(Symbol(),NULL,TF4,i));
     }
gdzie:
- numberOfBars to ilosc swiec jakie chcesz zapisac (w twoim przykladzie = 500),
- zapiszDoPliku() to prosta funkcja otwierajaca plik o nazwie: Symbol()+TF1+".txt" (co powinno nam dac np.: EURUSD30.txt),
- iClose(Symbol(),NULL,TF1,i) to i-ta swieca tajmfrejmu okreslonego zmienna TF1.

i jesli to uruchomisz na M1, to co minute zupdejtuje ci wszystkie pliki bez wzgledu na TF....

dysklajmer:
powyzsze napisalem bez edytora kodu wiec nie sprawdzalem poprawnosci ani skladni...
baw sie dobrze....

CoVal

Awatar użytkownika
Pierz Andrzej
Przyjaciel Forum
Przyjaciel Forum
Posty: 1200
Rejestracja: 02 lip 2006, 14:17

Re: Pobieranie 500 ostatnich close

Nieprzeczytany post autor: Pierz Andrzej »

Oj Marek , Marek z takim doświadczeniem takie byki ? :P

z iClose wyrzuc NULL ;)
z poważaniem
Andrzej Pierz
FOREX-SERVICE

Awatar użytkownika
CoVal
Gaduła
Gaduła
Posty: 320
Rejestracja: 06 paź 2005, 22:45

Re: Pobieranie 500 ostatnich close

Nieprzeczytany post autor: CoVal »

Pierz Andrzej pisze:Oj Marek , Marek z takim doświadczeniem takie byki ? :P

z iClose wyrzuc NULL ;)
He, he.... dzieki Andrzej - widze, ze jestes jak zwykle na stanowisku.... :)
oczywiscie masz racje - na poczatku napisalem NULL a potem dokleilem TF-y.... a null-a nie usunalem.

to by i tak nie przeszlo przez kompilacje....

Powinno byc:

Kod: Zaznacz cały

for(i=numberOfBars;i>0;i--)
     {
      zapiszDoPliku(Symbol()+TF1+".txt",iClose(Symbol(),TF1,i));
      zapiszDoPliku(Symbol()+TF2+".txt",iClose(Symbol(),TF2,i));
      zapiszDoPliku(Symbol()+TF3+".txt",iClose(Symbol(),TF3,i));
      zapiszDoPliku(Symbol()+TF4+".txt",iClose(Symbol(),TF4,i));
     }

ODPOWIEDZ