![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Hola
Este enfoque sólo funciona si el tamaño de la posición actual es cero y la nueva operación se ejecuta con éxito con el tamaño de posición deseado.
Ver código:
¿Pero qué pasa si tu EA está dando la vuelta a la posición: de una posición LARGA a una CORTA o viceversa y esta acción se realiza en 2 operaciones diferentes?
Después de la primera operación el booleano "position_opened" se pone a "TRUE" y el EA no puede abrir la 2e operación porque la condición está comprobando"if(conditions_to_open && !position_opened)", por lo que la segunda operación se bloqueará.
¿Y qué pasa si el tamaño de la posición se abre sólo parcialmente? Necesita una segunda operación para que el tamaño de la posición sea el correcto.
Al final, para hacer "un cuento largo", siempre se necesita la función PositionSelect(Symbol()) para calcular el tamaño de la posición ACTUAL y aquí es donde empezó todo el problema (y este hilo del foro).
En el momento crítico, cuando el EA está llamando a PositionSelect(Symbol()), el terminal no ha actualizado todavía el tamaño de la posición ACTUAL y el EA está trabajando con un tamaño de posición equivocado y envía una nueva orden doble al servidor de operaciones.
Creo que el enfoque de(figurelli) es mejor porque se obliga a esperar hasta que el EA haya actualizado la función PositionSelect(Symbol()) al tamaño de posición correcto.
Hola
Este enfoque sólo funciona si el tamaño de la posición actual es cero y la nueva operación se ejecuta con éxito con el tamaño de posición deseado.
Ver código:
¿Pero qué pasa si tu EA está dando la vuelta a la posición: de una posición LARGA a una CORTA o viceversa y esta acción se realiza en 2 operaciones diferentes?
Después de la primera operación el booleano "position_opened" se pone a "TRUE" y el EA no puede abrir la 2e operación porque la condición está comprobando"if(conditions_to_open && !position_opened)", por lo que la segunda operación se bloqueará.
¿Y qué pasa si el tamaño de la posición se abre sólo parcialmente? Necesita una segunda operación para que el tamaño de la posición sea el correcto.
Al final, para hacer "un cuento largo", siempre se necesita la función PositionSelect(Symbol()) para calcular el tamaño de la posición ACTUAL y aquí es donde empezó todo el problema (y este hilo del foro).
En el momento crítico, cuando el EA está llamando a PositionSelect(Symbol()), el terminal no ha actualizado todavía el tamaño de la posición ACTUAL y el EA está trabajando con un tamaño de posición equivocado y envía una nueva orden doble al servidor de operaciones.
Creo que el enfoque de(figurelli) es mejor porque te obliga a esperar hasta que el EA haya actualizado la función PositionSelect(Symbol())
Tienes razón, ambos enfoques tienen limitaciones.
El origen de este problema está ahora claramente identificado. Cada uno tiene que adaptar su código en función de su estrategia. No creo que haya un método general que pueda aplicarse en todos los casos.
¿Necesitamos una biblioteca OrderSendReliable() para el Gran y Poderoso mql5?
Tienes razón, ambos enfoques tienen limitaciones.
El origen de este problema está ahora claramente identificado. Cada uno tiene que adaptar su código en función de su estrategia. No creo que haya un método general que se pueda aplicar en todos los casos.
O tenemos que esperar una "declaración oficial" de los propios chicos de Metaquotes.
¿Hay ya una respuesta del servicio técnico?
Si estuviera de acuerdo con usted, ¿lo consideraría poco útil?
.
Sólo enseñé que la solución de Dormir hasta Terminar la Operación me recordaba a OrderSendReliable(). He enseñado que esto se hubiera solucionado de forma más elegante.
También me recuerda el manejo de old_documents ... donde va { y todo el comercio debe ser detenido }.
De todos modos, las disculpas no tenía la intención de meterse con mql5.
O tenemos que esperar una "declaración oficial" de los propios chicos de Metaquotes.
Hay ya una respuesta del servicio de atención al cliente?
No. Estaba pensando en eso... Probablemente sería útil que todos los interesados escribieran un ticket al ServiceDesk sobre este tema. Sin embargo, soy muy escéptico si MQ está dispuesto a cambiar este diseño. Pero podemos intentarlo.
La gente puede escribir a ServiceDesk y reportar el ticket# aquí. El mío es
¿Si estuviera de acuerdo contigo considerarías que no es útil?
Acabo de enseñar que la solución de Dormir hasta Terminar la Operación me recordaba a OrderSendReliable(). He enseñado que esto se hubiera solucionado de forma más elegante.
También me recuerda el manejo de old_documents ... donde va { y todo el comercio debe ser detenido }.
De todos modos, las disculpas no tenía la intención de escoger en mql5.
Sí, pero es difícil saber si se debe a una mala codificación. El comercio doble era un problema incluso antes del hilo de comercio múltiple. La forma en que se maneja tradicionalmente es la forma en que snelle_moda lo maneja.
Sí, pero es difícil saber si se debe a una mala codificación. El comercio doble era un problema incluso antes del hilo de comercio múltiple. La forma en que se maneja tradicionalmente es la forma en que lo hace snelle_moda.