Bibliotecas: MT4Orders - página 62

 
fxsaber:

¡Actualización histórica de la librería! La única librería del mundo capaz de compensar las constantes desincronizaciones del entorno de trading MT5. Modesto, pero cierto.

Después de esta actualización se realizaron varios miles de operaciones en cuentas reales con diferentes brokers. El análisis mostró el perfecto funcionamiento del mecanismo de sincronización.

Recomiendo su uso. Hace que sus productos sean aún más fiables.

 

error de compilación :

cannot convert 0 to enum 'ENUM_TRADE_REQUEST_ACTIONS'   MT4Orders.mqh   2448    55

descargado la última versión de KB por si acaso, al parecer es: https: //www.mql5.com/ru/forum/170952/page203#comment_22563132

 
Igor Makanu:

error de compilación :

descargado la última versión de KB por si acaso, al parecer es: https: //www.mql5.com/ru/forum/170952/page203#comment_22563132

En cuanto solucione el problema lo actualizo.

 
// Lista de cambios:
// 01.06.2021
// Corrección: Compatibilidad con el compilador b2449+.
// Fix: Mejora de la sincronización. ByPass.mqh debe ser de la última versión.
// Añadir: OrderLots(true) - tamaño sincronizado de la posición seleccionada teniendo en cuenta todas las órdenes que la cierran.
// Resolución de problemas https://www.mql5.com/ru/forum/368178/page27#comment_22565676

#define  MT4ORDERS_BYPASS_MAXTIME 1000000 // Tiempo máximo (en µs) de espera para la sincronización del entorno comercial
#include <MT4Orders.mqh> // https://www.mql5.com/es/code/16006

#define  Ask SymbolInfoDouble(_Symbol, SYMBOL_ASK)

void OnStart()
{
  const TICKET_TYPE Ticket = OrderSend(_Symbol, OP_BUY, 1, Ask, 0, 0, 0);
  
  MT4ORDERS::OrderSend_MaxPause = 0;
    
  // Y ahora solo cierra 0.1 lote en caso de que el volumen de la posición sea igual a 1.
  // Ciclo - para emular la ejecución del script en cualquier momento.
  while (!IsStopped() && OrderSelect(Ticket, SELECT_BY_TICKET) && (OrderLots(true) == 1))
    OrderClose(OrderTicket(), 0.1, OrderClosePrice(), 0);
}
 

A petición mía, el MetaQutoes ha localizado completamente la última actualización de la biblioteca al inglés. La última build de la librería está ahora disponible en la página en inglés con los comentarios en el código fuente traducidos al inglés.


Diferencia con la versión anterior que estaba disponible en la página en inglés.

