Errores, fallos, preguntas - página 1680

 

En el cuaderno de bitácora.

2016.09.12 22:20:37.728 Books   invalid book item[RTS-9.16,buy,99040.00000,-4]
BCS-MetaTrader5, real, 1415. Sucedió al pasar de una cuenta demo a una cuenta real. No se han ejecutado asesores expertos ni indicadores. La ventanilla del maniquí estaba abierta.
 
fxsaber:

En la revista.

BCS-MetaTrader5, real, 1415. Sucedió cuando pasé de la cuenta demo a la real. No hay asesores expertos ni indicadores en funcionamiento. La ventana de la cabina estaba abierta.

Escribí sobre este error

https://www.mql5.com/ru/forum/95131

invalid book transaction
invalid book transaction
  • comentarios: 2
  • www.mql5.com
Раньше не было, появилось сегодня (реал). Что это...
 
prostotrader:
¿Qué son esos asteriscos bajo el título del tema? Y el número de críticas también.
 
fxsaber:
¿Qué son esos asteriscos bajo el título del tema? Y el número de críticas.
Por cierto, hace tiempo que me pregunto dónde hay que poner esas estrellas para los temas.
 

En el modo de depuración, ¿cómo puedo saber desde dónde se ha llamado a la función en la que estoy actualmente?

A grandes rasgos, me gustaría tener acceso a un árbol de llamadas a funciones/métodos anidados. ¿Es esto posible?

 
fxsaber:
En el modo de depuración, ¿cómo puedo averiguar desde dónde se llamó a la función en la que estoy actualmente?

En el modo "Paso a paso", vea la pestaña "Depuración" de una en una:

pasos

 
Karputov Vladimir:

En el modo "Paso a paso", vea la pestaña "Depuración" de una en una:

Gracias. No puedo entender por qué el indicador llama a OnCalculate dos veces al principio. Me gustaría saber a qué evento reacciona. Por desgracia, no puedo ver ningún evento en la pestaña de depuración.
 
fxsaber:
Gracias. No entiendo por qué al principio el indicador llama dos veces a OnCalculate. Me gustaría saber para qué evento es esta respuesta. Desgraciadamente, no hay eventos visibles en la depuración.

A veces sucede dos veces, a veces una, tal vez incluso tres veces: se pone este código en Oncalculate() -

//+------------------------------------------------------------------+
//|  Accelerator/Decelerator Oscillator                              |
//+------------------------------------------------------------------+
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[])
  {
   Print(__FUNCTION__,", rates_total ",rates_total,", prev_calculated ",prev_calculated);

se aclarará cuando se intercambie el historial (cuando se intercambie el historial prev_calculado==0).

 
Karputov Vladimir:

A veces sucede dos veces, a veces una, tal vez incluso tres veces: se pone este código en Oncalculate() -

se aclarará cuando se produzca el intercambio de historia (cuando history swap prev_calculated==0).

No, lo estoy ejecutando en RTS ahora, cuando los kotirs están de pie. Se ha descubierto que se llama una vez, y el depurador miente, mostrando como si fueran dos. Código para jugar (ejecutar en un personaje en el que no hay ticks)

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1

int Func(){ return(0); }

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[] )
{
//  return(0); // если расскоментировать и здесь поставить точку останова, то отладчик отработает, как надо
  return(Func()); // здесь поставить точку останова (F9)
}

Después de pulsar F5, llegará a un punto de interrupción. Y después de una segunda pulsación en F5 - de forma similar. Aunque esto no debería ser - como confirmación, puedes descomentar la línea que está en el código y probar con ella.

 
fxsaber:

No, lo estoy ejecutando en RTS ahora, cuando los kotirs están de pie. Me he dado cuenta de que se llama una vez, y el depurador miente, mostrándolo como si fueran dos. Código para la reproducción (se ejecuta en un personaje en el que no hay ticks)

Después de pulsar F5, llegará a un punto de interrupción. Y después de una segunda pulsación en F5 - de forma similar. Sin embargo, este no debería ser el caso - como confirmación, puedes desechar la línea que está en el código y probar con ella.

No hay ninguna diferencia en que las cotizaciones vayan o se mantengan. Debe controlar la condición prev_calculate==0 en el indicador - esto es el intercambio de la historia y el segundo punto - el modo de recuento de las barras cambiadas, es decir, de hecho, rates_total -prev_calculate+1.