Event Window Manager
- Utilidades
- Versión: 1.0
- Activaciones: 10
Event Window Manager lee el calendario económico que ya viene integrado en tu terminal y abre una ventana de protección en torno a los eventos importantes. Dentro de esa ventana, puede avisarte, bloquear nuevas operaciones, eliminar y restaurar posteriormente órdenes pendientes, así como cerrar posiciones o trasladarlas al punto de equilibrio. Tus otros EA pueden consultar su estado a través de variables globales.
No necesita DLL, ni WebRequest, ni página web. El calendario se obtiene a través de la conexión con tu bróker. Una sola instancia en un gráfico cubre toda la cuenta, incluidas las operaciones manuales y las de otros EA.
Lo escribí porque quería un único control para todos mis EA en lugar de un filtro de noticias independiente en cada uno. Una configuración típica: 15 minutos antes y después de un evento de alto impacto, se bloquean las nuevas operaciones, se eliminan las órdenes pendientes y se restablecen cuando finaliza la ventana.
Tres problemas que resuelve
1. Operaciones abiertas justo en un pico de noticias. En modo activo, las posiciones abiertas dentro de una ventana se cierran y las órdenes pendientes colocadas en ella se eliminan.
2. Órdenes pendientes que se ejecutan durante la publicación de la noticia. Se eliminan cuando se abre la ventana y pueden volver a colocarse después. Las órdenes restauradas se comprueban en primer lugar. Si el precio ya no es válido, se descartan y recibes una alerta.
3. Un filtro de noticias en cada EA, o ninguno. Tus propios EA leen NEWSFILTER_BLOCK y las variables específicas de cada divisa, por lo que una sola herramienta sirve para todos ellos.
Cómo funciona
1. Cada pocos minutos, el EA carga los eventos de las próximas horas desde el calendario de la terminal.
2. Conserva los eventos que coinciden con tu filtro: importancia, divisas, palabras clave, palabras a ignorar y tu propia lista de bloqueo.
3. A cada evento se le asigna un margen de minutos antes y después, que se configura por separado para importancia alta, media y baja (por defecto 15/15, 10/10, 5/5).
4. Mientras haya un intervalo abierto para una divisa afectada, el estado es «BLOQUEADO» y se ejecutan las acciones que hayas elegido.
5. Cuando finaliza el intervalo, las órdenes pendientes eliminadas pueden volver a introducirse.
Qué divisas se tienen en cuenta
- Automático: las divisas de todas las posiciones abiertas y órdenes pendientes (divisa base y de beneficios de cada símbolo), además del símbolo del gráfico. Una posición en EURJPY se ve afectada por los eventos relacionados con el EUR y el JPY.
- Lista: solo las divisas que introduzcas.
- Todas: todas las divisas.
Un filtro de número mágico protege todas las estrategias o solo una.
Filtro de eventos
- Importancia: alta, media, baja; cada una de ellas se puede activar o desactivar.
- Palabras clave como NFP, IPC, FOMC, PIB. Modo de palabras clave: desactivado, añadir (un evento con una palabra clave cuenta incluso por debajo de tu nivel de importancia) o solo palabras clave.
- Palabras ignoradas: se omiten los eventos que coincidan con ellas.
- Lista de bloqueo propia: horas fijas en la hora del servidor para elementos que no están en el calendario, formato AAAA.MM.DD HH:MM CUR [minutos]. ALL bloquea todos los símbolos.
- Se omiten los días festivos y los eventos sin una hora exacta.
Acciones en la ventana (modo «Activo»)
- Bloquear nuevas operaciones: se cierran las posiciones abiertas en la ventana y se eliminan las órdenes pendientes colocadas en la ventana. Esto incluye las posiciones abiertas por una orden pendiente que se active durante la ventana.
- Órdenes pendientes: eliminarlas al inicio de la ventana; opcionalmente, restaurarlas al final.
- Posiciones abiertas al inicio de la ventana: dejarlas tal cual, cerrarlas todas, llevar las ganadoras al punto de equilibrio, mantener las ganadoras y cerrar las perdedoras, o llevar las ganadoras al punto de equilibrio y cerrar las perdedoras. Las ganancias y pérdidas se miden teniendo en cuenta el beneficio más el swap.
- Ámbito de aplicación: solo los símbolos afectados o todos los símbolos.
- Modo «Solo aviso»: no se realiza ninguna acción de negociación. Las alertas, el panel y las variables globales siguen funcionando.
Se respetan el nivel de stop y el nivel de congelación para el punto de equilibrio. Se prueba el modo de ejecución adecuado para cada símbolo. Las solicitudes que fallan por un motivo breve (re cotización, cambio de precio, tiempo de espera agotado) se repiten. Cada solicitud rechazada se registra en el registro de expertos con su código de retorno.
Para tus propios EA
Variables globales para todo el terminal:
- NEWSFILTER_BLOCK: 1 mientras haya una ventana abierta para una divisa afectada; en caso contrario, 0.
- NEWSFILTER_BLOCK_USD, NEWSFILTER_BLOCK_EUR, etc.: por divisa; se registran para cada divisa que tenga un evento en el rango cargado.
- NEWSFILTER_NEXT: hora del servidor del final de la ventana abierta o del inicio de la siguiente ventana.
- NEWSFILTER_SECONDS: segundos hasta la siguiente ventana (0 dentro de una ventana, -1 si no hay ninguna).
- NEWSFILTER_ALIVE: señal de vida en hora local. Si tiene más de 10 segundos de antigüedad, el filtro no está en funcionamiento.
Ejemplo para tu EA:
bool NewsBlocked(string sym)
{
if(!GlobalVariableCheck("NEWSFILTER_ALIVE") ||
TimeLocal()-(datetime)GlobalVariableGet("NEWSFILTER_ALIVE") > 10) return false;
string b = SymbolInfoString(sym, SYMBOL_CURRENCY_BASE);
string p = SymbolInfoString(sym, SYMBOL_CURRENCY_PROFIT);
return GlobalVariableGet("NEWSFILTER_BLOCK_"+b)>0 ||
GlobalVariableGet("NEWSFILTER_BLOCK_"+p)>0;
}
// en OnTick: if(NewsBlocked(_Symbol)) return;
Devuelve «true» en la primera línea en lugar de «false» si tu EA debe permanecer inactivo cuando el filtro no está en funcionamiento. Cuando se elimina el EA, todos los valores vuelven a 0.
Panel
Panel oscuro con insignia de estado (GRATIS, PRÓXIMAMENTE, BLOQUEADO), una cuenta atrás hasta el final de la ventana abierta o hasta la siguiente, la lista de próximos eventos (color de importancia, divisa, nombre, hora del servidor y tu hora local), las acciones activas, el estado del calendario, el valor de NEWSFILTER_BLOCK y un botón de bloqueo manual. «PRÓXIMAMENTE» significa que una ventana comenzará en un plazo de 30 minutos. Haz clic en el encabezado para ocultarlo. Inglés o alemán, escala de 0,6 a 1,8.
Los nombres de los eventos proceden del calendario de tu bróker, por lo que pueden aparecer en un idioma distinto al del panel.
Alertas
Una alerta antes de cada evento (minutos ajustables, una vez por evento) y un mensaje para cada acción: ventana abierta, operación cerrada, orden eliminada, orden restaurada, umbral de rentabilidad establecido, ventana finalizada. La ventana de alerta, el sonido y las notificaciones push se pueden activar o desactivar por separado.
Inicio rápido
1. Asigna el EA a un gráfico y habilita el trading algorítmico.
2. Deja el modo «Solo avisos» activado durante los primeros días y observa el panel. Compara una vez los horarios de los eventos con los de tu bróker.
3. Cambia a «Protección activa» y elige las acciones.
4. Opcional: añade la función «NewsBlocked» a tus propios EA.
Preguntas frecuentes
¿Abre operaciones?
No.
¿Es preciso?
Es tan fiable como el calendario que te proporciona tu bróker. Las horas de los eventos, su importancia y la exhaustividad de la información pueden variar de un bróker a otro. Un filtro de noticias no puede evitar el deslizamiento, las brechas de cotización ni una pérdida de conexión.
¿Funciona en el Probador de estrategias?
No, el calendario no existe allí. El panel indica «Probador: calendario no disponible». Para la comprobación automática del mercado, abre y cierra una operación de demostración de tamaño mínimo en el probador. Ese código nunca se ejecuta en un gráfico de demostración ni en uno real.
¿Qué ocurre con las órdenes pendientes eliminadas si reinicio la terminal durante una ventana?
Se conservan únicamente en memoria y no se vuelven a colocar. Lo mismo ocurre si eliminas el EA durante una ventana.
¿Qué ocurre si reinicio el EA dentro de una ventana?
Las posiciones existentes se tratan como si fueran anteriores a la ventana y la acción de apertura se vuelve a ejecutar para ellas.
Condiciones de negociación
Cualquier símbolo y marco temporal, cuentas de cobertura y de compensación, un solo gráfico. El calendario requiere una terminal conectada. El cierre y la eliminación requieren que el mercado esté abierto. Mientras una ventana está abierta, el EA vuelve a intentarlo cada segundo.
Importante
La negociación conlleva un alto riesgo de pérdidas. Esta herramienta reduce la exposición ante eventos, pero no garantiza ningún resultado.
Parámetros de entrada
Filtro de eventos: incluir alto (verdadero), medio (falso), bajo (falso); divisas (automático, lista, todas); lista de divisas (USD, EUR, GBP); incluir siempre las divisas de los símbolos de los gráficos; modo de palabras clave y palabras clave (NFP, CPI, FOMC, tipo de interés); ignorar palabras; lista de bloqueo propia; horas de antelación (48); intervalo de actualización (5 minutos).
Ventana: minutos antes y después para alto 15/15, medio 10/10, bajo 5/5.
Protección: modo (solo advertencia, activo); todos los símbolos o solo los afectados; filtro mágico (-1 = todos); bloquear nuevas operaciones; eliminar órdenes pendientes; restaurar órdenes pendientes; acción para posiciones abiertas; compensación del umbral de rentabilidad.
Alertas: minutos antes de un evento (30, 0 = desactivado); ventana de alerta; sonido; notificación push.
Panel: idioma, X e Y, escala, eventos en la lista (8), mostrar todas las divisas, iniciar colapsado.

