BB_OutsideCandle_Alert Indicator For MT5

BB_OutsideCandle_Alert Indicator For MT5

BB_OutsideCandle_Alert Indicator For MT5BB_OutsideCandle_Alert Indicator For MT5是一个信号指标,当价格突破布林带时,它会放置信号标签并绘制信号蜡烛。该指标为交易者提供了两种布林带分解方法的选择:

1.布林带内的价格开盘价,外层的收盘价;

2.在布林带之外的价格开盘和收盘。

如果指示符参数“显示信号蜡烛”设置为“是”,则下布林线的外侧看涨蜡烛被涂成绿色,而上布林线的外侧看空蜡烛被涂成橙色。

如果MT_5的BB_OutsideCandle_Alert指标生成的交易信号符合主导市场趋势,则其表现似乎相对较好。

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

 

安装BB_OutsideCandle_Alert Indicator For MT5

通过上面的表格下载指标后,您需要解压缩zip文件。然后,您需要将文件BB_OutsideCandle_Alert.mq5复制到MT5安装的文件夹MQL5Indicators中。之后,请重启MT5,然后您将能够在指标列表中看到该指标。

BB_OutsideCandle_Alert Indicator For MT5参数

BB_OutsideCandle_Alert Indicator For MT5具有要配置的6 参数。

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

BB_OutsideCandle_Alert Indicator For MT5缓冲区

BB_OutsideCandle_Alert Indicator For MT5提供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);

守则主要部分

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.