BB_OutsideCandle_Alert Indicator For MT5

BB_OutsideCandle_Alert Indicator For MT5

El BB_OutsideCandle_Alert Indicator For MT5 es un indicador de señal que coloca etiquetas de señal y pinta velas de señal cuando el precio rompe las Bandas de Bollinger. El indicador proporciona a los operadores la opción de elegir entre dos métodos de desglose de la Banda de Bollinger:

1. Precio de apertura dentro de las Bandas de Bollinger y cierre afuera;

2. Precio de apertura y cierre fuera de las Bandas de Bollinger.

Si el parámetro indicador, Mostrar velas de señal, se establece en Sí, una vela alcista fuera de la Banda de Bollinger inferior se colorea de Verde, mientras que una vela bajista fuera de la Banda de Bollinger superior se pinta de Naranja.

Las señales comerciales generadas por el indicador BB_OutsideCandle_Alert para MT5 parecen tener un rendimiento relativamente mejor si están en línea con la tendencia dominante del mercado.

FREE BB_OutsideCandle_Alert Indicator

Download the FREE BB_OutsideCandle_Alert Indicator for MT5.

To receive my email 100% sure: 
Put my email on your whitelist!

 

Partially Automated Trading Besides Your Day Job

Alerts In Real-Time When Divergences Occur

 

Instalar la BB_OutsideCandle_Alert Indicator For MT5

Después de descargar el indicador a través del formulario anterior, debe descomprimir el archivo zip. Luego, debe copiar el archivo BB_OutsideCandle_Alert.mq5 en la carpeta MQL5Indicators de su instalación MT5 . Después de eso, reinicie MT5 y luego podrá ver el indicador en la lista de indicadores.

Parámetros de la BB_OutsideCandle_Alert Indicator For MT5

BB_OutsideCandle_Alert Indicator For MT5 tiene parámetros 6 para configurar.

input uint              InpPeriodBB    =  12;                  // BB period
input double            InpDeviation   =  2.2;                 // BB deviation
input ENUM_MODE_OP_CL   InpModeCandle  =  MODE_CANDLE_OUTSIDE; // BB line breakdown method
input ENUM_INPUT_YES_NO InpShowBands   =  INPUT_YES;           // Show bands
input ENUM_INPUT_YES_NO InpShowCandles =  INPUT_YES;           // Show signal candles
input ENUM_INPUT_YES_NO InpShowAlerts  =  INPUT_YES;           // Use alerts

Buffers of the BB_OutsideCandle_Alert Indicator For MT5

BB_OutsideCandle_Alert Indicator For MT5 proporciona buffers 10 .

SetIndexBuffer(0,BufferSigB,INDICATOR_DATA);
SetIndexBuffer(1,BufferSigS,INDICATOR_DATA);
SetIndexBuffer(2,BufferBandUP,INDICATOR_DATA);
SetIndexBuffer(3,BufferBandDN,INDICATOR_DATA);
SetIndexBuffer(4,BufferCandleO,INDICATOR_DATA);
SetIndexBuffer(5,BufferCandleH,INDICATOR_DATA);
SetIndexBuffer(6,BufferCandleL,INDICATOR_DATA);
SetIndexBuffer(7,BufferCandleC,INDICATOR_DATA);
SetIndexBuffer(8,BufferColors,INDICATOR_COLOR_INDEX);
SetIndexBuffer(9,BufferBB,INDICATOR_CALCULATIONS);

Partes principales del código

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--- #AB0= gt 2:0  lt 0AA82 gt 2 1CD5@ gt 2 :0: B09 lt A5@89
   ArraySetAsSeries(open,true);
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);
   ArraySetAsSeries(close,true);
   ArraySetAsSeries(time,true);
//--- @ gt 25@:0 : gt ;8G5AB20 4 gt ABC?=KE 10@ gt 2
   if(rates_total lt 4) return 0;
//--- @ gt 25@:0 8 @0AGQB : gt ;8G5AB20 ?@ gt AG8BK205 lt KE 10@ gt 2
   int limit=rates_total-prev_calculated;
   if(limit gt 1)
     {
      limit=rates_total-2;
      ArrayInitialize(BufferSigB,EMPTY_VALUE);
      ArrayInitialize(BufferSigS,EMPTY_VALUE);
      ArrayInitialize(BufferBandUP,EMPTY_VALUE);
      ArrayInitialize(BufferBandDN,EMPTY_VALUE);
      ArrayInitialize(BufferCandleO,EMPTY_VALUE);
      ArrayInitialize(BufferCandleH,EMPTY_VALUE);
      ArrayInitialize(BufferCandleL,EMPTY_VALUE);
      ArrayInitialize(BufferCandleC,EMPTY_VALUE);
      ArrayInitialize(BufferColors,2);
      ArrayInitialize(BufferBB,0);
     }
