Выпущен MetaTrader 4 Client Terminal build 600 с обновленным языком MQL4 и Маркетом приложений - страница 64

 
mql5:

Спасибо за сообщение, ошибка в оптимизаторе компилятора. Исправляем.
В вашем случае ошибка проявилась из-за того, что вы модифицируете строковой параметр source внутри функции.
Так же ошибка связана с тем, что происходит инлайнинг функций, который не работает при компиляции под отладку.


да, я в курсе, что некорректно работает передача параметра в функцию передается значение по значению, а работает так, как-будто передача была по ссылке
 
ANG3110:
Спасибо. Я бегло глянул, много там всего, а там есть типа аналога ChartIndicatorAdd - где пишешь имя, параметры кастомного индикатора, и он без панели настройки индикатора сразу выбрасывает его на график?

Полного аналога нет. Окно свойств автоматически закрывается при соответствующем значении параметра функции.

Параметры индикатора не передаются. Используются те, что по умолчанию.

 
GSB:

В 605 ChartIndicatorAdd() уже есть

Разработчики, я ввел людей в заблуждение.

Действительно в Справке 605 функция ChartIndicatorAdd() есть а редактор пишет что нет.

 

У экспертов, скомпилированных старым компилятором (509 билд), при смене тайм-фрейма обнуляются глобальные переменные.
Проще говоря, все данные и настройки которые эксперт накопил на момент смены тайм-фрейма будут удалены.

При компиляции эксперта новым компилятором, такой проблемы нет.


Шаги для воспроизведения проблемы:

1. Создаю эксперт с кодом:
 int g;
 int init()
 {
    Print(" g = ", g);
    g = 1;
    return(o);
 }
 
 int deinit()
 {
    g = 2;
    return(o);
 }

2. Компилирую старым компилятором (509 билд)

3. Запускаю эксперт в старом МТ (509 билд) -->> Print выдаст "g = 0"
4. Меняю тайм-фрейм -->> Print выдаст "g = 2"

5. Запускаю эксперт в новом МТ (604 билд) -->> Print выдаст "g = 0"

6. Меняю тайм-фрейм -->> Print выдаст "g = 0"


Почему это проблема:

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

1. Часто эксперты продаются без исходных кодов и связь с разработчиком может быть потеряна(или это будет стоить $).
В этом случае наносится ущерб обычным пользователям.

2. При компиляции эксперта новым компилятором, обратная совместимость с старым терминалом теряется.
Это значит что перекомпилированный эксперт не будет работать на старых платформах(509), получается будут две версии эксперта. Что повлечёт за собой, ошибки установки экспертов у простых пользователей, которые не разбираются в деталях.

 
В связи с переходом MT на Unicode строки, при вводе символа в числовой форме больше 128(например русского) например так: "\xAF" (hex:AF dec 175) символ отображается неверно.
И хуже всего то, что ошибки компиляции не просходит, а просто символы отображаются не верно. Ведь в юникоде этот символ уже будет с значением U+00D8.

На С/C++ этот символ записывается так: "\uD8", в MQL4(5) такой возможности нет.
Кроме того, если указать "\xD8" то всё-равно символ будет не тот.

Подскажите, как выйти из этой ситуации ?
 

Вечер добрый.

имеется следующая проблема, которая выявлена на нескольких машинах *windows 7 pro, 8 64 bit)

после установки нового терминала, 604 билд от альпари, и копированием в него советников и необходимых библиотек, в папку MQL, запускаем терминал. Устанавливаем советника - все ок.

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

пробовал уже с разными ключами /portable и без

терминал переустанавливал

запускал от админа, режимы совсестимости ставил

Спасибо

Ps: у других работает

 
Insight:
В связи с переходом MT на Unicode строки, при вводе символа в числовой форме больше 128(например русского) например так: "\xAF" (hex:AF dec 175) символ отображается неверно.
И хуже всего то, что ошибки компиляции не просходит, а просто символы отображаются не верно. Ведь в юникоде этот символ уже будет с значением U+00D8.

На С/C++ этот символ записывается так: "\uD8", в MQL4(5) такой возможности нет.
Кроме того, если указать "\xD8" то всё-равно символ будет не тот.

Подскажите, как выйти из этой ситуации ?
Может преобразовать надо?
// Возвращает значение символа, расположенного в указанной позиции строки.

ushort  StringGetCharacter(
   string  string_value,     // строка
   int     pos               // позиция символа в строке
   );
 
 
TarasBY:
Я О-О-О-чень давно не пользовался котировками от Metaquotes, а именно их вы собирались себе загрузить, если прочитали соответствующее сообщение. Предполагаю, что инструменты у разработчика пишутся без префиксов, а у Робофорекса (ДЦ в котором у вас открыт счёт) есть префикс ".m". Скорее всего, именно несоответствие в написании символов не даёт грузить историю. А 2048 баров - это бары от Робофорекса, которые загружаются автоматически (по умолчанию).

Возможно такая ситуация из за префикса .m, но у меня точно такая же ситуация и у альпари,там открыт реальный счет. В техподержке ответили что наблюдается такая проблема и связана с тем что прописаны неверные пути для обращения к server history. Сказали тупо ждать вопрос решается и с последующим обновление должны исправить. Еще интересно у альпари у одних уже 604 build ?

А какими котировками пользуетесь вы ? откуда можно подгрузить историю

 
neon51r:

Вечер добрый.

имеется следующая проблема, которая выявлена на нескольких машинах *windows 7 pro, 8 64 bit)

после установки нового терминала, 604 билд от альпари, и копированием в него советников и необходимых библиотек, в папку MQL, запускаем терминал. Устанавливаем советника - все ок.

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

пробовал уже с разными ключами /portable и без

терминал переустанавливал

запускал от админа, режимы совсестимости ставил

Спасибо

Ps: у других работает

Добрый день. На какой чарт (символ, период) устанавливаете советника ? Приложите, пожалуйста, советника и логи терминала.
 
genek240891:

Возможно такая ситуация из за префикса .m, но у меня точно такая же ситуация и у альпари,там открыт реальный счет. В техподержке ответили что наблюдается такая проблема и связана с тем что прописаны неверные пути для обращения к server history. Сказали тупо ждать вопрос решается и с последующим обновление должны исправить. Еще интересно у альпари у одних уже 604 build ?

А какими котировками пользуетесь вы ? откуда можно подгрузить историю

Не стоит экстраполировать одну ситуацию на другую. Я делал предположения по вопросу скачивания истории с сервера Metaquotes. Про ситуацию с сервером Альпари я уже слышал.

История - истории рознь. Предпочтительно (имхо) использовать историю сервера, на котором открыт свой счёт. А так можно (есль гугль не сломан) поискать по фразе "архив котировок", например, здесь.

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