Errores, fallos, preguntas - página 1698

 
Vladimir Pastushak:

aún así, los métodos del padre se vuelcan en el heredero, que no debería ser volcado.

Se "retiran", pero habrá un error de compilación cuando intentes llamarlos.
 
Karputov Vladimir:

Si se niega a copiar el buffer:

el indicador termina con éxito

Si no quieres copiar el búfer, no necesitas el asa. ¿Es esta su forma de ayudar a los desarrolladores a localizar el error?
 
fxsaber:
Si no quieres copiar el búfer, tampoco necesitas el asa. ¿Es esta su forma de ayudar a los desarrolladores a localizar el error?
Estoy tratando de localizar el problema con la mayor precisión posible. Esto puede reducir en gran medida el tiempo de respuesta del ServiceDesk.
 
fxsaber:
Dónde añadirlo y cómo podría, al menos en teoría, ayudar. Se trata de un error en el terminal. Y es un error grave. He tenido suerte: veo en el registro que el indicador funciona. Sin embargo, hay muchos indicadores que funcionan en el terminal sin ninguna información sobre ellos. La pregunta que surge es ¿por qué la CPU se carga tanto en un terminal vacío?
Añádelo a OnCalculate() antes de comprobar si el asa es correcta. Y si la bandera está escrita - salir de OnCalculate(). Por supuesto, difícilmente se detendrá OnCalculate()... pero no se realizará ninguna acción...
 
Alexey Kozitsyn:
Añadir antes de comprobar si el asa es correcta en OnCalculate(). Y si la bandera está escrita - salir de OnCalculate(). Por supuesto, esto difícilmente detendrá a OnCalculate()... pero no se realizará ninguna acción...
Deje que un número incontrolable de indicadores cuelgue en el terminal, porque de todos modos no consumen casi nada.
 
Karputov Vladimir:
Intentar localizar el problema con la mayor precisión posible. Esto puede reducir en gran medida el tiempo de respuesta a una solicitud al ServiceDesk.
¿Ha redactado una solicitud?
 
Hace tiempo que no escribo en MQL5, no soy programador. Conozco MQL4, y ahora conozco un poco MQL5. ¿Por qué encuentro errores en MT5 casi todos los días? De hecho, ¡casi todos los días un hombre en la calle encuentra accidentalmente bichos! ¿De qué se trata todo esto, por qué es tan crudo? ¿No hay probadores en absoluto? No mentiría si dijera que la MT empieza a ser molesta. Y aún más molesto es darse cuenta de que no puedo programar nada más.
 

Y aquí está la raíz de todo el mal: hasta que no se calcule el buffer del indicador (hasta que prev_calculated==0) - no se puede hacer nada

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

así funciona y el indicador se descarga inmediatamente.

 
Karputov Vladimir:

Y aquí está la raíz de todo el mal: hasta que no se calcule el buffer del indicador (hasta que prev_calculated!=0) - no se puede hacer nada

así funciona y el indicador se descarga inmediatamente.

No funciona.
 
fxsaber:
Hace tiempo que no escribo en MQL5, no soy programador. Conozco MQL4, y ahora conozco un poco MQL5. ¿Por qué encuentro errores en MT5 casi todos los días? De hecho, ¡casi todos los días un hombre en la calle encuentra accidentalmente bichos! ¿De qué se trata todo esto, por qué es tan crudo? ¿No hay probadores en absoluto? No mentiría si dijera que la MT empieza a ser molesta. Y aún más molesto es darse cuenta de que no puedo programar nada más.
No se pueden descartar todos los casos de un estilo de programación incorrecto como un error. De lo contrario, será como en el cuento del pastor que gritaba sin razón: "Lobos, lobos". Todo el mundo se apresuró a ayudar, y resultó que no había lobos. Pero cuando los lobos atacaron de verdad y el pastor volvió a pedir ayuda, nadie acudió a socorrerle: todos pensaron que estaba bromeando de nuevo.