Wszystkie pytania dozwolone początkujących programistów

O jezykach programowania w platformach i nie tylko.
grzegrzyw
Gaduła
Gaduła
Posty: 334
Rejestracja: 11 mar 2012, 19:43

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: grzegrzyw »

Tyle kombinacji próbowałem, że mam mentlik w głowie, muszę odpuścić na dzień lub dwa i na świeżo przyjrzeć się problemowi, błąd prawdopodobnie niewielki, ale go nie widzę.

Szymon_P
Stały bywalec
Stały bywalec
Posty: 60
Rejestracja: 31 paź 2015, 22:35

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: Szymon_P »

Witam,
Mam pytanie odnośnie enum.
Korzystam np. z zapisu:
enum ENUM_WYBOR {Tak,Nie};
Zamiast {Tak, Nie} chciałbym podstawić{00:00, 00:01, 00:02} itd.
W jaki sposób mogę to zrobić?

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: ninjaproject »

Szymon_P pisze:
28 sty 2023, 11:15
Witam,
Mam pytanie odnośnie enum.
Korzystam np. z zapisu:
enum ENUM_WYBOR {Tak,Nie};
Zamiast {Tak, Nie} chciałbym podstawić{00:00, 00:01, 00:02} itd.
W jaki sposób mogę to zrobić?

Kod: Zaznacz cały

enum ENUM_WYBOR {
Jeden,   // 00:00
Dwa,     // 00:01
Trzy,     // 00:02
};
Na liście wyboru będą widoczne te godziny, ale ty potem musisz zdefiniować zmienne i przypisać im te godziny:

Kod: Zaznacz cały

if(zmienna==Jeden)
 {
 Czas1=czas_odpowiadajacy_Jeden;
 }
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Szymon_P
Stały bywalec
Stały bywalec
Posty: 60
Rejestracja: 31 paź 2015, 22:35

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: Szymon_P »

Czy jest możliwość aby EA sprawdzał czy broker stosuje podział na czas letni i zimowy? Jeśli tak to czy jest możliwość sprawdzania aktualnie obowiązującego?
Już chyba znalazłem to co potrzebuję więc na razie nieaktualne :P

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: ninjaproject »

Szymon_P pisze:
28 lut 2023, 20:30
Czy jest możliwość aby EA sprawdzał czy broker stosuje podział na czas letni i zimowy? Jeśli tak to czy jest możliwość sprawdzania aktualnie obowiązującego?
Już chyba znalazłem to co potrzebuję więc na razie nieaktualne :P
Tyle, że nie ma takiego pojęcia jak "broker stosuje czas letni i zimowy".
To nie broker stosuje taki czas, tylko poszczególne państwa.
Wynika z tego, że jeżeli dane państwo przejdzie na dany czas tydzień, czy dwa wcześniej, to u brokera nic się nie zmieni, a otwarcia sesji będą o innym czasie platformy, bo platforma ma zawsze ten sam czas.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Szymon_P
Stały bywalec
Stały bywalec
Posty: 60
Rejestracja: 31 paź 2015, 22:35

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: Szymon_P »

ninjaproject pisze:
28 lut 2023, 21:41
Szymon_P pisze:
28 lut 2023, 20:30
Czy jest możliwość aby EA sprawdzał czy broker stosuje podział na czas letni i zimowy? Jeśli tak to czy jest możliwość sprawdzania aktualnie obowiązującego?
Już chyba znalazłem to co potrzebuję więc na razie nieaktualne :P
Tyle, że nie ma takiego pojęcia jak "broker stosuje czas letni i zimowy".
To nie broker stosuje taki czas, tylko poszczególne państwa.
Wynika z tego, że jeżeli dane państwo przejdzie na dany czas tydzień, czy dwa wcześniej, to u brokera nic się nie zmieni, a otwarcia sesji będą o innym czasie platformy, bo platforma ma zawsze ten sam czas.
Mam konto w ICMarkets i z tego co wyczytałem to oni zmieniają w MT4 czas letni i zimowy. W czasie rzeczywistym jestem w stanie sprawdzić jaki czas obowiązuje poprzez różnicę pomiędzy TimeCurren() i TimeGMT(). 2 - czas letni, 3 czas zimowy. Ma to dla mnie znaczenie bo EA działa w określonych godzinach i różnica godziny ma dla mnie znaczenie.
Tu o tym piszą: https://www.icmarkets.com/global/en/tra ... ding-hours
Problem pojawia się jeszcze podczas testów bo TimeCurren() i TimeGMT() wskazują tę samą wartość.
Nie wiem czy dobrze to wszystko rozumiem.

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: ninjaproject »

