Помогите доработать советник

 
В данном советнике нужно добавить доливку по уже открытым ордерам в случае их просадки на определенною сумму (пусть будет $1000). То есть с шагом в 1000$ (не предлагаю в пунктах, потому что это мультивалютный советник и одинаковый шаг в пунктах не подойдет). Например первый ордер ушел в просадку - открываем еще один в ту же сторону. Если и второй ушел в просадку 1000$ открываем еще один и так далее
//+------------------------------------------------------------------+
//|                                                    Swap.mq4 |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2007, Swan"
#property link      "http://forum.liteforex.net"
extern int Slippage=3;
double Profit;
double Lots;
double SL;

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
{
int Swap=0;
if(MarketInfo(Symbol(), MODE_SWAPLONG)>0) Swap=1;
if(MarketInfo(Symbol(),MODE_SWAPSHORT)>0) Swap=-1;

int TicketBuy=0,TicketSell=0;
double BuyProfit=0,BuyLots=0,SellProfit=0,SellLots=0, BuySwap=0, SellSwap=0;
for(int cnt=0;cnt<OrdersTotal();cnt++)
   {
   OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
   if(OrderSymbol()==Symbol())
      {
      if(OrderType()==OP_BUY)
         {
         TicketBuy=OrderTicket();
         BuyProfit=OrderProfit();
         BuyLots=OrderLots();
         BuySwap=OrderSwap();
         }
      if(OrderType()==OP_SELL)
         {
         TicketSell=OrderTicket();
         SellProfit=OrderProfit();
         SellLots=OrderLots();
         SellSwap=OrderSwap();         
         }
      }
   }
if(TicketBuy+TicketSell==0)
   {
   double Pips=MarketInfo(Symbol(),16);
   double BD=MarketInfo(Symbol(),9);
   if (BD > 10)
      {
      SL=450/Pips;
      }
      else
      {
      SL=4.500/Pips;
      }
   Lots=NormalizeDouble(MathFloor(AccountBalance()/15000)/10,1);
   if(Lots<MarketInfo(Symbol(),MODE_MINLOT)) Lots=MarketInfo(Symbol(),MODE_MINLOT);
   if(Lots>MarketInfo(Symbol(),MODE_MAXLOT)) Lots=MarketInfo(Symbol(),MODE_MAXLOT);
   if(Swap>0)
      {
      OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-SL,0,NULL,0,0);
      return(0);
      }
   if(Swap<0)
      {
      OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Bid+SL,0,NULL,0,0);
      return(0);
      }
   }
if(TicketBuy!=0)
   {
   Profit=NormalizeDouble(MathFloor(AccountBalance()/30)/10,1);
   if(BuyProfit+BuySwap>=Profit)
      {
      OrderClose(TicketBuy,BuyLots,Bid,Slippage);
      return(0);
      }
   }
if(TicketSell!=0)
   {
   Profit=NormalizeDouble(MathFloor(AccountBalance()/30)/10,1);
   if(SellProfit+SellSwap>=Profit)
      {
      OrderClose(TicketSell,SellLots,Ask,Slippage);
      return(0);
      }
   }
  return(0);
}
//+------------------------------------------------------------------+