Discusión sobre el artículo "Guía paso a paso para escribir un Expert Advisor en MQL5 para principiantes" - página 22
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
¿Alguien sabe si puedo usar este EA para mini-index o mini-dólares?
Hola chicos, buenos días.
Estoy en el"Probador de Estrategias" con este archivo del final de la Guía y me muestra el siguiente error:
*el error ya ha sido comentado aquí en este artículo, pero ninguna solución escrita me ha funcionado y necesito vuestra ayuda.
El archivo está al final de la Guía.
¿Cómo puedo solucionar este problema?
Yo también sigo teniendo este error después de haber hecho las dos correcciones sugeridas:
ZeroMemory(mrequest);
y también
if(Compra_abierta || Venta_abierta)
¿Puede alguien ayudarme con el error 4756? Parece que no se puede colocar una orden de compra.
Compruebe si utilizó la función SymbolInfoTick y escribió esta parte del código:
Dado que PositionSelect selecciona la primera posición para _Symbol, si el EA abre una posición de compra, la variable Sell_opened siempre será falsa mientras la posición de compra esté abierta, provocando que se realicen múltiples posiciones de venta cada vez que haya una señal de venta.
Para corregir esto y saber si hay posiciones de compra y venta abiertas simultáneamente, se puede utilizar la siguiente lógica:
Hola a todos, buenos días.
Estoy en el"Probador de Estrategias" con este archivo del final de la Guía y muestra el siguiente error:
*el error ya ha sido comentado aquí en este artículo, pero ninguna solución escrita me ha funcionado y necesito vuestra ayuda.
El archivo está al final de la Guía.
¿Cómo puedo solucionar este problema?
Comprueba el precio de venta que estás solicitando, para ello utiliza breakpoint para depurar las variables mrequest.price, mrequest.sl y mrequest.tp.
Pruebe a cambiar
a:
Algunos papeles tienen reglas mínimas de stop loss, lea más aquí: https://www.mql5.com/pt/forum/319474
Hola,
Muchas gracias por el artículo Samuel. ¡Eres un crack!
Me ha costado un poco que me funcionase con mi broker porque el artículo es en versión en modo "net" y he tenido que buscar información para ponerlo en modo "hedging". El primer problema que me encontré es con el mrequest.type_filling.
Para el broker XM, el que funciona es:
Si no sabes cual es la que permite tu MT5, mi recomendación es que uses la función TypeFilling() en un Print(TypeFilling()) o un Comment( TypeFilling()) y este devuelve el tipo; si te dice que es 1 (ORDER_FILLING_FOK) o 2 (ORDER_FILLING_IOC) ya sabes cual tienes que poner (https://www.mql5.com/es/docs/constants/tradingconstants/orderproperties#enum_order_type_filling) ya que a mi el ORDER_FILLING_FOK (1) no me funciona con este broker.
Una vez arreglado eso, el problema es que con el PositionSelect abre muchísimas posiciones. Aunque no lo dice Samuel en su estrategia, entiendo que el objetivo es abrir una única posición buy o sell (la que primero se de) con el criterio establecido (los 4 pasos booleanos) y que hasta que no se cierre esta posición, no podemos abrir otra.
Yo lo que he hecho es cambiar este código ...
Por este...
Nota: Justo después viene la linea...
De esta forma me ha funcionado bien. Espero que os sirva.
Un saludo.
Yo también sigo teniendo este error después de haber hecho las dos correcciones sugeridas:
ZeroMemory(mrequest);
y también
if(Compra_abierta || Venta_abierta)
¿Puede alguien ayudarme con el error 4756? Parece que no se puede colocar una orden de compra.
Tal vez el tipo de llenado de su corredor es ORDER_FILLING_IOC, usted puede tratar de editar el código de:
mrequest.type_filling = ORDER_FILLING_FOK;A:
mrequest.type_filling = ORDER_FILLING_IOC;Yo tenía el mismo problema y ahora lo he resuelto con éxito