Erreurs, bugs, questions - page 2967

 
mktr8591:

Complètement POUR.

Mais cela ne signifie pas que le bogue est introuvable ;))). Je voulais juste m'assurer que tout allait bien.

C'est probablement une sorte de protection.
Puisque l'accès aux cellules de mémoire dans mql n'est pas disponible, je suppose que lors de l'accès à une variable, sa valeur résiduelle est générée aléatoirement.
Et si la variable n'est pas initialisée, la probabilité de ne pas trouver l'erreur augmente considérablement au moment du débogage))
Et le compilateur indique très probablement dans les avertissements que la variable n'est pas initialisée.

 
Roman:

Il s'agit très probablement d'une sorte de protection.
Puisque l'accès aux cellules de mémoire dans mql n'est pas disponible, je suppose que lorsqu'on accède à une variable, sa valeur résiduelle est générée aléatoirement.
Et si la variable n'est pas initialisée, lors du débogage, la probabilité de ne pas trouver d'erreur augmente plusieurs fois ;))
Et le compilateur en parle très probablement dans l'avertissement que la variable n'est pas initialisée.

Ou l'optimisation. Puisque la variable est indéfinie, nous pouvons lui donner la valeur que nous voulons, par exemple, dans un registre.

 
JRandomTrader:

Ou l'optimisation. Puisque la variable n'est pas définie, on peut donner n'importe quelle valeur la plus proche, dans un registre, par exemple.

Quelque chose comme ça, d'après mon environnement. La génération n'est bien sûr pas appropriée comme je l'ai dit, juste une hypothèse généralisée.

 

Décidé de découvrir combien 2 agents du service MQL5 Cloud Network vont gagner afin de construire un fer à repasser avec un processeur multi-core dans le futur. J'ai ajouté les agents en utilisant Agent Manager. Il semble les avoir ajoutés sans problème.

Agent Manager

Rien ne semblesuspect... Je me suis connecté à mon compte MQL5.COM. J'ai vu les agents créés dans la section "Agents" de monAlpari. J'ai également trouvé deux services, MetaTester-1 et MetaTester-2 dans le gestionnaire de tâches. Mais pendant une demi-journée, il n'y a pas de tâches pour les agents. Tout est nul. Pourquoi les agents ne travaillent-ils pas ?

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

Pouvez-vous me dire comment supprimer correctement des éléments de la liste? Lorsque j'essaie de les supprimer, seule la moitié d'entre eux est supprimée et l'indexation se fait mal. J'ai essayé tous les moyens. Ça ne marche pas du tout !


En exécutant ce code, on obtient par exemple les résultats suivants


Total : 14

ticker 0

téléscripteur 1

téléscripteur 2

téléscripteur 3

téléscripteur 4

téléscripteur 5

téléscripteur 6

téléscripteur 7

téléscripteur 8

téléscripteur 9

téléscripteur 11

ticker 12

ticker 13

ticker 14

supprimer # 0

supprimer : ticker 0

supprimer le numéro 1

supprimer : ticker 2

retirer # 2

supprimer : ticker 4

retirer le numéro 3

supprimer : ticker 6

retirer le numéro 4

supprimer : ticker 8

retirer le numéro 5

supprimer : ticker 11

retirer le numéro 6

supprimer : ticker 13

retirer # 7

retirer le numéro 8

retirer le numéro 9

retirer # 10

retirer le numéro 11

retirer le numéro 12

retirer le numéro 13

téléscripteur 1

téléscripteur 3

téléscripteur 5

téléscripteur 7

téléscripteur 9

ticker 12

ticker 14

Fin totale : 7


 
Mihail Matkovskij:

Décidé de découvrir combien 2 agents du service MQL5 Cloud Network vont gagner afin de construire un fer à repasser avec un processeur multi-core dans le futur. J'ai ajouté les agents en utilisant Agent Manager. Il semble les avoir ajoutés sans problème.

Rien ne semblesuspect... Je me suis connecté à mon compte MQL.COM. J'ai vu les agents créés dans mon compte sous "Agents". J'ai également trouvé deux services, MetaTester-1 et MetaTester-2 dans le gestionnaire de tâches. Mais pendant une demi-journée, il n'y a pas de tâches pour les agents. Tout est nul. Pourquoi les agents ne travaillent-ils pas ?

Quelles relations publiques avez-vous obtenues pour vos agents ? Par exemple, il y avait des tâches pour PR180 le 20 (surtout le matin).

 
Vladimir Karputov:

Quels agents de relations publiques avez-vous obtenus ? Par exemple, le 20Chisla pour PR180, les tâches étaient (surtout le matin).

J'ai des agents de relations publiques du 119. Je me demande comment cela l'affecte ?

 
Mihail Matkovskij:

J'ai 119 agents de relations publiques. Je me demande comment cela l'affecte ?

Je n'en suis pas sûr. Je me demandais juste.

 
DimaDDM:

Pouvez-vous me dire comment supprimer correctement des éléments de la liste? Lorsque j'essaie de les supprimer, seule la moitié d'entre eux est supprimée et l'indexation se fait mal. J'ai essayé tous les moyens. Ça ne marche pas du tout !

Vous avez une suppression incorrecte ! Votre code :

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

Au fur et à mesure que vous supprimez chaque élément, la liste se réduit ! C'est pourquoi tu dois faire comme ça :

        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 encore plus simple :

deals_array.Clear();
 
Mihail Matkovskij:

Votre suppression est invalide ! Votre code :

Au fur et à mesure que vous supprimez chaque élément, la liste se réduit ! C'est pourquoi vous devriez faire comme ça :

Ou encore plus simple :

Merci pour votre réponse. Le problème est toujours d'ajouter des éléments