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

 
Ilyas #:

Проблема не в ОС, а в 49.7 днях непрерывной работы (кто знает тот поймёт).

https://www.mql5.com/ru/docs/common/gettickcount

Счетчик ограничен разрешающей способностью системного таймера. Так как время хранится как беззнаковое целое, то он переполняется каждые 49.7 дней при непрерывной работе компьютера.
 
Ilyas #:

Потому, что C++ генерирует конструктор копирования по умолчанию, а MQL5 нет (пока/до сих пор).

Т.к. в вашем коде отсуствует конструктор копирования, то для возвращаемого объекта из "оператора копирования", вызывается: "конструктор по умолчанию" + "оператор копирования".

Получается рекурсия:
"оператор копирования" = "конструктор по умолчанию" + "оператор копирования".

А почему тогда для struct компилятор не сообщает, что отсутствует конструктор копирования,

а для class - есть такое сообщение:

class A {
public:
    A operator=(const A&) { return this; } //Errror: object of 'class A' cannot be returned, copy constructor 'A::A(const A &)' not found
};
void OnStart()
{
    A a1, a2 = a1;
}
 

Выпустили версию 4232 с исправлением вывода комментов на компьютерах, работающих более 49 дней подряд.

Сегодня билд 4232 выложим в релиз.

 
MetaQuotes #:

Выпустили версию 4232 с исправлением вывода комментов на компьютерах, работающих более 49 дней подряд.

Сегодня билд 4232 выложим в релиз.

Благодарю, ошибки 4201 больше не наблюдаю...

 
Nikolai Semko #:
Не нашел на форуме реализации закачки истории символа через таймер с контролем текущего состояния в процентах(ведь объем закачки при макс. баров = Unlimited, достигает сотни Мб). Может кто подскажет, если плохо искал?
Не для себя (спрашивают в англоязычной части форума), т.к. у меня есть рабочая реализация подобного, но она интегрирована в сложный класс формирования внутренних данных для моих специфических задач. А сделать это универсальным отдельным классом для CodeBase пока руки не дошли. 

В пятерке проще всего открыть чарт с месячным таймфреймом, и он все сам закачает. 

 
Andrey Khatimlianskii #:

В пятерке проще всего открыть чарт с месячным таймфреймом, и он все сам закачает. 

Речь о том, чтобы программно контролировать процесс закачки с получением события полной 100% загрузки данных.
 
Vladimir Pastushak #:

Благодарю, ошибки 4201 больше не наблюдаю...

Подтверждаю.

 

Есть код

//+------------------------------------------------------------------+
//|                                                 Tree_K-Means.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property link      "https://www.mql5.com/ru/users/-aleks-"
#property version   "1.00"
#property script_show_inputs
#property strict
#include <Math\Alglib\alglib.mqh>

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
   CMatrixDouble MatrixTest;
   MatrixTest.Resize(10, 10);
   MatrixTest[0].Set(0,15.0);
   double Get_M=MatrixTest[0][0];
   Print("Get_M=",DoubleToString(Get_M,2));
}

Почему получаю ноль для Get_M, а не 15?

2024.03.12 03:42:52.001 Tree_K-Means_Test (USDJPY,H1)   Get_M=0.00
 
Andrey Khatimlianskii #:

В пятерке проще всего открыть чарт с месячным таймфреймом, и он все сам закачает. 

Всё-таки как не разумно реализовано хранение загруженных котировок в МТ5!
Если я открыл чарт с месячными барами( от силы несколько сотен бар), то у меня на SSD будут сформированы hcc файлы размером примерно пол гигабайта, которые по сути представляют Всю историю М1, но при этом у меня нет доступа к этим минутным барам программно, если у меня (у юзера) не установлено unlimited баров.
Более того, если я даже установлю unlimited, то сформируются на диске ещё пол гигабайта только для М1, по сути дублируя hcc файлы. 
Наверное сама закачка осуществляется через упакованный формат( не уверен, надо проверить), но судя по размеру hcc файлов и размера структуры MqlRates (60 байт на один бар) hcc файлы не упакованы.Хотя их легко можно упаковать в раз 5-7. Т.е. вместо 500 Mb, на диске будет храниться  только 70-100 Mb на один символ. Современные SSD прочитают 500 Mb примерно за 100-200 миллисекунд. Уверен, что этого времени хватит, чтобы прочитать 100Мб и распаковать их в ОЗУ в массив MqlRates  размером ~500 Mb. Тогда просто можно сэкономить многие гигабайты места на SSD у каждого юзера МТ5 без потери производительности. Если используется HDD,  тогда тем более, т.к. на них время чтения больше.
Как можно так неуважительно относиться к чужому дисковому пространству!
 
Aleksey Vyazmikin #:

Есть код

Почему получаю ноль для Get_M, а не 15?

О как бывает - за ночь поправили синтаксис теперь присваивать значение надо так

MatrixLearn.Set(row,col,Input_arr_Data[N_Stolb*row+col]);

Старый вариант уже не компилируется - так и до шизофрении дойти можно...