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
No sabemos qué está intentando hacer
Si sólo quiere una operación abierta a la vez, compruebe que no hay órdenes abiertas antes de enviar una nueva.
Si sólo quiere una operación por barra, pruebe sólo una vez por barra
Si quiere una combinación de condiciones, pruebe la combinación.
Lo explico aquí:
Tengo un máximo de 6 soportes y 6 resistencias para cada hora. Pueden ser 2 soportes y 2 resistencias o cualquier cosa, pero un máximo de 6 soportes y 6 resistencias para cada hora.
Quiero abrir una orden limitada en esos niveles S/R al comienzo de cada hora.
He creado una función de compra y una función de venta... para no tener que escribir el mismo código de compra/venta para un total de 12 niveles S/R.
Ahora, cuando usé el siguiente código:
Crea múltiples órdenes iguales:
He utilizado el códigoWHRoeder también. En una función separada. Como no puedo declarar la función dentro de una función.
Tu problema no es la función que has puesto, tu problema está en el código que llama a la función.
Obviamente no hay ninguna comprobación para ver si los pedidos ya han sido realizados
Tu problema no es la función que has puesto, tu problema está en el código que llama a la función.
Obviamente, no hay ninguna comprobación para ver si los pedidos ya se han realizado
código de llamada a la función (snapshot)
¿Cómo se comprueba que los pedidos ya se han realizado o no? ¿Con condiciones de buyticket > 0?
código para llamar a la función (snapshot)
¿Cómo comprobar que los pedidos ya se han realizado o no? ¿Con condiciones buyticket > 0?
Es difícil dar un consejo ya que no sé lo que está haciendo al final de la hora con las órdenes no activadas y cómo está gestionando las órdenes activadas.
Podría crear un array (o 2) declarado globalmente y almacenar los números de ticket de las órdenes abiertas. Antes de abrir una nueva orden, compruebe si el elemento del array que corresponde al nivel tiene un valor >0.
Por supuesto, también tendrá que comprobar los números de ticket y si elimina las órdenes no activadas, poner el elemento del array a 0. También puede necesitar comprobar si la orden se ha cerrado y, dependiendo de su lógica, volver a ponerlo a 0
Es difícil dar un consejo ya que no sé lo que estás haciendo al final de la hora con las órdenes no activadas y cómo estás gestionando las órdenes activadas.
Podrías crear un array (o 2) declarado globalmente y almacenar los números de ticket de las órdenes abiertas. Antes de abrir una nueva orden, compruebe que el elemento del array que corresponde al nivel tiene un valor >0.
Por supuesto, también tendrás que comprobar los números de ticket y si eliminas las órdenes no activadas, poner el elemento del array a 0. También puede que tengas que comprobar si la orden se ha cerrado y, dependiendo de tu lógica, volver a ponerlo a 0
Cuando establezco los niveles de expiración de las órdenes no activadas, éstas expiran a las 0:59 o al minuto 59. Para las ordenes activadas se establecen SL y TP.
Anteriormente diseñé Ea que toma una orden de compra o venta en cada hora... no hay problema el código era simple. Pero aquí parece muy difícil.
Ok, voy a tratar de código como usted dijo. Si el problema surge voy a publicar aquí. Además será bueno si usted puede compartir cualquier ejemplo de código simple para contar el número de billete.
Gracias por su sugerencia.
Resolví mi problema temporalmente con el siguiente código y ejecutándolo en el gráfico horario. Simple
Las barras no son fiables (un refresh/reconnect puede cambiar el número de barras en el gráfico) el volumen no es fiable (se pierden los ticks) Siempre uso el tiempo. Nueva vela - Foro MQL4
Gracias por el código. Lo añadí en la función Tick. Pero ahora mi EA no está tomando ninguna operación. Como uso la función buycall/sell call para colocar órdenes pendientes. No pude añadir esta función dentro de la función.
¿Alguna idea?
Además, la operación inversa en órdenes detenidas tampoco funciona.
¿Algo que destacar sobre el código inverso? ¿Por qué no funciona?
Gracias.