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

 

Не могу валидацию пройти, у меня мувинга даже нету, на который он указывает.

 

Если открыть график с символом первый раз, почему запрос месячных баров через CopyTime() в МТ4 занимает меньше 0,05 сек., а в МТ5 - полминуты и более ?

Или что я не так делаю?

Код прикрепляю, ниже ссылка на видео с демонстрацией:

https://drive.google.com/file/d/10HyBpWsuoocCYIkInycDChzpDkaALNWY/view?usp=sharing


МТ4  (b1355)

МТ5 (b3280)


Файлы:
 
Vasiliy Pushkaryov #:

Когда я впервые открываю график с символом, почему запрос месячных баров через CopyTime() занимает менее 0,05 секунды в MT4, но полминуты или больше в MT5?

Или что я делаю не так?

Я прилагаю код, а ниже - ссылку на видео с демонстрацией:

https://drive.google.com/file/d/10HyBpWsuoocCYIkInycDChzpDkaALNWY/view?usp=sharing


MT4 (b1355)

MT5 (b3280)


Я предполагаю, что в MT4 все бары (m1 - mn1) явно доступны локально, но в MT5 доступны только цены M1, из которых должны быть сгенерированы/вычислены месячные бары.

 
Carl Schreiber #:

Я предполагаю, что в MT4 все бары (m1 - mn1) явно доступны локально, но в MT5 доступны только цены M1, из которых должны быть сгенерированы/вычислены месячные бары.

У меня обе платформы установлены меньше недели назад, символом XAGUSD, до того как снять видео, я не пользовался ни там ни там.

Просто МТ5 позиционируется как более новый и быстрый терминал. Хотелось бы понять, как можно заставить работать МТ5 так же быстро как это делает МТ4. На другом символе копируется 281 месячный бар, в МТ4 скорость такая же - менее 0,05 сек., на МТ5 уже около 50 сек.

 
Valeriy Yastremskiy #:
В мануале ошибка в примере

Поправили, спасибо!

 
Будет ли разумным добавить папку "Shared Projects" в пути поиска включения по умолчанию?

При включении из такого проекта путь должен предваряться "../", что немного сбивает с толку.

Разве это не имеет смысла?
 

К сожалению и сюда добралась "модная" деградация языка. 

"Копируем" подразумевает именно производимое  в данный момент  действие и совместно с кем-то, а не общее описание действия.

Еще несколько лет назад здесь было-бы логически правильное "сколько копировать".

 

Bug MT5 (build 3280), не понятно почему выбор перегружаемой функции зависит от "истории происхождения" аргумента Container, который ни коем образом в самой перегрузке участия не принимает.
Потратил более 3-х часов, проблему удалось локализировал, однако, все равно получилось не то, что было с самого начала.
Изначально баг был еще коварнее - только при использовании l-value указателей, сейчас же в примере воспроизводим для l-value и r-value указателей.

class input_iterator_tag{};
class forward_iterator_tag       : public input_iterator_tag         {};
class bidirectional_iterator_tag : public forward_iterator_tag       {};
class random_access_iterator_tag : public bidirectional_iterator_tag {};


struct It{
   char data[10];
};

template<typename _It>
struct wrapper : public _It{};

struct main_It : public wrapper<It>{};


class Base{
public:
   struct iterator : public main_It{};
};
   
class Container
{
public:   
   struct iterator : public Base::iterator{};
};


template<typename _InputIterator1> 
void __find_end (const wrapper<_InputIterator1> &_first1, 
      input_iterator_tag*, input_iterator_tag*)
{
   printf("input_iterator_tag\r\n");
}   
template<typename _BidirectionalIterator1> 
void __find_end (const wrapper<_BidirectionalIterator1> &_first1, 
      bidirectional_iterator_tag*, bidirectional_iterator_tag*)
{
   printf("bidirectional_iterator_tag\r\n");
}  
template<typename _RandomAccessIterator1> 
void __find_end (const wrapper<_RandomAccessIterator1> &_first1, 
      random_access_iterator_tag*, random_access_iterator_tag*)
{
   printf("random_access_iterator_tag\r\n");
}  


void OnStart()
{   
   bidirectional_iterator_tag* bidirectional_tag = NULL;
   random_access_iterator_tag* random_access_tag = NULL;
   
   Container::iterator container;
   // r-value pointers
   __find_end(container, (bidirectional_iterator_tag*)NULL, (bidirectional_iterator_tag*)NULL);   // BUG: input_iterator_tag          //expected value: bidirectional_iterator_tag
   __find_end(container, (random_access_iterator_tag*)NULL, (random_access_iterator_tag*)NULL);   // BUG: bidirectional_iterator_tag  //expected value: random_access_iterator_tag
   
   // l-value pointers
   __find_end(container, bidirectional_tag, bidirectional_tag);   // BUG: input_iterator_tag           //expected value: bidirectional_iterator_tag
   __find_end(container, random_access_tag, random_access_tag);   // BUG: bidirectional_iterator_tag   //expected value: random_access_iterator_tag
}
C++ online: https://onlinegdb.com/pCjzGFT8p
 

По мне так 3577 будет меньше 3600 :))

Это описание к библиотеке.

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

Почему до сих пор нету возможности прикреплять исходники в маркете для библиотек? Там ведь, как минимум, нужен включаемый файл с экспортом библиотечных функций, и примеры использования. Или дайте такую возможность, или увеличьте количество символов для описания, а так в обсуждении публиковать приходится.

 
Друзья, а как округлить 1.1284399, до 1.12844? NormalizeDouble не помогает