Erros, bugs, perguntas - página 2967

 
Artyom Trishkin:
Não inicializar as suas variáveis é um comportamento anormal. Inicialize-o e não haverá tais perguntas.

Completamente PARA isso.

Mas isso não significa que o insecto não se encontre em lado nenhum ))))). Só queria ter a certeza de que tudo estava bem.

 
mktr8591:

Completamente PARA isso.

Mas isso não significa que o insecto não se encontre em lado nenhum ))))). Só queria ter a certeza de que está tudo bem.

O mais provável é que seja algum tipo de protecção.
Uma vez que o acesso às células de memória em mql não está disponível, suponho que ao aceder a uma variável, o seu valor de lixo é gerado de forma aleatória.
E se a variável não for inicializada, então a probabilidade de debug de não encontrar o seu erro aumenta muitas vezes)
E o compilador, muito provavelmente, diz sobre ela em avisos, que a variável não é inicializada.

 
Roman:

Isto é muito provavelmente um tipo de protecção.
Uma vez que o acesso às células de memória em mql não está disponível, suponho que quando uma variável é acedida, o seu valor de lixo é gerado de forma aleatória.
E se a variável não for inicializada, ao depurar, a probabilidade de não encontrar um erro aumenta muitas vezes)
E o compilador muito provavelmente diz no aviso que a variável não é inicializada.

Ou optimização. Uma vez que a variável é indefinida, podemos dar-lhe o valor que quisermos, por exemplo, num registo.

 
JRandomTrader:

Ou optimização. Uma vez que a variável não está definida, podemos dar qualquer valor que esteja mais próximo, num registo, por exemplo.

Algo do género, do meu ambiente. A geração, claro, não é apropriada como disse, apenas uma suposição generalizada.

 

Decidiu descobrir quanto ganharão 2 agentes no serviço MQL5 Cloud Network para construir um ferro com um processador multi-core no futuro. Adicionei os agentes utilizando o Agent Manager. Parece tê-los acrescentado bem.

Agente Gestor

Nada parece sersuspeito... Entrei na minha conta MQL5.COM. Vi os agentes criados na minha conta em "Agentes". Também encontrei dois serviços, MetaTester-1 e MetaTester-2 no gestor de tarefas. Mas durante meio dia não há tarefas para os agentes. Tudo é nulo. Porque é que os agentes não estão a trabalhar?

Распределенные вычисления в сети 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() {}
};

Pode dizer-me como eliminar correctamente itens do Clist? Quando tento apagar apenas metade delas são apagadas e a indexação corre mal. Já tentei de todas as maneiras. não funciona de todo!


Ao executar este código produz, por exemplo, o seguinte


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

remover # 0

remover: ticker 0

remover # 1

remover: ticker 2

remover # 2

remover: ticker 4

remover # 3

remover: ticker 6

remover # 4

remover: ticker 8

remover # 5

remover: ticker 11

remover # 6

remover: ticker 13

remover # 7

remover # 8

remover # 9

remover # 10

remover # 11

remover # 12

remover # 13

Ticker 1

ticker 3

ticker 5

ticker 7

ticker 9

ticker 12

ticker 14

Fim total: 7


 
Mihail Matkovskij:

Decidiu descobrir quanto ganharão 2 agentes no serviço MQL5 Cloud Network para construir um ferro com um processador multi-core no futuro. Adicionei os agentes utilizando o Agent Manager. Parece tê-los acrescentado bem.

Nada parece sersuspeito... Entrei na minha conta MQL.COM. Vi os agentes criados na minha conta em "Agentes". Também encontrei dois serviços, MetaTester-1 e MetaTester-2 no gestor de tarefas. Mas durante meio dia não há tarefas para os agentes. Tudo é nulo. Porque é que os agentes não estão a trabalhar?

Que relações públicas obteve para os seus agentes? Por exemplo, houve tarefas para o PR180 no dia 20 (especialmente de manhã).

 
Vladimir Karputov:

Que agentes de relações públicas obteve? Por exemplo, 20Chisla para PR180 foram as tarefas (especialmente de manhã).

Tenho agentes de relações públicas de 119. Como será que isto o afecta?

 
Mihail Matkovskij:

Tenho 119 agentes de relações públicas. Como será que isso o afecta?

Não sei ao certo. Estava apenas a pensar.

 
DimaDDM:

Pode dizer-me como eliminar correctamente itens do Clist? Quando tento apagar apenas metade delas são apagadas e a indexação é quebrada. Já tentei de todas as maneiras. Não funciona de todo!

Tem uma eliminação incorrecta! O seu código:

        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);
            }
         }

À medida que se apaga cada item, a lista fica mais pequena! É por isso que tem de o fazer desta forma:

        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);
            }
         }

Ou ainda mais simples:

deals_array.Clear();