//+------------------------------------------------------------------+
//| 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);
}
//+------------------------------------------------------------------+
Comments