Кривой TimeCurrent() при оптимизации

 
При оптимизации советника, начиная со 2-го прохода, функция TimeCurrent(), вызываемая из события OnTick(), начинает дурить: выдает значения к примеру 1973.01.02 14:27:58, 1992.03.02 19:24:33, 1976.08.30 19:33:19, 1980.07.16 13:31:07, wrong datetime. При одиночном тестировании с любой комбинацией параметров - все нормально. Билд MT4 1010. Модель: все тики. Файлы .hst - свои с атрибутом read-only.
 

Последний билд 1090, смысл писать об ошибках в древних билдах?

 

Файлы истории не работают в новых билдах, а пересоздать их проблематично.

 
GoldRat:

Файлы истории не работают в новых билдах, а пересоздать их проблематично.


Еще как работают. Формат файлов hst не менялся с 600-го билда. Возможно, Вы имеете в виду, что не работает программа, которая их создает. Тогда дело в программе, а не в истории и не в терминале.

 

Не работают: спрэд нулевой. Если это ошибка в билде 1010, то в каком билде исправлено?

 
GoldRat:

Не работают: спрэд нулевой. Если это ошибка в билде 1010, то в каком билде исправлено?


Спред устанавливайте в специальном окне тестера:

Причем установить его нужно при "нормальном" тестировании, а не при работе с FXT-файлом, у которого есть атрибут readonly. То есть сначала запускается обычный тест, а потом только переходим на тестирование нестандартного ТФ. Там остается значение ранее использованного спреда.

P. S. Изначально Вы говорили о другой проблеме - с TimeCurrent(). Теперь же говорите о спреде. Непоследовательно.

 

Просьба не уводить беседу в сторону и ответить по изначальной проблеме, описанной в первом посте данной темы: если это ошибка в билде 1010, то в каком билде исправлено?

 
GoldRat:

Просьба не уводить беседу в сторону и ответить по изначальной проблеме, описанной в первом посте данной темы: если это ошибка в билде 1010, то в каком билде исправлено?

Вам дают прямые ответы, и о древних билдах уже все давно забыли. Билды обновляют не потому что это модно, а потому, что в каждом правят ошибки, и дополняют. Ставьте актуальный, и в нём проверяйте, после этого можно искать причину, если она будет

 

Актуальный не ставят, потому что он ломает то, что уже работало (см. выше, Ваш вариант со спредом не годится - мне нужно с файлом). Мода тут ни при чем. Прямого ответа так и не получил.

 

В билде 1090 аналогичная проблема: после первого прохода TimeCurrent() выдает wrong datetime. Вот код для проверки:

void OnInit()
{
   int handle = FileOpen("Init.txt", FILE_TXT|FILE_READ|FILE_WRITE);    
   FileSeek(handle, 0, SEEK_END);
   FileWrite(handle, "TimeCurrent()=", TimeCurrent());
   FileFlush(handle);
   FileClose(handle);
}

Прилагаю получаемый при оптимизации файл. В чем причина?

Файлы:
Init.txt  1 kb