Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1439

 
ANDREY:

Gracias por los valiosos consejos. Ahora sólo leo la documentación mientras escribo el código, cuando me encuentro con una pregunta de la que no sé la respuesta. Nunca me había encontrado con la necesidad de escribir datos en archivos mientras escribía código, así que es un tema totalmente nuevo para mí.
Dime, ¿no se puede realizar mi idea de una manera más sencilla, sin escribirla en un archivo? Como en mi código. Este no es un código de trabajo, sino para ilustrar mi idea de cómo encontrar el mínimo entre dos órdenes adyacentes abiertas en una vela minuto
Gracias por la ayuda.

Es decir, escribí el precio de cada tick directamente en el array, no en un archivo.

No sé cómo puedes leer así. Cuando empecé a programar, cuando me metía en la documentación de cualquier cosa trivial, la programación se detenía. Cada vez me sale más... Leíste sobre una función que escribía en un archivo y no viste nada al lado. Te han hablado de otro y estás eufórico por lo que has oído. ¿Qué más hay? ¿Has leído algo? ¿Qué otras funciones existen para escribir en un archivo? ¿Y cómo hay que leer para hacer esas preguntas? Te dije que escribieras un array y leyeras un array. Y quieres escribir .csv y leer en un array. No es así como funciona. Y si sólo lo necesitas todo... en el momento, ¿por qué escribirlo en un archivo?
 
Valeriy Yastremskiy:

Se obtiene su precio, se puede fijar el tiempo pero se espera una nueva orden. y luego se pide el tiempo máximo o mínimo del tick. un tick es un tick después de todo.

El precio de un tick es siempre un tick. No se trata de la variable x baja, sino de la expresión X =LoY[1]. LoY[1] es price..... sin opciones.
"..... y luego se pide el tiempo de tic máximo o mínimo...."

Eso es lo que pasa con esta idea, el tiempo no está involucrado en absoluto ..... sólo el precio mínimo de la vela, que sólo encuentro dos veces. La primera vez cuando se abre la primera orden y la segunda vez cuando se abre la segunda orden. Luego comparo esos precios y saco una conclusión: si la primera orden se abrió antes de que se formara LoY[] o después. Al principio, pensé que necesitaba información sobre el tiempo para resolver mi problema. Pero entonces caí en la cuenta.... y me pareció que podemos prescindir del tiempo y que sólo basta con el precio mínimo de una vela.

 
Alexey Viktorov:
No sé cómo puedes leer así. Cuando empecé a programar, entrar en la documentación para cualquier cosa trivial suponía detener la programación. Cada vez me sale más... Leíste sobre una función que escribía en un archivo y no viste nada al lado . Te han hablado de otro y estás eufórico por lo que has oído. ¿Qué más hay? ¿Has leído algo? ¿Qué otras funciones existen para escribir en un archivo? ¿Y cómo hay que leer para hacer esas preguntas? Te dije que escribieras un array y leyeras un array. Y quieres escribir .csv y leer en un array. No es así como funciona. Y si sólo lo necesitas todo... en el momento, ¿por qué escribirlo en un archivo?

Creo que es útil fijarse en lo que está al lado cuando el material está conectado lógicamente en su significado y presentado en una secuencia comprensible. Como suele ocurrir en los libros de texto. No siento esta conexión y coherencia en el Manual. Admito que puedo tenerlas, pero la cuestión está relacionada con mis peculiaridades cognitivas.

Todavía no entiendo lo principal. ¿Por qué debo escribir los datos de mi código en el archivo si no es necesario? ¿En qué circunstancias tiene sentido escribir los datos de un programa en un archivo .... en general y en mi caso. Según me parece por tus palabras, la razonabilidad de escribir datos en un archivo está de alguna manera condicionada por la frecuencia con la que voy a utilizar mi código. Pero sigo sin entender el sentido de esta condicionalidad. ¿Quizás el punto es que los mismos datos del archivo pueden ser usados también desde mi otro programa? Pero entonces otro programa necesitaría exactamente estos datos escritos en el archivo. Y esto está lejos de ser una certeza...
Gracias por la ayuda.

 
Colegas, ¡hola! Estoy buscando un indicador de renta variable que muestre el porcentaje de detracción actual sobre la renta variable, así como las curvas en tiempo real del saldo y la renta variable. No hago un seguimiento sobre la marcha porque sí.
 
