Menú
VisionAlert Guía

Instalar el servicio#

El servicio es un programa en Python que corre en tu VPS, normalmente el mismo Windows donde tienes MetaTrader. Lee los trabajos que mandan los EAs (o Sandmarket), llama a la IA y te avisa por Telegram.

Lo que necesitas#

  • Un VPS encendido todo el día. Si usas MetaTrader, el mismo Windows donde corre el terminal: así el servicio lee sus carpetas directamente.
  • Python 3.11 o superior.
  • Una cuenta de OpenRouter con saldo: la IA de visión y Jev se llaman con una sola clave.
  • Un bot de Telegram (gratis, lo creas en dos minutos).
  • Opcional, para la Mini App: un dominio o subdominio que apunte al VPS.

1. Descarga el kit#

PowerShell
git clone https://github.com/markospy/vision-alert.git
cd vision-alert\service
py -m pip install -r requirements.txt

Para actualizar más adelante: git pull en la carpeta del kit y vuelve a ejecutar la línea de pip.

2. Crea el bot de Telegram#

  1. Abre @BotFather en Telegram, escribe /newbot y sigue los pasos. Guarda el token que te da.
  2. Escríbele cualquier mensaje a tu bot nuevo.
  3. Abre en el navegador https://api.telegram.org/bot<TOKEN>/getUpdates (con tu token). Tu chat_id es el número de message.chat.id.

El bot solo responde a ese chat_id: nadie más puede usarlo.

3. Las claves, en .env#

Copia .env.example como .env, en la carpeta service, junto a config.yaml, y rellena:

Variable Para qué ¿Obligatoria?
OPENROUTER_API_KEY La IA de visión y Jev Sí, si analizas (MetaTrader o Sandmarket)
TELEGRAM_BOT_TOKEN Tu bot Sí
SANDMARKET_TOKEN El simulador (Sandmarket) Solo con sandmarket.enabled
EA_TOKEN Otros EAs que mandan trabajos por HTTP (tu propio EA) No

4. config.yaml: la infraestructura#

Copia config.example.yaml como config.yaml. Ahí va lo que no cambia de un día a otro: carpetas, Telegram, Mini App y Sandmarket. Las reglas de trading no van aquí: viven en la estrategia, que editas en la Mini App.

Un config.yaml mínimo para MetaTrader:

YAML
mt4_files_dir: "C:/Users/tu-usuario/AppData/Roaming/MetaQuotes/Terminal/XXXXXXXX/MQL4/Files"
telegram:
  chat_id: "123456789"

Y si solo vas a usar Sandmarket:

YAML
mt4_files_dir: ""
telegram:
  chat_id: "123456789"
sandmarket:
  enabled: true
  base_url: "https://api.tusandmarket.com"
  session_id: auto

Las claves que más se tocan:

Clave Por defecto Qué hace
mt4_files_dir vacío Carpeta MQL4\Files del MT4 donde corre VisionAlertEA (Archivo → Abrir carpeta de datos)
mt4_name MT4 Nombre de ese terminal en los avisos
terminals [] Otros MT4/MT5 (con OrderGuard), cada uno con name y files_dir
jobs_dir vacío Cola de trabajos sin MT4 local (EAs que mandan por HTTP o por carpeta compartida)
log_dir logs Dónde quedan los registros
telegram.chat_id vacío Tu chat con el bot
telegram.daily_summary_at vacío "23:55" = te manda el resumen del día a esa hora (hora del VPS)
vision.model, vision.effort — El modelo de visión de OpenRouter y su esfuerzo (low, medium, high)
webapp.enabled, webapp.public_url false, vacío La Mini App (ver abajo)
sandmarket.enabled, base_url, session_id false, http://127.0.0.1:8000, auto El simulador

Hace falta al menos uno de estos: mt4_files_dir, jobs_dir, algún terminal en terminals o sandmarket.enabled.

5. Arranca#

PowerShell
cd vision-alert\service
py -m vision_alert.main --config config.yaml

La primera vez crea strategy.json con la estrategia por defecto, junto a config.yaml. Escribe /ayuda al bot: debe responder con la lista de comandos.

Que arranque solo#

Crea service\start.bat (cambia la ruta por la tuya):

bat
@echo off
cd /d C:\vision-alert\service
if not exist logs mkdir logs
py -m vision_alert.main --config config.yaml >> logs\service.log 2>&1

Y regístralo para que se ejecute al iniciar sesión en el VPS:

PowerShell
schtasks /create /tn "VisionAlert" /tr "C:\vision-alert\service\start.bat" /sc onlogon /rl highest

Haz lo mismo con Caddy si usas la Mini App, y deja MetaTrader en la carpeta Inicio de Windows para que también se abra solo.

6. La Mini App (opcional, recomendada)#

La Mini App es una página dentro de Telegram para confirmar entradas, ver tus posiciones y editar la estrategia. Telegram solo abre Mini Apps con HTTPS, así que necesitas un dominio y Caddy, que consigue y renueva el certificado solo.

  1. DNS: crea un registro A de app.tudominio.com con la IP pública del VPS.
  2. Caddy: instálalo (en Windows, el ejecutable de caddyserver.com) con este Caddyfile:

text app.tudominio.com { reverse_proxy 127.0.0.1:8080 }

Arráncalo con caddy.exe run. Abre los puertos 80 y 443 en el panel de tu proveedor y en el cortafuegos de Windows:

powershell New-NetFirewallRule -DisplayName "Caddy HTTPS" -Direction Inbound -Protocol TCP -LocalPort 80,443 -Action Allow

  1. config.yaml:

yaml webapp: enabled: true public_url: "https://app.tudominio.com" host: 127.0.0.1 port: 8080

  1. Reinicia el servicio. En el registro debe salir Mini App en http://127.0.0.1:8080 (pública en https://app.tudominio.com).
  2. Abre tu chat con el bot. El botón de menú (abajo a la izquierda) se llama TraderKit y abre la app.

Esta guía vive en la misma dirección: https://app.tudominio.com/docs. En la app, el botón ❓ Guía de la cabecera la abre.

Siguiente paso#