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#
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#
- Abre @BotFather en Telegram, escribe
/newboty sigue los pasos. Guarda el token que te da. - Escríbele cualquier mensaje a tu bot nuevo.
- Abre en el navegador
https://api.telegram.org/bot<TOKEN>/getUpdates(con tu token). Tuchat_ides el número demessage.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:
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:
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#
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):
@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:
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.
- DNS: crea un registro
Adeapp.tudominio.comcon la IP pública del VPS. - 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
config.yaml:
yaml
webapp:
enabled: true
public_url: "https://app.tudominio.com"
host: 127.0.0.1
port: 8080
- Reinicia el servicio. En el registro debe salir
Mini App en http://127.0.0.1:8080 (pública en https://app.tudominio.com). - 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#
- Conecta MetaTrader: copia los EAs y apunta
mt4_files_dira su carpeta. - Conecta Sandmarket: crea el token y activa
sandmarket.enabled.