// Lista de cambios:
// 02.11.2018
// Fix: Ahora la posición MT4 Precio de apertura no puede ser cero antes de su activación.
// Corrección: Se han tenido en cuenta algunos aspectos de ejecución poco comunes de ciertos servidores de negociación.
// 26.11.2018
// Fix: Magia y comentario de una posición MT4 cerrada: La prioridad de los campos relevantes de las operaciones de apertura es mayor que la de las de cierre.
// Corrección: Los cambios poco frecuentes en MT5-OrdersTotal y MT5-PositionsTotal se tienen en cuenta al calcular MT4-OrdersTotal y MT4-OrderSelect.
// Fix: La librería no tiene en cuenta las órdenes que han abierto una posición, pero aún no han sido borradas de MT5.
// 17.01.2019
// Corrección: Corregido un desafortunado error en la selección de órdenes pendientes.
// 08.02.2019
// Añadir: El comentario de una posición se guarda al cierre parcial mediante OrderClose.
// Si necesita modificar el comentario de una posición abierta al cierre parcial, puede especificarlo en OrderClose.
// 20.02.2019
// Fix: En caso de no existir orden MT5, la librería esperará la sincronización del histórico de la transacción MT5 existente. En caso de fallo, informará de ello.
// 13.03.2019
// Añadir: Añadido OrderTicketID() - PositionID de una transacción MT5 o posición MT5, y el ticket de una orden MT4 pendiente.
// Añadir: SELECT_BY_TICKET funciona para todos los tickets MT5 (y MT5-PositionID).
// 02.11.2019
// Corrección: Corregido lote, comisión y precio de Cierre para posiciones CloseBy.
// 12.01.2020
// Corrección: OrderTicketID() para ofertas de saldo devuelve ahora un valor correcto.
// Corregido: Corregido SELECT_BY_TICKET - selección por OrderTicketID() (MT5-PositionID).
// Corrección: Cambiado el nombre del método interno de la librería para mayor compatibilidad con las macros.
// 10.04.2020
// Corrección: La orden pendiente parcialmente ejecutada no entraba en OrdersTotal().
// 09.06.2020
// Añadir: StopLoss/TakeProfit/ClosePriceRequest para posiciones cerradas están ahora mejor definidas.
// 10.06.2020
// Añadir: Añadidos milisegundos, eliminado redondeo de precios y órdenes en OrderPrint().
// 13.08.2020
// Añadir: Añadida la capacidad de comprobar el rendimiento de las partes de la biblioteca a través de la macro MT4ORDERS_BENCHMARK_MINTIME.
// 20.08.2020
// Arreglo: Tener en cuenta las características reveladas de la ejecución parcial de órdenes.
// 29.08.2020
// Fix: Implementado un trabajo más rápido con el historial de operaciones.
// 24.09.2020
// Añadir: Si necesita aumentar la prioridad de una orden MT5 sobre una posición MT5 al seleccionar una orden MT4 en vivo por SELECT_BY_TICKET (los mismos tickets),
// esto se puede hacer cambiando el tamaño del ticket a negativo: OrderSelect(-Ticket, SELECT_BY_TICKET).
// Añadir: Si necesita especificar la selección de sólo orden MT5 al modificar una orden MT4 en vivo (las mismas entradas),
// esto se puede hacer cambiando el tamaño del ticket a negativo: OrderModify(-Ticket, ...).
// Añadir: OrderSelect(INT_MAX, SELECT_BY_POS) - cambiar a una posición MT5 sin comprobar la existencia y actualización.
// OrderSelect(INT_MIN, SELECT_BY_POS) - cambiar a una orden MT5 en vivo sin comprobar la existencia y actualización.
// Fix: Implementado un trabajo más rápido con el historial de operaciones.
// 30.09.2020
// Fix: Implementado un trabajo más rápido con el historial de operaciones.
// 08.10.2020
// Corrección: OrderSend de una orden de mercado podría ser ejecutado más tiempo debido a un defecto en una búsqueda de acuerdo MT5 fresco.
// 21.10.2020
// Añadir: Para proporcionar compatibilidad para MT4, añadido OrderTicketID() - devuelve OrderTicket().
// 11.11.2020
// Corregido: OrderTicketID() y OrderTicketOpen() devuelven el tipo de valor especificado en TICKET_TYPE.
// 06.12.2020
// Corrección: Ahora se tienen en cuenta los casos de registros de ejecución SL/TP incorrectos en el historial de operaciones de MT5.
// Añadir: El mercado MT4ORDERS_TESTER_SELECT_BY_TICKET obliga a SELECT_BY_TICKET a funcionar en el Probador sólo a través de OrderTicketID().
// 04.05.2021
// Fix: Las órdenes MT5 que abren posiciones y no desaparecen ya no se añaden a la lista de órdenes MT4.
// Corrección: Las órdenes CloseBy MT5 ya no aparecen en la lista de órdenes MT4.
// 12.05.2021
// Añadir: La macro MT4ORDERS_BYPASS_MAXTIME cambia los casos constantemente emergentes de desincronización del entorno de trading en MT5.
// 13.05.2021
// Corrección: Corregido error en OrderOpenReason().
// 14.05.2021
// Corrección: El mecanismo BYPASS ya no afecta a OrderSelect(INT_MAX, SELECT_BY_POS) y OrderSelect(INT_MIN, SELECT_BY_POS).
// 01.06.2021
// Corrección: Compatibilidad con el compilador build 2449 y superiores.
// Fix: Mejora de la sincronización. ByPass.mqh debe ser de la última versión.
// Añadir: OrderLots(true) - tamaño sincronizado de la posición seleccionada, teniendo en cuenta todas las órdenes que cierran esta posición.


Recomiendo utilizar la última versión junto con el mecanismo de sincronización. Entonces todos los problemas que ninguna otra librería de comercio puede resolver serán imperceptibles.

#define  MT4ORDERS_BYPASS_MAXTIME 1000000 // Tiempo máximo (en microsegundos) de espera para la sincronización del entorno comercial
#include <MT4Orders.mqh> // https://www.mql5.com/es/code/16006

Para que este mecanismo funcione, es necesario descargar esta biblioteca. Todas las comprobaciones complejas y eficaces de la corrección del entorno comercial se realizarán automáticamente, sin distraer al usuario al escribir la lógica comercial.

TradesID
TradesID
  • www.mql5.com
Быстрая работа с POSITION_ID
 

Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading

Bibliotecas: MT4Orders

fxsaber, 2021.06.02 10:09

A petición mía, el MetaQutoes ha localizado completamente la última actualización de la biblioteca en Inglés. La última versión de la biblioteca ya está disponible en La última build de la librería está ahora disponible en la página en inglés con los comentarios en el código fuente traducidos al inglés.


La última compilación de la biblioteca ya está disponible en la página en inglés con comentarios en el código fuente traducidos al inglés.

// Lista de cambios.
// 02.11.2018
// Fix: Ahora la posición MT4 Precio de apertura no puede ser cero antes de su activación.
// Corrección: Se han tenido en cuenta algunos aspectos de ejecución poco comunes de determinados servidores de negociación.
// 26.11.2018
// Fix: Magia y comentario de una posición MT4 cerrada: La prioridad de los campos relevantes de las operaciones de apertura es mayor que la de las de cierre. La prioridad de los campos relevantes de las transacciones de apertura es mayor que la de las de cierre.
// Fix: Los cambios raros en MT5-OrdersTotal y MT5-PositionsTotal se tienen en cuenta al calcular MT4-OrdersTotal y MT4-OrdersTotal. OrderSelect.
// Fix: La librería no tiene en cuenta las órdenes que han abierto una posición, pero aún no han sido borradas de MT5.
// 17.01.2019
// Fix: Corregido un desafortunado error en la selección de órdenes pendientes.
// 08.02.2019
// Añadir: El comentario de una posición se guarda al cierre parcial mediante OrderClose.
// Si necesita modificar el comentario de una posición abierta al cierre parcial, puede especificarlo en OrderClose.
// 20.02.2019
// Corrección: En caso de no existir una orden MT5, la librería esperará la sincronización del histórico de la transacción MT5 existente. En caso de fallo, informará de ello. informará de ello.
// 13.03.2019
// Añadir: Añadido OrderTicketID() - PositionID de una transacción MT5 o posición MT5, y el ticket de una orden MT4 pendiente.
// Añadir: SELECT_BY_TICKET funciona para todos los tickets MT5 (y MT5-PositionID).
// 02.11.2019
// Fix: Corregido lote, comisión y precio de Cierre para posiciones CloseBy.
// 12.01.2020
// Corrección: OrderTicketID() para ofertas de saldo devuelve ahora un valor correcto.
// Fix: Corregido SELECT_BY_TICKET - selección por OrderTicketID() (MT5-PositionID).
// Fix: Cambiado el nombre del método interno de la librería para mayor compatibilidad con las macros.
// 10.04.2020
// Corrección: La orden pendiente parcialmente ejecutada no entraba en OrdersTotal().
// 09.06.2020
// Añadir: StopLoss/TakeProfit/ClosePriceRequest para posiciones cerradas están ahora mejor definidos.
// 10.06.2020
// Añadir: Añadidos milisegundos, eliminado el redondeo de precios y pedidos en OrderPrint().
// 13.08.2020
// Añadir: Añadida la posibilidad de comprobar el rendimiento de las partes de la biblioteca a través de la macro MT4ORDERS_BENCHMARK_MINTIME.
// 20.08.2020
// Arreglo: Tener en cuenta las características reveladas de la ejecución parcial de órdenes.
// 29.08.2020
// Fix: Implementado un trabajo más rápido con el historial de operaciones.
// 24.09.2020
// Añadir: Si necesita aumentar la prioridad de una orden MT5 sobre una posición MT5 al seleccionar una orden MT4 en vivo mediante SELECT_BY_TICKET (los mismos tickets), la
// esto se puede hacer cambiando el tamaño del ticket a negativo: OrderSelect(-Ticket, SELECT_BY_ TICKET).
// Añadir: Si necesita especificar la selección de sólo una orden MT5 al modificar una orden MT4 en vivo (las mismas entradas), entonces puede añadir la orden MT5 a la lista.
// esto se puede hacer cambiando el tamaño del ticket a negativo: OrderModify(-Ticket, ...) .
// Añadir: OrderSelect(INT_MAX, SELECT_BY_POS) - cambiar a una posición MT5 sin comprobar la existencia y actualización.
// OrderSelect(INT_MIN, SELECT_BY_POS) - cambiar a una orden MT5 en vivo sin comprobar la existencia y actualización. existencia y actualización.
// Fix: Implementado un trabajo más rápido con el historial de operaciones.
// 30.09.2020
// Fix: Implementado un trabajo más rápido con el historial de operaciones.
// 08.10.2020
// Corrección: OrderSend de una orden de mercado podía ejecutarse durante más tiempo debido a un fallo en una nueva búsqueda de operaciones en MT5.
// 21.10.2020
// Añadir: Para proporcionar compatibilidad para MT4, añadido OrderTicketID() - devuelve OrderTicket().
// 11.11.2020
// Corrección: OrderTicketID() y OrderTicketOpen() devuelven el tipo de valor especificado en TICKET_TYPE.
// 06.12.2020
// Corrección: Ahora se tienen en cuenta los casos de registros de ejecución SL/TP incorrectos en el historial de operaciones de MT5.
// Añadir: El mercado MT4ORDERS_TESTER_SELECT_BY_TICKET obliga a SELECT_BY_TICKET a funcionar en el Probador sólo a través de OrderTicketID().
// 04.05.2021
// Fix: Las órdenes MT5 que abren posiciones y no desaparecen ya no se añaden a la lista de órdenes MT4.
// Fix: Las órdenes CloseBy MT5 ya no aparecen en la lista de órdenes MT4.
// 12.05.2021
// Añadir: La macro MT4ORDERS_BYPASS_MAXTIME cambia los casos constantemente emergentes de desincronización del entorno de trading en MT5.
// 13.05.2021
// Corrección: Corregido error en OrderOpenReason().
// 14.05.2021
// Corrección: El mecanismo BYPASS ya no afecta a OrderSelect(INT_MAX, SELECT_BY_POS) y OrderSelect(INT_MIN, SELECT_BY_POS).
// 01.06.2021
// Corrección: Compatibilidad con el compilador build 2449 y superiores.
// Fix: Mejora de la sincronización. ByPass.mqh debe ser de la última versión.
// Añadir: OrderLots(true) - tamaño sincronizado de la posición seleccionada, teniendo en cuenta todas las órdenes que cierran esta posición.


Recomiendo usar la última versión junto con el mecanismo de sincronización. Entonces todos los problemas que ninguna otra librería de trading puede resolver serán Entonces todos los problemas que ninguna otra librería de trading puede resolver serán imperceptibles.