Szymon_P pisze:
28 lut 2023, 21:58
ninjaproject pisze:
28 lut 2023, 21:41
Szymon_P pisze:
28 lut 2023, 20:30
Czy jest możliwość aby EA sprawdzał czy broker stosuje podział na czas letni i zimowy? Jeśli tak to czy jest możliwość sprawdzania aktualnie obowiązującego?
Już chyba znalazłem to co potrzebuję więc na razie nieaktualne :P
Tyle, że nie ma takiego pojęcia jak "broker stosuje czas letni i zimowy".
To nie broker stosuje taki czas, tylko poszczególne państwa.
Wynika z tego, że jeżeli dane państwo przejdzie na dany czas tydzień, czy dwa wcześniej, to u brokera nic się nie zmieni, a otwarcia sesji będą o innym czasie platformy, bo platforma ma zawsze ten sam czas.
Mam konto w ICMarkets i z tego co wyczytałem to oni zmieniają w MT4 czas letni i zimowy. W czasie rzeczywistym jestem w stanie sprawdzić jaki czas obowiązuje poprzez różnicę pomiędzy TimeCurren() i TimeGMT(). 2 - czas letni, 3 czas zimowy. Ma to dla mnie znaczenie bo EA działa w określonych godzinach i różnica godziny ma dla mnie znaczenie.
Tu o tym piszą: https://www.icmarkets.com/global/en/tra ... ding-hours
Problem pojawia się jeszcze podczas testów bo TimeCurren() i TimeGMT() wskazują tę samą wartość.
Nie wiem czy dobrze to wszystko rozumiem.
Tu masz wszystko o tym:
https://docs.mql4.com/dateandtime/timedaylightsavings

Odnośnie testów na historii, to niestety, nie ma metody.
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

Szymon_P
Stały bywalec
Stały bywalec
Posty: 60
Rejestracja: 31 paź 2015, 22:35

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: Szymon_P »

"Odnośnie testów na historii, to niestety, nie ma metody."
no właśnie miałem pytać dlaczego cały czas pokazuje 0. No nic po prostu w testach muszę sam pilnować okresów i zmieniać godziny ręcznie.

Szymon_P
Stały bywalec
Stały bywalec
Posty: 60
Rejestracja: 31 paź 2015, 22:35

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: Szymon_P »

Analizując sytuację ze zmianą czasów pomiędzy letnim, a zimowym to najrozsądniej moim zdaniem jest korzystać w obliczeniach z TimeGMT() skorygowanego o konkretne przesunięcie względem strefy czasowej zamiast TimeCurrent(). Daje to pewność, że cały czas będzie mowa o tej samej godzinie bo czas GMT jest sztywny więc jak ustawię np. GMT+2 to nie ma znaczenia czy będzie czas letni czy zimowy i i tak ustawi godzinę względem GMT. Wydaje mi się, że jest to ustawienie uniwersalne bo też są różni brokerzy. Co do testera to dodałem w EA opcję tryb testowy i wprowadziłem ręcznie zakresy czasów letnich i zimowych i odpowiednie modyfikacje czasu (według moich obserwacji w testerze TimeGMT = TimeCurrent ).

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

Re: Wszystkie pytania dozwolone początkujących programistów

Nieprzeczytany post autor: ninjaproject »

Jak ustawisz sztywno GMT+2, to będzie różnica, bo w Polsce jest zimowo czas GMT+1, bo zimowy jest tym właściwym, a letni jest GMT+2.
Ja nie bardzo w ogóle rozumiem po co te twoje komplikacje?
Trejder, Mentor/trener, aka. Dadas, fx-technik, obecnie ninjaproject.
Programuję wskaźniki i EA do MetaTrader 4/5.

ODPOWIEDZ