Documentación

Aplicaciones

Last updated on 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

we just created (or we are in the process of developing) our new indicator. How do we know that we implemented it correctly?

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.

 

Note – this article was a part of Envelopes indicator example, so it refers to the Envelopes indicator. But the description of Indicators testing is valid for any indicator implementation.

 

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 to export indicator values from MetaTrader |
//|                Output to: /{Data folder}/tester/files/******.csv |
//+------------------------------------------------------------------+

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

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

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

int start() {
   currentTime = TimeToStr(Time[1], TIME_DATE|TIME_MINUTES|TIME_SECONDS);
   if(currentTime == lastTime) {
      return(0);
   }
   
   double value;

   // change the file name below
   string fileName = "Envelopes_14_0_0_0_0.1_upper.csv";

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

      // here is the indicator value 
      value = iEnvelopes(NULL, 0 , 14 , 0 , 0 , 0 , 0.1 , 1 , 1); // upper value
      //value = iEnvelopes(NULL, 0 , 14 , 0 , 0 , 0 , 0.1 , 2 , 1); // lower value
      
      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
Feedbacks de Inline
Ver todos los comentarios

Puestos relacionados