Закрьiтие ордера

 
Здравствуйте всем,подскажите пожалуйста как закръть ордер,когда закроется свеча.Тоесть свеча откръвается - откръвается ордер,свеча закръвается - закръвается ордер.С открътием справляюсь вот с закрътием ордера нет.Заранее спасибо!
 

Закрытие предыдущей свечи можно определить двумя способами:

1. По тику. Это момент открытия первой свечи.

2. По таймеру. Время открытия следующего бара наступило, а открывающий тик следующего бара еще не пришел.

 
XEKTOR68:
Здравствуйте всем,подскажите пожалуйста как закръть ордер,когда закроется свеча.Тоесть свеча откръвается - откръвается ордер,свеча закръвается - закръвается ордер.С открътием справляюсь вот с закрътием ордера нет.Заранее спасибо!
Никак. Только по первому тику новой свечи
 
tara:
Никак. Только по первому тику новой свечи. 

А как описать в коде,если тик новой свечи то будет как -   Open[0] - вот какой код:

 if(Ask<Open[0])   
     {
      res=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"",MAGICMA,0,Red);
      return;
     }
//--- buy conditions
   if(Bid>Open[0])    
     {
      res=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"",MAGICMA,0,Blue);
      return;
     }
//---
  }

Ето на откритие -

А для закритие-

///if(OrderType()==OP_BUY)
        //{
         //if(Bid==Close[0]*Point)      
           //{
            //if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
               //Print("OrderClose error ",GetLastError());
           //}
         //break;
        //}
      //if(OrderType()==OP_SELL)
        //{
         //if(Ask==Close[0]*Point)       
           //{
            //if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,White))
               //Print("OrderClose error ",GetLastError());
           //}
         //break;
        //}

Значит надо поменят Сlose [0] на Open[0]

 
XEKTOR68:
Здравствуйте всем,подскажите пожалуйста как закръть ордер,когда закроется свеча.Тоесть свеча откръвается - откръвается ордер,свеча закръвается - закръвается ордер.С открътием справляюсь вот с закрътием ордера нет.Заранее спасибо!
if (OrderSelect(0,SELECT_BY_POS,MODE_TRADES))  
  

     if(iTime(Symbol(),PERIOD_H1,0)>OrderOpenTime() )

             OrderClose(OrderTicket(),OrderLots(),Ask,Sleepage,Blue); 
Для часовой свечи.
 
paukas:
Для часовой свечи.
Попробовал ,но не закривает к сожалению!
 
XEKTOR68:
Здравствуйте всем,подскажите пожалуйста как закръть ордер,когда закроется свеча.Тоесть свеча откръвается - откръвается ордер,свеча закръвается - закръвается ордер.С открътием справляюсь вот с закрътием ордера нет.Заранее спасибо!

If(TimeCurrent()-OrderOpenTime() >= PeriodSeconds())

OrderClose(...);

 
XEKTOR68:
Попробовал ,но не закривает к сожалению!

Сейчас не будет  закрыват, выходной.


Это конструкция из рабочего кода советника, работающего с 2013 года.  Закрывает всегда кроме выходных.

 
paukas:

Сейчас не будет  закрыват, выходной.


Это конструкция из рабочего кода советника, работающего с 2013 года.  Закрывает всегда кроме выходных.

Может он проверяет в тестере? А в тестере выходных не бывает.

Можно ещё предположить что ты дал строку закрытия Sell а он пытается закрыть Buy

В mql4 есть недокументированная фишка

OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(),Sleepage, Blue); 
Закрывает и баи и селы.
 
AlexeyVik:

Может он проверяет в тестере? А в тестере выходных не бывает.

Можно ещё предположить что ты дал строку закрытия Sell а он пытается закрыть Buy

В mql4 есть недокументированная фишка

Закрывает и баи и селы.
А может он в Экселе проверяет? Тогда фишка тоже не поможет.
 
Тогда в сервисдеск надо писать. ))))))
Причина обращения: