Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Интересуют возможности MQL5? Загляни в документацию!
xektor68
98
xektor68 2015.03.07 18:58 
Здравствуйте всем,подскажите пожалуйста как закръть ордер,когда закроется свеча.Тоесть свеча откръвается - откръвается ордер,свеча закръвается - закръвается ордер.С открътием справляюсь вот с закрътием ордера нет.Заранее спасибо!
Ihor Herasko
9020
Ihor Herasko 2015.03.07 20:55  

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

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

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

Алексей Тарабанов
7270
Алексей Тарабанов 2015.03.08 01:18  
XEKTOR68:
Здравствуйте всем,подскажите пожалуйста как закръть ордер,когда закроется свеча.Тоесть свеча откръвается - откръвается ордер,свеча закръвается - закръвается ордер.С открътием справляюсь вот с закрътием ордера нет.Заранее спасибо!
Никак. Только по первому тику новой свечи. 
xektor68
98
xektor68 2015.03.08 08:03  
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]

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

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

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

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

OrderClose(...);

Vladimir Paukas
4099
Vladimir Paukas 2015.03.08 12:23  
XEKTOR68:
Попробовал ,но не закривает к сожалению!

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


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

Alexey Viktorov
6689
Alexey Viktorov 2015.03.08 12:30  
paukas:

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


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

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

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

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

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

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

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

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

Закрывает и баи и селы.
А может он в Экселе проверяет? Тогда фишка тоже не поможет.
Alexey Viktorov
6689
Alexey Viktorov 2015.03.08 15:21  
Тогда в сервисдеск надо писать. ))))))
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий