Indicator Test Report MT4
- Utilidades
-
Narayanan Mohanan Mohanan Krishnan
Construyo herramientas de medición para MetaTrader. Describen lo que el mercado ha hecho y declaran los límites de cada medición en lugar de ocultarlos. - Versión: 3.10
Indicator Test Report para MetaTrader 4: un verificador de repintado de MT4 y un probador de indicadores que muestra cómo se comporta realmente cualquier indicador
No se puede ver el interior de un indicador compilado. El Informe de prueba de indicadores carga cualquier indicador (comprado, escrito o integrado en MetaTrader) y responde a la pregunta que una descripción no puede: ¿repinta, cuánto historial necesita y qué publica realmente? Informa del comportamiento. No califica.
Cargue cualquier indicador en el Probador de estrategias y obtenga un informe en lenguaje sencillo sobre doce aspectos de su comportamiento: cuántos buffers publica, cuánto historial necesita antes de que sus valores signifiquen algo, si los valores de las barras cerradas cambian después y cuánto cuesta leer.
No hay puntuación, ni nota de aprobación ni veredicto sobre si un indicador es bueno: sólo lo que se observó y lo que eso demuestra y lo que no.
lo que responde
1. Zonas de amortiguamiento.Cuántas series de datos numeradas publica realmente el indicador y el índice más alto que responde. Esto suele ser más de lo que muestra el gráfico: un indicador de dos líneas puede publicar seis buffers, y una lectura del EA por índice necesita el número real. Cuando los índices no son contiguos, así lo dice el informe: indexar mediante conteo leería la serie incorrecta.
2. Estado de cálculo.Cuántas barras ha calculado el objetivo frente a cuántas existen. Cero con buffers poblados es un estado real con nombre, no un error.
3. Estabilidad de barra cerrada.El primer valor visto para cada barra se congela y luego se compara con cada lectura posterior. Si un valor en una barra ya cerrada cambia posteriormente, el informe proporciona la hora de la barra, el índice del búfer y ambos valores. Una barra actual en movimiento no es repintar; volver a calcular la barra en formación es correcto y deseable. Lo que importa es una barra cerrada cuyo valor luego cambia.
4. Calentamiento.El número de barras que cada búfer necesita antes de contener algún valor, medido en las barras más antiguas disponibles en lugar de en la ventana reciente donde cada respuesta sería cero. Los buffers difieren legítimamente: una línea de señal necesita más historia que la serie que suaviza. Es posible que las primeras cincuenta barras de su gráfico aún no sean significativas.
5. La señal intrabar parpadea.Si la barra de formación parpadea entre vacía y una señal numérica antes de cerrar. Normal para un indicador de señal; importa si su EA actúa sobre la barra en formación.
6. Costo de acceso al buffer.El costo de microsegundos de recuperar valores, por barra, para que pueda presupuestar un EA que lea varios valores por tick. Cifras relativas para comparar indicadores, no cifras absolutas de VPS.
7. Dominio de salida.El valor más pequeño y más grande que emitió cada búfer, con dieciséis decimales, para dimensionar los umbrales en un EA. Estos son el rango observado, nunca el rango posible.
8. Persistencia de la señal.Para flechas, puntos y banderas: si aparecía un valor en la barra en formación, ¿seguía allí al cierre? Las líneas continuas obtienen una puntuación del 100 % por construcción y están marcadas como tales, porque ese número es aritmética más que un hallazgo.
9. Valores que no son números.Si algún búfer emitió un valor que no es un número. Cada comparación con un NaN es falsa (incluso mayor que y menor que), por lo que una prueba de umbral nunca se activa ni informa ningún error, y cualquier aritmética que toque uno produce NaN a su vez. Este es un defecto en el objetivo y es invisible para un guardia escrito en contra. EMPTY_VALUE solo.
10. Huella del objeto del gráfico.Cuántos objetos del gráfico aparecieron mientras se ejecutaba el objetivo y, en un gráfico en vivo, cuántos seguían allí después de que se eliminó. Los indicadores de panel, zona y tablero se dibujan con objetos en lugar de amortiguadores, por lo que para esos productos, cada dos controles miden la mitad vacía. Un indicador que no limpia deja residuos que se limpian a mano.
11. Dependencia del modelo.Ejecute dos veces cambiando solo el modelo del probador. Cada Tick y OHLC de 1 minuto son rutas de precios simuladas diferentes, por lo que un indicador que reacciona deliberadamente al movimiento intrabar puede diferir legítimamente. Importa cuando el objetivo afirma que los valores de barra cerrada son definitivos.
12. Dependencia de la historia.Ejecute dos veces y solo cambió el rango de fechas. Una diferencia significa que el objetivo informa valores diferentes para la misma barra dependiendo de cuánto historial la precedió: el defecto que hace que una prueba retrospectiva no coincida con un gráfico en vivo.
Pruébalo en algo que ya sabes
Lee cualquier cosa accesible a través iCustom, incluidos los propios indicadores de MetaTrader. Apunte a ZigZag: todo el mundo sabe que ZigZag se repinta y el informe le mostrará las barras que cambiaron y ambos valores. Apunte hacia Ichimoku y observe cómo los dos tramos desplazados hacia el futuro se comportan de manera diferente a los tres que no lo están. Comparar la herramienta con un indicador cuyo comportamiento ya conoce es la forma más rápida de decidir si confiar en uno que acaba de comprar, y no cuesta nada.
Cómo se probó esta herramienta
Cada verificación se verificó con indicadores especialmente diseñados que se comportan mal deliberadamente: uno que reescribe cada barra de su historial en cada tick, uno que emite valores que no son números, uno que necesita 399 barras de calentamiento, uno que deja atrás los objetos del gráfico cuando se elimina. Los comprobaciones los atraparon, con los tiempos de las barras y los valores de antes y después. Una herramienta que informa sobre los indicadores de otras personas debería poder decir cómo fue probada.
Los motores también funcionan entre sí. El mismo indicador medido en MetaTrader 4 y MetaTrader 5 coincide en diez de las doce comprobaciones; las dos que difieren son datos de la plataforma, etiquetados en el informe: MetaTrader 4 no tiene BarsCalculated y no hay forma de descargar un indicador temprano, por lo que esos controles dicen lo que no pudieron medir en lugar de reportar un cómodo cero.
Si escribe indicadores en lugar de comprarlos
El mismo informe responde a una pregunta diferente: ¿qué hace realmente mi propio producto? ¿Puedo decirlo en la descripción? La afirmación de que los valores de barra cerrada son definitivos vale más cuando se trata de la cantidad de comparaciones que hay detrás, y es mejor encontrar un repintado usted mismo que dejar que un revisor lo encuentre.
Ejecútelo en ambas plataformas y el par le mostrará dónde divergen sus compilaciones MT4 y MT5: diferentes recuentos de búfer, un calentamiento que se movió, un valor que cambia en una y no en la otra. Esa divergencia normalmente le llega como una reseña de una estrella de alguien que compró ambos.
El fragmento generado es la documentación de integración que, de otro modo, escribiría a mano: cada búfer con nombre, con su calentamiento, su rango y si queda vacío. Envíalo o pégalo en tu propia descripción. Es el comportamiento de su producto, medido, no un reclamo.
lo que no hace
No le dirá si una señal tiene ventaja, si vale la pena comprar un indicador o si una estrategia es rentable. No califica, puntúa ni clasifica. No lee el código fuente, sólo el comportamiento observable a través de la interfaz del búfer documentada. Ejecuta el objetivo en sus propias entradas predeterminadas.
Un hallazgo no es una falta.
Repintar, un calentamiento prolongado, movimiento dentro de la barra y objetos del gráfico son opciones de diseño, y muchos buenos indicadores las toman deliberadamente. Esta herramienta mide lo sucedido; Sólo la descripción del vendedor puede decir si era lo previsto. Cada informe lleva esa frase, y una más: si algo te sorprende, pregúntale al desarrollador. Un informe es una buena pregunta para hacerle a un vendedor. No es una prueba para publicarla en su contra, y no fue creada para serlo.
Un resultado limpio no es prueba
Cada informe de prueba de indicadores lo dice en su propio texto. Una ejecución es un símbolo, un período de tiempo, un período, un modelo de prueba. El informe indica qué comprobaciones no se pudieron probar en una ejecución determinada: una ejecución con muy pocos ticks no puede probar el comportamiento intrabar, y lo dice en lugar de informar un cómodo cero. La ausencia de una observación no es prueba de ausencia.
Cada informe finaliza con un resumen en pantalla de las doce comprobaciones, además de una tabla de cada ejecución anterior en el mismo objetivo, de modo que varias ejecuciones en diferentes condiciones se puedan leer como un conjunto.
Entradas
- Nombre del indicador— el destino, exactamente como aparece en el Navegador, incluida su carpeta. Un producto de mercado se encuentra debajo Market\ y su propio nombre; los ejemplos de MetaTrader en Examples\. Hacer esto mal es el único error que detiene la carrera, y el informe lo dice en un lenguaje sencillo en lugar de fallar silenciosamente.
- Espera primero a esta cantidad de barras.— el informe no comienza hasta que el gráfico tenga tanta historia. Por defecto 500.
- Rejas cerradas para vigilar el repintado.— qué tan atrás se relee y compara cada tick. Esta es la profundidad de verificación 3. Predeterminado 300.
- Nuevas barras para observar antes de informar — el tamaño de la muestra.La ejecución finaliza después de que se hayan cerrado tantas barras, por lo que un número menor es una prueba más débil, no un atajo. Por defecto 200.
- Historial máximo para sondear el calentamiento— qué tan atrás buscar el primer valor real en cada búfer. Predeterminado 10000.
- Tolerancia para controles numéricos de repintado— por debajo de esto, una diferencia se trata como ruido de punto flotante en lugar de un cambio. Escala con la magnitud de los valores, por lo que una serie de precios y una serie de volumen se juzgan en los mismos términos. Predeterminado 0.00000001.
- Línea de base: Auto / Bloquear / Restablecer- decide con qué se compara una segunda ejecución. Auto es lo que la mayoría de la gente quiere decir con ejecutar un objetivo dos veces: la primera ejecución establece la referencia y luego ejecuta la comparación sin reemplazarla. Automático predeterminado.
- Ejecutar etiqueta- cómo declaras lo que cambiaste entre dos ejecuciones. MetaTrader no proporciona al programa ninguna forma de ver qué modelo de prueba se está ejecutando, por lo que la etiqueta es la única forma en que el informe puede distinguir un cambio de modelo de una repetición.
- Nombre para mostrar del destino— un nombre legible para el encabezado del informe. La ruta del archivo todavía se muestra al lado, porque un nombre para mostrar nunca debe reemplazar la identidad de lo que se midió.
- Escribe un fragmento de EA listo para usar— activado de forma predeterminada. Desactívelo si solo desea el informe.
- Prefijo del archivo de salida— permite que dos ejecuciones en el mismo destino escriban en archivos separados en lugar de compartir un resumen.
Lo que muestran las capturas de pantalla
- La instantánea.Las doce comprobaciones en una pantalla: cada ejecución finaliza con este bloque, independientemente de lo que contenga el informe.
- Un hallazgo.Una barra cerrada cuyo valor cambió, con el tiempo de la barra y ambos valores. Para eso está la herramienta; el resto es contexto.
- Ambas plataformas.El mismo indicador se mide en MetaTrader 4 y MetaTrader 5, por lo que los dos informes se pueden comparar línea por línea.
- Una negativa honesta.Una ejecución que no pudo probar algo y lo dice, en lugar de imprimir un cero que se leería como aprobado.
- El fragmento generado.Un listo para usar .mqh archivo escrito por la ejecución, con cada búfer nombrado y una función de lectura ya implementada.
Leyendo las capturas de pantalla
El ámbar no es rojo.Un veredicto ámbar significaSe encontró un comportamiento y aquí está la evidencia., noeste indicador está roto. Repintar, un calentamiento prolongado y objetos de gráficos son opciones de diseño, y muchos buenos indicadores los hacen deliberadamente: el informe le brinda el tiempo de la barra y ambos valores para que pueda preguntarle al desarrollador al respecto, que es lo que esa página le indica que haga.
Los veredictos azules son los que vale la pena entender. [NOT TESTED] y[NOT FOUND] significa que la ejecución no pudo medir algo: muy pocos tics o un escaneo que alcanzó su límite. No son pases. La mayoría de las herramientas imprimirían un cómodo cero allí; éste te dice que la pregunta no fue respondida, que es la diferencia entre una medición y una tranquilidad.
La imagen de paridad muestra el mismo indicador medido en ambas plataformas para que los dos informes se puedan comparar línea por línea. El hallazgo que se muestra en las imágenes proviene de un indicador de prueba deliberadamente roto escrito para ese propósito, no de un producto en el mercado.
Sobre las capturas de pantalla.Cada imagen se captura a partir de una ejecución real: los informes son los archivos que escribe la herramienta, no maquetas. Estas imágenes se capturan en MetaTrader 4, porque dos de los doce controles se leen legítimamente de manera diferente allí y mostrar el resultado de MetaTrader 5 en una lista de MetaTrader 4 lo tergiversaría. La imagen de paridad muestra ambas plataformas una al lado de la otra en el mismo indicador: diez de los doce controles son idénticos y los dos que difieren se mencionan en el informe. Esos dos son una cuestión de lo que la PLATAFORMA puede proporcionar, no de cuán cuidadosamente se escribió el puerto: MQL4 no tiene BarsCalculated función, y no hay forma de descargar un indicador antes de tiempo. No quedó nada fuera de la versión de MetaTrader 4: informa todo lo que MetaTrader 4 es capaz de informar y lo dice cuando no puede hacerlo. Esta herramienta está diseñada para indicar lo que no pudo medir, y eso se aplica primero a su propio listado.
Producción
Un informe de texto, una línea de base CSV para la comparación entre ejecuciones y un resumen acumulativo (una fila por ejecución) escrito en la carpeta Archivos compartidos para que sobrevivan entre ejecuciones. Cada valor diferente se escribe en su propio CSV cuando una comparación encuentra uno.
Y un fragmento de código listo para usar: un compilable .mqh nombrar cada búfer en vivo, su calentamiento, su rango observado y si se vacía, con una función de lectura ya escrita para la plataforma en la que se ejecutó. Es lo que quien llama descubriría de otro modo mediante una prueba. Si la ejecución encontró cambios de barra cerrada o valores NaN, el fragmento lo dice en la parte superior y señala su ejemplo a un búfer sin ningún hallazgo en su contra.
Crédito donde corresponde
El enfoque de lectura del buffer sigueProbador de indicadores personalizadospor Piotr Latoszynski, gratuito en el mercado desde 2020. El método de congelar y comparar para detectar valores de barra cerrada modificados fue descrito por Brahim Ben Abla en mql5.com post 772704 (17 de julio de 2026), con números reales; el método es de él, solo el envío es mío.
En qué se diferencia MetaTrader 4
Diez de los doce controles son idénticos a los de MetaTrader 5 basados en el mismo indicador. Dos no pueden: MQL4 no tiene BarsCalculated, por lo que el estado de cálculo es una prueba empírica y está etiquetado[PROXY MT4]; y MQL4 no puede descargar un indicador antes de tiempo, por lo que la pregunta de limpieza de objetos del gráfico se responde sólo en un gráfico en vivo y se lee[NO PROBADO]en el Probador de estrategias. Ambos aparecen nombrados en el informe en lugar de ocultos. Tampoco es una limitación de esta herramienta ni un atajo en el puerto: son la capacidad del propio MetaTrader 4, y el informe dice cuál de los dos está mirando en lugar de reportar un cómodo cero.
Notas
- Este es un Asesor Experto que escribe un informe. Nunca se comercializa.No realiza órdenes, no abre ni cierra posiciones y no toca nada en su cuenta: lee un indicador y escribe archivos de texto.
- El comercio automático debe estar habilitado.MetaTrader bloquea a todos los Asesores Expertos detrás de ese permiso, ya sea que operen o no, por lo que con el botón apagado, la terminal deja de llamar al programa y no verá ningún informe ni error. Adjuntelo a una cuenta demo si prefiere no habilitarlo en una cuenta real; el resultado es idéntico, porque aquí nada depende de la cuenta.
- Se ejecuta en el Probador de estrategias y en un gráfico en vivo donde una verificación necesita ticks reales. Lee el objetivo a través de la documentación. iCustom interfaz.
- Algunos objetivos que crean sus propios indicadores internamente nunca informan un estado calculado. El informe nombra ese caso en lugar de reportar un cero.
- La salida va a la carpeta Archivos compartidos, por lo que los informes sobreviven entre ejecuciones y acumulan una fila de resumen cada uno.
- Se admiten varias instancias.Dos gráficos pueden medir diferentes símbolos al mismo tiempo, y ambas ejecuciones se agregan al mismo resumen acumulado en lugar de sobrescribirse entre sí; probado con dos instancias que terminaron con un segundo de diferencia. Deles prefijos de salida diferentes si prefiere mantener los dos historiales separados.
- Sin dependencias externas. No llama a ninguna biblioteca ni a ningún otro indicador.
| Más herramientas de este desarrollador Desarrollo indicadores MetaTrader y Asesores Expertos con énfasis en código limpio y documentado: lógica de barra cerrada, buffers validados y sin dependencias de otros indicadores. Esta herramienta existe porque quería comprobar esa afirmación en mi propio trabajo antes de pedirle a nadie que la creyera. Ver todos los productos publicados → ¿Encontró algo en un informe que no esperaba o quiere una comprobación que los doce no cubren? Envíame un mensaje privado. Estaré encantado de responderte. |
Desarrollado y mantenido por Narayanan Mohanan, ML/Python/MQL Developer.
Si detecta algún error en la traducción de esta página, comuníquemelo y lo corregiré.
