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
¡Buenas tardes!
Tengo una pregunta similar para todos y especialmente para fxsaber.
Parece una pregunta primitiva, pero no encuentro la respuesta.
Aquí https://www.mql5.com/ru/forum/6343/page939 me dijeron "Intenta buscarlo. fxsaber ha estado trabajando en este problema durante un tiempo. Lo que funcionó, no lo sé, no me interesa". Así que decidí preguntarle.
La cuestión es la siguiente. He abierto una posición y quiero imprimir el contenido de MqlTradeResult:
retcode, order y volume se imprimen, pero deal y price son siempre ceros.
Por favor, díganme qué estoy haciendo mal y cómo puedo acceder (al menos, imprimirlo primero) al contenido de la estructura de resultados.
¿Qué te parece esto?
Abro una posición y quiero imprimir el contenido de MqlTradeResult así:
retcode, order y volume se imprimen pero deal y price son siempre ceros.
Por favor, indíqueme qué estoy haciendo mal y cómo puedo acceder (al menos imprimirlo primero) al contenido de la estructura de resultados.
Los ceros se escriben en el resultado.
¿Qué te parece esto?
Los ceros y se prescriben en el resultado.
Veo una orden abierta, obtengo result.retcode 10009 y result.price = 0 ?
¿Puede explicar el significado de resultado si no contiene un resultado?
Por favor, explique qué sentido tiene si no contiene el resultado.
Esta es una característica de MT5 en la que el resultado es sólo una orden (ticket y sin precio) pero no una operación. Tienes varias opciones
Esta es una característica de MT5 en la que el resultado es sólo una orden (ticket y sin precio) pero no una operación. Tienes varias opciones
En MQL4 no había una estructura de resultados y recibíamos un ticket y seleccionábamos la orden adecuada y solicitábamos los datos necesarios. MQL5 tiene la estructura de resultados que contiene muchos datos necesarios, y sería ilógico no utilizarla.
1. Antes de hacer una pregunta en el foro, traté de "averiguar por mí mismo cómo funciona todo" y lo que veo - en la estructura de resultados:
sale result.deal, es decir, se supone que tiene sentido y no siempre se representa por cero en la estructura de resultados. Se podrían dar otros ejemplos que indiquen que tanto result.price como result.deal se pueden obtener de MqlTradeResul, que es lo que he intentado hacer.present double price; // Precio de la transacción, confirmado por el corredor.
En el código de ejemplo del desarrollador
En ningún lugar he visto información de que "Esta es una característica de MT5 donde el resultado es sólo una orden (ticket y sin precio), pero no una operación". ¿Podría decirme en qué información se basa para llegar a esta conclusión?
2. Si conoces algún "desarrollo de nivel superior ya preparado (el nivel inferior está oculto)", que permita obtener los parámetros de una posición inmediatamente después de su apertura (aparece el código 10009), sin necesidad de selección previa por ticket, por favor, ponme un ejemplo o dame un enlace a él.
Gracias.
En MQL4 no existía una estructura de resultados y seleccionábamos la orden adecuada y solicitábamos los datos necesarios. MQL5 tiene la estructura de resultados con muchos datos necesarios y sería ilógico no utilizarla.
1. Antes de hacer una pregunta en el foro, he intentado "averiguar por mí mismo cómo funciona todo" y lo que he visto es que el resultado de la estructura:
sale result.deal, es decir, se supone que tiene sentido y no siempre se representa por cero en la estructura de resultados. Hay otros ejemplos que indican que tanto result.price como result.deal se pueden obtener de MqlTradeResul, que es lo que he intentado hacer.Hay un precio doble; // Precio de la transacción, confirmado por el corredor.
En el código de ejemplo del desarrollador
En ningún sitio he visto información de que "se trata de una característica de MT5 en la que el resultado es sólo una orden (ticket y sin precio) pero no una operación". ¿Podría decirme en qué información se basa para llegar a esta conclusión?
2. Si conoce algún "desarrollo de nivel superior listo (el nivel inferior está oculto)" que permita obtener los parámetros de una posición inmediatamente después de abrirla (aparece el código 10009), sin necesidad de una selección previa por ticket, por favor, ponga un ejemplo o dé un enlace a él.
Una solicitud de negociación da lugar a un rechazo o a una orden de mercado. Esto no es una operación, ni una posición generada por una operación.
Una solicitud de negociación tiene como resultado un rechazo o una orden de mercado. Esto no es una operación, ni una posición generada por una operación.
- ¿Después de qué paso crees que aparece la estructura de resultado de la solicitud de comercio (MqlTradeResult), de los que has enumerado?
- Según la descripción de MQL5:
" Estructura del resultado de la solicitud de negociación (MqlTradeResult)
Como respuesta a una solicitud de comercio, el servidor de comercio devuelve datos que contienen el resultado del procesamiento de la solicitud de comercio como una estructura especial predefinida MqlTradeResult". y "10009 TRADE_RETCODE_DONE Orden ejecutada".
Es decir, el código de retorno del servidor de comercio 10009 significa que la solicitud de OrderSend se ejecutó con éxito, es decir, si solicito datos de MqlTradeResult, después de recibir el código 10009, ¿cómo puedo explicar que result.price = 0?
Gracias:
- ¿Después de qué paso, de los enumerados por usted, aparece la estructura del resultado de la solicitud de comercio (MqlTradeResult)?
- Según la descripción de MQL5:
" Estructura del resultado de la solicitud de negociación (MqlTradeResult)
Como respuesta a una solicitud de comercio, el servidor de comercio devuelve datos que contienen el resultado del procesamiento de la solicitud de comercio como una estructura especial predefinida MqlTradeResult". y "10009 TRADE_RETCODE_DONE Orden ejecutada".
Por lo tanto, el código de retorno del servidor de comercio 10009 significa que la solicitud OrderSend se ejecutó con éxito, es decir, si solicito datos de MqlTradeResult, después de recibir el código 10009, ¿cómo puedo explicar que result.price = 0?
10009 TRADE_RETCODE_DONE - usted mismo lo ha descrito - la orden se ejecuta. Esto es simplemente el hecho de que la orden se ha puesto en cola en el servidor para su ejecución.
Además, si esta orden se ejecuta (después de todo, puede ser rechazada por el servidor), entonces hay una operación - este es el resultado de la operación con el precio de apertura.
Leer sobre
OnTradeTransaction
Se llama en los Asesores Expertos cuando se produce un evento TradeTransaction. La función está destinada a procesar los resultados de la ejecución de las solicitudes de operaciones.
voidOnTradeTransaction( )
const MqlTradeTransaction&trans,// estructura de una transacción comercial
const MqlTradeRequest&request,// estructura de la solicitud
const MqlTradeResult& result// estructura de la respuesta
);
En ningún lugar he visto la información de que "Esta es una característica de MT5 donde el resultado es sólo una orden (ticket y sin precio) pero no una operación". Por favor, dígame en base a qué información ha llegado a esta conclusión.
Experiencia propia.
2. Si conoce algún "desarrollo de nivel superior ya preparado (el nivel inferior está oculto)", que permita obtener los parámetros de una posición inmediatamente después de su apertura (aparece el código 10009), sin necesidad de selección previa por ticket, por favor, ponga un ejemplo o dé un enlace a él.
Hay otra opción, pero es "avanzada".