Asesores Expertos: Programación en MQL5 para tráders: códigos fuente del libro: Parte 7 - página 5

 
thelux9 #:

Esto es exactamente lo que necesitaba.

Por favor, asegúrese de que tiene la última actualización, porque no citó el más reciente publicado en este hilo.

 
Por favor, arréglalo.
//+------------------------------------------------------------------+
//| Clase principal para leer opt-file y exportarlo a CSVs ||
//+------------------------------------------------------------------+
class OptReader
{
   TesterOptCacheHeader header;
   TestCacheInputExtended inputs[];
   uchar bufferOfInputs[];
   int shapshot[];
   AutoPtr<RecordBase> records;
   
   bool read(const int handle)
   {
      SAFE(FileReadStruct(handle, header));
      if(header.parameters_total)
      {
         TestCacheInput temp[];
         SAFE(FileReadArray(handle, temp, 0, header.parameters_total));
         const int n = ArrayResize(inputs, header.parameters_total);
         for(int i = 0; i < n; ++i)
         {
            inputs[i] = temp[i]; // no se puede convertir el parámetro 'TestCacheInput' en 'const TestCacheInputExtended&'
            inputs[i].extend();
         }
      }


//+------------------------------------------------------------------+
//| Estructura de entrada con campos stringificados |
//+------------------------------------------------------------------+
struct TestCacheInputExtended: public TestCacheInput
{
   using TestCacheInput::operator=;
 
fxsaber #:
Por favor, arréglalo.


Gracias. Lo he arreglado un poco diferente.

struct TestCacheInputExtended: public TestCacheInput
{
   ...   
   void operator=(const TestCacheInput &other)
   {
      TestCacheInput::operator=(other);
      extend();
   }
};

Es más conveniente y lógico, porque extend() no necesita ser llamado explícitamente.

NB: el archivo adjunto contiene otras ediciones útiles.

Archivos adjuntos:
OptReader.mqh  24 kb
 
Stanislav Korotky #:

Gracias. Lo arreglé un poco diferente.

Es más conveniente y lógico, porque extend() no necesita ser llamado explícitamente.

NB: el archivo adjunto contiene otras ediciones útiles.

Gracias, ahora es aún más práctico.
 

Reenviado de otro Tema:

Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading

CalendarRecordById.mq5 - Errores

Ryan L Johnson, 2025.12.19 17:44

@MetaQuotes Soporte, el indicador de calendario antes mencionado publicado en el contenido del Libro MQL5 parece contener código obsoleto.

El archivo está referenciado en Lectura de registros de eventos por ID - Herramientas avanzadas de lenguaje - Programación MQL5 para Traders.

El archivo, en sí, se encuentra en: https: //www.mql5.com/en/code/download/45596/CalendarRecordById.mq5.

Por supuesto, usted tendrá que descargar los archivos de biblioteca incluidos para reproducir los problemas.

errores

Personalmente, he utilizado una solución para conseguir lo que necesito en mi código. Mi propósito aquí es asegurar que la documentación se mantenga actualizada.


 
Ryan L Johnson #:

Reenviado de otro tema:

Por supuesto, MQL5 está cambiando constantemente, y por desgracia MQ lo hace de una manera que a menudo rompe la retrocompatibilidad. No creo que esta sea una forma adecuada de mejorar la plataforma, pero de todos modos - lo único que podemos hacer es solucionar los problemas mediante parches, de acuerdo con la nueva sintaxis. Por ejemplo, en este caso basta con añadir la línea única:

struct MqlCalendarRecord: public MqlCalendarValue
{
   using MqlCalendarValue::operator=;
   ...
};
Sigue las noticias oficiales sobre los cambios en la sintaxis de MQL5.