//+------------------------------------------------------------------+ //| Loss-Take.mq4 | //| Copyright 2015-2016, Assurkov.ru | //| http://www.assurkov.ru | //+------------------------------------------------------------------+ #property strict #property copyright "Copyright © 2015-2016, www.assurkov.ru, Alexey Surkov" #property link "http://www.assurkov.ru/" #property version "1.00" input double StopLoss =400; input double TakeProfit =800; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void OnTick() { int _GetLastError = 0, _OrdersTotal = OrdersTotal(); for ( int z = _OrdersTotal - 1; z >= 0; z -- ) { if ( !OrderSelect( z, SELECT_BY_POS, MODE_TRADES ) ) { _GetLastError = GetLastError(); Print( "OrderSelect( ", z, ", SELECT_BY_POS ) - Error #", _GetLastError ); continue; } if(OrderType()==OP_BUY && OrderStopLoss()==0 && OrderSymbol()!="USDDKK") { if(!OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_POINT)*StopLoss,OrderOpenPrice()+MarketInfo(OrderSymbol(),MODE_POINT)*TakeProfit,0,Green)) Print("OrderModify error ",GetLastError()); return; } if(OrderType()==OP_SELL && OrderStopLoss()==0 && OrderSymbol()!="USDDKK") { if(!OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+MarketInfo(OrderSymbol(),MODE_POINT)*StopLoss,OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_POINT)*TakeProfit,0,Green)) Print("OrderModify error ",GetLastError()); return; } if(OrderType()==OP_BUY && OrderStopLoss()==0 && OrderSymbol()=="USDDKK") { if(!OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_POINT)*2.5*StopLoss,OrderOpenPrice()+MarketInfo(OrderSymbol(),MODE_POINT)*2.5*TakeProfit,0,Green)) Print("OrderModify error ",GetLastError()); return; } if(OrderType()==OP_SELL && OrderStopLoss()==0 && OrderSymbol()=="USDDKK") { if(!OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+MarketInfo(OrderSymbol(),MODE_POINT)*2.5*StopLoss,OrderOpenPrice()-MarketInfo(OrderSymbol(),MODE_POINT)*2.5*TakeProfit,0,Green)) Print("OrderModify error ",GetLastError()); return; } }}