Documentación

Aplicaciones

Última actualización el 21. 3. 2024 by Mark Fric

Prueba de un nuevo indicador en SQ X frente a los datos de MT

Prueba de un nuevo indicador en SQ X frente a los datos de MT

Acabamos de crear (o estamos desarrollando) nuestro nuevo indicador. ¿Cómo sabemos si lo hemos implementado correctamente?

Cuando usted creó su nuevo indicador en StrategyQuant y fue compilado con éxito, también se debe verificar si realmente funciona de la misma manera que en MetaTrader - en otras palabras, si los valores calculados por él son los mismos que sus valores en MT4.

 

Nota: este artículo formaba parte de Ejemplo de indicador de sobrespor lo que se refiere al indicador Envelopes. Pero la descripción de la prueba de Indicadores es válida para cualquier implementación de indicadores.

 

Para esto, tenemos una herramienta de Probador de Indicadores en el Editor de Código. Funciona simplemente comparando los valores calculados en SQ con los valores calculados en MT4.

 

En general, funciona en unos sencillos pasos:

  1. Utilizar script de ayuda para calcular y exportar datos de indicadores en MetaTrader
  2. Copie los archivos de datos calculados en la ubicación adecuada para que SQ pueda encontrarlos
  3. Configurar y ejecutar la prueba de indicadores en SQ

Utilizar script de ayuda para calcular y exportar datos de indicadores en MetaTrader

Como primer paso debemos preparar los datos de prueba de MT4 - debemos calcular el indicador en un número de barras y guardar sus valores calculados en un archivo.

Para ello le proporcionamos un EA sencillo que puede utilizar - se encuentra en {SQ}/custom_indicators/MetaTrader4/Experts/SqIndicatorValuesExportEA.mq4

 

Añada este EA a su MetaTrader, modifíquelo para calcular y el valor de salida de su indicador y ejecútelo en MT4 StrategyTester en cualquier dato - para hacer una prueba óptima se debe ejecutar en al menos 1000 barras.

 

Como Envelopes tiene dos búferes de salida, tenemos que ejecutarlo dos veces: una para el búfer superior y otra para el inferior.

He aquí un código modificado de este script de ayuda a la exportación que calcula el indicador Envelopes:

//+------------------------------------------------------------------+
//| SQ_IndicatorValuesExportEA.mq4
//| |
//| EA para exportar valores de indicadores desde MetaTrader.
//| Salida a: /{Carpeta de datos}/tester/files/******.csv .
//+------------------------------------------------------------------+

#property copyright "Copyright © 2019 StrategyQuant"
#property enlace "https://strategyquant.com"

string currentTime = "";
cadena lastTime = "";

//+------------------------------------------------------------------+

int inicio() {
   currentTime = TimeToStr(Time[1], TIME_DATE|TIME_MINUTES|TIME_SECONDS);
   if(currentTime == lastTime) {
      return(0);
   }
   
   valor doble;

   // cambiar el nombre del archivo a continuación
   string fileName = "Sobres_14_0_0_0.1_superior.csv";

   int handle = FileOpen(fileName, FILE_READ | FILE_WRITE, ";");
   if(handle>0) {
      FileSeek(handle,0,SEEK_END);

      // aquí está el valor del indicador
      value = iEnvelopes(NULL, 0 , 14 , 0 , 0 , 0 , 0 , 0.1 , 1 , 1); // valor superior
      //valor = iEnvelopes(NULL, 0 , 14 , 0 , 0 , 0 , 0.1 , 2 , 1); // valor inferior
      
      FileWrite(handle, TimeToStr(Time[1], TIME_DATE|TIME_MINUTES|TIME_SECONDS), Open[1], High[1], Low[1], Close[1], Volume[1], value);
      FileClose(handle);
   }

   lastTime = currentTime;
   return(0);
}

calculará el inicador Envelopes en MT4 llamando a su método interno iEnvelopes() con los parámetros adecuados.

Tenga en cuenta que los parámetros pueden configurarse, no es necesario utilizar los predeterminados. Es una buena práctica incluir los valores de los parámetros también en el nombre del archivo de datos de salida - como en nuestro caso "Envelopes_14_0_0_0.1_upper.csv", para que sepamos que fue generado con estos parámetros.

Ahora podemos ejecutar este script dos veces en MT Tester:

Cuando termine debería crear un archivo de datos con los valores calculados del indicador así como los precios de Apertura, Máximo, Mínimo y Cierre para cada barra. El archivo se guardará en MetaTrader4 -> {Carpeta de datos}/tester/files/Your_FILE_NAME.csv


Deberíamos ver dos archivos allí:
Envelopes_14_0_0_0_0.1_upper.csv
Envelopes_14_0_0_0_0.1_lower.csv

 

Copie los archivos de datos calculados en la ubicación adecuada para que SQ pueda encontrarlos


Copie estos archivos en una carpeta
{Instalación de SQ}/pruebas/Indicadores/MetaTrader4

Cree esta carpeta si no existe, SQ Indicaotrs Tester busca archivos en esta carpeta.

Ahora que tenemos el archivo de datos preparado, vamos a iniciar una prueba en StrategyQuant.

 

Configurar y ejecutar la prueba de indicadores en SQ

Co al Editor de código y haga clic en Indicadores de prueba en la barra de herramientas.

Se abrirá el cuadro de diálogo Comprobador de indicadores, haga clic en Añadir nueva prueba. Añada indicadores Envelopes a la prueba, tanto para la salida superior como para la inferior.

Lo verás en la siguiente tabla. Lo último que tenemos que hacer es modificar la directiva Nombre del archivo de pruebas según los nombres de los archivos de datos de prueba reales creados en el paso anterior, y opcionalmente también Parámetros de pruebasi ha utilizado otros que no sean los predeterminados:

Cuando haya terminado, haga clic en Inicio para ejecutar las pruebas.

En el caso ideal las pruebas serán exitosas y los valores calculados en SQ coincidirán con los valores calculados en MT4:

Si algo falla habrá diferencias entre los valores de SQ y MT4. Puede hacer clic en el mensaje de diferencias para verlas en la lista:

Si la prueba falla, compruebe primero si los datos de prueba generados en MT4 estaban utilizando los mismos parámetros del indicador, puede haber un error en eso.

Si los datos de prueba son correctos, entonces hay algo mal con la implementación SQ de su indicador - funciona de manera diferente a su contraparte MT4 y debe ser corregido.

 

¿Le ha resultado útil este artículo? El artículo era útil El artículo no era útil

Suscríbase a
Notificar a
0 Comentarios
Más antiguo
Más reciente Más votados
Feedbacks de Inline
Ver todos los comentarios

Puestos relacionados