Ошибки, баги, вопросы - страница 1435

 

Сначала думал, что это проблема моих индикаторов, а потом понял - всё глючит.

Загружаю терминал - история котировок остаётся старая (прошлой сессии как будто бы не было) и история не обновляется автоматически.

Цена старая, а буферы индикаторов почему-то показывают прошлый расчёт (новых цен).

Когда рынок открыт, "хрень" обновляется (видимо на новом тике) и всё становится нормально.

Когда рынок закрыт, можно созерцать "на выходные" "мусор" из буферов если принудительно не обновить котировки.

Для наглядности прикрепляю график со стандартным SMA из набора индикаторов MT5:

Стандартный индикатор для примера

Билд 2010, да и на старых было аналогично.

 

Что произошло с МТ5?

с утра встал и не работает ни один советник в тестере стратегий... не открываются позиции...

вчера вечером все работали... а сегодня более 10 советников перестали функционировать

как старые, так и новые 

 

Ошибка компиляции: code generation error 

class A { public:
        void g() {}
};
struct B {
/**/    virtual void f() { g(); }
        virtual void g() {}
};
A *f() export { return new A(); }
void OnStart()
{
        f().g();
}
Если например убрать export или закомментировать строку /**/ то она(ошибка) исчезет, а значит компилятор нуждается в доработке.
 

Что за мания у здешних веб-креативщиков менять имена файлов во вложениях?

Отправляю человеку скомпилированный индикатор с требуемым названием IndicatorCAF.ex4. Во вложении "умный сайт" переписывает название как ему нужно: Indicator0AF_01.ex4

Скажите - зачем? Какой практический в этом смысл? В чём истина сермяжная? Ну ладно не понимает русских названий и переименовывает их как заблагорассудится - тут ещё можно понять. Но зачем менять имя файла, написанное по-английски на иное по каким-то своим принципам? Это же имя, а не исчисление...

Выбираю IndicatorCAF.mq4


Имя прикреплённого к сообщению верное: IndicatorCAF.mq4


Отправляю сообщение и, вуаля...

При этом зачем-то _01 добавил к прошлому ex4-файлу (с которого у меня и появились вопросы)...

Ладно бы я уже прикладывал такой файл с таким именем - понятно, но это первый файл. Не было в переписке таких имён ещё.


И что ещё забавно - файл ex4, скомпилированный в моём MetaEditor Version: 5.00 build 1214 12 Nov 2015 не выводит графические объекты в терминале человека, которому даю этот файл. У него тоже терминал МТ4, билд 910 и редактор тоже MetaEditor Version: 5.00 build 1214 12 Nov 2015.

Исходник же индикатора, скомпилированный им у себя, нормально создаёт исполняемый файл, который верно работает у него в терминале.

Что за ошибки такие?

И тогда напрашивается очевидный вопрос: как будут вести себя программы, скомпилированные в моём редакторе для маркета? Билд терминала 910, но он несовместим с ранними версиями из-за нового компилятора. Будут ли работать программы в маркете, скомпилированные в моём редакторе?

 

Почему такое низкое качество этого значка из terminal.exe ? Он же используется для отображения всех .ex5 в файловой системе

  (3-ий по счету из terminal.exe, если нумерация с 1) 

Остальные то значки - нормального качества, например 

(1-ый) и(последний)

 

Ошибка компиляции: tree optimization error

#property library
class A {};
A *f() export { return new A; }
void g() {}
int h( int a, int b ) { return b; }
class B {
       virtual int function() { return h( int(g()), 1 ); }
};

А если убрать ключевое слово virtual

class B {
              int function() { return h( int(g()), 1 ); }
};
то - нормально. А как оно повлияло?
 
A100:

Ошибка компиляции: tree optimization error

А если убрать ключевое слово virtual

то - нормально. А как оно повлияло?
??? я что то проспал? теперь можно методы тоже экспортировать? А классы для экспорта так же доступны?
 
coderex:
??? я что то проспал? теперь можно методы тоже экспортировать? А классы для экспорта так же доступны?

Какая строка свидетельствует об экспорте метода? Указатель всегда можно было вернуть. f() - не метод класса - это функция сама по себе.

Кроме того речь об абстрактной ошибке 'tree optimization error' не привязанной к конкретной строке, что само по себе ошибка. А если к тому же она устраняется простой "перестановкой строк" (убиранием ключевого слова virtual) - то это - ошибка вдвойне.

 
A100:

Какая строка свидетельствует об экспорте метода? Указатель всегда можно было вернуть. f() - не метод класса - это функция сама по себе.

Кроме того речь об абстрактной ошибке 'tree optimization error' не привязанной к конкретной строке, что само по себе ошибка. А если к тому же она устраняется простой "перестановкой строк" (убиранием ключевого слова virtual) - то это - ошибка вдвойне.

опечатался, по поводу метода, хотел написать объект класса (все таки ночь :) )

A *f() export { return new A; }

и я не оспариваю написанное Вами я просто удивился увиденному, т.к. в справке про экспорт указано только в отношении функций, а оказывается можно и объекты экспортировать.
 

 
BaTTLeBLooM:

Что произошло с МТ5?

с утра встал и не работает ни один советник в тестере стратегий... не открываются позиции...

вчера вечером все работали... а сегодня более 10 советников перестали функционировать

как старые, так и новые 

Опишите проблему более подробно. Какой билд, какая ос, битность ? Что в логах тестера?
Причина обращения: