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

 
Artyom Trishkin:
Не инициализировать свои переменные - вот это ненормальное поведение. Инициализируйте, и таких вопросов не будет.

Полностью ЗА.

Но это еще не означает, что бага нигде нет ))). Просто хотел удостовериться, что все впорядке.

 
mktr8591:

Полностью ЗА.

Но это еще не означает, что бага нигде нет ))). Просто хотел удостовериться, что все впорядке.

Вероятнее всего это своего рода защита.
Так как доступ к ячейкам памяти в mql не доступен, предполагаю, что при обращении к переменной, рандомно генерится её мусорное значение.
И если переменная не инициализирована, то при дебаге вероятность не найти свою ошибку увеличивается в разы ))
Да и компилятор скорее всего об этом говорит в предупреждениях, что переменная не инициализирована.

 
Roman:

Вероятнее всего это своего рода защита.
Так как доступ к ячейкам памяти в mql не доступен, предполагаю, что при обращении к переменной, рандомно генерится её мусорное значение.
И если переменная не инициализирована, то при дебаге вероятность не найти свою ошибку увеличивается в разы ))
Да и компилятор скорее всего об этом говорит в предупреждениях, что переменная не инициализирована.

Или оптимизация. Раз переменная не определена, можем отдать любое значение, что ближе лежит, в регистре, например.

 
JRandomTrader:

Или оптимизация. Раз переменная не определена, можем отдать любое значение, что ближе лежит, в регистре, например.

Ну что то типа этого, из своего окружения. Генерация конечно не уместна как я озвучил, просто обобщил предположение.

 

Решил узнать, сколько будут зарабатывать 2 агента в сервисе MQL5 Cloud Network, чтобы в будущем собрать железо с многоядерным процессором. Добавил агентов с помощью Агент менеджера. Вроде нормально добавились.

Agent Manager

Ничего не вызывает подозрений... Осуществил вход в свой аккаунт MQL5.COM. В разделе "Агенты" в кабинете отобразились созданные агенты. В службах, в диспетчере задач также нашёл 2 службы, MetaTester-1 и  MetaTester-2. Но вот уже пол дня никаких заданий агенты не выполняют. Всё по нулям. Почему агенты не работают?

Распределенные вычисления в сети MQL5 Cloud Network
Распределенные вычисления в сети MQL5 Cloud Network
  • cloud.mql5.com
Заработать деньги, продавая мощности своего компьютера для сети распределенных вычислений MQL5 Cloud Network
 
	 CList *deals_array = new CList;

         for(int i=0;i<10;i++)
         {
            RobotDeal *cobj = new RobotDeal;
            cobj.ticker = "ticker " +IntegerToString(i);
            deals_array.Add(cobj);
         }
         
         RobotDeal *cobj11 = new RobotDeal;
         cobj11.ticker = "ticker 11 ";
         deals_array.Add(cobj11);
         
         RobotDeal *cobj12 = new RobotDeal;
         cobj12.ticker = "ticker 12 ";
         deals_array.Add(cobj12);
         
         RobotDeal *cobj13 = new RobotDeal;
         cobj13.ticker = "ticker 13 ";
         deals_array.Add(cobj13);
         
         RobotDeal *cobj14 = new RobotDeal;
         cobj14.ticker = "ticker 14 ";
         deals_array.Add(cobj14);

         Print("Total: " + IntegerToString(deals_array.Total()));

         for(int i=0;i<deals_array.Total();i++)
           {
               RobotDeal *object=deals_array.GetNodeAtIndex(i);
               Print(object.ticker);
           }
         
         for(int i=0; i < 14; i++)
         {
            Print("remove # " + IntegerToString(i));
            RobotDeal *deal = deals_array.GetNodeAtIndex(i);
            
            if(CheckPointer(deal) != POINTER_INVALID)
            {
               Print("remove: " + deal.ticker);
               deals_array.Delete(i);
            }
         }

         for(int i=0;i<deals_array.Total();i++)
           {
               RobotDeal *object=deals_array.GetNodeAtIndex(i);
               Print(object.ticker);
           }

         Print("Total end: " + IntegerToString(deals_array.Total()));
class RobotDeal: public CObject
{
    public:

    string ticker;

    RobotDeal() {}
};

Подскажите пожалуйста, как правильно удалять элементы из Clist ? При попытке удалить удаляется только половина, а индексация сбивается. Уже как только не пробовал. не работает вообще!


При выполнении кода выдает такое, например


Total: 14

ticker 0

ticker 1

ticker 2

ticker 3

ticker 4

ticker 5

ticker 6

ticker 7

ticker 8

ticker 9

ticker 11 

ticker 12 

ticker 13 

ticker 14 

remove # 0

remove: ticker 0

remove # 1

remove: ticker 2

remove # 2

remove: ticker 4

remove # 3

remove: ticker 6

remove # 4

remove: ticker 8

remove # 5

remove: ticker 11 

remove # 6

remove: ticker 13 

remove # 7

remove # 8

remove # 9

remove # 10

remove # 11

remove # 12

remove # 13

ticker 1

ticker 3

ticker 5

ticker 7

ticker 9

ticker 12 

ticker 14 

Total end: 7


 
Mihail Matkovskij:

Решил узнать, сколько будут зарабатывать 2 агента в сервисе MQL5 Cloud Network, чтобы в будущем собрать железо с многоядерным процессором. Добавил агентов с помощью Агент менеджера. Вроде нормально добавились.

Ничего не вызывает подозрений... Осуществил вход в свой аккаунт MQL.COM. В разделе "Агенты" в кабинете отобразились созданные агенты. В службах, в диспетчере задач также нашёл 2 службы, MetaTester-1 и  MetaTester-2. Но вот уже пол дня никаких заданий агенты не выполняют. Всё по нулям. Почему агенты не работают?

Какой PR агентов у Вас получился? Например 20числа для PR180 задачи были (особенно с утра).

 
Vladimir Karputov:

Какой PR агентов у Вас получился? Например 20числа для PR180 задачи были (особенно с утра).

У меня PR агентов 119. Интересно, как это влияет? 

 
Mihail Matkovskij:

У меня PR агентов 119. Интересно, как это влияет? 

Достоверно не знаю. Просто было интересно.

 
DimaDDM:

Подскажите пожалуйста, как правильно удалять элементы из Clist ? При попытке удалить удаляется только половина, а индексация сбивается. Уже как только не пробовал. не работает вообще!

У вас некорректное удаление! Ваш код: 

        for(int i=0; i < 14; i++)
        {
            Print("remove # " + IntegerToString(i));
            RobotDeal *deal = deals_array.GetNodeAtIndex(i);
            
            if(CheckPointer(deal) != POINTER_INVALID)
            {
               Print("remove: " + deal.ticker);
               deals_array.Delete(i);
            }
         }

С удалением каждого элемента список уменьшается! Поэтому, нужно делать вот так:

        for(int i = deals_array.Total() - 1; i >= 0; i--)
        {
            Print("remove # " + IntegerToString(i));
            RobotDeal *deal = deals_array.GetNodeAtIndex(i);
            
            if(CheckPointer(deal) != POINTER_INVALID)
            {
               Print("remove: " + deal.ticker);
               deals_array.Delete(i);
            }
         }

Или еще проще: 

deals_array.Clear();
Причина обращения: