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
Hola fxsaber
¡Mis mejores deseos para 2020!
¿Es una opción de diseño para no incluir un número mágico en la solicitud de comercio para la función MT4OrderClose?
Actualmente, DEAL_ENTRY_OUT de MT4OrderClose tendrá magic == 0.
Esto no hace mucha diferencia porque con el ID de posición puede rastrear el número mágico desde DEAL_ENTRY_IN, sin embargo para propósitos de análisis de historial tener una coincidencia DEAL_ENTRY_IN / DEAL_ENTRY_OUT probablemente daría más flexibilidad.
Hi fxsaber,
¡Mis mejores deseos para 2020!
¿Es una elección de diseño no incluir el número mágico en la solicitud de operación para la función MT4OrderClose?
Actualmente DEAL_ENTRY_OUT por MT4OrderClose tendrá magic == 0.
No es un gran problema porque con Position ID es posible rastrear el número mágico desde DEAL_ENTRY_IN, sin embargo para propósitos de análisis histórico tener DEAL_ENTRY_IN/DEAL_ENTRY_OUT coincidentes quizás daría más flexibilidad.
¿Es una decisión de diseño no incluir el número mágico en la solicitud de operación para la función MT4OrderClose?
Actualmente DEAL_ENTRY_OUT de MT4OrderClose tendrá magic == 0.
Esto no hace mucha diferencia porque con el ID de la posición usted puede rastrear el número mágico desde DEAL_ENTRY_IN, sin embargo para propósitos de análisis histórico tener una coincidencia DEAL_ENTRY_IN / DEAL_ENTRY_OUT probablemente daría más flexibilidad.
En OrderClose puede establecer el MagicNumber si lo desea.
En MT5, cuando se cierra parcialmente una posición, se puede cambiar el MagicNumber de la posición abierta, por lo que se le da una opción.
Por ejemplo, si tienes una posición abierta con MagicNumber = 5 y cierras la posición manualmente, entonces DEAL_ENTRY_OUT_MAGIC = 0. La librería seguirá devolviendo OrderMagicNumber() = 5.
No sé si es un bug o una característica, pero para futuros el beneficio y el precio de apertura no se calculan exactamente como se espera. Digamos que una posición se abre a las 12.00, a las 18.40 la posición se borra y se reabre automáticamente, y luego a las 20.00 la posición se cierra. GetHistoryPositionData para el ticket de la 4ª operación (salida de la posición) selecciona el beneficio como MT4ORDERS::Order.Profit = ::HistoryDealGetDouble(Ticket, DEAL_PROFIT); Lo que devolverá esencialmente la diferencia entre las operaciones 3-4 (compensación y salida). Pero devolverá el precio de apertura como MT4ORDERS::Order.OpenPrice = ::HistoryDealGetDouble(OpenTicket, DEAL_PRICE);. Es decir, devolverá el precio de apertura de la 1ª operación. En mi opinión, tiene sentido hacerlo uniforme, bien sacando todo de la primera operación (tanto el precio de apertura como el beneficio), o bien sacando todo de la última apertura (desde la 3ª operación hasta la compensación). ¿O esto es una característica, y debería ser así, y me estoy perdiendo algo?
Así que usted está analizando la historia en Netting a través de la biblioteca. Este es exactamente el caso planteado inicialmente, para el que la biblioteca no se ha completado. Y si lo estará es una gran incógnita. Porque hay mucho que hacer y en la práctica no es necesario.
En Netting sigo utilizando la misma biblioteca, pero evito trabajar con la historia.
https://www.mql5.com/ru/blogs/post/733393
Medición de la velocidad en una situación de una entrada de blog.
Resultado.
Se puede ver claramente cuanto cuestan las funciones HistorySelect.
OrdersHistoryTotal en caliente, aunque es menor, pero aún se nota, por lo que siempre se recomendó intentar no llamarlo más de una vez por On-event.
OrderSelect por historia resultó ser gratis.
Puede recopilar estadísticas sobre el tiempo empleado en la ejecución de órdenes de mercado (incluyendo TP/SL).
Resultado.
Hasta dos minutos de ejecución en una cuenta en funcionamiento. Comparta sus estadísticas aquí. El script no utiliza ninguna librería, es apto para Netting/Hedge.
En MT4/5 es bastante desagradable depurar cuando se trabaja con el historial de operaciones. Tienes que usar varias soluciones de muletas.
En MT5 puede ver inmediatamente todos los campos de la orden seleccionada a través de MT4Orders. Para ello, tiene que añadir MT4ORDERS::Order a la observación MT4ORDERS::Order.
De esta manera usted puede ver todas las propiedades de la orden seleccionada.
Comparte tus estadísticas aquí. El script no utiliza ninguna librería, apto para Netting/Hedge.
Así es como es el real:
Y una más: