Текущее время в тестере стратегий

 

коллеги, всем доброго.

Как в тестере стратегий можно получить текущее актуальное время (в жизни)?

т.е. сегодня 06.12.21, какой бы период тестирования я не запускал, у меня должна выдаваться текущая актуальная дата.

 
Nikita Chernyshov:

Как в тестере стратегий можно получить текущее актуальное время (в жизни)?

штатными средствами никак, скорее всего в целях каких-то безопасностей )))

используйте WinAPI

или запишите и прочитайте файл: https://www.mql5.com/ru/forum/170952/page105#comment_9044250

 
Igor Makanu #:

штатными средствами никак, скорее всего в целях каких-то безопасностей )))

используйте WinAPI

или запишите и прочитайте файл: https://www.mql5.com/ru/forum/170952/page105#comment_9044250

ну про winAPi и думал) может, у кого-то уже есть готовое решение через winApi?

 
Nikita Chernyshov:

коллеги, всем доброго.

Как в тестере стратегий можно получить текущее актуальное время (в жизни)?

т.е. сегодня 06.12.21, какой бы период тестирования я не запускал, у меня должна выдаваться текущая актуальная дата.

Коряво если, записать во внешнюю переменную сторонним скриптом дату, скрипт запустить из тестерного советника / индикатора в другом окне. Или вручную сперва скрипт, потом тестер и считать дату из внешней переменной. Или через файл.

И надо пробовать, если с другого инструмента запросить время открытия нулевого бара, то должен вроде дать текущие данные, хотя не уверен. Счас вроде исправили и работает как в 5ке окружение тестера. Раньше в 4ке получали текущие данные с баров с других инструментов.
 
Nikita Chernyshov #:

ну про winAPi и думал) может, у кого-то уже есть готовое решение через winApi?

поиском  GetLocalTime

даже на форуме есть примеры https://www.mql5.com/ru/forum/167065#comment_4007673

 
Igor Makanu #:

поиском  GetLocalTime

даже на форуме есть примеры https://www.mql5.com/ru/forum/167065#comment_4007673

Это не из тестера.

 
Alexey Viktorov #:

Это не из тестера.

а из чего? из WinAPI? - тогда вроде речь об этом и идет

единственное, за что спасибо - потренировали в поиске как запустить тестер МТ4 - еле нашел, давно не запускал )))

#property strict
struct _SYSTEMTIME
{
   ushort            wYear;
   ushort            wMonth;
   ushort            wDayOfWeek;
   ushort            wDay;
   ushort            wHour;
   ushort            wMinute;
   ushort            wSecond;
   ushort            wMilliseconds;
};

#import "kernel32.dll"
void GetLocalTime(_SYSTEMTIME &sys_time);
#import
#include <Files\FileTxt.mqh>
//+------------------------------------------------------------------+
int OnInit()
{
   _SYSTEMTIME loc_time;
   GetLocalTime(loc_time);

   CFileTxt f;
   f.Open("time_now.txt", FILE_WRITE | FILE_COMMON);
   if(f.Handle() == INVALID_HANDLE) return(INIT_FAILED);
   f.WriteString((string)loc_time.wDay + "." + (string)loc_time.wMonth + "." + (string)loc_time.wYear + "\n");
   f.WriteString((string)loc_time.wHour + "." + (string)loc_time.wMinute + "." + (string)loc_time.wSecond + "." + (string)loc_time.wMilliseconds);

   return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
void OnTick()
{

}
//+------------------------------------------------------------------+
\Common\Files\time_now.txt

6.12.2021

19.58.18.153

 
Igor Makanu #:

а из чего? из WinAPI? - тогда вроде речь об этом и идет

единственное, за что спасибо - потренировали в поиске как запустить тестер МТ4 - еле нашел, давно не запускал )))

\Common\Files\time_now.txt

6.12.2021

19.58.18.153

Меня сбило с толку первая фраза в первом сообщении

prostotrader:

Добрый день!

Возможно ли из MQL5 подстраивать текущее локальное время компьютера

 
Igor Makanu #:

а из чего? из WinAPI? - тогда вроде речь об этом и идет

единственное, за что спасибо - потренировали в поиске как запустить тестер МТ4 - еле нашел, давно не запускал )))

\Common\Files\time_now.txt

6.12.2021

19.58.18.153

Спасибо вам огромное!

 
Nikita Chernyshov:

коллеги, всем доброго.

Как в тестере стратегий можно получить текущее актуальное время (в жизни)?

т.е. сегодня 06.12.21, какой бы период тестирования я не запускал, у меня должна выдаваться текущая актуальная дата.

Получить время компьютера можно создав файл и определив время его создания.

Написал для 5, Проверил в тестере стратегий, думаю пойдет для 4

//+-------------------------------------------------------+
//| Время компьютера                            PROBA.mq5 |
//+-------------------------------------------------------+

void OnInit()
{
   // Создание метки для вывода даты и времени
   ObjectCreate    (0, "Dep", OBJ_LABEL,0,0,0);
   ObjectSetInteger(0, "Dep", OBJPROP_XDISTANCE, 90);   // X   
   ObjectSetInteger(0, "Dep", OBJPROP_YDISTANCE, 0);    // Y
   ObjectSetInteger(0, "Dep", OBJPROP_CORNER, 3);       // Right UP
   ObjectSetString (0, "Dep", OBJPROP_TEXT, "Time");    // Начальный текст
   ObjectSetString (0, "Dep", OBJPROP_FONT, "Arial");   // Шрифт
   ObjectSetInteger(0, "Dep", OBJPROP_FONTSIZE, 8);    // Размер шрифта
   ObjectSetInteger(0, "Dep", OBJPROP_ANCHOR, 6);       // Right UP
   ObjectSetInteger(0, "Dep", OBJPROP_COLOR, DeepSkyBlue);   // Цвет
   ObjectSetInteger(0, "Dep", OBJPROP_BACK, false);     // на переднем плане
   ObjectSetInteger(0, "Dep", OBJPROP_SELECTABLE, true);// Можно выделять
   ObjectSetInteger(0, "Dep", OBJPROP_HIDDEN,false);    // Показывать
   ObjectSetInteger(0, "Dep", OBJPROP_ZORDER, 0);       // Right UP
   ChartRedraw();    // Показать созданный объект до первого тика
}

void OnTick()
{
   // Создать файл и записать в него строку текста
   int File=FileOpen("TempFile",FILE_WRITE|FILE_CSV);
   FileWrite(File, "Time");

   // Получить время доступа к файлу и записать в метку
   long d=FileGetInteger(File,FILE_ACCESS_DATE);
   ObjectSetString(0,"Dep", OBJPROP_TEXT, (string)datetime(d));

   // Закрыть файл и удалить чтоб можно создать его заново
   FileClose(File);
   FileDelete("TempFile");
}


void OnDeinit(const int reason)
{
   ObjectsDeleteAll(0);    // Удалить все имеющиеся на графике объекты
}
 
a007 #:

Получить время компьютера можно создав файл и определив время его создания.

Написал для 5, Проверил в тестере стратегий, думаю пойдет для 4

Спасибо, работает… Только не могу понять зачем lable создавать? Просто чтобы видеть текущее время? Для теста проще в комментарий графика показать… Ну это я просто придираюсь…