Un magic number es la forma que tiene un Expert Advisor de distinguir sus operaciones de las de los demás. Que dos EAs compartan un número no es un fallo cosmético: significa que cada bot puede cerrar, modificar o mover el stop de las posiciones del otro, y tus informes dejan de significar nada. El fallo es silencioso hasta el día en que te cuesta una operación.
Qué hace de verdad el magic number
Cuando un EA abre una orden la marca con un MagicNumber. A partir de ahí el EA solo toca posiciones con su propia marca: filtra por magic number antes de mover un stop, pasar a breakeven o contar cuántas operaciones tiene ya abiertas. Las operaciones manuales llevan el magic number 0. Si dos EAs usan el mismo valor, cada uno ve las posiciones del otro como suyas — la lógica de breakeven de un bot arranca el stop de una operación que el otro aún está gestionando, y un límite de "máximo 3 operaciones abiertas" cuenta doble.
Una instancia de EA, un símbolo, un magic number. Si dos componentes que gestionan órdenes pueden reclamar la misma operación, tienes una colisión — aunque todavía no haya fallado.
Lo sutil: es por instancia, no por archivo de EA
El error que atrapa a los traders con experiencia no son dos EAs distintos chocando, sino el mismo EA ejecutado dos veces. Carga "Trend Rider" en EURUSD y otra vez en GBPUSD con el magic number por defecto grabado en el set file, y ambos gráficos marcan las operaciones con 20501. Ahora la instancia de EURUSD cuenta las posiciones de GBPUSD dentro de sus propios límites y puede gestionarlas en cualquier tick. La regla es un magic number por instancia en ejecución, y en configuraciones multisímbolo normalmente querrás que varíe también por símbolo.
Un esquema de numeración que escala
Los números al azar funcionan hasta que tienes cuarenta y ni idea de cuál es cuál. Construye en su lugar un esquema legible. Un patrón habitual es una base por estrategia más un desplazamiento por símbolo:
- Bloques de 100 por estrategia. Trend Rider = 1000–1099, Grid Master = 1100–1199, Scalper Pro = 1200–1299.
- El símbolo como desplazamiento. Dentro de un bloque, EURUSD = +01, GBPUSD = +02, XAUUSD = +03. Así Trend Rider en GBPUSD es
1002, y Scalper Pro en oro es1203. - Reserva el 0 para las operaciones manuales y no lo asignes nunca a un EA.
Al leer 1203 sabes al instante la estrategia y el símbolo. Con números: cinco estrategias en seis símbolos son treinta instancias en ejecución, treinta números distintos, y cada uno se documenta solo — sin tabla de consulta.
Errores habituales cuando corres decenas
- Copiar un set file a un gráfico nuevo y olvidar cambiar el magic. La colisión más frecuente con diferencia. El set file arrastra el número antiguo consigo.
- Reutilizar el número de un EA retirado mientras sus posiciones u órdenes pendientes siguen en la cuenta. El EA nuevo adopta las operaciones fantasma.
- Valores distintos en MT4 y MT5 que se solapan por casualidad. Los magic numbers son por cuenta, no por plataforma — si dos terminales operan la misma cuenta del bróker, sus números comparten un mismo espacio y no deben chocar.
- Límites del bróker o de la cuenta. El magic number de MT4 es un entero de 32 bits, mientras que en MT5 es un entero de 64 bits (ulong), así que no limites innecesariamente los valores de MT5 al rango de 32 bits; mantén los valores holgadamente dentro del rango aplicable y evita números negativos o absurdamente grandes que algunos puentes truncan.
- Ningún registro escrito. Si el único apunte de qué número está dónde vive en tu cabeza, la próxima colisión es cuestión de tiempo.
Corregir una colisión con seguridad
Nunca renumeres un EA que tiene posiciones abiertas con el magic antiguo — en el momento en que lo cambias, esas operaciones se convierten en huérfanas que el EA ya no reconoce, así que ni las mueve ni las cierra. La secuencia segura es:
- Cierra o toma el control manual de las posiciones afectadas primero, o espera a que la instancia esté plana.
- Cambia el magic number en el set file y recarga el EA.
- Confirma que el nuevo número es único en todos los terminales que tocan esa cuenta, no solo en el que editaste.
Usa el gestor
El Gestor de Magic Numbers hace la contabilidad por ti. Pega tus Expert Advisors uno por línea — nombre y magic number actual, o solo el nombre para los que no tengan — y marca cada duplicado, conserva cada número que ya es único y reasigna solo los que chocan al siguiente hueco libre desde una base que eliges. Muestra los totales de conflictos y reasignaciones para que veas de un vistazo si tu flota está limpia, y el resultado es determinista, así que la misma entrada produce siempre el mismo esquema.
En resumen
Trata los magic numbers como un espacio de nombres que diseñas una vez y defiendes siempre: uno por instancia en ejecución, un esquema legible que codifique estrategia y símbolo, y un registro escrito de todas las cuentas. Comprueba los duplicados antes de desplegar, no después de que una operación acabe gestionada por el bot equivocado — porque ese fallo nunca se anuncia.