Określenie strefy czasowej

O jezykach programowania w platformach i nie tylko.
Cobong
Stały bywalec
Stały bywalec
Posty: 38
Rejestracja: 05 wrz 2009, 16:57

Określenie strefy czasowej

Nieprzeczytany post autor: Cobong »

Witam Szanownych Traderów i Programistów,

próbuje w EA określić strefę czasową w jakiej się znajduje. Kłopot w tym, że nie ma gotowej funkcji na too w MQLu.
Zastanawiał się już może ktoś kiedyś gdzie coś takiego znaleźć? Albo jaki jest sposób na rozwiązanie tego zagadnienia? Wydaje mi się, że potrzebny by był jakiś punkt odniesienia aby móc określić różnicę czasów, albo coś w stylu.

Pozdr
Cobong
Ludzkie słabości i ludzka siła do ich pokonywania...

LowcaG
Pasjonat
Pasjonat
Posty: 1068
Rejestracja: 05 paź 2007, 15:39

Re: Określenie strefy czasowej czasowej

Nieprzeczytany post autor: LowcaG »

A to, EA tak często podróżuje? ;)
Nie może użytkownik, który zapewne wie w jakiej strefie się znajduje, określić w parametrze wejściowym?

Awatar użytkownika
personov
Pasjonat
Pasjonat
Posty: 1525
Rejestracja: 09 sie 2009, 21:27

Re: Określenie strefy czasowej czasowej

Nieprzeczytany post autor: personov »

Kiedyś zadawałem takie pytanie w dziale programowania. Jeśli ratuje Cię przesunięcie czasu brokera do czasu Twojego to wynik godzinowy wychodzi z tego kodu :

Kod: Zaznacz cały

double gmt = TimeLocal() - TimeCurrent(); 
gmt = NormalizeDouble(gmt/3600,0);
Solą życia jest kasa.

Awatar użytkownika
luktom
Gaduła
Gaduła
Posty: 197
Rejestracja: 19 gru 2007, 14:39

Re: Określenie strefy czasowej czasowej

Nieprzeczytany post autor: luktom »

@personov: wszystko fajnie, tyle że broker może nie działać wg GMT.

Znacznie lepszym rozwiązaniem jest użycie funkcji GetTimeZoneInformation z kernel32.dll, np. tak jak w tym wskaźniku:

http://codebase.mql4.com/source/11220

Pozdrawiam

Łukasz Tomaszkiewicz :: luktom
algotronic- zaawansowane rozwiązania dla traderów
Odwiedź naszą stronę WWW, aby poznać pełną ofertę

Cobong
Stały bywalec
Stały bywalec
Posty: 38
Rejestracja: 05 wrz 2009, 16:57

Re: Określenie strefy czasowej czasowej

Nieprzeczytany post autor: Cobong »

luktom pisze:@personov: wszystko fajnie, tyle że broker może nie działać wg GMT.

Znacznie lepszym rozwiązaniem jest użycie funkcji GetTimeZoneInformation z kernel32.dll, np. tak jak w tym wskaźniku:

http://codebase.mql4.com/source/11220

Pozdrawiam

Łukasz Tomaszkiewicz :: luktom
Rozwiązanie zadziałało :) Jednak nie wiadomo jaka jest strefa czasowa dla serwera (brokera). Bo funkcja zwróci czas strefy względem czasu komputera na którym uruchomiony jest terminal, a czas ten może być nieprawdziwy.
Ludzkie słabości i ludzka siła do ich pokonywania...

Awatar użytkownika
Esco
Przyjaciel Forum
Przyjaciel Forum
Posty: 2603
Rejestracja: 11 kwie 2010, 20:56

Re: Określenie strefy czasowej czasowej

Nieprzeczytany post autor: Esco »


Cobong
Stały bywalec
Stały bywalec
Posty: 38
Rejestracja: 05 wrz 2009, 16:57

Re: Określenie strefy czasowej czasowej

Nieprzeczytany post autor: Cobong »

Esco pisze:GetSystemTime zwraca czas GMT/UTC.
http://msdn.microsoft.com/en-us/library ... 85%29.aspx
Rozumiem, że GetSystemTime zwraca czas dla systemu operacyjnego, a GetLocalTime? Rzeczywisty czas użytkownika?
Ludzkie słabości i ludzka siła do ich pokonywania...

Awatar użytkownika
Esco
Przyjaciel Forum
Przyjaciel Forum
Posty: 2603
Rejestracja: 11 kwie 2010, 20:56

Re: Określenie strefy czasowej

Nieprzeczytany post autor: Esco »

SystemTime zwraca w czas uniwersalny GMT+0
LocalTime czas lokalny czyli po uwzględnieniu strefy czasowej użytkownika.

Cobong
Stały bywalec
Stały bywalec
Posty: 38
Rejestracja: 05 wrz 2009, 16:57

Re: Określenie strefy czasowej

Nieprzeczytany post autor: Cobong »

Esco pisze:SystemTime zwraca w czas uniwersalny GMT+0
LocalTime czas lokalny czyli po uwzględnieniu strefy czasowej użytkownika.
Wszystko zadziałało jak powinno, idać dalej próbowałem określić strefę czasową brokera co jest już proste mając wszystkie dane. Jednak w weekend zegar brokera zatrzymuje się po 22 godzinie i metodą różnicy czasu użytkownika i czasu brokera + strefa czasowa użytkownika się nie da. Czy jest na to jakaś inna metoda? Myślę, o złapaniu jakiegoś punktu kontrolnego na wykresie względem którego mógłbym określić czas brokera, jednak punkt punktowi nie równy (rozbieżność pipisów) jeżeli synchronizuje dane pomiędzy dwoma EA pracującymi u różnych brokerów.
Ludzkie słabości i ludzka siła do ich pokonywania...

Awatar użytkownika
xpep
Pasjonat
Pasjonat
Posty: 844
Rejestracja: 02 gru 2007, 11:50

Re: Określenie strefy czasowej

Nieprzeczytany post autor: xpep »

a po co okreslasz w jakiej strefie jest broker?

ODPOWIEDZ