#define  MT4ORDERS_BYPASS_MAXTIME 1000000 // Tiempo máximo (en microsegundos) de espera para la sincronización del entorno comercial
#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006

Para que este mecanismo funcione, es necesario descargar esta biblioteca. Todas las comprobaciones complejas y eficaces de la corrección del entorno de negociación se realizarán automáticamente, sin distraer al usuario cuando el entorno de negociación no funcione. Todas las comprobaciones complejas y efectivas de la corrección del entorno de negociación se realizarán automáticamente, sin distraer al usuario cuando escriba la lógica de negociación.


 

Forum on trading, automated trading systems and testing trading strategies

Libraries: MT4Orders

fxsaber, 2021.06.02 10:09

At my request, the MetaQutoes has completely localized the latest update of the library into English. The latest build of the library is now available on the English page with comments in the source code translated into English.


Difference from the previous version that was available on the English-language page.

// List of changes:
// 02.11.2018
//   Fix: Now the MT4 position Open price cannot be zero before its triggering.
//   Fix: Some rare execution aspects of certain trading servers have been taken into account.
// 26.11.2018
//   Fix: Magic and comment of a closed MT4 position: Priority of the relevant fields of opening transactions is higher than that of closing ones.
//   Fix: Rare changes in MT5-OrdersTotal and MT5-PositionsTotal are taken into account while calculating MT4-OrdersTotal and MT4-OrderSelect.
//   Fix: Library does not take into account the orders which have opened a position, but have not been yet deleted from MT5.
// 17.01.2019
//   Fix: Fixed an unfortunate error in selecting pending orders.
// 08.02.2019
//   Add: Comment of a position is saved at partial closing via OrderClose.
//        If you need to modify the comment on an open position at partial closing, you can specify it in OrderClose.
// 20.02.2019
//   Fix: In case of no MT5 order, the library will expect the history synchronization from the existing MT5 transaction. In case of failure, it will inform about it.
// 13.03.2019
//   Add: Added OrderTicketID() - PositionID of an MT5 transaction or MT5 position, and the ticket of a pending MT4 order.
//   Add: SELECT_BY_TICKET works for all MT5 tickets (and MT5-PositionID).
// 02.11.2019
//   Fix: Corrected lot, commission, and Close price for CloseBy positions.
// 12.01.2020
//   Fix: OrderTicketID() for balance deals returns now a correct value.
//   Fix: Fixed SELECT_BY_TICKET - selection by OrderTicketID() (MT5-PositionID).
//   Fix: Changed name of the internal library method for greater compatibility with macros.
// 10.04.2020
//   Fix: Partially executed live pending order did not get into OrdersTotal().
// 09.06.2020
//   Add: StopLoss/TakeProfit/ClosePriceRequest for closed positions are now better defined.
// 10.06.2020
//   Add: Added milliseconds, removed price and order rounding in OrderPrint().
// 13.08.2020
//   Add: Added ability to check the performance of library parts via the MT4ORDERS_BENCHMARK_MINTIME macro.
// 20.08.2020
//   Fix: Taking into account the revealed features of partial order execution.
// 29.08.2020
//   Fix: Implemented faster working with the history of trades.
// 24.09.2020
//   Add: If you need to increase the priority of an MT5 order over an MT5 position when selecting a live MT4 order by SELECT_BY_TICKET (the same tickets),
//        this can be done by changing the ticket size to negative: OrderSelect(-Ticket, SELECT_BY_TICKET).
//   Add: If you need to specify the selection of only MT5 order when modifying a live MT4 order (the same tickets),
//        this can be done by changing the ticket size to negative: OrderModify(-Ticket, ...).
//   Add: OrderSelect(INT_MAX, SELECT_BY_POS) - switch to an MT5 position without checking the existence and updating.
//        OrderSelect(INT_MIN, SELECT_BY_POS) - switch to a live MT5 order without checking the existence and updating.
//   Fix: Implemented faster working with the history of trades.
// 30.09.2020
//   Fix: Implemented faster working with the history of trades.
// 08.10.2020
//   Fix: OrderSend of a market order could be executed longer due to a flaw in a fresh MT5 deal search.
// 21.10.2020
//   Add: To provide compatibility for MT4, added OrderTicketID() - returns OrderTicket().
// 11.11.2020
//   Fix: OrderTicketID() and OrderTicketOpen() return the value type specified in TICKET_TYPE.
// 06.12.2020
//   Fix: The cases of incorrect SL/TP execution records in the MT5 trading history are now taken into account.
//   Add: The MT4ORDERS_TESTER_SELECT_BY_TICKET market forces SELECT_BY_TICKET to work in the Tester only via OrderTicketID().
// 04.05.2021
//   Fix: The MT5 orders that open positions and fail to disappear are no longer added to the list of MT4 orders.
//   Fix: CloseBy MT5 orders no longer appear in the list of MT4 orders.
// 12.05.2021
//   Add: The MT4ORDERS_BYPASS_MAXTIME macro changes the constantly emerging cases of trading environment desynchronization in MT5.
// 13.05.2021
//   Fix: Fixed bug in OrderOpenReason().
// 14.05.2021
//   Fix: The BYPASS mechanism no longer affects OrderSelect(INT_MAX, SELECT_BY_POS) and OrderSelect(INT_MIN, SELECT_BY_POS).
// 01.06.2021
//   Fix: Compatibility with the compiler build 2449 and higher.
//   Fix: Improved synchronization. ByPass.mqh must be of the latest version.
//   Add: OrderLots(true) - synchronized size of the selected position, taking into account all orders which close this position.


