Sobre el proyecto

# Bot de alerta EMA (Deriv + Telegram) — V2 Este bot vigila alertas independientes, cada una siendo una combinación única de símbolo, intervalo y EMA. Cuando el precio toca la EMA configurada, se envía un mensaje de Telegram. Todo se configura con botones en Telegram, y el bot funciona gratis en GitHub Actions. ## Características principales - **Creación de alertas**: `/new` permite elegir símbolo, intervalo (1min a 1día) y EMA (9, 20, 50, 100, 200) mediante botones. - **Gestión de alertas**: `/alerts` lista las alertas, `/pause ID` y `/resume ID` suspenden/reactivan, `/delete ID` elimina con confirmación. - **Optimización**: las velas se descargan una sola vez por grupo (símbolo, intervalo) y se reutilizan para varias EMA, reduciendo las solicitudes a Deriv. - **Anti-duplicados**: el historial se guarda en `state.json` para evitar alertas repetidas en la misma vela. - **Personalización**: la lista de símbolos propuestos se puede modificar en `AVAILABLE_SYMBOLS` (Forex, Cripto, Índices sintéticos). ## Instalación 1. Crear un bot de Telegram con @BotFather y obtener el token y el ID del chat. 2. Crear un repositorio privado de GitHub y subir los archivos (`ema_alert.py`, `config.json`, `state.json`, `requirements.txt`, `.github/workflows/check.yml`). 3. Añadir los secretos `TELEGRAM_BOT_TOKEN` y `TELEGRAM_CHAT_ID` en los ajustes del repositorio. 4. Activar los permisos "Read and write" para los workflows. 5. Ejecutar el workflow manualmente la primera vez, luego se ejecuta automáticamente cada 5 minutos. ## Mejoras V2 - Corrección de condiciones de carrera en Git con reintento automático. - Gestión robusta de WebSocket con timeout. - Validación de secretos y estados. - Registro estructurado con marcas de tiempo. - Limpieza de IDs tras la eliminación. - Heartbeat configurable. ## Limitaciones - GitHub Actions puede tener retrasos de unos minutos en periodos de carga (adecuado para 30min/1h/4h, menos para scalping de 1min). - El plan gratuito incluye 2000 minutos/mes, más que suficiente. - Un solo usuario (el ID de chat configurado) puede controlar el bot. ## Evoluciones futuras Búsqueda de símbolos, categorías, modificación de alertas, otros tipos de alertas (cruce de EMA), notificaciones detalladas.