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

 

В ленте нет возможности получить ссылку на запись. Например, чтобы оставить в закладках.

 
fxsaber:

В ленте нет возможности получить ссылку на запись. Например, чтобы оставить в закладках.

https://www.mql5.com/ru/users/fxsaber#profileMessage_6131695 - оно?
 

Да, но штатного способа получить ссылку не вижу.

 
   long a=132;
   if(a>-9223372036854775808)
     {Print("а прошла проверку на  > INT64_MIN");}
   else{Print("а НЕ прошла проверку на  > INT64_MIN");}

   if(a<-9223372036854775808)
     {Print("а прошла проверку на < INT64_MIN");}
   else{Print("а НЕ прошла проверку на < INT64_MIN");}

   if(a!=-9223372036854775808)
     {Print("а прошла проверку на != INT64_MIN");}
   else{Print("а НЕ прошла проверку на != INT64_MIN");}

Результат

2019.05.14 11:49:13.574 check (EURUSD,M5)       а НЕ прошла проверку на  > INT64_MIN
2019.05.14 11:49:13.574 check (EURUSD,M5)       а прошла проверку на < INT64_MIN
2019.05.14 11:49:13.574 check (EURUSD,M5)       а прошла проверку на != INT64_MIN


Точно так должно быть ?

 

Всем привет.

В последних билдах начала появляться такая ошибка:

2019.05.14 13:03:50.526 EURUSD: history data load error
2019.05.14 13:03:50.528 EURUSD,M5: history cache allocated for 101454 bars and contains 74274 bars from 2018.01.02 09:00 to 2018.12.31 20:55
2019.05.14 13:03:50.528 EURUSD,M5: history begins from 2018.01.02 09:00
2019.05.14 13:03:50.533 history error 9 in undefined function
2019.05.14 13:03:50.533 stopped on 0% of testing interval with error '03 EURUSD'


при чем через раз. 

что это может значить? 

 
Alexey Klenov:

Результат

Точно так должно быть ?

Если копнуть поглубже там несколько таких противоречий:
void OnStart()
{
        Print( typename( LONG_MIN             ),             LONG_MIN ); //(1)
        Print( typename( -9223372036854775808 ), -9223372036854775808 ); //(2)
        Print( typename( -9223372036854775807 ), -9223372036854775807 ); //(3)

        Print( typename( INT_MIN              ),              INT_MIN ); //(4)
        Print( typename( -2147483648          ), -2147483648          ); //(5)
        Print( typename( -2147483647          ), -2147483647          ); //(6)
}

Результат:

long  -9223372036854775808
ulong 9223372036854775808
long  -9223372036854775807

int    -2147483648
long  -2147483648
int    -2147483647

А чем принципиально отличаются между собой (1)(2)(3) и (4)(5)(6) соответственно?

 
Просьба разработчикам в ME нажать CTRL+SHIFT+F и набрать "MQL5Info". В полученных файлах СБ поправить найденные рудименты.
 
2 часа убил на то, что бы выделить проблему с кода проекта.
#define PRINT(x) Print(#x, ":", string(x))

template<typename DATA_TYPE>
struct Wrapper{
   uchar type;
   DATA_TYPE data;
   
   template<typename T>
   void operator=(T value){                  // при замене данной строки на "void operator=(T &value){" происходит перезапись оператора присвоения в классе наследнике B (код не компилируется).
      this.data = value;   
   };
   
   void operator=(DATA_TYPE &_data){
      this.data = _data;   
   };
};

struct A{
   string data;
   
   void operator=(string value){
      data = value;
   };
};

struct B : Wrapper<A>{};


void OnStart(){  
  B b;
  
  string str_value;
  b = str_value;
  
  A a;
  b = a;
  
  B b1;
  b = b1;
}


Используя приведенный код все работает как и ожидалось,
однако если попытаться расширить функционал и добавить поддержку не только простых типов как (string) из класса A, но и структур,
то окажется, что шаблонный оператор присвоения из базового класса начинает перекрывает дефолтные операторы присвоения классов наследников, наглухо убивая весь функционал.
В качестве workaround-а можно использовать другие операторы, например "operator*=", но это не дело.


Разработчикам:
Прошу добавить возможность указания принудительной генерации кода для оператора присвоения (конструктор копирования) по умолчанию:
class_name & class_name :: operator= ( const class_name & ) = default;  
class_name & class_name :: operator= ( const class_name & ) = delete;   
 

Подскажите, если я в советнике использую стандартные индикаторы, например iMA, 

как задать им стили рисования, чтобы правильно отображались в окне визуализации?

 
Игорь Евдокимов:

Подскажите, если я в советнике использую стандартные индикаторы, например iMA, 

как задать им стили рисования, чтобы правильно отображались в окне визуализации?

Вот так: Custom Moving Average Input Color