
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¡Buen día y buen humor a todos!
Sigo estudiando el lenguaje de programación MQL5. Hice un pequeño cambio en el código de Vasiliy Sokolov para abrir sólo una posición por día, como se pretendía originalmente en el algoritmo del Asesor Experto. El cambio está resaltado en amarillo.
Saludos cordiales, Vladimir.
El bloque OnInit también está sobredimensionado y todavía no está escrito correctamente. En primer lugar, hay que intentar escribir identificadores, no números. Devuelve INIT_SUCCEED en lugar de -1. En segundo lugar, el cambio es excesivo aquí. Este código debe contener un if o un switch. Primero hay que escribir uno y luego el otro - sólo aceite.
En tercer lugar, tenemos que controlar todos los tipos de cuentas. Tenemos Demo y luego tenemos Real. Y luego está el Concurso. Pero incluso si no hubiera una tercera cuenta, debería haber un talón que recogiera todas las demás variantes:
Probablemente sería más razonable explicar cómo funcionan las excepciones, de lo contrario no se entenderá por qué debería haber algún tipo de control sobre algo que no se conoce.
En su versión más exagerada, debería ser la siguiente:
1. iniciar la ejecución de un programa
2. trabajar a través del algoritmo y salir de él en dos direcciones:
a) Verdadero: el algoritmo ha funcionado correctamente
b) Falso - el algoritmo no ha funcionado
Al mismo tiempo, trabajar en a) significa que aquí se cumplen todas las opciones que el programador quiere implementar, y en b) todo lo demás, y no importa, si es necesario o no. Es decir, el programador sólo implementa la funcionalidad que desea y todo lo demás debe quedar excluido.
Probablemente tenga más sentido explicar el trabajo con excepciones, de lo contrario no se entiende por qué es necesario controlar algo que no se conoce en primer lugar.
En su versión más exagerada, debería ser la siguiente:
1. iniciar la ejecución de un programa
2. trabajar a través del algoritmo y salir de él en dos direcciones:
a) Verdadero: el algoritmo ha funcionado correctamente
b) Falso - el algoritmo no ha funcionado
Al mismo tiempo, trabajar en a) significa que aquí se cumplen todas las opciones que el programador quiere implementar, y en b) todo lo demás, y no importa, si es necesario o no. Es decir, el programador implementa sólo aquella funcionalidad que inserta, y todo lo demás debe ser lanzado como una excepción.
Hola Konstantin! Gracias por tu aclaración.
¡Estimados participantes de este hilo! Una vez más me gustaría agradecer a todos vosotros las sugerencias y consejos constructivos que me han ayudado en el aprendizaje del lenguaje de programación MQL5.
Por ahora he hecho una pausa porque mi trabajo principal no me permite dedicar mucho tiempo y atención al autoaprendizaje, pero por ahora el resultado principal está conseguido: entiendo los fundamentos de la programación, leo códigos de terceros y escribo mis propias funciones.
Publicaré la versión de Trailing_Stop (v.1).mq5 Expert Advisor con comentarios detallados sobre cada línea de código, en una forma accesible para un estudiante de primer grado de una escuela de programación, como prometí antes, pero un poco más tarde.
Saludos, Vladimir.
¡Buen día y buen humor a todos!
Sigo estudiando el lenguaje de programación MQL5. Por fin tengo tiempo suficiente para escribir una versión del Asesor Experto con comentarios detallados en cada línea de código, de forma accesible para los estudiantes de primer año de una escuela de programación. Como el código del Asesor Experto es bastante voluminoso, lo estoy publicando como un archivo llamado Trailing_Stop_gv.22.mq5.
Antes de publicar el código, comprobamos el Asesor Experto en el probador de estrategias. No se ha encontrado ningún problema. En el Asesor Experto se utiliza el sistema de compensación de la contabilidad de posiciones. Este sistema de contabilidad significa que en un momento dado en la cuenta, sólo puede haber una posición abierta para un mismo símbolo (valor).
En este momento, el Asesor Experto ha implementado la capacidad de:
Esta versión del Asesor Experto implementa la mayoría de los consejos, previamente sugeridos por Vasily Sokolov.
¡¡¡ADVERTENCIA!!!
¡Este Asesor Experto fue desarrollado de acuerdo con el plan de auto-estudio para las cuentas de demostración, y está destinado sólo para fines de formación! No está pensado para operar en una cuenta real y obtener beneficios.
Sinceramente, Vladimir.
¡Buen día y buen humor a todos!
Sigo estudiando el lenguaje de programación MQL5. Por fin tengo tiempo suficiente para escribir una versión del Asesor Experto con comentarios detallados en cada línea de código, de forma accesible para los estudiantes de primer año de una escuela de programación. Como el código del Asesor Experto es bastante engorroso, lo estoy publicando como un archivo llamado Trailing_Stop (v.2).mq5.
Antes de publicar el código, comprobamos el Asesor Experto en el probador de estrategias. No se ha encontrado ningún problema. En el Asesor Experto se utiliza el sistema de compensación de la contabilidad de posiciones. Este sistema de contabilidad significa que en un momento dado en la cuenta, sólo puede haber una posición abierta para el mismo símbolo (instrumento financiero).
En este momento, el Asesor Experto ha implementado la capacidad de:
Esta versión del Asesor Experto implementa la mayoría de los consejos, previamente sugeridos por Vasily Sokolov.
¡¡¡ADVERTENCIA!!!
¡Este Asesor Experto fue desarrollado de acuerdo con el plan de auto-estudio para las cuentas de demostración, y está destinado sólo para fines de formación! No está pensado para operar en una cuenta real y obtener beneficios.
Sinceramente, Vladimir.
¡Hola! - No compila.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Lo he resuelto - nombre sin paréntesis para crear Trailing_Stop (v.2) Expert Advisor
¡Hola! - No compila.
Hola, acabo de descargar el archivo de la página web y lo he comprobado en mi MetaEditor, todo compila bien.
Saludos, Vladimir.
Hola, acabo de descargar el archivo de la página web y lo he comprobado en mi MetaEditor, todo compila bien.
Saludos, Vladimir.
Gracias! por el trabajo. no introduje el nombre correctamente al crear el Asesor Experto. todo funciona.
Gracias! por el trabajo. no introduje el nombre correctamente al crear el experto. todo funciona.
Es un placer.
Saludos, Vladimir.
¡Estimados participantes de este hilo!
Una vez más, me gustaría daros las gracias a todos por vuestras constructivas sugerencias, consejos y sugerencias, que me han ayudado a aprender los fundamentos del lenguaje de programación MQL5. Un agradecimiento especial a Vasily Sokolov. Que Dios los bendiga a todos.
Con gran respeto a todos, Vladimir.
¡Buen día y buen humor a todos!
Sigo estudiando el lenguaje de programación MQL5. Actualmente estoy escribiendo el código para un nuevo EA. Me he enfrentado a un punto, que no entiendo muy bien cómo resolver. La tarea parece ser simple - Quiero que mi Asesor Experto trabaje en el gráfico del par de divisas, que se establece en los parámetros de entrada del EA. Si se intenta (por ejemplo, por error) instalarlo en el gráfico de otro par de divisas, el Asesor Experto debería hacer una advertencia sobre la imposibilidad de seguir trabajando.
Este es el esquema del código del programa:
El compilador no muestra ningún error. El código que no funciona está resaltado en amarillo. Tal vez sea porque no entiendo bien el significado del identificador SYMBOL_DESCRIPTION - cadena de descripción del carácter. He intentado utilizar otros identificadores pero el resultado es el mismo. ¿Quizás la función SymbolInfoString( ) no sea necesaria en este caso? Escribí el nombre del par de divisas GBPUSDrfd sólo porque planeo usar el Asesor Experto en Alpha-Forex, mientras que todos los símbolos de este corredor tienen la terminación rfd.
Estimado asesor experto, ¡por favor, aconséjeme en qué dirección pensar!
Saludos, Vladimir.