Выпущена бета-версия MetaTrader 4 Build 529 с новым компилятором - страница 110

 
VOLDEMAR:

Да и каталоги в MQL на русском языке не отображаются

Похоже, ясно в чём дело.

Есть ли в Вашем каталоге, по случайности названном по-русски, что-нибудь скомпилированное и пригодное для выполнения?

 

Зравствуйте!
Почти постоянно не проходит оптимизация и даже тестирование советников. В логах ошибки "Memory handler: cannot allocate 292094340 bytes of memory" с разными цифрами.

МТ билды 555-556, более ранние не пробовал. Установлен в "C:\Program Files\Alpari MT4" под админскими правами. С ними же и запускается. Инсталлятор 509-й версии был загружен с Альпари. Потом прописал сервер, указанный на первой странице темы и демо-счёт MQ. После обновления вернул демо-сервер и демо-счёт Альпари. С Альпари же и загружаю котировки - загрузились и пересчитались успешно.

Раньше, на 400-тых билдах на этом же компе с этой же системой одновременно запускал оптимизацию советников на истории в 1-2 года в четырёх копиях терминала с разными парами, каждый на своём ядре. Молотили по несколько часов. И при этом ещё смотрел фильмы или что-то делал в инете/редакторе.

В 556-м билде не всегда получается прогнать даже один прогон тестирования простых демо-советников, встроенных в терминал на истории за сентябрь-октябрь на минутках или 5-ти минутках. В логах появляется ошибка про память и по всем признакам котировки для тестирования в память не загружаются. При оптимизации все итерации проходят практически мгновенно. В результах оптимизации везде нули, сделки не открываются. При тестировании в режиме визуализации видны котировки только до начальной даты тестирования. За период тестирования котировки не отображаются. Иногда после попытки оптимизации котировки используемого таймфрейма (минутки) в "Архиве котировок" просто пропадают и обновление/пересчёт не помогают. Появляются котировки только после перезапуска терминала. Один-два раза после перезапуска МТ успеваю сделать тестирование или оптимизацию и потом опять те же ошибки.
В Настройках пробовал указывать количество загружаемых баров в истории от 1 до 10 миллионов. Баров на графике указывал от 10 до 100 тысяч - не помогает.

Система Windows XP 32 bit, процессор Core i5 с четырьмя ядрами. Памяти 4 гига (реально доступно системе 3,3 гига). Файл подкачки отключён.
В "Диспетчере задач" видно, что занято памяти от 1,2 до 2,5 гигов (при открытом терминале, в зависимости от других запущеных приложений). То есть, свободно всегда около 1-2 гигов. Память процесса терминала: 115 мегабайт ОЗУ, пик - до 400 мегабайт, 120 мегабайт виртуальной.
Память и остальное железо работают нормально, в тяжёлых игрушках занимается почти вся память - проблем не возникает.

В чём может быть причина?

 
erch:

Night, глянь на цены открытия. Они какие то заоблачные. У тебя наверно Dist=1000.


Привет!

Да, ты прав с ценами, но Dist = 10.

Я вообще не врубаюсь, что происходит. Полный неадекват. Вчера сов вёл себя так:

1. открывался по нужной цене с ТР = 0 и СЛ = 0. Тут всё как нужно.

2. Далее присваиваются ТР. На селл всё по заданным параметрам, на бай полная хня, то присвоит значение 100.000, то 10000.000, то 1000.000

3. Далее всё пересчитывается, как положено.

Сегодня ТОТ ЖЕ код работает ещё хлеще.

Цены открытия - сам видишь, ТР по селл вообще не пересчитывается. Вообще не врубаюсь, чего ему надо....

 

Какое то странное поведение стало у Canvas. Этот код в нескольких билдах назад работал:

int OnInit() {

   EventSetTimer(60);//создание таймера

   ResetLastError(); //устанавливает значение предопределенной переменной _LastError в ноль
   CCanvas* Label=new CCanvas();
   bool fc=Label.CreateBitmapLabel("MyLabel",150,150,250,150,COLOR_FORMAT_ARGB_NORMALIZE);
   if(fc) {
некоторый код
   }
   else {
      int err=GetLastError();
      Print("Label.CreateBitmapLabel create ERROR : ",ErrorDescription(err));
   }
   delete Label;

   return(INIT_SUCCEEDED);
}

Теперь выдает ошибку:

2013.12.10 16:14:16.981 test EURUSD,H1: Label.CreateBitmapLabel create ERROR : invalid function parameter value
уже все перерыл, почему пишет что параметры не правильные?

 
stringo:

Отображаются.


Давайте подробности


Из подробностей билд 556

работаю с флешки portable приписал

 
VOLDEMAR:


Из подробностей билд 556

работаю с флешки portable приписал


В навигаторе MetaEditor видно, что эта папка - пуста. И другая папка тоже пуста. Поэтому они и не отображаются в навигаторе клиентского терминала.
 
Barbarian:

Какое то странное поведение стало у Canvas. Этот код в нескольких билдах назад работал:

Теперь выдает ошибку:

2013.12.10 16:14:16.981 test EURUSD,H1: Label.CreateBitmapLabel create ERROR : invalid function parameter value
уже все перерыл, почему пишет что параметры не правильные?


Ошибка в нашем коде. Уже исправили.

Подождите, пожалуйста, следующего билда

 
stringo:

В навигаторе MetaEditor видно, что эта папка - пуста. И другая папка тоже пуста. Поэтому они и не отображаются в навигаторе клиентского терминала.


Угу получилось все заработало,

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

 
VOLDEMAR:


Угу получилось все заработало,

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


В метаедиторе поставить галку "показывать все файлы"

 
Night63:


Привет!

Да, ты прав с ценами, но Dist = 10.

Я вообще не врубаюсь, что происходит. Полный неадекват. Вчера сов вёл себя так:

1. открывался по нужной цене с ТР = 0 и СЛ = 0. Тут всё как нужно.

2. Далее присваиваются ТР. На селл всё по заданным параметрам, на бай полная хня, то присвоит значение 100.000, то 10000.000, то 1000.000

3. Далее всё пересчитывается, как положено.

Сегодня ТОТ ЖЕ код работает ещё хлеще.

Цены открытия - сам видишь, ТР по селл вообще не пересчитывается. Вообще не врубаюсь, чего ему надо....

Ты не пробовал убрать пересчет из 4-х в 5-ти знак и еще TakeProfit у тебя в глобальных переменных и в ModifyOrder( double TakeProfit).

Компилятор должен ругаться, или нет?

Причина обращения: