Errores, fallos, preguntas - página 2404
![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
Así que deja que funcione, ¿quién lo impide? De todos modos, no funciona como lo hacía MT4, así que depende de ti cambiar este comportamiento para el 90% del tiempo, o para el 10% restante.
¿Esperando un ejemplo de cómo utilizar este comportamiento?
¿Necesita un asesor para redactar una? Creo que puedes hacerlo tú mismo tan bien como yo.
Mencionas a menudo SELECT_BY_TICKET pero no das ningún uso práctico de ello.
Yo no utilizo esta construcción. Además, creo que usarlo en MT4 es peligroso.
En el 90% de los casos no es SELECT_BY_TICKET en el historial, sino que funciona con órdenes como con entidades indivisibles. El cierre o la apertura parcial es una rareza para la mayoría de los corredores de divisas. Por lo general, o bien cierran/abren el pedido por completo o bien dan un presupuesto fuera de lugar
Mencionas a menudo SELECT_BY_TICKET, pero no das ninguna aplicación práctica.
Yo no utilizo esta construcción. Además, creo que usarlo en MT4 es peligroso.
Tal vez tengas razón, pero esta es una parte de la funcionalidad que no funciona en tu biblioteca de la misma manera que en MT4. De hecho, señalé este hecho sin intención de comentarlo.
Puede que tengas razón, pero es una parte de la funcionalidad que funciona de forma diferente en tu biblioteca que en MT4. De hecho, señalé este hecho sin intención de comentarlo.
Se menciona específicamente en la discusión de la biblioteca. Se dan ejemplos y argumentos relevantes para el hecho de que incluso en MT4 utilizar SELECT_BY_TICKET es una mala lógica de negociación.
Si crees que este modo no debe usarse en absoluto, entonces hazlo como en MT4 y no recomiendes su uso.
Este modo puede ser útil en determinadas situaciones.
Por si acaso - el comportamiento del servidor durante el cierre parcial en MT4 fue diferente para diferentes corredores y no se garantiza que sea la forma en que usted lo describió
Puedes intentar buscar un lugar donde en un cierre parcial en MT4 la posición no cambie la entrada. Se ha dado el código anterior.
1. Tal vez debería pedirte que pongas un ejemplo ahora (sólo que no en este hilo, que ya está saturado)
Vimos una posición cerrada en el historial del terminal. Necesitamos obtener rápidamente sus datos: escribimos un ticket en el script y ya está.
O tenemos que ordenar el historial comercial a nuestra manera. Ordena las entradas y selecciona.
2. En realidad no me importa, si cambia el ticket en el cierre parcial o no, porque no tiene ningún efecto en la selección de orden dentro del ticket cuando no se utiliza el cierre parcial. Y cuando lo utilice, deberá mirar el comentario (MT4), o seleccionar las operaciones por número de posición (MT5).
Todo es seleccionable por billete. Es que la entrada de la posición cambia cuando la cierras. Esta es la única diferencia con respecto a MT4.
Así que hay que hacer una función adicional que permita averiguar el número de ticket cambiado a partir del número antiguo, en lugar de insistir en que la funcionalidad SELECT_BY_TICKET que existía en MT4 era "errónea". Aunque eso es asunto suyo, por supuesto.
Hay una función de MT5 que los codificadores pueden necesitar, pero es difícil de implementar. Y está el que es fácil de aplicar pero apenas se necesita.
Sólo tiene sentido hacer algo en el primer caso. Por ejemplo, OrderOpenPriceRequest es una cosa estupenda, porque es elemental para calcular el deslizamiento en la apertura.
Pero OrderTicketOld es una cosa muy simple (POSITION_ID) y sobre nada. Este es el billete de apertura: la cosa es difícil de implementar, por eso se hace.
Usted tiene un requisito en la parte de las bibliotecas que el Asesor Experto debe ser escrito "en estilo MT4". Basándose en este requisito, es razonable implementar una función que se ajuste exactamente a este estilo, permitiéndole escribir el código tan bien como podría hacerlo en MT4.
No has mostrado un EA que no funcione.
El cierre parcial no es necesariamente un relleno parcial en el lado del servidor.
Entonces, ¿cómo seleccionar 0,2 lotes cerrados en tal situación en MT5?
No tengo ni idea en MT5, pero en MT4 estaba buscando una oportunidad para hacer un cierre parcial de una orden y encontrar una nueva entrada pero sin usar el campo OrderComment()
todo funciona en general como en MT4:
- seleccionar una orden en la lista de órdenes de mercado y obtener un ticket
- solicitamos OrderClose() - obtenemos true
- el antiguo ticket ha pasado al historial de pedidos y ha aparecido un nuevo ticket de mercado; si el pedido se ha cerrado completamente (no parcialmente), no aparecerá ningún nuevo ticket
El tema del cierre parcial en MT4 es bastante interesante, he preguntado, pero por desgracia, todos los Gurú han enviado a buscar la felicidad en OrderComment() - no me gusta, pero al parecer la gente no lo saca, un tema con la discusión de un algoritmo eficaz para MT4 primero, habría participado
SZY: No puedo encontrar el código fuente, no me gusta la implementación - guardé los tickets de órdenes de mercado en un array e inmediatamente después de un cierre parcial utilicé ArrayBsearch() para encontrar una orden que faltaba en el array, es decir, un nuevo ticket