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

 
Maxim Kuznetsov #:

ЕБВЕБВЮ используется терминалом чтобы отображать "красивости" в отчётах, маркет и сигналы..И возможно даже чарт

это кусок интернет-эксплорер, со всеми его последствиями

почему его обновления оказались у вас в каталогах терминала - мне например непонятно. Возможно системный Edge у вас старый, или антивирь (или вирь) чего-то не позволил или с файловой системой беда наступает

в каталоге терминала этого быть не должно, можете удалять

PS/ вариант что установлены роботы-скрипыт-плагины, которые используют DLL и они это дело наворотили..

Удалял - они появляются снова

Но появилась проблема страшнее. На одном терминале:


Видно что открыта позиция Buy, стрелочка Аутотраде стоит. Видно, что цена ушла вверх, прибыль...

Но позиция скрыта и ТП скрыта. В чем дело? Как их сделать видимыми?

Запустил индикатор, показывающий прибыль. Смотрел цвета - все нормально. Вставил шаблон из другого терминала - все напрасно

Помогите, пожалуйста. Трудно без этих линий

 
Konstantin Erin #:

Удалял - они появляются снова

Но появилась проблема страшнее. На одном терминале:


Видно что открыта позиция Buy, стрелочка Аутотраде стоит. Видно, что цена ушла вверх, прибыль...

Но позиция скрыта и ТП скрыта. В чем дело? Как их сделать видимыми?

Может это просто объект мусорный?

 
Artyom Trishkin #:

Может это просто объект мусорный?

О каком объекте речь? Если о стрелочке - там же внизу видно: buy объем цена .... И вот то же на другом терминале

  видна позиция и ТП

Нашел в чем дело. В свойствах графика поставил галочку Показывать торговые уровни - бесполезно. А вот когда в Сервис --> Настройка --> Графики поставил галочку - помогло. Эти галочки обе должны стоять!!!

Удалил Edge - лишние папки исчезли. Пойду спать. Пусть робот работает!

 
В одном случае есть ошибка при компиляции, а в другом - нет:
void OnStart()
{
    string text1 = (string)NULL;  //(1)//нормально
    string text2 =  string(NULL); //(2)//Error: 'NULL' - expression of 'void' type is illegal
}

А какая принципиальная разница между (1) и (2) ?

 
A100 #:
  
    string text1 = (string)NULL;  //(1)//нормально
    string text2 =  string(NULL); //(2)//Error: 'NULL' - expression of 'void' type is illegal

   // Вот такие варианты компилятор принимает    
   string text1 = (string) NULL;
   string text2 = (string)(NULL);
   string text3 =         (NULL);
   string text4 =          NULL;
 
Konstantin Erin #:

Похвально, лишние скобки умеете расставлять - только какое отношение это имеет к моему сообщению ?

Для сведения - ниже тоже нет ошибок:
void OnStart()
{
    string text3 = (string)1;  //(3)
    string text4 =  string(1); //(4)
}
 
A100 #:
В одном случае есть ошибка при компиляции, а в другом - нет:

А какая принципиальная разница между (1) и (2) ?

Явное приведение к типу 1. 2 не явное. 
 
Valeriy Yastremskiy #:
Явное приведение к типу 1. 2 не явное

А в чем заключается неявность, если string справа явно указана, а главное: почему (4) нормально, а во (2) ошибка?

    string text2 =  string(NULL); //(2)//Error: 'NULL' - expression of 'void' type is illegal
    string text4 =  string(1);    //(4)//нормально
 
A100 #:

А в чем заключается неявность, если string справа явно указана, а главное: почему (4) нормально, а во (2) ошибка?

Не знаю, явно это в доках не указано. Для себя сделал такой вывод из практики. Тип в скобках явное приведение уже объявленной переменной, без скобок это объявление переменной или не явное приведение по правилам очередности. Явное приведение компилируется без ошибки, не явное не всегда.  Вообще в стринг должно все перейти и явно и не явно, видимо просто нулл не имеет текстового штатного аналога в МКЛ или нарушаются правила очерёдности пр мнению компилятора) 
 
Valeriy Yastremskiy #:
Не знаю, явно это в доках не указано. Для себя сделал такой вывод из практики. Тип в скобках явное приведение уже объявленной переменной, без скобок это объявление переменной или не явное приведение по правилам очередности. Явное приведение компилируется без ошибки, не явное не всегда.  Вообще в стринг должно все перейти и явно и не явно, видимо просто нулл не имеет текстового штатного аналога в МКЛ или нарушаются правила очерёдности пр мнению компилятора) 

Второе - тоже явное приведение. В справке указано:

Приведение числовых типов

В выражениях языка MQL5 можно использовать как явное, так и неявное приведение типов. Явное преобразование типов записывается следующим образом:

var_1 = (тип)var_2;

В качестве переменной var_2 может быть выражение или результат выполнения функции. Допускается также функциональная запись явного приведения типов:

var_1 = тип(var_2);

Документация по MQL5: Основы языка / Типы данных / Приведение типов
Документация по MQL5: Основы языка / Типы данных / Приведение типов
  • www.mql5.com
Приведение типов - Типы данных - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5