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

 
artmedia70:

Забавно. В имя эксперта включаются и имена подпапок, в которых он лежит.

Это неоправданно увеличивает размер имени эксперта.

Например: если эксперт называется Expert, и лежит он в Каталог_Терминала\MQL4\experts\Заказы\Ник_Заказчика,

то имя эксперта будет не Expert, а Заказы\Ник_Заказчика\Expert. Если же и имена объектов содержат в себе имя_эксперта_имя_объекта_время, то это уже перебор по количеству символов и объект выводится на нулевую цену и нулевое время.

Если имена объектов включают в себя имя эксперта, чтобы он мог прибрать за собой при деинициализации, то остаётся совсем мало места для самого имени объекта.

Это будет изменено, или так и останется?


Будет изменено.
 
Renat:

Посмотрите в журнале - там пишется что качается и что скачалось?


Не качает обновление справки

А теперь вот так

 

Парни на сколько я помню в ранних версиях терминалов подобная штука прокатывала

extern double sig[3]= {12,0.548,0.21,0.413};

Но сейчас пишет ошибку, что не так то ???

Второй вопрос

При установке терминала с флагом portable на флеш накопитель, правильно ли все работает ?? Помнится раньше были проблемы с отображением имен счетов и с астрономическими суммами на счетах...

 
VOLDEMAR:

Парни на сколько я помню в ранних версиях терминалов подобная штука прокатывала

Но сейчас пишет ошибку, что не так то ???

Второй вопрос

При установке терминала с флагом portable на флеш накопитель, правильно ли все работает ?? Помнится раньше были проблемы с отображением имен счетов и с астрономическими суммами на счетах...


Объявлен массив из трех элементов, а в него записывается четыре элемента. Однозначно ошибка. Когда список инициализации большой, то лучше делать так:

double sig[]= {12,0.548,0.21,0.413};

Компилятор сам посчитает.

А объявление массива в качестве настроечного параметра - это как?

 
Scriptong:


Объявлен массив из трех элементов, а в него записывается четыре элемента. Однозначно ошибка. Когда список инициализации большой, то лучше делать так:

Компилятор сам посчитает.


неа, не працюе

 
VOLDEMAR:


неа, не працюе


Ну так чистым английским написано: в настроечных параметрах не допускается. Ожидается одно константное значение :)
 
Scriptong:

Ну так чистым английским написано: в настроечных параметрах не допускается. Ожидается одно константное значение :)

Английский не знаю (((, но я видел коды где в настройках через ( ; ) вводилось масса параметров ...
 
VOLDEMAR:

Парни на сколько я помню в ранних версиях терминалов подобная штука прокатывала

Но сейчас пишет ошибку, что не так то ???



Раньше такое тоже не работало. Уберите модификатор extern
 

Расскажите мне, не понимаю вот причин происходящего. Справка:

Событие Deinit генерируется для экспертов и индикаторов в следующих случаях:

·перед выгрузкой mql4-программы.

Выгрузка эксперта, прикрепленного к графику, производится в следующих случаях:

·закрытие терминала (если эксперт был прикреплен к графику);

1) советник в OnInit создает 400 графических объектов (с помощью class-ов через new объект)

2) в OnDeinit удаляет ( Оператор delete удаляет созданный оператором new объект)

При удалении советника - все на ура (созданные объекты удаляются)

При переключении ТФ если история подгружена - все на ура (созданные объекты удаляются, новые создаются)

При переключении ТФ если история не подгружена по данному тф - происходит около 3-х раз OnDeinit и OnInit причем быстро

(иногда объекты вообще не создаются и ошибок ни каких не выдает терминал)

При закрытии терминала и его включении - вылетает 400 ошибок 4200 - объект уже существует.

Закрытие терминала не вызывает OnDeinit ???

И как мне ручками удалить 400 объектов? Добавить кнопку "удалить все объекты" с текущего графика наверняка предлагали?

(п.с. Уважаемые разработчики, порядок создания объектов будет исправлен в ближайшее время (месяц)?

чтобы зависимость порядка была нет от имени, а от того как в коде создаются)

// alexey_pak спасибо, не знал что Сtrl + A работает в "список объектов"

 

Коллеги! При компиляции выдается предупреждение:

possible use of uninitialized variable 'PipStep'

для такого куска:

      PipStep = NormalizeDouble(InitPipStep * MathPow(PipStepExp, BuyOrders - StartDynStep + 1),0);
      LastBuyPrice = FindLastBuyPrice();
      if(Ask < LastBuyPrice - (PipStep * Point))//для ЭТОЙ строки выдало possible use of uninitialized variable 'PipStep' 

Все переменные инициализированы как double, что ему не нравится?

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