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
¿Los campos a rellenar son diferentes a los de
INTERCAMBIO_DE_SÍMBOLOS_DE_EJECUCIÓN
Ejecución del intercambio
difieren de los campos en
SÍMBOLO_COMERCIO_EJECUCIÓN_MERCADO
Ejecución de órdenes en el mercado
???
la ayuda tiene un ejemplo para el mercado solamente
Ejecución del mercado
Una orden de apertura de una posición en el modo de ejecución de mercado (Market Execution mode). Requiere la especificación de 5 campos:
También puede especificar campos mágicos y de comentarios.
He leído la documentación, he buscado en el foro... Completamente confundido. Por favor, si no te importa, explícame en N+1 veces.
1. Estoy enviando una solicitud de comercio utilizandoOrderSend. Esta función devuelve true.
Analizamosel retcode (MqlTradeResult). La variable tiene el valorTRADE_RETCODE_DONE.
¿Garantiza esta situación la ejecución real de la orden en el servidor? ¿O sigue siendo necesario realizar algunas comprobaciones en OnTrade, OnTradeTransaction? Entonces, ¿qué sentido tiene analizarel retcódigo si no sirve para nada?
Es decir, la necesidad de OnTrade y OnTradeTransaction cuando se utilizaOrderSendAsync() es clara para mí.
¿Son necesarios cuando se utiliza la funciónOrderSend()? ¿Espera incondicionalmente la ejecución/rechazo de la orden en el servidor antes de enviar el código posterior al Asesor Experto?
...
¿Son necesarios cuando se utilizaOrderSend()? ¿Espera incondicionalmente la ejecución/rechazo de la orden en el servidor antes de enviar la ejecución del código EA posterior?
Si no me equivoco, OrderSend no espera la ejecución de la orden, sólo informa de que la orden es correcta y se ha enviado al servidor.
. Si la comprobación básica de las estructuras (comprobación de punteros) tiene éxito, devuelve true - no indica la ejecución exitosa de la operación comercial. Para obtener una descripción más detallada del resultado de la ejecución de la función, analice los campos de la estructura de resultados.
2. analizarel retcode (MqlTradeResult). La variable tiene el valorTRADE_RETCODE_DONE.
¿Garantiza esta situación la ejecución real de una orden en el servidor?
Si no me equivoco, OrderSend no espera a que la orden se ejecute, sino que sólo informa de que la orden ha sido verdadera y enviada al servidor de colas.
En ese caso, habría bastado con el "verdadero". Pero los desarrolladores han proporcionado un retcódigo que se supone que almacenael "código de retorno del servidor de comercio".
Es decir, después de que la función OrderSend() funcione , veoTRADE_RETCODE_DONE en la segundalínea de código e intento cambiar, por ejemplo, una posición recién abierta (que lógicamente debería existir) en la tercera línea de código. Sin embargo, PositionSelect devuelve false. La iteración se repite. Como resultado, se abre una posición doble por error.
¿Cómo podemos protegernos contra esta situación?
1. ¿Guiarse sólo por el retconeo y "olvidarse" deOnTrade?
2. ¿Guiado sólo porOnTrade y olvidándose del retconeo?
retcode puede devolver no sólo RETCODE_DONE :) Pero si un servidor de operaciones devuelve exactamenteTRADE_RETCODE_DONE (orden ejecutada), entonces ¿por qué debería comprobar algo más? En mi humilde opinión, en esta situación las funciones OnTrade, OnTradeTransaction simplemente duplicarían el retcode.
A juzgar por la lista de"Códigos de retorno del servidor de negociación", sólo hay una incertidumbre posible en el modo de ejecución de la solicitud de mercado:TRADE_RETCODE_LOCKED. Y aquí, quizás, no podemos prescindir de OnTrade.
Permítame preguntarle qué conexión utiliza usted personalmente.
¿Puedo preguntar qué fijaciones utiliza usted personalmente?
¿Cómo puede asegurarse contra esta situación?
1. ¿Utilizar sólo el retcode y "olvidarse" deOnTrade?
2. ¿Sóloen OnTrade y sin usar retcode?
Es más fiable seguir OnTrade, pero también se puede prescindir de él: analizar la transacción completada (ResultDeal()).
Pronto habrá un artículo sobre este mismo tema.