Hoy quiero compartir contigo un indicador que he desarrollado para ofrecerte una alternativa a los métodos estándar de medias móviles disponibles en las Bandas de Bollinger de MetaTrader 5. A diferencia de la opción 'simple' que generalmente se ofrece, mi indicador permite elegir entre otros métodos, como Exponencial, Suavizado y Lineal Ponderado.
Para que puedas utilizar este indicador, simplemente necesitas colocarlo en una carpeta de tu sistema. En Windows, el camino es similar al siguiente:
C:\Users\tu_usuario\AppData\Roaming\MetaQuotes\Terminal\Indicators\Examples
Características adicionales:

Por defecto, el indicador está configurado en cero:

A continuación, te muestro un ejemplo de ejecución utilizando el promedio de Lineal Ponderado:

Código:
//+------------------------------------------------------------------+ //| Bandas de Bollinger Personalizadas.mq5 | //| Lucas Vidal | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Lucas Vidal" #property link "https://www.mql5.com/en/users/lucasmoura00" #property description "Bollinger Bands Personalizada" #include#property indicator_chart_window #property indicator_buffers 4 #property indicator_plots 3 #property indicator_type1 DRAW_LINE #property indicator_color1 LightSeaGreen #property indicator_type2 DRAW_LINE #property indicator_color2 LightSeaGreen #property indicator_type3 DRAW_LINE #property indicator_color3 LightSeaGreen #property indicator_label1 "Bands middle" #property indicator_label2 "Bands upper" #property indicator_label3 "Bands lower" //--- parámetros de entrada enum MovingAverageMethod { Simple, // 0 Exponential, // 1 Smoothed, // 2 LinearWeighted // 3 }; input MovingAverageMethod InpMaMethod = Simple; // Método de la Media Móvil input int InpBandsPeriod=20; // Periodo input int InpBandsShift=0; // Desplazamiento input double InpBandsDeviations=2.0; // Desviación //--- variables globales int ExtBandsPeriod, ExtBandsShift; double ExtBandsDeviations; int ExtPlotBegin=0; //--- buffer del indicador double ExtMLBuffer[]; double ExtTLBuffer[]; double ExtBLBuffer[]; double ExtStdDevBuffer[]; //+------------------------------------------------------------------+ //| Inicialización del indicador | //+------------------------------------------------------------------+ void OnInit() { //--- revisar valores de entrada if(InpBandsPeriod<2) { ExtBandsPeriod=20; PrintFormat("Valor incorrecto para la variable de entrada InpBandsPeriod=%d. El indicador usará el valor=%d para los cálculos.", InpBandsPeriod, ExtBandsPeriod); } else { ExtBandsPeriod=InpBandsPeriod; } // ... (continúa el resto del código aquí) ... } //+------------------------------------------------------------------+
¡Espero que encuentres útil este indicador para mejorar tus análisis!
Publicaciones relacionadas
- iMFISignAlert: Un Indicador Esencial para MetaTrader 5
- Señales de Tendencia con Heiken Ashi Suavizado en MetaTrader 5
- Ideal ZigZag: Un Indicador Rápido para MetaTrader 5
- BlauCSI_HTF_Signal: Tu aliado en el trading con MetaTrader 5
- AFL_Winner_HTF_Signal: Tu guía para señales de trading en MetaTrader 5