Тестер стратегий - какой функцией получить актуальное время компьютера ?

 

Доброе время суток ... нужна помощь

какой функцией в тестере стратегий можно получить актуальное время компьютера ?

дело вот в чем - есть желание чтобы при запуске тестера создавался файл в названии которого были дата/время компьютера ... те функции времени которые нашел TimeLocal() например выдают время смоделированное тестером время :(

 
смотрите MSDN
 

WinAPI.

Можно просто создавать файл с произвольным именем, а затем переименовывать по дате создания, а если подумать, то можно и не переименовывать.

 
splxgf:

WinAPI.

Можно просто создавать файл с произвольным именем, а затем переименовывать по дате создания, а если подумать, то можно и не переименовывать.


интересная идея ... спасибо :)

вопрос ... в MQL есть генерация случайного числа ?

тут во в чем проблема - тестер запускается на одном и том же временном диапазоне - скажем последний год

от руки менять в коде программы имя сохраняемого файла - лень ... а автоматически - не получается :(

 
Andy833:

интересная идея ... спасибо :)

вопрос ... в MQL есть генерация случайного числа ?

тут во в чем проблема - тестер запускается на одном и том же временном диапазоне - скажем последний год

от руки менять в коде программы имя сохраняемого файла - лень ... а автоматически - не получается :(


int MathRand()
Функция возвращает псевдослучайное целое число в дипазоне от 0 до 32767. Перед первым вызовом функции необходимо использовать функцию MathSrand, чтобы перевести генератор псевдослучайных чисел в начальное состояние.
Пример:
  MathSrand(TimeLocal());
  // Отображает 10 чисел.
  for(int i=0;i<10;i++ )
    Print("произвольная величина ", MathRand());
 

Можно не случайными числами, а последовательными и проверять наличие существующего файла по file open и get last error. Если файл существует, то инкрементируем переменную и пытаемся открыть снова. Когда появится ошибка открытия, то смело создаем файл на запись.

 
Andy833:

интересная идея ... спасибо :)

вопрос ... в MQL есть генерация случайного числа ?

тут во в чем проблема - тестер запускается на одном и том же временном диапазоне - скажем последний год

от руки менять в коде программы имя сохраняемого файла - лень ... а автоматически - не получается :(

Насчёт получения актуального времени компьютера в тестере. Есть множество извращённых способов. Самый простой:

Глобальные переменные терминала хранят время последней модификации. В тестере MT4 они доступны (в MT5 - нет). Изменяете переменную, получаете MyCompClockTime.

datetime GlobalVariableSet( string name, double value)

Устанавливает новое значение глобальной переменной. Если переменная не существует, то система создает новую глобальную переменную. При успешном выполнении функция возвращает время последнего доступа, иначе 0. Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().

Но если это всё нужно только чтоб получить при каждом прогоне уникальный случайный ряд, можно поступить проще. К вашим услугам функция GetTickCount() - возвращает реальный счётчик милисикунд с момента последней перезагрузки компа.

 

Сикунды навеяли:

- Поручик, вы в очко можете?
- Могу-с!
- А в сику?
- Так точно-с!
- А в преферанс?
- Куда-с?!!