Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Андрей
12
Андрей  

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

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

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

o_o
Модератор
24048
o_o  
смотрите MSDN
Всеволод
648
Всеволод  

WinAPI.

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

Андрей
12
Андрей  
splxgf:

WinAPI.

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


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

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

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

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

Victor Nikolaev
Модератор
14971
Victor Nikolaev  
Andy833:

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

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

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

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


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

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

Vladimir Gomonov
8297
Vladimir Gomonov  
Andy833:

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

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

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

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

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

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

datetime GlobalVariableSet( string name, double value)

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

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

Всеволод
648
Всеволод  

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

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий