Errori, bug, domande - pagina 1698

 
Vladimir Pastushak:

ancora, i metodi del genitore vengono scaricati nell'erede, che non dovrebbe essere scaricato.

Loro "abbandonano", ma ci sarà un errore di compilazione quando proverete a chiamarli.
 
Karputov Vladimir:

Se si rifiuta di copiare il buffer:

l'indicatore termina con successo

Se non volete copiare il buffer, non avete bisogno dell'handle. È il tuo modo di aiutare gli sviluppatori a localizzare il bug?
 
fxsaber:
Se non volete copiare il buffer, non vi serve nemmeno l'handle. È il tuo modo di aiutare gli sviluppatori a localizzare il bug?
Sto cercando di localizzare il problema nel modo più preciso possibile. Questo può ridurre notevolmente il tempo di risposta a ServiceDesk.
 
fxsaber:
Dove aggiungerlo e come potrebbe almeno teoricamente aiutare. Questo è un bug del terminale. Ed è un bug serio. Sono stato fortunato - vedo nel log che l'indicatore funziona. Tuttavia, ci sono molti indicatori che lavorano nel terminale senza alcuna informazione su di loro. Ma la domanda sorge spontanea: perché la CPU sta caricando così tanto su un terminale vuoto?
Aggiungilo a OnCalculate() prima di controllare se l'handle è corretto. E se il flag è scritto - uscire da OnCalculate(). Naturalmente, difficilmente fermerà OnCalculate()... ma non verrà eseguita alcuna azione...
 
Alexey Kozitsyn:
Aggiungere prima di controllare se l'handle è corretto in OnCalculate(). E se la bandiera è scritta - uscire da OnCalculate(). Naturalmente, questo difficilmente fermerà OnCalculate()... ma non verrà eseguita alcuna azione...
Lasciate un numero incontrollabile di indicatori appesi nel terminale, perché tanto non consumano quasi nulla.
 
Karputov Vladimir:
Cercando di localizzare il problema nel modo più accurato possibile. Questo può ridurre notevolmente il tempo di risposta di una domanda a ServiceDesk.
Hai scritto una domanda?
 
Non scrivo in MQL5 da molto tempo, non sono un programmatore. Conosco MQL4 e ora conosco un po' MQL5. Perché incontro bug in MT5 quasi ogni giorno? Infatti, quasi ogni giorno un uomo per strada trova accidentalmente degli insetti! Cosa significa tutto questo, perché è così crudo? Nessun tester? Non mentirei se dicessi che MT comincia a diventare fastidioso. E ancora più fastidiosa è la realizzazione che non posso programmare in nient'altro.
 

Ed ecco la radice di tutti i mali: finché il buffer dell'indicatore non è calcolato (finché prev_calculated==0) - non si può fare nulla

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//if(handle!=INVALID_HANDLE)
   if(prev_calculated!=0)
     {
      Buffer[rates_total-1]=MathRand();

      double BufferCopy[];
      Print(__FUNCTION__);
      if(CopyBuffer(handle,0,0,1,BufferCopy)>0)
         Print(TOSTRING(BufferCopy[0])+TOSTRING(Buffer[rates_total-1]));
     }

   return(rates_total);
  }

è così che funziona e l'indicatore viene immediatamente scaricato.

 
Karputov Vladimir:

Ed ecco la radice di tutti i mali: finché il buffer dell'indicatore non è calcolato (finché prev_calculated!=0) - niente può essere fatto

è così che funziona e l'indicatore viene immediatamente scaricato.

Non funziona.
 
fxsaber:
Non scrivo in MQL5 da molto tempo, non sono un programmatore. Conosco MQL4 e ora conosco un po' MQL5. Perché incontro bug in MT5 quasi ogni giorno? Infatti, quasi ogni giorno un uomo per strada trova accidentalmente degli insetti! Cosa significa tutto questo, perché è così crudo? Nessun tester? Non mentirei se dicessi che MT comincia a diventare fastidioso. E ancora più fastidiosa è la realizzazione che non posso programmare in nient'altro.
Non si può liquidare ogni caso di uno stile di programmazione scorretto come un bug. Altrimenti sarà come nella favola del pastore che gridava senza motivo: "Lupi, lupi". Tutti si sono precipitati ad aiutare - e si è scoperto che non c'erano lupi. Ma quando i lupi attaccarono davvero e il pastore chiamò di nuovo aiuto, nessuno venne ad aiutarlo - tutti pensarono che stesse di nuovo scherzando.