Уважаемые гуру MQL просветите меня тупого:
в советнике есть такое...
в самом начале импортируется виндовая DLL:
int GMToffset, Myoffset, LoclTime;
#import "kernel32.dll"
void GetLocalTime(int& a0[]);
int GetTimeZoneInformation(int& a0[]);
#import
потом есть такая функция:
int AutoGMTOffset()
{
int Timezone[43];
int offset1 = -420;
int offset2 = GetTimeZoneInformation(Timezone);
if (offset2 != 0) offset1 = Timezone[0];
if (offset2 == 2) offset1 += Timezone[42];
LoclTime = TimeLocal() + 60 * offset1;
GMToffset = (TimeCurrent() - LoclTime) / 3500;
Myoffset = + ((TimeLocal() - LoclTime) / 3500);
return (0);
}
Понимаю так что в начале у винды запрашивается локальное время и локальная тайм-зона.
=====================================================
Далее пишу построчно как я думаю(наверно неправильно)...
1) инициализируется массив Timezone размером 43 ячейки
2) инициализируется переменная offset1 со значением -420(почему такое значение? откуда? непонятно...)
3) в offset2 заносится значение из виндовой длл (локальная тайм-зона), в каком формате? в часах +3? или +10800 в секундах?
4) и вот тут я уже вообще не понимаю - если offset2 не равен нулю(то есть получается - если я не живу в ЖМТ=0, то offset1 будет равен значению из ячейки 0 массива Timezone - а чему оно равно? мы его что? уже чем то заполнили? когда? чем?
5) тут еще хуже - если offset2 равен 2 то offset1 будет равен... и тут я тоже не понимаю (я не знаю что значит += Timezone[42] - это что, значение offset1 равно самому себе плюс значение из ячейки 42 массива? или как?)
6) переменная LoclTime равна лок.время + offset1 умноженное на 60(чтобы получить часы) - вычисления понятны, не понятно для чего
7) и 8) не понимаю почему делится на 3500 а не на 3600, ведь если хотят получить часы из секунд надо делить на 3600?
и еще - в 8) опять есть такое выражение "= +" это что значит? и равнозначно ли оно предыдущему "+=" как было написано в 5)?
Прошу помощи у гуру - распишите мне тупому построчно (как примерно я выше) что значит каждая строчка в функции...
А то советник работает в тестере, эти значения подставляются из этой функции(для этого она и была написана автором) а на демо-счете не работает, не ставит уровни, не открывает ордера.