Alexey Viktorov:
Te dije que escribieras un array y leyeras un array. Y quieres escribir .csv y leer el array. No funciona así. Y si sólo lo necesitas todo... de momento, ¿por qué escribir en un archivo?

También me intrigó la frase en rojo. Porque no quería escribir un .csv y leer en un array. Porque todavía no sé cómo hacerlo. Sé que existen archivos de texto con extensión .csv. Pero, ¿he tocado de alguna manera un archivo con esta extensión en mi código? De la matriz .... read.... Losiento :=)... pero tampocosé cómoleerenun array y aún no entiendo lo que significa.
Te agradecería que reescribieras mi código (es bastante corto) para que tuviera la función
de escribir en el archivo y la función de leer del archivo.
Como este código es mío, aprenderé rápidamente información nueva para mí.
Gracias una vez más, y discúlpeme por no ser tan avanzado como usted y hacer preguntas probablemente estúpidas (en su opinión profesional).

Quiero aprender mql4 y luego mql5 de forma estable. No se trata de una moda momentánea. Además, ahora tengo más tiempo para ello.
Otra cosa es que estoy recibiendo nueva información no tan rápido como me gustaría.... pero lo estoy haciendo. Gracias a ti y a los demás participantes de este foro. Por lo que estoy agradecido a todos.

 
ANDREY:

También me intrigó la frase en rojo. Porque no quería escribir un .csv y leer en un array. Porque todavía no sé cómo hacerlo. Sé que existen archivos de texto con extensión .csv. Pero, ¿he tocado de alguna manera un archivo con esta extensión en mi código? De la matriz .... read.... Losiento :=)... pero tampocosé cómoleerenun array y aún no entiendo lo que significa.
Te agradecería que reescribieras mi código (es bastante corto) para que tuviera la función
de escribir en el archivo y la función de leer del archivo.
Como este código es mío, aprenderé rápidamente información nueva para mí.
Gracias una vez más y discúlpeme por no ser tan avanzado como usted y hacer preguntas probablemente tontas a su opinión profesional.

Andriy, no escarbo en los códigos de los demás. Prefiero explicar, si no puedo entender lo que está escrito en la documentación. Si no has leído la documentación o no has profundizado en ella, obviamente no has entendido nada. Y la forma que sugieres no será un entrenamiento, sino una "pecera" para la que quieres hacer algo similar en el futuro. Pero este enfoque no siempre funciona.

 
ANDREY:

Gracias por los consejos. Pero...... Esta es una captura de pantalla de la Documentación sobre operaciones de archivo

Me parece que la guía está diseñada para usuarios ya avanzados. En su tutorial, Kovalev explica detalladamente qué se necesita y para qué sirve antes de entrar en detalles.

Pero su tutorial, como dicen aquí, es irremediablemente anticuado, e incluso peligroso para los principiantes.

No, no lo es. Sólo hay que leerlo entendiendo que ha habido mejoras y cambios lingüísticos. Será mejor que inserte el código primero creando una plantilla en el meta-editor. Habrá menos errores. En la lógica de los algoritmos el libro de texto es relevante. Y escribir en el archivo allí es correcto. Echa un vistazo al libro de Dmitry Fedoseyev sobre el µl5. Creo que puso el suyo en Googleplay.

 
Valeriy Yastremskiy:

No, no está anticuado. Sólo hay que leer entendiendo que ha habido mejoras lingüísticas y que hay cambios. Es mejor insertar el código creando primero una plantilla de programa en el meta-editor. Habrá menos errores. En la lógica de los algoritmos el libro de texto es relevante. Y escribir en el archivo allí es correcto. Echa un vistazo al libro de Dmitry Fedoseyev sobre el µl5. Creo que puso el suyo en Googleplay.