//---  gt 43 gt B gt 2:0 40==KE
   int count=(limit gt 1 ? rates_total : 1),copied=0;
   copied=CopyBuffer(handle_bb,UPPER_BAND,0,count,BufferBandUP);
   if(copied!=count) return 0;
   copied=CopyBuffer(handle_bb,LOWER_BAND,0,count,BufferBandDN);
   if(copied!=count) return 0;

//---  0AGQB 8=48:0B gt @0
   static datetime last_time=0;
   string alert="";
   for(int i=limit; i gt =0 && !IsStopped(); i--)
     {
      BufferCandleO[i]=BufferCandleH[i]=BufferCandleL[i]=BufferCandleC[i]=EMPTY_VALUE;
      if(InpModeCandle==MODE_CANDLE_INSIDE_OUT)
        {
         //--- Bearish. Candle opening inside the bands and closing above the upper bollinger band
         if(open[i+1] lt BufferBandUP[i+1] && close[i+1] gt BufferBandUP[i+1])
           {
            BufferSigS[i]=high[i];//fmax(open[i+1],fmax(open[i],BufferBandUP[i]));
            if(InpShowCandles)
              DrawColorCandle(i+1,open,high,low,close);
            //--- Alert after the last Close of a candle
            if(i==0 && InpShowAlerts && time[0] gt last_time)
              {
               Alert(Symbol()+" "+TimeframeToString(Period())+": Bollinger Bands Outside Candle SHORT Signal");
               last_time=TimeCurrent();
              }
           }
         //--- Bullish. Candle opening inside the bands and closing below the lower bollinger band
         if(open[i+1] gt BufferBandDN[i+1] && close[i+1] lt BufferBandDN[i+1])
           {
            BufferSigB[i]=low[i];//fmin(open[i+1],fmin(open[i],BufferBandDN[i]));
            if(InpShowCandles)
              DrawColorCandle(i+1,open,high,low,close);
            //--- Alert after the last Close of a candle
            if(i==0 && InpShowAlerts && time[0] gt last_time)
              {
               Alert(Symbol()+" "+TimeframeToString(Period())+": Bollinger Bands Outside Candle LONG Signal");
               last_time=TimeCurrent();
              }
           }
        }
      else
        {
         //--- Bearish. Candle opening and closing above the upper bollinger band
         if(open[i+1] gt close[i+1] && close[i+1] gt BufferBandUP[i+1])
           {
            BufferSigS[i]=high[i];//fmax(open[i+1],fmax(open[i],BufferBandUP[i]));
            if(InpShowCandles)
              DrawColorCandle(i+1,open,high,low,close);
            //--- Alert after the last Close of a candle
            if(i==0 && InpShowAlerts && time[0] gt last_time)
              {
               Alert(Symbol()+" "+TimeframeToString(Period())+": Bollinger Bands Outside Candle SHORT Signal");
               last_time=TimeCurrent();
              }
           }
         //--- Bullish. Candle opening and closing below the lower bollinger band
         if(open[i+1] lt close[i+1] && close[i+1] lt BufferBandDN[i+1])
           {
            BufferSigB[i]=low[i];//fmin(open[i+1],fmin(open[i],BufferBandDN[i]));
            if(InpShowCandles)
              DrawColorCandle(i+1,open,high,low,close);
            //--- Alert after the last Close of a candle
            if(i==0 && InpShowAlerts && time[0] gt last_time)
              {
               Alert(Symbol()+" "+TimeframeToString(Period())+": Bollinger Bands Outside Candle LONG Signal");
               last_time=TimeCurrent();
              }
           }
        }
     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| Timeframe to string                                              |
//+------------------------------------------------------------------+
string TimeframeToString(const ENUM_TIMEFRAMES timeframe)
  { 
   return StringSubstr(EnumToString(timeframe),7);
  }
//+------------------------------------------------------------------+
//| Draw Color Candle                                                |
//+------------------------------------------------------------------+
void DrawColorCandle(const int shift,const double &open[],const double &high[],const double &low[],const double &close[])
  {
   BufferCandleO[shift]=open[shift];
   BufferCandleH[shift]=high[shift];
   BufferCandleL[shift]=low[shift];
   BufferCandleC[shift]=close[shift];
   BufferColors[shift]=(open[shift] lt close[shift] ? 0 : open[shift] gt close[shift] ? 1 : 2);
  }
//+------------------------------------------------------------------+

 

About Me

I'm Mike Semlitsch the owner of PerfectTrendSystem.com. My trading career started in 2007. Since 2013 I have helped thousands of traders to take their trading to the next level. Many of them are now constantly profitable traders. 

The following performance was achieved by me while trading live in front of hundreds of my clients:

Connect With Me:  

Results From 5 Months!
This service starts soon! Be the first who get's notified when it begins!

This FREE Indicator Can Transform
Your Trading!

FREE Indicator + Telegram Group


Request the Ultimate Double Top/Bottom Indicator which is used by 10,000+ traders.