Local Trade Copier via Named Pipes IPC
- Utilidades
- Hayyu Imam Muhammad
- Versión: 2.15
- Activaciones: 10
Local Trade Copier es un Asesor Experto MT5 de un solo archivo diseñado para la rápida copia local de operaciones entre dos terminales MetaTrader que se ejecutan en el mismo PC. Puede funcionar tanto en modo emisor (host), que captura y publica la actividad comercial del terminal de origen, como en modo receptor (cliente), que lee esa actividad y la reproduce en el terminal de destino con controles flexibles para la asignación de símbolos, la dirección, el tamaño del lote, la copia SL/TP y la gestión de órdenes pendientes. Su principal ventaja es el uso de Named Pipes IPC a través de un servidor local de ayuda: en comparación con los métodos FILE_COMMON, evita la lectura y escritura repetida de archivos compartidos en el disco, reduce la sobrecarga de acceso a archivos y, en general, es más adecuado para la comunicación de baja latencia, ligera y en la misma máquina cuando ambos terminales se ejecutan en el mismo sistema Windows.
En la práctica, esta arquitectura proporciona un flujo de trabajo de copia comercial local con mayor capacidad de respuesta que la sincronización tradicional basada en archivos. Aunque FILE_COMMON es sencillo y ampliamente compatible, sigue dependiendo del sondeo repetido de archivos y de la E/S de disco. Por el contrario, el enfoque IPC de Named Pipes está diseñado para una entrega local de mensajes más rápida entre procesos, lo que lo convierte en una capa de transporte más adecuada para una copiadora de comercio que pretende ser rápida, eficiente y estable en un único ordenador.
Parámetros de entrada
01. Parámetros generales
Rol
Define el rol del EA.
- ROLE_SENDER: el EA actúa como terminal de origen y envía eventos de operación.
- ROLE_RECEIVER: el EA actúa como terminal de destino y copia los eventos recibidos.
ChannelName
El nombre del canal de comunicación.
Tanto los terminales como el servidor local de ayuda deben utilizar el mismo valor para comunicarse entre sí.
SharedBufferKB
El tamaño del buffer interno de eventos en kilobytes.
Un valor mayor permite disponer de más texto e historial de eventos antes de que se recorten los datos más antiguos.
EnableNamedPipeIPC
Activa o desactiva el transporte Named Pipes IPC.
Si se desactiva, el EA puede seguir conectado sin intentar utilizar inmediatamente la capa de comunicación de tuberías.
02. Configuración del remitente (host)
SenderTradeFilterMode
Especifica qué operaciones del remitente pueden transmitirse.
- HOST_FILTER_ALL: envía todas las operaciones elegibles
- HOST_FILTER_MANUAL_ONLY: envía sólo operaciones manuales.
- HOST_FILTER_MAGIC_ONLY: envía sólo las operaciones que coinciden con SenderMagicNumber
SenderMagicNumber
El número mágico utilizado cuando SenderTradeFilterMode se establece en filtrado sólo mágico.
Sólo se publicarán las operaciones con este número mágico.
SenderAllowedSymbols
Un filtro de símbolos del lado del emisor.
Déjelo vacío para permitir todos los símbolos, o restrinja la transmisión sólo a los símbolos seleccionados.
SenderSendSnapshotOnInit
Si está activado, el emisor publica inmediatamente la instantánea de la posición abierta actual cuando se inicia el EA.
Esto es útil cuando el receptor debe sincronizarse con operaciones ya abiertas después del inicio.
SenderSyncSLTPChanges
Si está activado, las modificaciones de stop-loss y take-profit en el lado del emisor se transmiten al receptor.
SenderSyncPendingOrders
Si está activado, también se transmiten los eventos de creación, modificación y cancelación de órdenes pendientes.
SenderResetSharedBufferOnInit
Si está activado, el emisor borra o restablece el búfer de comunicación compartido cuando se inicia.
Esto ayuda a evitar que se reutilicen datos de eventos obsoletos de una sesión anterior.
SenderScanIntervalMilliseconds
El intervalo del temporizador del lado del emisor, en milisegundos.
Controla la frecuencia con la que el emisor comprueba cambios como eventos de apertura/cierre, actualizaciones SL/TP y actualizaciones de órdenes pendientes.
03. Configuración del receptor (cliente)
ReceiverHostEventFilterMode
Especifica qué eventos de host aceptará el receptor.
- EVENT_FILTER_ALL: acepta todos los eventos de host
- EVENT_FILTER_MANUAL_ONLY: acepta sólo eventos de host procedentes de operaciones manuales
- EVENT_FILTER_MAGIC_ONLY: aceptar sólo eventos de host que coincidan con ReceiverAllowedHostMagic
ReceiverAllowedHostMagic
Se utiliza cuando el filtrado de eventos de host del lado del receptor está configurado en modo sólo mágico.
Sólo se copiarán los eventos de host con este número mágico.
ReceiverAllowedHostSymbols
Un filtro del lado del receptor para los símbolos de host entrantes.
Déjelo vacío para aceptar todos los símbolos, o utilícelo para limitar la copia sólo a los símbolos de origen seleccionados.
ReceiverSymbolMap
Asigna símbolos de host a símbolos de cliente.
Esto resulta útil cuando los agentes emisor y receptor utilizan nombres de símbolos, sufijos o etiquetas de contrato diferentes.
ReceiverMagic
El número mágico asignado a las posiciones u órdenes abiertas por el EA receptor.
Ayuda a distinguir las operaciones copiadas de las operaciones manuales o de otros EAs en el terminal cliente.
ReceiverDirectionMode
Define cómo se gestiona la dirección de la operación copiada.
- COPY_REVERSE: invierte la dirección del receptor
- COPY_SAME_AS_HOST: mantiene la misma dirección que el host
En la versión actual, el modo por defecto es COPY_SAME_AS_HOST.
ReceiverLotMode
Define cómo se calcula el tamaño del lote copiado.
- LOT_MULTIPLIER_FROM_HOST: utiliza el tamaño de lote del host multiplicado por ReceiverHostLotMultiplier
- LOT_FIXED: utiliza siempre ReceiverFixedLot
ReceiverHostLotMultiplier
Multiplicador aplicado al tamaño del lote del host cuando ReceiverLotMode está en modo multiplicador.
ReceiverFixedLot
El tamaño de lote fijo utilizado cuando ReceiverLotMode se establece en modo fijo.
ReceiverMaxDeviationPoints
Deslizamiento o desviación máxima permitida cuando el receptor envía órdenes de mercado.
ReceiverCopySLTP
Si está habilitado, el receptor también aplica los valores de stop-loss y take-profit del emisor.
ReceiverCopyBrokerPendingOrders
Si está habilitada, las órdenes pendientes copiadas se colocan como órdenes pendientes reales del lado del corredor en el terminal receptor.
ReceiverEnableVirtualPending
Si está habilitada, las órdenes pendientes se pueden gestionar virtualmente en el lado del receptor en lugar de colocarse siempre inmediatamente como órdenes pendientes del lado del corredor.
ReceiverVirtualPendingBufferPoints
Búfer de puntos adicional utilizado para la lógica de ejecución de órdenes pendientes virtuales.
Esto puede ayudar a controlar cómo de cerca el disparo virtual sigue el nivel pendiente original.
ReceiverPollIntervalMilliseconds
Intervalo de sondeo del receptor, en milisegundos.
Controla la frecuencia con la que el receptor comprueba el servidor pipe/helper para ver si hay nuevos eventos de negociación.
Resumen de uso práctico
Para un uso normal, el Emisor debe estar conectado al terminal de origen y el Receptor al terminal de destino, mientras que ambos lados utilizan el mismo ChannelName . Si desea que el receptor coincida con las operaciones actualmente abiertas al inicio, active SenderSendSnapshotOnInit . Si desea que las operaciones copiadas se comporten exactamente igual que en el lado del host, mantenga ReceiverDirectionMode en COPY_SAME_AS_HOST. Si los corredores utilizan diferentes nombres de símbolos, configure ReceiverSymbolMap en consecuencia.
