Witam, chciałbym tak jak w temacie dowiedziec sie jak dodac do DWMPivots.mq4 parametr GMT co by działał poprawnie u różnych brokerów a nie tylko u tych co maja czas serwera gmt0.
Mam nadzieje ze jest to jasne o co mi chodzi.
-P.
GMT Offset jak dodać opcje do indykatora?
GMT Offset jak dodać opcje do indykatora?
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
Re: GMT Offset jak dodać opcje do indykatora?
Chyba nie ma żadnej stałej odpowiedzialnej za offset. Ja przynajmniej nie znam. W takiej sytuacji bym zdefiniował dla każdego terminala Global Variable i koniecznie w kodzie sprawdził czy jest ono zdefiniowane przed ewentualnym użyciem.
Coś w tym stylu
Ewentualnie to:
http://www.forexfactory.com/showthread.php?t=217263
Coś w tym stylu
Kod: Zaznacz cały
int GMT2Server(int in){
static int serverTime = - 1;
if(serverTime == -1){
if(GlobalVariableCheck("GMToffset")){
int theOffset = GlobalVariableGet("GMToffset");
serverTime = MathMod(in + theOffset + 24, 24);
return (serverTime);
}
else{
Alert("GMToffset not defined !!!");
return (serverTime);
}
}
else
return (serverTime);
}
http://www.forexfactory.com/showthread.php?t=217263
radical material simplification
Re: GMT Offset jak dodać opcje do indykatora?
funkcja ktora mam w zegarku. troche bledow logicznych rozpoznawania strefy czasowej, ale czas liczy dobrze.
funkcja wywolywana jest tylko raz:
w mgl czas jest liczony w sekundach, i jak cos kombinujesz z czasem to wszystko trzeba zamieniac na sekundy
http://docs.mql4.com/dateandtime/TimeCurrent
Kod: Zaznacz cały
int GMT;
string zone;
int shift;
//zmienne sa zadeklarowane na poczotku zegarka
void BrokerCorrection() {
if(AccountCompany()=="Admiral Markets Ltd.") GMT = 0;
if(AccountCompany()=="X-Trade Brokers DM S.A. ") GMT = -1;
if(Symbol() == "USDJPY") {
zone = "Tokyo";
shift = (GMT+10)*60*60;
}
else if(StringFind(Symbol(),"JPY",3)!=-1) {
zone = "Tokyo";
shift = (GMT+10)*60*60;
}
if (Symbol() == "AUDUSD") {
zone = "Sydney";
shift = (GMT+11)*60*60;
}
else if(StringFind(Symbol(),"USD",3)!=-1) {
zone = "New York";
shift = (GMT-4)*60*60;
}
else if(StringFind(Symbol(),"AUD",0)!=-1) {
zone = "Sydney";
shift = (GMT+11)*60*60;
}
return(0);
}
Kod: Zaznacz cały
if(IsStarting) {
BrokerCorrection();
IsStarting = False;
}
http://docs.mql4.com/dateandtime/TimeCurrent
oszczedzajmy cykle procesora