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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Ivan Titov
8501
Ivan Titov  
При оптимизации советника, начиная со 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.
Alexey Volchanskiy
27331
Alexey Volchanskiy  

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

Ivan Titov
8501
Ivan Titov  

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

Ihor Herasko
21869
Ihor Herasko  
GoldRat:

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


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

Ivan Titov
8501
Ivan Titov  

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

Ihor Herasko
21869
Ihor Herasko  
GoldRat:

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


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

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

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

Ivan Titov
8501
Ivan Titov  

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

Vitaly Muzichenko
14109
Vitaly Muzichenko  
GoldRat:

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

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

Ivan Titov
8501
Ivan Titov  

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

Ivan Titov
8501
Ivan Titov  

В билде 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
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий