Autoaprendizaje del lenguaje MQL5 desde cero - página 27

 
Vasiliy Sokolov:

Esto es un caballo esférico en el vacío, no un diagrama de flujo de un EA que funciona. Algunos bloques pueden no existir en absoluto. Los bloques pueden ser reordenados. Cualquier programa MCL es un manejador de eventos. Este es el principal postulado que no está en el esquema, lo que significa que engaña a los lectores. Mi consejo: no leas este material antiguo. El libro de texto de Kovalev está anticuado. Mucha de la información que contiene no es correcta, especialmente en lo que respecta al sistema de órdenes de MT5. Kovalev ofrece esencialmente memorizar este ridículo esquema, luego memorizar conjuntos de eventos, y luego tira del búho en el globo: donde supuestamente este esquema se implementa en el programa Expert Advisor. No hay planes en MKL. Existen patrones típicos de uso del entorno comercial. Pero no existe un esquema universal, que hay que entender y recordar. Todos los "esquemas" se componen mediante funciones y reacciones de estas funciones a los acontecimientos. Además, hay datos que se solicitan... de nuevo por funciones.

Con el debido respeto. No existe tal cosa. Sólo que los estudiantes entiendan que se trata de un Asesor Experto educativo y que no está permitido operar con él. Y para poder operar, hay que aprender estrategias de trading... Pero esto es después de aprender el idioma. Por cierto, la explicación es buena y clara. Lo que a menudo echamos de menos aquí, sobre todo en los comentarios en el kodobase. A veces es difícil entender lo que está escrito)))) Estoy de acuerdo, no hay tal cosa en el buen código)

 
MrBrooklin:

En el libro de texto MQL4 de Sergei Kovalev encontré lo que buscaba. Este es un extracto del libro:"Estructura de un asesor experto simple . A continuación se muestra la estructura básica de un Asesor Experto sencillo basado en varios bloques funcionales, cada uno de los cuales realiza una determinada parte independiente de los cálculos".


En este sentido, necesito el consejo de algún experto, ¿este esquema estructurado es aplicable para escribir un Asesor Experto en MQL5, o debo añadir algún otro bloque?

Saludos cordiales, Vladimir.

Sí, este esquema le conviene. Es sencillo y ordenado. Una vez que domines el lenguaje, puedes complicar/cambiar/añadir bloques como creas conveniente, pero puedes empezar con este. Este es el esquema correcto.
 
Vasiliy Sokolov:

Esto es un caballo esférico en el vacío, no un diagrama de flujo de un EA que funciona. Algunos bloques pueden no existir en absoluto. Los bloques pueden ser reordenados. Cualquier programa MCL es un manejador de eventos. Este es el principal postulado que no está en el esquema, lo que significa que engaña a los lectores. Mi consejo: no leas este material antiguo. El libro de texto de Kovalev está anticuado. Mucha de la información que contiene no es correcta, especialmente en lo que respecta al sistema de órdenes de MT5. Kovalev ofrece esencialmente memorizar este ridículo esquema, luego memorizar conjuntos de eventos, y luego tira del búho en el globo: donde supuestamente este esquema se implementa en el programa Expert Advisor. No hay planes en MKL. Existen patrones típicos de uso del entorno comercial. Pero no existe un esquema universal, que hay que entender y recordar. Todos los "esquemas" se componen mediante funciones y reacciones de estas funciones a los acontecimientos. Además, hay datos que se piden... de nuevo por funciones.

No entiendo su crítica. El esquema es lógico, todas las acciones están ordenadas secuencialmente. Da una idea de la estructura correcta del EA. Por supuesto, se pueden mezclar las cosas, eliminar algunas y añadir otras, pero la estabilidad de un programa así se vería afectada de forma dramática. En general, no veo de qué hay que quejarse en el esquema.
 
Реter Konow:
No entiendo su crítica. El esquema es lógico, todas las acciones están ordenadas secuencialmente. Da una idea de la estructura correcta de un EA. Por supuesto, podemos mezclar las cosas y desechar algunas, pero la estabilidad de este programa cambiará drásticamente. En general, no veo de qué hay que quejarse en el esquema.

Bien, de acuerdo. Permítanme que intente explicarlo.

1) He aquí un esquema. Se dan algunos bloques (no se explica qué es un bloque, aplicado al programa mql. Tal vez sea una función, tal vez un conjunto de procedimientos, tal vez otra cosa, pero bueno, intuyamos lo que es un bloque al mismo nivel que el autor).

2) Los bloques forman una cadena desde el principio del programa hasta su final. En algunos bloques, la cadena de ejecución del programa se divide en dos (pero, por cierto, ¿por qué sólo dos? ¿No se pueden dividir los tres en cuatro? Y si se necesitan cuatro, ¿cómo mostrarlo en un diagrama? ¿Pasamos al formato A1?). Aparentemente, es una forma de mostrar la ramificación.

3) Hay algunos bloques muy extraños, como el de "mensajes" ¿Qué tipo de bloque es este? Probablemente algún tipo de notificación del programa de que no hay condiciones adecuadas: a cada tick vendrá un mensaje: "Demasiado caro para comprar, demasiado caro para comprar, demasiado...". - genial, por supuesto, pero todo son conjeturas.

