Errori, bug, domande - pagina 2967

 
Artyom Trishkin:
Non inizializzare le vostre variabili è un comportamento anormale. Inizializzatelo e non ci saranno queste domande.

Completamente a favore.

Ma questo non significa che il bug non si trovi da nessuna parte ))). Volevo solo assicurarmi che tutto fosse a posto.

 
mktr8591:

Completamente a favore.

Ma questo non significa che il bug non si trovi da nessuna parte ))). Volevo solo assicurarmi che tutto fosse a posto.

Molto probabilmente è una sorta di protezione.
Poiché l'accesso alle celle di memoria in mql non è disponibile, suppongo che quando si accede a una variabile, il suo valore spazzatura viene generato casualmente.
E se la variabile non è inizializzata, allora al debug la probabilità di non trovare il tuo errore aumenta molte volte ))
E il compilatore molto probabilmente lo dice in avvertimenti, che la variabile non è inizializzata.

 
Roman:

Questo è molto probabilmente una sorta di protezione.
Poiché l'accesso alle celle di memoria in mql non è disponibile, suppongo che quando si accede a una variabile, il suo valore spazzatura viene generato casualmente.
E se la variabile non è inizializzata, quando si esegue il debug, la probabilità di non trovare un errore aumenta molte volte ))
E il compilatore molto probabilmente lo dice nell'avviso che la variabile non è inizializzata.

O l'ottimizzazione. Poiché la variabile è indefinita, possiamo darle qualsiasi valore che vogliamo, per esempio in un registro.

 
JRandomTrader:

O l'ottimizzazione. Poiché la variabile non è definita, possiamo dare qualsiasi valore che sia più vicino, in un registro, per esempio.

Qualcosa del genere, dal mio ambiente. La generazione ovviamente non è appropriata come ho detto, solo un'ipotesi generalizzata.

 

Ha deciso di scoprire quanto guadagneranno 2 agenti nel servizio MQL5 Cloud Network per costruire un ferro con un processore multi-core in futuro. Ho aggiunto gli agenti usando Agent Manager. Sembra che li abbia aggiunti bene.

Agente Manager

Niente sembra esseresospetto... Sono entrato nel mio account MQL5.COM. Ho visto gli agenti creati nella sezione "Agenti" in myAlpari. Ho anche trovato due servizi, MetaTester-1 e MetaTester-2 nel task manager. Ma per mezza giornata non ci sono compiti per gli agenti. Tutto è nullo. Perché gli agenti non lavorano?

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

Potete dirmi come eliminare correttamente gli elementi dalla Clist? Quando provo a cancellare solo la metà di loro viene cancellata e l'indicizzazione va male. Ho provato in tutti i modi, ma non funziona affatto!


Quando si esegue questo codice si ottiene il seguente risultato, per esempio


Totale: 14

spuntino 0

spunta 1

spuntino 2

spuntino 3

ticker 4

spuntino 5

spuntino 6

ticker 7

ticker 8

ticker 9

spuntino 11

ticker 12

ticker 13

ticker 14

rimuovere # 0

rimuovere: ticker 0

rimuovere # 1

rimuovere: ticker 2

rimuovere # 2

rimuovere: ticker 4

rimuovere # 3

rimuovere: ticker 6

rimuovere # 4

rimuovere: ticker 8

rimuovere # 5

rimuovere: ticker 11

rimuovere # 6

rimuovere: ticker 13

rimuovere # 7

rimuovere # 8

rimuovere # 9

rimuovere # 10

rimuovere # 11

rimuovere # 12

rimuovere # 13

spunta 1

spuntino 3

spuntino 5

ticker 7

ticker 9

ticker 12

ticker 14

Fine totale: 7


 
Mihail Matkovskij:

Ha deciso di scoprire quanto guadagneranno 2 agenti nel servizio MQL5 Cloud Network per costruire un ferro con un processore multi-core in futuro. Ho aggiunto gli agenti usando Agent Manager. Sembra che li abbia aggiunti bene.

Niente sembra esseresospetto... Sono entrato nel mio account MQL.COM. Ho visto gli agenti creati nel mio account sotto "Agenti". Ho anche trovato due servizi, MetaTester-1 e MetaTester-2 nel task manager. Ma per mezza giornata non ci sono compiti per gli agenti. Tutto è nullo. Perché gli agenti non lavorano?

Quali PR ha ottenuto per i suoi agenti? Per esempio, c'erano compiti per PR180 il 20 (soprattutto la mattina).

 
Vladimir Karputov:

Che agenti di pubbliche relazioni hai avuto? Per esempio, 20Chisla per PR180 erano i compiti (soprattutto al mattino).

Ho agenti PR del 119. Mi chiedo come questo influisca?

 
Mihail Matkovskij:

Ho 119 agenti di pubbliche relazioni. Mi chiedo come questo influisca?

Non lo so per certo. Mi stavo solo chiedendo.

 
DimaDDM:

Potete dirmi per favore come cancellare gli elementi dalla Clist? Quando provo a cancellare solo la metà di essi vengono cancellati e l'indicizzazione è rotta. Ho provato in tutti i modi, ma non funziona affatto!

Hai una cancellazione errata! Il tuo codice:

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

Man mano che cancelli ogni voce, la lista diventa più piccola! Ecco perché devi fare così:

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

O ancora più semplice:

deals_array.Clear();
Motivazione: