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

 
evillive:
Да, этот вариант работает. Но всё же админам сервера надо мозги прополоскать насчет портов 443 и 444.


чёт не катит, процесс висит в списке процессов, окно не открывается, система жестко тупит.
 
stringo:
Поясните, пожалуйста, Ваш вопрос. Что Вы подразумеваете под "нормальной работой с файлами истории"?


Например, когда оператор записи целого числа работает даже в условном выражении, совсем недавно написал об этом. И, честно говоря, есть впечатление что это далеко не единственная проблема. Скажем вновь созданные моим скриптом файлы почему то имеют в новом билде размер на 4 байта больше, чем в 509 (тем же скриптом). Правда я ещё не пытался детальнее понять, как именно это происходит, поэтому это пока не претензия.
 
Кстати, теперь есть возможность перезагрузить терминал средствами только терминала из MQL-программы.
 
Candid:

Например, когда оператор записи целого числа работает даже в условном выражении, совсем недавно написал об этом. И, честно говоря, есть впечатление что это далеко не единственная проблема. Скажем вновь созданные моим скриптом файлы почему то имеют в новом билде имеют размер на 4 байта больше, чем в 509 (тем же скриптом). Правда я ещё не пытался детальнее понять, как именно это происходит, поэтому это пока не претензия.
Мож у них заголовки разные?
 
Уважаемые разработчики, написал в сервисдеск, заявка #932247, не оставьте без внимания пожалуйста :)
 
sanyooooook:

чёт не катит, процесс висит в списке процессов, окно не открывается, система жестко тупит.

Очень странно, тогда точно к админам или к нормальным хостерам ВПС ...
 
MetaDriver:
Мож у них заголовки разные?


Так я же пишу старый заголовок. Не при получении же хэндла они записываются. Конечно может быть и такое, но тогда было бы интересно знать, как этим новым форматом пользоваться.
 
sanyooooook:

чёт не катит, процесс висит в списке процессов, окно не открывается, система жестко тупит.

Поинтересуйтесь так ненавязчиво насчёт поддержки SSE2 виртуальной машиной. Ну и портами.
 
MetaDriver:
Мож у них заголовки разные?

Наверно, перед заголовком записывается маркер порядка байтов.
 

Кому интересно, запустите этот простейший тестовый скрипт, 2 раза подряд

//+------------------------------------------------------------------+
//|                                                      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;
}

У меня получилось вот что

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
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

P.S. Кстати, размер всё-таки нормальный. Но тот скрипт конечно посложнее, да я пока и не настаиваю на эффекте. FileSize, в отличие от 509 билда, срабатывала и без FileFlush