Sposób na brak danych dla funkcji iXXXX

O jezykach programowania w platformach i nie tylko.
Awatar użytkownika
Blackhole
Stały bywalec
Stały bywalec
Posty: 86
Rejestracja: 30 lis 2007, 08:06

Sposób na brak danych dla funkcji iXXXX

Nieprzeczytany post autor: Blackhole »

Hej!
Gdy w MQL4 próbuję odczytać np. iHigh z wartością parametru shift na tyle dużą, iż platforma nie ma jej załadowanej, to obserwuję masakryczne spowolnienie działania skryptu.
Jak sobie z tym poradzić?

Pozdrawiam,
Jacek
"W Bogu wszelkie nasze bogactwo."

Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

Re: Sposób na brak danych dla funkcji iXXXX

Nieprzeczytany post autor: ninjaproject »

Blackhole pisze:
05 paź 2019, 13:39
Hej!
Gdy w MQL4 próbuję odczytać np. iHigh z wartością parametru shift na tyle dużą, iż platforma nie ma jej załadowanej, to obserwuję masakryczne spowolnienie działania skryptu.
Jak sobie z tym poradzić?

Pozdrawiam,
Jacek

Kod: Zaznacz cały

if(shift>Bars) shift=Bars;
Poza tym, to pętla for() powinna liczyć max Bars, więc błąd masz w pętli, prawdopodobnie.

Kod: Zaznacz cały

for(int i=0; i<Bars; i++)
{ }
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Awatar użytkownika
Blackhole
Stały bywalec
Stały bywalec
Posty: 86
Rejestracja: 30 lis 2007, 08:06

Re: Sposób na brak danych dla funkcji iXXXX

Nieprzeczytany post autor: Blackhole »

Chodziło mi o to, jak mogę programowo załadować tyle danych, ile potrzebuję, a nie ograniczyć pętlę do ilości dostępnych danych.
Jeśli chcę mieć dostęp do np. 10000 wartości wstecz, to jak to uzyskać bez konieczności ręcznego załadowywania danych historycznych po każdym uruchomieniu platformy?
"W Bogu wszelkie nasze bogactwo."

Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

Re: Sposób na brak danych dla funkcji iXXXX

Nieprzeczytany post autor: ninjaproject »

Blackhole pisze:
07 paź 2019, 08:17
Chodziło mi o to, jak mogę programowo załadować tyle danych, ile potrzebuję, a nie ograniczyć pętlę do ilości dostępnych danych.
Jeśli chcę mieć dostęp do np. 10000 wartości wstecz, to jak to uzyskać bez konieczności ręcznego załadowywania danych historycznych po każdym uruchomieniu platformy?
To możesz mieć jedynie pretensje do brokera, że podaje tyle, ile podaje. Możesz importować dane z niezależnych źródeł do MT4, ale potrzebujesz wtedy pracować na wykresach offline, bo online dane brokera przepiszą dane pobrane z innych źródeł.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Awatar użytkownika
Blackhole
Stały bywalec
Stały bywalec
Posty: 86
Rejestracja: 30 lis 2007, 08:06

Re: Sposób na brak danych dla funkcji iXXXX

Nieprzeczytany post autor: Blackhole »

Jeśli przesunę wykres na początek dostępnych danych, a potem nacisnę np. PgUp lub strzałkę w lewo, to zostają załadowane kolejne dane (chyba tyle, ile się zmieści na szerokości okna). Gdy powyższe zrobię (póki się daje) dla pary EURUSD na M1, to mam dostępnych ponad 30tyś świec.
Nie da się tego uzyskać w MQL4?
"W Bogu wszelkie nasze bogactwo."

Awatar użytkownika
ninjaproject
Maniak
Maniak
Posty: 4944
Rejestracja: 30 lip 2019, 13:15

Re: Sposób na brak danych dla funkcji iXXXX

Nieprzeczytany post autor: ninjaproject »

Blackhole pisze:
09 paź 2019, 09:25
Jeśli przesunę wykres na początek dostępnych danych, a potem nacisnę np. PgUp lub strzałkę w lewo, to zostają załadowane kolejne dane (chyba tyle, ile się zmieści na szerokości okna). Gdy powyższe zrobię (póki się daje) dla pary EURUSD na M1, to mam dostępnych ponad 30tyś świec.
Nie da się tego uzyskać w MQL4?
Dane od brokera doładowujemy trzymając wciśnięty klawisz "Home", aż się przestaną ładować. Gdy już są, to są, i nie trzeba ich ponownie wymuszać.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

ODPOWIEDZ