Скачать MetaTrader 5

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

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