Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 487

Уважаемые знатоки MQL, нужна помощь.

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

Mike:
Мне кажется, на самом деле это не Альпари - это котировки от Метаквотов, там очень много пропущенных свечей, а внутридневные начинаются только с 01.06.2009.
Когда котировки не от брокера, то выдается соответствующее предупреждение. У меня всё нормально скачивалось... Ещё, как вариант, запустите тестирование по всем там так же будет попытка скачать котировки.
[Удален]
Alexandr Nevadovschi:

Уважаемые знатоки MQL, нужна помощь.

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

https://www.mql5.com/ru/code/13769
OrderTimeAlert
OrderTimeAlert
  • голосов: 8
  • 2015.09.04
  • Alexey Kozitsyn
  • www.mql5.com
Эксперт следит за рыночными ордерами и выдает звуковой сигнал по прошествии заданного времени с момента открытия ордера.
Спасибо большое попробую вытащить оттуда то что мне надо!
Прошу снова помощи. Не закрывается ордер. В журнале пишет бесконечно EURUSD,H1: OrderClose error 138
         / /функция закрытия по таймеру

          void zakr_po_vrem() 
          {
           int total = OrdersTotal(); 
           datetime oTime;                              // Время открытия ордера
           datetime currentTime;                        // Текущее время
              if(total==1)
           {
            if(  OrderSelect(0,SELECT_BY_POS,MODE_TRADES)) // Если ордер выбран
            { 
              oTime=OrderOpenTime();                           // Запоминаем время открытия ордера
              currentTime= TimeCurrent();                        // Запоминаем текущее время                                    
               if( currentTime - oTime >= inpNum  )    // Если с момента открытия ордера прошло больше чем inpNum сек.
           { 
               if(OrderSymbol()==Symbol()) if (OrderType()==OP_BUY) if(  !OrderClose(OrderTicket(), Lots, Bid, Slippage, clCloseBuy))return(false);
               if(OrderSymbol()==Symbol())  if (OrderType()==OP_SELL) if( !OrderClose(OrderTicket(), Lots, Ask, Slippage, clCloseBuy)) return(false);
               return;  
           }         
            }             
            }
           } 
Alexandr Nevadovschi:

Прошу снова помощи. Не закрывается ордер. В журнале пишет бесконечно EURUSD,H1: OrderClose error 138

Для вставки кода пользуйте кнопку SRC! Чтобы при ответе не повторялась Ваша простыня!

Закрывать Buy по Биду, а Sell по Аску! Наверно, есть другие ошибки, но располагает смотреть в этом виде! Вставьте с SRC вместо простыни, потом я сотру её тут! 

Boris:

Для вставки кода пользуйте кнопку SRC! Чтобы при ответе не повторялась Ваша простыня!

Закрывать Buy по Биду, а Sell по Аску! Наверно, есть другие ошибки, но располагает смотреть в этом виде! Вставьте с SRC вместо простыни, потом я сотру её тут! 

Я уже разобрался, вы правильно написали Ask и Bid надо было поменять. Че-то я запутался. Уже всё нормально закрывает.
Alexandr Nevadovschi:
Я уже разобрался, вы правильно написали Ask и Bid надо было поменять. Че-то я запутался. Уже всё нормально закрывает.

Так поменяйте и в своём посте Аск с Бидом, чтобы не оставлять для истории ошибок! Тут много новичков, могут принять ошибку за правило! ;) 

Хорошо, что заработало! Успехов! 

Здравствуйте уважаемые профессионалы. 

Пожалуйста, подскажите кто может. Мне нужна простая скользящая средняя,  с функцией  расчета не только заданного количества баров, но и расчет средней  только бычьих баров или только медвежьих. Как мне это сделать сам догнать не могу. вся надежда на вас ребята! Спасибо!

Karatalmazovih:

Здравствуйте уважаемые профессионалы. 

Пожалуйста, подскажите кто может. Мне нужна простая скользящая средняя,  с функцией  расчета не только заданного количества баров, но и расчет средней  только бычьих баров или только медвежьих. Как мне это сделать сам догнать не могу. вся надежда на вас ребята! Спасибо!

А окна как перекрывать? Т.е. если нет значения, то его не учитывать? Вам нужно просто сделать два массива, а потом по ним пройтись функцией iMAOnArray.