//+------------------------------------------------------------------+ //| VIC Currency Manager.mq4 | //| Copyright © 2007 | //| http://www.automatedtradingmastery.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007" #property link "http://www.automatedtradingmastery.com" extern int viewmode=1; //1=global Info int acc=1; int accobj; double MN_Array[100]; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- ObjectCreate("VCC_Title", OBJ_LABEL, 0, 0, 0); ObjectSet("VCC_Title", OBJPROP_XDISTANCE, 210); ObjectSet("VCC_Title", OBJPROP_YDISTANCE, 0); ObjectSetText("VCC_Title", "MT4-Currency Manager V1.0", 13, "Verdana", Yellow); createRec(8,250,1,Yellow,acc,210,19);acc++; if(viewmode==1){ createRec(8,5,30,Red,acc,220,40);acc++; createRec(8,5,30,Red,acc,440,40);acc++; createText("Global Information",11,White,acc,5,40);acc++; createText("Historical Information",10,White,acc,235,40);acc++; createText("EA Information",10,White,acc,455,40);acc++; } //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- accobj=acc; for(int index1=0;index1<=100;index1++){ MN_Array[index1]=999999999999; } if(viewmode==1){ double AccPercentage=(AccountEquity()/AccountBalance())*100; double currentDD=100-AccPercentage; createText("Server = "+AccountServer(),9,White,accobj,5,60);accobj++; createText("Account Type = "+detectAccType(),9,White,accobj,5,75);accobj++; createText("Leverage = 1:"+AccountLeverage(),9,White,accobj,5,90);accobj++; createText("Total Active Order = "+TotalTrade(0,0,""),9,White,accobj,5,105);accobj++; createText("Total BUY Position = "+TotalTrade(1,0,""),9,White,accobj,5,120);accobj++; createText("Total SELL Position = "+TotalTrade(2,0,""),9,White,accobj,5,135);accobj++; createText("Total PENDING Position = "+TotalTrade(3,0,""),9,White,accobj,5,150);accobj++; createText("Total Floating P/L = $"+DoubleToStr(TotalProfit(0,""),2),9,White,accobj,5,165);accobj++; if(currentDD>0){ createText("Current DD (%)="+DoubleToStr(currentDD,2)+"%",9,White,accobj,5,180);accobj++; }else{ createText("Current Profit (%)="+DoubleToStr(currentDD*(0.0-1.0),2)+"%",9,White,accobj,5,180);accobj++; } createText("Equity (%)="+DoubleToStr(AccPercentage,2)+"%",9,White,accobj,5,195);accobj++; createText("Active Magic Number:",9,White,accobj,5,210);accobj++; findMagicNumber(5,225); } //---- return(0); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- string buff_str = ""; for(int i=ObjectsTotal()-1;i>=0;i--){ buff_str = ObjectName(i); if(StringFind(buff_str,"VCC_",0)==0) ObjectDelete(buff_str); } //---- return(0); } void createRec(int fontsize,int width,int height,color c,int curobj,int XPOS,int YPOS){ string buffstr="VCC_OBJ_"+curobj; for (int tempIDX_Y=0;tempIDX_YOP_SELL) totalOrder++; break; } return(totalOrder); } double TotalProfit(int magicNumber,string pairSymbol) { double total = 0; for (int index1 = 0; index1 < OrdersTotal(); index1++) { OrderSelect(index1, SELECT_BY_POS, MODE_TRADES); if(pairSymbol==""){ if(magicNumber==0){ total=total + OrderProfit() + OrderSwap(); }else{ if (OrderMagicNumber() == magicNumber){ total=total + OrderProfit() + OrderSwap(); } } }else{ if(OrderSymbol()==pairSymbol){ if(magicNumber==0){ total=total + OrderProfit() + OrderSwap(); }else{ if (OrderMagicNumber() == magicNumber){ total=total + OrderProfit() + OrderSwap(); } } } } } return (total); } void findMagicNumber(int XPOS,int YPOS){ int counter=0; bool foundMN=false; for (int index1 = 0; index1 < OrdersTotal(); index1++) { OrderSelect(index1, SELECT_BY_POS, MODE_TRADES); //createText(OrderMagicNumber(),9,White,accobj,XPOS+5,YPOS+(index1*15));accobj++; for(int temp=0;temp<=counter;temp++){ if(OrderMagicNumber()==MN_Array[temp]){ foundMN=true; break; } } if(foundMN==false){ MN_Array[counter]=OrderMagicNumber(); createText(OrderMagicNumber(),9,White,accobj,XPOS+5,YPOS+(counter*15));accobj++; counter++; }else{ foundMN=false; } } createText("more information : victory1@centrin.net.id",9,White,accobj,XPOS,YPOS+(counter*15));accobj++; }