I recommend using the latest version along with the synchronization mechanism. Then all the problems that no other trading library can solve will be imperceptible.

#define MT4ORDERS_BYPASS_MAXTIME 1000000 // Max time (in microseconds) to wait for the trading environment synchronization
#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006

For this mechanism to work, you need to download this library. All complex and effective checks of the correctness of the trading environment will be done automatically, without distracting the user when writing trading logic.


 

Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading

Bibliotecas: MT4Orders

fxsaber, 2021.06.02 10:09

A petición mía, el MetaQutoes ha localizado completamente la última actualización de la biblioteca en Inglés. La última build de la librería ya está disponible en la página en inglés con los comentarios en el código fuente traducidos al inglés.


Diferencia con la versión anterior que estaba disponible en la página en inglés.

// Lista de cambios:
// 02.11.2018
// Fix: Ahora la posición MT4 Precio de apertura no puede ser cero antes de su activación.
// Corrección: Se han tenido en cuenta algunos aspectos de ejecución poco comunes de determinados servidores de negociación.
// 26.11.2018
// Fix: Magia y comentario de una posición MT4 cerrada: La prioridad de los campos relevantes de las operaciones de apertura es mayor que la de las de cierre.
// Fix: Los cambios raros en MT5-OrdersTotal y MT5-PositionsTotal se tienen en cuenta al calcular MT4-OrdersTotal y MT4-OrderSelect.
// Fix: La librería no tiene en cuenta las órdenes que han abierto una posición, pero aún no han sido borradas de MT5.
// 17.01.2019
// Fix: Corregido un desafortunado error en la selección de órdenes pendientes.
// 08.02.2019
// Añadir: El comentario de una posición se guarda al cierre parcial mediante OrderClose.
// Si necesita modificar el comentario de una posición abierta al cierre parcial, puede especificarlo en OrderClose.
// 20.02.2019
// Fix: En caso de no existir orden MT5, la librería esperará la sincronización del histórico de la transacción MT5 existente. En caso de fallo, informará de ello.
// 13.03.2019
// Añadir: Añadido OrderTicketID() - PositionID de una transacción MT5 o posición MT5, y el ticket de una orden MT4 pendiente.
// Añadir: SELECT_BY_TICKET funciona para todos los tickets MT5 (y MT5-PositionID).
// 02.11.2019
// Fix: Corregido lote, comisión y precio de Cierre para posiciones CloseBy.
// 12.01.2020
// Corrección: OrderTicketID() para ofertas de saldo ahora devuelve un valor correcto.
// Fix: Corregido SELECT_BY_TICKET - selección por OrderTicketID() (MT5-PositionID).
// Fix: Cambiado el nombre del método interno de la librería para mayor compatibilidad con las macros.
// 10.04.2020
// Corrección: La orden pendiente parcialmente ejecutada no entraba en OrdersTotal().
// 09.06.2020
// Añadir: StopLoss/TakeProfit/ClosePriceRequest para posiciones cerradas están ahora mejor definidos.
// 10.06.2020
// Añadir: Añadidos milisegundos, eliminado el redondeo de precios y pedidos en OrderPrint().
// 13.08.2020
// Añadir: Añadida la posibilidad de comprobar el rendimiento de las partes de la biblioteca a través de la macro MT4ORDERS_BENCHMARK_MINTIME.
// 20.08.2020
// Arreglo: Tener en cuenta las características reveladas de la ejecución parcial de órdenes.
// 29.08.2020
// Fix: Implementado un trabajo más rápido con el historial de operaciones.
// 24.09.2020
// Añadir: Si necesita aumentar la prioridad de una orden MT5 sobre una posición MT5 al seleccionar una orden MT4 en vivo por SELECT_BY_TICKET (los mismos tickets),
// esto se puede hacer cambiando el tamaño del ticket a negativo: OrderSelect(-Ticket, SELECT_BY_TICKET).
// Añadir: Si necesita especificar la selección de sólo orden MT5 al modificar una orden MT4 en vivo (las mismas entradas),
// esto se puede hacer cambiando el tamaño del ticket a negativo: OrderModify(-Ticket, ...).
// Añadir: OrderSelect(INT_MAX, SELECT_BY_POS) - cambiar a una posición MT5 sin comprobar la existencia y actualización.
// OrderSelect(INT_MIN, SELECT_BY_POS) - cambiar a una orden MT5 en vivo sin comprobar la existencia y actualización.
// Fix: Implementado un trabajo más rápido con el historial de operaciones.
// 30.09.2020
// Fix: Implementado un trabajo más rápido con el historial de operaciones.
// 08.10.2020
// Corrección: OrderSend de una orden de mercado podía ejecutarse durante más tiempo debido a un fallo en una nueva búsqueda de operaciones en MT5.
// 21.10.2020
// Añadir: Para proporcionar compatibilidad para MT4, añadido OrderTicketID() - devuelve OrderTicket().
// 11.11.2020
// Corrección: OrderTicketID() y OrderTicketOpen() devuelven el tipo de valor especificado en TICKET_TYPE.
// 06.12.2020
// Corrección: Ahora se tienen en cuenta los casos de registros de ejecución SL/TP incorrectos en el historial de operaciones de MT5.
// Añadir: El mercado MT4ORDERS_TESTER_SELECT_BY_TICKET obliga a SELECT_BY_TICKET a funcionar en el Probador sólo a través de OrderTicketID().
// 04.05.2021
// Fix: Las órdenes MT5 que abren posiciones y no desaparecen ya no se añaden a la lista de órdenes MT4.
// Fix: Las órdenes CloseBy MT5 ya no aparecen en la lista de órdenes MT4.
// 12.05.2021
// Añadir: La macro MT4ORDERS_BYPASS_MAXTIME cambia los casos constantemente emergentes de desincronización del entorno de trading en MT5.
// 13.05.2021
// Corrección: Corregido error en OrderOpenReason().
// 14.05.2021
// Corrección: El mecanismo BYPASS ya no afecta a OrderSelect(INT_MAX, SELECT_BY_POS) y OrderSelect(INT_MIN, SELECT_BY_POS).
// 01.06.2021
// Corrección: Compatibilidad con el compilador build 2449 y superiores.
// Fix: Mejora de la sincronización. ByPass.mqh debe ser de la última versión.
// Añadir: OrderLots(true) - tamaño sincronizado de la posición seleccionada, teniendo en cuenta todas las órdenes que cierran esta posición.


