Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5 - страница 98

 

В мт 5 1968 всплывает ошибка 4001 Неожиданная внутренняя ошибка  при смене шаблонов с помощью советника

тот же код в мт 4 работает без ошибок

 

Запускаю дебаг через CTRL+F5. Затем выхожу из него через SHIFT+F5. Повисают Визуализатор и ME.

ME возвращается к жизни, если убить повисший Визуализатор. Воспроизводится в 100% случаев - 1969.


Смог дождаться отвиса Визуалиазатора. В нем такой лог

2019.01.10 08:45:11.800 2018.10.20 00:00:00   debugging terminated
2019.01.10 08:45:11.800 OnInit critical error
2019.01.10 08:45:11.800 tester stopped because OnInit failed
2019.01.10 08:45:11.806 shutdown tester machine
2019.01.10 08:45:11.806 try to cancel expert execution
2019.01.10 08:45:11.807 expert execution canceled
2019.01.10 08:46:11.808 cannot stop tester process [0, 0]
2019.01.10 08:46:11.809 agent shutdown forced


Код для воспроизведения

int OnInit()
{
  DebugBreak();

  return(INIT_FAILED);
}
 
Компилятор не ругается на такую запись
int Tmp = 1 + + 1;

Не ошибка?

 
fxsaber:
Компилятор не ругается на такую запись

Не ошибка?

не ошибка, если так написать:

int Tmp = 1 + - 1;

то результат = 0, а в Вашем примере результат =2

т.е. компилятор учитывает пробелы как разделители, если бы написали в коде вот так:

int Tmp = 1 ++ 1;

то получите ошибку, т.к. ++ это инкремент будет, а для второй цифры 1 нет теперь операции

 
Igor Makanu:

не ошибка, если так написать:

то результат = 0, а в Вашем примере результат =2

т.е. компилятор учитывает пробелы как разделители, если бы написали в коде вот так:

то получите ошибку, т.к. ++ это инкремент будет, а для второй цифры 1 нет теперь операции

Спасибо за пояснение. Однако, этому уже сложно найти объяснение

int Tmp = 1 + - + - + + 1;
 
fxsaber:

Спасибо за пояснение. Однако, этому уже сложно найти объяснение

Да ничего сложного. Компьютер это идиот. © М. М. Ботвинник.

Ему сказали сменить знак числа, он будет менять его и никогда не одуреет от этого. А мозг человека фигеет от такого.

 
Alexey Viktorov:

сказали сменить знак числа

Понял, спасибо.
 


С каких времен определены (вопрос разработчикам)

void A::operator =( const A& );
void A::operator =( const A* );

и как они работают? Следующий компилируемый код выглядит бредово

    A* b = NULL;    
    m_A[1] = b;    


И здесь ситуация не ясна

A* m_A[2];

void OnStart()
{
A a;

    m_A[0] =a;  // Почему это работает?
    m_A[0] =&a; // Когда должно работать только это?
}
 
Maxim Dmitrievsky:
все равно каст. символ смещаетс иногда на 1-3 бара (пропускает их), если вручную обновить график то все восстанавливается. На автомате этого не происходит

Вы имеете в виду синтетику, рассчитывающуюся по формуле?

Не могли бы Вы поделиться формулой, к какому серверу подключаетесь, чтобы мы смогли воспроизвести проблему

 
threat:

win7 64, mt5 1968 после этого билда все открепленные графики поломались:

все индикаторы отображаются с минутной задержкой или не отображаются вообще,

объект chart не отрисовывается

обработчики событий нажатий кнопок не работают

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


Как откатить на предыдущий билд?

В комплекте поставки в примерах индикаторов есть SimplePanel.

Этот пример тоже не работает?

Второй вопрос. Как только Вы прикрепляете график обратно, всё начинает работать?

Какая у Вас операционная система?

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