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.
Pobieranie 500 ostatnich close
Pobieranie 500 ostatnich close
Wiem, że nic nie wiem
Re: Pobieranie 500 ostatnich close
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ć..
Nie głupi ten co nie wie, lecz ten który nie chce się nauczyć..
Re: Pobieranie 500 ostatnich close
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?
Wiesz może ile maksymalnie zakładek może być otwartych?
Wiem, że nic nie wiem
Re: Pobieranie 500 ostatnich close
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).JKL pisze: Sposób na skrypt: przerobiłem skrypt który mi zapisuje kilka par walutowych na różnych interwałach ALE...
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));
}
- 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
- Pierz Andrzej
- Przyjaciel Forum
- Posty: 1200
- Rejestracja: 02 lip 2006, 14:17
Re: Pobieranie 500 ostatnich close
Oj Marek , Marek z takim doświadczeniem takie byki ?
z iClose wyrzuc NULL
z iClose wyrzuc NULL
z poważaniem
Andrzej Pierz
FOREX-SERVICE
Andrzej Pierz
FOREX-SERVICE
Re: Pobieranie 500 ostatnich close
He, he.... dzieki Andrzej - widze, ze jestes jak zwykle na stanowisku....Pierz Andrzej pisze:Oj Marek , Marek z takim doświadczeniem takie byki ?
z iClose wyrzuc NULL
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));
}