Снова вопрос по тестеру

 
Господа, проясните, Pls - в каких случаях тестер (при ОТКЛЮЧЕННОЙ галке "пересчитать") генерирует историю самостоятельно?
Вопрос возник собственно в такой ситуации - подсовываю тестеру ПУСТОЙ файл данных (EURUSD1_0.fxt), только с заголовком, запускаю тестирование - затирается сгенерированным.
Режим тестирования - по всем тикам. Даты начала и окончания - 2006.07.14 - 2006.07.18.
Заголовок содержит следующее:

Parameter;Value
version;402
copyright;(C)opyright 2005, MetaQuotes Software Corp.
symbol;EURUSD
period;1
model;0
bars;8
fromdate;01.05.2006 0:01:00
todate;01.05.2008
modelquality;99
currency;EUR
spread;2
digits;4
point;0,0001
lot_min;10
lot_max;1000000
lot_step;10
stops_level;10
gtc_pendings;1
contract_size;100000
tick_value;0
tick_size;0
profit_mode;0
swap_enable;1
swap_type;1
swap_long;-0,4
swap_short;0,2
swap_rollover3days;3
leverage;100
free_margin_mode;1
margin_mode;0
margin_stopout;10
margin_initial;0
margin_maintenance;0
margin_hedged;100000
margin_divider;1
margin_currency;EUR
comm_base;0
comm_type;0
comm_lots;0
from_bar;0
to_bar;20
start_period[1];0
..
start_period[6];0
reserved[1];0
..
reserved[64];0
 
      //---- проверяем адекватность заголовка
      if(fread(&m_header,sizeof(m_header),1,m_file)==1 &&
                m_header.version==TestHistoryVersion   &&
                m_header.model==model && m_header.period==scheme->period &&
                strcmp(m_header.symbol,scheme->symbol)==0)
        {
         //---- проверяем дальше
         if(m_header.bars<=100   || m_header.modelquality<=0.0 ||
            m_header.spread<0    || m_header.spread>100000 ||
            m_header.digits<0    || m_header.digits>8 ||
            m_header.lot_min<0   || m_header.lot_step<=0 ||
            m_header.leverage<=0 || m_header.leverage>500 ||
            m_header.swap_rollover3days<0 ||
            m_header.swap_rollover3days>6 ||
            m_header.stops_level<0) refresh=TRUE;
         //---- проверяем необходимость обновления
         if(refresh==FALSE)
           {
            m_testes_total=(_filelength(_fileno(m_file))-sizeof(m_header))/sizeof(TestHistory);
            return(TRUE);
           }
        }


опубликовано здесь "Формат файлов тестера *.FXT"

 
Была вроде еще проверка полей
reserved[1];1152835200
reserved[2];1153180800
Ее убрали?
 
В самописном файле эти поля должны быть обнулены
 
В самописном файле эти поля должны быть обнулены

Да, это я помню. Но этой проверки нет в приведенном блоке проверок. Может он несколько устарел - и есть еще какие-либо ограничения?
 
Уже готов эксперт, собирающий тики в FXT-файл. В том числе и в существующий. Поэтому проверки сделаны, как надо. В ближайшее время он будет выложен в code base

Ещё осталось написать пару скриптов для заделывания дыр в fxt. После этого будет опубликована статья о файловых операциях.
 
Есть ещё дополнительная проверка, оказывается представленный выше код неполон
      if(fread(&m_header,sizeof(m_header),1,m_file)==1 &&
                m_header.version==TestHistoryVersion   &&
                m_header.model==model && m_header.period==scheme->period &&
                strcmp(m_header.symbol,scheme->symbol)==0 &&
                (m_header.from==0 || fromdate==0 || m_header.from<=fromdate) &&
                (m_header.to==0 || todate==0 || m_header.to>=todate))


m_header.from и m_header.to - это как раз и есть первые 2 поля из 64 зарезервированных

 
Уже готов эксперт, собирающий тики в FXT-файл. В том числе и в существующий. Поэтому проверки сделаны, как надо. В ближайшее время он будет выложен в code base

Ещё осталось написать пару скриптов для заделывания дыр в fxt. После этого будет опубликована статья о файловых операциях.




ok, спасибо за ответ, жду скрипт с проверками. Хотя, по возможности, просьба выложить отрывок эксперта (в части проверок) здесь.
Причина обращения: