UltraWPR_HTF_Signal_BG Indicator For MT5

UltraWPR_HTF_Signal_BG Indicator For MT5

The UltraWPR_HTF_Signal_BG Indicator For MT5 is a super-advanced tool that shades the direction of the trend in the major pairs. It also creates price alerts when the price reaches a specific zone and most importantly you will get push notification in your smartphone when the market starts exhibiting the characteristics of the newly formed trend. Those who are active day traders can get help by using this smart tool. Learn its use by using the demo account so that you don’t get confused while dealing with the extremely volatile market.

FREE UltraWPR_HTF_Signal_BG Indicator

Download the FREE UltraWPR_HTF_Signal_BG 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

My Recommended MT4/MT5 Broker

 

Installing the UltraWPR_HTF_Signal_BG Indicator For MT5

After you downloaded the indicator via the form above you need to unzip the zip-file. Then you need to copy the file ultrawpr_htf_signal_bg.mq5 into the folder MQL5\Indicators of your MT5 installation. After that please restart MT5 and then you will be able to see the indicator in the list of indicators.

Parameters of the UltraWPR_HTF_Signal_BG Indicator For MT5

The UltraWPR_HTF_Signal_BG Indicator For MT5 has 31 parameters to configure.

input bool   SessionDrawOff=false;                     // Show session in a non-session period
input string SessionSirName="Asian";                   // Session name
input Hour   StartHour=H00;                            // Session start hour
input Min    StartMinute=M00;                          // Session start minute
input uint   SessionTime=480;                          // Session duration in minutes
input color Up_Color=clrSkyBlue;                       // Color of growth
input color Buy_Color=clrDodgerBlue;                   // Color of Buy
input color Sell_Color=clrPlum;                        // Color of fall
input color Dn_Color=clrMagenta;                       // Color of Sell
input string Symbol_="";                    // Financial asset
input ENUM_TIMEFRAMES Timeframe=PERIOD_H6;  // Indicator timeframe for the indicator calculation
input int WPR_Period=13;                    // WPR indicator period
input Smooth_Method W_Method=MODE_JJMA;     // Method of averaging
input int StartLength=3;                    // Initial averaging period
input int WPhase=100;                       // Averaging parameter (-100..+100)
input uint Step=5;                          // Period change step
input uint StepsTotal=10;                   // Number of period changes
input Smooth_Method SmoothMethod=MODE_JJMA; // Smoothing method
input int SmoothLength=3;                   // Smoothing depth
input int SmoothPhase=100;                  // Soothing parameter (-100..+100)
input uint SignalBar=0;                                // Signal bar index, 0 is a current bar
input string Symbols_Sirname=INDICATOR_NAME"_Label_";  // Indicator labels name
input color IndName_Color=DarkOrchid;                  // Indicator name color
input uint Font_Size=10;                               // Indicator name font size
input int X_1=5;                                       // Horizontal shift of the name
input int Y_1=-15;                                     // Vertical shift of the name
input bool ShowIndName=true;                           // Indicator name display
input ENUM_BASE_CORNER  WhatCorner=CORNER_RIGHT_UPPER; // Location corner
input ENUM_ALERT_MODE alert_mode=OnlySound;            // Triggering indication option
input uint AlertCount=0;                               // Number of produced alerts
input bool Push=true;                                  // Allow push notifications

Buffers of the UltraWPR_HTF_Signal_BG Indicator For MT5

The UltraWPR_HTF_Signal_BG Indicator For MT5 provides 0 buffers.

Main Parts Of The Code

int OnCalculate(const int rates_total,    // number of bars in history at the current tick
                const int prev_calculated,// amount of history in bars at the previous tick
                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[])
  {
//--- checking if the number of bars is enough for the calculation
   if(BarsCalculated(UltraWPR_Handle) lt min_rates_total) return(RESET);
   if(BarsCalculated(UltraWPR_Handle) lt Bars(Symbol(),Timeframe)) return(prev_calculated);
//---
   datetime iTime[1];
//--- copy newly appeared data in the array
   if(CopyTime(Symbol(),PERIOD_D1,time[rates_total-1],1,iTime) lt =0) return(RESET);
//---
   datetime StartTime=datetime(iTime[0]+StartHourSec+StartMinuteSec);
   datetime EndTime=datetime(StartTime+SessionTimeSec);

   if(StartTime gt TimeCurrent() || (!SessionDrawOff && TimeCurrent() gt EndTime))
     {
      Deinit();
      return(RESET);
     }
//--- indexing elements in arrays as in timeseries  
   ArraySetAsSeries(close,true);
   int StartBar=iBarShift(NULL,PERIOD_CURRENT,StartTime);
   int EndBar=MathMax(iBarShift(NULL,PERIOD_CURRENT,EndTime),0);
//---- declaration of local variables
   int trend=0;
   double UpMov[2],DnMov[2];
   color Color0=clrNONE;
   bool signal=false;
   static uint buycount,sellcount;
   static bool RePush;
//--- calculations of the necessary amount of copied data for the CopyBuffer function
   if(prev_calculated gt rates_total || prev_calculated lt =0)// Checking for the first start of the indicator calculation
     {
      buycount=0;
      sellcount=0;
     }
   else
     {
      if(prev_calculated==rates_total && SignalBar && (!buycount || !sellcount)) return(rates_total);
     }
//--- copy newly appeared data in the array  
   if(CopyBuffer(UltraWPR_Handle,0,SignalBar,2,UpMov) lt =0) return(prev_calculated);
   if(CopyBuffer(UltraWPR_Handle,1,SignalBar,2,DnMov) lt =0) return(prev_calculated);

   if(UpMov[1] gt DnMov[1])
     {
      trend=+1;
      if(UpMov[0] lt =DnMov[0]) signal=true;
     }

   if(UpMov[1] lt DnMov[1])
     {
      trend=-1;
      if(UpMov[0] gt =DnMov[0]) signal=true;
     }
//--- set alerts counters to the initial position   
   if(prev_calculated!=rates_total && AlertCount && signal)
     {
      buycount=AlertCount;
      sellcount=AlertCount;
     }
//---- getting buy signals
   if(trend gt 0)
     {
      if(signal)
        {
         Color0=Buy_Color;
         if(Push && SignalBar && prev_calculated!=rates_total) RePush=true;
         if(RePush) if(SendNotification(BuySignal)) RePush=false;

         if(buycount && SignalBar)
           {
            switch(alert_mode)
              {
               case OnlyAlert: Alert(BuySignal); break;
               case OnlySound: PlaySound(BUY_SOUND); break;
              }

            buycount--;
           }
        }
      else Color0=Up_Color;
     }
//---- Getting sell signals
   if(trend lt 0)
     {
      if(signal)
        {
         Color0=Sell_Color;
         if(Push && SignalBar && prev_calculated!=rates_total) RePush=true;
         if(RePush) if(SendNotification(SellSignal)) RePush=false;

         if(sellcount && SignalBar)
           {
            switch(alert_mode)
              {
               case OnlyAlert: Alert(SellSignal); break;
               case OnlySound: PlaySound(SELL_SOUND); break;
              }

            sellcount--;
           }

        }
      else Color0=Dn_Color;;
     }
//--- Show signals on the chart
   SetChannel(0,ObjName,0,StartTime,close[StartBar],StartTime,0.0,EndTime,0.0,Color0,true,ObjName);
   if(ShowIndName)
      SetTLabel(0,name1,0,WhatCorner,ENUM_ANCHOR_POINT(2*WhatCorner),X_1_,Y_1_,IndName,IndName,IndName_Color,NAMES_SYMBOLS_FONT,Font_Size);
//---
   ChartRedraw(0);
   return(rates_total);
  }
//+------------------------------------------------------------------+

 

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:  

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.

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