Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
В сервисе Фриланс выполнено тысячи оплачиваемых заказов. Присоединяйся!
igorvg74
39
igorvg74 2016.01.30 16:52 
Подскажите пожалуйста, существует ли скрипт для закрытия всех ордеров по окончании торговой сессии?Заранее спасибо.
Yury Reshetov
13492
Yury Reshetov 2016.01.30 17:15  
igorvg74:
Подскажите пожалуйста, существует ли скрипт для закрытия всех ордеров по окончании торговой сессии?Заранее спасибо.
Если по окончании не выходные, то можно и советником (не скриптом, т.к. скрипт придётся активировать вручную).
igorvg74
39
igorvg74 2016.01.30 17:19  
Не подскажите советника или скрипт?
Vitaly Muzichenko
2496
Vitaly Muzichenko 2016.01.30 18:00  
igorvg74:
Не подскажите советника или скрипт?

Вроде так должно работать

extern string TimeDelOrders  = "23:57";     // Время удаления ордеров

//+----------------------------------------------------------------------------+
//| Функция                                                                    |
//+----------------------------------------------------------------------------+
void OnTick()
 {
  if(TimeToStr(TimeCurrent(), TIME_MINUTES)>=TimeDelOrders)
   {
    DeleteOrders();
   }
 }

//+----------------------------------------------------------------------------+
//| Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                    |
//+----------------------------------------------------------------------------+
//| Версия   : 13.06.2007                                                      |
//| Описание : Удаление ордеров.                                               |
//+----------------------------------------------------------------------------+
//| Параметры:                                                                 |
//| sy - наименование инструмента   (NULL - текущий символ)                    |
//| op - операция                   ( -1  - любой ордер)                       |
//| mn - MagicNumber                ( -1  - любой магик)                       |
//+----------------------------------------------------------------------------+
void DeleteOrders(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersTotal(), ot;
  bool res;
  if (sy=="" || sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ot=OrderType();
      if (ot==OP_BUYLIMIT || ot==OP_BUYSTOP || ot==OP_SELLLIMIT || ot==OP_SELLSTOP) {
        if (OrderSymbol()==sy && (op<0 || ot==op)) {
          if (mn<0 || OrderMagicNumber()==mn) {
           res=OrderDelete(OrderTicket(), clrNONE);
          }
        }
      }
    }
  }
}
igorvg74
39
igorvg74 2016.01.30 18:33  
Vitaly Muzichenko:

Вроде так должно работать

Спасибо попробую.
Renat Akhtyamov
2914
Renat Akhtyamov 2016.01.30 19:01  
igorvg74:
Спасибо попробую.
Там у него только лимитки удаляются. Внимательнее.
igorvg74
39
igorvg74 2016.01.30 19:14  
Понял. Спасибо.
Vitaly Muzichenko
2496
Vitaly Muzichenko 2016.01.30 21:28  
new-rena:
Там у него только лимитки удаляются. Внимательнее.
Почему только лимитники? Вы очень не внимательны, там удаляет все ордера!
Renat Akhtyamov
2914
Renat Akhtyamov 2016.01.30 22:38  
Vitaly Muzichenko:
Почему только лимитники? Вы очень не внимательны, там удаляет все ордера!
отложки я имел ввиду
Vitaly Muzichenko
2496
Vitaly Muzichenko 2016.01.30 22:44  
new-rena:
отложки я имел ввиду
Я дал код именно того, что просил ТС: (с)"закрытия всех ордеров"
Alexander Bereznyak
19931
Alexander Bereznyak 2016.01.30 22:52  

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

в комментарии функции  написано "Удаление ордеров"

/ /123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий