He actualizado el post.
Para empezar, prueba a utilizar las representaciones de los números enteros y vuelve a realizar la prueba. A ver si eso resuelve tu problema y luego lo comentamos un poco más. Edición: Creo que esto tiene que ver con el hecho de que ordertype comenzará en 0. Y orderselect mantendrá el último orden seleccionado en su lugar.
Para empezar, prueba a utilizar las representaciones de los números enteros y vuelve a realizar la prueba. A ver si así se soluciona tu problema y luego hablamos un poco más de ello.
Edición: Creo que esto tiene algo que ver con el hecho de que ordertype comenzará en 0. Y orderselect mantendrá la última orden seleccionada en su lugar.
Podría ser...
Prueba a declarar orderType como algo que no puede ser. . . por ejemplo
int orderType = 10;
. . . y vea lo que sucede, si no recibe mensajes entonces su selección de órdenes no está funcionando.
Podría ser...
Intente declarar orderType como algo que no puede ser. . . por ejemplo
. . y luego vea lo que sucede, si no recibe ningún mensaje entonces su selección de orden no está funcionando.
Funciona exactamente igual si primero declaro: int orderType = 10;
También he probado a usar siempre OrderType() en lugar de declarar una variable, pero hay el mismo problema.
También he probado a llamar a OrderSelect(...) justo antes de modificar el pedido, pero no hay cambios.
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- 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
Estoy tratando de codificar un EA y en algún lugar de mi código tengo que actualizar el stoploss de las órdenes abiertas y pendientes. Estoy mostrando una alerta con la información sobre la orden.
Cuando lo ejecuto, recibo un mensaje como: "Count: 2 Stoploss 1.44705 para orden de compra: 46450421 orderType: 1".
orderType: 1 significa que la orden 46450421 es una orden OP_SELL, que lo es, pero ¿por qué se activa la prueba "if ((orderType == OP_BUY || orderType == OP_BUYSTOP))" en lugar de "if ((orderType == OP_SELL || orderType == OP_SELLSTOP))"?
Por favor, ayuda :-)
Daniel