$npx -y skills add kecoma1/MQL5-SKILLS --skill orquestateOrquestar cuentas MetaTrader 5 del workspace actual usando MQL5\Scripts\interface.py, archivos accounts/account_id/info.md, accounts/account_id/bots.ini y notificaciones Telegram. Use when Codex is asked to orchestrate accounts, coordinate account-specific bots, prepare or inspec
| 1 | # Orquestate |
| 2 | |
| 3 | ## Flujo |
| 4 | |
| 5 | Orquesta siempre desde la cuenta MT5 actualmente conectada. Trata cualquier orden o cambio de trading como una operacion live: no abras, cierres ni edites operaciones salvo que el usuario lo pida explicitamente. |
| 6 | |
| 7 | 1. Consultar la cuenta actual con la skill `interface`: |
| 8 | |
| 9 | ```powershell |
| 10 | cd C:\Users\<user-id>\AppData\Roaming\MetaQuotes\Terminal\<terminal-id>\MQL5\Scripts |
| 11 | python interface.py --cmd=account --json |
| 12 | ``` |
| 13 | |
| 14 | 2. Extraer el id/login de la cuenta del JSON. Si el JSON no incluye una clave obvia, usar el login que muestre la salida de `--cmd=account`. |
| 15 | |
| 16 | 3. Leer `accounts/<account_id>/info.md` desde la raiz del terminal. Si no existe, pedir al usuario los datos minimos antes de crear o modificar configuracion: proposito de la cuenta, riesgo permitido, restricciones, mercados, sesiones y cualquier regla operativa. |
| 17 | |
| 18 | 4. Comprobar `accounts/<account_id>/bots.ini`. |
| 19 | |
| 20 | 5. Si `bots.ini` no existe, preguntar que bots quiere tener funcionando y que parametros necesita cada uno. No inventes bots, simbolos, timeframes, lotajes ni parametros de riesgo. Crear el archivo solo cuando el usuario haya dado la configuracion suficiente. |
| 21 | |
| 22 | 6. Si `bots.ini` ya existe, asumir que hay una configuracion de bots definida. No reescribirla salvo peticion expresa. Revisar su contenido y enviar un resumen por Telegram. |
| 23 | |
| 24 | 7. Enviar la notificacion con `scripts/send_telegram.py`. La configuracion privada vive en `accounts/<account_id>/telegram.env`. |
| 25 | |
| 26 | ## Archivos De Cuenta |
| 27 | |
| 28 | Usar esta estructura por cuenta: |
| 29 | |
| 30 | ```text |
| 31 | accounts/ |
| 32 | <account_id>/ |
| 33 | info.md |
| 34 | bots.ini |
| 35 | telegram.env |
| 36 | ``` |
| 37 | |
| 38 | `info.md` contiene informacion humana de la cuenta: riesgo, objetivo, limites, mercados, broker, restricciones y notas operativas. |
| 39 | |
| 40 | `bots.ini` contiene la configuracion que se usara para iniciar MT5 con los bots de esa cuenta. Si no hay formato previo en el workspace, crear un INI legible y estable: |
| 41 | |
| 42 | ```ini |
| 43 | [account] |
| 44 | id=123456 |
| 45 | risk_profile=segun accounts/123456/info.md |
| 46 | |
| 47 | [bot:mean-reversion-eurusd] |
| 48 | enabled=true |
| 49 | expert=MQL5\Experts\mean-reversion.ex5 |
| 50 | symbol=EURUSD |
| 51 | timeframe=M15 |
| 52 | risk=0.50 |
| 53 | set_file=MQL5\Profiles\Tester\mean-reversion-eurusd.set |
| 54 | notes=Configuracion confirmada por el usuario |
| 55 | ``` |
| 56 | |
| 57 | `telegram.env` debe estar ignorado por Git y contener: |
| 58 | |
| 59 | ```dotenv |
| 60 | TELEGRAM_API_KEY=123456:token |
| 61 | TELEGRAM_CHAT=-1001234567890 |
| 62 | TELEGRAM_CHANNEL=@canal_opcional |
| 63 | ``` |
| 64 | |
| 65 | `TELEGRAM_API_KEY` y `TELEGRAM_CHAT` son obligatorios para notificar. `TELEGRAM_CHANNEL` es opcional; si falta o esta vacio, ignorarlo. No imprimir tokens completos en respuestas. |
| 66 | |
| 67 | ## Telegram |
| 68 | |
| 69 | Enviar mensajes con el script incluido en esta skill: |
| 70 | |
| 71 | ```powershell |
| 72 | python C:\Users\<user-id>\AppData\Roaming\MetaQuotes\Terminal\<terminal-id>\MQL5\skills\orquestate\scripts\send_telegram.py --account-id 123456 --message "Orquestacion revisada para la cuenta 123456" |
| 73 | ``` |
| 74 | |
| 75 | El script usa una peticion HTTP GET a `https://api.telegram.org/bot<TOKEN>/sendMessage`, igual que los EAs Telegram del workspace. Envia siempre a `TELEGRAM_CHAT` y, si `TELEGRAM_CHANNEL` existe, tambien a ese destino. |
| 76 | |
| 77 | Para mensajes largos o con saltos de linea, usar `--message-file`: |
| 78 | |
| 79 | ```powershell |
| 80 | python C:\Users\<user-id>\AppData\Roaming\MetaQuotes\Terminal\<terminal-id>\MQL5\skills\orquestate\scripts\send_telegram.py --account-id 123456 --message-file .\accounts\123456\last-orchestration-message.txt |
| 81 | ``` |
| 82 | |
| 83 | Usar `--dry-run` para validar el env y los destinos sin enviar: |
| 84 | |
| 85 | ```powershell |
| 86 | python C:\Users\<user-id>\AppData\Roaming\MetaQuotes\Terminal\<terminal-id>\MQL5\skills\orquestate\scripts\send_telegram.py --account-id 123456 --message "Prueba" --dry-run |
| 87 | ``` |
| 88 | |
| 89 | ## Reglas |
| 90 | |
| 91 | - Preguntar al usuario que bots quiere tener funcionando si falta `accounts/<account_id>/bots.ini`. |
| 92 | - No crear `bots.ini` con conjeturas sobre bots, simbolos, timeframes, lotaje, riesgo o parametros. |
| 93 | - No modificar `bots.ini` existente salvo que el usuario lo pida o confirme cambios concretos. |
| 94 | - Leer `info.md` antes de proponer configuracion para respetar el riesgo y las reglas de la cuenta. |
| 95 | - Verificar que `.gitignore` contiene `accounts/*/telegram.env` antes de pedir o crear credenciales. |
| 96 | - No enviar credenciales por Telegram ni mostrarlas en la respuesta. |
| 97 | - Si Telegram falla, reportar codigo HTTP y respuesta resumida sin revelar el token. |