Margin_DrawDown_Tracker





//+------------------------------------------------------------------+
//|                                      Margin_DrawDown_Tracker.mq4 |
//|                                    Copyright © 2007, P. Kubitzki |
//|                                              fxtogo4me@yahoo.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, P. Kubitzki. All Rights Reserved"
#property link      "http://www.SecretsFromTheHeart.com"

double MaxAccountMargin = 0.0;
double MaxDrawDown = 0.0;
double MinMarginLevel = 100000.0; //default start value
extern double MinMarginForAlert = 500.0; //(margin call if less than 100), if margin goes down to this number a message is sent to my cell phone
extern double MaxDrawDownForAlert = -3000.00;
double AccountMarginLevel = 0.0;
extern string Subject = "FXDD - Demo";
extern string MarginLevelMessage = "MARGIN LEVEL GETTING TOO LOW!!!";
extern string DrawDownMessage = "Draw Down hitting limit!!!";
extern int MarginAlertTrigger = 1; //1 = no alert yet, 2 = alert triggered
extern int DrawDownAlertTrigger = 1; //1 = no alert yet, 2 = alert triggered
double MaxFloatingProfit = 0.0;
int AcctLeverage = 0;

int deinit()
  {

  return(0);
 }
  
int init()

   {
 
    return(0);
   }
 
 
  
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   if( OrdersTotal() == 0) return;
    AccountMarginLevel = (AccountEquity() / AccountMargin()) * 100.0;

    ChartComment(); 
     if (MinMarginLevel <= MinMarginForAlert && MarginAlertTrigger == 1)
     {
        Alert( "WARNING MARGIN GETTING TOO LOW!!!" );      
        SendMail( Subject, MarginLevelMessage );
        MarginAlertTrigger = 2;
     }      
     if ( AccountProfit() <= MaxDrawDownForAlert && DrawDownAlertTrigger == 1)
     {
        Alert( "Draw Down hitting limit!!!" );      
        SendMail( Subject, DrawDownMessage );
        DrawDownAlertTrigger = 2;
     }      
   return(0);
  }
  
void ChartComment() 
{

     if (AccountMarginLevel < MinMarginLevel)
           MinMarginLevel = AccountMarginLevel;
     if (AccountMargin() > MaxAccountMargin)
           MaxAccountMargin = AccountMargin();
     if (AccountProfit() < MaxDrawDown)
           MaxDrawDown = AccountProfit(); 
     if (AccountProfit() > MaxFloatingProfit)
           MaxFloatingProfit = AccountProfit();
     AcctLeverage = AccountLeverage();
         
     Comment ("Copyright © 2007 P. Kubitzki, www.SecretsFromTheHeart.com","\nAccount Leverage is ",AcctLeverage,":1","   MaxFloatingProfit = ",MaxFloatingProfit,"\nMaxAccountMargin = ",MaxAccountMargin,"           MaxDrawdown = ",MaxDrawDown,"\nMinMarginForAlert =  ",MinMarginForAlert,"   MaxDrawDownForAlert = ",MaxDrawDownForAlert,"\nAlertTriggers: 1 = No Alert, 2 = Alert Sent","\nMarginAlertTrigger =",MarginAlertTrigger,"   DrawDownAlertTrigger = ",DrawDownAlertTrigger);
 
}
//+------------------------------------------------------------------+






Sample





Analysis



Market Information Used:



Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:
Checks for the total of open orders

Other Features:


It issuies visual alerts to the screen
It sends emails