Проблема с записью файла истории

 
Пытаемся сформировать файл истории по следующим правилам: первый бар как m1, второй бар расчитываем на основании двух баров m1, третий бар расчитываем на основании трех баров m1 и т.д. Таким образом время между барами разное и постоянно уменьшается(в форме сказано, что может быть произвольным). Далее следующими процедурами записываем новый сформированный файл истории:

int i_period=2;
string c_symbol;
int version=400;
int i_digits=Digits;
int i_unused[13];
//----Открытие файла истории
c_symbol=Symbol();
ExtHandle=FileOpenHistory(Symbol()+i_period+".hst", FILE_BIN|FILE_WRITE);
if(ExtHandle < 0) {return(-1);Alert("Неудачное открытие файла "+Symbol()+i_period+".hst !!! ");}
c_copyright="(C)opyright 2003, MetaQuotes Software Corp.";
FileWriteInteger(ExtHandle, version, LONG_VALUE);
FileWriteString(ExtHandle, c_copyright, 64);
FileWriteString(ExtHandle, c_symbol, 12);
FileWriteInteger(ExtHandle, i_period, LONG_VALUE);
FileWriteInteger(ExtHandle, i_digits, LONG_VALUE);
FileWriteInteger(ExtHandle, 0, LONG_VALUE); //timesign
FileWriteInteger(ExtHandle, 0, LONG_VALUE); //last_sync
FileWriteArray(ExtHandle, i_unused, 0, 13); //i_unused
.......
while(m1bar<=EndBar)
{
........

last_fpos=FileTell(ExtHandle);
FileWriteInteger(ExtHandle, time, LONG_VALUE);
FileWriteDouble(ExtHandle, open, DOUBLE_VALUE);
FileWriteDouble(ExtHandle, low, DOUBLE_VALUE);
FileWriteDouble(ExtHandle, high, DOUBLE_VALUE);
FileWriteDouble(ExtHandle, close, DOUBLE_VALUE);
FileWriteDouble(ExtHandle, m1bar, DOUBLE_VALUE);
FileFlush(ExtHandle);
.....
}
FileFlush(ExtHandle);
FileClose(ExtHandle);

При попытке автономного открытия сформированного файла истории MT4 в журнал выводит сообщение об ошибке: HistoryBase:2220 errors in "EURUSD2"
Что я лично монимаю как: в файле истории 2220 баров(записей), в каждой записи ошибка !!!
Сам график открывается на основании этого файла истории вполне успешно, если не считать этого сообщения, но будучи отрытым последующее его обновление через пунт меню обновить график приводит только к повторному появлению сообщения об ошибке описанной выше. Сам график не обновляется !!!
Гаже всего выглядит то, что описанная на форуме команда обновления графика:
.......
hwnd=WindowHandle(Symbol(),2);
if(hwnd != 0)PostMessageA(hwnd,WM_COMMAND,33324,0);
..........
приводит к прекращению исполнения скрипта который пытается ее выполнить !
Вероятно виной тому криво сформированный файл истории.
Господа прошу помочь найти этот баг с записью истории в файл.