Disclaimer: El autor de este blog no te contactará internamente para ofrecerte servicios o negocios. Si eso sucede, desconfía y reporta.

Cómo Evitar Reinicios Inesperados en tu VPS: Guía Definitiva para MetaTrader

Descubre cómo evitar reinicios inesperados de tu VPS y aprende a configurar una herramienta que reactivará automáticamente MetaTrader en caso de reinicio accidental, garantizando la continuidad de tus operaciones de copytrading.

SERVERS

Javier Gómez

10/16/20233 min leer

Evitar Reinicio VPS
Evitar Reinicio VPS

Imagina este escenario: tu servidor VPS se reinicia inesperadamente, causando el cierre de tus terminales de MetaTrader. Como resultado, tus algoritmos de trading dejan de operar y tu servicio de copytrading se ve gravemente afectado. Esto no solo puede costarte dinero, sino que también puede causar un gran dolor de cabeza. Para evitar esto, te enseñaremos una configuración que previene los reinicios del VPS y, en caso de que ocurra un reinicio, hemos creado una herramienta que monitorea cada 5 minutos que las terminales de MetaTrader estén en ejecución y, si no lo están, las ejecuta automáticamente. Sin duda, esto te ahorrará mucho dinero y dolores de cabeza.

Paso 1: Crear el Script de PowerShell

1.1 Crear el Documento del Script

Primero, crea un nuevo documento de texto en tu servidor VPS y copia el siguiente script en él. Guarda el archivo con el nombre check_metatrader.ps1 en la ruta C:Scripts. Antes de guardar el archivo, asegúrate de que la carpeta Scripts exista en la raíz del disco C. Si no existe, créala.

# Lista de rutas a cada instancia de MetaTrader 5

$metatraderPaths = @(

"C:Program Files (x86)MetaTrader 4 Terminal Aterminal.exe",

"C:Program Files (x86)MetaTrader 4 Terminal Bterminal.exe",

"C:Program Files (x86)MetaTrader 4 Terminal Cterminal.exe",

"C:Program Files (x86)MetaTrader 4 Terminal Dterminal.exe",

"C:Program Files (x86)MetaTrader 4 Terminal Eterminal.exe",

"C:Program Files (x86)MetaTrader 4 Terminal Fterminal.exe",

"C:Program Files (x86)MetaTrader 4 Terminal Gterminal.exe",

"C:Program Files (x86)MetaTrader 4 Terminal Hterminal.exe",

"C:Program Files (x86)MetaTrader 4 Terminal Iterminal.exe",

"C:Program Files (x86)MetaTrader 4 Terminal Jterminal.exe",

"C:Program Files (x86)MetaTrader 4 Terminal Kterminal.exe"

)

foreach ($path in $metatraderPaths) {

# Obtener el nombre del directorio que contiene el archivo terminal.exe

$dirName = [System.IO.Path]::GetDirectoryName($path)

# Comprobar si MetaTrader 5 está ejecutándose

$process = Get-Process | Where-Object { $_.Path -like "$dirName*" } -ErrorAction SilentlyContinue

# Si el proceso no está en ejecución, inicia MetaTrader 5

if ($null -eq $process) {

Start-Process -FilePath $path

}

}

Notas Importantes

Configuración del Servidor: En cada usuario VPS de 64 GB con procesador AMD, recomiendo y entrego preinstaladas 11 terminales de MetaTrader: 1 para la cuenta Maestra y 10 para las cuentas esclavas.
Normalmente, para este tipo de servidor, entrego preinstalados 4 usuarios RDP, permitiendo una capacidad instalada de 40 cuentas esclavas para tu Copytrading. Si requieres mayor capacidad, te recomiendo solicitar un upgrade. Nuestro portafolio de servidores actualizado está disponible en: CopyTradeVPS. Allí encontrarás servidores para todas las capacidades.

Personalización del Script: El script tiene rutas predeterminadas basadas en cómo se entregan nuestros servidores. Si has realizado nuevas instalaciones, deberás agregar las nuevas rutas en el script, siguiendo el formato establecido.

Paso 2: Crear una Tarea Programada para Ejecutar el Script cada 5 Minutos.

Abre PowerShell con permisos de administrador y usa el siguiente comando para crear la tarea programada:

$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File C:Scriptscheck_metatrader.ps1"

$trigger = New-ScheduledTaskTrigger -RepeatInterval (New-TimeSpan -Minutes 5) -Once

Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "CheckMetaTrader" -Description "Verificar y ejecutar MetaTrader 5 si no está en ejecución"

Paso 3: Configuración para Evitar que el Servidor Entre en Suspensión o se Apague.

Ejecuta los siguientes comandos en PowerShell para ajustar la configuración de energía y evitar que el servidor entre en suspensión o se apague automáticamente:

powercfg -change -standby-timeout-ac 0

powercfg -change -monitor-timeout-ac 0

powercfg -change -disk-timeout-ac 0

powercfg -change -hibernate-timeout-ac 0

Paso 4: Desactivar Actualizaciones Automáticas.

Ejecuta el siguiente script en PowerShell para desactivar actualizaciones automáticas:

# Deshabilitar las actualizaciones automáticas

Set-ItemProperty -Path "HKLM:SoftwarePoliciesMicrosoftWindowsWindowsUpdateAU" -Name "AUOptions" -Value 1 -Force

# Establecer las actualizaciones para que notifiquen en lugar de instalar automáticamente

Set-ItemProperty -Path "HKLM:SoftwarePoliciesMicrosoftWindowsWindowsUpdateAU" -Name "NoAutoUpdate" -Value 1 -Force

Resumen de la Implementación.

  1. Desactivar actualizaciones automáticas: Ejecuta el script proporcionado para desactivar actualizaciones automáticas.

  2. Crear y programar el script de monitoreo de MetaTrader: Guarda el script check_metatrader.ps1 en C:Scriptscheck_metatrader.ps1 y ejecuta el comando para crear la tarea programada.

  3. Configurar las opciones de energía: Ejecuta el script de configuración de energía en PowerShell.

Con estos pasos, tu servidor estará configurado para evitar reinicios inesperados y asegurar que todas las instancias de MetaTrader sigan funcionando continuamente, incluso en caso de reinicio accidental.