MetaTrader 4. Build 151.

 
MetaTrader 4. Build 151.

1. Исправлена перекомпиляция экспертов.
2. Индикаторные массивы при инициализации обнуляются.
3. Внесены поправки в файл помощи MetaEditor.
4. Исправлена функция модификации отложенного ордера.
5. Исправлено копирование объектов: значение параметров не заменяется значениями по умолчанию.
6. Исправлена визуализация трейлинг-стопов при обновлении уровня.
7. Исправлена работа модуля выбора цвета в диалоге экспертов.
8. Исправлена работа функции deinit().
 
спасибо за 7 и 8.

и вот новые замечания:
окно "навигатор", закладка Избранное - перетаскиваем Эксперта на график - всё нормально. Нажимаем Enter - ничего не происходит, дабл клик мышкой - то же самое. со скриптами - нормально, глючат только эксперты.

и вопрос: можно ли из эксперта запрашивать статус соединения? Чтоб, как минимум, разрыв связи можно было определять..

пока вроде бы всё....
 
За перкомпиляцию спасибо.
Индикаторные массивы ,к сожалению, сохраняют старую информацию, т.е. не обнуляются при смене таймфрэйма ( Period() ) .
 
1. окно "навигатор", закладка "общие" - нажимаем на + напротив Советников, открывается список советников. Если места для отображения не хватает, появляется полоса прокрутки (справа). А если хватает - то полоса всё равно появляется и сразу исчезает. И так раз пять, примерно... В общем, мигает...
2. Библиотека: из одной пользовательской функции попробовал вызвать другую. Критикал еррор уже отправлен :) Отсюда вопрос: можно ли так делать, и, если можно, то как?
 
хелп едитора:
bool ObjectSet(string name,int index,double value)

index   -   Object value index. It can be any one of the Object's properies enumeration values:


ссылка на "Object's properies enumeration" не работает

 
ещё чуть-чуть побаловался с функциями - критикал еррор в пути... а компилёр молчал........

излагаю:
советник вызывает ф-цию из библиотеки. Там чего-то происходит.. в общем, всё хорошо...
вставляем в эту ф-цию вызов другой ф-ции из другой библиотеки. Проверяем Алертами и принтами - всё работает.

Начинаем строить сложную структуру, в итоге получаем:
Эксперт
- вызов ф-ции из библиотеки print
- вызов ф-ции из библиотеки expert
- .......
библиотека expert:
- ........
- вызов ф-ции из библиотеки trade
- ........
библиотека trade:
- OrderSend,
- если успешно - вызов ф-ции из библиотеки print - распечатка информации (посредством ObjectSetText),
- если нет - вызов ф-ции из библиотеки "stdlib" - ErrorDescription.


До того, как перенёс OrderSend с информацией в библиотеку trade, всё было ок. После этого - при установке ордера критикал еррор...обидно, да?

Понимаю, что мог где-то в коде намудрить, поэтому только один вопрос:
- Есть ли какие-либо ограничения на вызов ф-ций из ф-ций?
 
немножко разобрался:

Comment в OrderSend --- если задать какой-нибудь "asd" (т.е. любую string переменную) - критическая ошибка, МТ "вылетает". А если задать НЕ-string (1, например), то в логе просто пишется, мол, только стринг можно.

Получается, что переменную в комент ставить нельзя, надо "ручками" вводить.
Кстати, если задать string comment_tmp = NULL; а потом пытаться вставить в OrderSend, то говорит, что comment_tmp не того типа....
 
плохие новости....
ещё некорректно передаются: дата истечения ("datetime expiration=0") и MagicNumber ("int magic=0").
та же история.....
 
Проблемы с окном навигатор, если выделить индикатор или эксперт и.т.п., и быстро два раза щелкнуть по + (не в том разделе в котором выделили) то появляется косяк.
 
у меня сединение с инетом иногда глючит, так вот в эти моменты МТ иногда зависает и если был свернут то не разворачивается,
а если развернут - то просто висит.

в ранних версиях также самое
 
индикаторные массивы действительно не обнуляются при смене таймфрейма. видимо, придётся делать функцию InitializeIndexBuffer, которая будет прописывать индикаторный массив значениями empty value
Причина обращения: