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
Oooh, muchas gracias, con tanta información se pueden hacer muchas cosas...
Estoy a punto de salir de viaje de negocios, así que estoy pensando en profundizar en los materiales que me han dado, pero la codificación... También podría hacerlo en una hoja de papel, sería una buena herramienta de entrenamiento...
Saludos, Roman
Esto es una pequeña fracción de lo que necesitas saber, un grano de arena en el mar del código del programa. Pero no basta con saber qué usar, dónde usarlo y cuándo usarlo.
Si se procede a partir del nombre del tema"Creación de Robots", entonces usted necesita tener una estrategia de comercio de equilibrio (rentable, o como quiera llamarlo), y sólo entonces estudiar el lenguaje de programación MQL5.
Por cierto, el MetaEditor del terminal MT5 tiene el MQL5 Wizard, con la ayuda del cual se puede obtener fácilmente el código del Asesor Experto ya hecho, utilizando los módulos de señales de comercio, que a su vez fueron creados sobre la base de los indicadores populares, sin ningún conocimiento del lenguaje de programación. Con la ayuda del Asistente MQL5, puede construir rápidamente un Asesor Experto y probar su estrategia, si se basa sólo en indicadores. Aquí está el enlace al artículo sobre la construcción de un robot de comercio utilizando MQL5 Wizard: https://www.mql5.com/ru/articles/171.
Sinceramente, Vladimir.
57 y pico. Y la respuesta a tu pregunta sobre el camino ya se conoce, y cito:
"Roman Zhilin ":No, no hay ningún proceso en el trabajo autónomo, que puedas desarrollar por tu cuenta según tus necesidades. Y el único culpable de mis errores seré yo mismo, no un programador ajeno. Así que tendrás que aprender, aprender, codificar, tropezar, mejorar tus estrategias y volver a aprender".
Sinceramente, Vladimir.
Una buena selección, gracias.
Me recuerda al testamento de Lenin :) Pero tiene razón, nunca es tarde para aprender.
Para entender qué tipo de Asesor Experto necesita, debe empezar a trabajar en él en primer lugar.
Se han añadido dos botones más para cerrar una posición
... Sigo sin entender el significado de la frase constante que comienza con la palabra"Retornos".
¿Quién vuelve, a quién vuelve, dónde vuelve, por qué vuelve? Todavía no puedo entenderlo...
Tal vez pueda explicarlo.
Supongamos que tiene un símbolo (símbolo, por ejemplo, EUR/USD) que está oscilando en la pantalla y un programa/asesor/robot se está ejecutando en el terminal. El robot está ejecutando el código que has introducido en él. Y este código tiene estas cadenas:
"orderSelect" es una función comercial, selecciona una orden ya abierta para seguir trabajando con ella.//En este ejemplo, si la selección de la orden falla (...==false), la ejecución posterior de la función " if " se interrumpe con el comando "break".
Siguiente. Hemos seleccionado la orden mediante la función comercial OrderSelect. Ahora trabajamos con él, con un orden específico. Para simplificar, tomaremos la condición de que sólo tenemos dos órdenes abiertas.
A continuación, introducimos una variable OpenPrice [tipo double] y le asignamos el valor del precio al que se abrió la orden que hemos seleccionado (sección de código OpenPrice=OrderOpenPrice(); )
AQUÍ te explicamos qué significa el RETORNO de un parámetro. La función OrderOpenPrice devuelve el valor del precio actual del instrumento. Es decir, después de que el programa pidiera el precio actual al servidor, le devolvía el valor de ese precio y asignaba ese valor a una variable.
Indicador MACD agregado
Añadido el indicador MACD
Los fundamentos están ahí, ahora todo depende de ti
Quizá pueda explicarlo.
Digamos que actualmente tiene un símbolo (por ejemplo, EUR/USD) fluctuando en su pantalla y un programa/asesor/robot ejecutándose en su terminal. El robot está ejecutando el código que has introducido en él. Y este código tiene estas cadenas:
"orderSelect" es una función comercial, selecciona una orden ya abierta para seguir trabajando con ella.//En este ejemplo, si la selección de la orden falla (...==false), la ejecución posterior de la función " if " se interrumpe con el comando "break".
Siguiente. Hemos seleccionado la orden mediante la función comercial OrderSelect. Ahora trabajamos con él, con un orden específico. Para simplificar, tomaremos la condición de que sólo tenemos dos órdenes abiertas.
A continuación, introducimos una variable OpenPrice [tipo double] y le asignamos el valor del precio al que se abrió la orden que hemos seleccionado (sección de código OpenPrice=OrderOpenPrice(); )
AQUÍ te explicamos qué significa el RETORNO de un parámetro. La función OrderOpenPrice devuelve el valor del precio actual del instrumento. Es decir, después de que el programa haya solicitado el precio actual al servidor, le ha devuelto el valor de ese precio y ha asignado ese valor a una variable.
Gracias por su aclaración. Espero que también ayude a Roman a dominar el lenguaje de programación.
Saludos, Vladimir.
¡Hola! Bueno, tal vez alguien pueda ayudarme...
Actualmente estoy tratando con mecanismos de apertura/cierre de órdenes y me he encontrado con un problema al cerrar posiciones abiertas.
El código es sencillo. La idea del algoritmo es dibujar la MA (media móvil) con un periodo de 100 en el gráfico. Si la vela anterior [1] abrió por encima de la MA, y cerró por debajo de la MA, entonces la siguiente vela [0] abre una ordende VENTApara vender.
//(Las condiciones para comprar se invierten, no las explico)
Para el cierre de la orden las siguientes condiciones - el precio actual ha pasado del precio de apertura de la orden el valor establecido de puntos, por ejemplo 40.
Ejemplo: Un lote se abre a Bid= 1,20045, debería cerrar a Ask= 1,20005.
El código de apertura y cierre está empaquetado en 2 funciones correspondientes que a su vez son llamadas con la función OnTick(). De hecho, con cada tick se debería comprobar la condición de cierre, pero de hecho el precio puede caer por debajo del nivel especificado (nivel de cierre) pero la orden no se cerrará. Se adjuntan capturas de pantalla y código.
¡Hola! Bueno, tal vez alguien pueda ayudarme también...
Actualmente estoy tratando con mecanismos de apertura/cierre de órdenes y me he encontrado con un problema al cerrar posiciones abiertas.
El código es sencillo. La idea del algoritmo es dibujar la MA (media móvil) con un periodo de 100 en el gráfico. Si la vela anterior [1] abrió por encima de la MA, y cerró por debajo de la MA, entonces la siguiente vela [0] abre una ordende VENTApara vender.
//(Las condiciones para comprar se invierten. No las explico)
Para el cierre de la orden las siguientes condiciones - el precio actual ha pasado del precio de apertura de la orden el valor establecido de puntos, por ejemplo 40.
Ejemplo: Un lote se abre a Bid= 1,20045, debería cerrar a Ask= 1,20005.
El código de apertura y cierre está empaquetado en 2 funciones correspondientes que a su vez son llamadas con la función OnTick(). De hecho, con cada tick se debería comprobar la condición de cierre, pero en realidad el precio puede caer por debajo del nivel especificado (nivel de cierre) pero la orden no se cerrará. Adjunto las capturas de pantalla y el código.
Hay un hilo del foro en https://www.mql5.com/ru/forum/160683/page767#comment_10725713
Puede que allí consigas ayuda más rápido.
Sinceramente, Vladimir.