//+------------------------------------------------------------------+ //| CloseTrades_After_Account_Profit_Reached.mq4 | //| Copyright © 2007, Tradinator | //| tradinator.fx@gmail.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, Tradinator" #property link "tradinator.fx@gmail.com" #property strict; input double My_Money_Profit_Target = 300; // Profit amount in deposte currency. input int Slippage = 5 ; input bool CAO = true; // Include close all Pending Orders int i; //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { if (AccountProfit()>= My_Money_Profit_Target) { for(i=OrdersTotal()-1;i>=0;i--) { if(OrderSelect(i, SELECT_BY_POS)== true) { int type = OrderType(); bool result = false; switch(CAO) { case 0: switch(type) { //Close opened long positions case OP_BUY : result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),Slippage,Pink); break; //Close opened short positions case OP_SELL : result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),Slippage,Pink); break; } case 1: switch(type) { //Close opened long positions case OP_BUY : result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),Slippage,Pink); break; //Close opened short positions case OP_SELL : result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),Slippage,Pink); break; //Close opened long positions case OP_BUYLIMIT : result = OrderDelete(OrderTicket(),Pink); break; //Close opened short positions case OP_BUYSTOP : result = OrderDelete(OrderTicket(),Pink); break; //Close opened long positions case OP_SELLLIMIT : result = OrderDelete(OrderTicket(),Pink); break; //Close opened short positions case OP_SELLSTOP : result = OrderDelete(OrderTicket(),Pink); break; } } if(result == false) { Sleep(3000); } } } Print ("Account Profit Reached. All Open Trades Have Been Closed"); return(0); } Comment("Balance: ",AccountBalance(),", Account Equity: ",AccountEquity(),", Account Profit: ",AccountProfit(), "\nMy Account Profit Target: ",My_Money_Profit_Target); return(0); }