Discusión sobre el artículo "Guía paso a paso para escribir un Expert Advisor en MQL5 para principiantes" - página 30
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
Comprobador - "Modo de llenado no admitido"
Probado en 3 brokers diferentes. ¿Cuál es el problema?
Intente sustituir SYMBOL_FILLING_FOK por SYMBOL_FILLING_IOC.
Saludos, Vladimir.
Hola a todos (Especialmente al querido autor)
He codificado junto con este artículo. Lo disfruté mucho y aprendí mucho de él.
Gracias por escribir un artículo tan informativo.
Sin embargo tengo un problema. Mi EA no coloca ninguna orden. He descargado el código del autor, pero no colocó ninguna orden también.
Como el artículo es de hace 13 años, supongo que el código ya está obsoleto. ¿Alguien puede ayudarme?
Mi código está en el archivo de abajo. Gracias de antemano.
Visite la página en inglés sin traducir, que es la descarga correcta.
Descargar de esta página: Guía paso a paso para escribir un Asesor Experto en MQL5 para principiantes - Artículos MQL5
https://www.mql5.com/en/articles/100
Estimado todo el mundo;
De este artículo en la parte inferior, tiene el código completo mlq5 para descargar.
I have download to check function and found that the program has incorrect algorithm.
Setup is EURUSD ,M1,100USD start on 2025/01/01 to 2025/01/31
La primera orden es de venta, luego hay muchas órdenes de compra.
El concepto es que solo debe haber una orden, pero esto ocurre desde la linea 165.
La bandera para verificar si hay orden o no esta separada en 2 variables (Buy_opned,Sell_opened).
Si ahora ya tiene orden de venta, entonces en la línea 216 (Ordersend) hará una nueva orden de compra incluso si ahora tiene orden de venta.
Esperar a la siguiente vela Buy_open bandera en la declaración de la línea 172 no se puede establecer en on again.Why? Porque la primera orden es de venta, la segunda orden es de compra.
Y si, en la proxima vela, una orden de compra en la linea 216 (Ordersend) ocurrirá y continuará, muchas ordenes de compra ocurrirán hasta que no haya dinero.
Ver grafico aqui.
Ver lista de ordenes.
Gracias.
Niwath Jeamphue.
Queridos todos;
A partir de este artículo en la parte inferior, que tiene el código completo mlq5 para descargar.
Tengo descarga para comprobar la función y encontró que el programa tiene algoritmo incorrecto.
Setup is EURUSD ,M1,100USD start on 2025/01/01 to 2025/01/31
La primera orden es de venta, luego hay muchas órdenes de compra.
El concepto es debe tener sólo un orden pero es occour de la línea 165
La bandera para comprobar si se ha ordenado o no está separada en 2 variables de bandera (Buy_opned,Sell_opened).
Si ahora ya tiene orden de venta, entonces en la línea 216 (Ordersend) hará una nueva orden de compra incluso si ahora tiene orden de venta.
Esperar a la siguiente vela Buy_open bandera en la declaración de la línea 172 no se puede establecer en on again.Why? Porque la primera orden es de venta, la segunda orden es de compra.
Y si, la proxima vela de nuevo la orden de compra en la linea 216 (Ordersend) ocurrirá y continuará, muchas ordenes de compra ocurrirán hasta que no haya dinero.
Ver gráfico aquí.
Ver lista de pedidos.
Gracias.
Niwath Jeamphue.
No debe utilizar PositionSelect(_Symbol) a menos que esté utilizando una cuenta de compensación.
En una cuenta de cobertura, necesita seleccionar su posición correctamente, con PositionGetTicket() o PositionSelectByTicket(). Consulte la documentación.
No debe utilizar PositionSelect(_Symbol) a menos que esté utilizando una cuenta de compensación.
En una cuenta de cobertura, necesita seleccionar su posición correctamente, con PositionGetTicket() o PositionSelectByTicket(). Consulte la documentación.
Gracias por tu comentario. Pero sólo quiero decir a todos que el código fuente es de la final completa de este artículo.
https://www.mql5.com/es/articles/download/100/my_first_ea.mq5
Por favor, intente con usted mismo, será entender mi mainpoint.
Thank you.
Gracias por tu comentario. Pero sólo quiero decir a todos que el código fuente es de la final completa de este artículo.
https://www.mql5.com/es/articles/download/100/my_first_ea.mq5
Por favor, intente con usted mismo, será entender mi mainpoint.
Thank you.
Este artículo es de 2010, en ese momento TODAS las cuentas eran cuentas de compensación en MT5 incluyendo para Forex.
Las cuentas de cobertura se introdujeron en 2016 : https://www.mql5.com/es/articles/2299
Niwath Jeamphue #:
Por favor, pruébelo usted mismo, entenderá mi punto de vista.
Gracias, señor.
Hola. Entiendo su punto de vista. En el archivo adjunto he cambiado el código fuente del Asesor Experto para que sólo se abra una posición, independientemente de la cuenta que utilice - compensación o cobertura.
Saludos, Vladimir.
Hola. Entiendo su punto de vista. En el archivo adjunto he cambiado el código fuente del Asesor Experto para que sólo se abra una posición, independientemente de la cuenta que utilice - neteo o cobertura.
Saludos, Vladimir.
Cuenta de Cobertura ,MrBrooklin . Gracias. Pero prefiero obtener sólo una orden, no tantas órdenes.
He sido cambiar algo. de original
Borrar Buy y Sell bandera abierta
Si (PositionSelect(_Symbol)==true)
Si se encuentra que es una posición de compra entonces se activa la bandera de Buy_opened
Else Si se encuentra que es una posición de venta entonces se pone la bandera Sell_opened
Zona1 : Intenta abrir la orden de compra en la condición y marca Buy_opened
Zona2 : Intenta abrir una orden de venta y marca Sell_opened
A Nuevo algo. y funciona bien ahora.
If (PositionsTotal() > 0) return
Borra las banderas de compra y venta
Si se encuentra que es una posición de compra, entonces marca Buy_opened
Else Si se encuentra que es una posición de venta entonces se establece Sell_opened
Zona1 : Intenta abrir la orden de compra en la condición y marca Buy_opened
Zona2 : Intenta abrir una orden de venta y marca Sell_opened