Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Ваш брокер не поддерживает мобильные MetaTrader 5? Попроси приобрести их!
Gennady91
7
Gennady91 2015.09.16 07:52 
Добрый день форумчане. Я пытаюсь найти ответ, и ваша помощь мне нужна. Мне нужно открыть только один ордер в сутки. Наступает параметр для открытия ордера, он открылся, идет сработка лося или тейка. ордер закрылся. Но далее снова идет открытие ордера. Напишите пожалуйста кусок кода, который реализует запрет на открытие второго ордера в сутки. Мучаюсь уже не первый день с данным вопросом. Заранее благодарен.
khorosh
8041
khorosh 2015.09.16 08:32  
hazanov:
Добрый день форумчане. Я пытаюсь найти ответ, и ваша помощь мне нужна. Мне нужно открыть только один ордер в сутки. Наступает параметр для открытия ордера, он открылся, идет сработка лося или тейка. ордер закрылся. Но далее снова идет открытие ордера. Напишите пожалуйста кусок кода, который реализует запрет на открытие второго ордера в сутки. Мучаюсь уже не первый день с данным вопросом. Заранее благодарен.

Можно использовать эту функцию:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает флаг торгов сегодня.                                |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isTradeToDay(string sy="", int op=-1, int mn=-1) {
  int i, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (TimeDay  (OrderOpenTime())==Day()
              &&  TimeMonth(OrderOpenTime())==Month()
              &&  TimeYear (OrderOpenTime())==Year()) return(True);
            }
          }
        }
      }
    }
  }
  k=OrdersTotal();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (TimeDay  (OrderOpenTime())==Day()
              &&  TimeMonth(OrderOpenTime())==Month()
              &&  TimeYear (OrderOpenTime())==Year()) return(True);
            }
          }
        }
      }
    }
  }
  return(False);
}
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий