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

 

Здравствуйте, коллеги.

Возможно я не первый задаю этот вопрос. Писал в другую ветку, но ответа разработчиков не получил. Почему при реальной стоимости пункта на XAUUSD - 1USD

Функция SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE); упорно показывает 0.1USD

И как при этом считать просадку, прибыль, и прочие вещи, в то время как на валютных парах показывает нормальную стоимость тика.

З.Ы. Терминал МТ5

 
Andrey Kaunov:

Здравствуйте, коллеги.

Возможно я не первый задаю этот вопрос. Писал в другую ветку, но ответа разработчиков не получил. Почему при реальной стоимости пункта на XAUUSD - 1USD

Функция SymbolInfoDouble(_Symbol,SYMBOL_TRADE_TICK_VALUE); упорно показывает 0.1USD

И как при этом считать просадку, прибыль, и прочие вещи, в то время как на валютных парах показывает нормальную стоимость тика.

З.Ы. Терминал МТ5

Это Вы у своего брокера спрашивайте, эти данные заполняет брокер...

 
Баг MT5 (build 2366),  ошибка компиляции при доступе к статическому методу класса, доступ к которому осуществляется через шаблонный тип аргумента функции.

template<typename _Tp>
struct It_g{
   class Opt{
      template<typename _It>
      static void test(_It &it){               
         _Tp p = it.p;                  
      };
   };
   
   _Tp p;
};

template<typename _Tp>
class V{
public:
   struct It : public  It_g<_Tp>{};
   It b;
};


template<typename T>
class GetStructType{
public:
   struct type : public T{};
};

template<typename _It>
void test(_It &it){
   GetStructType<_It>::type::Opt::test(it);   // Ok
   
   _It::Opt opt;
   opt.test(it);                              // Ok
   
   _It::Opt::test(it);                        // '_It' is not a class, struct or union | 'Opt' is not a class, struct or union
}

class ClassA{};


void OnStart(){ 
   V<int> v1;
   test(v1.b);
   
   V<ClassA*> v2;
   test(v2.b);
   
   V<int>::It it3;
   test(it3);
   
   V<ClassA*>::It it4;
   test(it4);
}
 
Баг MT5 (build 2366),  ошибка компиляции из-за некоректного использования пространства имен и области видимости в шаблонном конструкторе при вызове базового класса.
Проблема возникает, когда используется одно и то же имя класса: в глобальном пространстве имен, в internal class и при наследовании в качестве базового класса.

template<typename T>
struct B{
   char data;
   
   B(){}
   B(int){}
};


template<typename T>
class A{
public:
   struct __reverse_iterator : public B<T>{
      __reverse_iterator() : B<T>(1){}                 // Ok
      
      template<typename TT>
      __reverse_iterator(const TT& n) : B<T>(n){}      //'<' - template mismatch
   };
   
   struct B : public __reverse_iterator{
      B() : __reverse_iterator(){}
      B(int n) : __reverse_iterator(n){}
   };
};

   
void OnStart(){  
   A<int>::B it_1();      // Ok
   A<int>::B it_2(1);     // Compile Error
}


В С++ все работает, если явно сослаться на глобальное пространство имен. С++ online: https://onlinegdb.com/BJIV6frUI
В MQL этого сделать нельзя - Compile Error, баг при определении internal class - отсутствует возможность явно сослаться на глобальное пространство имен при указании базового класса. (не исправлено  MT5(build 2366))   

Так же проблем в конструкторе при вызове базового класса касается представленный ранее баг - https://www.mql5.com/ru/forum/1111/page2680#comment_15546487
Прошу обратить внимание, что он "работает" как при использовании пространства имен, так и с internal классами.

 
Vladimir Pastushak:

Это Вы у своего брокера спрашивайте, эти данные заполняет брокер...

Ясно, спасибо Владимир.

 

Стакан не работает в тестере? - ничего не нашел по этому вопросу в справке.

Подписка на стакан MarketBookAdd (Symbol ()) выдает true, но событие OnBookEvent (const string &symbol) не приходит ни разу за весь тест.

 
Andrey Dik:

Стакан не работает в тестере? - ничего не нашел по этому вопросу в справке.

Подписка на стакан MarketBookAdd (Symbol ()) выдает true, но событие OnBookEvent (const string &symbol) не приходит ни разу за весь тест.

Не работает. И истории стакана нет.

 

кто-нибудь подскажет, что за ошибка 533?

предположил, что версия, где скомпилировано новее - попросил обновить. не помогло.

 
Igor Zakharov:

кто-нибудь подскажет, что за ошибка 533?

предположил, что версия, где скомпилировано новее - попросил обновить. не помогло.

Нарушена целостность ex5.

Откуда у Вас этот ex5?

Более подробно сможет ответить Ильяс, если Вы ему отошлёте этого эксперта

Ilyas
Ilyas
  • www.mql5.com
Профиль трейдера
 
Slava:

Нарушена целостность ex5.

Откуда у Вас этот ex5?

Более подробно сможет ответить Ильяс, если Вы ему отошлёте этого эксперта

скомпилировал в билде 2361. на том терминале, где скомпилировано - работает. отправил скайпом другому человеку, чтоб попробовал (без исходника) - ошибка 533.

отослать именно тот не могу - загрузил 2366 и перекомпилировал вновь (с тем же именем). результат пока не знаю, не ответили мне.

добавлено: в скайпе он сохранился. отправлю.

добавлено2: перекомпиляция в 2366 вызывает ту же ошибку. Ильясу отправил исходник и компилированный

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