Errores, fallos, preguntas - página 2242

 
darkangel8733:

Hola, he comprado un EA de usted, "tortuga" y no funciona en modo autónomo, ???

Sólo lo digo. Si un Asesor Experto utiliza indicadores, incluso los estándar, debería tener acceso a ellos. Ya he introducido esta regla general.

 
A100:
La exigencia era sólo una: ayudar, no obstaculizar. Si crees que la discusión es innecesaria, no entres en ella... No le corresponde a usted decidir (necesario/no necesario) - para eso están la Administración y los moderadores

Estoy de acuerdo, pero si no te gustan los consejos, entonces simplemente no tienes que responder a ellos, entonces no habrá preguntas... cada uno escribe aquí lo que cree que es apropiado, yo vi conveniente dar consejos, es decir, proporcionar ayuda gratuita, en lugar de gratitud leí las quejas... buena suerte

 
Konstantin:

Estoy de acuerdo, pero si no te gustan los consejos, simplemente no tienes que responder a ellos

Ese es un buen consejo... gracias por eso... Lo tomaré.
 

¿Cómo es eso?

ArrayFree(SummArr);
ArrayResize(SummArr,57);
Print("SummArr_1=",SummArr[1]);
2018.07.26 02:09:04.566 Pred_Ocenka_02 (Si Splice,M1)   SummArr_1=1190264832

¿Por qué el valor de la matriz no está vacío (cero)?

 
Aleksey Vyazmikin:

¿Cómo es eso?

¿Por qué el valor de la matriz no está vacío (cero)?

¿Y si primero se dimensiona y luego se borra?

 
Vitaly Muzichenko:

¿Y si primero se dimensiona y luego se borra?

Entonces

2018.07.26 02:20:08.482 Pred_Ocenka_02 (Si Splice,M1)   array out of range in 'Pred_Ocenka_02.mq5' (76,27)
No tiene información sobre el tamaño después de la limpieza.
 
Si
ArrayFree(SummArr);

Eliminar, entonces el valor tampoco está vacío. La matriz no se ha utilizado antes.

 

Algunas tonterías, aquí está el corte de código en general

int SummArr[];

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   ArrayFree(SummArr);
   ArrayResize(SummArr,57);
   Print("SummArr_1=",SummArr[1]);
   Print("SummArr_30=",SummArr[30]);   
   Print("SummArr_57=",SummArr[56]);   
  }
//+------------------------------------------------------------------+

En la salida.

2018.07.26 02:37:58.693 Pred_Ocenka_error (Si Splice,M15)       SummArr_1=1190264832
2018.07.26 02:37:58.693 Pred_Ocenka_error (Si Splice,M15)       SummArr_30=2097181
2018.07.26 02:37:58.693 Pred_Ocenka_error (Si Splice,M15)       SummArr_57=154252694

Por favor, compruébalo, puede que mi terminal se haya vuelto loco.

¿O es normal y todo debería ser basura?

 

El código del indicador mql4 ha dejado de funcionar. ¿Cómo puedo solucionarlo?

else{// Иначе стрелка создана. Задаём её свойства
 ObjectSetInteger(Open_name,OBJPROP_ARROWCODE,OpenArrowCode);//код стрелки 232 
 ObjectSet(Open_name,OBJPROP_COLOR,ObjColor);//цвет стрелки
}

El editor dice 'ObjectSetInteger' - no se puede aplicar ninguna de las sobrecargas a la llamada de función

Ha estado funcionando durante años y de repente ha dejado de hacerlo. Sin embargo, es una pena.


 
Aleksey Vyazmikin:

Algunas tonterías, aquí está el corte de código en general

En la salida.

Por favor, compruébalo, puede que mi terminal se haya vuelto loco.

¿O tal vez es normal y todo debería ser basura?

Libera el búfer de cualquier matriz dinámica y establece el tamaño de la dimensión cero a 0.

Cuando se escriben scripts e indicadores, es posible que se necesite utilizar la función ArrayFree() con poca frecuencia, ya que toda la memoria utilizada se libera inmediatamente después de que el script deja de funcionar, y en los indicadores personalizados, el trabajo principal con las matrices se realiza accediendo a los búferes del indicador, cuyos tamaños son gestionados automáticamente por el subsistema ejecutivo del terminal.

Si necesita gestionar la memoria por su cuenta en condiciones dinámicas complejas, la función ArrayFree() le permitirá liberar explícita e inmediatamente la memoria ocupada por un array dinámico que no necesita.

¿Lo ves? Innecesario.

Naturalmente, una vez que se libera la memoria de la misma, y se vuelve a asignar dimensionando el array, nadie garantizará su contenido.

Utiliza la inicialización de arrays: ArrayInitialize()