//+------------------------------------------------------------------+
//|                                                  EquityEmail.mq4 |
//|                                                           GumRai |
//|                                                                  |
//+------------------------------------------------------------------+
#property copyright "GumRai"
#property link      ""
#property version   "1.0"
#property strict
#property indicator_chart_window
//--- input parameters
input double AlertTime=8.10;
input bool SendEmail=true;
input bool PushNotification=true;

int AlertHour;
int AlertMinute;
int AlertDay;

#include <stdlib.mqh>
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
  AlertHour=(int)MathFloor(AlertTime);
  AlertMinute=(int)MathRound((AlertTime-AlertHour)*100);
  if(AlertMinute>59)
     AlertMinute=59;
  Print("Minute ", AlertMinute);
  Print("Hour ", AlertHour);
  
 
   
   return(INIT_SUCCEEDED);
  }
  
void OnDeinit(const int reason)
  {
//---
     
     
//---
  }
 

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
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[])
  {
//---
  datetime TimeNow=TimeCurrent();
  int hr=TimeHour(TimeNow);
  int min=TimeMinute(TimeNow);
  int day=TimeDay(TimeNow);
  if(AlertDay!=day)
     if(hr>AlertHour || (hr==AlertHour && min>=AlertMinute))
        {
        string text="Balance at "+TimeToStr(TimeNow,TIME_DATE|TIME_MINUTES)+" is "+DoubleToStr(AccountBalance(),2)+". "+
                    "Equity is "+DoubleToStr(AccountEquity(),2);
        if(SendEmail)
           {
           bool emailsent=SendMail("Equity Balance",text);  
           if(!emailsent)
              {
              int err=GetLastError();
              Alert("Unable to send email, error code ",err,", ",ErrorDescription(err));
              }
           }
        if(PushNotification)
           {
           bool notificationsent=SendNotification(text);  
           if(!notificationsent)
              {
              int err=GetLastError();
              Alert("Unable to send notification, error code ",err,", ",ErrorDescription(err));
              }
           }
        
        AlertDay=day;
        Print(text);
        }
    
  
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
