Один ордер в сутки

 
Добрый день форумчане. Я пытаюсь найти ответ, и ваша помощь мне нужна. Мне нужно открыть только один ордер в сутки. Наступает параметр для открытия ордера, он открылся, идет сработка лося или тейка. ордер закрылся. Но далее снова идет открытие ордера. Напишите пожалуйста кусок кода, который реализует запрет на открытие второго ордера в сутки. Мучаюсь уже не первый день с данным вопросом. Заранее благодарен.
 
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);
}
Причина обращения: