Скрипт : переворот позиций

При торговле периодически возникает желание закрыть существующую позицию и открыться в обратном направлении. Если в рынке работает 1-2 ордера, то это не проблема, а вот если их больше десятка, то это уже целая беда.

Скрипт переворачивает имеющиеся открытые позиции по текущей валютной паре.

Параметры скрипта:

— нет

//+------------------------------------------------------------------+
//|                                                 ReversOrders.mq4 |
//|                                             Copyright 2018, xbms |
//|                                              mailto:xbms@mail.ru |
//|                                                    http://mql.su |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, xbms"
#property link      "http://mql.su"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
{
  double Lots;
  int    ticket;
  
  for (int i=OrdersTotal()-1; i>=0; i--) 
  {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) 
    {
       if (OrderSymbol()==Symbol()) 
       {
          ticket = 0;
          
          if (OrderType() == OP_BUY) 
          {
             Lots = OrderLots();
             if (OrderClose(OrderTicket(), OrderLots(), Bid, 5, Black))
             {
                 ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 7, 0, 0, "Inverted order", 0, 0 , Red);
             }
          }
          
          if (OrderType() == OP_SELL) 
          {
             Lots = OrderLots();
             if (OrderClose(OrderTicket(), OrderLots(), Ask, 5, Black))
             {
                 ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 7, 0, 0, "Inverted order", 0, 0, Blue);
             }
          }
          
          if (ticket < 1)
          {
              Print("Не удалось перевернуть ордер с тикетом " + IntegerToString(OrderTicket()));
          }
       }
    }
  }
}
//+------------------------------------------------------------------+


Скачать скрипт «ReversOrders»

 

Written by 

Добавить комментарий