Recomiendo utilizar la última versión junto con el mecanismo de sincronización. Entonces todos los problemas que ninguna otra librería de comercio puede resolver serán imperceptibles.

#define  MT4ORDERS_BYPASS_MAXTIME 1000000 // Tiempo máximo (en microsegundos) de espera para la sincronización del entorno comercial
#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006

Para que este mecanismo funcione, es necesario descargar esta biblioteca. Todas las comprobaciones complejas y eficaces de la corrección del entorno comercial se realizarán automáticamente, sin distraer al usuario al escribir la lógica comercial.


 

Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading

Bibliotecas: MT4Orders

fxsaber, 2021.06.02 10:09

A petición mía, el MetaQutoes ha localizado completamente la última actualización de la biblioteca en Inglés. La última build de la librería ya está disponible en la página en inglés con los comentarios en el código fuente traducidos al inglés.


Diferencia con la versión anterior que estaba disponible en la página en inglés.

// Lista de cambios:.
// 02.11.2018
// Fix: Ahora la posición MT4 Precio de apertura no puede ser cero antes de su activación.
// Corrección: Se han tenido en cuenta algunos aspectos de ejecución poco comunes de ciertos servidores de negociación.
// 26.11.2018
// Fix: Magic and comment of a closed MT4 position: Priority of the relevant fields of opening transactions is higher than that of closing ones. Fix: Magic and comment of a closed MT4 position: Priority of the relevant fields of opening transactions is higher than that of closing.
// Fix: Los cambios raros en MT5-OrdersTotal y MT5-PositionsTotal se tienen en cuenta al calcular MT4-OrdersTotal y MT4-. OrderSelect.
// Fix: La librería no tiene en cuenta las órdenes que han abierto una posición, pero aún no han sido borradas de MT5.
// 17.01.2019
// Fix: Corregido un desafortunado error en la selección de órdenes pendientes.
// 08.02.2019
// Añadir: El comentario de una posición se guarda al cierre parcial mediante OrderClose.
// Si necesita modificar el comentario de una posición abierta al cierre parcial, puede especificarlo en OrderClose.
// 20.02.2019
// Fix: En caso de no haber orden MT5, la librería esperará la sincronización del histórico desde la transacción MT5 existente. Fix: En caso de no haber orden MT5, la librería esperará la sincronización del histórico de la transacción MT5 existente.
// 13.03.2019
// Añadir: Añadido OrderTicketID() - PositionID de una transacción MT5 o posición MT5, y el ticket de una orden MT4 pendiente.
// Añadir: SELECT_BY_TICKET funciona para todos los tickets MT5 (y MT5-PositionID).
// 02.11.2019
// Fix: Corregido lote, comisión y precio de Cierre para posiciones CloseBy.
// 12.01.2020
// Corrección: OrderTicketID() para ofertas de saldo devuelve ahora un valor correcto.
// Fix: Corregido SELECT_BY_TICKET - selección por OrderTicketID() (MT5-PositionID).
// Fix: Cambiado el nombre del método interno de la librería para mayor compatibilidad con las macros.
// 10.04.2020
// Corrección: La orden pendiente parcialmente ejecutada no entraba en OrdersTotal().
// 09.06.2020
// Añadir: StopLoss/TakeProfit/ClosePriceRequest para posiciones cerradas está ahora mejor definido.
// 10.06.2020
// Añadir: Añadidos milisegundos, eliminado el redondeo de precios y pedidos en OrderPrint().
// 13.08.2020
// Añadir: Añadida la posibilidad de comprobar el rendimiento de las partes de la biblioteca a través de la macro MT4ORDERS_BENCHMARK_MINTIME.
// 20.08.2020
// Arreglo: Tener en cuenta las características reveladas de la ejecución parcial de órdenes.
// 29.08.2020
// Fix: Implementado un trabajo más rápido con el historial de operaciones.
// 24.09.2020
// Añadir: Si necesita aumentar la prioridad de una orden MT5 sobre una posición MT5 al seleccionar una orden MT4 en vivo por SELECT_BY_TICKET (las mismas tickets), // Añadir: Si necesita aumentar la prioridad de una orden MT5 sobre una
// esto se puede hacer cambiando el tamaño del ticket a negativo: OrderSelect(-Ticket, SELECT_BY_ TICKET).
// Añadir: Si necesita especificar la selección de sólo una orden MT5 al modificar una orden MT4 en vivo (las mismas entradas), puede utilizar las siguientes opciones.
// esto se puede hacer cambiando el tamaño del ticket a negativo: OrderModify(-Ticket, ...) .
// Añadir: OrderSelect(INT_MAX, SELECT_BY_POS) - cambiar a una posición MT5 sin comprobar la existencia y actualización.
// OrderSelect(INT_MIN, SELECT_BY_POS) - cambiar a una orden MT5 en vivo sin comprobar la existencia y actualización.
// Fix: Implementado un trabajo más rápido con el historial de operaciones.
// 30.09.2020
// Fix: Implementado un trabajo más rápido con el historial de operaciones.
// 08.10.2020
// Corrección: OrderSend de una orden de mercado podía ejecutarse durante más tiempo debido a un fallo en una nueva búsqueda de operaciones en MT5.
// 21.10.2020
// Añadir: Para proporcionar compatibilidad para MT4, añadido OrderTicketID() - devuelve OrderTicket().
// 11.11.2020
// Corrección: OrderTicketID() y OrderTicketOpen() devuelven el tipo de valor especificado en TICKET_TYPE.
// 06.12.2020
// Corrección: Ahora se tienen en cuenta los casos de registros de ejecución SL/TP incorrectos en el historial de operaciones de MT5.
// Añadir: El mercado MT4ORDERS_TESTER_SELECT_BY_TICKET obliga a SELECT_BY_TICKET a funcionar en el Probador sólo a través de OrderTicketID().
// 04.05.2021
// Fix: Las órdenes MT5 que abren posiciones y no desaparecen ya no se añaden a la lista de órdenes MT4.
// Fix: Las órdenes CloseBy MT5 ya no aparecen en la lista de órdenes MT4.
// 12.05.2021
// Añadir: La macro MT4ORDERS_BYPASS_MAXTIME cambia los casos constantemente emergentes de desincronización del entorno de trading en MT5.
// 13.05.2021
// Corrección: Corregido error en OrderOpenReason().
// 14.05.2021
// Corrección: El mecanismo BYPASS ya no afecta a OrderSelect(INT_MAX, SELECT_BY_POS) y OrderSelect(INT_MIN, SELECT_BY_POS).
// 01.06.2021
// Corrección: Compatibilidad con compilador build 2449 y superiores.
// Fix: Mejora de la sincronización. ByPass.mqh debe ser de la última versión.
// Añadir: OrderLots(true) - tamaño sincronizado de la posición seleccionada, teniendo en cuenta todas las órdenes que cierran esta posición.


