Возможность перекрытия противоположных ордеров в МТ4.

 
Здравствуйте уважаемые трейдеры! Подскажите пожалуйста, существует ли возможность перекрытия разнонаправленных ордеров при торговле "одним кликом" в МТ4? То есть, существуют ли такие скрипты которые позволят в терминале МТ4 при нажатии на кнопку Buy быстро купить, а при нажатии на Sell - продать существующий или часть его, а не открывать новый противоположный? Если да, то как это можно реализовать? Спасибо
 

вот советник ставьте его на ту пару на которой торгуете, открыайте ордер и для закрытия открывайте противоположный, советник закроет один ордер другим.

код под старый компилятор но нормально работает на новом

работает по тикам

//|                                                    CloseLock.mq4 |
//|                                                      sanyooooook |
//|                        https://www.mql5.com/ru/users/sanyooooook |
//+------------------------------------------------------------------+
#property copyright "sanyooooook"
#property link      "https://www.mql5.com/ru/users/sanyooooook"
// биткоин адрес для благодарностей 1M5FPLHLvHmnLsB2Kbn84K3BYnKvw1Vbvi

extern double Profit=-100;
extern int Magik=0;

string Symbol_="";

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
Symbol_=Symbol();   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
   double minBuy=100000,maxSell=0;
   int minTick=0,maxTick=0;
for(int i=OrdersTotal()-1;i>=0;i--)
{
   if(OrderSelect(i,SELECT_BY_POS)&&OrderSymbol()==Symbol_)//&&OrderMagicNumber()==0)
   {
      int cmd=OrderType();
      if(cmd==OP_BUY)
      {
         if(minBuy>OrderOpenPrice())
         {
            minBuy=OrderOpenPrice();
            minTick=OrderTicket();
         }
      }
      if(cmd==OP_SELL)
      {
         if(maxSell<OrderOpenPrice())
         {
            maxSell=OrderOpenPrice();
            maxTick=OrderTicket();
         }
      }
   }
}   
Comment(maxSell," ",minBuy);
   if((maxSell-minBuy)/minBuy>=Profit&&maxTick>0&&minTick>0)
   {
      bool a=OrderCloseBy(minTick,maxTick);
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+
Файлы:
CloseLock.mq4  3 kb
 
Alexandr Bryzgalov:

вот советник ставьте его на ту пару на которой торгуете, открыайте ордер и для закрытия открывайте противоположный, советник закроет один ордер другим.

код под старый компилятор но нормально работает на новом

работает по тикам

Спасибо Вам большое, Александр! Жаль что смогу проверить его только в понедельник. Он ведь подойдет для ручной торговли?
 
Khusan:
Спасибо Вам большое, Александр! Жаль что смогу проверить его только в понедельник. Он ведь подойдет для ручной торговли?

да, конечно.

мало того, в МТ4 есть встроенная возможность торговли в один клик, т.е. все будет так как Вы и хотели

открываете бай, а для закрытия открываете селл, немного погодя оба ордера схлопнуться, не закроются, а именно схлопнуться, т.е. один перекроется другим

 
Alexandr Bryzgalov:

да, конечно.

мало того, в МТ4 есть встроенная возможность торговли в один клик, т.е. все будет так как Вы и хотели

открываете бай, а для закрытия открываете селл, немного погодя оба ордера схлопнуться, не закроются, а именно схлопнуться, т.е. один перекроется другим

А какой смысл в этом? Если торговать сетками, тогда да, смысл в этом есть, экономия спреда при закрытии встречным, а если  только одна позиция, то Я не вижу преимуществ, тем более, что могут прореквотить так-же, как и при закрытии обычным способом.

Ну мой брокер не дает такой возможности, нет даже пункта "закрыть перекрытые"

 
Alexandr Bryzgalov:

да, конечно.

мало того, в МТ4 есть встроенная возможность торговли в один клик, т.е. все будет так как Вы и хотели

открываете бай, а для закрытия открываете селл, немного погодя оба ордера схлопнуться, не закроются, а именно схлопнуться, т.е. один перекроется другим

Нашел в Google информацию по любезно предоставленному Вами скрипту. Из прочитанного понял что работает он единоразово, т.е. при каждом следующем перекрытии одного противоположного ордера другим, следует заново набрасывать скрипт на график. Скажите так ли это?

 Дело в том что при своей торговле мне надо минимизировать окно терминала МТ4, оставив видимыми только кнопки Buy-Sell (Торговля в один клик), экономя место монитора для чтения ленты принтов. Если при каждой покупке, продаже, мне надо будет прежде набросить скрипт для перекрытия - это будет очень неудобно для подобного вида торговли, где каждая доля секунды на счету. Нашел возможность использования горячей клавиши для скрипта, но все равно считаю что это будет занимать много времени.  

 
Vitaly Muzichenko:

А какой смысл в этом? Если торговать сетками, тогда да, смысл в этом есть, экономия спреда при закрытии встречным, а если  только одна позиция, то Я не вижу преимуществ, тем более, что могут прореквотить так-же, как и при закрытии обычным способом.

Ну мой брокер не дает такой возможности, нет даже пункта "закрыть перекрытые"

Ваш брокер не дает возможности открытия противоположной позиции, а мой как раз наоборот - и в этом проблема. Мне не нужно хеджировать сделки.
 
Khusan:
Ваш брокер не дает возможности открытия противоположной позиции, а мой как раз наоборот - и в этом проблема. Мне не нужно хеджировать сделки.
открыть можно до 100 ордеров и позиций, а вот закрыть перекрытием нельзя, только каждую отдельно, но при этом уходит спред от каждой позиции, а при закрытии перекрытием, только один спред, но Я не торгую локами, по одному символу только одна позиция
 
Khusan:

Нашел в Google информацию по любезно предоставленному Вами скрипту. Из прочитанного понял что работает он единоразово, т.е. при каждом следующем перекрытии одного противоположного ордера другим, следует заново набрасывать скрипт на график. Скажите так ли это?

 Дело в том что при своей торговле мне надо минимизировать окно терминала МТ4, оставив видимыми только кнопки Buy-Sell (Торговля в один клик), экономя место монитора для чтения ленты принтов. Если при каждой покупке, продаже, мне надо будет прежде набросить скрипт для перекрытия - это будет очень неудобно для подобного вида торговли, где каждая доля секунды на счету. Нашел возможность использования горячей клавиши для скрипта, но все равно считаю что это будет занимать много времени.  

Перенесите скрипт в советник, тогда будет в работе постоянно
 
Vitaly Muzichenko:
Перенесите скрипт в советник, тогда будет в работе постоянно
Подскажите, а в какой именно советник следует перенести данный скрипт, чтобы он был в работе постоянно? И еще чтобы этот советник, чего доброго, не стал вдруг торговать автоматически, без меня.
 
Vitaly Muzichenko:

А какой смысл в этом? Если торговать сетками, тогда да, смысл в этом есть, экономия спреда при закрытии встречным, а если  только одна позиция, то Я не вижу преимуществ, тем более, что могут прореквотить так-же, как и при закрытии обычным способом.

Ну мой брокер не дает такой возможности, нет даже пункта "закрыть перекрытые"

открыто может быть 100500 ордеров или сколько там разрешает Ваш брокер, а закрыть всю эту пачку можете Вы одним ордером, это первое и наверное единственное преимущество.

время при работе руками на быстром рынке может стоить очень дорого. да даже бот может закрывать пачку очень долго, зависит от брокера

Причина обращения: