Выпущена бета-версия MetaTrader 4 Build 582 с обновленным языком MQL4 и Маркетом приложений - страница 16

 

В логе из пятничного поста выделил то, что считаю неправильным. И в коде соответствующий фрагмент

2014.01.17 20:44:18.225 Script TestHst EURUSD,H1: removed
2014.01.17 20:44:18.225 TestHst EURUSD,H1: 2 бара после FileFlush: 236
2014.01.17 20:44:18.210 TestHst EURUSD,H1: 2 бара до FileFlush: 236
2014.01.17 20:44:18.210 TestHst EURUSD,H1: 1 бар + время2 после FileFlush: 236
2014.01.17 20:44:18.210 TestHst EURUSD,H1: 1 бар + время в if : 236
2014.01.17 20:44:18.210 TestHst EURUSD,H1: 1 бар после FileFlush: 236
2014.01.17 20:44:18.178 TestHst EURUSD,H1: 1 бар до FileFlush: 236
2014.01.17 20:44:18.178 TestHst EURUSD,H1: Заголовок 236
2014.01.17 20:44:18.178 TestHst EURUSD,H1: Размер при открытии: 236
2014.01.17 20:44:16.131 Script TestHst EURUSD,H1: loaded successfully
2014.01.17 20:44:09.475 Script TestHst EURUSD,H1: removed
2014.01.17 20:44:09.475 TestHst EURUSD,H1: 2 бара после FileFlush: 236
2014.01.17 20:44:09.460 TestHst EURUSD,H1: 2 бара до FileFlush: 236
2014.01.17 20:44:09.460 TestHst EURUSD,H1: 1 бар + время2 после FileFlush: 196
2014.01.17 20:44:09.444 TestHst EURUSD,H1: 1 бар + время в if : 192 Здесь по идее должно быть 196
2014.01.17 20:44:09.366 TestHst EURUSD,H1: 1 бар после FileFlush: 192
2014.01.17 20:44:09.350 TestHst EURUSD,H1: 1 бар до FileFlush: 192
2014.01.17 20:44:09.350 TestHst EURUSD,H1: Заголовок 148
2014.01.17 20:44:09.350 TestHst EURUSD,H1: Размер при открытии: 0
2014.01.17 20:44:09.194 Script TestHst EURUSD,H1: loaded successfully


//+------------------------------------------------------------------+
//|                                                      TestHst.mq4 |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart() {
  int i_unused[13];
  int Handle = FileOpenHistory("AAABBB1.hst",FILE_BIN|FILE_READ|FILE_WRITE|FILE_SHARE_READ);
  if (Handle < 0) {
         Alert( "Не удалось открыть файл");
         return;
  }
  Print("Размер при открытии: ",FileSize(Handle));  
  FileSeek(Handle,0,SEEK_SET);
  FileWriteInteger(Handle,400,LONG_VALUE);
  FileWriteString       (Handle,"test",64);
  FileWriteString       (Handle,"AAABBB",12);
  FileWriteInteger(Handle,1,LONG_VALUE);
  FileWriteInteger(Handle,5,LONG_VALUE);
  FileWriteInteger(Handle,0,LONG_VALUE);       //timesign
  FileWriteInteger(Handle,0,LONG_VALUE);       //last_sync
  FileWriteArray        (Handle,i_unused,0,13);
  Print("Заголовок ",FileSize(Handle));  
  FileWriteInteger(Handle,TimeLocal(),LONG_VALUE);
  FileWriteDouble (Handle,1,DOUBLE_VALUE);
  FileWriteDouble (Handle,1,DOUBLE_VALUE);
  FileWriteDouble (Handle,1,DOUBLE_VALUE);
  FileWriteDouble (Handle,1,DOUBLE_VALUE);
  FileWriteDouble (Handle,1,DOUBLE_VALUE);
  Print("1 бар до FileFlush: ",FileSize(Handle));  
  FileFlush(Handle);
  Print("1 бар после FileFlush: ",FileSize(Handle));  
  if (FileWriteInteger(Handle,TimeLocal(),LONG_VALUE) < 0) {
    Print("Error ",GetLastError());
  }
  FileFlush(Handle);
  Print("1 бар + время в if : ",FileSize(Handle));  
  FileWriteInteger(Handle,TimeLocal(),LONG_VALUE);
  FileFlush(Handle);
  Print("1 бар + время2 после FileFlush: ",FileSize(Handle));  
  FileWriteDouble (Handle,1,DOUBLE_VALUE);
  FileWriteDouble (Handle,1,DOUBLE_VALUE);
  FileWriteDouble (Handle,1,DOUBLE_VALUE);
  FileWriteDouble (Handle,1,DOUBLE_VALUE);
  FileWriteDouble (Handle,1,DOUBLE_VALUE);
  Print("2 бара до FileFlush: ",FileSize(Handle));  
  FileFlush(Handle);
  Print("2 бара после FileFlush: ",FileSize(Handle));  
  FileClose(Handle);
  return;
}
 
stringo:
..

Я не совсем понял, что написано в P.P.S.


Имелась в виду модификация проблемного if c внесением FileWriteInteger внутрь условия. Но я сейчас не смог это воспроизвести, поэтому вопрос о самопроизвольном откате размера файла в 574 билде снимается. В 509 такой откат размера у меня достоверно был, но 509 больше не обсуждается.
 
Подскажите пожалуйста, планируется ли в справке описать содержимое папки Include?
 

Для ренко графиков советник создает данные до 2004.01.02, бывает и 1970 год нарисует

На 509 тот же советник - все нориально

 
poruchik:

Для ренко графиков советник создает данные до 2004.01.02, бывает и 1970 год нарисует

На 509 тот же советник - все нориально


В новом терминале другая структура записей в файлах истории. Смотрите в скрипте PeriodСonvertor
 

я так и понял, когда не смог .HST в .CSV перегнать

 
alexmsk:

В новом терминале другая структура записей в файлах истории. Смотрите в скрипте PeriodСonvertor
Как это другая?! Какая? По моему, ничего не поменялось.
 
Candid:

В логе из пятничного поста выделил то, что считаю неправильным. И в коде соответствующий фрагмент

2014.01.17 20:44:18.225 Script TestHst EURUSD,H1: removed
2014.01.17 20:44:18.225 TestHst EURUSD,H1: 2 бара после FileFlush: 236
2014.01.17 20:44:18.210 TestHst EURUSD,H1: 2 бара до FileFlush: 236
2014.01.17 20:44:18.210 TestHst EURUSD,H1: 1 бар + время2 после FileFlush: 236
2014.01.17 20:44:18.210 TestHst EURUSD,H1: 1 бар + время в if : 236
2014.01.17 20:44:18.210 TestHst EURUSD,H1: 1 бар после FileFlush: 236
2014.01.17 20:44:18.178 TestHst EURUSD,H1: 1 бар до FileFlush: 236
2014.01.17 20:44:18.178 TestHst EURUSD,H1: Заголовок 236
2014.01.17 20:44:18.178 TestHst EURUSD,H1: Размер при открытии: 236
2014.01.17 20:44:16.131 Script TestHst EURUSD,H1: loaded successfully
2014.01.17 20:44:09.475 Script TestHst EURUSD,H1: removed
2014.01.17 20:44:09.475 TestHst EURUSD,H1: 2 бара после FileFlush: 236
2014.01.17 20:44:09.460 TestHst EURUSD,H1: 2 бара до FileFlush: 236
2014.01.17 20:44:09.460 TestHst EURUSD,H1: 1 бар + время2 после FileFlush: 196
2014.01.17 20:44:09.444 TestHst EURUSD,H1: 1 бар + время в if : 192 Здесь по идее должно быть 196
2014.01.17 20:44:09.366 TestHst EURUSD,H1: 1 бар после FileFlush: 192
2014.01.17 20:44:09.350 TestHst EURUSD,H1: 1 бар до FileFlush: 192
2014.01.17 20:44:09.350 TestHst EURUSD,H1: Заголовок 148
2014.01.17 20:44:09.350 TestHst EURUSD,H1: Размер при открытии: 0
2014.01.17 20:44:09.194 Script TestHst EURUSD,H1: loaded successfully


Большое спасибо за Ваше терпение. У нас действительно в этом месте ошибка компилятора из-за которой не осуществлялся вызов FileWriteInteger

Для обхода этой ошибки соответствующую строку необходимо переписать следующим образом

   if(FileWriteInteger(Handle,TimeLocal(),LONG_VALUE)<=0) 
 
другая структура записей в файл или нет не знаю, но мой индикатор (переделанный из этого https://www.mql5.com/ru/code/10120) работать перестал!
Компилируется, файл вроде открывает, и все... прочесть не может. Сейчас разбираюсь.
 
stringo:

Большое спасибо за Ваше терпение. У нас действительно в этом месте ошибка компилятора из-за которой не осуществлялся вызов FileWriteInteger

Для обхода этой ошибки соответствующую строку необходимо переписать следующим образом



И Вам спасибо, и тоже за терпение :). А также за конструктивную реакцию. Пожалуй я рискну взяться за переделку своего скрипта для нового МТ4 сейчас
Причина обращения: