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
¿Supongo que la toma se elige para que para la cobertura pueda enviar 1 solicitud de toma al servidor en lugar de 2 separadas límite y CloseBy? Y para netting no hay diferencia.
Por cierto, que yo recuerde, en bolsa no se podía poner un take o stop loss directamente en el precio actual, debía haber una sangría.
Supongo que la toma se elige de modo que para la cobertura se puede enviar 1 solicitud de toma al servidor en lugar de 2 separadas límite y CloseBy? Y para netting no hace ninguna diferencia.
La operación CloseBy no es una operación, así que no hay mucha diferencia.
Voy a mostrar la peculiaridad de utilizar MT5-estilo y MT4-estilo juntos utilizando esta función como un ejemplo.
Tenlo en cuenta si trabajas con HistorySelect+MT4Orders.
Hay varios lugares en los que se produce la selección del orden de posición. Con el comentario
// Durante la búsqueda el número de pedidos puede cambiarse comprueba que el número de órdenes puede cambiar. Pero, estrictamente hablando, puede haber una situación en la que el número de órdenes no ha cambiado, pero las propias órdenes han cambiado, como 1 cerrada y 1 nueva abierta. Y entonces la numeración en el medio del caso puede cambiar. Tal situación nunca ha ocurrido durante todo el tiempo de uso? ¿Es la falta de comprobaciones más estrictas un error o una ignorancia deliberada de una situación improbable para no complicar demasiado el código? ¿O me he fijado en algo y aquí no hay ningún bug?
Hay varios lugares donde se produce la selección del orden de posición. Con el comentario
se comprueba que el número de órdenes puede cambiar. Pero, estrictamente hablando, puede haber una situación en la que el número de órdenes no ha cambiado, pero las propias órdenes han cambiado, como 1 cerrada y 1 nueva abierta. Y entonces la numeración en el medio del caso puede cambiar. Tal situación nunca ha ocurrido durante todo el tiempo de uso? ¿Es la falta de comprobaciones más estrictas un error o una ignorancia deliberada de una situación improbable para no complicar demasiado el código? ¿O me he fijado en algo y aquí no hay ningún bug?
No me acuerdo. Sólo sé que hice muchas pruebas de estrés para comprobar todas las situaciones.
ORDER_TIME_SETUP(_MSC) por la hora de ejecución de la primera (quizás penúltima) operación. Es decir, será imposible determinar a partir del historial cuándo, por ejemplo, se colocó BuyLimit.
Como consecuencia, una posición de cobertura puede tener un precio de apertura fraccionario, como puede observarse a menudo en la compensación.
En esta situación, a través de MT4Orders OrderOpenPrice/OrderOpenTime de dicha posición MT4 será igual a los valores correspondientes de la primera operación MT5.
Es decir, no habrá precio fraccionario para la apertura de una posición, por desgracia. Esta es una situación rara, pero sucede.
Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading
Bibliotecas: MT4Orders
fxsaber, 2020.03.18 03:47
Rechazo de empate.
Esta situación puede ocurrir a menudo:
MT4Orders no muestra estas ordenes MT5 en tales situaciones de un teejack re-jack, así como en los casos en que una orden take fue parcialmente ejecutada y luego cancelada. ¡Y así es!
Última versión MT5 2361 utilizando MT4Orders, real, de cobertura. Varios EAs, diferentes magos. Situación de uno de los Asesores Expertos.
Se colocó una orden de COMPRA, ticket 216684. Pasado un tiempo llegó el momento de cerrar la posición, se colocó una de VENTA para cerrarla y otra de VENTA para abrir una posición inversa, tickets 216975 y 216978. Todas las órdenes son del mismo tamaño de lote. Cuando el límite 216978 se activó, 216684 y 216978 se colapsaron mediante CloseBy y sólo quedó 216975.
Parte del registro del Diario
Parte del registro del Asesor Experto
Es decir, podemos ver que había 3 órdenes. Pero en el proceso de colapsar 2 de ellas y moverse al mercado de la 3ª, la lista de órdenes estaba vacía, aunque 1 debería haber permanecido. Esta situación puede provocar la doble apertura de una posición.
Obtengo las órdenes a través del siguiente código
Y por eso inserté una comprobación, por si el número cambiaba durante la enumeración. Pero parece que falta. ¿Es esto un error, una característica o me he metido en un área inacabada?
la lista de pedidos resultó estar vacía, aunque debería haber quedado 1. La situación puede dar lugar a la apertura de una posición doble.
Se trata de un error de MT5.
Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading.
Bibliotecas: MT4Orders
fxsaber, 2019.11.19 07:26 AM.
El hilo es extenso, a continuación una lista de posts de interés.
https://www.mql5.com/ru/forum/93352/page11#comment_4071950
SO
Es un error de MT5.
¿La orden entra en el historial? Falta claramente HistoryOrdersTotal además de PositionsTotal, OrdersTotal. Si cambia y se ejecutó la última orden, entonces hay que esperar a que cambie la posición. En cualquier caso, la cuestión es que hay que tener una copia del entorno y comprobar con ella, ateniéndose a la regla de que si en algún sitio hay una pérdida/llegada, entonces en otro sitio llegará/desaparecerá al contrario.