Aprendizaje automático en el trading: teoría, práctica, operaciones y más - página 1284

 
Maxim Dmitrievsky:

En mi 1er artículo guardado y cargado "rápido" vía binaria. En el 2º artículo cargado lento vía deserialización, la velocidad de guardado no parece resentirse


Tal vez los archivos son pequeños allí. Pero si se trata de 300 Mb, probablemente habrá una diferencia notable

 
elibrarius:

Tal vez haya archivos pequeños. Y si se trata de 300 mb, probablemente habrá una diferencia notable

Si guarda en ANSI, es la mitad que en unicode. Pues ahí se obtiene la carga directa en la estructura del bosque, en mi opinión, no sé cómo más rápido

por lo menos ahora es más rápido, como en el 1er artículo me parece bien ahora.

int setRDF=FileOpen("RDFBufsize"+_Symbol+(string)_Period+".txt",FILE_READ|FILE_WRITE|FILE_CSV|FILE_ANSI|FILE_COMMON);
      RDF.m_bufsize=(int)FileReadNumber(setRDF);
      FileClose(setRDF);

      setRDF=FileOpen("RDFNclasses"+_Symbol+(string)_Period+".txt",FILE_READ|FILE_WRITE|FILE_CSV|FILE_ANSI|FILE_COMMON);
      RDF.m_nclasses=(int)FileReadNumber(setRDF);
      FileClose(setRDF);

      setRDF=FileOpen("RDFNtrees"+_Symbol+(string)_Period+".txt",FILE_READ|FILE_WRITE|FILE_CSV|FILE_ANSI|FILE_COMMON);
      RDF.m_ntrees=(int)FileReadNumber(setRDF);
      FileClose(setRDF);

      setRDF=FileOpen("RDFNvars"+_Symbol+(string)_Period+".txt",FILE_READ|FILE_WRITE|FILE_CSV|FILE_ANSI|FILE_COMMON);
      RDF.m_nvars=(int)FileReadNumber(setRDF);
      FileClose(setRDF);

      setRDF=FileOpen("RDFMtrees"+_Symbol+(string)_Period+".txt",FILE_READ|FILE_WRITE|FILE_BIN|FILE_ANSI|FILE_COMMON);
      FileReadArray(setRDF,RDF.m_trees);
      FileClose(setRDF);

La última es la más pesada, la que hay que escribir/leer en binario

 
Maxim Dmitrievsky:

Si guarda en ANSI, es la mitad que en unicode. Pues ahí se obtiene la carga directa en la estructura del bosque, en mi opinión, no sé cómo más rápido

por lo menos ahora es más rápido, como en el 1er artículo me parece bien ahora.

El último - el más pesado, que es necesario para escribir/leer el binario.

Así es más o menos como me lo imaginaba)
Pero debería ser aún más rápido en binario y el tamaño del archivo es mucho menor. Y si la matriz de datos se convierte en un flotador antes de guardarla, el tamaño será dos veces menor.
Pero no he entendido por qué iba a funcionar.

setRDF=FileOpen("RDFMtrees"+_Symbol+(string)_Period+".txt",FILE_READ|FILE_WRITE|FILE_BIN|FILE_ANSI|FILE_COMMON);

Se leen y escriben datos binarios en el archivo de texto. Y antes de eso se escribe en forma de texto. MQL parece ser capaz de combinar estas funciones de alguna manera. Sería más lógico hacerlo así

FILE_READ|FILE_WRITE|FILE_BIN|FILE_COMMON
guardar y leer.
 
elibrarius:

Así es más o menos como me lo imaginaba)
Pero el binario debería ser aún más rápido y el tamaño del archivo será muchas veces menor. Y si convertimos la matriz de datos a float antes de guardarla, el tamaño será dos veces menor.
Pero no he entendido por qué iba a funcionar.

Se leen datos binarios en el archivo de texto. Pero antes se escribe como texto. MQL parece ser capaz de combinar estas funciones de alguna manera. Sería más lógico hacerlo así

guardar y leer.

La extensión no importa aquí, puedes usar cualquier extensión. Lo principal es la bandera|FILE_BIN.

 
Maxim Dmitrievsky:

La extensión no importa aquí, puedes usar cualquier extensión. Lo principal es la bandera|FILE_BIN.

No me he dado cuenta de los diferentes nombres de los archivos. Puedes guardarlos todos en uno.
 
elibrarius:
ah - no me di cuenta de que los nombres de los archivos son diferentes. Puedes guardar todo en uno.

puede estar en 1, los otros no tienen casi ningún efecto en el rendimiento, sólo el último con la estructura del bosque, el más pesado. El resto está allí por 1 término

 
Maxim Dmitrievsky:

puede estar en 1, los otros no tienen casi ningún efecto en el rendimiento, sólo el último con la estructura del bosque, el más pesado. El resto está allí por 1 término

entonces puedes confundirte en este montón de archivos)
Y 1 archivo para 1 modelo es más conveniente
 
Elibrarius:
entonces puedes confundirte en este montón de archivos)
Y 1 archivo para 1 modelo es más conveniente.

Pues sí, los otros archivos son sencillos: número de árboles, número de características, número de clases y número de muestras. Si los conoces de antemano, ni siquiera necesitas guardarlos. Acabo de poner lo que estaban en el valor predeterminado, y guardar sólo la estructura con divisiones, así, todavía contar muestras varía.

 
elibrarius:

No hay tiempo, es cierto. Incluso leer el foro me distrae de cosas más útiles. Y estás hablando de preparar un lanzamiento... Son unas cuantas horas para hacerlo todo correctamente y proporcionar y explicar, y luego pedir apoyo)).

Usted es un programador - como programador me siento mucho más cómodo cuando está claro el qué y el por qué. Entra en el código. Puedes averiguar la función de construcción de árboles en un par de horas y meter la limitación del número de muestras y todo lo que quieras en ella.

Se ha ido para hacer el prefetching de los predictores.

No soy programador, así que trabajar con código requiere mucho esfuerzo, pero en general, entiendo la posición.

 
Aleksey Vyazmikin:

No soy programador, por lo que trabajar con código requiere mucho esfuerzo, pero en general se entiende la postura.

No te sientas tan mal). El hecho de que tengas 5 productos (¿o tal vez no los escribiste?) y un montón de señales (probablemente de tus propios Asesores Expertos), que te permiten vivir de las ganancias de Forex.

Sigo en la búsqueda y vivo de otra cosa.
Razón de la queja: