Inicio Indicador técnico Publicación

Indicador Theil-Sen Gratuito para MetaTrader 4: Mejora tu Análisis de Tendencias

Archivos adjuntos
30810.zip (8.56 KB, Descargar 0 veces)

El Indicador Theil-Sen es una herramienta fantástica para estimar la trayectoria general de una línea a partir de un conjunto de puntos de datos. Este indicador se basa en la regresión de los valores que elijas y calcula la pendiente de la línea de regresión resultante. Puedes utilizar diferentes conjuntos de datos, como medias móviles simples, medias móviles exponenciales, precios de cierre o precios máximos/mínimos, y se recopilan automáticamente desde el gráfico de MetaTrader. Solo necesitas seleccionar el tipo de dato que deseas analizar. Además, ¡es compatible con múltiples divisas!

iTSlope(asymbol,timeframe,regperiod,adataset,rmp,rtc,slope,line_nickname,enable_text,ashift);
// Esta es la función principal para usar en tu EA. Solo ingresa tus propios parámetros.
// Los traders manuales pueden usar esto o utilizar el indicador directamente.

Indicador Theil-Sen

Como es habitual, este indicador soporta múltiples divisas al mismo tiempo. Aquí incluyo la herramienta "BreakPoint", aunque no es necesaria para el funcionamiento del indicador.


Así es como se ve la línea de tendencia en un mercado lateral:

Mercado Lateral


Mercado Lateral con Tendencia



Ahora, así es como se ve la línea de tendencia en un mercado en tendencia:

Mercado en Tendencia



A continuación, te muestro un ejemplo de un Asesor Experto:

//+------------------------------------------------------------------+
//|                                                         demo.mq4 |
//|                         Copyright 2020, Everybody Software Corp. |
//|                                             https://anywhere.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, Everybody Software Corp."
#property link      "https://anywhere.com"
#property version   "1.00"
#property strict
#include <TheilSen_Indicator.mqh>
#include <BreakPoint.mqh>//<--- no requerido
//+------------------------------------------------------------------+
//| Función de inicialización del Asesor Experto                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   return(INIT_SUCCEEDED);
  }
  
//+------------------------------------------------------------------+
//| Función de desinicialización del Asesor Experto                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  { 
  }
  
//+------------------------------------------------------------------+
//| Función de tick del Asesor Experto                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   //--------- estas variables se crean vacías pero contendrán datos después de usar iTSlop() a continuación. ------//
   double slope=0;// la pendiente de la línea de regresión.
   
   ENUM_TIMEFRAMES timeframe=0;// este es el marco de tiempo para el símbolo. 0 significa el marco de tiempo actual del gráfico.
   
   int 
   regperiod=20,// el período de regresión. ¿Cuántas barras quieres utilizar para la regresión?
   ashift=1;// el desplazamiento de la barra donde deseas que se dibuje la línea de regresión.
   
   string 
   asymbol="",// este es el símbolo/par de divisas sobre el que deseas realizar los cálculos. "" significa símbolo actual.
   adataset="ema_close",// el tipo de dato que deseas utilizar para la regresión.
   line_nickname="cualquier_cosa_aquí",
   rmp,// la "fase de mercado" calculada, que es una descripción específica del mercado 
   rtc;// la "tendencia de mercado" calculada, que es una descripción general del mercado.
   
   bool enable_text=true;// cuando se establece en true, se muestra información textual en el gráfico actual.
      
   iTSlope(asymbol,timeframe,regperiod,adataset,rmp,rtc,slope,line_nickname,enable_text,ashift);// divisa única
   //if(rmp == "trending")BreakPoint("","","",true,"rmp",rmp,"rtc",rtc,"asymbol",asymbol);
  }
//+------------------------------------------------------------------+

Agradecimientos especiales a whroeder y a otros que ayudaron a aclarar el concepto.

    Publicaciones relacionadas

    Comentarios (0)