4) El bloque más extraño es el de "gestión de errores". Puedes entrar en él, pero no puedes salir de él. El programa captó un error y se sienta en este bloque (se cuelga probablemente hasta un reinicio completo, incluso mejor hacer que el terminal se cuelga de forma permanente, lo que no haría más errores - esta es la idea!)

5) Si iniciamos el programa por primera vez, o no hay posiciones abiertas en la cuenta, entonces el bloque de cierre de órdenes ¿qué hace? Nada. Pero este esquema lógico debería llevarnos al bloque de cierre del pedido. Lo conseguimos porque el esquema está estructurado de forma estricta y jerárquica. Todos los bloques deben ser procesados uno a uno, aunque sea un procesamiento inútil y despiadado de una lista de posiciones vacía.

6) El bloque de cálculo del valor de la orden se coloca debajo del bloque de cierre de la orden. ¿Cómo puede ser? Tal vez cerremos una orden en función de su "valor". No está claro lo que ocurre aquí.

Y miro este esquema y no entiendo muy bien cómo podemos recomendar que se estudie esta "cosa"? ¿Cómo puede considerarse bueno, grande y educativo?

 
Vasiliy Sokolov:

Bien, de acuerdo. Permítanme que intente explicarlo.

1) He aquí un esquema. Se dan algunos bloques (no se explica qué es un bloque, aplicado al programa mql. Tal vez sea una función, tal vez un conjunto de procedimientos, tal vez otra cosa, pero bueno, intuyamos lo que es un bloque al mismo nivel que el autor).

2) Los bloques forman una cadena desde el principio del programa hasta su final. En algunos bloques, la cadena de ejecución del programa se divide en dos (pero, por cierto, ¿por qué sólo dos? ¿No se pueden dividir los tres en cuatro? Y si se necesitan cuatro, ¿cómo mostrarlo en un diagrama? ¿Pasamos al formato A1?). Aparentemente, es una forma de mostrar la ramificación.

3) Hay algunos bloques muy extraños, como el de "mensajes" ¿Qué tipo de bloque es este? Probablemente algún tipo de notificación del programa de que no hay condiciones adecuadas: a cada tick vendrá un mensaje: "Demasiado caro para comprar, demasiado caro para comprar, demasiado...". - genial, por supuesto, pero todo son conjeturas.

4) El bloque más extraño es el de "gestión de errores". Puedes entrar en él, pero no puedes salir de él. El programa captó un error y se sienta en este bloque (se cuelga probablemente hasta un reinicio completo, incluso mejor hacer que el terminal se cuelga de forma permanente, lo que no haría más errores - esta es la idea!)

5) Si iniciamos el programa por primera vez, o no hay posiciones abiertas en la cuenta, entonces el bloque de cierre de órdenes ¿qué hace? Nada. Pero este esquema lógico debería llevarnos al bloque de cierre del pedido. Lo conseguimos porque el esquema está estructurado de forma estricta y jerárquica. Todos los bloques deben ser procesados uno a uno, aunque sea un procesamiento inútil y despiadado de una lista de posiciones vacía.

6) El bloque de cálculo del valor de la orden se coloca debajo del bloque de cierre de la orden. ¿Cómo puede ser? Tal vez cerremos una orden en función de su "valor". No está claro lo que ocurre aquí.

Y miro este esquema y no entiendo muy bien cómo podemos recomendar que se estudie esta "cosa"? ¿Cómo puede considerarse bueno, maravilloso y educativo?

DE ACUERDO. Ahora la crítica es más clara. Bueno, en muchos aspectos se puede estar de acuerdo si se mira "bajo la lupa", pero no tiene sentido hacerlo. Un principiante debería hacerse una idea rápida, generalizada y simplificada de la composición más común y correcta (en el sentido global) del EA.

Un bloque es un conjunto lógicamente aislado de condiciones, comprobaciones, funciones y programas.

El diseño de los bloques del programa implementa la correcta ejecución del mismo.

La ramificación y la jerarquía profunda de los enlaces de los bloques no se muestran en el diagrama para no confundir al estudiante. Todo se simplifica deliberadamente y esto es correcto desde el punto de vista pedagógico. Si Kovalev hubiera descrito una "galería" de posibles jerarquías de estructuras durante 20 páginas, ¿habría sido mejor? Probablemente no después de todo...) Pero, sí, en realidad todo es más complicado y variado en la vida que en el diagrama. Pero hay que empezar por uno sencillo.
 
Реter Konow:
Un principiante debe hacerse una idea básica, generalizada y simplificada de la composición más común y correcta (en el sentido global) del EA.

