Особенности языка mql5, тонкости и приёмы работы - страница 105 1...9899100101102103104105106107108109110111112...339 Новый комментарий TheXpert 2018.10.14 14:47 #1041 fxsaber: template <typename T1, typename T2> bool More(const T1& first, const T2& second) { return first > second; } bool More(const MqlTick& first, const MqlTick& second) { return first.bid > second.bid; } // Простая сортировка template <typename T1, typename T2> // T2 - по какому правилу сортируем void Sort( T1 &Array[] ) { const int Size = ArraySize(Array); for (int i = 0; i < Size - 1; i++) { T2 Min = Array[i]; int Pos = i; for (int j = i + 1; j < Size; j++) if (More(Min, Array[j])) { Min = Array[j]; Pos = j; } if (Pos != i) { Array[Pos] = Array[i]; Array[i] = Min; } } } вобщем ладно, влез немного не в тему fxsaber 2018.10.17 12:50 #1042 // Возвращает TimeLocal даже в Тестере datetime GetTimeLocal( void ) { static const bool IsTester = MQLInfoInteger(MQL_TESTER); static uint TickCount = 0; static datetime InitTimeLocal = 0; datetime Res = 0; if (IsTester) { if (InitTimeLocal) Res = InitTimeLocal + (GetTickCount() - TickCount) / 1000; else { int Array[]; const string FileName = __FUNCTION__; if (FileSave(FileName, Array)) { TickCount = GetTickCount(); Res = InitTimeLocal = (datetime)FileGetInteger(FileName, FILE_MODIFY_DATE); } } } else Res = TimeLocal(); return(Res); } Применение void OnInit() { Print(GetTimeLocal()); } double OnTester() { Print(GetTimeLocal()); return(0); } ЗЫ А есть способ проще узнать локальное время компа в Тестере? Stanislav Korotky 2018.10.17 15:59 #1043 fxsaber: Применение ЗЫ А есть способ проще узнать локальное время компа в Тестере?Через глобальную переменную (GlobalVariableTemp, GlobalVariableTime). fxsaber 2018.10.17 16:03 #1044 Stanislav Korotky: Через глобальную переменную (GlobalVariableTemp, GlobalVariableTime).Не сработает. Stanislav Korotky 2018.10.17 20:19 #1045 fxsaber: Не сработает.Работает оно уже давно и исправно. fxsaber 2018.10.17 20:31 #1046 Stanislav Korotky: Работает оно уже давно и исправно.Тогда что делаю не так? datetime GetTimeLocal( const bool FlagDelete = false ) { static const bool IsTester = MQLInfoInteger(MQL_TESTER); static const string Name = __FILE__; return(IsTester && GlobalVariableTemp(Name) ? GlobalVariableTime(Name) : TimeLocal()); } double OnTester() { Print(GetTimeLocal()); return(0); } TheXpert 2018.10.17 20:55 #1047 fxsaber: Тогда что делаю не так? подозреваю что проблема в вашей любви к лаконизации. через if попробуйте. fxsaber 2018.10.17 21:01 #1048 TheXpert: подозреваю что проблема в вашей любви к лаконизации. через if попробуйте.Попробовал datetime GetTimeLocal() { static const string Name = __FILE__; datetime Res = 0; if (GlobalVariableTemp(Name)) Res = GlobalVariableTime(Name); return(Res); }Не выходит. Alain Verleyen 2018.10.17 21:10 #1049 fxsaber : Попробовал Не выходит. Он не работает, поскольку глобальная переменная эмулируется с помощью MT5 Tester. Они также используют TimeCurrent (). Stanislav Korotky 2018.10.17 21:19 #1050 fxsaber: Попробовал Не выходит.У меня работает, как ожидалось... PS. Моя ошибка - работает в МТ4, но не работает в МТ5. 1...9899100101102103104105106107108109110111112...339 Новый комментарий
Применение
ЗЫ А есть способ проще узнать локальное время компа в Тестере?
Применение
ЗЫ А есть способ проще узнать локальное время компа в Тестере?
Через глобальную переменную (GlobalVariableTemp, GlobalVariableTime).
Через глобальную переменную (GlobalVariableTemp, GlobalVariableTime).
Не сработает.
Не сработает.
Работает оно уже давно и исправно.
Работает оно уже давно и исправно.
Тогда что делаю не так?
Тогда что делаю не так?
подозреваю что проблема в вашей любви к лаконизации. через if попробуйте.
подозреваю что проблема в вашей любви к лаконизации. через if попробуйте.
Попробовал
Не выходит.
Попробовал
Не выходит.
Попробовал
Не выходит.
У меня работает, как ожидалось...
PS. Моя ошибка - работает в МТ4, но не работает в МТ5.