🚀 TradeCopierBot — Copia de operaciones rápida, limpia y a prueba de brokers (Local/VPS) 🔁✨
Copia tus operaciones desde una CUENTA MAESTRA a una (o más) CUENTAS ESCLAVAS con un copiador ligero y basado en eventos diseñado para condiciones reales de trading: diferentes brokers, diferentes nombres de símbolos, diferentes reglas de lotes.
Perfecto para ejecución multi-cuenta, escalado de riesgo y distribución de estrategias—con registros detallados de depuración para que siempre sepas qué está pasando. 🧠📈
✅ Optimizado para configuraciones Local / VPS (misma máquina).
❌ No diseñado para cTrader Cloud (las instancias están aisladas, por lo que las señales no pueden compartirse). ☁️🚫
Atención: si tienes dos cuentas diferentes de cTrader, necesitas comprar dos cBots; de lo contrario, no podrás copiarlas. Estamos a tu completa disposición para cualquier información.
🧠 Cómo funciona (MAESTRO → ESCLAVO) 🧩
🔁 1) Transporte de señales (cómo “viajan” las operaciones)
Este copiador usa cTrader LocalStorage (ámbito del dispositivo) como un “bus de mensajes” compartido.
✅ MAESTRO
- Escucha eventos de posición: Abierta / Modificada / Cerrada
- Crea una
TradeSignal(ABRIR / MODIFICAR / CERRAR) - La añade a una lista de señales en LocalStorageScope.Device
- Llama a Flush() para que el ESCLAVO pueda leerla inmediatamente
✅ ESCLAVO
- Ejecuta un Temporizador cada Intervalo de sondeo segundos
- Llama a Reload()
- Lee la lista de señales
- Procesa solo señales nuevas (usando
_lastSignalIndexProcessed)
🧷 2) Mapeo de posiciones (para que CERRAR funcione)
Cuando el ESCLAVO abre una operación, almacena:
🧩 MasterPositionId → SlavePositionId
Este mapeo también se guarda en LocalStorage, por lo que sobrevive a reinicios:
- ✅ CERRAR sigue funcionando después del reinicio
- ✅ MODIFICAR sigue encontrando la posición correcta
🧭 3) Traducción de símbolos (símbolo MAESTRO → símbolo ESCLAVO)
🗺️ Mapa de símbolos (MAESTRO=ESCLAVO;...)
Usado cuando los nombres de símbolos difieren entre brokers/cuentas.
Formato:
MAESTRO=ESCLAVO;MAESTRO2=ESCLAVO2;...
Ejemplo (tu caso):
- MAESTRO abre
USTEC - ESCLAVO debe operar
US100
➡️ USTEC=US100
✅ Lado izquierdo = símbolo que llega desde MAESTRO
✅ Lado derecho = símbolo en el broker ESCLAVO
📏 4) Lógica de volumen (la parte clave) 🔥
✅ Funciona en lotes/cantidad (decimales soportados)
Para manejar decimales (0.10, 0.01, etc.), el ESCLAVO:
- Calcula lotes deseados
- Aplica multiplicador / mínimo / paso
- Convierte lotes → volumen usando
QuantityToVolumeInUnits(lots) - Envía la orden usando una sobrecarga que acepta volumen double ✅
Esto es lo que lo hace robusto incluso cuando los brokers imponen diferentes reglas de precisión de lotes.
⚙️ Parámetros explicados (con íconos)
🧩 Núcleo
- 🧭 Modo
-
Master= publica señalesSlave= lee señales y copia operaciones
- 🧷 Id de grupo de copia
-
- Canal de comunicación. MAESTRO y ESCLAVO deben coincidir (ej.,
DEFAULT)
- Canal de comunicación. MAESTRO y ESCLAVO deben coincidir (ej.,
- ⏱️ Intervalo de sondeo (segundos)
-
- ESCLAVO verifica nuevas señales cada N segundos
- 🐞 Modo depuración
-
- Imprime registros detallados (recomendado durante la configuración)
🗺️ Traducción de símbolos
- 🧾 Mapa de símbolos (MAESTRO=ESCLAVO;...)
-
- Ejemplo:
USTEC=US100;XAUUSD=GOLD;NAS100=USTEC
- Ejemplo:
🎚️ Escalado de volumen (LO MÁS IMPORTANTE) ✅
🔢 Multiplicador global
- ➗ Multiplicador de volumen
-
- Escala todos los lotes copiados:
desiredLots = masterLots * VolumeMultiplier
🎛️ Multiplicador por símbolo (tu herramienta principal)
- 🧷 Mapa de multiplicador de volumen (SYM=mult;...)
-
- Sobrescribe el multiplicador por símbolo (símbolo del lado ESCLAVO)
- Ejemplo:
-
US100= 0. 10- El formato italiano también está bien:
US100=0,10
✅ Así es como logras: 1. 00 en MAESTRO → 0. 10 en ESCLAVO
🧱 Restricciones de lote del broker (mínimo y paso)
- 🧱 Cantidad mínima por defecto (0=desactivado)
-
- Lotes mínimos globales si está activado
- 🧱 Mapa de cantidad mínima (SYM=val;...)
-
- Lotes mínimos por símbolo
- Ejemplo:
US100=0. 10
- 🪜 Paso de cantidad por defecto (0=desactivado)
-
- Paso global si está activado
- 🪜 Mapa de paso de cantidad (SYM=val;...)
-
- Paso por símbolo
- Ejemplo:
US100=0. 10→ valores permitidos: 0. 10, 0 .20, 0.30…
🧯 Comportamientos de seguridad
- 🧷 Usar cantidad mínima como lotes fijos
-
- Si
true: ESCLAVO ignora el tamaño del maestro y siempre usa MinQty (tamaño fijo)
- Si
- ⚠️ Comportamiento BajoMin
-
UseMin= si está por debajo del mínimo → subir al mínimoSkip= si está por debajo del mínimo → no abrir
- 🔁 Intentos de volumen incorrecto
-
- Si el broker devuelve BadVolume, intenta pequeños ajustes hasta N veces
🎯 Lógica de copia SL/TP
- 🛡️ Copiar SL/TP como distancia cuando el símbolo difiere
-
- Si los símbolos MAESTRO y ESCLAVO difieren:
- SL/TP se copia como distancia desde la entrada, no precio absoluto
- Esto mantiene los controles de riesgo consistentes entre instrumentos
✅ Configuración recomendada (USTEC → US100, lote ESCLAVO = 0. 10)
En el ESCLAVO:
🗺️ Traducción de símbolos:
Mapa de símbolos=USTEC=US100
🎛️ Escalado de volumen:
Mapa de multiplicador de volumen=US100=0,10
🧱 Restricciones del broker:
Mapa de cantidad mínima=US100=0,10Mapa de paso de cantidad=US100=0,10
Resultado:
- ✅ MAESTRO 1. 00 → ESCLAVO 0. 10 en US100
☁️ Importante: Solo Local/VPS (no Cloud) ❌
🖥️ Local/VPS ✅
Funciona porque MAESTRO y ESCLAVO comparten el mismo LocalStorageScope.Device (misma máquina/entorno).
☁️ cTrader Cloud ❌
No funciona porque las instancias Cloud están aisladas, por lo que no comparten LocalStorage y el ESCLAVO no puede ver las señales del MAESTRO.
✅ Conclusión:
- ✔️ Usar en el mismo PC o en un VPS donde ambas instancias se ejecuten juntas
- ❌ Para Cloud necesitas un relé externo (servidor HTTP/WebSocket)
5 | 67 % | |
4 | 0 % | |
3 | 33 % | |
2 | 0 % | |
1 | 0 % |