# Universal Smart Manual Trade Manager MT5 v1.00
## Qué hace el EA
Universal Smart Manual Trade Manager MT5 es un Asesor Experto de protección y gestión para operaciones abiertas manualmente. No abre nuevas entradas por sí mismo. Sólo adopta posiciones ya abiertas que pasan los filtros seleccionados, y puede añadir SL/TP faltantes, gestionar el punto de equilibrio, bloqueo de beneficios, ATR trailing, enviar notificaciones de Telegram, y mostrar información de estado en el gráfico.
La configuración por defecto es intencionadamente segura: el EA sólo gestiona posiciones manuales (`magic = 0`) en el símbolo del gráfico actual. Esto minimiza el riesgo de interferir accidentalmente con otro robot de trading.
Este Asesor Experto es una utilidad de gestión manual de operaciones. No abre operaciones automáticamente y no utiliza martingala, cuadrícula, arbitraje, scalping o lógica de negociación de noticias.
## Advertencia importante
El EA es universal, pero cada broker puede tener diferentes condiciones de símbolo, valor de tick, tamaño de tick, distancia mínima de stop, nivel de congelación y pasos de volumen. Antes de usar el EA en vivo, siempre pruebe el símbolo exacto y el broker en una cuenta demo o con una posición muy pequeña.
El EA lee las propiedades del símbolo del broker como:
- `SYMBOL_TRADE_TICK_VALUE`.
- TAMAÑO DEL SÍMBOLO
- DÍGITOS DEL SÍMBOLO
- PUNTO_SÍMBOLO
- NIVEL_PARADAS_SÍMBOLO
Esto le permite calcular el riesgo por 1 lote de forma universal. Sin embargo, para CFDs exóticos y símbolos no estándar del broker, el cálculo del riesgo debe ser siempre verificado manualmente.
---
# 1. Ajustes generales
## InpManagerEnabled
Activa o desactiva la gestión del EA.
- `true` = el EA gestiona posiciones según los filtros
- `false` = el EA no gestiona posiciones
## InpPresetProfile
Perfil de preajuste rápido. Cuando este valor es distinto de `CUSTOM`, el EA anula internamente los parámetros detallados seleccionados.
- HM_PROFILE_CUSTOM` = se utilizan los valores de entrada exactos
- HM_PROFILE_CONSERVATIVE` = ATR SL más amplio, punto de equilibrio más tardío, comportamiento más conservador.
- HM_PROFILE_BALANCED` = modo de gestión de operaciones por defecto: ATR SL + BE + Bloqueo
- HM_PROFILE_ACTIVE` = modo más activo con ATR trailing
Recomendación: utilice `CUSTOM` mientras realiza pruebas y ajustes. Para usuarios habituales, `BALANCED` es el mejor valor por defecto.
## InpManageScope
Define si el EA gestiona sólo el símbolo del gráfico actual o todos los símbolos de la cuenta.
- HM_SCOPE_CURRENT_SYMBOL` = sólo gestiona el símbolo del gráfico, por ejemplo sólo XAUUSD en un gráfico XAUUSD.
- HM_SCOPE_ALL_SYMBOLS` = una instancia del EA escanea y gestiona todas las posiciones abiertas en la cuenta.
El valor por defecto seguro es `CURRENT_SYMBOL`.
## InpManageManualPositionsOnly
- verdadero` = el EA sólo gestiona posiciones manuales con `magic = 0`.
- `false` = el EA también puede gestionar posiciones abiertas por otro EA si pasan el resto de filtros
Recomendación para la versión pública: mantener este `true` por defecto.
## InpUseMagicNumberFilter / InpMagicNumberFilter
Filtro opcional por número mágico.
Uso típico:
- operaciones manuales: `InpManageManualPositionsOnly = true`, filtro mágico desactivado
- robot específico: `InpManageManualPositionsOnly = false`, `InpUseMagicNumberFilter = true`, `InpMagicNumberFilter = número mágico de ese robot`.
## InpAdoptExistingPositionsOnInit
Cuando es `true`, el EA adopta las posiciones ya abiertas después del arranque si pasan los filtros.
## InpSendExistingAdoptionMessages
Cuando es `true`, el EA envía mensajes de Telegram para posiciones que ya existían antes de que se iniciara el EA. El valor por defecto es `false` para evitar el spam de mensajes tras el reinicio o migración del VPS.
## InpTimerSeconds
La frecuencia con la que se ejecuta el bucle de gestión, en segundos. El valor por defecto `2` es un buen compromiso. No se recomienda ponerlo a `1` cuando se usan múltiples símbolos o Telegram.
## InpDeviationPoints
Desviación máxima para operaciones de cierre y solicitudes de operación. No es crítico para la gestión normal de SL/TP.
---
# 2. Colocación automática de SL/TP
## InpSLTPMode
Define cómo calcula el EA los SL/TP.
### HM_SLTP_NONE
El EA no añadirá automáticamente SL/TP.
Útil cuando sólo se desea utilizar BE/trailing en posiciones donde SL se introduce manualmente.
### HM_SLTP_FIXED_POINTS_RR
Modo simple:
- SL = número fijo de puntos
- TP = SL × RR
Parámetros principales:
- `InpFixedSLPoints`
- InpAddSpreadToFixedSL
- InpRewardRiskRatio
### HM_SLTP_ATR_SPREAD_RR
Valor por defecto recomendado.
Cálculo:
```text
Distancia SL = ATR × InpSL_ATR_Multiplier + Spread × InpSpreadBufferMultiplier
Distancia TP = Distancia SL × InpRewardRiskRatio
```
Parámetros principales:
- `InpATRTimeframe`
- IPATRPeriod
- multiplicador `InpSL_ATR_Multiplier
- multiplicador spread buffer
- ratio de riesgo de recompensa
- PuntosSLmín
- PuntosSLmax
### HM_SLTP_SWING_ATR_BUFFER_RR
Modo más avanzado.
- BUY SL = último swing bajo - ATR buffer
- SELL SL = último swing alto + ATR buffer
- TP = RR × riesgo
Parámetros principales:
- InpSwingTimeframe
- InpSwingLookbackBars
- InpSwingStartShift
- InpSwingATRBufferMultiplier
- InpRewardRiskRatio
## InpPlaceMissingSL / InpPlaceMissingTP
Define si el EA añade SL y TP faltantes.
## InpReplaceExistingSL / InpReplaceExistingTP
Cuando es `true`, el EA puede reemplazar los valores SL/TP existentes.
Recomendación: manténgalo en `false` para los usuarios habituales para que el EA respete los niveles introducidos manualmente.
## InpAutoAdjustToMinStopLevel
Cuando el broker no permite SL/TP demasiado cerca del precio actual, el EA intenta mover el nivel a la distancia mínima permitida.
---
# 3. Punto de equilibrio, bloqueo de beneficios y trailing
## InpManagementMode
### HM_MGMT_NONE
Sin gestión de salida.
## HM_MGMT_CONSERVATIVE_BE
Después de alcanzar `InpBETriggerR`, el EA mueve el SL a la entrada más un pequeño offset.
Ejemplo
```text
InpBETriggerR = 1.00
InpBEOffsetR = 0.03
```
Después de alcanzar +1R, SL se mueve a aproximadamente +0.03R.
### HMGMT_BE_AND_LOCK
Por defecto recomendado.
Comportamiento típico:
```text
0.75R -> SL a BE + 0.03R
1.20R -> bloquear 0.30R
1.80R -> bloquear 0.80R
```
Parámetros:
- `InpBETriggerR`
- InpBEOffsetR
- InpLock1TriggerR
- Bloqueo1R
- Disparador de bloqueo 2 R
- `InpLock2R`
### HM_MGMT_ATR_TRAILING
Después de alcanzar `InpTrailStartR`, el EA comienza a mover SL usando ATR trailing.
Parámetros:
- `InpTrailATRTimeframe`
- `InpTrailATRPeriod` (Periodo ATR)
- InpTrailStartR
- InpTrailATRMultiplier
## InpNeverLoosenSL
Protección muy importante. Cuando `true`, SL nunca se mueve a un nivel peor.
- para posiciones de COMPRA, SL sólo puede moverse hacia arriba
- para posiciones de VENTA, SL sólo puede moverse hacia abajo
Recomendación: mantener siempre `true`.
## InpMinSecondsBetweenTradeMods
Protección contra modificaciones demasiado frecuentes de SL/TP. El valor por defecto es `8` segundos.
---
# 4. Guardia de seguridad diaria
## InpUseDailySafetyGuard
Activa la protección diaria basada en la equidad.
## InpMaxDailyLossMoney
Límite de pérdida diaria de dinero fijo. `0` = desactivado.
## InpMaxDailyLossPercent
Límite de pérdida diaria porcentual calculado a partir de la equidad de inicio del día.
## InpSafetyAction
- `HM_SAFETY_ALERT_ONLY` = sólo alerta.
- `HM_SAFETY_DISABLE_MANAGEMENT` = una vez alcanzado el límite, el EA deja de modificar posiciones
- HM_SAFETY_CLOSE_MANAGED` = intenta cerrar posiciones gestionadas
Recomendación para la primera versión: mantener el valor por defecto como `ALERT_ONLY`. El cierre de posiciones es una función agresiva y debe ser probada con el broker específico antes de su uso en vivo.
---
# 5. Telegrama
Telegram es opcional. El EA funciona normalmente sin Telegram.
## Entradas
- `InpUseTelegram` = activa/desactiva Telegram
- `InpTelegramBotToken` = token del bot
- `InpTelegramChatId` = ID de chat de usuario o grupo
- `InpTelegramStatusMode` = nivel de detalle del mensaje de estado
- `InpStatusIntervalMinutes` = intervalo de estado regular
- `InpSendOpenCloseMessages` = mensajes de adopción y cierre
- `InpSendSLTPModificationMessages` = mensajes de colocación y modificación de SL/TP
- `InpSendRiskStatusMessages` = mensajes regulares de riesgo/estado
- `InpMinSecondsBetweenTelegramMessages` = espaciado mínimo entre mensajes normales
- `InpMaxTelegramMessagesPerMinute` = número máximo de mensajes normales por minuto
## Protección anti-spam
Si el usuario abre o cierra varias operaciones en poco tiempo, es posible que el EA no envíe todas las notificaciones individuales. Algunos mensajes pueden fusionarse u omitirse, y el siguiente mensaje puede incluir la nota
```texto
Nota: X notificación(es) han sido fusionadas/saltadas por la protección anti-spam.
```
Esta es una protección intencionada contra el spam de Telegram y las llamadas WebRequest innecesarias.
---
# 6. Lo que verás en el gráfico
El panel del gráfico muestra
- Símbolo actual
- Oferta/Demanda
- spread
- ATR
- ATR/Spread
- SL de COMPRA sugerido
- SL de VENTA sugerido
- riesgo por 1 lote para COMPRA
- riesgo por 1 lote para VENTA
- número y tamaño de lote de las posiciones abiertas de COMPRA/VENTA
- ganancias/pérdidas abiertas de COMPRA/VENTA
- estado diario de la guardia de seguridad
- modo de ámbito de gestión
---
# 7. Configuraciones recomendadas
## Seguridad por defecto para un símbolo
```text
InpManageScope = HM_SCOPE_CURRENT_SYMBOL
InpManageManualPositionsOnly = true
InpSLTPMode = HM_SLTP_ATR_SPREAD_RR
InpManagementMode = HM_MGMT_BE_AND_LOCK
InpNeverLoosenSL = true
InpUseTelegram = false para la primera prueba
```
## Un Hand Manager para toda la cuenta
```text
InpManageScope = HM_SCOPE_ALL_SYMBOLS
InpManageManualPositionsOnly = true
```
Utilice sólo una instancia de EA en modo `ALL_SYMBOLS`. No ejecute varios Hand Managers en `ALL_SYMBOLS`, ya que podrían intentar gestionar las mismas posiciones.
## Gestionar otro robot por número mágico
```text
InpManageManualPositionsOnly = false
InpUseMagicNumberFilter = true
InpMagicNumberFilter = el número mágico seleccionado
```
# Configuración de Telegram para Universal Smart Manual Trade Manager MT5
## Lo que necesita
1. Una cuenta de Telegram.
2. Un bot de Telegram creado.
3. Un token de bot.
4. ID del chat.
5. WebRequest habilitado en MT5.
## 1. Crear un bot de Telegram
1. En Telegram, busca `@BotFather`.
2. Envía el comando `/newbot`.
3. Introduce un nombre de bot, por ejemplo `My Trade Manager Bot`.
4. Introduzca el nombre de usuario del bot. Debe terminar con `bot`, por ejemplo `my_trade_manager_123_bot`.
5. BotFather le enviará un token similar a:
```text
1234567890:ABCdefGhIJKlmNoPQRstuVWxyz
```
Pega este token en la entrada EA:
``texto
InpTelegramBotToken
```
## 2. Obtén tu ID de Chat
El método más sencillo:
1. Abre tu nuevo bot en Telegram.
2. Haz clic en `Iniciar` o envíale un mensaje, por ejemplo `prueba`.
3. Abre esta dirección en tu navegador:
``texto
```
4. En la respuesta, busca el objeto `chat` y su valor `id`.
5. Pega este número en la entrada EA:
```texto
InpTelegramChatId
```
Nota: los ID de chat de grupo pueden ser números negativos. Eso es normal.
## 3. Habilitar WebRequest en MT5
MT5 debe permitir la URL API de Telegram:
1. Abre `Tools`.
2. 2. Seleccione `Opciones`.
3. Abra la pestaña `Asesores expertos`.
4. Marque `Allow WebRequest for listed URL`.
5. Añada exactamente esta dirección
``texto
```
Sin este paso, el EA reportará un error WebRequest en el Diario MT5.
## 4. Habilitar Telegram en el EA
Configure estas entradas del EA:
```text
InpUseTelegram = true
InpTelegramBotToken = token del BotFather
InpTelegramChatId = tu ID de chat
InpStatusIntervalMinutes = 10
InpSendOpenCloseMessages = true
InpSendSLTPModificationMessages = true
InpSendRiskStatusMessages = true
```
## 5. Configuración antispam recomendada
```text
InpMinSecondsBetweenTelegramMessages = 20
InpMaxTelegramMessagesPerMinute = 3
```
Si el usuario abre varias operaciones en rápida sucesión, el EA puede omitir o fusionar algunos mensajes. Este comportamiento es correcto y es una protección anti-spam intencionada.
Texto recomendado para la documentación del producto:
```text
Las notificaciones de Telegram incluyen protección anti-spam. Si se abren, modifican o cierran múltiples operaciones en un corto periodo de tiempo, algunas notificaciones individuales pueden ser fusionadas u omitidas y resumidas en un mensaje posterior.
```
## 6. Probar Telegram
Después de activar el EA, deberías recibir un mensaje:
```text
Smart Manual Trade Manager iniciado
```
Si el mensaje no llega
1. Compruebe el token del bot.
2. Compruebe el ID del chat.
3. Asegúrate de haber enviado al menos un mensaje al bot.
4. Comprueba que la URL WebRequest está permitida en MT5.
5. Compruebe las pestañas "Expertos" y "Diario" en MT5.
## Nota de seguridad
El token del bot de Telegram es sensible. No lo publiques en capturas de pantalla, vídeos, comentarios de productos o mensajes públicos de soporte. Si el token está expuesto, regenéralo en BotFather y actualiza las entradas del EA.
# Desplegando Universal Smart Manual Trade Manager MT5 en MT5 VPS
## Principio básico
MT5 VPS migra el entorno actual del terminal local a la plataforma virtual: gráficos abiertos, Asesores Expertos adjuntos, indicadores y sus parámetros de entrada. Por lo tanto, antes de la migración, es importante preparar todos los gráficos localmente exactamente como deben ejecutarse en el VPS.
## Añadir Hand Manager junto al robot de trading principal
Si un EA principal de trading ya está destinado a ejecutarse en el VPS en un símbolo como UKOIL, y desea agregar Hand Manager, prepárelo localmente de la siguiente manera:
1. Abra el gráfico original de UKOIL con el EA de trading principal.
2. Abra un segundo gráfico del mismo símbolo, UKOIL.
3. Adjunte `Universal Smart Manual Trade Manager MT5` al segundo gráfico.
4. Mantenga el gestor manual seguro por defecto:
``texto
InpManageScope = HM_SCOPE_CURRENT_SYMBOL
InpManageManualPositionsOnly = true
```
5. Confirme que ambos gráficos están funcionando:
- gráfico 1: EA principal
- gráfico 2: Hand Manager
6. Realice una nueva migración/sincronización a MT5 VPS.
7. Compruebe el Diario del VPS y verifique que ambos Asesores Expertos se están ejecutando.
## Advertencia importante
Una nueva migración no se limita a añadir un nuevo gráfico a lo que ya se está ejecutando en el VPS. Transfiere el entorno actual del terminal local. Por lo tanto, durante la migración, todos los gráficos y EAs que deben permanecer en el VPS deben estar abiertos localmente.
Si sólo deja abierto localmente el gráfico del Hand Manager y ejecuta la migración, puede sobrescribir accidentalmente el entorno del VPS sin el robot de trading principal original.
## Un símbolo
Para un símbolo, la configuración recomendada es:
```text
Gráfico 1: símbolo + EA principal
Gráfico 2: mismo símbolo + Hand Manager
```
En el modo `CURRENT_SYMBOL`, Hand Manager sólo gestionará posiciones manuales en su símbolo gráfico.
## Múltiples símbolos: petróleo y oro
Pregunta: si un usuario tiene dos gráficos en VPS, por ejemplo petróleo y oro, ¿manejará Hand Manager posiciones manuales en ambos?
La respuesta depende de `InpManageScope`.
### Opción A: segura y recomendada para la mayoría de los usuarios
Utilice una instancia de Hand Manager por símbolo.
Ejemplo
```texto
Gráfico 1: UKOIL + EA principal o trading manual
Gráfico 2: UKOIL + Hand Manager, InpManageScope = CURRENT_SYMBOL
Gráfico 3: XAUUSD + EA principal o trading manual
Gráfico 4: XAUUSD + Hand Manager, InpManageScope = CURRENT_SYMBOL
```
En este modo:
- Hand Manager en UKOIL gestiona sólo UKOIL.
- Hand Manager en XAUUSD gestiona sólo XAUUSD.
- La configuración es clara y segura.
### Opción B: una instancia para toda la cuenta
Utilice una instancia de Hand Manager con:
```text
InpManageScope = HM_SCOPE_ALL_SYMBOLS
```
En este modo, un Hand Manager puede gestionar posiciones manuales en todos los símbolos de la cuenta, por ejemplo UKOIL y XAUUSD.
Regla importante:
```text
Ejecute sólo una instancia de Hand Manager en el modo ALL_SYMBOLS.
```
Si dos instancias del Hand Manager se están ejecutando en el VPS y ambas están configuradas en `ALL_SYMBOLS`, pueden intentar gestionar las mismas posiciones, enviar mensajes duplicados y realizar modificaciones SL/TP innecesarias.
## Texto recomendado para la documentación del producto
```text
El modo por defecto sólo gestiona el símbolo del gráfico actual. Para gestionar múltiples símbolos, adjunte una instancia de Hand Manager a cada símbolo del gráfico. Los usuarios avanzados pueden utilizar el modo ALL_SYMBOLS, pero sólo una instancia ALL_SYMBOLS debe ejecutarse en la cuenta.
```
## Lista de comprobación tras la migración del VPS
Después de la migración, compruebe:
1. Diario del VPS.
2. Número de gráficos.
3. Número de Asesores Expertos en ejecución.
4. Si está activado Algo Trading.
5. Si Telegram envió el mensaje de inicio, si Telegram está habilitado.
6. Si el panel gráfico no mostró errores localmente antes de la migración.
## Telegram en VPS
La configuración de WebRequest debe ser preparada localmente antes de la migración. La lista de URLs permitidas debe contener:
```text
https://api.telegram.org
```
Después de cambiar las entradas de Telegram o la configuración de WebRequest, realiza una nueva migración a VPS.
## Recomendación práctica
Para principiantes y usuarios regulares, utilice el modo `CURRENT_SYMBOL` y adjunte un Hand Manager a cada gráfico de símbolos. Utilice `ALL_SYMBOLS` sólo si el usuario entiende que una instancia de EA gestionará todas las posiciones manuales de la cuenta.