Aha, bueno, es decir, globalmente Kovalev tiene razón, entonces qué pasa con los errores en el esquema - un principiante entenderá dónde están estos errores y dónde se dibuja correctamente. Es un principiante para que para obtener la esencia de la representación generalizada del dispositivo del asesor. Y qué es un bloque, qué son las flechas, y por qué tengo que congelar después de manejar los errores- un principiante lo pensará con su ingenio de alta potencia.

 
Реter Konow:
Bien. Ahora la crítica es más clara. Bueno, en muchos aspectos se puede estar de acuerdo si se mira "bajo la lupa", pero no tiene sentido hacerlo. Un principiante debería hacerse una idea rápida, generalizada y simplificada de la composición de EA más extendida y correcta (en el sentido global).

Un bloque es un conjunto lógicamente aislado de condiciones, comprobaciones, funciones y programas.

La estructura de bloques implementa la correcta ejecución del programa.

La ramificación y los enlaces jerárquicos de los bloques no se muestran en el diagrama para no confundir al alumno. Todo se simplifica deliberadamente y esto es correcto desde el punto de vista pedagógico. Si Kovalev hubiera descrito una "galería" de posibles estructuras jerárquicas durante 20 páginas, ¿habría sido mejor? Probablemente no después de todo...) Pero, sí, en realidad todo es más complicado y variado en la vida que en el diagrama. Pero hay que empezar por uno sencillo.

¡Hola Peter! Estoy resumiendo la información de todos los mensajes. En el lenguaje de programación MQL5 no existe un algoritmo BASE claramente definido para la creación y ejecución de un programa (script, Expert Advisor). Todos los algoritmos son únicos a su manera y no pueden tener un llamado "núcleo", que luego se puede ampliar. Entonces resulta que mi programa de autoaprendizaje está en un callejón sin salida? Si alguien se ha dado cuenta, todos mis guiones anteriores siguen un esquema de complicación, es decir, de lo simple a lo complejo. En esencia, necesito romper la propia noción de organizar los pensamientos en mi cabeza. ¿Funciona así?

Respetuosamente, Vladimir.

 
MrBrooklin:

¡Hola Peter! Resumiré la información de todos los mensajes. En el lenguaje de programación MQL5 no existe un algoritmo BASE claramente definido para crear y ejecutar un programa (script, Expert Advisor). Todos los algoritmos son únicos a su manera y no pueden tener un llamado "núcleo", que luego se puede ampliar. Entonces resulta que mi programa de autoaprendizaje está en un punto muerto? Si alguien se ha dado cuenta, todos mis guiones anteriores siguen un esquema de complicación, es decir, de lo simple a lo complejo. En esencia, necesito romper la propia noción de organizar los pensamientos en mi cabeza. ¿Funciona así?

Respetuosamente, Vladimir.

No. De ninguna manera. La crítica de Vassily no ha disminuido en absoluto la corrección lógica del esquema de la EA. Sí, puedes encontrar algunos fallos y "pillarlos", pero en general es correcto, y eso es lo más importante. Este esquema le ayudará a empezar a escribir sus propios EAs cuando llegue. En general, no hay diferencia entre mql4 y mql5. Sigue aprendiendo como hasta ahora.
 
Vasiliy Sokolov:

Aha, bueno, es decir, globalmente Kovalev tiene razón, entonces qué pasa con los errores en el esquema - un principiante entenderá dónde están estos errores y dónde está correctamente dibujado. Es un principiante para que para obtener la esencia de la representación generalizada del dispositivo del asesor. Qué es un bloqueo, qué son las flechas y por qué hay que congelar después de manejar los errores: un principiante lo pensará con su poderosa mente.

De todos modos, no tenemos un libro de texto mejor, así que ....

Los pequeños errores no son una excusa para pararse a "pegar" el código de otros, como hace mucha gente. Además, ignoras la corrección básica de la presentación del material, que es mucha.
 
MrBrooklin:

¡Hola Peter! Resumiré la información de todos los mensajes. En el lenguaje de programación MQL5 no existe un algoritmo BASE claramente definido para crear y ejecutar un programa (script, Expert Advisor). Todos los algoritmos son únicos a su manera y no pueden tener un llamado "núcleo", que luego se puede ampliar. Entonces resulta que mi programa de autoaprendizaje está en un punto muerto? Si alguien se ha dado cuenta, todos mis guiones anteriores siguen un esquema de complicación, es decir, de lo simple a lo complejo. En esencia, necesito romper la propia noción de organizar los pensamientos en mi cabeza. ¿Funciona así?

Respetuosamente, Vladimir.

¡Correcto! Todo el mundo intenta aprender a programar, utilizando concepciones incorrectas del programa, basadas en la experiencia vital. Por ejemplo, que un programa es como el texto de un libro con un índice, una introducción, un índice y una conclusión. Es decir, que el programa es una especie de esquema secuencial desde el principio hasta el final. En las primeras etapas, esta idea funciona, pero luego, a medida que el programa se vuelve más complejo, surgen dificultades, y no es posible escribir un programa de trabajo fiable de ninguna manera. Kovalev es muy bueno prestando servicios bajistas: intenta explicar al lector, utilizando su accesible aparato conceptual, que el programa es el mismo libro con tal o cual esquema. ¡Pero no hay esquemas! El script tiene un "esquema" fundamentalmente diferente al del Asesor Experto, y el Asesor Experto tiene un esquema diferente al del indicador.

Razón de la queja: