Discusión sobre el artículo "El histograma del precio (perfil del mercado) y su implementación en MQL5" - página 2

 

2010.03.09 21:12:54 PrecioHistograma (#DD,MN1) No hay historial accesible PERIOD_D1

 
gen5s:

¡Maravilloso consejero! Era...

El problema apareció desde 251 construir. Ahora en las nuevas versiones no se refleja en absoluto, aunque el registro dice que se carga.

Puede que haya que cambiar algo, ¿moverlo a otro directorio?

Gracias por vuestra atención, realmente cometí un error. Arreglado. A la espera de una actualización.

PS

Había un error en la búsqueda de arrays max/min, después de arreglarlo ha aparecido un bug en el código del EA

en ClassPriceHistogram.mqh lineas 188,189 y 205 es necesario fijar WHOLE_ARRAY a 0.

 
bcsunwww:

2010.03.09 21:12:54 PriceHistogram (#DD,MN1) No hay historial accesible PERIOD_D1

Gracias por su mensaje. Arreglado, espere las actualizaciones.
 
mql5:

Gracias por señalarlo, cometí un error. Ya está arreglado. Espera la actualización.

PS

Había un error en la búsqueda de arrays max/min, después de arreglarlo apareció un bug en el código del Asesor Experto.

en ClassPriceHistogram.mqh lineas 188,189 y 205 es necesario corregir WHOLE_ARRAY a 0.

Gracias por sugerir (WHOLE_ARRAY), porque ya estaba cansado de buscar el error.
 
vdv2001:
Gracias por el consejo(WHOLE_ARRAY), ya estaba cansado de buscar el error.
Desgraciadamente, no es el único error en el código del experto. Intentaremos encontrar y corregir el código fuente.
 

PriceHistogram.mq5 no funciona en el gráfico. Meta mensajes de error del editor están en el archivo adjunto.

Archivos adjuntos:
 

Reemplazado el archivo incluido ClassPriceHistogramA.mqh:

  • reducido el número de intentos de copia de datos de precios AMOUNT_OF_ATTEMPTS=2;
  • añadida la función PrintErrorOnCopyFunction() para mostrar mensajes cuando falla un intento de ejecutar la función CopyXXX().
    //+------------------------------------------------------------------+
    //| muestra un mensaje cuando la copia falla |
    //+------------------------------------------------------------------+
    void PrintErrorOnCopyFunction(string func_name,string symbol,ENUM_TIMEFRAMES tf,int err_code)
      {
       Print(func_name,"Error al copiar los datos de precios, error",err_code);
       Print("La primera cita por símbolo-período"+
             symbol+" "+TimeframeToString(tf)+
             " por ahora = "+
             (datetime)SeriesInfoInteger(symbol,tf,SERIES_FIRSTDATE));
       Print("La primera cita de la historia por símbolo en el servidor =",
             (datetime)SeriesInfoInteger(symbol,tf,SERIES_SERVER_FIRSTDATE));
       Print("Datos del símbolo sincronizados =",
             (bool)SeriesInfoInteger(symbol,tf,SERIES_SYNCRONIZED));
       int bars=Bars(symbol,tf);
       int max_bars_in_chart=TerminalInfoInteger(TERMINAL_MAXBARS);
       Print("Número de barras en el historial por período de símbolo correspondiente = ",bars,
             "   max_bars_in_chart =",max_bars_in_chart);
       datetime firstbar[];
       int copied=CopyTime(symbol,tf,bars-1,1,firstbar);
       if(copied<0)
         {
          Print("El primer bar disponible tiene hora de apertura".,firstbar[0]);
          Comment("Puede que necesite aumentar el valor de 'Número máximo de barras en el gráfico'");
         }
       else Print("No se pudo conseguir la hora de apertura del bar más antiguo disponible");
       ResetLastError();
      }
Sería más correcto comprobar el historial disponible antes de las operaciones CopyXXX(), analizar el número de barras del gráfico mediante la función
TerminalInfoInteger(TERMINAL_MAXBARS);
y hacer un intento de intercambiar los datos (si tiene sentido) como en el ejemplo Organizar el acceso a los datos
 

Ahora funciona perfectamente. Por favor, descargue los archivos actualizados.

La documentación completa de los códigos fuente del artículo ya está disponible: El histograma de precios (perfil de mercado) y su implementación en MQL5

La documentación ha sido creada por Doxygen.

Vea los detalles en el artículo Documentación autogenerada para el código MQL5.

The Price Histogram (Market Profile) and its implementation in MQL5
The Price Histogram (Market Profile) and its implementation in MQL5
  • 2010.01.28
  • Dmitry
  • www.mql5.com
The Market Profile was developed by trully brilliant thinker Peter Steidlmayer. He suggested to use the alternative representation of information about "horizontal" and "vertical" market movements that leads to completely different set of models. He assumed that there is an underlying pulse of the market or a fundamental pattern called the cycle of equilibrium and disequilibrium. In this article I will consider Price Histogram - a simplified model of Market Profile, and will describe its implementation in MQL5.
 

Ahora todo funciona. Por favor, descargue los archivos actualizados.

Añadida documentación a los códigos fuente dados en el artículo: Market_Profile_Help.rar


La documentación fue creada con la ayuda del programa Doxygen.

Detalles en el artículo Creación automática de documentación para programas MQL5.

 
Automated-Trading писал(а) # :

Ahora todo funciona. Por favor, descarga los archivos actualizados.

No funciona, no puede manejar el tiempo de la primera barra y da una advertencia al compilar. "conversión implícita de 'number' a 'string' ClassPriceHistogram.mqh 404 10"

build 256 adjunto el log.