Gracias por el consejo. Ya he empezado a leer FILE OPERATIONS del tutorial de Kovalev. Efectivamente... algo empieza a estar claro. Tenía entendido que todos los EAs que estaba probando leían archivos de texto con precios de barras (aunque no creados por mi programa) con extensión .cvv ubicados en la carpeta del terminal Tester.
En otras palabras, la información (datos) de cualquier programa se escribe en el archivo y leer estos datos desde el archivo, también por cualquier programa. Me parece que los archivos almacenan una gran cantidad de datos que no es razonable almacenar en el programa. Algo así como un archivo mqh.
Si quieres explicarme lo que significa la frase de Alexey Victorov : "....¿Quieres escribir .csv y leer array....." del post con referencia a mi código del post
. Pensé que se refería al archivo de texto .cvv, con los precios de las barras del directorio del probador. Pero lo que quiere decir exactamente, todavía no lo entiendo. No soy yo quien escribe estos archivos .cvv, sino el programa del distribuidor Alpari... Cómo el programa lee de una matriz - en general entiendo un poco ... Accede a una celda de un array por su dirección, se mete dentro de la celda y accede al valor de la misma (es decir, la lee). ¿Cómo puede un programa leer dentro de una matriz en lugar de fuera de ella? Se trata de una contradicción irresoluble, ...., como me parece a mí, en mi opinión de lego. Creo, por alguna razón, que en un array sólo se pueden escribir algunos valores. Y sólo se puede leer de un array

 
ANDREY:

...
Si no te importa explicarme a qué se refiere la frase de Alexey Victorov "....Y quieres escribir .csv y leer en array....." del post en relación con mi código del post
Según me pareció se refiere a un archivo de texto .cvv, con los precios de las barras del catálogo de Tester. Pero lo que quiere decir exactamente, todavía no lo entiendo. No soy yo quien escribe estos archivos .cvv, sino el programa del distribuidor Alpari... Cómo el programa lee de una matriz - en general entiendo un poco ... Accede a una celda de un array por su dirección, se mete dentro de la celda y accede al valor de la misma (es decir, la lee). ¿Cómo puede un programa leer dentro de una matriz en lugar de fuera de ella? Esto es una contradicción irresoluble .... me parece en mi opinión de lego. Creo, por alguna razón, que en un array sólo se pueden escribir algunos valores. Y sólo se puede leer desde el array.

Sí, y no me importa. No se está escarbando en el código.

FileWrite

Escribe los datos en un archivo CSV o TXT

FileWriteArray

Escribe matrices de cualquier tipo, excepto matrices de cadenas, en un archivo de tipo BIN .


Leer en un array, es decir, desde un archivo. Mira la función

uint  FileReadArray( 
   int    file_handle,               // handle файла 
   void&  array[],                   // массив для записи 
   int    start=0,                   // стартовая позиция для записи в массив 
   int    count=WHOLE_ARRAY          // сколько читать 
   );

Pasa un array preparado y escribe en él.

Sólo se puede utilizar la función de lectura de arrays desde un archivo escrito con la función de escritura de arrays.

En principio, se puede leer cualquier archivo que no contenga cadenas en un array. Pero será sólo el llenado elemento por elemento de la matriz.

ps;

Gracias a la casualidad, al menos yo mismo he leído la documentación y he encontrado nuevas funciones de escritura y lectura de arrays en mql5.

Документация по MQL5: Файловые операции / FileSave
Документация по MQL5: Файловые операции / FileSave
  • www.mql5.com
FileSave - Файловые операции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Para mí tampoco es difícil. No se trata de hurgar en el código.

FileWrite

Escribe los datos en un archivo CSV o TXT

FileWriteArray

Escribe cualquier tipo de arrays, excepto arrays de cadenas, en un archivo de tipo BIN .



Gracias al azar, al menos he leído la documentación y he encontrado nuevas funciones en mql5 para la escritura de arrays y la lectura de arrays.

Me alegro de haberte ayudado :=) :=) :=)

Ahora sobre mi código, que probablemente es tan malo que es desagradable hurgar en él. Pero dígame al menos cuál sería la ventaja de mi código, si escribiera un único array (con valores de precios) de este código en un archivo, y luego el programa lo leyera de este archivo y utilizara sus valores en los cálculos posteriores. Y el array de sólo 60 elementos. ¿Qué es exactamente lo que sería óptimo en mi código?
Gracias por su ayuda.
Razón de la queja: