Errores, fallos, preguntas - página 2584

 
Georgiy Merts:

He aquí una pregunta.

A veces obtengo un error de desbordamiento de matriz durante la optimización, con un determinado conjunto de parámetros. El error se produce con bastante poca frecuencia y no puedo reproducirlo. Necesito saber el conjunto de parámetros en los que se produce este error. ¿Cómo determinar este conjunto de parámetros? Hay un número de pase en el registro del probador, pero este conjunto de parámetros no está presente en el informe. ¿Dónde puedo ver qué parámetros se han utilizado en esta ejecución?

Modifique esta biblia para escribir las impresiones en el archivo Common.

 
Y otro error - si uno de los parámetros es ENUM_TIMEFRAMES período, a continuación, en un gráfico de 1D o 2D por este parámetro - no tengo ninguna pantalla por alguna razón. ¿Soy yo?
 
fxsaber:

Modifique esta bibliografía para escribir las impresiones en el archivo común.

Sí, si no hay otras opciones, es una solución aceptable. Gracias.

Y vamos a tutearnos, nos conocemos virtualmente desde hace mucho tiempo.

 
¿He entendido bien que los punteros a una variable no funcionan en mql?
void OnStart()
{ 
   int *ptr;
}

El compilador dice que el puntero no puede ser utilizado.

 
Roman:
¿He entendido bien que los punteros a una variable no funcionan en mql?

El compilador dice que el puntero no puede ser utilizado.

Parece que los punteros sólo pueden ser a objetos, y se obtienen llamando a GetPointer()

 
Georgiy Merts:

Parece que los punteros sólo pueden ser a objetos, y se obtienen llamando a GetPointer()

Gracias. Sí, no hay problemas con los objetos de clase, por eso me sorprendió que no funcionara con las variables, aunque es triste.

 

No tengo ningún sitio donde poner las cuentas de corretaje en mi ordenador personal.

Cuando abro "Favoritos", sólo hay una página blanca.

¿Qué pasa?

No puedo ver las cuentas en mql5 ni suscribirme a nadie.

 

El indicador no llama a OnDeinit al borrar el indicador, si tiene la funciónChartIndicatorGet, que simplemente lee un handle de sí mismo sin añadirlo a una variable.

#property indicator_chart_window

int OnInit() {
   for (int i=0; i<ChartIndicatorsTotal(0,0); i++)  
       ChartIndicatorGet(0,0,ChartIndicatorName(0,0,i));
   return(INIT_SUCCEEDED);
}

//+------------------------------------------------------------------+

void OnDeinit(const int reason) {
   Print("Deinit");
}

//+------------------------------------------------------------------+

int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) {
   return(rates_total);
}

Y si se recompila el indicador después de borrarlo, se produce la llamada retardada de OnDeinit (Print("Deinit");).

¿Está bien?


Construir 2168

Archivos adjuntos:
 
Nikolai Semko:

Un indicador no llama a OnDeinit al borrar un indicador si tiene la función ChartIndicatorGet, que simplemente lee su propio manejador incluso sin poner el manejador en una variable.

IndicatorRelease es obligatorio si recibió su propio mango.

 
fxsaber:

IndicatorRelease es obligatorio si se obtiene su propio mango.

Hm...
¿Y dónde y en qué momento debo eliminar un mango indicador?

Lo lógico sería utilizar OnDeinit, pero no funciona.

ZS Es una imagen extraña.
Lo he probado: si borro el manejador justo después de obtenerlo, se borra, pero el indicador en sí no, el nombre se mantiene, y ya tiene un nuevo manejador y sigue funcionando. Y, efectivamente, al borrar el indicador se ejecuta OnDeinit.

Sin embargo, lo probé con un indicador sin búfer. No sé cómo se comportará el buffer de datos cuando se borre el handle.
No lo entiendo...