Astrolabe
- Asesores Expertos
-
Alex Amuyunzu Raymond
I’m an experienced MQL5 developer and software engineer specializing in building robust, high-performance algorithmic trading systems for MetaTrader 5. My work goes beyond standard EA development — I design intelligent, scalable solutions that combine market logic, automation, and external - Versión: 1.3
- Activaciones: 5
El problema que este EA fue diseñado para resolver
Los day traders particulares pierden dinero. No porque carezcan de inteligencia, sino porque el mercado está diseñado para sacarles dinero a los participantes que operan con demasiada frecuencia, en los momentos equivocados y con tamaños de posición que dan por sentado un mercado favorable. Un estudio brasileño muy citado sobre operadores intradía persistentes reveló que el 97 % perdió dinero durante el periodo de estudio, y los pocos que sobrevivieron lo hicieron operando con poca frecuencia y con bajos costes. Las rupturas del rango de apertura en los CFD sobre índices —la estrategia en la que se basan la mayoría de los EA minoristas— se sitúan más o menos en el umbral de rentabilidad tras deducir los costes en las pruebas académicas. La ventaja, si es que hay alguna, no está en la señal. Está en la selección del régimen, el control de costes y la decisión de no operar.
Astrolabe se basa precisamente en esa negativa.
Qué es realmente Astrolabe
Astrolabe es un motor de sesiones para MetaTrader 5 quetiene en cuenta el régimen. No ejecuta órdenes en cada barra, cada tick o cada cruce. Supervisa tres ventanas de sesión específicas —la apertura de Tokio, la apertura del mercado al contado europeo y la sesión matinal de Nueva York— y, para cada símbolo y en cada sesión, plantea una única pregunta antes de realizar cualquier orden:
«¿Se encuentra el mercado en una situación en la que la hipótesis de este módulo tenga una probabilidad cuantificable de compensar los costes?»
Si la respuesta es no, no ocurre nada. El EA registra el rechazo, actualiza el panel de control y espera. Negarse a operar es una acción de primer orden en Astrolabe, no un fallo.
Los tres módulos de negociación: todos desactivados por defecto
Cada módulo es una hipótesis comprobable, no una promesa. Los tres vienen desactivados de fábrica . Solo se activa uno de ellos una vez que tus propias pruebas superen tu propio «kill gate». Esto es deliberado: el EA fue diseñado por alguien que ha leído demasiadas páginas de productos que prometen ventajas que no se mantienen fuera de la muestra.
M1 — Participación en Open Drive. Al inicio de la sesión (Fráncfort 09:00 CET, Londres 08:00 UK, Tokio 09:00 JST, Nueva York 09:30 ET, Hong Kong 09:30 HKT, Kuwait 09:00 AST), Astrolabe calcula el máximo y el mínimo del rango de apertura, la posición de cierre de la primera vela, la brecha respecto al cierre anterior medida en unidades de ATR, el ratio de participación (volumen de ticks de la ventana de apertura actual frente a la mediana de la misma ventana en las últimas 20 sesiones) y el ratio de eficiencia (movimiento neto dividido por la trayectoria total). Solo considera una operación de continuación cuando los cuatro indicadores coinciden: participación por encima del umbral, alta eficiencia, ubicación del cierre decisiva y que la brecha no vaya en contra de la dirección. En caso de conflicto, no realiza ninguna acción. La entrada es un stop pendiente más allá del rango, que se cancela automáticamente en un plazo de entrada configurable si no se ejecuta. El stop-loss se sitúa en el lado opuesto del rango, limitado por el ATR. Las salidas se producen al cierre de la sesión o al alcanzar un objetivo R fijo. Un «spread guard» espera hasta que el spread del símbolo se sitúe dentro de un múltiplo de su mediana para el mismo minuto —una protección fundamental para la apertura, cuando los spreads de los CFD sobre índices pueden multiplicarse por cinco—.
M2 — Reversión del estiramiento. Un módulo de reversión a la media adaptado a partir de estilos de desviación de la media a corto plazo. Astrolabe calcula el estiramiento como ( precio − VWAP) / ATR . Solo se desactiva cuando se cumplen todas las condiciones siguientes: el «stretch» supera k ATR (por defecto, 2,0), se registra un pico de volumen de capitulación (volumen actual > 2 veces la media de 19 barras) y aparece un signo de agotamiento —ya sea un extremo del RSI(2) o una vela de rechazo (cuerpo inferior al 40 % del rango). El objetivo es volver al VWAP de la sesión; el stop-loss se sitúa más allá del extremo más un margen de seguridad de un ATR. Un stop temporal cierra la operación si la reversión no se produce rápidamente. Stop fijo en todas las órdenes. Nunca se promedia a la baja. Las pruebas que respaldan la reversión al estilo M2 son débiles y proceden en gran medida de la renta variable, por lo que el módulo se retira y así se indica en la descripción.
M3 — Deriva nocturna (desactivado por defecto, desactivado por diseño). Un módulo de deriva solo en posiciones largas para el GER40, que entra cerca del cierre de Xetra y se estabiliza tras la siguiente apertura. Se desactiva automáticamente siempre que esté activo el modo «solo intradía» o «sin swap», ya que el objetivo de esos ajustes es evitar el swap, y el M3 mantiene deliberadamente la posición durante el mismo. Si se activan ambos, el M3 se niega a ejecutarse. No se trata de un error; es lo estipulado en el contrato.
El selector de régimen: el corazón del EA
Con el selector activado, Astrolabe puntúa cada uno de los tres módulos por símbolo y por sesión , y elige el régimen con la mejor puntuación, o ninguno. Si M1 obtiene la puntuación más alta, solo M1 puede operar. Si M2 obtiene la puntuación más alta, solo M2. Si ninguno supera el cero, el EA no hace nada. También puedes desactivar el selector por completo y fijar un único módulo; esto te permite medir exactamente qué aporta el selector frente a lo que cuesta en operaciones perdidas. Como máximo, una operación por símbolo y sesión.
Consenso, correlación y el grupo de índices
En el caso de los índices europeos —GER40, FRA40, ITA40 a las 09:00 CET—, Astrolabe puede exigir que al menos dos de los tres coincidan en la dirección antes de operar con cualquiera de ellos, y solo elegirá el índicecon la puntuación más alta. Nunca mantiene más de una posición entre los tres. Se trata de un filtro real: los tres índices están muy correlacionados, y operar con los tres cuando no coinciden es la forma en que las cuentas de particulares se ven reducidas a la mitad al inicio de la sesión.
En todos los símbolos de índices —GER40, FRA40, ITA40, UK100, US100, US500, JP225, HK50— se aplica un límite máximo estricto de riesgo total. El EA suma el riesgo de stop-loss de todas las posiciones abiertas y rechaza nuevas órdenes si añadir una más superara el límite. Los límites de correlación son uno de los pocos controles de riesgo que cuentan con un respaldo académico genuino, y Astrolabe los considera innegociables.
El motor de riesgo: prioridad número uno
Esta es la parte más importante, y fue la primera en desarrollarse.
-
Riesgo de fracción fija por operación (por defecto, 0,5 %, con ajustes preestablecidos «Conservador», «Equilibrado» y «Prop»).
-
El tamaño del lote se calcula a partir de SYMBOL_TRADE_TICK_VALUE , el tamaño del tick y el volumen mínimo/incremento/máximo —nunca a partir del apalancamiento ni de un tamaño de contrato supuesto—. Funciona con cuentas en USD, EUR, GBP, JPY, SGD, KWD y CHF.
-
Antes de cada orden, se comprueba que la pérdida calculada en el stop-loss se ajuste al presupuesto de riesgo. Si los límites del bróker (lote mínimo, nivel de stop) impiden respetar el riesgo, el EA rechaza la operación y registra el motivo.
-
Tras la ejecución, el EA verifica el riesgo real y cierra la posición registrando un error si el riesgo realizado es incorrecto.
-
Las restricciones de drawdown diario y total sobre el capital, ya sean estáticas o dinámicas, con límites más estrictos específicos del modo Prop.
-
Protección contra el spread, protección contra desviaciones/deslizamientos, protección del nivel de stop, protección del nivel de congelación, protección contra el cierre del mercado, comprobación de margen: todo ello en función de los valores en tiempo real del bróker.
-
Idempotencia: número mágico más recuperación del estado de las posiciones abiertas y las órdenes pendientes. No hay duplicados tras el reinicio. No hay duplicados en terminales duplicadas.
-
Se comprueba el código de retorno de cada operación. Los errores transitorios se reintentan; los errores graves se registran con el motivo y se abandonan.
-
El modo «Prop» añade un drawdown diario y global configurable, una ventana de noticias, un «flat» de fin de semana y un límite de frecuencia de solicitudes. Nada en Astrolabe está diseñado para eludir la detección por parte de las empresas de trading propio —eso sería tanto poco ético como inútil—.
Solo intradía / Sin swap
Por defecto, Astrolabe cierra todas las posiciones antes del cierre del servidor (configurable, 10 minutos antes) y antes del fin de semana. Esto evita el swap en todas las cuentas y hace que el EA sea apto para cuentas islámicas sin swap sin necesidad de ningún tratamiento especial. Si tienes una cuenta sin swap, la configuración ya está activada. Si no es así, te ahorra una financiación nocturna que nunca has solicitado.
El filtro de noticias
Astrolabe utiliza el calendario económico integrado de MT5 ( CalendarValueHistory , CalendarEventById , CalendarCountryById ). Lee los eventos de alto impacto para las divisas de tu perfil elegido —EUR/USD para Alemania, GBP/EUR/USD para el Reino Unido, JPY/USD para Japón, USD/JPY/CNH para Singapur, USD/OIL para Kuwait— y bloquea las nuevas órdenes dentro de una ventana de restricción configurable. Opcionalmente, puede cerrar o proteger las posiciones abiertas. Si el calendario no está disponible (algunos brókers lo desactivan), el filtro se adapta de forma adecuada: registra una advertencia y deja de bloquear, en lugar de bloquear el EA.
Personalización por mercado: ocho perfiles
Astrolabe incluye de serie ocho perfiles de mercado, cada uno con sus propios horarios de sesión, valores predeterminados de volumen de ticks, divisas de noticias y reglas:
| Perfil | Símbolos (los alias se resuelven automáticamente) | Sesión | Notas |
|---|---|---|---|
| Alemania | GER40 / DE40 / DAX40 / GERMANY40 / DE30 / DAX | 09:00 CET/CEST | Consenso sobre |
| Francia | FRA40 / FR40 / CAC40 / FRANCE40 | 09:00 CET/CEST | Consenso sobre |
| Italia | ITA40 / IT40 / FTMIB | 09:00 CET/CEST | Consenso sobre |
| Reino Unido | UK100 / FTSE100 / FTSE / GB100 | 08:00 Reino Unido | Gestiona el tamaño de las posiciones en apuestas por diferencial (spread betting) en libras esterlinas (GBP) mediante el valor por tick |
| Japón | JP225 / JPN225 / NIKKEI / JP225Cash | 09:00 JST | Opción de indicador «gotobi» (desactivada por defecto) |
| Singapur | HK50 / HSI50 / HANG SENG | 09:30 HKT | También JP225 a las 09:00 JST y sesión de XAUUSD |
| Kuwait | XAUUSD / ORO / XTIUSD / USOIL / WTI | 09:00 AST | De domingo a jueves por defecto, solo intradía, sin swap |
| EE. UU. | EURUSD / GBPUSD / USDJPY | 09:30 ET | Se aplica la regla FIFO, sin cobertura, filas de índices desactivadas |
La resolución de alias significa que el EA reconoce la nomenclatura de tu bróker, incluso si denomina al DAX «DE30» o al Hang Seng «HSI50». Si no hay ninguna coincidencia, recurre al símbolo del gráfico y se ejecuta; el validador no detectará ningún error.
El horario de verano (DST) está implementado en el código, no se da por supuesto
Las fechas del horario de verano en EE. UU., la UE y el Reino Unido difieren varias semanas al año. Tokio, Hong Kong, Singapur y Kuwait no tienen horario de verano. Astrolabe lasimplementa todas en el código —el último domingo de marzo para el inicio en EE. UU., el primer domingode noviembre para el final en EE. UU., y del último domingo de marzo al último domingo de octubre para la UE y el Reino Unido— y calcula la hora de apertura de cada sesión en la hora local de la bolsa, convertida a la hora del servidor mediante un desfase GMT detectado. OnInit detecta la diferencia horaria del servidor del bróker a partir de TimeTradeServer frente a TimeGMT , y la autocomprobación verifica la conversión del horario de verano en fechas conocidas de julio y enero. Si no se puede detectar la diferencia horaria, el EA avisa y establece el valor por defecto en cero; no opera en silencio a una hora incorrecta.
El panel de control
En el gráfico, en la esquina superior, diez líneas. Perfil, símbolo resuelto, número mágico, capital en tiempo real, drawdown diario y total frente a los límites, estado de bloqueo, posiciones abiertas y pendientes, estado de activación/desactivación por módulo, selector de régimen y estado de consenso, filtro de noticias y estado de placebo, último múltiplo R, contador de pruebas. Texto en blanco, 9 pt, se actualiza con cada nueva barra M1. Nada sofisticado, nada oculto.
Diario y registro de operaciones (CSV)
Dos registros CSV. El diario de decisiones registra cada operación realizada u omitida, con marca de tiempo, símbolo, régimen, indicador de realizada/omitida, motivo, puntuación, spread en el momento de la decisión, importe de riesgo y nombre del módulo. El registro de resultados de las operaciones recoge el múltiplo R, los costes y el spread en el momento de la entrada para cada operación cerrada. Ambos se escriben de forma incremental y segura (abrir, buscar el final, escribir, cerrar). OnTester genera un archivo CSV completo por operación al final de cada backtest.
Modos de prueba: obligatorios, no opcionales
-
Modo PLACEBO: rango idéntico, sincronización idéntica, dirección aleatoria a partir de un PRNG con semilla. Así es como se mide si la señal aporta algo más que lanzar una moneda al aire con la misma gestión de riesgos.
-
Opciones por módulo, por símbolo y por perfil. Desactiva M1, activa M2 y mide. Desactiva todo excepto M3 y mide.
-
Entradas de estrés de costes: añade un spread adicional y un deslizamiento adicional en puntos para ver si la ventaja se mantiene con el doble de costes.
-
Criterio de OnTester: expectativa neta en R con una penalización por número de operaciones. Devuelve un único número a la tabla de optimización del Strategy Tester.
-
Contador de pruebas y nota sobre pruebas múltiples. El EA muestra el contador de pruebas en el registro del probador para que puedas aplicar una penalización por pruebas múltiples a cualquier conjunto de parámetros optimizado.
Astrolabe nunca inventa resultados de backtest. No puede ejecutarse en MT5. No conoce tus datos. Te proporciona las herramientas para realizar pruebas, no las respuestas.
El filtro de eliminación que deberías aplicar
El EA incluye un «kill gate» documentado en su descripción y en los comentarios del código:
-
Expectativa neta de al menos +0,10 R por encima del placebo con un intervalo de confianza de bootstrap positivo.
-
Sigue siendo positivo al doble de los costes.
-
Factor de beneficio de al menos 1,25 en la validación y el conjunto de prueba.
-
Al menos 300 operaciones.
-
Resultado positivo en al menos el 70 % de los años.
-
Ningún año por encima del 40 % del beneficio total.
-
Estable en parámetros adyacentes.
Los módulos que fallan se descartan, no se ajustan. Esa es la norma. Está escrita en el código.
Lo que Astrolabe no es
-
Noes un sistema de martingala, de rejilla, de promedio a la baja ni de ajuste de posición en función de la recuperación. No hay ninguna ruta de código para eso.
-
Noes un servicio de señales, una garantía de beneficios ni un servicio de asesoramiento. Nunca promete beneficios. Nunca dice «esto te hará ganar dinero».
-
Noes una «caja negra». Cada decisión queda registrada con su justificación.
-
Noes un sistema de licencias, un bot de Telegram ni un paquete de localización. Es un único archivo . mq5 que se compila en MetaEditor sin errores ni advertencias, utilizando únicamente Trade \Trade.mqh de la biblioteca estándar.
A quién va dirigido
Operadores minoristas de EE. UU., Reino Unido, Alemania, Francia, Italia, Japón, Singapur y Kuwait que ya han perdido dinero con EAs que operan en exceso, utilizan un tamaño de posición incorrecto y ocultan su lógica. Operadores que quieren aplicar su propio «kill gate», y no el eslogan de marketing de otra persona. Operadores que entienden que un EA que se niega a operar es más valioso que uno que opera cada hora.
Datos técnicos
-
Un único archivo: Astrolabe.mq5
-
Un archivo de inclusión: Trade\Trade.mqh
-
Cero DLL. Cero archivos externos, salvo los registros CSV que genera el propio EA.
-
Menos de 2.500 líneas, incluyendo comentarios y líneas en blanco (este es un límite máximo que el EA ha sido diseñado para respetar).
-
Divisas de cuenta admitidas: USD, EUR, GBP, JPY, SGD, KWD, CHF.
-
Marcos temporales utilizados: M1 para toda la lógica; sin dependencia de múltiples marcos temporales.
-
Funciona en el Strategy Tester, en cuenta demo y en cuenta real. Se ejecuta una autocomprobación bajo demanda.
