//+------------------------------------------------------------------+
//|                                                   Profit_Monitor |
//|                               Copyright © 2009, Dennis Hamiilton |
//|                                              ramble_32@yahoo.com |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2009, Dennis Hamiilton"
#property link      "ramble_32@yahoo.com"

extern string separator1="-----  Set Targets,  Enable,  Recurring  -----";
extern double Profit_Target=0.5;
extern double Overall_Profit=10;
extern bool Enable_Auto_Close=false;
extern bool Recurring=true;
extern string separator2="-----  Close and Delete  /  Manually  -----";
extern bool Close_All_Open=false;
extern bool Delete_Pending=false;
extern bool Close_All_Now=false;
extern bool Suspend_Trading=false;
extern string separator3="-----  Magic Number  /  by Range  -----";
extern int Magic_Range_First_1=0;
extern int Magic_Range_Last_1=0;
extern int Magic_Range_First_2=0;
extern int Magic_Range_Last_2=0;
extern string separator4="-----  Magic Number  /  Individual  -----";
extern int Magic_Number_01=0;
extern int Magic_Number_02=0;
extern int Magic_Number_03=0;
extern int Magic_Number_04=0;
extern int Magic_Number_05=0;
extern int Magic_Number_06=0;
extern int Magic_Number_07=0;
extern int Magic_Number_08=0;
extern int Magic_Number_09=0;
extern int Magic_Number_10=0;

double O_pr=0,T_pr;
bool EAC,RCR,CAO,DLA,CAN,SPD;
int Alert_cnt=0;
string CAO2="No",EAC2="No",RCR2="No",DLA2="No",CAN2="No",SPD2="No";

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//---- Convert and Minimize Variables
   EAC=Enable_Auto_Close; RCR=Recurring; CAO=Close_All_Open; DLA=Delete_Pending; CAN=Close_All_Now;
   SPD=Suspend_Trading;
//---- Set Global Variables
   GlobalVariableSet("PM_P_Target",Profit_Target);    GlobalVariableSet("PM_Overall_P",Overall_Profit);
   GlobalVariableSet("PM_Enable",Enable_Auto_Close);  GlobalVariableSet("PM_Recurring",Recurring);
   GlobalVariableSet("PM_Close_Open",Close_All_Open); GlobalVariableSet("PM_Delete_All",Delete_Pending);
   GlobalVariableSet("PM_Close_All",Close_All_Now);   GlobalVariableSet("PM_Suspend",Suspend_Trading);
   //----
   GlobalVariableSet("PM_MRB1",Magic_Range_First_1); GlobalVariableSet("PM_MRE1",Magic_Range_Last_1);
   GlobalVariableSet("PM_MRB2",Magic_Range_First_2); GlobalVariableSet("PM_MRE2",Magic_Range_Last_2);
  //----
   GlobalVariableSet("PM_MN1",Magic_Number_01); GlobalVariableSet("PM_MN2",Magic_Number_02);
   GlobalVariableSet("PM_MN3",Magic_Number_03); GlobalVariableSet("PM_MN4",Magic_Number_04);
   GlobalVariableSet("PM_MN5",Magic_Number_05); GlobalVariableSet("PM_MN6",Magic_Number_06);
   GlobalVariableSet("PM_MN7",Magic_Number_07); GlobalVariableSet("PM_MN8",Magic_Number_08);
   GlobalVariableSet("PM_MN9",Magic_Number_09); GlobalVariableSet("PM_MNA",Magic_Number_10);
//----
   RefreshRates();
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//---- Reset Global to false
   GlobalVariableDel("PM_Script_Loaded"); GlobalVariableDel("Profit_Monitor");
   GlobalVariableDel("Suspend_Trades");
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   GlobalVariableSet("Profit_Monitor",true);
   if(!GlobalVariableCheck("PM_Script_Loaded")){
   if(Alert_cnt==0){ Alert("Please Load PM Script EA on Separate Chart"); Alert_cnt=1; } }
//---- Set Status Display and Suspend Trades
   if(CAO==true){ CAO2="Yes"; } if(EAC==true){ EAC2="Yes"; if(RCR==true){ RCR2="Yes"; } else { RCR2="No"; } }
   if(DLA==true){ DLA2="Yes"; } if(CAN==true){ CAN2="Yes"; } if(SPD==true){ SPD2="Yes"; } else { SPD2="No";
   SPD=false; } GlobalVariableSet("Suspend_Trades",SPD);
//---- Display Status
   O_pr=GlobalVariableGet("PM_O_pr"); T_pr=GlobalVariableGet("PM_T_pr");
   Comment("Profit = ",DoubleToStr(O_pr,2),"  Target = ",DoubleToStr(Profit_Target,2),"  Overall = ",
   DoubleToStr(T_pr,2),"  Target = ",DoubleToStr(Overall_Profit,2),"  Enabled = ",EAC2,
   "  Recurring = ",RCR2,"\n",
   "Close-All Open = ",CAO2,"  Close-All Pending = ",DLA2,"  Close-All Now = ",CAN2,"  Suspend = ",SPD2);
//----
   return(0);
  }
//+------------------------------------------------------------------+