Genial.
Sugerencia a los desarrolladores: empezar a formar una biblioteca de funciones. En mi opinión, para ello es conveniente presentar a la comunidad los requisitos de diseño (por ejemplo, descripción obligatoria de las variables, estipulación de los límites de uso, número de caracteres por cadena, etc.). Un artículo de MQ sobre el tema sería una buena idea.
Con el tiempo, aparecerán en la biblioteca no sólo funciones sencillas, sino también complejas.
¿Habrá funciones publicadas para el comercio real?
Sí, lo harán... A continuación, la función SetOrder() para el comercio en línea...
Ejemplos de cómo utilizar la función SetOrder():
1. Estableciendo una orden BuyLimit con 0,1 lotes, 50 pips por debajo del precio actual:
SetOrder(NULL, OP_BUYLIMIT, 0.1, Ask-50*Point);
2. Estableciendo una orden BuyStop con el lote 0.3 36 pips por encima del precio actual con un stop de 32 pips:
SetOrder(NULL, OP_BUYSTOP, 0.3, Ask+36*Point, Ask+(36-32)*Point);
3. Colocación de una orden SellLimit por lote 0,2 a 42 pips por encima del precio actual con una retirada de 50 pips:
SetOrder(NULL, OP_SELLLIMIT, 0.2, Bid+42*Point, 0, Bid+(42-50)*Point);
4. Colocar una orden SellStop por lote 0,5 por 100 pips por debajo del precio actual con un stop de 30 pips y una retirada de 70 pips:
SetOrder(NULL, OP_SELLSTOP, 0.5, Bid-100*Point, Bid-(100-30)*Point, Bid-(100+70)*Point);
5. Una orden BuyLimit con lote 0.1 colocada 50 pips por debajo del precio actual con número mágico 123456 y vencimiento en dos horas:
SetOrder(NULL, OP_BUYLIMIT, 0.1, Ask-50*Point, 0, 0, 123456, TimeCurrent()+2*60*60);El tráiler es un guión de la vida real con los ejemplos anteriores. Los cuatro primeros ejemplos están comentados.
¡Hola, Igor!
Apoyo la idea. Decisión correcta: ¡¡¡........!!!
Su código es enorme, las preguntas surgen a menudo, y no es bueno dirigirse a usted en los mensajes de otras personas y en otros temas.
Gracias.
Muestre su versión de los retrasos entre operaciones
No hago ninguna demora entre las operaciones. Es decir, si necesito colocar dos o más órdenes, realizo estas operaciones sin pausa entre ellas. Pero entre los intentos de negociación, que deben repetirse si hay un error al contactar con el servidor, hago una pausa según las recomendaciones de los desarrolladores de MT4. Como ejemplo, puede ver cómo se implementan estas pausas en mi función SetOrder() para el comercio en línea. Se realizan diferentes pausas para diferentes errores devueltos por el servidor de comercio.
Esta función SetOrder() se utiliza para establecer órdenes pendientes. Se recomienda su uso en el comercio en línea en las cuentas de demostración y en vivo.
...explicar por qué hay un retraso de 7,7,17,11 segundos. ¿Es una broma o está justificado?
¿Qué tipo de bromas puede haber con dinero real?
Los errores 129 (Precio de compra o venta incorrecto), 130 (Paradas incorrectas), 134 (No hay suficiente dinero), 136 (No hay precio) se pausarán durante 7,7 segundos. Los desarrolladores de MT4 recomiendan pausas de más de 5 segundos en estos casos. Puse 7,7 segundos. También podría haber puesto 6,1 segundos. No me gustan los valores redondos por su atractivo, por lo que establezco valores no circulares.
La pausa de 17 segundos se suponía que era para el error 145 (Modificación prohibida). Pero como la función SetOrder no maneja la modificación, eliminé el manejo de este error. Gracias por llamarme la atención sobre este aspecto de mi función.
La pausa de 11 segundos se encuentra dentro del bucle que comprueba el estado del subsistema comercial. Se puede ajustar a 15 o 30 segundos. Puedes ajustarlo a 15 o 30 segundos, lo que prefieras.
También me pregunto qué hacer si hay más de un Asesor Experto, y no se puede prescindir del análisis.
En el caso de varios Asesores Expertos en una cuenta de trading, se gestiona el error 146 (el subsistema de trading está ocupado). La función SetOrder espera hasta que el subsistema de negociación esté libre.
¡Atención! He editado el post anterior. Se han realizado cambios en la función SetOrder.
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
En este hilo publicaré los códigos de mis funciones en MQL4, daré ejemplos de su uso y responderé a las preguntas relacionadas con su uso. Cada función se publicará en dos puestos. El primer post contendrá el código de la función, el segundo - ejemplos de uso y breves explicaciones. A veces adjunto el código de un script en el segundo post para probar realmente la función y mostrar los resultados.
Empezaré con las funciones para manejar las órdenes según la petición de Lukyanov en el tema "Cómo ejecutar dos EAs al mismo tiempo" al final.
Dejemos que la primera sea la función de ajuste de órdenes (versión de prueba de MT4):