En este artículo
Al terminar, sabrás…
- Identificar alcance y etapas de la operación de grupo.
- Relacionar ejecuciones y cantidades restantes por ticket.
- Verificar posiciones y pendientes sin repetir solicitudes inciertas.
Conceptos sin salir del artículo
Ejecución de órdenes Lote Stop-lossCerrar todo expresa intención, no ejecución simultánea
Close all de MT5 inicia una secuencia de solicitudes. Pueden quedar posiciones por rechazo, interrupción de una etapa o cierre de la aplicación. Identifica qué cantidades se ejecutaron y qué exposición sigue abierta. Esta guía se refiere a operaciones de grupo incorporadas en MT5; un complemento o EA puede utilizar otro procedimiento.
Registra el nombre completo: todas las posiciones, solo ganadoras, perdedoras, un símbolo o una dirección. La posición seleccionada puede cambiar las opciones disponibles. No confundas cierre con inversión: esta última puede crear exposición opuesta. Decir «cerré todo» sin cuenta, alcance, hora y confirmaciones no permite reconstruir qué ocurrió.
Las operaciones de grupo requieren One Click Trading y algunas no se muestran con restricciones FIFO. Comprueba modo de cuenta y ACCOUNT_FIFO_CLOSE, sin deducirlos del aspecto de la ventana ni del país asociado al idioma. En hedging, Close By compensa posiciones realmente opuestas del mismo símbolo; nombres parecidos de instrumentos distintos no forman automáticamente una pareja.
Distingue las etapas del procedimiento
La ayuda separa Close By secuencial y cierres ordinarios del resto. Un error en la compensación detiene ese proceso; después de una compensación correcta, el terminal envía solicitudes ordinarias sin esperar cada confirmación anterior. En esa etapa asíncrona, el rechazo deja su posición abierta y continúa el envío para las demás. El cierre FIFO es secuencial y se interrumpe ante error. No generalices la regla de una etapa a todas las demás.
El nombre de un script no acredita equivalencia con el menú integrado. Lee su lógica y forma de recuperar estado antes de atribuirle esas reglas. El modelo Close By permite comprobar también resultados y costes de una pareja, distintos de contar tickets cerrados.
Cinco posiciones y cuatro cierres confirmados
Modelo diagnóstico ficticio de cuenta hedging sin FIFO. EUR/USD permite Close By; no hay ejecuciones parciales, entradas nuevas ni otros cambios. A es compra EUR/USD de 0,10 lote y B, venta del mismo símbolo de 0,10. C es compra GBP/USD de 0,20; D, venta USD/JPY de 0,10; E, compra XAU/USD de 0,05. Las cantidades pertenecen a contratos diferentes: no las sumes como medida común de riesgo. No calculamos beneficio monetario de esta secuencia ni velocidad del servidor.
| Ticket | Estado inicial | Resultado confirmado | Resto |
|---|---|---|---|
| A | EUR/USD compra 0,10 | Close By con B completado | Ninguno |
| B | EUR/USD venta 0,10 | Close By con A completado | Ninguno |
| C | GBP/USD compra 0,20 | Cierre completo 0,20 | Ninguno |
| D | USD/JPY venta 0,10 | Rechazo; cantidad cerrada cero | Venta 0,10 |
| E | XAU/USD compra 0,05 | Cierre completo 0,05 | Ninguno |
Después de compensar A y B, el recuento pasa de cinco a tres posiciones. Se solicitan cierres de C, D y E. C y E se completan y D se rechaza: queda una venta USD/JPY de 0,10. Tres solicitudes enviadas no acreditan tres cierres realizados. La compensación retiró dos tickets mediante una operación, sin convertir ese hecho en dos solicitudes ordinarias idénticas.
A/B, C y E cerrados; D sigue venta USD/JPY 0,10. Enviar tres solicitudes ordinarias no confirma tres cierres.
- A y B · EUR/USD
- Close By completado – Dos posiciones retiradas.
- C · GBP/USD
- Cierre 0,20 confirmado – Una posición retirada.
- D · USD/JPY
- Rechazo del cierre – Venta 0,10 continúa.
- E · XAU/USD
- Cierre 0,05 confirmado – Una posición retirada.
Para cada ticket relaciona símbolo, dirección, volumen inicial, identificador de solicitud u orden, respuesta, operaciones y resto. MQL5 ofrece DEAL_ORDER, DEAL_POSITION_ID y DEAL_VOLUME para vincular hechos. Una orden puede producir varias ejecuciones; una fila fragmentaria no acredita por sí sola el cierre completo. Anota tiempos y zona, conservando referencia original si presentas Europe/Madrid.
Otras dos variantes dejan otro resto
En una variante separada del mismo inicio, A y B reciben un error Close By antes de ejecutarse y suponemos ausencia de operaciones de cierre. La secuencia se detiene antes de C, D y E: quedan las cinco. Esto difiere del rechazo de D después de una pareja compensada correctamente. Si solo falta respuesta, la ausencia de ejecución es una hipótesis pendiente, no un resultado confirmado.
En otra variante, A y B ya se cerraron y la aplicación termina antes de enviar C–E. Quedan tres posiciones. Cerrar el terminal no deshace ejecuciones confirmadas y tampoco cancela por deducción solicitudes que ya alcanzaron el servidor. Reiniciar no demuestra exposición cero ni justifica reenviar el lote entero usando volúmenes recordados.
Comprueba si otro EA, aplicación o usuario abrió posiciones durante el proceso. Un ticket nuevo puede ser exposición nueva y no un cierre fallido. Relaciona historial y origen de la instrucción. Para automatización propia, OrderSend=true no basta como prueba de ejecución: revisa resultados y eventos. No necesitas una operación real de diagnóstico para distinguir esos estados.
Ejercicio adicional de reconciliación, independiente de los volúmenes anteriores: un ticket comienza en 0,20 lote y dos cierres confirmados retiran 0,06 y 0,04. Restan 0,10. Una tercera solicitud de 0,10 sin resultado conocido no permite marcar resto cero. Registra «0,10 según última confirmación; nueva solicitud sin resolver» y consulta estado actual. Contar tres mensajes no sustituye sumar cantidades confirmadas; no asignamos euros de pérdida sin contrato y precios.
Posiciones vacías y pendientes activas pueden coexistir
MT5 dispone de operaciones separadas para borrar pendientes. El cierre de posiciones no confirma cancelación de esas instrucciones. Una compra pendiente P puede seguir activa después de cerrar los cinco tickets; si se ejecuta más tarde, crea otra posición. Comprueba solicitud de cancelación y resultado por separado, sin tratarla como si fuera una ejecución de cierre.
Tras sincronizar, lee posiciones sin filtros que oculten símbolo o dirección y reconcilia historial. Revisa pendientes aparte y describe cualquier estado vacío con cuenta y hora. Una captura no establece que un EA nunca vuelva a abrir. Las posiciones restantes necesitan evaluar su protección aceptada y riesgo actual aunque el proceso anterior no terminara como esperabas. La guía de errores y respuestas inciertas ayuda a conservar lo conocido sin repetir solicitudes por suposición.
Tres acciones para comprobar el resultado
- En demo, registra modo de cuenta, nombre completo del comando y lista inicial de tickets y volúmenes. Identifica qué etapa podría actuar sobre cada uno; usa un modelo o entorno de prueba permitido en lugar de provocar rechazos en una cuenta financiada.
- Relaciona cada posición con sus ejecuciones confirmadas. Separa compensación y cierre ordinario, rechazo y respuesta incierta. Recalcula los restos cinco→tres→uno y el ejercicio 0,20−0,06−0,04; no reenvíes toda la lista desde memoria.
- Termina con ambas listas sincronizadas: posiciones y pendientes de la cuenta correcta sin filtros. Evalúa exposición y niveles de lo que quede, conserva hora y registros y resuelve las instrucciones todavía inciertas antes de considerar completada la tarea.
Comprueba lo aprendido
Aprox. 2 minutos de práctica.
Ver respuesta y explicación
Correcto: cuatro tickets cerrados, D no tiene cierre confirmado.
Más preguntas
¿Cerrar todo también elimina pendientes?
Comprueba ambas listas por separado. MT5 ofrece comandos específicos de eliminación de pendientes; cerrar posiciones no acredita su cancelación. Una pendiente todavía activa puede ejecutarse después y crear otra posición. Registra alcance del comando, cuenta y hora de observación y consulta historial. Si la cancelación sigue sin resultado conocido, una lista de posiciones vacía no aclara su destino. Cancelación solicitada y ejecutada son estados diferentes.
¿Cerrar la aplicación deshace el proceso?
No revierte operaciones ya confirmadas. Puede detener el trabajo restante y dejar posiciones cuyos cierres aún no se enviaron. Para solicitudes previas al apagado identifica el resultado del servidor. Conserva diario, sincroniza cantidades y compara historial. Reiniciar cambia el estado de la aplicación, sin demostrar que la cuenta quedó plana. En la variante del artículo, dos tickets ya cerrados y tres solicitudes aún sin enviar dejan tres posiciones.
¿Por qué no veo el comando de cerrar ganadoras?
La lista depende de cuenta, posición seleccionada y configuración. La ayuda identifica comandos no disponibles bajo FIFO. Comprueba nombre completo y One Click Trading antes de atribuir el botón ausente a una avería del proveedor. Un complemento puede mostrar otro menú y seguir reglas distintas. No deduzcas de la apariencia del terminal que todas las cuentas admiten las mismas acciones ni que cerrar ganadoras equivalga a cerrar toda la exposición.
¿Puedo pulsar otra vez tras un error?
Establece primero posiciones actuales y estado de solicitudes anteriores. Algunas pueden haberse cerrado o reducido y otras haberse abierto de nuevo desde un EA. Rechazo y falta de confirmación no son equivalentes. Relaciona identificadores y cantidades confirmadas antes de definir otra operación para la exposición presente. Una nueva solicitud tiene alcance y condiciones propios; no completa automáticamente la lista antigua ni convierte un resultado incierto en un rechazo conocido.
Fuentes y comprobación
- MT5: cierres y eliminación de pendientes
Apartados365–390 y508–529 leídos: etapas, errores, apagado y eliminación separada. Sin atribuir a complementos el algoritmo incorporado.
- MQL5: propiedades de cuenta
Apartados63–69 leídos: modo yFIFOcomo propiedades efectivas, no regla legal mundial.
- MQL5: propiedades de ejecuciones
Apartados53–80 leídos:DEAL_ORDER,DEAL_POSITION_ID yDEAL_VOLUME.
- MQL5: OrderSend
Distincióntrue/ejecución comprobada en artículos anteriores del mismo trabajoES.
Los cálculos utilizan supuestos explícitos. No sustituyen los datos actuales de mercado ni las condiciones de tu proveedor.