Entonces todos los problemas que ninguna otra librería de comercio puede resolver serán Recomiendo utilizar la última versión junto con el mecanismo de sincronización.

#define  MT4ORDERS_BYPASS_MAXTIME 1000000 // Tiempo máximo (en microsegundos) de espera para la sincronización del entorno comercial
#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006

Para que este mecanismo funcione, es necesario descargar esta librería. Se realizarán todas las comprobaciones complejas y efectivas de la corrección del entorno comercial Todas las comprobaciones complejas y efectivas de la corrección del entorno de negociación se realizarán automáticamente, sin distraer al usuario cuando escriba la lógica de negociación.


 

Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading

Bibliotecas: MT4Orders

fxsaber, 2021.06.02 10:09

A petición mía, el MetaQutoes ha localizado completamente la última actualización de la biblioteca en Inglés. La última build de la librería ya está disponible en la página en inglés con los comentarios en el código fuente traducidos al inglés.


Diferencia con la versión anterior que estaba disponible en la página en inglés.

// Lista de cambios:
// 02.11.2018
// Fix: Ahora la posición MT4 Precio de apertura no puede ser cero antes de su activación.
// Corrección: Se han tenido en cuenta algunos aspectos de ejecución poco comunes de ciertos servidores de negociación.
// 26.11.2018
// Fix: Magia y comentario de una posición MT4 cerrada: La prioridad de los campos relevantes de las operaciones de apertura es mayor que la de las de cierre.
// Fix: Los cambios raros en MT5-OrdersTotal y MT5-PositionsTotal se tienen en cuenta al calcular MT4-OrdersTotal y MT4-OrderSelect.
// Fix: La librería no tiene en cuenta las órdenes que han abierto una posición, pero aún no han sido borradas de MT5.
// 17.01.2019
// Fix: Corregido un desafortunado error en la selección de órdenes pendientes.
// 08.02.2019
// Añadir: El comentario de una posición se guarda al cierre parcial mediante OrderClose.
// Si necesita modificar el comentario de una posición abierta al cierre parcial, puede especificarlo en OrderClose.
// 20.02.2019
// Fix: En caso de no existir orden MT5, la librería esperará la sincronización del histórico de la transacción MT5 existente. En caso de fallo, informará de ello.
// 13.03.2019
// Añadir: Añadido OrderTicketID() - PositionID de una transacción MT5 o posición MT5, y el ticket de una orden MT4 pendiente.
// Añadir: SELECT_BY_TICKET funciona para todos los tickets MT5 (y MT5-PositionID).
// 02.11.2019
// Fix: Corregido lote, comisión y precio de Cierre para posiciones CloseBy.
// 12.01.2020
// Corrección: OrderTicketID() para ofertas de saldo ahora devuelve un valor correcto.
// Fix: Corregido SELECT_BY_TICKET - selección por OrderTicketID() (MT5-PositionID).
// Fix: Cambiado el nombre del método interno de la librería para mayor compatibilidad con las macros.
// 10.04.2020
// Corrección: La orden pendiente parcialmente ejecutada no entraba en OrdersTotal().
// 09.06.2020
// Añadir: StopLoss/TakeProfit/ClosePriceRequest para posiciones cerradas están ahora mejor definidas.
// 10.06.2020
// Añadir: Añadidos milisegundos, eliminado el redondeo de precios y pedidos en OrderPrint().
// 13.08.2020
// Añadir: Añadida la posibilidad de comprobar el rendimiento de las partes de la biblioteca a través de la macro MT4ORDERS_BENCHMARK_MINTIME.
// 20.08.2020
// Arreglo: Tener en cuenta las características reveladas de la ejecución parcial de órdenes.
// 29.08.2020
// Fix: Implementado un trabajo más rápido con el historial de operaciones.
// 24.09.2020
// Añadir: Si necesita aumentar la prioridad de una orden MT5 sobre una posición MT5 al seleccionar una orden MT4 en vivo por SELECT_BY_TICKET (los mismos tickets),
// esto se puede hacer cambiando el tamaño del ticket a negativo: OrderSelect(-Ticket, SELECT_BY_TICKET).
// Añadir: Si necesita especificar la selección de sólo orden MT5 al modificar una orden MT4 en vivo (las mismas entradas),
// esto se puede hacer cambiando el tamaño del ticket a negativo: OrderModify(-Ticket, ...).
// Añadir: OrderSelect(INT_MAX, SELECT_BY_POS) - cambiar a una posición MT5 sin comprobar la existencia y actualización.
// OrderSelect(INT_MIN, SELECT_BY_POS) - cambiar a una orden MT5 en vivo sin comprobar la existencia y actualización.
// Fix: Implementado un trabajo más rápido con el historial de operaciones.
// 30.09.2020
// Fix: Implementado un trabajo más rápido con el historial de operaciones.
// 08.10.2020
// Corrección: OrderSend de una orden de mercado podía ejecutarse durante más tiempo debido a un fallo en una nueva búsqueda de operaciones en MT5.
// 21.10.2020
// Añadir: Para proporcionar compatibilidad para MT4, añadido OrderTicketID() - devuelve OrderTicket().
// 11.11.2020
// Corrección: OrderTicketID() y OrderTicketOpen() devuelven el tipo de valor especificado en TICKET_TYPE.
// 06.12.2020
// Corrección: Ahora se tienen en cuenta los casos de registros de ejecución SL/TP incorrectos en el historial de operaciones de MT5.
// Añadir: El mercado MT4ORDERS_TESTER_SELECT_BY_TICKET obliga a SELECT_BY_TICKET a funcionar en el Probador sólo a través de OrderTicketID().
// 04.05.2021
// Fix: Las órdenes MT5 que abren posiciones y no desaparecen ya no se añaden a la lista de órdenes MT4.
// Fix: Las órdenes CloseBy MT5 ya no aparecen en la lista de órdenes MT4.
// 12.05.2021
// Añadir: La macro MT4ORDERS_BYPASS_MAXTIME cambia los casos constantemente emergentes de desincronización del entorno de trading en MT5.
// 13.05.2021
// Corrección: Corregido error en OrderOpenReason().
// 14.05.2021
// Corrección: El mecanismo BYPASS ya no afecta a OrderSelect(INT_MAX, SELECT_BY_POS) y OrderSelect(INT_MIN, SELECT_BY_POS).
// 01.06.2021
// Corrección: Compatibilidad con el compilador build 2449 y superiores.
// Fix: Mejora de la sincronización. ByPass.mqh debe ser de la última versión.
// Añadir: OrderLots(true) - tamaño sincronizado de la posición seleccionada, teniendo en cuenta todas las órdenes que cierran esta posición.


Recomiendo utilizar la última versión junto con el mecanismo de sincronización. Entonces todos los problemas que ninguna otra librería de comercio puede resolver serán imperceptibles.

#define  MT4ORDERS_BYPASS_MAXTIME 1000000 // Tiempo máximo (en microsegundos) de espera para la sincronización del entorno comercial
#include <MT4Orders.mqh> // https://www.mql5.com/en/code/16006

Para que este mecanismo funcione, es necesario descargar esta biblioteca. Todas las comprobaciones complejas y eficaces de la corrección del entorno comercial se realizarán automáticamente, sin distraer al usuario al escribir la lógica comercial.